+ | EXISTS '(' query ')' #exists
+ | CASE valueExpression whenClause+ (ELSE elseExpression=expression)? END #simpleCase
+ | CASE whenClause+ (ELSE elseExpression=expression)? END #searchedCase
+ | CAST '(' expression AS type ')' #cast
+ | TRY_CAST '(' expression AS type ')' #cast
+ | ARRAY '[' (expression (',' expression)*)? ']' #arrayConstructor
+ | value=primaryExpression '[' index=valueExpression ']' #subscript
+ | identifier #columnReference
+ | base=primaryExpression '.' fieldName=identifier #dereference
+ | name=CURRENT_DATE #specialDateTimeFunction
+ | name=CURRENT_TIME ('(' precision=INTEGER_VALUE ')')? #specialDateTimeFunction
+ | name=CURRENT_TIMESTAMP ('(' precision=INTEGER_VALUE ')')? #specialDateTimeFunction
+ | name=LOCALTIME ('(' precision=INTEGER_VALUE ')')? #specialDateTimeFunction
+ | name=LOCALTIMESTAMP ('(' precision=INTEGER_VALUE ')')? #specialDateTimeFunction
+ | name=CURRENT_USER #currentUser
+ | SUBSTRING '(' valueExpression FROM valueExpression (FOR valueExpression)? ')' #substring
+ | NORMALIZE '(' valueExpression (',' normalForm)? ')' #normalize
+ | EXTRACT '(' identifier FROM valueExpression ')' #extract
+ | '(' expression ')' #parenthesizedExpression
+ | GROUPING '(' (qualifiedName (',' qualifiedName)*)? ')' #groupingOperation
+ ;
+
+string
+ : STRING #basicStringLiteral
+ | UNICODE_STRING (UESCAPE STRING)? #unicodeStringLiteral
+ ;
+
+nullTreatment
+ : IGNORE NULLS
+ | RESPECT NULLS
+ ;
+
+timeZoneSpecifier
+ : TIME ZONE interval #timeZoneInterval
+ | TIME ZONE string #timeZoneString
+ ;
+
+comparisonOperator
+ : EQ | NEQ | LT | LTE | GT | GTE
+ ;
+
+comparisonQuantifier
+ : ALL | SOME | ANY
+ ;
+
+booleanValue
+ : TRUE | FALSE
+ ;
+
+interval
+ : INTERVAL sign=(PLUS | MINUS)? string from=intervalField (TO to=intervalField)?
+ ;
+
+intervalField
+ : YEAR | MONTH | DAY | HOUR | MINUTE | SECOND
+ ;
+
+normalForm
+ : NFD | NFC | NFKD | NFKC
+ ;
+
+types
+ : '(' (type (',' type)*)? ')'
+ ;
+
+type
+ : type ARRAY
+ | ARRAY '<' type '>'
+ | MAP '<' type ',' type '>'
+ | ROW '(' identifier type (',' identifier type)* ')'
+ | baseType ('(' typeParameter (',' typeParameter)* ')')?
+ | INTERVAL from=intervalField TO to=intervalField
+ ;
+
+typeParameter
+ : INTEGER_VALUE | type
+ ;
+
+baseType
+ : TIME_WITH_TIME_ZONE
+ | TIMESTAMP_WITH_TIME_ZONE
+ | DOUBLE_PRECISION
+ | qualifiedName
+ ;
+
+whenClause
+ : WHEN condition=expression THEN result=expression
+ ;
+
+filter
+ : FILTER '(' WHERE booleanExpression ')'
+ ;
+
+over
+ : OVER '('
+ (PARTITION BY partition+=expression (',' partition+=expression)*)?
+ (ORDER BY sortItem (',' sortItem)*)?
+ windowFrame?
+ ')'
+ ;
+
+windowFrame
+ : frameType=RANGE start=frameBound
+ | frameType=ROWS start=frameBound
+ | frameType=RANGE BETWEEN start=frameBound AND end=frameBound
+ | frameType=ROWS BETWEEN start=frameBound AND end=frameBound
+ ;
+
+frameBound
+ : UNBOUNDED boundType=PRECEDING #unboundedFrame
+ | UNBOUNDED boundType=FOLLOWING #unboundedFrame
+ | CURRENT ROW #currentRowBound
+ | expression boundType=(PRECEDING | FOLLOWING) #boundedFrame // expression should be unsignedLiteral
+ ;
+
+
+explainOption
+ : FORMAT value=(TEXT | GRAPHVIZ | JSON) #explainFormat
+ | TYPE value=(LOGICAL | DISTRIBUTED | VALIDATE | IO) #explainType
+ ;
+
+transactionMode
+ : ISOLATION LEVEL levelOfIsolation #isolationLevel
+ | READ accessMode=(ONLY | WRITE) #transactionAccessMode
+ ;
+
+levelOfIsolation
+ : READ UNCOMMITTED #readUncommitted
+ | READ COMMITTED #readCommitted
+ | REPEATABLE READ #repeatableRead
+ | SERIALIZABLE #serializable
+ ;
+
+callArgument
+ : expression #positionalArgument
+ | identifier '=>' expression #namedArgument
+ ;
+
+privilege
+ : SELECT | DELETE | INSERT | identifier
+ ;
+
+qualifiedName
+ : identifier ('.' identifier)*
+ ;
+
+grantor
+ : CURRENT_USER #currentUserGrantor
+ | CURRENT_ROLE #currentRoleGrantor
+ | principal #specifiedPrincipal
+ ;
+
+principal
+ : USER identifier #userPrincipal
+ | ROLE identifier #rolePrincipal
+ | identifier #unspecifiedPrincipal
+ ;
+
+roles
+ : identifier (',' identifier)*
+ ;
+
+identifier
+ : IDENTIFIER #unquotedIdentifier
+ | QUOTED_IDENTIFIER #quotedIdentifier
+ | nonReserved #unquotedIdentifier
+ | BACKQUOTED_IDENTIFIER #backQuotedIdentifier
+ | DIGIT_IDENTIFIER #digitIdentifier
+ ;
+
+number
+ : DECIMAL_VALUE #decimalLiteral
+ | DOUBLE_VALUE #doubleLiteral
+ | INTEGER_VALUE #integerLiteral
+ ;
+
+nonReserved
+ // IMPORTANT: this rule must only contain tokens. Nested rules are not supported. See SqlParser.exitNonReserved
+ : ADD | ADMIN | ALL | ANALYZE | ANY | ARRAY | ASC | AT
+ | BERNOULLI
+ | CALL | CALLED | CASCADE | CATALOGS | COLUMN | COLUMNS | COMMENT | COMMIT | COMMITTED | CURRENT | CURRENT_ROLE
+ | DATA | DATE | DAY | DEFINER | DESC | DETERMINISTIC | DISTRIBUTED
+ | EXCLUDING | EXPLAIN | EXTERNAL
+ | FILTER | FIRST | FOLLOWING | FORMAT | FUNCTION | FUNCTIONS
+ | GRANT | GRANTED | GRANTS | GRAPHVIZ
+ | HOUR
+ | IF | IGNORE | INCLUDING | INPUT | INTERVAL | INVOKER | IO | ISOLATION
+ | JSON
+ | LANGUAGE | LAST | LATERAL | LEVEL | LIMIT | LOGICAL
+ | MAP | MATERIALIZED | MINUTE | MONTH
+ | NAME | NFC | NFD | NFKC | NFKD | NO | NONE | NULLIF | NULLS
+ | OFFSET | ONLY | OPTION | ORDINALITY | OUTPUT | OVER
+ | PARTITION | PARTITIONS | POSITION | PRECEDING | PRIVILEGES | PROPERTIES
+ | RANGE | READ | REFRESH | RENAME | REPEATABLE | REPLACE | RESET | RESPECT | RESTRICT | RETURN | RETURNS | REVOKE | ROLE | ROLES | ROLLBACK | ROW | ROWS
+ | SCHEMA | SCHEMAS | SECOND | SECURITY | SERIALIZABLE | SESSION | SET | SETS | SQL
+ | SHOW | SOME | START | STATS | SUBSTRING | SYSTEM
+ | TABLES | TABLESAMPLE | TEMPORARY | TEXT | TIME | TIMESTAMP | TO | TRANSACTION | TRY_CAST | TYPE
+ | UNBOUNDED | UNCOMMITTED | USE | USER
+ | VALIDATE | VERBOSE | VIEW
+ | WORK | WRITE
+ | YEAR
+ | ZONE
+ ;
+
+ADD: 'ADD';
+ADMIN: 'ADMIN';
+ALL: 'ALL';
+ALTER: 'ALTER';
+ANALYZE: 'ANALYZE';
+AND: 'AND';
+ANY: 'ANY';
+ARRAY: 'ARRAY';
+AS: 'AS';
+ASC: 'ASC';
+AT: 'AT';
+BERNOULLI: 'BERNOULLI';
+BETWEEN: 'BETWEEN';
+BY: 'BY';
+CALL: 'CALL';
+CALLED: 'CALLED';
+CASCADE: 'CASCADE';
+CASE: 'CASE';
+CAST: 'CAST';
+CATALOGS: 'CATALOGS';
+COLUMN: 'COLUMN';
+COLUMNS: 'COLUMNS';
+COMMENT: 'COMMENT';
+COMMIT: 'COMMIT';
+COMMITTED: 'COMMITTED';
+CONSTRAINT: 'CONSTRAINT';
+CREATE: 'CREATE';
+CROSS: 'CROSS';
+CUBE: 'CUBE';
+CURRENT: 'CURRENT';
+CURRENT_DATE: 'CURRENT_DATE';
+CURRENT_ROLE: 'CURRENT_ROLE';
+CURRENT_TIME: 'CURRENT_TIME';
+CURRENT_TIMESTAMP: 'CURRENT_TIMESTAMP';
+CURRENT_USER: 'CURRENT_USER';
+DATA: 'DATA';
+DATE: 'DATE';
+DAY: 'DAY';
+DEALLOCATE: 'DEALLOCATE';
+DEFINER: 'DEFINER';
+DELETE: 'DELETE';
+DESC: 'DESC';
+DESCRIBE: 'DESCRIBE';
+DETERMINISTIC: 'DETERMINISTIC';
+DISTINCT: 'DISTINCT';
+DISTRIBUTED: 'DISTRIBUTED';
+DROP: 'DROP';
+ELSE: 'ELSE';
+END: 'END';
+ESCAPE: 'ESCAPE';
+EXCEPT: 'EXCEPT';
+EXCLUDING: 'EXCLUDING';
+EXECUTE: 'EXECUTE';
+EXISTS: 'EXISTS';
+EXPLAIN: 'EXPLAIN';
+EXTRACT: 'EXTRACT';
+EXTERNAL: 'EXTERNAL';
+FALSE: 'FALSE';
+FILTER: 'FILTER';
+FIRST: 'FIRST';
+FOLLOWING: 'FOLLOWING';
+FOR: 'FOR';
+FORMAT: 'FORMAT';
+FROM: 'FROM';
+FULL: 'FULL';
+FUNCTION: 'FUNCTION';
+FUNCTIONS: 'FUNCTIONS';
+GRANT: 'GRANT';
+GRANTED: 'GRANTED';
+GRANTS: 'GRANTS';
+GRAPHVIZ: 'GRAPHVIZ';
+GROUP: 'GROUP';
+GROUPING: 'GROUPING';
+HAVING: 'HAVING';
+HOUR: 'HOUR';
+IF: 'IF';
+IGNORE: 'IGNORE';
+IN: 'IN';
+INCLUDING: 'INCLUDING';
+INNER: 'INNER';
+INPUT: 'INPUT';
+INSERT: 'INSERT';
+INTERSECT: 'INTERSECT';
+INTERVAL: 'INTERVAL';
+INTO: 'INTO';
+INVOKER: 'INVOKER';
+IO: 'IO';
+IS: 'IS';
+ISOLATION: 'ISOLATION';
+JSON: 'JSON';
+JOIN: 'JOIN';
+LANGUAGE: 'LANGUAGE';
+LAST: 'LAST';
+LATERAL: 'LATERAL';
+LEFT: 'LEFT';
+LEVEL: 'LEVEL';
+LIKE: 'LIKE';
+LIMIT: 'LIMIT';
+LOCALTIME: 'LOCALTIME';
+LOCALTIMESTAMP: 'LOCALTIMESTAMP';
+LOGICAL: 'LOGICAL';
+MAP: 'MAP';
+MATERIALIZED: 'MATERIALIZED';
+MINUTE: 'MINUTE';
+MONTH: 'MONTH';
+NAME: 'NAME';
+NATURAL: 'NATURAL';
+NFC : 'NFC';
+NFD : 'NFD';
+NFKC : 'NFKC';
+NFKD : 'NFKD';
+NO: 'NO';
+NONE: 'NONE';
+NORMALIZE: 'NORMALIZE';
+NOT: 'NOT';
+NULL: 'NULL';
+NULLIF: 'NULLIF';
+NULLS: 'NULLS';
+OFFSET: 'OFFSET';
+ON: 'ON';
+ONLY: 'ONLY';
+OPTION: 'OPTION';
+OR: 'OR';
+ORDER: 'ORDER';
+ORDINALITY: 'ORDINALITY';
+OUTER: 'OUTER';
+OUTPUT: 'OUTPUT';
+OVER: 'OVER';
+PARTITION: 'PARTITION';
+PARTITIONS: 'PARTITIONS';
+POSITION: 'POSITION';
+PRECEDING: 'PRECEDING';
+PREPARE: 'PREPARE';
+PRIVILEGES: 'PRIVILEGES';
+PROPERTIES: 'PROPERTIES';
+RANGE: 'RANGE';
+READ: 'READ';
+RECURSIVE: 'RECURSIVE';
+REFRESH: 'REFRESH';
+RENAME: 'RENAME';
+REPEATABLE: 'REPEATABLE';
+REPLACE: 'REPLACE';
+RESET: 'RESET';
+RESPECT: 'RESPECT';
+RESTRICT: 'RESTRICT';
+RETURN: 'RETURN';
+RETURNS: 'RETURNS';
+REVOKE: 'REVOKE';
+RIGHT: 'RIGHT';
+ROLE: 'ROLE';
+ROLES: 'ROLES';
+ROLLBACK: 'ROLLBACK';
+ROLLUP: 'ROLLUP';
+ROW: 'ROW';
+ROWS: 'ROWS';
+SCHEMA: 'SCHEMA';
+SCHEMAS: 'SCHEMAS';
+SECOND: 'SECOND';
+SECURITY: 'SECURITY';
+SELECT: 'SELECT';
+SERIALIZABLE: 'SERIALIZABLE';
+SESSION: 'SESSION';
+SET: 'SET';
+SETS: 'SETS';
+SHOW: 'SHOW';
+SOME: 'SOME';
+SQL: 'SQL';
+START: 'START';
+STATS: 'STATS';
+SUBSTRING: 'SUBSTRING';
+SYSTEM: 'SYSTEM';
+TABLE: 'TABLE';
+TABLES: 'TABLES';
+TABLESAMPLE: 'TABLESAMPLE';
+TEMPORARY: 'TEMPORARY';
+TEXT: 'TEXT';
+THEN: 'THEN';
+TIME: 'TIME';
+TIMESTAMP: 'TIMESTAMP';
+TO: 'TO';
+TRANSACTION: 'TRANSACTION';
+TRUE: 'TRUE';
+TRY_CAST: 'TRY_CAST';
+TYPE: 'TYPE';
+UESCAPE: 'UESCAPE';
+UNBOUNDED: 'UNBOUNDED';
+UNCOMMITTED: 'UNCOMMITTED';
+UNION: 'UNION';
+UNNEST: 'UNNEST';
+USE: 'USE';
+USER: 'USER';
+USING: 'USING';
+VALIDATE: 'VALIDATE';
+VALUES: 'VALUES';
+VERBOSE: 'VERBOSE';
+VIEW: 'VIEW';
+WHEN: 'WHEN';
+WHERE: 'WHERE';
+WITH: 'WITH';
+WORK: 'WORK';
+WRITE: 'WRITE';
+YEAR: 'YEAR';
+ZONE: 'ZONE';
+
+EQ : '=';
+NEQ : '<>' | '!=';
+LT : '<';
+LTE : '<=';
+GT : '>';
+GTE : '>=';
+
+PLUS: '+';
+MINUS: '-';
+ASTERISK: '*';
+SLASH: '/';
+PERCENT: '%';
+CONCAT: '||';
+
+STRING
+ : '\'' ( ~'\'' | '\'\'' )* '\''
+ ;
+
+UNICODE_STRING
+ : 'U&\'' ( ~'\'' | '\'\'' )* '\''
+ ;
+
+// Note: we allow any character inside the binary literal and validate
+// its a correct literal when the AST is being constructed. This
+// allows us to provide more meaningful error messages to the user
+BINARY_LITERAL
+ : 'X\'' (~'\'')* '\''
+ ;
+
+INTEGER_VALUE
+ : DIGIT+
+ ;
+
+DECIMAL_VALUE
+ : DIGIT+ '.' DIGIT*
+ | '.' DIGIT+
+ ;
+
+DOUBLE_VALUE
+ : DIGIT+ ('.' DIGIT*)? EXPONENT
+ | '.' DIGIT+ EXPONENT
+ ;
+
+IDENTIFIER
+ : (LETTER | '_') (LETTER | DIGIT | '_' | '@' | ':')*
+ ;
+
+DIGIT_IDENTIFIER
+ : DIGIT (LETTER | DIGIT | '_' | '@' | ':')+
+ ;
+
+QUOTED_IDENTIFIER
+ : '"' ( ~'"' | '""' )* '"'
+ ;
+
+BACKQUOTED_IDENTIFIER
+ : '`' ( ~'`' | '``' )* '`'
+ ;
+
+TIME_WITH_TIME_ZONE
+ : 'TIME' WS 'WITH' WS 'TIME' WS 'ZONE'
+ ;
+
+TIMESTAMP_WITH_TIME_ZONE
+ : 'TIMESTAMP' WS 'WITH' WS 'TIME' WS 'ZONE'
+ ;
+
+DOUBLE_PRECISION
+ : 'DOUBLE' WS 'PRECISION'
+ ;
+
+fragment EXPONENT
+ : 'E' [+-]? DIGIT+
+ ;
+
+fragment DIGIT
+ : [0-9]
+ ;
+
+fragment LETTER
+ : [A-Z]
+ ;
+
+SIMPLE_COMMENT
+ : '--' ~[\r\n]* '\r'? '\n'? -> channel(HIDDEN)
+ ;
+
+BRACKETED_COMMENT
+ : '/*' .*? '*/' -> channel(HIDDEN)
+ ;
+
+WS
+ : [ \r\n\t]+ -> channel(HIDDEN)
+ ;
+
+// Catch-all for anything we can't recognize.
+// We use this to be able to ignore and recover all the text
+// when splitting statements with DelimiterLexer
+UNRECOGNIZED
+ : .
+ ;
diff --git a/src/main/java/PrestoSql.tokens b/src/main/java/PrestoSql.tokens
new file mode 100644
index 0000000..d83d3e4
--- /dev/null
+++ b/src/main/java/PrestoSql.tokens
@@ -0,0 +1,465 @@
+T__0=1
+T__1=2
+T__2=3
+T__3=4
+T__4=5
+T__5=6
+T__6=7
+T__7=8
+T__8=9
+ADD=10
+ADMIN=11
+ALL=12
+ALTER=13
+ANALYZE=14
+AND=15
+ANY=16
+ARRAY=17
+AS=18
+ASC=19
+AT=20
+BERNOULLI=21
+BETWEEN=22
+BY=23
+CALL=24
+CALLED=25
+CASCADE=26
+CASE=27
+CAST=28
+CATALOGS=29
+COLUMN=30
+COLUMNS=31
+COMMENT=32
+COMMIT=33
+COMMITTED=34
+CONSTRAINT=35
+CREATE=36
+CROSS=37
+CUBE=38
+CURRENT=39
+CURRENT_DATE=40
+CURRENT_ROLE=41
+CURRENT_TIME=42
+CURRENT_TIMESTAMP=43
+CURRENT_USER=44
+DATA=45
+DATE=46
+DAY=47
+DEALLOCATE=48
+DEFINER=49
+DELETE=50
+DESC=51
+DESCRIBE=52
+DETERMINISTIC=53
+DISTINCT=54
+DISTRIBUTED=55
+DROP=56
+ELSE=57
+END=58
+ESCAPE=59
+EXCEPT=60
+EXCLUDING=61
+EXECUTE=62
+EXISTS=63
+EXPLAIN=64
+EXTRACT=65
+EXTERNAL=66
+FALSE=67
+FILTER=68
+FIRST=69
+FOLLOWING=70
+FOR=71
+FORMAT=72
+FROM=73
+FULL=74
+FUNCTION=75
+FUNCTIONS=76
+GRANT=77
+GRANTED=78
+GRANTS=79
+GRAPHVIZ=80
+GROUP=81
+GROUPING=82
+HAVING=83
+HOUR=84
+IF=85
+IGNORE=86
+IN=87
+INCLUDING=88
+INNER=89
+INPUT=90
+INSERT=91
+INTERSECT=92
+INTERVAL=93
+INTO=94
+INVOKER=95
+IO=96
+IS=97
+ISOLATION=98
+JSON=99
+JOIN=100
+LANGUAGE=101
+LAST=102
+LATERAL=103
+LEFT=104
+LEVEL=105
+LIKE=106
+LIMIT=107
+LOCALTIME=108
+LOCALTIMESTAMP=109
+LOGICAL=110
+MAP=111
+MATERIALIZED=112
+MINUTE=113
+MONTH=114
+NAME=115
+NATURAL=116
+NFC=117
+NFD=118
+NFKC=119
+NFKD=120
+NO=121
+NONE=122
+NORMALIZE=123
+NOT=124
+NULL=125
+NULLIF=126
+NULLS=127
+OFFSET=128
+ON=129
+ONLY=130
+OPTION=131
+OR=132
+ORDER=133
+ORDINALITY=134
+OUTER=135
+OUTPUT=136
+OVER=137
+PARTITION=138
+PARTITIONS=139
+POSITION=140
+PRECEDING=141
+PREPARE=142
+PRIVILEGES=143
+PROPERTIES=144
+RANGE=145
+READ=146
+RECURSIVE=147
+REFRESH=148
+RENAME=149
+REPEATABLE=150
+REPLACE=151
+RESET=152
+RESPECT=153
+RESTRICT=154
+RETURN=155
+RETURNS=156
+REVOKE=157
+RIGHT=158
+ROLE=159
+ROLES=160
+ROLLBACK=161
+ROLLUP=162
+ROW=163
+ROWS=164
+SCHEMA=165
+SCHEMAS=166
+SECOND=167
+SECURITY=168
+SELECT=169
+SERIALIZABLE=170
+SESSION=171
+SET=172
+SETS=173
+SHOW=174
+SOME=175
+SQL=176
+START=177
+STATS=178
+SUBSTRING=179
+SYSTEM=180
+TABLE=181
+TABLES=182
+TABLESAMPLE=183
+TEMPORARY=184
+TEXT=185
+THEN=186
+TIME=187
+TIMESTAMP=188
+TO=189
+TRANSACTION=190
+TRUE=191
+TRY_CAST=192
+TYPE=193
+UESCAPE=194
+UNBOUNDED=195
+UNCOMMITTED=196
+UNION=197
+UNNEST=198
+USE=199
+USER=200
+USING=201
+VALIDATE=202
+VALUES=203
+VERBOSE=204
+VIEW=205
+WHEN=206
+WHERE=207
+WITH=208
+WORK=209
+WRITE=210
+YEAR=211
+ZONE=212
+EQ=213
+NEQ=214
+LT=215
+LTE=216
+GT=217
+GTE=218
+PLUS=219
+MINUS=220
+ASTERISK=221
+SLASH=222
+PERCENT=223
+CONCAT=224
+STRING=225
+UNICODE_STRING=226
+BINARY_LITERAL=227
+INTEGER_VALUE=228
+DECIMAL_VALUE=229
+DOUBLE_VALUE=230
+IDENTIFIER=231
+DIGIT_IDENTIFIER=232
+QUOTED_IDENTIFIER=233
+BACKQUOTED_IDENTIFIER=234
+TIME_WITH_TIME_ZONE=235
+TIMESTAMP_WITH_TIME_ZONE=236
+DOUBLE_PRECISION=237
+SIMPLE_COMMENT=238
+BRACKETED_COMMENT=239
+WS=240
+UNRECOGNIZED=241
+DELIMITER=242
+'.'=1
+'('=2
+')'=3
+','=4
+'?'=5
+'->'=6
+'['=7
+']'=8
+'=>'=9
+'ADD'=10
+'ADMIN'=11
+'ALL'=12
+'ALTER'=13
+'ANALYZE'=14
+'AND'=15
+'ANY'=16
+'ARRAY'=17
+'AS'=18
+'ASC'=19
+'AT'=20
+'BERNOULLI'=21
+'BETWEEN'=22
+'BY'=23
+'CALL'=24
+'CALLED'=25
+'CASCADE'=26
+'CASE'=27
+'CAST'=28
+'CATALOGS'=29
+'COLUMN'=30
+'COLUMNS'=31
+'COMMENT'=32
+'COMMIT'=33
+'COMMITTED'=34
+'CONSTRAINT'=35
+'CREATE'=36
+'CROSS'=37
+'CUBE'=38
+'CURRENT'=39
+'CURRENT_DATE'=40
+'CURRENT_ROLE'=41
+'CURRENT_TIME'=42
+'CURRENT_TIMESTAMP'=43
+'CURRENT_USER'=44
+'DATA'=45
+'DATE'=46
+'DAY'=47
+'DEALLOCATE'=48
+'DEFINER'=49
+'DELETE'=50
+'DESC'=51
+'DESCRIBE'=52
+'DETERMINISTIC'=53
+'DISTINCT'=54
+'DISTRIBUTED'=55
+'DROP'=56
+'ELSE'=57
+'END'=58
+'ESCAPE'=59
+'EXCEPT'=60
+'EXCLUDING'=61
+'EXECUTE'=62
+'EXISTS'=63
+'EXPLAIN'=64
+'EXTRACT'=65
+'EXTERNAL'=66
+'FALSE'=67
+'FILTER'=68
+'FIRST'=69
+'FOLLOWING'=70
+'FOR'=71
+'FORMAT'=72
+'FROM'=73
+'FULL'=74
+'FUNCTION'=75
+'FUNCTIONS'=76
+'GRANT'=77
+'GRANTED'=78
+'GRANTS'=79
+'GRAPHVIZ'=80
+'GROUP'=81
+'GROUPING'=82
+'HAVING'=83
+'HOUR'=84
+'IF'=85
+'IGNORE'=86
+'IN'=87
+'INCLUDING'=88
+'INNER'=89
+'INPUT'=90
+'INSERT'=91
+'INTERSECT'=92
+'INTERVAL'=93
+'INTO'=94
+'INVOKER'=95
+'IO'=96
+'IS'=97
+'ISOLATION'=98
+'JSON'=99
+'JOIN'=100
+'LANGUAGE'=101
+'LAST'=102
+'LATERAL'=103
+'LEFT'=104
+'LEVEL'=105
+'LIKE'=106
+'LIMIT'=107
+'LOCALTIME'=108
+'LOCALTIMESTAMP'=109
+'LOGICAL'=110
+'MAP'=111
+'MATERIALIZED'=112
+'MINUTE'=113
+'MONTH'=114
+'NAME'=115
+'NATURAL'=116
+'NFC'=117
+'NFD'=118
+'NFKC'=119
+'NFKD'=120
+'NO'=121
+'NONE'=122
+'NORMALIZE'=123
+'NOT'=124
+'NULL'=125
+'NULLIF'=126
+'NULLS'=127
+'OFFSET'=128
+'ON'=129
+'ONLY'=130
+'OPTION'=131
+'OR'=132
+'ORDER'=133
+'ORDINALITY'=134
+'OUTER'=135
+'OUTPUT'=136
+'OVER'=137
+'PARTITION'=138
+'PARTITIONS'=139
+'POSITION'=140
+'PRECEDING'=141
+'PREPARE'=142
+'PRIVILEGES'=143
+'PROPERTIES'=144
+'RANGE'=145
+'READ'=146
+'RECURSIVE'=147
+'REFRESH'=148
+'RENAME'=149
+'REPEATABLE'=150
+'REPLACE'=151
+'RESET'=152
+'RESPECT'=153
+'RESTRICT'=154
+'RETURN'=155
+'RETURNS'=156
+'REVOKE'=157
+'RIGHT'=158
+'ROLE'=159
+'ROLES'=160
+'ROLLBACK'=161
+'ROLLUP'=162
+'ROW'=163
+'ROWS'=164
+'SCHEMA'=165
+'SCHEMAS'=166
+'SECOND'=167
+'SECURITY'=168
+'SELECT'=169
+'SERIALIZABLE'=170
+'SESSION'=171
+'SET'=172
+'SETS'=173
+'SHOW'=174
+'SOME'=175
+'SQL'=176
+'START'=177
+'STATS'=178
+'SUBSTRING'=179
+'SYSTEM'=180
+'TABLE'=181
+'TABLES'=182
+'TABLESAMPLE'=183
+'TEMPORARY'=184
+'TEXT'=185
+'THEN'=186
+'TIME'=187
+'TIMESTAMP'=188
+'TO'=189
+'TRANSACTION'=190
+'TRUE'=191
+'TRY_CAST'=192
+'TYPE'=193
+'UESCAPE'=194
+'UNBOUNDED'=195
+'UNCOMMITTED'=196
+'UNION'=197
+'UNNEST'=198
+'USE'=199
+'USER'=200
+'USING'=201
+'VALIDATE'=202
+'VALUES'=203
+'VERBOSE'=204
+'VIEW'=205
+'WHEN'=206
+'WHERE'=207
+'WITH'=208
+'WORK'=209
+'WRITE'=210
+'YEAR'=211
+'ZONE'=212
+'='=213
+'<'=215
+'<='=216
+'>'=217
+'>='=218
+'+'=219
+'-'=220
+'*'=221
+'/'=222
+'%'=223
+'||'=224
diff --git a/src/main/java/PrestoSqlLexer.tokens b/src/main/java/PrestoSqlLexer.tokens
new file mode 100644
index 0000000..afe2d9c
--- /dev/null
+++ b/src/main/java/PrestoSqlLexer.tokens
@@ -0,0 +1,464 @@
+T__0=1
+T__1=2
+T__2=3
+T__3=4
+T__4=5
+T__5=6
+T__6=7
+T__7=8
+T__8=9
+ADD=10
+ADMIN=11
+ALL=12
+ALTER=13
+ANALYZE=14
+AND=15
+ANY=16
+ARRAY=17
+AS=18
+ASC=19
+AT=20
+BERNOULLI=21
+BETWEEN=22
+BY=23
+CALL=24
+CALLED=25
+CASCADE=26
+CASE=27
+CAST=28
+CATALOGS=29
+COLUMN=30
+COLUMNS=31
+COMMENT=32
+COMMIT=33
+COMMITTED=34
+CONSTRAINT=35
+CREATE=36
+CROSS=37
+CUBE=38
+CURRENT=39
+CURRENT_DATE=40
+CURRENT_ROLE=41
+CURRENT_TIME=42
+CURRENT_TIMESTAMP=43
+CURRENT_USER=44
+DATA=45
+DATE=46
+DAY=47
+DEALLOCATE=48
+DEFINER=49
+DELETE=50
+DESC=51
+DESCRIBE=52
+DETERMINISTIC=53
+DISTINCT=54
+DISTRIBUTED=55
+DROP=56
+ELSE=57
+END=58
+ESCAPE=59
+EXCEPT=60
+EXCLUDING=61
+EXECUTE=62
+EXISTS=63
+EXPLAIN=64
+EXTRACT=65
+EXTERNAL=66
+FALSE=67
+FILTER=68
+FIRST=69
+FOLLOWING=70
+FOR=71
+FORMAT=72
+FROM=73
+FULL=74
+FUNCTION=75
+FUNCTIONS=76
+GRANT=77
+GRANTED=78
+GRANTS=79
+GRAPHVIZ=80
+GROUP=81
+GROUPING=82
+HAVING=83
+HOUR=84
+IF=85
+IGNORE=86
+IN=87
+INCLUDING=88
+INNER=89
+INPUT=90
+INSERT=91
+INTERSECT=92
+INTERVAL=93
+INTO=94
+INVOKER=95
+IO=96
+IS=97
+ISOLATION=98
+JSON=99
+JOIN=100
+LANGUAGE=101
+LAST=102
+LATERAL=103
+LEFT=104
+LEVEL=105
+LIKE=106
+LIMIT=107
+LOCALTIME=108
+LOCALTIMESTAMP=109
+LOGICAL=110
+MAP=111
+MATERIALIZED=112
+MINUTE=113
+MONTH=114
+NAME=115
+NATURAL=116
+NFC=117
+NFD=118
+NFKC=119
+NFKD=120
+NO=121
+NONE=122
+NORMALIZE=123
+NOT=124
+NULL=125
+NULLIF=126
+NULLS=127
+OFFSET=128
+ON=129
+ONLY=130
+OPTION=131
+OR=132
+ORDER=133
+ORDINALITY=134
+OUTER=135
+OUTPUT=136
+OVER=137
+PARTITION=138
+PARTITIONS=139
+POSITION=140
+PRECEDING=141
+PREPARE=142
+PRIVILEGES=143
+PROPERTIES=144
+RANGE=145
+READ=146
+RECURSIVE=147
+REFRESH=148
+RENAME=149
+REPEATABLE=150
+REPLACE=151
+RESET=152
+RESPECT=153
+RESTRICT=154
+RETURN=155
+RETURNS=156
+REVOKE=157
+RIGHT=158
+ROLE=159
+ROLES=160
+ROLLBACK=161
+ROLLUP=162
+ROW=163
+ROWS=164
+SCHEMA=165
+SCHEMAS=166
+SECOND=167
+SECURITY=168
+SELECT=169
+SERIALIZABLE=170
+SESSION=171
+SET=172
+SETS=173
+SHOW=174
+SOME=175
+SQL=176
+START=177
+STATS=178
+SUBSTRING=179
+SYSTEM=180
+TABLE=181
+TABLES=182
+TABLESAMPLE=183
+TEMPORARY=184
+TEXT=185
+THEN=186
+TIME=187
+TIMESTAMP=188
+TO=189
+TRANSACTION=190
+TRUE=191
+TRY_CAST=192
+TYPE=193
+UESCAPE=194
+UNBOUNDED=195
+UNCOMMITTED=196
+UNION=197
+UNNEST=198
+USE=199
+USER=200
+USING=201
+VALIDATE=202
+VALUES=203
+VERBOSE=204
+VIEW=205
+WHEN=206
+WHERE=207
+WITH=208
+WORK=209
+WRITE=210
+YEAR=211
+ZONE=212
+EQ=213
+NEQ=214
+LT=215
+LTE=216
+GT=217
+GTE=218
+PLUS=219
+MINUS=220
+ASTERISK=221
+SLASH=222
+PERCENT=223
+CONCAT=224
+STRING=225
+UNICODE_STRING=226
+BINARY_LITERAL=227
+INTEGER_VALUE=228
+DECIMAL_VALUE=229
+DOUBLE_VALUE=230
+IDENTIFIER=231
+DIGIT_IDENTIFIER=232
+QUOTED_IDENTIFIER=233
+BACKQUOTED_IDENTIFIER=234
+TIME_WITH_TIME_ZONE=235
+TIMESTAMP_WITH_TIME_ZONE=236
+DOUBLE_PRECISION=237
+SIMPLE_COMMENT=238
+BRACKETED_COMMENT=239
+WS=240
+UNRECOGNIZED=241
+'.'=1
+'('=2
+')'=3
+','=4
+'?'=5
+'->'=6
+'['=7
+']'=8
+'=>'=9
+'ADD'=10
+'ADMIN'=11
+'ALL'=12
+'ALTER'=13
+'ANALYZE'=14
+'AND'=15
+'ANY'=16
+'ARRAY'=17
+'AS'=18
+'ASC'=19
+'AT'=20
+'BERNOULLI'=21
+'BETWEEN'=22
+'BY'=23
+'CALL'=24
+'CALLED'=25
+'CASCADE'=26
+'CASE'=27
+'CAST'=28
+'CATALOGS'=29
+'COLUMN'=30
+'COLUMNS'=31
+'COMMENT'=32
+'COMMIT'=33
+'COMMITTED'=34
+'CONSTRAINT'=35
+'CREATE'=36
+'CROSS'=37
+'CUBE'=38
+'CURRENT'=39
+'CURRENT_DATE'=40
+'CURRENT_ROLE'=41
+'CURRENT_TIME'=42
+'CURRENT_TIMESTAMP'=43
+'CURRENT_USER'=44
+'DATA'=45
+'DATE'=46
+'DAY'=47
+'DEALLOCATE'=48
+'DEFINER'=49
+'DELETE'=50
+'DESC'=51
+'DESCRIBE'=52
+'DETERMINISTIC'=53
+'DISTINCT'=54
+'DISTRIBUTED'=55
+'DROP'=56
+'ELSE'=57
+'END'=58
+'ESCAPE'=59
+'EXCEPT'=60
+'EXCLUDING'=61
+'EXECUTE'=62
+'EXISTS'=63
+'EXPLAIN'=64
+'EXTRACT'=65
+'EXTERNAL'=66
+'FALSE'=67
+'FILTER'=68
+'FIRST'=69
+'FOLLOWING'=70
+'FOR'=71
+'FORMAT'=72
+'FROM'=73
+'FULL'=74
+'FUNCTION'=75
+'FUNCTIONS'=76
+'GRANT'=77
+'GRANTED'=78
+'GRANTS'=79
+'GRAPHVIZ'=80
+'GROUP'=81
+'GROUPING'=82
+'HAVING'=83
+'HOUR'=84
+'IF'=85
+'IGNORE'=86
+'IN'=87
+'INCLUDING'=88
+'INNER'=89
+'INPUT'=90
+'INSERT'=91
+'INTERSECT'=92
+'INTERVAL'=93
+'INTO'=94
+'INVOKER'=95
+'IO'=96
+'IS'=97
+'ISOLATION'=98
+'JSON'=99
+'JOIN'=100
+'LANGUAGE'=101
+'LAST'=102
+'LATERAL'=103
+'LEFT'=104
+'LEVEL'=105
+'LIKE'=106
+'LIMIT'=107
+'LOCALTIME'=108
+'LOCALTIMESTAMP'=109
+'LOGICAL'=110
+'MAP'=111
+'MATERIALIZED'=112
+'MINUTE'=113
+'MONTH'=114
+'NAME'=115
+'NATURAL'=116
+'NFC'=117
+'NFD'=118
+'NFKC'=119
+'NFKD'=120
+'NO'=121
+'NONE'=122
+'NORMALIZE'=123
+'NOT'=124
+'NULL'=125
+'NULLIF'=126
+'NULLS'=127
+'OFFSET'=128
+'ON'=129
+'ONLY'=130
+'OPTION'=131
+'OR'=132
+'ORDER'=133
+'ORDINALITY'=134
+'OUTER'=135
+'OUTPUT'=136
+'OVER'=137
+'PARTITION'=138
+'PARTITIONS'=139
+'POSITION'=140
+'PRECEDING'=141
+'PREPARE'=142
+'PRIVILEGES'=143
+'PROPERTIES'=144
+'RANGE'=145
+'READ'=146
+'RECURSIVE'=147
+'REFRESH'=148
+'RENAME'=149
+'REPEATABLE'=150
+'REPLACE'=151
+'RESET'=152
+'RESPECT'=153
+'RESTRICT'=154
+'RETURN'=155
+'RETURNS'=156
+'REVOKE'=157
+'RIGHT'=158
+'ROLE'=159
+'ROLES'=160
+'ROLLBACK'=161
+'ROLLUP'=162
+'ROW'=163
+'ROWS'=164
+'SCHEMA'=165
+'SCHEMAS'=166
+'SECOND'=167
+'SECURITY'=168
+'SELECT'=169
+'SERIALIZABLE'=170
+'SESSION'=171
+'SET'=172
+'SETS'=173
+'SHOW'=174
+'SOME'=175
+'SQL'=176
+'START'=177
+'STATS'=178
+'SUBSTRING'=179
+'SYSTEM'=180
+'TABLE'=181
+'TABLES'=182
+'TABLESAMPLE'=183
+'TEMPORARY'=184
+'TEXT'=185
+'THEN'=186
+'TIME'=187
+'TIMESTAMP'=188
+'TO'=189
+'TRANSACTION'=190
+'TRUE'=191
+'TRY_CAST'=192
+'TYPE'=193
+'UESCAPE'=194
+'UNBOUNDED'=195
+'UNCOMMITTED'=196
+'UNION'=197
+'UNNEST'=198
+'USE'=199
+'USER'=200
+'USING'=201
+'VALIDATE'=202
+'VALUES'=203
+'VERBOSE'=204
+'VIEW'=205
+'WHEN'=206
+'WHERE'=207
+'WITH'=208
+'WORK'=209
+'WRITE'=210
+'YEAR'=211
+'ZONE'=212
+'='=213
+'<'=215
+'<='=216
+'>'=217
+'>='=218
+'+'=219
+'-'=220
+'*'=221
+'/'=222
+'%'=223
+'||'=224
diff --git a/src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlBaseListener.java b/src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlBaseListener.java
new file mode 100644
index 0000000..c20e106
--- /dev/null
+++ b/src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlBaseListener.java
@@ -0,0 +1,2511 @@
+// Generated from com/github/bigdata/sql/antlr4/presto/PrestoSql.g4 by ANTLR 4.7
+package com.github.bigdata.sql.antlr4.presto;
+
+import org.antlr.v4.runtime.ParserRuleContext;
+import org.antlr.v4.runtime.tree.ErrorNode;
+import org.antlr.v4.runtime.tree.TerminalNode;
+
+/**
+ * This class provides an empty implementation of {@link PrestoSqlListener},
+ * which can be extended to create a listener which only needs to handle a subset
+ * of the available methods.
+ */
+public class PrestoSqlBaseListener implements PrestoSqlListener {
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterSingleStatement(PrestoSqlParser.SingleStatementContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitSingleStatement(PrestoSqlParser.SingleStatementContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterStandaloneExpression(PrestoSqlParser.StandaloneExpressionContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitStandaloneExpression(PrestoSqlParser.StandaloneExpressionContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterStandaloneRoutineBody(PrestoSqlParser.StandaloneRoutineBodyContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitStandaloneRoutineBody(PrestoSqlParser.StandaloneRoutineBodyContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterStatementDefault(PrestoSqlParser.StatementDefaultContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitStatementDefault(PrestoSqlParser.StatementDefaultContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterUse(PrestoSqlParser.UseContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitUse(PrestoSqlParser.UseContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterCreateSchema(PrestoSqlParser.CreateSchemaContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitCreateSchema(PrestoSqlParser.CreateSchemaContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterDropSchema(PrestoSqlParser.DropSchemaContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitDropSchema(PrestoSqlParser.DropSchemaContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterRenameSchema(PrestoSqlParser.RenameSchemaContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitRenameSchema(PrestoSqlParser.RenameSchemaContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterCreateTableAsSelect(PrestoSqlParser.CreateTableAsSelectContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitCreateTableAsSelect(PrestoSqlParser.CreateTableAsSelectContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterCreateTable(PrestoSqlParser.CreateTableContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitCreateTable(PrestoSqlParser.CreateTableContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterDropTable(PrestoSqlParser.DropTableContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitDropTable(PrestoSqlParser.DropTableContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterInsertInto(PrestoSqlParser.InsertIntoContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitInsertInto(PrestoSqlParser.InsertIntoContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterDelete(PrestoSqlParser.DeleteContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitDelete(PrestoSqlParser.DeleteContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterRenameTable(PrestoSqlParser.RenameTableContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitRenameTable(PrestoSqlParser.RenameTableContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterRenameColumn(PrestoSqlParser.RenameColumnContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitRenameColumn(PrestoSqlParser.RenameColumnContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterDropColumn(PrestoSqlParser.DropColumnContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitDropColumn(PrestoSqlParser.DropColumnContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterAddColumn(PrestoSqlParser.AddColumnContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitAddColumn(PrestoSqlParser.AddColumnContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterAnalyze(PrestoSqlParser.AnalyzeContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitAnalyze(PrestoSqlParser.AnalyzeContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterCreateType(PrestoSqlParser.CreateTypeContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitCreateType(PrestoSqlParser.CreateTypeContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterCreateView(PrestoSqlParser.CreateViewContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitCreateView(PrestoSqlParser.CreateViewContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterDropView(PrestoSqlParser.DropViewContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitDropView(PrestoSqlParser.DropViewContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterCreateMaterializedView(PrestoSqlParser.CreateMaterializedViewContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitCreateMaterializedView(PrestoSqlParser.CreateMaterializedViewContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterDropMaterializedView(PrestoSqlParser.DropMaterializedViewContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitDropMaterializedView(PrestoSqlParser.DropMaterializedViewContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterRefreshMaterializedView(PrestoSqlParser.RefreshMaterializedViewContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitRefreshMaterializedView(PrestoSqlParser.RefreshMaterializedViewContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterCreateFunction(PrestoSqlParser.CreateFunctionContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitCreateFunction(PrestoSqlParser.CreateFunctionContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterAlterFunction(PrestoSqlParser.AlterFunctionContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitAlterFunction(PrestoSqlParser.AlterFunctionContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterDropFunction(PrestoSqlParser.DropFunctionContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitDropFunction(PrestoSqlParser.DropFunctionContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterCall(PrestoSqlParser.CallContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitCall(PrestoSqlParser.CallContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterCreateRole(PrestoSqlParser.CreateRoleContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitCreateRole(PrestoSqlParser.CreateRoleContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterDropRole(PrestoSqlParser.DropRoleContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitDropRole(PrestoSqlParser.DropRoleContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterGrantRoles(PrestoSqlParser.GrantRolesContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitGrantRoles(PrestoSqlParser.GrantRolesContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterRevokeRoles(PrestoSqlParser.RevokeRolesContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitRevokeRoles(PrestoSqlParser.RevokeRolesContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterSetRole(PrestoSqlParser.SetRoleContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitSetRole(PrestoSqlParser.SetRoleContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterGrant(PrestoSqlParser.GrantContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitGrant(PrestoSqlParser.GrantContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterRevoke(PrestoSqlParser.RevokeContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitRevoke(PrestoSqlParser.RevokeContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterShowGrants(PrestoSqlParser.ShowGrantsContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitShowGrants(PrestoSqlParser.ShowGrantsContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterExplain(PrestoSqlParser.ExplainContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitExplain(PrestoSqlParser.ExplainContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterShowCreateTable(PrestoSqlParser.ShowCreateTableContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitShowCreateTable(PrestoSqlParser.ShowCreateTableContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterShowCreateView(PrestoSqlParser.ShowCreateViewContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitShowCreateView(PrestoSqlParser.ShowCreateViewContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterShowCreateMaterializedView(PrestoSqlParser.ShowCreateMaterializedViewContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitShowCreateMaterializedView(PrestoSqlParser.ShowCreateMaterializedViewContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterShowCreateFunction(PrestoSqlParser.ShowCreateFunctionContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitShowCreateFunction(PrestoSqlParser.ShowCreateFunctionContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterShowTables(PrestoSqlParser.ShowTablesContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitShowTables(PrestoSqlParser.ShowTablesContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterShowSchemas(PrestoSqlParser.ShowSchemasContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitShowSchemas(PrestoSqlParser.ShowSchemasContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterShowCatalogs(PrestoSqlParser.ShowCatalogsContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitShowCatalogs(PrestoSqlParser.ShowCatalogsContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterShowColumns(PrestoSqlParser.ShowColumnsContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitShowColumns(PrestoSqlParser.ShowColumnsContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterShowStats(PrestoSqlParser.ShowStatsContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitShowStats(PrestoSqlParser.ShowStatsContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterShowStatsForQuery(PrestoSqlParser.ShowStatsForQueryContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitShowStatsForQuery(PrestoSqlParser.ShowStatsForQueryContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterShowRoles(PrestoSqlParser.ShowRolesContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitShowRoles(PrestoSqlParser.ShowRolesContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterShowRoleGrants(PrestoSqlParser.ShowRoleGrantsContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitShowRoleGrants(PrestoSqlParser.ShowRoleGrantsContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterShowFunctions(PrestoSqlParser.ShowFunctionsContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitShowFunctions(PrestoSqlParser.ShowFunctionsContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterShowSession(PrestoSqlParser.ShowSessionContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitShowSession(PrestoSqlParser.ShowSessionContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterSetSession(PrestoSqlParser.SetSessionContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitSetSession(PrestoSqlParser.SetSessionContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterResetSession(PrestoSqlParser.ResetSessionContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitResetSession(PrestoSqlParser.ResetSessionContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterStartTransaction(PrestoSqlParser.StartTransactionContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitStartTransaction(PrestoSqlParser.StartTransactionContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterCommit(PrestoSqlParser.CommitContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitCommit(PrestoSqlParser.CommitContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterRollback(PrestoSqlParser.RollbackContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitRollback(PrestoSqlParser.RollbackContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterPrepare(PrestoSqlParser.PrepareContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitPrepare(PrestoSqlParser.PrepareContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterDeallocate(PrestoSqlParser.DeallocateContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitDeallocate(PrestoSqlParser.DeallocateContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterExecute(PrestoSqlParser.ExecuteContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitExecute(PrestoSqlParser.ExecuteContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterDescribeInput(PrestoSqlParser.DescribeInputContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitDescribeInput(PrestoSqlParser.DescribeInputContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterDescribeOutput(PrestoSqlParser.DescribeOutputContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitDescribeOutput(PrestoSqlParser.DescribeOutputContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterQuery(PrestoSqlParser.QueryContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitQuery(PrestoSqlParser.QueryContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterWith(PrestoSqlParser.WithContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitWith(PrestoSqlParser.WithContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterTableElement(PrestoSqlParser.TableElementContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitTableElement(PrestoSqlParser.TableElementContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterColumnDefinition(PrestoSqlParser.ColumnDefinitionContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitColumnDefinition(PrestoSqlParser.ColumnDefinitionContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterLikeClause(PrestoSqlParser.LikeClauseContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitLikeClause(PrestoSqlParser.LikeClauseContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterProperties(PrestoSqlParser.PropertiesContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitProperties(PrestoSqlParser.PropertiesContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterProperty(PrestoSqlParser.PropertyContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitProperty(PrestoSqlParser.PropertyContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterSqlParameterDeclaration(PrestoSqlParser.SqlParameterDeclarationContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitSqlParameterDeclaration(PrestoSqlParser.SqlParameterDeclarationContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterRoutineCharacteristics(PrestoSqlParser.RoutineCharacteristicsContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitRoutineCharacteristics(PrestoSqlParser.RoutineCharacteristicsContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterRoutineCharacteristic(PrestoSqlParser.RoutineCharacteristicContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitRoutineCharacteristic(PrestoSqlParser.RoutineCharacteristicContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterAlterRoutineCharacteristics(PrestoSqlParser.AlterRoutineCharacteristicsContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitAlterRoutineCharacteristics(PrestoSqlParser.AlterRoutineCharacteristicsContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterAlterRoutineCharacteristic(PrestoSqlParser.AlterRoutineCharacteristicContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitAlterRoutineCharacteristic(PrestoSqlParser.AlterRoutineCharacteristicContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterRoutineBody(PrestoSqlParser.RoutineBodyContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitRoutineBody(PrestoSqlParser.RoutineBodyContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterReturnStatement(PrestoSqlParser.ReturnStatementContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitReturnStatement(PrestoSqlParser.ReturnStatementContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterExternalBodyReference(PrestoSqlParser.ExternalBodyReferenceContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitExternalBodyReference(PrestoSqlParser.ExternalBodyReferenceContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterLanguage(PrestoSqlParser.LanguageContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitLanguage(PrestoSqlParser.LanguageContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterDeterminism(PrestoSqlParser.DeterminismContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitDeterminism(PrestoSqlParser.DeterminismContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterNullCallClause(PrestoSqlParser.NullCallClauseContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitNullCallClause(PrestoSqlParser.NullCallClauseContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterExternalRoutineName(PrestoSqlParser.ExternalRoutineNameContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitExternalRoutineName(PrestoSqlParser.ExternalRoutineNameContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterQueryNoWith(PrestoSqlParser.QueryNoWithContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitQueryNoWith(PrestoSqlParser.QueryNoWithContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterQueryTermDefault(PrestoSqlParser.QueryTermDefaultContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitQueryTermDefault(PrestoSqlParser.QueryTermDefaultContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterSetOperation(PrestoSqlParser.SetOperationContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitSetOperation(PrestoSqlParser.SetOperationContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterQueryPrimaryDefault(PrestoSqlParser.QueryPrimaryDefaultContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitQueryPrimaryDefault(PrestoSqlParser.QueryPrimaryDefaultContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterTable(PrestoSqlParser.TableContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitTable(PrestoSqlParser.TableContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterInlineTable(PrestoSqlParser.InlineTableContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitInlineTable(PrestoSqlParser.InlineTableContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterSubquery(PrestoSqlParser.SubqueryContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitSubquery(PrestoSqlParser.SubqueryContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterSortItem(PrestoSqlParser.SortItemContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitSortItem(PrestoSqlParser.SortItemContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterQuerySpecification(PrestoSqlParser.QuerySpecificationContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitQuerySpecification(PrestoSqlParser.QuerySpecificationContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterGroupBy(PrestoSqlParser.GroupByContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitGroupBy(PrestoSqlParser.GroupByContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterSingleGroupingSet(PrestoSqlParser.SingleGroupingSetContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitSingleGroupingSet(PrestoSqlParser.SingleGroupingSetContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterRollup(PrestoSqlParser.RollupContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitRollup(PrestoSqlParser.RollupContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterCube(PrestoSqlParser.CubeContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitCube(PrestoSqlParser.CubeContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterMultipleGroupingSets(PrestoSqlParser.MultipleGroupingSetsContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitMultipleGroupingSets(PrestoSqlParser.MultipleGroupingSetsContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterGroupingSet(PrestoSqlParser.GroupingSetContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitGroupingSet(PrestoSqlParser.GroupingSetContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterNamedQuery(PrestoSqlParser.NamedQueryContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitNamedQuery(PrestoSqlParser.NamedQueryContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterSetQuantifier(PrestoSqlParser.SetQuantifierContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitSetQuantifier(PrestoSqlParser.SetQuantifierContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterSelectSingle(PrestoSqlParser.SelectSingleContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitSelectSingle(PrestoSqlParser.SelectSingleContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterSelectAll(PrestoSqlParser.SelectAllContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitSelectAll(PrestoSqlParser.SelectAllContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterRelationDefault(PrestoSqlParser.RelationDefaultContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitRelationDefault(PrestoSqlParser.RelationDefaultContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterJoinRelation(PrestoSqlParser.JoinRelationContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitJoinRelation(PrestoSqlParser.JoinRelationContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterJoinType(PrestoSqlParser.JoinTypeContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitJoinType(PrestoSqlParser.JoinTypeContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterJoinCriteria(PrestoSqlParser.JoinCriteriaContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitJoinCriteria(PrestoSqlParser.JoinCriteriaContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterSampledRelation(PrestoSqlParser.SampledRelationContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitSampledRelation(PrestoSqlParser.SampledRelationContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterSampleType(PrestoSqlParser.SampleTypeContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitSampleType(PrestoSqlParser.SampleTypeContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterAliasedRelation(PrestoSqlParser.AliasedRelationContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitAliasedRelation(PrestoSqlParser.AliasedRelationContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterColumnAliases(PrestoSqlParser.ColumnAliasesContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitColumnAliases(PrestoSqlParser.ColumnAliasesContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterTableName(PrestoSqlParser.TableNameContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitTableName(PrestoSqlParser.TableNameContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterSubqueryRelation(PrestoSqlParser.SubqueryRelationContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitSubqueryRelation(PrestoSqlParser.SubqueryRelationContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterUnnest(PrestoSqlParser.UnnestContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitUnnest(PrestoSqlParser.UnnestContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterLateral(PrestoSqlParser.LateralContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitLateral(PrestoSqlParser.LateralContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterParenthesizedRelation(PrestoSqlParser.ParenthesizedRelationContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitParenthesizedRelation(PrestoSqlParser.ParenthesizedRelationContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterExpression(PrestoSqlParser.ExpressionContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitExpression(PrestoSqlParser.ExpressionContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterLogicalNot(PrestoSqlParser.LogicalNotContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitLogicalNot(PrestoSqlParser.LogicalNotContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterPredicated(PrestoSqlParser.PredicatedContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitPredicated(PrestoSqlParser.PredicatedContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterLogicalBinary(PrestoSqlParser.LogicalBinaryContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitLogicalBinary(PrestoSqlParser.LogicalBinaryContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterComparison(PrestoSqlParser.ComparisonContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitComparison(PrestoSqlParser.ComparisonContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterQuantifiedComparison(PrestoSqlParser.QuantifiedComparisonContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitQuantifiedComparison(PrestoSqlParser.QuantifiedComparisonContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterBetween(PrestoSqlParser.BetweenContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitBetween(PrestoSqlParser.BetweenContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterInList(PrestoSqlParser.InListContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitInList(PrestoSqlParser.InListContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterInSubquery(PrestoSqlParser.InSubqueryContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitInSubquery(PrestoSqlParser.InSubqueryContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterLike(PrestoSqlParser.LikeContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitLike(PrestoSqlParser.LikeContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterNullPredicate(PrestoSqlParser.NullPredicateContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitNullPredicate(PrestoSqlParser.NullPredicateContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterDistinctFrom(PrestoSqlParser.DistinctFromContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitDistinctFrom(PrestoSqlParser.DistinctFromContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterValueExpressionDefault(PrestoSqlParser.ValueExpressionDefaultContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitValueExpressionDefault(PrestoSqlParser.ValueExpressionDefaultContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterConcatenation(PrestoSqlParser.ConcatenationContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitConcatenation(PrestoSqlParser.ConcatenationContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterArithmeticBinary(PrestoSqlParser.ArithmeticBinaryContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitArithmeticBinary(PrestoSqlParser.ArithmeticBinaryContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterArithmeticUnary(PrestoSqlParser.ArithmeticUnaryContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitArithmeticUnary(PrestoSqlParser.ArithmeticUnaryContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterAtTimeZone(PrestoSqlParser.AtTimeZoneContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitAtTimeZone(PrestoSqlParser.AtTimeZoneContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterDereference(PrestoSqlParser.DereferenceContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitDereference(PrestoSqlParser.DereferenceContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterTypeConstructor(PrestoSqlParser.TypeConstructorContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitTypeConstructor(PrestoSqlParser.TypeConstructorContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterSpecialDateTimeFunction(PrestoSqlParser.SpecialDateTimeFunctionContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitSpecialDateTimeFunction(PrestoSqlParser.SpecialDateTimeFunctionContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterSubstring(PrestoSqlParser.SubstringContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitSubstring(PrestoSqlParser.SubstringContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterCast(PrestoSqlParser.CastContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitCast(PrestoSqlParser.CastContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterLambda(PrestoSqlParser.LambdaContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitLambda(PrestoSqlParser.LambdaContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterParenthesizedExpression(PrestoSqlParser.ParenthesizedExpressionContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitParenthesizedExpression(PrestoSqlParser.ParenthesizedExpressionContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterParameter(PrestoSqlParser.ParameterContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitParameter(PrestoSqlParser.ParameterContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterNormalize(PrestoSqlParser.NormalizeContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitNormalize(PrestoSqlParser.NormalizeContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterIntervalLiteral(PrestoSqlParser.IntervalLiteralContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitIntervalLiteral(PrestoSqlParser.IntervalLiteralContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterNumericLiteral(PrestoSqlParser.NumericLiteralContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitNumericLiteral(PrestoSqlParser.NumericLiteralContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterBooleanLiteral(PrestoSqlParser.BooleanLiteralContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitBooleanLiteral(PrestoSqlParser.BooleanLiteralContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterSimpleCase(PrestoSqlParser.SimpleCaseContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitSimpleCase(PrestoSqlParser.SimpleCaseContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterColumnReference(PrestoSqlParser.ColumnReferenceContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitColumnReference(PrestoSqlParser.ColumnReferenceContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterNullLiteral(PrestoSqlParser.NullLiteralContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitNullLiteral(PrestoSqlParser.NullLiteralContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterRowConstructor(PrestoSqlParser.RowConstructorContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitRowConstructor(PrestoSqlParser.RowConstructorContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterSubscript(PrestoSqlParser.SubscriptContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitSubscript(PrestoSqlParser.SubscriptContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterSubqueryExpression(PrestoSqlParser.SubqueryExpressionContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitSubqueryExpression(PrestoSqlParser.SubqueryExpressionContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterBinaryLiteral(PrestoSqlParser.BinaryLiteralContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitBinaryLiteral(PrestoSqlParser.BinaryLiteralContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterCurrentUser(PrestoSqlParser.CurrentUserContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitCurrentUser(PrestoSqlParser.CurrentUserContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterExtract(PrestoSqlParser.ExtractContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitExtract(PrestoSqlParser.ExtractContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterStringLiteral(PrestoSqlParser.StringLiteralContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitStringLiteral(PrestoSqlParser.StringLiteralContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterArrayConstructor(PrestoSqlParser.ArrayConstructorContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitArrayConstructor(PrestoSqlParser.ArrayConstructorContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterFunctionCall(PrestoSqlParser.FunctionCallContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitFunctionCall(PrestoSqlParser.FunctionCallContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterExists(PrestoSqlParser.ExistsContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitExists(PrestoSqlParser.ExistsContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterPosition(PrestoSqlParser.PositionContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitPosition(PrestoSqlParser.PositionContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterSearchedCase(PrestoSqlParser.SearchedCaseContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitSearchedCase(PrestoSqlParser.SearchedCaseContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterGroupingOperation(PrestoSqlParser.GroupingOperationContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitGroupingOperation(PrestoSqlParser.GroupingOperationContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterBasicStringLiteral(PrestoSqlParser.BasicStringLiteralContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitBasicStringLiteral(PrestoSqlParser.BasicStringLiteralContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterUnicodeStringLiteral(PrestoSqlParser.UnicodeStringLiteralContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitUnicodeStringLiteral(PrestoSqlParser.UnicodeStringLiteralContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterNullTreatment(PrestoSqlParser.NullTreatmentContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitNullTreatment(PrestoSqlParser.NullTreatmentContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterTimeZoneInterval(PrestoSqlParser.TimeZoneIntervalContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitTimeZoneInterval(PrestoSqlParser.TimeZoneIntervalContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterTimeZoneString(PrestoSqlParser.TimeZoneStringContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitTimeZoneString(PrestoSqlParser.TimeZoneStringContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterComparisonOperator(PrestoSqlParser.ComparisonOperatorContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitComparisonOperator(PrestoSqlParser.ComparisonOperatorContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterComparisonQuantifier(PrestoSqlParser.ComparisonQuantifierContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitComparisonQuantifier(PrestoSqlParser.ComparisonQuantifierContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterBooleanValue(PrestoSqlParser.BooleanValueContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitBooleanValue(PrestoSqlParser.BooleanValueContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterInterval(PrestoSqlParser.IntervalContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitInterval(PrestoSqlParser.IntervalContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterIntervalField(PrestoSqlParser.IntervalFieldContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitIntervalField(PrestoSqlParser.IntervalFieldContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterNormalForm(PrestoSqlParser.NormalFormContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitNormalForm(PrestoSqlParser.NormalFormContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterTypes(PrestoSqlParser.TypesContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitTypes(PrestoSqlParser.TypesContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterType(PrestoSqlParser.TypeContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitType(PrestoSqlParser.TypeContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterTypeParameter(PrestoSqlParser.TypeParameterContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitTypeParameter(PrestoSqlParser.TypeParameterContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterBaseType(PrestoSqlParser.BaseTypeContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitBaseType(PrestoSqlParser.BaseTypeContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterWhenClause(PrestoSqlParser.WhenClauseContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitWhenClause(PrestoSqlParser.WhenClauseContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterFilter(PrestoSqlParser.FilterContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitFilter(PrestoSqlParser.FilterContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterOver(PrestoSqlParser.OverContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitOver(PrestoSqlParser.OverContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterWindowFrame(PrestoSqlParser.WindowFrameContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitWindowFrame(PrestoSqlParser.WindowFrameContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterUnboundedFrame(PrestoSqlParser.UnboundedFrameContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitUnboundedFrame(PrestoSqlParser.UnboundedFrameContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterCurrentRowBound(PrestoSqlParser.CurrentRowBoundContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitCurrentRowBound(PrestoSqlParser.CurrentRowBoundContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterBoundedFrame(PrestoSqlParser.BoundedFrameContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitBoundedFrame(PrestoSqlParser.BoundedFrameContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterExplainFormat(PrestoSqlParser.ExplainFormatContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitExplainFormat(PrestoSqlParser.ExplainFormatContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterExplainType(PrestoSqlParser.ExplainTypeContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitExplainType(PrestoSqlParser.ExplainTypeContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterIsolationLevel(PrestoSqlParser.IsolationLevelContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitIsolationLevel(PrestoSqlParser.IsolationLevelContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterTransactionAccessMode(PrestoSqlParser.TransactionAccessModeContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitTransactionAccessMode(PrestoSqlParser.TransactionAccessModeContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterReadUncommitted(PrestoSqlParser.ReadUncommittedContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitReadUncommitted(PrestoSqlParser.ReadUncommittedContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterReadCommitted(PrestoSqlParser.ReadCommittedContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitReadCommitted(PrestoSqlParser.ReadCommittedContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterRepeatableRead(PrestoSqlParser.RepeatableReadContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitRepeatableRead(PrestoSqlParser.RepeatableReadContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterSerializable(PrestoSqlParser.SerializableContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitSerializable(PrestoSqlParser.SerializableContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterPositionalArgument(PrestoSqlParser.PositionalArgumentContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitPositionalArgument(PrestoSqlParser.PositionalArgumentContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterNamedArgument(PrestoSqlParser.NamedArgumentContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitNamedArgument(PrestoSqlParser.NamedArgumentContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterPrivilege(PrestoSqlParser.PrivilegeContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitPrivilege(PrestoSqlParser.PrivilegeContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterQualifiedName(PrestoSqlParser.QualifiedNameContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitQualifiedName(PrestoSqlParser.QualifiedNameContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterCurrentUserGrantor(PrestoSqlParser.CurrentUserGrantorContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitCurrentUserGrantor(PrestoSqlParser.CurrentUserGrantorContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterCurrentRoleGrantor(PrestoSqlParser.CurrentRoleGrantorContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitCurrentRoleGrantor(PrestoSqlParser.CurrentRoleGrantorContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterSpecifiedPrincipal(PrestoSqlParser.SpecifiedPrincipalContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitSpecifiedPrincipal(PrestoSqlParser.SpecifiedPrincipalContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterUserPrincipal(PrestoSqlParser.UserPrincipalContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitUserPrincipal(PrestoSqlParser.UserPrincipalContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterRolePrincipal(PrestoSqlParser.RolePrincipalContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitRolePrincipal(PrestoSqlParser.RolePrincipalContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterUnspecifiedPrincipal(PrestoSqlParser.UnspecifiedPrincipalContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitUnspecifiedPrincipal(PrestoSqlParser.UnspecifiedPrincipalContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterRoles(PrestoSqlParser.RolesContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitRoles(PrestoSqlParser.RolesContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterUnquotedIdentifier(PrestoSqlParser.UnquotedIdentifierContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitUnquotedIdentifier(PrestoSqlParser.UnquotedIdentifierContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterQuotedIdentifier(PrestoSqlParser.QuotedIdentifierContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitQuotedIdentifier(PrestoSqlParser.QuotedIdentifierContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterBackQuotedIdentifier(PrestoSqlParser.BackQuotedIdentifierContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitBackQuotedIdentifier(PrestoSqlParser.BackQuotedIdentifierContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterDigitIdentifier(PrestoSqlParser.DigitIdentifierContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitDigitIdentifier(PrestoSqlParser.DigitIdentifierContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterDecimalLiteral(PrestoSqlParser.DecimalLiteralContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitDecimalLiteral(PrestoSqlParser.DecimalLiteralContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterDoubleLiteral(PrestoSqlParser.DoubleLiteralContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitDoubleLiteral(PrestoSqlParser.DoubleLiteralContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterIntegerLiteral(PrestoSqlParser.IntegerLiteralContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitIntegerLiteral(PrestoSqlParser.IntegerLiteralContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterNonReserved(PrestoSqlParser.NonReservedContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitNonReserved(PrestoSqlParser.NonReservedContext ctx) { }
+
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void enterEveryRule(ParserRuleContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void exitEveryRule(ParserRuleContext ctx) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void visitTerminal(TerminalNode node) { }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation does nothing.
+ */
+ @Override public void visitErrorNode(ErrorNode node) { }
+}
\ No newline at end of file
diff --git a/src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlBaseVisitor.java b/src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlBaseVisitor.java
new file mode 100644
index 0000000..121b11b
--- /dev/null
+++ b/src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlBaseVisitor.java
@@ -0,0 +1,1456 @@
+// Generated from com/github/bigdata/sql/antlr4/presto/PrestoSql.g4 by ANTLR 4.7
+package com.github.bigdata.sql.antlr4.presto;
+import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor;
+
+/**
+ * This class provides an empty implementation of {@link PrestoSqlVisitor},
+ * which can be extended to create a visitor which only needs to handle a subset
+ * of the available methods.
+ *
+ * @param The return type of the visit operation. Use {@link Void} for
+ * operations with no return type.
+ */
+public class PrestoSqlBaseVisitor extends AbstractParseTreeVisitor implements PrestoSqlVisitor {
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitSingleStatement(PrestoSqlParser.SingleStatementContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitStandaloneExpression(PrestoSqlParser.StandaloneExpressionContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitStandaloneRoutineBody(PrestoSqlParser.StandaloneRoutineBodyContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitStatementDefault(PrestoSqlParser.StatementDefaultContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitUse(PrestoSqlParser.UseContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitCreateSchema(PrestoSqlParser.CreateSchemaContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitDropSchema(PrestoSqlParser.DropSchemaContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitRenameSchema(PrestoSqlParser.RenameSchemaContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitCreateTableAsSelect(PrestoSqlParser.CreateTableAsSelectContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitCreateTable(PrestoSqlParser.CreateTableContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitDropTable(PrestoSqlParser.DropTableContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitInsertInto(PrestoSqlParser.InsertIntoContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitDelete(PrestoSqlParser.DeleteContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitRenameTable(PrestoSqlParser.RenameTableContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitRenameColumn(PrestoSqlParser.RenameColumnContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitDropColumn(PrestoSqlParser.DropColumnContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitAddColumn(PrestoSqlParser.AddColumnContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitAnalyze(PrestoSqlParser.AnalyzeContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitCreateType(PrestoSqlParser.CreateTypeContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitCreateView(PrestoSqlParser.CreateViewContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitDropView(PrestoSqlParser.DropViewContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitCreateMaterializedView(PrestoSqlParser.CreateMaterializedViewContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitDropMaterializedView(PrestoSqlParser.DropMaterializedViewContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitRefreshMaterializedView(PrestoSqlParser.RefreshMaterializedViewContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitCreateFunction(PrestoSqlParser.CreateFunctionContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitAlterFunction(PrestoSqlParser.AlterFunctionContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitDropFunction(PrestoSqlParser.DropFunctionContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitCall(PrestoSqlParser.CallContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitCreateRole(PrestoSqlParser.CreateRoleContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitDropRole(PrestoSqlParser.DropRoleContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitGrantRoles(PrestoSqlParser.GrantRolesContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitRevokeRoles(PrestoSqlParser.RevokeRolesContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitSetRole(PrestoSqlParser.SetRoleContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitGrant(PrestoSqlParser.GrantContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitRevoke(PrestoSqlParser.RevokeContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitShowGrants(PrestoSqlParser.ShowGrantsContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitExplain(PrestoSqlParser.ExplainContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitShowCreateTable(PrestoSqlParser.ShowCreateTableContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitShowCreateView(PrestoSqlParser.ShowCreateViewContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitShowCreateMaterializedView(PrestoSqlParser.ShowCreateMaterializedViewContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitShowCreateFunction(PrestoSqlParser.ShowCreateFunctionContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitShowTables(PrestoSqlParser.ShowTablesContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitShowSchemas(PrestoSqlParser.ShowSchemasContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitShowCatalogs(PrestoSqlParser.ShowCatalogsContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitShowColumns(PrestoSqlParser.ShowColumnsContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitShowStats(PrestoSqlParser.ShowStatsContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitShowStatsForQuery(PrestoSqlParser.ShowStatsForQueryContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitShowRoles(PrestoSqlParser.ShowRolesContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitShowRoleGrants(PrestoSqlParser.ShowRoleGrantsContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitShowFunctions(PrestoSqlParser.ShowFunctionsContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitShowSession(PrestoSqlParser.ShowSessionContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitSetSession(PrestoSqlParser.SetSessionContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitResetSession(PrestoSqlParser.ResetSessionContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitStartTransaction(PrestoSqlParser.StartTransactionContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitCommit(PrestoSqlParser.CommitContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitRollback(PrestoSqlParser.RollbackContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitPrepare(PrestoSqlParser.PrepareContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitDeallocate(PrestoSqlParser.DeallocateContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitExecute(PrestoSqlParser.ExecuteContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitDescribeInput(PrestoSqlParser.DescribeInputContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitDescribeOutput(PrestoSqlParser.DescribeOutputContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitQuery(PrestoSqlParser.QueryContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitWith(PrestoSqlParser.WithContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitTableElement(PrestoSqlParser.TableElementContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitColumnDefinition(PrestoSqlParser.ColumnDefinitionContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitLikeClause(PrestoSqlParser.LikeClauseContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitProperties(PrestoSqlParser.PropertiesContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitProperty(PrestoSqlParser.PropertyContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitSqlParameterDeclaration(PrestoSqlParser.SqlParameterDeclarationContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitRoutineCharacteristics(PrestoSqlParser.RoutineCharacteristicsContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitRoutineCharacteristic(PrestoSqlParser.RoutineCharacteristicContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitAlterRoutineCharacteristics(PrestoSqlParser.AlterRoutineCharacteristicsContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitAlterRoutineCharacteristic(PrestoSqlParser.AlterRoutineCharacteristicContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitRoutineBody(PrestoSqlParser.RoutineBodyContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitReturnStatement(PrestoSqlParser.ReturnStatementContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitExternalBodyReference(PrestoSqlParser.ExternalBodyReferenceContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitLanguage(PrestoSqlParser.LanguageContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitDeterminism(PrestoSqlParser.DeterminismContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitNullCallClause(PrestoSqlParser.NullCallClauseContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitExternalRoutineName(PrestoSqlParser.ExternalRoutineNameContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitQueryNoWith(PrestoSqlParser.QueryNoWithContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitQueryTermDefault(PrestoSqlParser.QueryTermDefaultContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitSetOperation(PrestoSqlParser.SetOperationContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitQueryPrimaryDefault(PrestoSqlParser.QueryPrimaryDefaultContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitTable(PrestoSqlParser.TableContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitInlineTable(PrestoSqlParser.InlineTableContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitSubquery(PrestoSqlParser.SubqueryContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitSortItem(PrestoSqlParser.SortItemContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitQuerySpecification(PrestoSqlParser.QuerySpecificationContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitGroupBy(PrestoSqlParser.GroupByContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitSingleGroupingSet(PrestoSqlParser.SingleGroupingSetContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitRollup(PrestoSqlParser.RollupContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitCube(PrestoSqlParser.CubeContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitMultipleGroupingSets(PrestoSqlParser.MultipleGroupingSetsContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitGroupingSet(PrestoSqlParser.GroupingSetContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitNamedQuery(PrestoSqlParser.NamedQueryContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitSetQuantifier(PrestoSqlParser.SetQuantifierContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitSelectSingle(PrestoSqlParser.SelectSingleContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitSelectAll(PrestoSqlParser.SelectAllContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitRelationDefault(PrestoSqlParser.RelationDefaultContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitJoinRelation(PrestoSqlParser.JoinRelationContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitJoinType(PrestoSqlParser.JoinTypeContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitJoinCriteria(PrestoSqlParser.JoinCriteriaContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitSampledRelation(PrestoSqlParser.SampledRelationContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitSampleType(PrestoSqlParser.SampleTypeContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitAliasedRelation(PrestoSqlParser.AliasedRelationContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitColumnAliases(PrestoSqlParser.ColumnAliasesContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitTableName(PrestoSqlParser.TableNameContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitSubqueryRelation(PrestoSqlParser.SubqueryRelationContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitUnnest(PrestoSqlParser.UnnestContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitLateral(PrestoSqlParser.LateralContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitParenthesizedRelation(PrestoSqlParser.ParenthesizedRelationContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitExpression(PrestoSqlParser.ExpressionContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitLogicalNot(PrestoSqlParser.LogicalNotContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitPredicated(PrestoSqlParser.PredicatedContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitLogicalBinary(PrestoSqlParser.LogicalBinaryContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitComparison(PrestoSqlParser.ComparisonContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitQuantifiedComparison(PrestoSqlParser.QuantifiedComparisonContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitBetween(PrestoSqlParser.BetweenContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitInList(PrestoSqlParser.InListContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitInSubquery(PrestoSqlParser.InSubqueryContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitLike(PrestoSqlParser.LikeContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitNullPredicate(PrestoSqlParser.NullPredicateContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitDistinctFrom(PrestoSqlParser.DistinctFromContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitValueExpressionDefault(PrestoSqlParser.ValueExpressionDefaultContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitConcatenation(PrestoSqlParser.ConcatenationContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitArithmeticBinary(PrestoSqlParser.ArithmeticBinaryContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitArithmeticUnary(PrestoSqlParser.ArithmeticUnaryContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitAtTimeZone(PrestoSqlParser.AtTimeZoneContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitDereference(PrestoSqlParser.DereferenceContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitTypeConstructor(PrestoSqlParser.TypeConstructorContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitSpecialDateTimeFunction(PrestoSqlParser.SpecialDateTimeFunctionContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitSubstring(PrestoSqlParser.SubstringContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitCast(PrestoSqlParser.CastContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitLambda(PrestoSqlParser.LambdaContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitParenthesizedExpression(PrestoSqlParser.ParenthesizedExpressionContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitParameter(PrestoSqlParser.ParameterContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitNormalize(PrestoSqlParser.NormalizeContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitIntervalLiteral(PrestoSqlParser.IntervalLiteralContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitNumericLiteral(PrestoSqlParser.NumericLiteralContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitBooleanLiteral(PrestoSqlParser.BooleanLiteralContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitSimpleCase(PrestoSqlParser.SimpleCaseContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitColumnReference(PrestoSqlParser.ColumnReferenceContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitNullLiteral(PrestoSqlParser.NullLiteralContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitRowConstructor(PrestoSqlParser.RowConstructorContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitSubscript(PrestoSqlParser.SubscriptContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitSubqueryExpression(PrestoSqlParser.SubqueryExpressionContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitBinaryLiteral(PrestoSqlParser.BinaryLiteralContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitCurrentUser(PrestoSqlParser.CurrentUserContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitExtract(PrestoSqlParser.ExtractContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitStringLiteral(PrestoSqlParser.StringLiteralContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitArrayConstructor(PrestoSqlParser.ArrayConstructorContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitFunctionCall(PrestoSqlParser.FunctionCallContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitExists(PrestoSqlParser.ExistsContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitPosition(PrestoSqlParser.PositionContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitSearchedCase(PrestoSqlParser.SearchedCaseContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitGroupingOperation(PrestoSqlParser.GroupingOperationContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitBasicStringLiteral(PrestoSqlParser.BasicStringLiteralContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitUnicodeStringLiteral(PrestoSqlParser.UnicodeStringLiteralContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitNullTreatment(PrestoSqlParser.NullTreatmentContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitTimeZoneInterval(PrestoSqlParser.TimeZoneIntervalContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitTimeZoneString(PrestoSqlParser.TimeZoneStringContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitComparisonOperator(PrestoSqlParser.ComparisonOperatorContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitComparisonQuantifier(PrestoSqlParser.ComparisonQuantifierContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitBooleanValue(PrestoSqlParser.BooleanValueContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitInterval(PrestoSqlParser.IntervalContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitIntervalField(PrestoSqlParser.IntervalFieldContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitNormalForm(PrestoSqlParser.NormalFormContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitTypes(PrestoSqlParser.TypesContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitType(PrestoSqlParser.TypeContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitTypeParameter(PrestoSqlParser.TypeParameterContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitBaseType(PrestoSqlParser.BaseTypeContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitWhenClause(PrestoSqlParser.WhenClauseContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitFilter(PrestoSqlParser.FilterContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitOver(PrestoSqlParser.OverContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitWindowFrame(PrestoSqlParser.WindowFrameContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitUnboundedFrame(PrestoSqlParser.UnboundedFrameContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitCurrentRowBound(PrestoSqlParser.CurrentRowBoundContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitBoundedFrame(PrestoSqlParser.BoundedFrameContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitExplainFormat(PrestoSqlParser.ExplainFormatContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitExplainType(PrestoSqlParser.ExplainTypeContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitIsolationLevel(PrestoSqlParser.IsolationLevelContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitTransactionAccessMode(PrestoSqlParser.TransactionAccessModeContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitReadUncommitted(PrestoSqlParser.ReadUncommittedContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitReadCommitted(PrestoSqlParser.ReadCommittedContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitRepeatableRead(PrestoSqlParser.RepeatableReadContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitSerializable(PrestoSqlParser.SerializableContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitPositionalArgument(PrestoSqlParser.PositionalArgumentContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitNamedArgument(PrestoSqlParser.NamedArgumentContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitPrivilege(PrestoSqlParser.PrivilegeContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitQualifiedName(PrestoSqlParser.QualifiedNameContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitCurrentUserGrantor(PrestoSqlParser.CurrentUserGrantorContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitCurrentRoleGrantor(PrestoSqlParser.CurrentRoleGrantorContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitSpecifiedPrincipal(PrestoSqlParser.SpecifiedPrincipalContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitUserPrincipal(PrestoSqlParser.UserPrincipalContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitRolePrincipal(PrestoSqlParser.RolePrincipalContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitUnspecifiedPrincipal(PrestoSqlParser.UnspecifiedPrincipalContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitRoles(PrestoSqlParser.RolesContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitUnquotedIdentifier(PrestoSqlParser.UnquotedIdentifierContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitQuotedIdentifier(PrestoSqlParser.QuotedIdentifierContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitBackQuotedIdentifier(PrestoSqlParser.BackQuotedIdentifierContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitDigitIdentifier(PrestoSqlParser.DigitIdentifierContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitDecimalLiteral(PrestoSqlParser.DecimalLiteralContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitDoubleLiteral(PrestoSqlParser.DoubleLiteralContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitIntegerLiteral(PrestoSqlParser.IntegerLiteralContext ctx) { return visitChildren(ctx); }
+ /**
+ * {@inheritDoc}
+ *
+ * The default implementation returns the result of calling
+ * {@link #visitChildren} on {@code ctx}.
+ */
+ @Override public T visitNonReserved(PrestoSqlParser.NonReservedContext ctx) { return visitChildren(ctx); }
+}
\ No newline at end of file
diff --git a/src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlLexer.java b/src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlLexer.java
new file mode 100644
index 0000000..de3c65d
--- /dev/null
+++ b/src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlLexer.java
@@ -0,0 +1,1059 @@
+// Generated from com/github/bigdata/sql/antlr4/presto/PrestoSql.g4 by ANTLR 4.7
+package com.github.bigdata.sql.antlr4.presto;
+import org.antlr.v4.runtime.Lexer;
+import org.antlr.v4.runtime.CharStream;
+import org.antlr.v4.runtime.Token;
+import org.antlr.v4.runtime.TokenStream;
+import org.antlr.v4.runtime.*;
+import org.antlr.v4.runtime.atn.*;
+import org.antlr.v4.runtime.dfa.DFA;
+import org.antlr.v4.runtime.misc.*;
+
+@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
+public class PrestoSqlLexer extends Lexer {
+ static { RuntimeMetaData.checkVersion("4.7", RuntimeMetaData.VERSION); }
+
+ protected static final DFA[] _decisionToDFA;
+ protected static final PredictionContextCache _sharedContextCache =
+ new PredictionContextCache();
+ public static final int
+ T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9,
+ ADD=10, ADMIN=11, ALL=12, ALTER=13, ANALYZE=14, AND=15, ANY=16, ARRAY=17,
+ AS=18, ASC=19, AT=20, BERNOULLI=21, BETWEEN=22, BY=23, CALL=24, CALLED=25,
+ CASCADE=26, CASE=27, CAST=28, CATALOGS=29, COLUMN=30, COLUMNS=31, COMMENT=32,
+ COMMIT=33, COMMITTED=34, CONSTRAINT=35, CREATE=36, CROSS=37, CUBE=38,
+ CURRENT=39, CURRENT_DATE=40, CURRENT_ROLE=41, CURRENT_TIME=42, CURRENT_TIMESTAMP=43,
+ CURRENT_USER=44, DATA=45, DATE=46, DAY=47, DEALLOCATE=48, DEFINER=49,
+ DELETE=50, DESC=51, DESCRIBE=52, DETERMINISTIC=53, DISTINCT=54, DISTRIBUTED=55,
+ DROP=56, ELSE=57, END=58, ESCAPE=59, EXCEPT=60, EXCLUDING=61, EXECUTE=62,
+ EXISTS=63, EXPLAIN=64, EXTRACT=65, EXTERNAL=66, FALSE=67, FILTER=68, FIRST=69,
+ FOLLOWING=70, FOR=71, FORMAT=72, FROM=73, FULL=74, FUNCTION=75, FUNCTIONS=76,
+ GRANT=77, GRANTED=78, GRANTS=79, GRAPHVIZ=80, GROUP=81, GROUPING=82, HAVING=83,
+ HOUR=84, IF=85, IGNORE=86, IN=87, INCLUDING=88, INNER=89, INPUT=90, INSERT=91,
+ INTERSECT=92, INTERVAL=93, INTO=94, INVOKER=95, IO=96, IS=97, ISOLATION=98,
+ JSON=99, JOIN=100, LANGUAGE=101, LAST=102, LATERAL=103, LEFT=104, LEVEL=105,
+ LIKE=106, LIMIT=107, LOCALTIME=108, LOCALTIMESTAMP=109, LOGICAL=110, MAP=111,
+ MATERIALIZED=112, MINUTE=113, MONTH=114, NAME=115, NATURAL=116, NFC=117,
+ NFD=118, NFKC=119, NFKD=120, NO=121, NONE=122, NORMALIZE=123, NOT=124,
+ NULL=125, NULLIF=126, NULLS=127, OFFSET=128, ON=129, ONLY=130, OPTION=131,
+ OR=132, ORDER=133, ORDINALITY=134, OUTER=135, OUTPUT=136, OVER=137, PARTITION=138,
+ PARTITIONS=139, POSITION=140, PRECEDING=141, PREPARE=142, PRIVILEGES=143,
+ PROPERTIES=144, RANGE=145, READ=146, RECURSIVE=147, REFRESH=148, RENAME=149,
+ REPEATABLE=150, REPLACE=151, RESET=152, RESPECT=153, RESTRICT=154, RETURN=155,
+ RETURNS=156, REVOKE=157, RIGHT=158, ROLE=159, ROLES=160, ROLLBACK=161,
+ ROLLUP=162, ROW=163, ROWS=164, SCHEMA=165, SCHEMAS=166, SECOND=167, SECURITY=168,
+ SELECT=169, SERIALIZABLE=170, SESSION=171, SET=172, SETS=173, SHOW=174,
+ SOME=175, SQL=176, START=177, STATS=178, SUBSTRING=179, SYSTEM=180, TABLE=181,
+ TABLES=182, TABLESAMPLE=183, TEMPORARY=184, TEXT=185, THEN=186, TIME=187,
+ TIMESTAMP=188, TO=189, TRANSACTION=190, TRUE=191, TRY_CAST=192, TYPE=193,
+ UESCAPE=194, UNBOUNDED=195, UNCOMMITTED=196, UNION=197, UNNEST=198, USE=199,
+ USER=200, USING=201, VALIDATE=202, VALUES=203, VERBOSE=204, VIEW=205,
+ WHEN=206, WHERE=207, WITH=208, WORK=209, WRITE=210, YEAR=211, ZONE=212,
+ EQ=213, NEQ=214, LT=215, LTE=216, GT=217, GTE=218, PLUS=219, MINUS=220,
+ ASTERISK=221, SLASH=222, PERCENT=223, CONCAT=224, STRING=225, UNICODE_STRING=226,
+ BINARY_LITERAL=227, INTEGER_VALUE=228, DECIMAL_VALUE=229, DOUBLE_VALUE=230,
+ IDENTIFIER=231, DIGIT_IDENTIFIER=232, QUOTED_IDENTIFIER=233, BACKQUOTED_IDENTIFIER=234,
+ TIME_WITH_TIME_ZONE=235, TIMESTAMP_WITH_TIME_ZONE=236, DOUBLE_PRECISION=237,
+ SIMPLE_COMMENT=238, BRACKETED_COMMENT=239, WS=240, UNRECOGNIZED=241;
+ public static String[] channelNames = {
+ "DEFAULT_TOKEN_CHANNEL", "HIDDEN"
+ };
+
+ public static String[] modeNames = {
+ "DEFAULT_MODE"
+ };
+
+ public static final String[] ruleNames = {
+ "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "T__8",
+ "ADD", "ADMIN", "ALL", "ALTER", "ANALYZE", "AND", "ANY", "ARRAY", "AS",
+ "ASC", "AT", "BERNOULLI", "BETWEEN", "BY", "CALL", "CALLED", "CASCADE",
+ "CASE", "CAST", "CATALOGS", "COLUMN", "COLUMNS", "COMMENT", "COMMIT",
+ "COMMITTED", "CONSTRAINT", "CREATE", "CROSS", "CUBE", "CURRENT", "CURRENT_DATE",
+ "CURRENT_ROLE", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_USER", "DATA",
+ "DATE", "DAY", "DEALLOCATE", "DEFINER", "DELETE", "DESC", "DESCRIBE",
+ "DETERMINISTIC", "DISTINCT", "DISTRIBUTED", "DROP", "ELSE", "END", "ESCAPE",
+ "EXCEPT", "EXCLUDING", "EXECUTE", "EXISTS", "EXPLAIN", "EXTRACT", "EXTERNAL",
+ "FALSE", "FILTER", "FIRST", "FOLLOWING", "FOR", "FORMAT", "FROM", "FULL",
+ "FUNCTION", "FUNCTIONS", "GRANT", "GRANTED", "GRANTS", "GRAPHVIZ", "GROUP",
+ "GROUPING", "HAVING", "HOUR", "IF", "IGNORE", "IN", "INCLUDING", "INNER",
+ "INPUT", "INSERT", "INTERSECT", "INTERVAL", "INTO", "INVOKER", "IO", "IS",
+ "ISOLATION", "JSON", "JOIN", "LANGUAGE", "LAST", "LATERAL", "LEFT", "LEVEL",
+ "LIKE", "LIMIT", "LOCALTIME", "LOCALTIMESTAMP", "LOGICAL", "MAP", "MATERIALIZED",
+ "MINUTE", "MONTH", "NAME", "NATURAL", "NFC", "NFD", "NFKC", "NFKD", "NO",
+ "NONE", "NORMALIZE", "NOT", "NULL", "NULLIF", "NULLS", "OFFSET", "ON",
+ "ONLY", "OPTION", "OR", "ORDER", "ORDINALITY", "OUTER", "OUTPUT", "OVER",
+ "PARTITION", "PARTITIONS", "POSITION", "PRECEDING", "PREPARE", "PRIVILEGES",
+ "PROPERTIES", "RANGE", "READ", "RECURSIVE", "REFRESH", "RENAME", "REPEATABLE",
+ "REPLACE", "RESET", "RESPECT", "RESTRICT", "RETURN", "RETURNS", "REVOKE",
+ "RIGHT", "ROLE", "ROLES", "ROLLBACK", "ROLLUP", "ROW", "ROWS", "SCHEMA",
+ "SCHEMAS", "SECOND", "SECURITY", "SELECT", "SERIALIZABLE", "SESSION",
+ "SET", "SETS", "SHOW", "SOME", "SQL", "START", "STATS", "SUBSTRING", "SYSTEM",
+ "TABLE", "TABLES", "TABLESAMPLE", "TEMPORARY", "TEXT", "THEN", "TIME",
+ "TIMESTAMP", "TO", "TRANSACTION", "TRUE", "TRY_CAST", "TYPE", "UESCAPE",
+ "UNBOUNDED", "UNCOMMITTED", "UNION", "UNNEST", "USE", "USER", "USING",
+ "VALIDATE", "VALUES", "VERBOSE", "VIEW", "WHEN", "WHERE", "WITH", "WORK",
+ "WRITE", "YEAR", "ZONE", "EQ", "NEQ", "LT", "LTE", "GT", "GTE", "PLUS",
+ "MINUS", "ASTERISK", "SLASH", "PERCENT", "CONCAT", "STRING", "UNICODE_STRING",
+ "BINARY_LITERAL", "INTEGER_VALUE", "DECIMAL_VALUE", "DOUBLE_VALUE", "IDENTIFIER",
+ "DIGIT_IDENTIFIER", "QUOTED_IDENTIFIER", "BACKQUOTED_IDENTIFIER", "TIME_WITH_TIME_ZONE",
+ "TIMESTAMP_WITH_TIME_ZONE", "DOUBLE_PRECISION", "EXPONENT", "DIGIT", "LETTER",
+ "SIMPLE_COMMENT", "BRACKETED_COMMENT", "WS", "UNRECOGNIZED"
+ };
+
+ private static final String[] _LITERAL_NAMES = {
+ null, "'.'", "'('", "')'", "','", "'?'", "'->'", "'['", "']'", "'=>'",
+ "'ADD'", "'ADMIN'", "'ALL'", "'ALTER'", "'ANALYZE'", "'AND'", "'ANY'",
+ "'ARRAY'", "'AS'", "'ASC'", "'AT'", "'BERNOULLI'", "'BETWEEN'", "'BY'",
+ "'CALL'", "'CALLED'", "'CASCADE'", "'CASE'", "'CAST'", "'CATALOGS'", "'COLUMN'",
+ "'COLUMNS'", "'COMMENT'", "'COMMIT'", "'COMMITTED'", "'CONSTRAINT'", "'CREATE'",
+ "'CROSS'", "'CUBE'", "'CURRENT'", "'CURRENT_DATE'", "'CURRENT_ROLE'",
+ "'CURRENT_TIME'", "'CURRENT_TIMESTAMP'", "'CURRENT_USER'", "'DATA'", "'DATE'",
+ "'DAY'", "'DEALLOCATE'", "'DEFINER'", "'DELETE'", "'DESC'", "'DESCRIBE'",
+ "'DETERMINISTIC'", "'DISTINCT'", "'DISTRIBUTED'", "'DROP'", "'ELSE'",
+ "'END'", "'ESCAPE'", "'EXCEPT'", "'EXCLUDING'", "'EXECUTE'", "'EXISTS'",
+ "'EXPLAIN'", "'EXTRACT'", "'EXTERNAL'", "'FALSE'", "'FILTER'", "'FIRST'",
+ "'FOLLOWING'", "'FOR'", "'FORMAT'", "'FROM'", "'FULL'", "'FUNCTION'",
+ "'FUNCTIONS'", "'GRANT'", "'GRANTED'", "'GRANTS'", "'GRAPHVIZ'", "'GROUP'",
+ "'GROUPING'", "'HAVING'", "'HOUR'", "'IF'", "'IGNORE'", "'IN'", "'INCLUDING'",
+ "'INNER'", "'INPUT'", "'INSERT'", "'INTERSECT'", "'INTERVAL'", "'INTO'",
+ "'INVOKER'", "'IO'", "'IS'", "'ISOLATION'", "'JSON'", "'JOIN'", "'LANGUAGE'",
+ "'LAST'", "'LATERAL'", "'LEFT'", "'LEVEL'", "'LIKE'", "'LIMIT'", "'LOCALTIME'",
+ "'LOCALTIMESTAMP'", "'LOGICAL'", "'MAP'", "'MATERIALIZED'", "'MINUTE'",
+ "'MONTH'", "'NAME'", "'NATURAL'", "'NFC'", "'NFD'", "'NFKC'", "'NFKD'",
+ "'NO'", "'NONE'", "'NORMALIZE'", "'NOT'", "'NULL'", "'NULLIF'", "'NULLS'",
+ "'OFFSET'", "'ON'", "'ONLY'", "'OPTION'", "'OR'", "'ORDER'", "'ORDINALITY'",
+ "'OUTER'", "'OUTPUT'", "'OVER'", "'PARTITION'", "'PARTITIONS'", "'POSITION'",
+ "'PRECEDING'", "'PREPARE'", "'PRIVILEGES'", "'PROPERTIES'", "'RANGE'",
+ "'READ'", "'RECURSIVE'", "'REFRESH'", "'RENAME'", "'REPEATABLE'", "'REPLACE'",
+ "'RESET'", "'RESPECT'", "'RESTRICT'", "'RETURN'", "'RETURNS'", "'REVOKE'",
+ "'RIGHT'", "'ROLE'", "'ROLES'", "'ROLLBACK'", "'ROLLUP'", "'ROW'", "'ROWS'",
+ "'SCHEMA'", "'SCHEMAS'", "'SECOND'", "'SECURITY'", "'SELECT'", "'SERIALIZABLE'",
+ "'SESSION'", "'SET'", "'SETS'", "'SHOW'", "'SOME'", "'SQL'", "'START'",
+ "'STATS'", "'SUBSTRING'", "'SYSTEM'", "'TABLE'", "'TABLES'", "'TABLESAMPLE'",
+ "'TEMPORARY'", "'TEXT'", "'THEN'", "'TIME'", "'TIMESTAMP'", "'TO'", "'TRANSACTION'",
+ "'TRUE'", "'TRY_CAST'", "'TYPE'", "'UESCAPE'", "'UNBOUNDED'", "'UNCOMMITTED'",
+ "'UNION'", "'UNNEST'", "'USE'", "'USER'", "'USING'", "'VALIDATE'", "'VALUES'",
+ "'VERBOSE'", "'VIEW'", "'WHEN'", "'WHERE'", "'WITH'", "'WORK'", "'WRITE'",
+ "'YEAR'", "'ZONE'", "'='", null, "'<'", "'<='", "'>'", "'>='", "'+'",
+ "'-'", "'*'", "'/'", "'%'", "'||'"
+ };
+ private static final String[] _SYMBOLIC_NAMES = {
+ null, null, null, null, null, null, null, null, null, null, "ADD", "ADMIN",
+ "ALL", "ALTER", "ANALYZE", "AND", "ANY", "ARRAY", "AS", "ASC", "AT", "BERNOULLI",
+ "BETWEEN", "BY", "CALL", "CALLED", "CASCADE", "CASE", "CAST", "CATALOGS",
+ "COLUMN", "COLUMNS", "COMMENT", "COMMIT", "COMMITTED", "CONSTRAINT", "CREATE",
+ "CROSS", "CUBE", "CURRENT", "CURRENT_DATE", "CURRENT_ROLE", "CURRENT_TIME",
+ "CURRENT_TIMESTAMP", "CURRENT_USER", "DATA", "DATE", "DAY", "DEALLOCATE",
+ "DEFINER", "DELETE", "DESC", "DESCRIBE", "DETERMINISTIC", "DISTINCT",
+ "DISTRIBUTED", "DROP", "ELSE", "END", "ESCAPE", "EXCEPT", "EXCLUDING",
+ "EXECUTE", "EXISTS", "EXPLAIN", "EXTRACT", "EXTERNAL", "FALSE", "FILTER",
+ "FIRST", "FOLLOWING", "FOR", "FORMAT", "FROM", "FULL", "FUNCTION", "FUNCTIONS",
+ "GRANT", "GRANTED", "GRANTS", "GRAPHVIZ", "GROUP", "GROUPING", "HAVING",
+ "HOUR", "IF", "IGNORE", "IN", "INCLUDING", "INNER", "INPUT", "INSERT",
+ "INTERSECT", "INTERVAL", "INTO", "INVOKER", "IO", "IS", "ISOLATION", "JSON",
+ "JOIN", "LANGUAGE", "LAST", "LATERAL", "LEFT", "LEVEL", "LIKE", "LIMIT",
+ "LOCALTIME", "LOCALTIMESTAMP", "LOGICAL", "MAP", "MATERIALIZED", "MINUTE",
+ "MONTH", "NAME", "NATURAL", "NFC", "NFD", "NFKC", "NFKD", "NO", "NONE",
+ "NORMALIZE", "NOT", "NULL", "NULLIF", "NULLS", "OFFSET", "ON", "ONLY",
+ "OPTION", "OR", "ORDER", "ORDINALITY", "OUTER", "OUTPUT", "OVER", "PARTITION",
+ "PARTITIONS", "POSITION", "PRECEDING", "PREPARE", "PRIVILEGES", "PROPERTIES",
+ "RANGE", "READ", "RECURSIVE", "REFRESH", "RENAME", "REPEATABLE", "REPLACE",
+ "RESET", "RESPECT", "RESTRICT", "RETURN", "RETURNS", "REVOKE", "RIGHT",
+ "ROLE", "ROLES", "ROLLBACK", "ROLLUP", "ROW", "ROWS", "SCHEMA", "SCHEMAS",
+ "SECOND", "SECURITY", "SELECT", "SERIALIZABLE", "SESSION", "SET", "SETS",
+ "SHOW", "SOME", "SQL", "START", "STATS", "SUBSTRING", "SYSTEM", "TABLE",
+ "TABLES", "TABLESAMPLE", "TEMPORARY", "TEXT", "THEN", "TIME", "TIMESTAMP",
+ "TO", "TRANSACTION", "TRUE", "TRY_CAST", "TYPE", "UESCAPE", "UNBOUNDED",
+ "UNCOMMITTED", "UNION", "UNNEST", "USE", "USER", "USING", "VALIDATE",
+ "VALUES", "VERBOSE", "VIEW", "WHEN", "WHERE", "WITH", "WORK", "WRITE",
+ "YEAR", "ZONE", "EQ", "NEQ", "LT", "LTE", "GT", "GTE", "PLUS", "MINUS",
+ "ASTERISK", "SLASH", "PERCENT", "CONCAT", "STRING", "UNICODE_STRING",
+ "BINARY_LITERAL", "INTEGER_VALUE", "DECIMAL_VALUE", "DOUBLE_VALUE", "IDENTIFIER",
+ "DIGIT_IDENTIFIER", "QUOTED_IDENTIFIER", "BACKQUOTED_IDENTIFIER", "TIME_WITH_TIME_ZONE",
+ "TIMESTAMP_WITH_TIME_ZONE", "DOUBLE_PRECISION", "SIMPLE_COMMENT", "BRACKETED_COMMENT",
+ "WS", "UNRECOGNIZED"
+ };
+ 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;
+ }
+
+
+ public PrestoSqlLexer(CharStream input) {
+ super(input);
+ _interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
+ }
+
+ @Override
+ public String getGrammarFileName() { return "PrestoSql.g4"; }
+
+ @Override
+ public String[] getRuleNames() { return ruleNames; }
+
+ @Override
+ public String getSerializedATN() { return _serializedATN; }
+
+ @Override
+ public String[] getChannelNames() { return channelNames; }
+
+ @Override
+ public String[] getModeNames() { return modeNames; }
+
+ @Override
+ public ATN getATN() { return _ATN; }
+
+ public static final String _serializedATN =
+ "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2\u00f3\u08b0\b\1\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\4"+
+ "I\tI\4J\tJ\4K\tK\4L\tL\4M\tM\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\t"+
+ "T\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"+
+ "\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\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\4\u008d\t\u008d"+
+ "\4\u008e\t\u008e\4\u008f\t\u008f\4\u0090\t\u0090\4\u0091\t\u0091\4\u0092"+
+ "\t\u0092\4\u0093\t\u0093\4\u0094\t\u0094\4\u0095\t\u0095\4\u0096\t\u0096"+
+ "\4\u0097\t\u0097\4\u0098\t\u0098\4\u0099\t\u0099\4\u009a\t\u009a\4\u009b"+
+ "\t\u009b\4\u009c\t\u009c\4\u009d\t\u009d\4\u009e\t\u009e\4\u009f\t\u009f"+
+ "\4\u00a0\t\u00a0\4\u00a1\t\u00a1\4\u00a2\t\u00a2\4\u00a3\t\u00a3\4\u00a4"+
+ "\t\u00a4\4\u00a5\t\u00a5\4\u00a6\t\u00a6\4\u00a7\t\u00a7\4\u00a8\t\u00a8"+
+ "\4\u00a9\t\u00a9\4\u00aa\t\u00aa\4\u00ab\t\u00ab\4\u00ac\t\u00ac\4\u00ad"+
+ "\t\u00ad\4\u00ae\t\u00ae\4\u00af\t\u00af\4\u00b0\t\u00b0\4\u00b1\t\u00b1"+
+ "\4\u00b2\t\u00b2\4\u00b3\t\u00b3\4\u00b4\t\u00b4\4\u00b5\t\u00b5\4\u00b6"+
+ "\t\u00b6\4\u00b7\t\u00b7\4\u00b8\t\u00b8\4\u00b9\t\u00b9\4\u00ba\t\u00ba"+
+ "\4\u00bb\t\u00bb\4\u00bc\t\u00bc\4\u00bd\t\u00bd\4\u00be\t\u00be\4\u00bf"+
+ "\t\u00bf\4\u00c0\t\u00c0\4\u00c1\t\u00c1\4\u00c2\t\u00c2\4\u00c3\t\u00c3"+
+ "\4\u00c4\t\u00c4\4\u00c5\t\u00c5\4\u00c6\t\u00c6\4\u00c7\t\u00c7\4\u00c8"+
+ "\t\u00c8\4\u00c9\t\u00c9\4\u00ca\t\u00ca\4\u00cb\t\u00cb\4\u00cc\t\u00cc"+
+ "\4\u00cd\t\u00cd\4\u00ce\t\u00ce\4\u00cf\t\u00cf\4\u00d0\t\u00d0\4\u00d1"+
+ "\t\u00d1\4\u00d2\t\u00d2\4\u00d3\t\u00d3\4\u00d4\t\u00d4\4\u00d5\t\u00d5"+
+ "\4\u00d6\t\u00d6\4\u00d7\t\u00d7\4\u00d8\t\u00d8\4\u00d9\t\u00d9\4\u00da"+
+ "\t\u00da\4\u00db\t\u00db\4\u00dc\t\u00dc\4\u00dd\t\u00dd\4\u00de\t\u00de"+
+ "\4\u00df\t\u00df\4\u00e0\t\u00e0\4\u00e1\t\u00e1\4\u00e2\t\u00e2\4\u00e3"+
+ "\t\u00e3\4\u00e4\t\u00e4\4\u00e5\t\u00e5\4\u00e6\t\u00e6\4\u00e7\t\u00e7"+
+ "\4\u00e8\t\u00e8\4\u00e9\t\u00e9\4\u00ea\t\u00ea\4\u00eb\t\u00eb\4\u00ec"+
+ "\t\u00ec\4\u00ed\t\u00ed\4\u00ee\t\u00ee\4\u00ef\t\u00ef\4\u00f0\t\u00f0"+
+ "\4\u00f1\t\u00f1\4\u00f2\t\u00f2\4\u00f3\t\u00f3\4\u00f4\t\u00f4\4\u00f5"+
+ "\t\u00f5\3\2\3\2\3\3\3\3\3\4\3\4\3\5\3\5\3\6\3\6\3\7\3\7\3\7\3\b\3\b\3"+
+ "\t\3\t\3\n\3\n\3\n\3\13\3\13\3\13\3\13\3\f\3\f\3\f\3\f\3\f\3\f\3\r\3\r"+
+ "\3\r\3\r\3\16\3\16\3\16\3\16\3\16\3\16\3\17\3\17\3\17\3\17\3\17\3\17\3"+
+ "\17\3\17\3\20\3\20\3\20\3\20\3\21\3\21\3\21\3\21\3\22\3\22\3\22\3\22\3"+
+ "\22\3\22\3\23\3\23\3\23\3\24\3\24\3\24\3\24\3\25\3\25\3\25\3\26\3\26\3"+
+ "\26\3\26\3\26\3\26\3\26\3\26\3\26\3\26\3\27\3\27\3\27\3\27\3\27\3\27\3"+
+ "\27\3\27\3\30\3\30\3\30\3\31\3\31\3\31\3\31\3\31\3\32\3\32\3\32\3\32\3"+
+ "\32\3\32\3\32\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\34\3\34\3\34\3"+
+ "\34\3\34\3\35\3\35\3\35\3\35\3\35\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3"+
+ "\36\3\36\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3 \3 \3 \3 \3 \3 \3 \3 \3"+
+ "!\3!\3!\3!\3!\3!\3!\3!\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3#\3#\3#\3#\3#\3#\3"+
+ "#\3#\3#\3#\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3%\3%\3%\3%\3%\3%\3%\3&\3"+
+ "&\3&\3&\3&\3&\3\'\3\'\3\'\3\'\3\'\3(\3(\3(\3(\3(\3(\3(\3(\3)\3)\3)\3)"+
+ "\3)\3)\3)\3)\3)\3)\3)\3)\3)\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3+"+
+ "\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,\3,"+
+ "\3,\3,\3,\3,\3,\3,\3,\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3-\3.\3.\3."+
+ "\3.\3.\3/\3/\3/\3/\3/\3\60\3\60\3\60\3\60\3\61\3\61\3\61\3\61\3\61\3\61"+
+ "\3\61\3\61\3\61\3\61\3\61\3\62\3\62\3\62\3\62\3\62\3\62\3\62\3\62\3\63"+
+ "\3\63\3\63\3\63\3\63\3\63\3\63\3\64\3\64\3\64\3\64\3\64\3\65\3\65\3\65"+
+ "\3\65\3\65\3\65\3\65\3\65\3\65\3\66\3\66\3\66\3\66\3\66\3\66\3\66\3\66"+
+ "\3\66\3\66\3\66\3\66\3\66\3\66\3\67\3\67\3\67\3\67\3\67\3\67\3\67\3\67"+
+ "\3\67\38\38\38\38\38\38\38\38\38\38\38\38\39\39\39\39\39\3:\3:\3:\3:\3"+
+ ":\3;\3;\3;\3;\3<\3<\3<\3<\3<\3<\3<\3=\3=\3=\3=\3=\3=\3=\3>\3>\3>\3>\3"+
+ ">\3>\3>\3>\3>\3>\3?\3?\3?\3?\3?\3?\3?\3?\3@\3@\3@\3@\3@\3@\3@\3A\3A\3"+
+ "A\3A\3A\3A\3A\3A\3B\3B\3B\3B\3B\3B\3B\3B\3C\3C\3C\3C\3C\3C\3C\3C\3C\3"+
+ "D\3D\3D\3D\3D\3D\3E\3E\3E\3E\3E\3E\3E\3F\3F\3F\3F\3F\3F\3G\3G\3G\3G\3"+
+ "G\3G\3G\3G\3G\3G\3H\3H\3H\3H\3I\3I\3I\3I\3I\3I\3I\3J\3J\3J\3J\3J\3K\3"+
+ "K\3K\3K\3K\3L\3L\3L\3L\3L\3L\3L\3L\3L\3M\3M\3M\3M\3M\3M\3M\3M\3M\3M\3"+
+ "N\3N\3N\3N\3N\3N\3O\3O\3O\3O\3O\3O\3O\3O\3P\3P\3P\3P\3P\3P\3P\3Q\3Q\3"+
+ "Q\3Q\3Q\3Q\3Q\3Q\3Q\3R\3R\3R\3R\3R\3R\3S\3S\3S\3S\3S\3S\3S\3S\3S\3T\3"+
+ "T\3T\3T\3T\3T\3T\3U\3U\3U\3U\3U\3V\3V\3V\3W\3W\3W\3W\3W\3W\3W\3X\3X\3"+
+ "X\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Z\3Z\3Z\3Z\3Z\3Z\3[\3[\3[\3[\3[\3[\3"+
+ "\\\3\\\3\\\3\\\3\\\3\\\3\\\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3^\3^\3^\3^\3"+
+ "^\3^\3^\3^\3^\3_\3_\3_\3_\3_\3`\3`\3`\3`\3`\3`\3`\3`\3a\3a\3a\3b\3b\3"+
+ "b\3c\3c\3c\3c\3c\3c\3c\3c\3c\3c\3d\3d\3d\3d\3d\3e\3e\3e\3e\3e\3f\3f\3"+
+ "f\3f\3f\3f\3f\3f\3f\3g\3g\3g\3g\3g\3h\3h\3h\3h\3h\3h\3h\3h\3i\3i\3i\3"+
+ "i\3i\3j\3j\3j\3j\3j\3j\3k\3k\3k\3k\3k\3l\3l\3l\3l\3l\3l\3m\3m\3m\3m\3"+
+ "m\3m\3m\3m\3m\3m\3n\3n\3n\3n\3n\3n\3n\3n\3n\3n\3n\3n\3n\3n\3n\3o\3o\3"+
+ "o\3o\3o\3o\3o\3o\3p\3p\3p\3p\3q\3q\3q\3q\3q\3q\3q\3q\3q\3q\3q\3q\3q\3"+
+ "r\3r\3r\3r\3r\3r\3r\3s\3s\3s\3s\3s\3s\3t\3t\3t\3t\3t\3u\3u\3u\3u\3u\3"+
+ "u\3u\3u\3v\3v\3v\3v\3w\3w\3w\3w\3x\3x\3x\3x\3x\3y\3y\3y\3y\3y\3z\3z\3"+
+ "z\3{\3{\3{\3{\3{\3|\3|\3|\3|\3|\3|\3|\3|\3|\3|\3}\3}\3}\3}\3~\3~\3~\3"+
+ "~\3~\3\177\3\177\3\177\3\177\3\177\3\177\3\177\3\u0080\3\u0080\3\u0080"+
+ "\3\u0080\3\u0080\3\u0080\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081"+
+ "\3\u0081\3\u0082\3\u0082\3\u0082\3\u0083\3\u0083\3\u0083\3\u0083\3\u0083"+
+ "\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0085\3\u0085"+
+ "\3\u0085\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086\3\u0087\3\u0087"+
+ "\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087"+
+ "\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0089\3\u0089\3\u0089"+
+ "\3\u0089\3\u0089\3\u0089\3\u0089\3\u008a\3\u008a\3\u008a\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\u008c\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c"+
+ "\3\u008c\3\u008c\3\u008c\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d"+
+ "\3\u008d\3\u008d\3\u008d\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e"+
+ "\3\u008e\3\u008e\3\u008e\3\u008e\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f"+
+ "\3\u008f\3\u008f\3\u008f\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090"+
+ "\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0091\3\u0091\3\u0091\3\u0091"+
+ "\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0092\3\u0092"+
+ "\3\u0092\3\u0092\3\u0092\3\u0092\3\u0093\3\u0093\3\u0093\3\u0093\3\u0093"+
+ "\3\u0094\3\u0094\3\u0094\3\u0094\3\u0094\3\u0094\3\u0094\3\u0094\3\u0094"+
+ "\3\u0094\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095"+
+ "\3\u0096\3\u0096\3\u0096\3\u0096\3\u0096\3\u0096\3\u0096\3\u0097\3\u0097"+
+ "\3\u0097\3\u0097\3\u0097\3\u0097\3\u0097\3\u0097\3\u0097\3\u0097\3\u0097"+
+ "\3\u0098\3\u0098\3\u0098\3\u0098\3\u0098\3\u0098\3\u0098\3\u0098\3\u0099"+
+ "\3\u0099\3\u0099\3\u0099\3\u0099\3\u0099\3\u009a\3\u009a\3\u009a\3\u009a"+
+ "\3\u009a\3\u009a\3\u009a\3\u009a\3\u009b\3\u009b\3\u009b\3\u009b\3\u009b"+
+ "\3\u009b\3\u009b\3\u009b\3\u009b\3\u009c\3\u009c\3\u009c\3\u009c\3\u009c"+
+ "\3\u009c\3\u009c\3\u009d\3\u009d\3\u009d\3\u009d\3\u009d\3\u009d\3\u009d"+
+ "\3\u009d\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e\3\u009f"+
+ "\3\u009f\3\u009f\3\u009f\3\u009f\3\u009f\3\u00a0\3\u00a0\3\u00a0\3\u00a0"+
+ "\3\u00a0\3\u00a1\3\u00a1\3\u00a1\3\u00a1\3\u00a1\3\u00a1\3\u00a2\3\u00a2"+
+ "\3\u00a2\3\u00a2\3\u00a2\3\u00a2\3\u00a2\3\u00a2\3\u00a2\3\u00a3\3\u00a3"+
+ "\3\u00a3\3\u00a3\3\u00a3\3\u00a3\3\u00a3\3\u00a4\3\u00a4\3\u00a4\3\u00a4"+
+ "\3\u00a5\3\u00a5\3\u00a5\3\u00a5\3\u00a5\3\u00a6\3\u00a6\3\u00a6\3\u00a6"+
+ "\3\u00a6\3\u00a6\3\u00a6\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7"+
+ "\3\u00a7\3\u00a7\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a8"+
+ "\3\u00a9\3\u00a9\3\u00a9\3\u00a9\3\u00a9\3\u00a9\3\u00a9\3\u00a9\3\u00a9"+
+ "\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00ab\3\u00ab"+
+ "\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab"+
+ "\3\u00ab\3\u00ab\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac"+
+ "\3\u00ac\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ae\3\u00ae\3\u00ae\3\u00ae"+
+ "\3\u00ae\3\u00af\3\u00af\3\u00af\3\u00af\3\u00af\3\u00b0\3\u00b0\3\u00b0"+
+ "\3\u00b0\3\u00b0\3\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b2\3\u00b2\3\u00b2"+
+ "\3\u00b2\3\u00b2\3\u00b2\3\u00b3\3\u00b3\3\u00b3\3\u00b3\3\u00b3\3\u00b3"+
+ "\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4"+
+ "\3\u00b4\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b6"+
+ "\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b7\3\u00b7\3\u00b7\3\u00b7"+
+ "\3\u00b7\3\u00b7\3\u00b7\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8"+
+ "\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b9\3\u00b9\3\u00b9"+
+ "\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00ba\3\u00ba"+
+ "\3\u00ba\3\u00ba\3\u00ba\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bc"+
+ "\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd"+
+ "\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00be\3\u00be\3\u00be\3\u00bf"+
+ "\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf"+
+ "\3\u00bf\3\u00bf\3\u00c0\3\u00c0\3\u00c0\3\u00c0\3\u00c0\3\u00c1\3\u00c1"+
+ "\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c2\3\u00c2"+
+ "\3\u00c2\3\u00c2\3\u00c2\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3"+
+ "\3\u00c3\3\u00c3\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4\3\u00c4"+
+ "\3\u00c4\3\u00c4\3\u00c4\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5"+
+ "\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c5\3\u00c6\3\u00c6\3\u00c6"+
+ "\3\u00c6\3\u00c6\3\u00c6\3\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7"+
+ "\3\u00c7\3\u00c8\3\u00c8\3\u00c8\3\u00c8\3\u00c9\3\u00c9\3\u00c9\3\u00c9"+
+ "\3\u00c9\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00cb\3\u00cb"+
+ "\3\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cc\3\u00cc"+
+ "\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cd\3\u00cd\3\u00cd\3\u00cd"+
+ "\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00ce\3\u00ce\3\u00ce\3\u00ce\3\u00ce"+
+ "\3\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00d0\3\u00d0\3\u00d0\3\u00d0"+
+ "\3\u00d0\3\u00d0\3\u00d1\3\u00d1\3\u00d1\3\u00d1\3\u00d1\3\u00d2\3\u00d2"+
+ "\3\u00d2\3\u00d2\3\u00d2\3\u00d3\3\u00d3\3\u00d3\3\u00d3\3\u00d3\3\u00d3"+
+ "\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d5\3\u00d5\3\u00d5\3\u00d5"+
+ "\3\u00d5\3\u00d6\3\u00d6\3\u00d7\3\u00d7\3\u00d7\3\u00d7\5\u00d7\u079d"+
+ "\n\u00d7\3\u00d8\3\u00d8\3\u00d9\3\u00d9\3\u00d9\3\u00da\3\u00da\3\u00db"+
+ "\3\u00db\3\u00db\3\u00dc\3\u00dc\3\u00dd\3\u00dd\3\u00de\3\u00de\3\u00df"+
+ "\3\u00df\3\u00e0\3\u00e0\3\u00e1\3\u00e1\3\u00e1\3\u00e2\3\u00e2\3\u00e2"+
+ "\3\u00e2\7\u00e2\u07ba\n\u00e2\f\u00e2\16\u00e2\u07bd\13\u00e2\3\u00e2"+
+ "\3\u00e2\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\7\u00e3"+
+ "\u07c8\n\u00e3\f\u00e3\16\u00e3\u07cb\13\u00e3\3\u00e3\3\u00e3\3\u00e4"+
+ "\3\u00e4\3\u00e4\3\u00e4\7\u00e4\u07d3\n\u00e4\f\u00e4\16\u00e4\u07d6"+
+ "\13\u00e4\3\u00e4\3\u00e4\3\u00e5\6\u00e5\u07db\n\u00e5\r\u00e5\16\u00e5"+
+ "\u07dc\3\u00e6\6\u00e6\u07e0\n\u00e6\r\u00e6\16\u00e6\u07e1\3\u00e6\3"+
+ "\u00e6\7\u00e6\u07e6\n\u00e6\f\u00e6\16\u00e6\u07e9\13\u00e6\3\u00e6\3"+
+ "\u00e6\6\u00e6\u07ed\n\u00e6\r\u00e6\16\u00e6\u07ee\5\u00e6\u07f1\n\u00e6"+
+ "\3\u00e7\6\u00e7\u07f4\n\u00e7\r\u00e7\16\u00e7\u07f5\3\u00e7\3\u00e7"+
+ "\7\u00e7\u07fa\n\u00e7\f\u00e7\16\u00e7\u07fd\13\u00e7\5\u00e7\u07ff\n"+
+ "\u00e7\3\u00e7\3\u00e7\3\u00e7\3\u00e7\6\u00e7\u0805\n\u00e7\r\u00e7\16"+
+ "\u00e7\u0806\3\u00e7\3\u00e7\5\u00e7\u080b\n\u00e7\3\u00e8\3\u00e8\5\u00e8"+
+ "\u080f\n\u00e8\3\u00e8\3\u00e8\3\u00e8\7\u00e8\u0814\n\u00e8\f\u00e8\16"+
+ "\u00e8\u0817\13\u00e8\3\u00e9\3\u00e9\3\u00e9\3\u00e9\6\u00e9\u081d\n"+
+ "\u00e9\r\u00e9\16\u00e9\u081e\3\u00ea\3\u00ea\3\u00ea\3\u00ea\7\u00ea"+
+ "\u0825\n\u00ea\f\u00ea\16\u00ea\u0828\13\u00ea\3\u00ea\3\u00ea\3\u00eb"+
+ "\3\u00eb\3\u00eb\3\u00eb\7\u00eb\u0830\n\u00eb\f\u00eb\16\u00eb\u0833"+
+ "\13\u00eb\3\u00eb\3\u00eb\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec"+
+ "\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec"+
+ "\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ed"+
+ "\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed"+
+ "\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed"+
+ "\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed\3\u00ed"+
+ "\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee"+
+ "\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee\3\u00ee"+
+ "\3\u00ef\3\u00ef\5\u00ef\u087e\n\u00ef\3\u00ef\6\u00ef\u0881\n\u00ef\r"+
+ "\u00ef\16\u00ef\u0882\3\u00f0\3\u00f0\3\u00f1\3\u00f1\3\u00f2\3\u00f2"+
+ "\3\u00f2\3\u00f2\7\u00f2\u088d\n\u00f2\f\u00f2\16\u00f2\u0890\13\u00f2"+
+ "\3\u00f2\5\u00f2\u0893\n\u00f2\3\u00f2\5\u00f2\u0896\n\u00f2\3\u00f2\3"+
+ "\u00f2\3\u00f3\3\u00f3\3\u00f3\3\u00f3\7\u00f3\u089e\n\u00f3\f\u00f3\16"+
+ "\u00f3\u08a1\13\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f3\3\u00f4"+
+ "\6\u00f4\u08a9\n\u00f4\r\u00f4\16\u00f4\u08aa\3\u00f4\3\u00f4\3\u00f5"+
+ "\3\u00f5\3\u089f\2\u00f6\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n\23\13\25\f"+
+ "\27\r\31\16\33\17\35\20\37\21!\22#\23%\24\'\25)\26+\27-\30/\31\61\32\63"+
+ "\33\65\34\67\359\36;\37= ?!A\"C#E$G%I&K\'M(O)Q*S+U,W-Y.[/]\60_\61a\62"+
+ "c\63e\64g\65i\66k\67m8o9q:s;u{?}@\177A\u0081B\u0083C\u0085D\u0087"+
+ "E\u0089F\u008bG\u008dH\u008fI\u0091J\u0093K\u0095L\u0097M\u0099N\u009b"+
+ "O\u009dP\u009fQ\u00a1R\u00a3S\u00a5T\u00a7U\u00a9V\u00abW\u00adX\u00af"+
+ "Y\u00b1Z\u00b3[\u00b5\\\u00b7]\u00b9^\u00bb_\u00bd`\u00bfa\u00c1b\u00c3"+
+ "c\u00c5d\u00c7e\u00c9f\u00cbg\u00cdh\u00cfi\u00d1j\u00d3k\u00d5l\u00d7"+
+ "m\u00d9n\u00dbo\u00ddp\u00dfq\u00e1r\u00e3s\u00e5t\u00e7u\u00e9v\u00eb"+
+ "w\u00edx\u00efy\u00f1z\u00f3{\u00f5|\u00f7}\u00f9~\u00fb\177\u00fd\u0080"+
+ "\u00ff\u0081\u0101\u0082\u0103\u0083\u0105\u0084\u0107\u0085\u0109\u0086"+
+ "\u010b\u0087\u010d\u0088\u010f\u0089\u0111\u008a\u0113\u008b\u0115\u008c"+
+ "\u0117\u008d\u0119\u008e\u011b\u008f\u011d\u0090\u011f\u0091\u0121\u0092"+
+ "\u0123\u0093\u0125\u0094\u0127\u0095\u0129\u0096\u012b\u0097\u012d\u0098"+
+ "\u012f\u0099\u0131\u009a\u0133\u009b\u0135\u009c\u0137\u009d\u0139\u009e"+
+ "\u013b\u009f\u013d\u00a0\u013f\u00a1\u0141\u00a2\u0143\u00a3\u0145\u00a4"+
+ "\u0147\u00a5\u0149\u00a6\u014b\u00a7\u014d\u00a8\u014f\u00a9\u0151\u00aa"+
+ "\u0153\u00ab\u0155\u00ac\u0157\u00ad\u0159\u00ae\u015b\u00af\u015d\u00b0"+
+ "\u015f\u00b1\u0161\u00b2\u0163\u00b3\u0165\u00b4\u0167\u00b5\u0169\u00b6"+
+ "\u016b\u00b7\u016d\u00b8\u016f\u00b9\u0171\u00ba\u0173\u00bb\u0175\u00bc"+
+ "\u0177\u00bd\u0179\u00be\u017b\u00bf\u017d\u00c0\u017f\u00c1\u0181\u00c2"+
+ "\u0183\u00c3\u0185\u00c4\u0187\u00c5\u0189\u00c6\u018b\u00c7\u018d\u00c8"+
+ "\u018f\u00c9\u0191\u00ca\u0193\u00cb\u0195\u00cc\u0197\u00cd\u0199\u00ce"+
+ "\u019b\u00cf\u019d\u00d0\u019f\u00d1\u01a1\u00d2\u01a3\u00d3\u01a5\u00d4"+
+ "\u01a7\u00d5\u01a9\u00d6\u01ab\u00d7\u01ad\u00d8\u01af\u00d9\u01b1\u00da"+
+ "\u01b3\u00db\u01b5\u00dc\u01b7\u00dd\u01b9\u00de\u01bb\u00df\u01bd\u00e0"+
+ "\u01bf\u00e1\u01c1\u00e2\u01c3\u00e3\u01c5\u00e4\u01c7\u00e5\u01c9\u00e6"+
+ "\u01cb\u00e7\u01cd\u00e8\u01cf\u00e9\u01d1\u00ea\u01d3\u00eb\u01d5\u00ec"+
+ "\u01d7\u00ed\u01d9\u00ee\u01db\u00ef\u01dd\2\u01df\2\u01e1\2\u01e3\u00f0"+
+ "\u01e5\u00f1\u01e7\u00f2\u01e9\u00f3\3\2\13\3\2))\5\2<\3\2\2\2\u0276\u0277\7E\2\2\u0277\u0278"+
+ "\7Q\2\2\u0278\u0279\7N\2\2\u0279\u027a\7W\2\2\u027a\u027b\7O\2\2\u027b"+
+ "\u027c\7P\2\2\u027c\u027d\7U\2\2\u027d@\3\2\2\2\u027e\u027f\7E\2\2\u027f"+
+ "\u0280\7Q\2\2\u0280\u0281\7O\2\2\u0281\u0282\7O\2\2\u0282\u0283\7G\2\2"+
+ "\u0283\u0284\7P\2\2\u0284\u0285\7V\2\2\u0285B\3\2\2\2\u0286\u0287\7E\2"+
+ "\2\u0287\u0288\7Q\2\2\u0288\u0289\7O\2\2\u0289\u028a\7O\2\2\u028a\u028b"+
+ "\7K\2\2\u028b\u028c\7V\2\2\u028cD\3\2\2\2\u028d\u028e\7E\2\2\u028e\u028f"+
+ "\7Q\2\2\u028f\u0290\7O\2\2\u0290\u0291\7O\2\2\u0291\u0292\7K\2\2\u0292"+
+ "\u0293\7V\2\2\u0293\u0294\7V\2\2\u0294\u0295\7G\2\2\u0295\u0296\7F\2\2"+
+ "\u0296F\3\2\2\2\u0297\u0298\7E\2\2\u0298\u0299\7Q\2\2\u0299\u029a\7P\2"+
+ "\2\u029a\u029b\7U\2\2\u029b\u029c\7V\2\2\u029c\u029d\7T\2\2\u029d\u029e"+
+ "\7C\2\2\u029e\u029f\7K\2\2\u029f\u02a0\7P\2\2\u02a0\u02a1\7V\2\2\u02a1"+
+ "H\3\2\2\2\u02a2\u02a3\7E\2\2\u02a3\u02a4\7T\2\2\u02a4\u02a5\7G\2\2\u02a5"+
+ "\u02a6\7C\2\2\u02a6\u02a7\7V\2\2\u02a7\u02a8\7G\2\2\u02a8J\3\2\2\2\u02a9"+
+ "\u02aa\7E\2\2\u02aa\u02ab\7T\2\2\u02ab\u02ac\7Q\2\2\u02ac\u02ad\7U\2\2"+
+ "\u02ad\u02ae\7U\2\2\u02aeL\3\2\2\2\u02af\u02b0\7E\2\2\u02b0\u02b1\7W\2"+
+ "\2\u02b1\u02b2\7D\2\2\u02b2\u02b3\7G\2\2\u02b3N\3\2\2\2\u02b4\u02b5\7"+
+ "E\2\2\u02b5\u02b6\7W\2\2\u02b6\u02b7\7T\2\2\u02b7\u02b8\7T\2\2\u02b8\u02b9"+
+ "\7G\2\2\u02b9\u02ba\7P\2\2\u02ba\u02bb\7V\2\2\u02bbP\3\2\2\2\u02bc\u02bd"+
+ "\7E\2\2\u02bd\u02be\7W\2\2\u02be\u02bf\7T\2\2\u02bf\u02c0\7T\2\2\u02c0"+
+ "\u02c1\7G\2\2\u02c1\u02c2\7P\2\2\u02c2\u02c3\7V\2\2\u02c3\u02c4\7a\2\2"+
+ "\u02c4\u02c5\7F\2\2\u02c5\u02c6\7C\2\2\u02c6\u02c7\7V\2\2\u02c7\u02c8"+
+ "\7G\2\2\u02c8R\3\2\2\2\u02c9\u02ca\7E\2\2\u02ca\u02cb\7W\2\2\u02cb\u02cc"+
+ "\7T\2\2\u02cc\u02cd\7T\2\2\u02cd\u02ce\7G\2\2\u02ce\u02cf\7P\2\2\u02cf"+
+ "\u02d0\7V\2\2\u02d0\u02d1\7a\2\2\u02d1\u02d2\7T\2\2\u02d2\u02d3\7Q\2\2"+
+ "\u02d3\u02d4\7N\2\2\u02d4\u02d5\7G\2\2\u02d5T\3\2\2\2\u02d6\u02d7\7E\2"+
+ "\2\u02d7\u02d8\7W\2\2\u02d8\u02d9\7T\2\2\u02d9\u02da\7T\2\2\u02da\u02db"+
+ "\7G\2\2\u02db\u02dc\7P\2\2\u02dc\u02dd\7V\2\2\u02dd\u02de\7a\2\2\u02de"+
+ "\u02df\7V\2\2\u02df\u02e0\7K\2\2\u02e0\u02e1\7O\2\2\u02e1\u02e2\7G\2\2"+
+ "\u02e2V\3\2\2\2\u02e3\u02e4\7E\2\2\u02e4\u02e5\7W\2\2\u02e5\u02e6\7T\2"+
+ "\2\u02e6\u02e7\7T\2\2\u02e7\u02e8\7G\2\2\u02e8\u02e9\7P\2\2\u02e9\u02ea"+
+ "\7V\2\2\u02ea\u02eb\7a\2\2\u02eb\u02ec\7V\2\2\u02ec\u02ed\7K\2\2\u02ed"+
+ "\u02ee\7O\2\2\u02ee\u02ef\7G\2\2\u02ef\u02f0\7U\2\2\u02f0\u02f1\7V\2\2"+
+ "\u02f1\u02f2\7C\2\2\u02f2\u02f3\7O\2\2\u02f3\u02f4\7R\2\2\u02f4X\3\2\2"+
+ "\2\u02f5\u02f6\7E\2\2\u02f6\u02f7\7W\2\2\u02f7\u02f8\7T\2\2\u02f8\u02f9"+
+ "\7T\2\2\u02f9\u02fa\7G\2\2\u02fa\u02fb\7P\2\2\u02fb\u02fc\7V\2\2\u02fc"+
+ "\u02fd\7a\2\2\u02fd\u02fe\7W\2\2\u02fe\u02ff\7U\2\2\u02ff\u0300\7G\2\2"+
+ "\u0300\u0301\7T\2\2\u0301Z\3\2\2\2\u0302\u0303\7F\2\2\u0303\u0304\7C\2"+
+ "\2\u0304\u0305\7V\2\2\u0305\u0306\7C\2\2\u0306\\\3\2\2\2\u0307\u0308\7"+
+ "F\2\2\u0308\u0309\7C\2\2\u0309\u030a\7V\2\2\u030a\u030b\7G\2\2\u030b^"+
+ "\3\2\2\2\u030c\u030d\7F\2\2\u030d\u030e\7C\2\2\u030e\u030f\7[\2\2\u030f"+
+ "`\3\2\2\2\u0310\u0311\7F\2\2\u0311\u0312\7G\2\2\u0312\u0313\7C\2\2\u0313"+
+ "\u0314\7N\2\2\u0314\u0315\7N\2\2\u0315\u0316\7Q\2\2\u0316\u0317\7E\2\2"+
+ "\u0317\u0318\7C\2\2\u0318\u0319\7V\2\2\u0319\u031a\7G\2\2\u031ab\3\2\2"+
+ "\2\u031b\u031c\7F\2\2\u031c\u031d\7G\2\2\u031d\u031e\7H\2\2\u031e\u031f"+
+ "\7K\2\2\u031f\u0320\7P\2\2\u0320\u0321\7G\2\2\u0321\u0322\7T\2\2\u0322"+
+ "d\3\2\2\2\u0323\u0324\7F\2\2\u0324\u0325\7G\2\2\u0325\u0326\7N\2\2\u0326"+
+ "\u0327\7G\2\2\u0327\u0328\7V\2\2\u0328\u0329\7G\2\2\u0329f\3\2\2\2\u032a"+
+ "\u032b\7F\2\2\u032b\u032c\7G\2\2\u032c\u032d\7U\2\2\u032d\u032e\7E\2\2"+
+ "\u032eh\3\2\2\2\u032f\u0330\7F\2\2\u0330\u0331\7G\2\2\u0331\u0332\7U\2"+
+ "\2\u0332\u0333\7E\2\2\u0333\u0334\7T\2\2\u0334\u0335\7K\2\2\u0335\u0336"+
+ "\7D\2\2\u0336\u0337\7G\2\2\u0337j\3\2\2\2\u0338\u0339\7F\2\2\u0339\u033a"+
+ "\7G\2\2\u033a\u033b\7V\2\2\u033b\u033c\7G\2\2\u033c\u033d\7T\2\2\u033d"+
+ "\u033e\7O\2\2\u033e\u033f\7K\2\2\u033f\u0340\7P\2\2\u0340\u0341\7K\2\2"+
+ "\u0341\u0342\7U\2\2\u0342\u0343\7V\2\2\u0343\u0344\7K\2\2\u0344\u0345"+
+ "\7E\2\2\u0345l\3\2\2\2\u0346\u0347\7F\2\2\u0347\u0348\7K\2\2\u0348\u0349"+
+ "\7U\2\2\u0349\u034a\7V\2\2\u034a\u034b\7K\2\2\u034b\u034c\7P\2\2\u034c"+
+ "\u034d\7E\2\2\u034d\u034e\7V\2\2\u034en\3\2\2\2\u034f\u0350\7F\2\2\u0350"+
+ "\u0351\7K\2\2\u0351\u0352\7U\2\2\u0352\u0353\7V\2\2\u0353\u0354\7T\2\2"+
+ "\u0354\u0355\7K\2\2\u0355\u0356\7D\2\2\u0356\u0357\7W\2\2\u0357\u0358"+
+ "\7V\2\2\u0358\u0359\7G\2\2\u0359\u035a\7F\2\2\u035ap\3\2\2\2\u035b\u035c"+
+ "\7F\2\2\u035c\u035d\7T\2\2\u035d\u035e\7Q\2\2\u035e\u035f\7R\2\2\u035f"+
+ "r\3\2\2\2\u0360\u0361\7G\2\2\u0361\u0362\7N\2\2\u0362\u0363\7U\2\2\u0363"+
+ "\u0364\7G\2\2\u0364t\3\2\2\2\u0365\u0366\7G\2\2\u0366\u0367\7P\2\2\u0367"+
+ "\u0368\7F\2\2\u0368v\3\2\2\2\u0369\u036a\7G\2\2\u036a\u036b\7U\2\2\u036b"+
+ "\u036c\7E\2\2\u036c\u036d\7C\2\2\u036d\u036e\7R\2\2\u036e\u036f\7G\2\2"+
+ "\u036fx\3\2\2\2\u0370\u0371\7G\2\2\u0371\u0372\7Z\2\2\u0372\u0373\7E\2"+
+ "\2\u0373\u0374\7G\2\2\u0374\u0375\7R\2\2\u0375\u0376\7V\2\2\u0376z\3\2"+
+ "\2\2\u0377\u0378\7G\2\2\u0378\u0379\7Z\2\2\u0379\u037a\7E\2\2\u037a\u037b"+
+ "\7N\2\2\u037b\u037c\7W\2\2\u037c\u037d\7F\2\2\u037d\u037e\7K\2\2\u037e"+
+ "\u037f\7P\2\2\u037f\u0380\7I\2\2\u0380|\3\2\2\2\u0381\u0382\7G\2\2\u0382"+
+ "\u0383\7Z\2\2\u0383\u0384\7G\2\2\u0384\u0385\7E\2\2\u0385\u0386\7W\2\2"+
+ "\u0386\u0387\7V\2\2\u0387\u0388\7G\2\2\u0388~\3\2\2\2\u0389\u038a\7G\2"+
+ "\2\u038a\u038b\7Z\2\2\u038b\u038c\7K\2\2\u038c\u038d\7U\2\2\u038d\u038e"+
+ "\7V\2\2\u038e\u038f\7U\2\2\u038f\u0080\3\2\2\2\u0390\u0391\7G\2\2\u0391"+
+ "\u0392\7Z\2\2\u0392\u0393\7R\2\2\u0393\u0394\7N\2\2\u0394\u0395\7C\2\2"+
+ "\u0395\u0396\7K\2\2\u0396\u0397\7P\2\2\u0397\u0082\3\2\2\2\u0398\u0399"+
+ "\7G\2\2\u0399\u039a\7Z\2\2\u039a\u039b\7V\2\2\u039b\u039c\7T\2\2\u039c"+
+ "\u039d\7C\2\2\u039d\u039e\7E\2\2\u039e\u039f\7V\2\2\u039f\u0084\3\2\2"+
+ "\2\u03a0\u03a1\7G\2\2\u03a1\u03a2\7Z\2\2\u03a2\u03a3\7V\2\2\u03a3\u03a4"+
+ "\7G\2\2\u03a4\u03a5\7T\2\2\u03a5\u03a6\7P\2\2\u03a6\u03a7\7C\2\2\u03a7"+
+ "\u03a8\7N\2\2\u03a8\u0086\3\2\2\2\u03a9\u03aa\7H\2\2\u03aa\u03ab\7C\2"+
+ "\2\u03ab\u03ac\7N\2\2\u03ac\u03ad\7U\2\2\u03ad\u03ae\7G\2\2\u03ae\u0088"+
+ "\3\2\2\2\u03af\u03b0\7H\2\2\u03b0\u03b1\7K\2\2\u03b1\u03b2\7N\2\2\u03b2"+
+ "\u03b3\7V\2\2\u03b3\u03b4\7G\2\2\u03b4\u03b5\7T\2\2\u03b5\u008a\3\2\2"+
+ "\2\u03b6\u03b7\7H\2\2\u03b7\u03b8\7K\2\2\u03b8\u03b9\7T\2\2\u03b9\u03ba"+
+ "\7U\2\2\u03ba\u03bb\7V\2\2\u03bb\u008c\3\2\2\2\u03bc\u03bd\7H\2\2\u03bd"+
+ "\u03be\7Q\2\2\u03be\u03bf\7N\2\2\u03bf\u03c0\7N\2\2\u03c0\u03c1\7Q\2\2"+
+ "\u03c1\u03c2\7Y\2\2\u03c2\u03c3\7K\2\2\u03c3\u03c4\7P\2\2\u03c4\u03c5"+
+ "\7I\2\2\u03c5\u008e\3\2\2\2\u03c6\u03c7\7H\2\2\u03c7\u03c8\7Q\2\2\u03c8"+
+ "\u03c9\7T\2\2\u03c9\u0090\3\2\2\2\u03ca\u03cb\7H\2\2\u03cb\u03cc\7Q\2"+
+ "\2\u03cc\u03cd\7T\2\2\u03cd\u03ce\7O\2\2\u03ce\u03cf\7C\2\2\u03cf\u03d0"+
+ "\7V\2\2\u03d0\u0092\3\2\2\2\u03d1\u03d2\7H\2\2\u03d2\u03d3\7T\2\2\u03d3"+
+ "\u03d4\7Q\2\2\u03d4\u03d5\7O\2\2\u03d5\u0094\3\2\2\2\u03d6\u03d7\7H\2"+
+ "\2\u03d7\u03d8\7W\2\2\u03d8\u03d9\7N\2\2\u03d9\u03da\7N\2\2\u03da\u0096"+
+ "\3\2\2\2\u03db\u03dc\7H\2\2\u03dc\u03dd\7W\2\2\u03dd\u03de\7P\2\2\u03de"+
+ "\u03df\7E\2\2\u03df\u03e0\7V\2\2\u03e0\u03e1\7K\2\2\u03e1\u03e2\7Q\2\2"+
+ "\u03e2\u03e3\7P\2\2\u03e3\u0098\3\2\2\2\u03e4\u03e5\7H\2\2\u03e5\u03e6"+
+ "\7W\2\2\u03e6\u03e7\7P\2\2\u03e7\u03e8\7E\2\2\u03e8\u03e9\7V\2\2\u03e9"+
+ "\u03ea\7K\2\2\u03ea\u03eb\7Q\2\2\u03eb\u03ec\7P\2\2\u03ec\u03ed\7U\2\2"+
+ "\u03ed\u009a\3\2\2\2\u03ee\u03ef\7I\2\2\u03ef\u03f0\7T\2\2\u03f0\u03f1"+
+ "\7C\2\2\u03f1\u03f2\7P\2\2\u03f2\u03f3\7V\2\2\u03f3\u009c\3\2\2\2\u03f4"+
+ "\u03f5\7I\2\2\u03f5\u03f6\7T\2\2\u03f6\u03f7\7C\2\2\u03f7\u03f8\7P\2\2"+
+ "\u03f8\u03f9\7V\2\2\u03f9\u03fa\7G\2\2\u03fa\u03fb\7F\2\2\u03fb\u009e"+
+ "\3\2\2\2\u03fc\u03fd\7I\2\2\u03fd\u03fe\7T\2\2\u03fe\u03ff\7C\2\2\u03ff"+
+ "\u0400\7P\2\2\u0400\u0401\7V\2\2\u0401\u0402\7U\2\2\u0402\u00a0\3\2\2"+
+ "\2\u0403\u0404\7I\2\2\u0404\u0405\7T\2\2\u0405\u0406\7C\2\2\u0406\u0407"+
+ "\7R\2\2\u0407\u0408\7J\2\2\u0408\u0409\7X\2\2\u0409\u040a\7K\2\2\u040a"+
+ "\u040b\7\\\2\2\u040b\u00a2\3\2\2\2\u040c\u040d\7I\2\2\u040d\u040e\7T\2"+
+ "\2\u040e\u040f\7Q\2\2\u040f\u0410\7W\2\2\u0410\u0411\7R\2\2\u0411\u00a4"+
+ "\3\2\2\2\u0412\u0413\7I\2\2\u0413\u0414\7T\2\2\u0414\u0415\7Q\2\2\u0415"+
+ "\u0416\7W\2\2\u0416\u0417\7R\2\2\u0417\u0418\7K\2\2\u0418\u0419\7P\2\2"+
+ "\u0419\u041a\7I\2\2\u041a\u00a6\3\2\2\2\u041b\u041c\7J\2\2\u041c\u041d"+
+ "\7C\2\2\u041d\u041e\7X\2\2\u041e\u041f\7K\2\2\u041f\u0420\7P\2\2\u0420"+
+ "\u0421\7I\2\2\u0421\u00a8\3\2\2\2\u0422\u0423\7J\2\2\u0423\u0424\7Q\2"+
+ "\2\u0424\u0425\7W\2\2\u0425\u0426\7T\2\2\u0426\u00aa\3\2\2\2\u0427\u0428"+
+ "\7K\2\2\u0428\u0429\7H\2\2\u0429\u00ac\3\2\2\2\u042a\u042b\7K\2\2\u042b"+
+ "\u042c\7I\2\2\u042c\u042d\7P\2\2\u042d\u042e\7Q\2\2\u042e\u042f\7T\2\2"+
+ "\u042f\u0430\7G\2\2\u0430\u00ae\3\2\2\2\u0431\u0432\7K\2\2\u0432\u0433"+
+ "\7P\2\2\u0433\u00b0\3\2\2\2\u0434\u0435\7K\2\2\u0435\u0436\7P\2\2\u0436"+
+ "\u0437\7E\2\2\u0437\u0438\7N\2\2\u0438\u0439\7W\2\2\u0439\u043a\7F\2\2"+
+ "\u043a\u043b\7K\2\2\u043b\u043c\7P\2\2\u043c\u043d\7I\2\2\u043d\u00b2"+
+ "\3\2\2\2\u043e\u043f\7K\2\2\u043f\u0440\7P\2\2\u0440\u0441\7P\2\2\u0441"+
+ "\u0442\7G\2\2\u0442\u0443\7T\2\2\u0443\u00b4\3\2\2\2\u0444\u0445\7K\2"+
+ "\2\u0445\u0446\7P\2\2\u0446\u0447\7R\2\2\u0447\u0448\7W\2\2\u0448\u0449"+
+ "\7V\2\2\u0449\u00b6\3\2\2\2\u044a\u044b\7K\2\2\u044b\u044c\7P\2\2\u044c"+
+ "\u044d\7U\2\2\u044d\u044e\7G\2\2\u044e\u044f\7T\2\2\u044f\u0450\7V\2\2"+
+ "\u0450\u00b8\3\2\2\2\u0451\u0452\7K\2\2\u0452\u0453\7P\2\2\u0453\u0454"+
+ "\7V\2\2\u0454\u0455\7G\2\2\u0455\u0456\7T\2\2\u0456\u0457\7U\2\2\u0457"+
+ "\u0458\7G\2\2\u0458\u0459\7E\2\2\u0459\u045a\7V\2\2\u045a\u00ba\3\2\2"+
+ "\2\u045b\u045c\7K\2\2\u045c\u045d\7P\2\2\u045d\u045e\7V\2\2\u045e\u045f"+
+ "\7G\2\2\u045f\u0460\7T\2\2\u0460\u0461\7X\2\2\u0461\u0462\7C\2\2\u0462"+
+ "\u0463\7N\2\2\u0463\u00bc\3\2\2\2\u0464\u0465\7K\2\2\u0465\u0466\7P\2"+
+ "\2\u0466\u0467\7V\2\2\u0467\u0468\7Q\2\2\u0468\u00be\3\2\2\2\u0469\u046a"+
+ "\7K\2\2\u046a\u046b\7P\2\2\u046b\u046c\7X\2\2\u046c\u046d\7Q\2\2\u046d"+
+ "\u046e\7M\2\2\u046e\u046f\7G\2\2\u046f\u0470\7T\2\2\u0470\u00c0\3\2\2"+
+ "\2\u0471\u0472\7K\2\2\u0472\u0473\7Q\2\2\u0473\u00c2\3\2\2\2\u0474\u0475"+
+ "\7K\2\2\u0475\u0476\7U\2\2\u0476\u00c4\3\2\2\2\u0477\u0478\7K\2\2\u0478"+
+ "\u0479\7U\2\2\u0479\u047a\7Q\2\2\u047a\u047b\7N\2\2\u047b\u047c\7C\2\2"+
+ "\u047c\u047d\7V\2\2\u047d\u047e\7K\2\2\u047e\u047f\7Q\2\2\u047f\u0480"+
+ "\7P\2\2\u0480\u00c6\3\2\2\2\u0481\u0482\7L\2\2\u0482\u0483\7U\2\2\u0483"+
+ "\u0484\7Q\2\2\u0484\u0485\7P\2\2\u0485\u00c8\3\2\2\2\u0486\u0487\7L\2"+
+ "\2\u0487\u0488\7Q\2\2\u0488\u0489\7K\2\2\u0489\u048a\7P\2\2\u048a\u00ca"+
+ "\3\2\2\2\u048b\u048c\7N\2\2\u048c\u048d\7C\2\2\u048d\u048e\7P\2\2\u048e"+
+ "\u048f\7I\2\2\u048f\u0490\7W\2\2\u0490\u0491\7C\2\2\u0491\u0492\7I\2\2"+
+ "\u0492\u0493\7G\2\2\u0493\u00cc\3\2\2\2\u0494\u0495\7N\2\2\u0495\u0496"+
+ "\7C\2\2\u0496\u0497\7U\2\2\u0497\u0498\7V\2\2\u0498\u00ce\3\2\2\2\u0499"+
+ "\u049a\7N\2\2\u049a\u049b\7C\2\2\u049b\u049c\7V\2\2\u049c\u049d\7G\2\2"+
+ "\u049d\u049e\7T\2\2\u049e\u049f\7C\2\2\u049f\u04a0\7N\2\2\u04a0\u00d0"+
+ "\3\2\2\2\u04a1\u04a2\7N\2\2\u04a2\u04a3\7G\2\2\u04a3\u04a4\7H\2\2\u04a4"+
+ "\u04a5\7V\2\2\u04a5\u00d2\3\2\2\2\u04a6\u04a7\7N\2\2\u04a7\u04a8\7G\2"+
+ "\2\u04a8\u04a9\7X\2\2\u04a9\u04aa\7G\2\2\u04aa\u04ab\7N\2\2\u04ab\u00d4"+
+ "\3\2\2\2\u04ac\u04ad\7N\2\2\u04ad\u04ae\7K\2\2\u04ae\u04af\7M\2\2\u04af"+
+ "\u04b0\7G\2\2\u04b0\u00d6\3\2\2\2\u04b1\u04b2\7N\2\2\u04b2\u04b3\7K\2"+
+ "\2\u04b3\u04b4\7O\2\2\u04b4\u04b5\7K\2\2\u04b5\u04b6\7V\2\2\u04b6\u00d8"+
+ "\3\2\2\2\u04b7\u04b8\7N\2\2\u04b8\u04b9\7Q\2\2\u04b9\u04ba\7E\2\2\u04ba"+
+ "\u04bb\7C\2\2\u04bb\u04bc\7N\2\2\u04bc\u04bd\7V\2\2\u04bd\u04be\7K\2\2"+
+ "\u04be\u04bf\7O\2\2\u04bf\u04c0\7G\2\2\u04c0\u00da\3\2\2\2\u04c1\u04c2"+
+ "\7N\2\2\u04c2\u04c3\7Q\2\2\u04c3\u04c4\7E\2\2\u04c4\u04c5\7C\2\2\u04c5"+
+ "\u04c6\7N\2\2\u04c6\u04c7\7V\2\2\u04c7\u04c8\7K\2\2\u04c8\u04c9\7O\2\2"+
+ "\u04c9\u04ca\7G\2\2\u04ca\u04cb\7U\2\2\u04cb\u04cc\7V\2\2\u04cc\u04cd"+
+ "\7C\2\2\u04cd\u04ce\7O\2\2\u04ce\u04cf\7R\2\2\u04cf\u00dc\3\2\2\2\u04d0"+
+ "\u04d1\7N\2\2\u04d1\u04d2\7Q\2\2\u04d2\u04d3\7I\2\2\u04d3\u04d4\7K\2\2"+
+ "\u04d4\u04d5\7E\2\2\u04d5\u04d6\7C\2\2\u04d6\u04d7\7N\2\2\u04d7\u00de"+
+ "\3\2\2\2\u04d8\u04d9\7O\2\2\u04d9\u04da\7C\2\2\u04da\u04db\7R\2\2\u04db"+
+ "\u00e0\3\2\2\2\u04dc\u04dd\7O\2\2\u04dd\u04de\7C\2\2\u04de\u04df\7V\2"+
+ "\2\u04df\u04e0\7G\2\2\u04e0\u04e1\7T\2\2\u04e1\u04e2\7K\2\2\u04e2\u04e3"+
+ "\7C\2\2\u04e3\u04e4\7N\2\2\u04e4\u04e5\7K\2\2\u04e5\u04e6\7\\\2\2\u04e6"+
+ "\u04e7\7G\2\2\u04e7\u04e8\7F\2\2\u04e8\u00e2\3\2\2\2\u04e9\u04ea\7O\2"+
+ "\2\u04ea\u04eb\7K\2\2\u04eb\u04ec\7P\2\2\u04ec\u04ed\7W\2\2\u04ed\u04ee"+
+ "\7V\2\2\u04ee\u04ef\7G\2\2\u04ef\u00e4\3\2\2\2\u04f0\u04f1\7O\2\2\u04f1"+
+ "\u04f2\7Q\2\2\u04f2\u04f3\7P\2\2\u04f3\u04f4\7V\2\2\u04f4\u04f5\7J\2\2"+
+ "\u04f5\u00e6\3\2\2\2\u04f6\u04f7\7P\2\2\u04f7\u04f8\7C\2\2\u04f8\u04f9"+
+ "\7O\2\2\u04f9\u04fa\7G\2\2\u04fa\u00e8\3\2\2\2\u04fb\u04fc\7P\2\2\u04fc"+
+ "\u04fd\7C\2\2\u04fd\u04fe\7V\2\2\u04fe\u04ff\7W\2\2\u04ff\u0500\7T\2\2"+
+ "\u0500\u0501\7C\2\2\u0501\u0502\7N\2\2\u0502\u00ea\3\2\2\2\u0503\u0504"+
+ "\7P\2\2\u0504\u0505\7H\2\2\u0505\u0506\7E\2\2\u0506\u00ec\3\2\2\2\u0507"+
+ "\u0508\7P\2\2\u0508\u0509\7H\2\2\u0509\u050a\7F\2\2\u050a\u00ee\3\2\2"+
+ "\2\u050b\u050c\7P\2\2\u050c\u050d\7H\2\2\u050d\u050e\7M\2\2\u050e\u050f"+
+ "\7E\2\2\u050f\u00f0\3\2\2\2\u0510\u0511\7P\2\2\u0511\u0512\7H\2\2\u0512"+
+ "\u0513\7M\2\2\u0513\u0514\7F\2\2\u0514\u00f2\3\2\2\2\u0515\u0516\7P\2"+
+ "\2\u0516\u0517\7Q\2\2\u0517\u00f4\3\2\2\2\u0518\u0519\7P\2\2\u0519\u051a"+
+ "\7Q\2\2\u051a\u051b\7P\2\2\u051b\u051c\7G\2\2\u051c\u00f6\3\2\2\2\u051d"+
+ "\u051e\7P\2\2\u051e\u051f\7Q\2\2\u051f\u0520\7T\2\2\u0520\u0521\7O\2\2"+
+ "\u0521\u0522\7C\2\2\u0522\u0523\7N\2\2\u0523\u0524\7K\2\2\u0524\u0525"+
+ "\7\\\2\2\u0525\u0526\7G\2\2\u0526\u00f8\3\2\2\2\u0527\u0528\7P\2\2\u0528"+
+ "\u0529\7Q\2\2\u0529\u052a\7V\2\2\u052a\u00fa\3\2\2\2\u052b\u052c\7P\2"+
+ "\2\u052c\u052d\7W\2\2\u052d\u052e\7N\2\2\u052e\u052f\7N\2\2\u052f\u00fc"+
+ "\3\2\2\2\u0530\u0531\7P\2\2\u0531\u0532\7W\2\2\u0532\u0533\7N\2\2\u0533"+
+ "\u0534\7N\2\2\u0534\u0535\7K\2\2\u0535\u0536\7H\2\2\u0536\u00fe\3\2\2"+
+ "\2\u0537\u0538\7P\2\2\u0538\u0539\7W\2\2\u0539\u053a\7N\2\2\u053a\u053b"+
+ "\7N\2\2\u053b\u053c\7U\2\2\u053c\u0100\3\2\2\2\u053d\u053e\7Q\2\2\u053e"+
+ "\u053f\7H\2\2\u053f\u0540\7H\2\2\u0540\u0541\7U\2\2\u0541\u0542\7G\2\2"+
+ "\u0542\u0543\7V\2\2\u0543\u0102\3\2\2\2\u0544\u0545\7Q\2\2\u0545\u0546"+
+ "\7P\2\2\u0546\u0104\3\2\2\2\u0547\u0548\7Q\2\2\u0548\u0549\7P\2\2\u0549"+
+ "\u054a\7N\2\2\u054a\u054b\7[\2\2\u054b\u0106\3\2\2\2\u054c\u054d\7Q\2"+
+ "\2\u054d\u054e\7R\2\2\u054e\u054f\7V\2\2\u054f\u0550\7K\2\2\u0550\u0551"+
+ "\7Q\2\2\u0551\u0552\7P\2\2\u0552\u0108\3\2\2\2\u0553\u0554\7Q\2\2\u0554"+
+ "\u0555\7T\2\2\u0555\u010a\3\2\2\2\u0556\u0557\7Q\2\2\u0557\u0558\7T\2"+
+ "\2\u0558\u0559\7F\2\2\u0559\u055a\7G\2\2\u055a\u055b\7T\2\2\u055b\u010c"+
+ "\3\2\2\2\u055c\u055d\7Q\2\2\u055d\u055e\7T\2\2\u055e\u055f\7F\2\2\u055f"+
+ "\u0560\7K\2\2\u0560\u0561\7P\2\2\u0561\u0562\7C\2\2\u0562\u0563\7N\2\2"+
+ "\u0563\u0564\7K\2\2\u0564\u0565\7V\2\2\u0565\u0566\7[\2\2\u0566\u010e"+
+ "\3\2\2\2\u0567\u0568\7Q\2\2\u0568\u0569\7W\2\2\u0569\u056a\7V\2\2\u056a"+
+ "\u056b\7G\2\2\u056b\u056c\7T\2\2\u056c\u0110\3\2\2\2\u056d\u056e\7Q\2"+
+ "\2\u056e\u056f\7W\2\2\u056f\u0570\7V\2\2\u0570\u0571\7R\2\2\u0571\u0572"+
+ "\7W\2\2\u0572\u0573\7V\2\2\u0573\u0112\3\2\2\2\u0574\u0575\7Q\2\2\u0575"+
+ "\u0576\7X\2\2\u0576\u0577\7G\2\2\u0577\u0578\7T\2\2\u0578\u0114\3\2\2"+
+ "\2\u0579\u057a\7R\2\2\u057a\u057b\7C\2\2\u057b\u057c\7T\2\2\u057c\u057d"+
+ "\7V\2\2\u057d\u057e\7K\2\2\u057e\u057f\7V\2\2\u057f\u0580\7K\2\2\u0580"+
+ "\u0581\7Q\2\2\u0581\u0582\7P\2\2\u0582\u0116\3\2\2\2\u0583\u0584\7R\2"+
+ "\2\u0584\u0585\7C\2\2\u0585\u0586\7T\2\2\u0586\u0587\7V\2\2\u0587\u0588"+
+ "\7K\2\2\u0588\u0589\7V\2\2\u0589\u058a\7K\2\2\u058a\u058b\7Q\2\2\u058b"+
+ "\u058c\7P\2\2\u058c\u058d\7U\2\2\u058d\u0118\3\2\2\2\u058e\u058f\7R\2"+
+ "\2\u058f\u0590\7Q\2\2\u0590\u0591\7U\2\2\u0591\u0592\7K\2\2\u0592\u0593"+
+ "\7V\2\2\u0593\u0594\7K\2\2\u0594\u0595\7Q\2\2\u0595\u0596\7P\2\2\u0596"+
+ "\u011a\3\2\2\2\u0597\u0598\7R\2\2\u0598\u0599\7T\2\2\u0599\u059a\7G\2"+
+ "\2\u059a\u059b\7E\2\2\u059b\u059c\7G\2\2\u059c\u059d\7F\2\2\u059d\u059e"+
+ "\7K\2\2\u059e\u059f\7P\2\2\u059f\u05a0\7I\2\2\u05a0\u011c\3\2\2\2\u05a1"+
+ "\u05a2\7R\2\2\u05a2\u05a3\7T\2\2\u05a3\u05a4\7G\2\2\u05a4\u05a5\7R\2\2"+
+ "\u05a5\u05a6\7C\2\2\u05a6\u05a7\7T\2\2\u05a7\u05a8\7G\2\2\u05a8\u011e"+
+ "\3\2\2\2\u05a9\u05aa\7R\2\2\u05aa\u05ab\7T\2\2\u05ab\u05ac\7K\2\2\u05ac"+
+ "\u05ad\7X\2\2\u05ad\u05ae\7K\2\2\u05ae\u05af\7N\2\2\u05af\u05b0\7G\2\2"+
+ "\u05b0\u05b1\7I\2\2\u05b1\u05b2\7G\2\2\u05b2\u05b3\7U\2\2\u05b3\u0120"+
+ "\3\2\2\2\u05b4\u05b5\7R\2\2\u05b5\u05b6\7T\2\2\u05b6\u05b7\7Q\2\2\u05b7"+
+ "\u05b8\7R\2\2\u05b8\u05b9\7G\2\2\u05b9\u05ba\7T\2\2\u05ba\u05bb\7V\2\2"+
+ "\u05bb\u05bc\7K\2\2\u05bc\u05bd\7G\2\2\u05bd\u05be\7U\2\2\u05be\u0122"+
+ "\3\2\2\2\u05bf\u05c0\7T\2\2\u05c0\u05c1\7C\2\2\u05c1\u05c2\7P\2\2\u05c2"+
+ "\u05c3\7I\2\2\u05c3\u05c4\7G\2\2\u05c4\u0124\3\2\2\2\u05c5\u05c6\7T\2"+
+ "\2\u05c6\u05c7\7G\2\2\u05c7\u05c8\7C\2\2\u05c8\u05c9\7F\2\2\u05c9\u0126"+
+ "\3\2\2\2\u05ca\u05cb\7T\2\2\u05cb\u05cc\7G\2\2\u05cc\u05cd\7E\2\2\u05cd"+
+ "\u05ce\7W\2\2\u05ce\u05cf\7T\2\2\u05cf\u05d0\7U\2\2\u05d0\u05d1\7K\2\2"+
+ "\u05d1\u05d2\7X\2\2\u05d2\u05d3\7G\2\2\u05d3\u0128\3\2\2\2\u05d4\u05d5"+
+ "\7T\2\2\u05d5\u05d6\7G\2\2\u05d6\u05d7\7H\2\2\u05d7\u05d8\7T\2\2\u05d8"+
+ "\u05d9\7G\2\2\u05d9\u05da\7U\2\2\u05da\u05db\7J\2\2\u05db\u012a\3\2\2"+
+ "\2\u05dc\u05dd\7T\2\2\u05dd\u05de\7G\2\2\u05de\u05df\7P\2\2\u05df\u05e0"+
+ "\7C\2\2\u05e0\u05e1\7O\2\2\u05e1\u05e2\7G\2\2\u05e2\u012c\3\2\2\2\u05e3"+
+ "\u05e4\7T\2\2\u05e4\u05e5\7G\2\2\u05e5\u05e6\7R\2\2\u05e6\u05e7\7G\2\2"+
+ "\u05e7\u05e8\7C\2\2\u05e8\u05e9\7V\2\2\u05e9\u05ea\7C\2\2\u05ea\u05eb"+
+ "\7D\2\2\u05eb\u05ec\7N\2\2\u05ec\u05ed\7G\2\2\u05ed\u012e\3\2\2\2\u05ee"+
+ "\u05ef\7T\2\2\u05ef\u05f0\7G\2\2\u05f0\u05f1\7R\2\2\u05f1\u05f2\7N\2\2"+
+ "\u05f2\u05f3\7C\2\2\u05f3\u05f4\7E\2\2\u05f4\u05f5\7G\2\2\u05f5\u0130"+
+ "\3\2\2\2\u05f6\u05f7\7T\2\2\u05f7\u05f8\7G\2\2\u05f8\u05f9\7U\2\2\u05f9"+
+ "\u05fa\7G\2\2\u05fa\u05fb\7V\2\2\u05fb\u0132\3\2\2\2\u05fc\u05fd\7T\2"+
+ "\2\u05fd\u05fe\7G\2\2\u05fe\u05ff\7U\2\2\u05ff\u0600\7R\2\2\u0600\u0601"+
+ "\7G\2\2\u0601\u0602\7E\2\2\u0602\u0603\7V\2\2\u0603\u0134\3\2\2\2\u0604"+
+ "\u0605\7T\2\2\u0605\u0606\7G\2\2\u0606\u0607\7U\2\2\u0607\u0608\7V\2\2"+
+ "\u0608\u0609\7T\2\2\u0609\u060a\7K\2\2\u060a\u060b\7E\2\2\u060b\u060c"+
+ "\7V\2\2\u060c\u0136\3\2\2\2\u060d\u060e\7T\2\2\u060e\u060f\7G\2\2\u060f"+
+ "\u0610\7V\2\2\u0610\u0611\7W\2\2\u0611\u0612\7T\2\2\u0612\u0613\7P\2\2"+
+ "\u0613\u0138\3\2\2\2\u0614\u0615\7T\2\2\u0615\u0616\7G\2\2\u0616\u0617"+
+ "\7V\2\2\u0617\u0618\7W\2\2\u0618\u0619\7T\2\2\u0619\u061a\7P\2\2\u061a"+
+ "\u061b\7U\2\2\u061b\u013a\3\2\2\2\u061c\u061d\7T\2\2\u061d\u061e\7G\2"+
+ "\2\u061e\u061f\7X\2\2\u061f\u0620\7Q\2\2\u0620\u0621\7M\2\2\u0621\u0622"+
+ "\7G\2\2\u0622\u013c\3\2\2\2\u0623\u0624\7T\2\2\u0624\u0625\7K\2\2\u0625"+
+ "\u0626\7I\2\2\u0626\u0627\7J\2\2\u0627\u0628\7V\2\2\u0628\u013e\3\2\2"+
+ "\2\u0629\u062a\7T\2\2\u062a\u062b\7Q\2\2\u062b\u062c\7N\2\2\u062c\u062d"+
+ "\7G\2\2\u062d\u0140\3\2\2\2\u062e\u062f\7T\2\2\u062f\u0630\7Q\2\2\u0630"+
+ "\u0631\7N\2\2\u0631\u0632\7G\2\2\u0632\u0633\7U\2\2\u0633\u0142\3\2\2"+
+ "\2\u0634\u0635\7T\2\2\u0635\u0636\7Q\2\2\u0636\u0637\7N\2\2\u0637\u0638"+
+ "\7N\2\2\u0638\u0639\7D\2\2\u0639\u063a\7C\2\2\u063a\u063b\7E\2\2\u063b"+
+ "\u063c\7M\2\2\u063c\u0144\3\2\2\2\u063d\u063e\7T\2\2\u063e\u063f\7Q\2"+
+ "\2\u063f\u0640\7N\2\2\u0640\u0641\7N\2\2\u0641\u0642\7W\2\2\u0642\u0643"+
+ "\7R\2\2\u0643\u0146\3\2\2\2\u0644\u0645\7T\2\2\u0645\u0646\7Q\2\2\u0646"+
+ "\u0647\7Y\2\2\u0647\u0148\3\2\2\2\u0648\u0649\7T\2\2\u0649\u064a\7Q\2"+
+ "\2\u064a\u064b\7Y\2\2\u064b\u064c\7U\2\2\u064c\u014a\3\2\2\2\u064d\u064e"+
+ "\7U\2\2\u064e\u064f\7E\2\2\u064f\u0650\7J\2\2\u0650\u0651\7G\2\2\u0651"+
+ "\u0652\7O\2\2\u0652\u0653\7C\2\2\u0653\u014c\3\2\2\2\u0654\u0655\7U\2"+
+ "\2\u0655\u0656\7E\2\2\u0656\u0657\7J\2\2\u0657\u0658\7G\2\2\u0658\u0659"+
+ "\7O\2\2\u0659\u065a\7C\2\2\u065a\u065b\7U\2\2\u065b\u014e\3\2\2\2\u065c"+
+ "\u065d\7U\2\2\u065d\u065e\7G\2\2\u065e\u065f\7E\2\2\u065f\u0660\7Q\2\2"+
+ "\u0660\u0661\7P\2\2\u0661\u0662\7F\2\2\u0662\u0150\3\2\2\2\u0663\u0664"+
+ "\7U\2\2\u0664\u0665\7G\2\2\u0665\u0666\7E\2\2\u0666\u0667\7W\2\2\u0667"+
+ "\u0668\7T\2\2\u0668\u0669\7K\2\2\u0669\u066a\7V\2\2\u066a\u066b\7[\2\2"+
+ "\u066b\u0152\3\2\2\2\u066c\u066d\7U\2\2\u066d\u066e\7G\2\2\u066e\u066f"+
+ "\7N\2\2\u066f\u0670\7G\2\2\u0670\u0671\7E\2\2\u0671\u0672\7V\2\2\u0672"+
+ "\u0154\3\2\2\2\u0673\u0674\7U\2\2\u0674\u0675\7G\2\2\u0675\u0676\7T\2"+
+ "\2\u0676\u0677\7K\2\2\u0677\u0678\7C\2\2\u0678\u0679\7N\2\2\u0679\u067a"+
+ "\7K\2\2\u067a\u067b\7\\\2\2\u067b\u067c\7C\2\2\u067c\u067d\7D\2\2\u067d"+
+ "\u067e\7N\2\2\u067e\u067f\7G\2\2\u067f\u0156\3\2\2\2\u0680\u0681\7U\2"+
+ "\2\u0681\u0682\7G\2\2\u0682\u0683\7U\2\2\u0683\u0684\7U\2\2\u0684\u0685"+
+ "\7K\2\2\u0685\u0686\7Q\2\2\u0686\u0687\7P\2\2\u0687\u0158\3\2\2\2\u0688"+
+ "\u0689\7U\2\2\u0689\u068a\7G\2\2\u068a\u068b\7V\2\2\u068b\u015a\3\2\2"+
+ "\2\u068c\u068d\7U\2\2\u068d\u068e\7G\2\2\u068e\u068f\7V\2\2\u068f\u0690"+
+ "\7U\2\2\u0690\u015c\3\2\2\2\u0691\u0692\7U\2\2\u0692\u0693\7J\2\2\u0693"+
+ "\u0694\7Q\2\2\u0694\u0695\7Y\2\2\u0695\u015e\3\2\2\2\u0696\u0697\7U\2"+
+ "\2\u0697\u0698\7Q\2\2\u0698\u0699\7O\2\2\u0699\u069a\7G\2\2\u069a\u0160"+
+ "\3\2\2\2\u069b\u069c\7U\2\2\u069c\u069d\7S\2\2\u069d\u069e\7N\2\2\u069e"+
+ "\u0162\3\2\2\2\u069f\u06a0\7U\2\2\u06a0\u06a1\7V\2\2\u06a1\u06a2\7C\2"+
+ "\2\u06a2\u06a3\7T\2\2\u06a3\u06a4\7V\2\2\u06a4\u0164\3\2\2\2\u06a5\u06a6"+
+ "\7U\2\2\u06a6\u06a7\7V\2\2\u06a7\u06a8\7C\2\2\u06a8\u06a9\7V\2\2\u06a9"+
+ "\u06aa\7U\2\2\u06aa\u0166\3\2\2\2\u06ab\u06ac\7U\2\2\u06ac\u06ad\7W\2"+
+ "\2\u06ad\u06ae\7D\2\2\u06ae\u06af\7U\2\2\u06af\u06b0\7V\2\2\u06b0\u06b1"+
+ "\7T\2\2\u06b1\u06b2\7K\2\2\u06b2\u06b3\7P\2\2\u06b3\u06b4\7I\2\2\u06b4"+
+ "\u0168\3\2\2\2\u06b5\u06b6\7U\2\2\u06b6\u06b7\7[\2\2\u06b7\u06b8\7U\2"+
+ "\2\u06b8\u06b9\7V\2\2\u06b9\u06ba\7G\2\2\u06ba\u06bb\7O\2\2\u06bb\u016a"+
+ "\3\2\2\2\u06bc\u06bd\7V\2\2\u06bd\u06be\7C\2\2\u06be\u06bf\7D\2\2\u06bf"+
+ "\u06c0\7N\2\2\u06c0\u06c1\7G\2\2\u06c1\u016c\3\2\2\2\u06c2\u06c3\7V\2"+
+ "\2\u06c3\u06c4\7C\2\2\u06c4\u06c5\7D\2\2\u06c5\u06c6\7N\2\2\u06c6\u06c7"+
+ "\7G\2\2\u06c7\u06c8\7U\2\2\u06c8\u016e\3\2\2\2\u06c9\u06ca\7V\2\2\u06ca"+
+ "\u06cb\7C\2\2\u06cb\u06cc\7D\2\2\u06cc\u06cd\7N\2\2\u06cd\u06ce\7G\2\2"+
+ "\u06ce\u06cf\7U\2\2\u06cf\u06d0\7C\2\2\u06d0\u06d1\7O\2\2\u06d1\u06d2"+
+ "\7R\2\2\u06d2\u06d3\7N\2\2\u06d3\u06d4\7G\2\2\u06d4\u0170\3\2\2\2\u06d5"+
+ "\u06d6\7V\2\2\u06d6\u06d7\7G\2\2\u06d7\u06d8\7O\2\2\u06d8\u06d9\7R\2\2"+
+ "\u06d9\u06da\7Q\2\2\u06da\u06db\7T\2\2\u06db\u06dc\7C\2\2\u06dc\u06dd"+
+ "\7T\2\2\u06dd\u06de\7[\2\2\u06de\u0172\3\2\2\2\u06df\u06e0\7V\2\2\u06e0"+
+ "\u06e1\7G\2\2\u06e1\u06e2\7Z\2\2\u06e2\u06e3\7V\2\2\u06e3\u0174\3\2\2"+
+ "\2\u06e4\u06e5\7V\2\2\u06e5\u06e6\7J\2\2\u06e6\u06e7\7G\2\2\u06e7\u06e8"+
+ "\7P\2\2\u06e8\u0176\3\2\2\2\u06e9\u06ea\7V\2\2\u06ea\u06eb\7K\2\2\u06eb"+
+ "\u06ec\7O\2\2\u06ec\u06ed\7G\2\2\u06ed\u0178\3\2\2\2\u06ee\u06ef\7V\2"+
+ "\2\u06ef\u06f0\7K\2\2\u06f0\u06f1\7O\2\2\u06f1\u06f2\7G\2\2\u06f2\u06f3"+
+ "\7U\2\2\u06f3\u06f4\7V\2\2\u06f4\u06f5\7C\2\2\u06f5\u06f6\7O\2\2\u06f6"+
+ "\u06f7\7R\2\2\u06f7\u017a\3\2\2\2\u06f8\u06f9\7V\2\2\u06f9\u06fa\7Q\2"+
+ "\2\u06fa\u017c\3\2\2\2\u06fb\u06fc\7V\2\2\u06fc\u06fd\7T\2\2\u06fd\u06fe"+
+ "\7C\2\2\u06fe\u06ff\7P\2\2\u06ff\u0700\7U\2\2\u0700\u0701\7C\2\2\u0701"+
+ "\u0702\7E\2\2\u0702\u0703\7V\2\2\u0703\u0704\7K\2\2\u0704\u0705\7Q\2\2"+
+ "\u0705\u0706\7P\2\2\u0706\u017e\3\2\2\2\u0707\u0708\7V\2\2\u0708\u0709"+
+ "\7T\2\2\u0709\u070a\7W\2\2\u070a\u070b\7G\2\2\u070b\u0180\3\2\2\2\u070c"+
+ "\u070d\7V\2\2\u070d\u070e\7T\2\2\u070e\u070f\7[\2\2\u070f\u0710\7a\2\2"+
+ "\u0710\u0711\7E\2\2\u0711\u0712\7C\2\2\u0712\u0713\7U\2\2\u0713\u0714"+
+ "\7V\2\2\u0714\u0182\3\2\2\2\u0715\u0716\7V\2\2\u0716\u0717\7[\2\2\u0717"+
+ "\u0718\7R\2\2\u0718\u0719\7G\2\2\u0719\u0184\3\2\2\2\u071a\u071b\7W\2"+
+ "\2\u071b\u071c\7G\2\2\u071c\u071d\7U\2\2\u071d\u071e\7E\2\2\u071e\u071f"+
+ "\7C\2\2\u071f\u0720\7R\2\2\u0720\u0721\7G\2\2\u0721\u0186\3\2\2\2\u0722"+
+ "\u0723\7W\2\2\u0723\u0724\7P\2\2\u0724\u0725\7D\2\2\u0725\u0726\7Q\2\2"+
+ "\u0726\u0727\7W\2\2\u0727\u0728\7P\2\2\u0728\u0729\7F\2\2\u0729\u072a"+
+ "\7G\2\2\u072a\u072b\7F\2\2\u072b\u0188\3\2\2\2\u072c\u072d\7W\2\2\u072d"+
+ "\u072e\7P\2\2\u072e\u072f\7E\2\2\u072f\u0730\7Q\2\2\u0730\u0731\7O\2\2"+
+ "\u0731\u0732\7O\2\2\u0732\u0733\7K\2\2\u0733\u0734\7V\2\2\u0734\u0735"+
+ "\7V\2\2\u0735\u0736\7G\2\2\u0736\u0737\7F\2\2\u0737\u018a\3\2\2\2\u0738"+
+ "\u0739\7W\2\2\u0739\u073a\7P\2\2\u073a\u073b\7K\2\2\u073b\u073c\7Q\2\2"+
+ "\u073c\u073d\7P\2\2\u073d\u018c\3\2\2\2\u073e\u073f\7W\2\2\u073f\u0740"+
+ "\7P\2\2\u0740\u0741\7P\2\2\u0741\u0742\7G\2\2\u0742\u0743\7U\2\2\u0743"+
+ "\u0744\7V\2\2\u0744\u018e\3\2\2\2\u0745\u0746\7W\2\2\u0746\u0747\7U\2"+
+ "\2\u0747\u0748\7G\2\2\u0748\u0190\3\2\2\2\u0749\u074a\7W\2\2\u074a\u074b"+
+ "\7U\2\2\u074b\u074c\7G\2\2\u074c\u074d\7T\2\2\u074d\u0192\3\2\2\2\u074e"+
+ "\u074f\7W\2\2\u074f\u0750\7U\2\2\u0750\u0751\7K\2\2\u0751\u0752\7P\2\2"+
+ "\u0752\u0753\7I\2\2\u0753\u0194\3\2\2\2\u0754\u0755\7X\2\2\u0755\u0756"+
+ "\7C\2\2\u0756\u0757\7N\2\2\u0757\u0758\7K\2\2\u0758\u0759\7F\2\2\u0759"+
+ "\u075a\7C\2\2\u075a\u075b\7V\2\2\u075b\u075c\7G\2\2\u075c\u0196\3\2\2"+
+ "\2\u075d\u075e\7X\2\2\u075e\u075f\7C\2\2\u075f\u0760\7N\2\2\u0760\u0761"+
+ "\7W\2\2\u0761\u0762\7G\2\2\u0762\u0763\7U\2\2\u0763\u0198\3\2\2\2\u0764"+
+ "\u0765\7X\2\2\u0765\u0766\7G\2\2\u0766\u0767\7T\2\2\u0767\u0768\7D\2\2"+
+ "\u0768\u0769\7Q\2\2\u0769\u076a\7U\2\2\u076a\u076b\7G\2\2\u076b\u019a"+
+ "\3\2\2\2\u076c\u076d\7X\2\2\u076d\u076e\7K\2\2\u076e\u076f\7G\2\2\u076f"+
+ "\u0770\7Y\2\2\u0770\u019c\3\2\2\2\u0771\u0772\7Y\2\2\u0772\u0773\7J\2"+
+ "\2\u0773\u0774\7G\2\2\u0774\u0775\7P\2\2\u0775\u019e\3\2\2\2\u0776\u0777"+
+ "\7Y\2\2\u0777\u0778\7J\2\2\u0778\u0779\7G\2\2\u0779\u077a\7T\2\2\u077a"+
+ "\u077b\7G\2\2\u077b\u01a0\3\2\2\2\u077c\u077d\7Y\2\2\u077d\u077e\7K\2"+
+ "\2\u077e\u077f\7V\2\2\u077f\u0780\7J\2\2\u0780\u01a2\3\2\2\2\u0781\u0782"+
+ "\7Y\2\2\u0782\u0783\7Q\2\2\u0783\u0784\7T\2\2\u0784\u0785\7M\2\2\u0785"+
+ "\u01a4\3\2\2\2\u0786\u0787\7Y\2\2\u0787\u0788\7T\2\2\u0788\u0789\7K\2"+
+ "\2\u0789\u078a\7V\2\2\u078a\u078b\7G\2\2\u078b\u01a6\3\2\2\2\u078c\u078d"+
+ "\7[\2\2\u078d\u078e\7G\2\2\u078e\u078f\7C\2\2\u078f\u0790\7T\2\2\u0790"+
+ "\u01a8\3\2\2\2\u0791\u0792\7\\\2\2\u0792\u0793\7Q\2\2\u0793\u0794\7P\2"+
+ "\2\u0794\u0795\7G\2\2\u0795\u01aa\3\2\2\2\u0796\u0797\7?\2\2\u0797\u01ac"+
+ "\3\2\2\2\u0798\u0799\7>\2\2\u0799\u079d\7@\2\2\u079a\u079b\7#\2\2\u079b"+
+ "\u079d\7?\2\2\u079c\u0798\3\2\2\2\u079c\u079a\3\2\2\2\u079d\u01ae\3\2"+
+ "\2\2\u079e\u079f\7>\2\2\u079f\u01b0\3\2\2\2\u07a0\u07a1\7>\2\2\u07a1\u07a2"+
+ "\7?\2\2\u07a2\u01b2\3\2\2\2\u07a3\u07a4\7@\2\2\u07a4\u01b4\3\2\2\2\u07a5"+
+ "\u07a6\7@\2\2\u07a6\u07a7\7?\2\2\u07a7\u01b6\3\2\2\2\u07a8\u07a9\7-\2"+
+ "\2\u07a9\u01b8\3\2\2\2\u07aa\u07ab\7/\2\2\u07ab\u01ba\3\2\2\2\u07ac\u07ad"+
+ "\7,\2\2\u07ad\u01bc\3\2\2\2\u07ae\u07af\7\61\2\2\u07af\u01be\3\2\2\2\u07b0"+
+ "\u07b1\7\'\2\2\u07b1\u01c0\3\2\2\2\u07b2\u07b3\7~\2\2\u07b3\u07b4\7~\2"+
+ "\2\u07b4\u01c2\3\2\2\2\u07b5\u07bb\7)\2\2\u07b6\u07ba\n\2\2\2\u07b7\u07b8"+
+ "\7)\2\2\u07b8\u07ba\7)\2\2\u07b9\u07b6\3\2\2\2\u07b9\u07b7\3\2\2\2\u07ba"+
+ "\u07bd\3\2\2\2\u07bb\u07b9\3\2\2\2\u07bb\u07bc\3\2\2\2\u07bc\u07be\3\2"+
+ "\2\2\u07bd\u07bb\3\2\2\2\u07be\u07bf\7)\2\2\u07bf\u01c4\3\2\2\2\u07c0"+
+ "\u07c1\7W\2\2\u07c1\u07c2\7(\2\2\u07c2\u07c3\7)\2\2\u07c3\u07c9\3\2\2"+
+ "\2\u07c4\u07c8\n\2\2\2\u07c5\u07c6\7)\2\2\u07c6\u07c8\7)\2\2\u07c7\u07c4"+
+ "\3\2\2\2\u07c7\u07c5\3\2\2\2\u07c8\u07cb\3\2\2\2\u07c9\u07c7\3\2\2\2\u07c9"+
+ "\u07ca\3\2\2\2\u07ca\u07cc\3\2\2\2\u07cb\u07c9\3\2\2\2\u07cc\u07cd\7)"+
+ "\2\2\u07cd\u01c6\3\2\2\2\u07ce\u07cf\7Z\2\2\u07cf\u07d0\7)\2\2\u07d0\u07d4"+
+ "\3\2\2\2\u07d1\u07d3\n\2\2\2\u07d2\u07d1\3\2\2\2\u07d3\u07d6\3\2\2\2\u07d4"+
+ "\u07d2\3\2\2\2\u07d4\u07d5\3\2\2\2\u07d5\u07d7\3\2\2\2\u07d6\u07d4\3\2"+
+ "\2\2\u07d7\u07d8\7)\2\2\u07d8\u01c8\3\2\2\2\u07d9\u07db\5\u01df\u00f0"+
+ "\2\u07da\u07d9\3\2\2\2\u07db\u07dc\3\2\2\2\u07dc\u07da\3\2\2\2\u07dc\u07dd"+
+ "\3\2\2\2\u07dd\u01ca\3\2\2\2\u07de\u07e0\5\u01df\u00f0\2\u07df\u07de\3"+
+ "\2\2\2\u07e0\u07e1\3\2\2\2\u07e1\u07df\3\2\2\2\u07e1\u07e2\3\2\2\2\u07e2"+
+ "\u07e3\3\2\2\2\u07e3\u07e7\7\60\2\2\u07e4\u07e6\5\u01df\u00f0\2\u07e5"+
+ "\u07e4\3\2\2\2\u07e6\u07e9\3\2\2\2\u07e7\u07e5\3\2\2\2\u07e7\u07e8\3\2"+
+ "\2\2\u07e8\u07f1\3\2\2\2\u07e9\u07e7\3\2\2\2\u07ea\u07ec\7\60\2\2\u07eb"+
+ "\u07ed\5\u01df\u00f0\2\u07ec\u07eb\3\2\2\2\u07ed\u07ee\3\2\2\2\u07ee\u07ec"+
+ "\3\2\2\2\u07ee\u07ef\3\2\2\2\u07ef\u07f1\3\2\2\2\u07f0\u07df\3\2\2\2\u07f0"+
+ "\u07ea\3\2\2\2\u07f1\u01cc\3\2\2\2\u07f2\u07f4\5\u01df\u00f0\2\u07f3\u07f2"+
+ "\3\2\2\2\u07f4\u07f5\3\2\2\2\u07f5\u07f3\3\2\2\2\u07f5\u07f6\3\2\2\2\u07f6"+
+ "\u07fe\3\2\2\2\u07f7\u07fb\7\60\2\2\u07f8\u07fa\5\u01df\u00f0\2\u07f9"+
+ "\u07f8\3\2\2\2\u07fa\u07fd\3\2\2\2\u07fb\u07f9\3\2\2\2\u07fb\u07fc\3\2"+
+ "\2\2\u07fc\u07ff\3\2\2\2\u07fd\u07fb\3\2\2\2\u07fe\u07f7\3\2\2\2\u07fe"+
+ "\u07ff\3\2\2\2\u07ff\u0800\3\2\2\2\u0800\u0801\5\u01dd\u00ef\2\u0801\u080b"+
+ "\3\2\2\2\u0802\u0804\7\60\2\2\u0803\u0805\5\u01df\u00f0\2\u0804\u0803"+
+ "\3\2\2\2\u0805\u0806\3\2\2\2\u0806\u0804\3\2\2\2\u0806\u0807\3\2\2\2\u0807"+
+ "\u0808\3\2\2\2\u0808\u0809\5\u01dd\u00ef\2\u0809\u080b\3\2\2\2\u080a\u07f3"+
+ "\3\2\2\2\u080a\u0802\3\2\2\2\u080b\u01ce\3\2\2\2\u080c\u080f\5\u01e1\u00f1"+
+ "\2\u080d\u080f\7a\2\2\u080e\u080c\3\2\2\2\u080e\u080d\3\2\2\2\u080f\u0815"+
+ "\3\2\2\2\u0810\u0814\5\u01e1\u00f1\2\u0811\u0814\5\u01df\u00f0\2\u0812"+
+ "\u0814\t\3\2\2\u0813\u0810\3\2\2\2\u0813\u0811\3\2\2\2\u0813\u0812\3\2"+
+ "\2\2\u0814\u0817\3\2\2\2\u0815\u0813\3\2\2\2\u0815\u0816\3\2\2\2\u0816"+
+ "\u01d0\3\2\2\2\u0817\u0815\3\2\2\2\u0818\u081c\5\u01df\u00f0\2\u0819\u081d"+
+ "\5\u01e1\u00f1\2\u081a\u081d\5\u01df\u00f0\2\u081b\u081d\t\3\2\2\u081c"+
+ "\u0819\3\2\2\2\u081c\u081a\3\2\2\2\u081c\u081b\3\2\2\2\u081d\u081e\3\2"+
+ "\2\2\u081e\u081c\3\2\2\2\u081e\u081f\3\2\2\2\u081f\u01d2\3\2\2\2\u0820"+
+ "\u0826\7$\2\2\u0821\u0825\n\4\2\2\u0822\u0823\7$\2\2\u0823\u0825\7$\2"+
+ "\2\u0824\u0821\3\2\2\2\u0824\u0822\3\2\2\2\u0825\u0828\3\2\2\2\u0826\u0824"+
+ "\3\2\2\2\u0826\u0827\3\2\2\2\u0827\u0829\3\2\2\2\u0828\u0826\3\2\2\2\u0829"+
+ "\u082a\7$\2\2\u082a\u01d4\3\2\2\2\u082b\u0831\7b\2\2\u082c\u0830\n\5\2"+
+ "\2\u082d\u082e\7b\2\2\u082e\u0830\7b\2\2\u082f\u082c\3\2\2\2\u082f\u082d"+
+ "\3\2\2\2\u0830\u0833\3\2\2\2\u0831\u082f\3\2\2\2\u0831\u0832\3\2\2\2\u0832"+
+ "\u0834\3\2\2\2\u0833\u0831\3\2\2\2\u0834\u0835\7b\2\2\u0835\u01d6\3\2"+
+ "\2\2\u0836\u0837\7V\2\2\u0837\u0838\7K\2\2\u0838\u0839\7O\2\2\u0839\u083a"+
+ "\7G\2\2\u083a\u083b\3\2\2\2\u083b\u083c\5\u01e7\u00f4\2\u083c\u083d\7"+
+ "Y\2\2\u083d\u083e\7K\2\2\u083e\u083f\7V\2\2\u083f\u0840\7J\2\2\u0840\u0841"+
+ "\3\2\2\2\u0841\u0842\5\u01e7\u00f4\2\u0842\u0843\7V\2\2\u0843\u0844\7"+
+ "K\2\2\u0844\u0845\7O\2\2\u0845\u0846\7G\2\2\u0846\u0847\3\2\2\2\u0847"+
+ "\u0848\5\u01e7\u00f4\2\u0848\u0849\7\\\2\2\u0849\u084a\7Q\2\2\u084a\u084b"+
+ "\7P\2\2\u084b\u084c\7G\2\2\u084c\u01d8\3\2\2\2\u084d\u084e\7V\2\2\u084e"+
+ "\u084f\7K\2\2\u084f\u0850\7O\2\2\u0850\u0851\7G\2\2\u0851\u0852\7U\2\2"+
+ "\u0852\u0853\7V\2\2\u0853\u0854\7C\2\2\u0854\u0855\7O\2\2\u0855\u0856"+
+ "\7R\2\2\u0856\u0857\3\2\2\2\u0857\u0858\5\u01e7\u00f4\2\u0858\u0859\7"+
+ "Y\2\2\u0859\u085a\7K\2\2\u085a\u085b\7V\2\2\u085b\u085c\7J\2\2\u085c\u085d"+
+ "\3\2\2\2\u085d\u085e\5\u01e7\u00f4\2\u085e\u085f\7V\2\2\u085f\u0860\7"+
+ "K\2\2\u0860\u0861\7O\2\2\u0861\u0862\7G\2\2\u0862\u0863\3\2\2\2\u0863"+
+ "\u0864\5\u01e7\u00f4\2\u0864\u0865\7\\\2\2\u0865\u0866\7Q\2\2\u0866\u0867"+
+ "\7P\2\2\u0867\u0868\7G\2\2\u0868\u01da\3\2\2\2\u0869\u086a\7F\2\2\u086a"+
+ "\u086b\7Q\2\2\u086b\u086c\7W\2\2\u086c\u086d\7D\2\2\u086d\u086e\7N\2\2"+
+ "\u086e\u086f\7G\2\2\u086f\u0870\3\2\2\2\u0870\u0871\5\u01e7\u00f4\2\u0871"+
+ "\u0872\7R\2\2\u0872\u0873\7T\2\2\u0873\u0874\7G\2\2\u0874\u0875\7E\2\2"+
+ "\u0875\u0876\7K\2\2\u0876\u0877\7U\2\2\u0877\u0878\7K\2\2\u0878\u0879"+
+ "\7Q\2\2\u0879\u087a\7P\2\2\u087a\u01dc\3\2\2\2\u087b\u087d\7G\2\2\u087c"+
+ "\u087e\t\6\2\2\u087d\u087c\3\2\2\2\u087d\u087e\3\2\2\2\u087e\u0880\3\2"+
+ "\2\2\u087f\u0881\5\u01df\u00f0\2\u0880\u087f\3\2\2\2\u0881\u0882\3\2\2"+
+ "\2\u0882\u0880\3\2\2\2\u0882\u0883\3\2\2\2\u0883\u01de\3\2\2\2\u0884\u0885"+
+ "\t\7\2\2\u0885\u01e0\3\2\2\2\u0886\u0887\t\b\2\2\u0887\u01e2\3\2\2\2\u0888"+
+ "\u0889\7/\2\2\u0889\u088a\7/\2\2\u088a\u088e\3\2\2\2\u088b\u088d\n\t\2"+
+ "\2\u088c\u088b\3\2\2\2\u088d\u0890\3\2\2\2\u088e\u088c\3\2\2\2\u088e\u088f"+
+ "\3\2\2\2\u088f\u0892\3\2\2\2\u0890\u088e\3\2\2\2\u0891\u0893\7\17\2\2"+
+ "\u0892\u0891\3\2\2\2\u0892\u0893\3\2\2\2\u0893\u0895\3\2\2\2\u0894\u0896"+
+ "\7\f\2\2\u0895\u0894\3\2\2\2\u0895\u0896\3\2\2\2\u0896\u0897\3\2\2\2\u0897"+
+ "\u0898\b\u00f2\2\2\u0898\u01e4\3\2\2\2\u0899\u089a\7\61\2\2\u089a\u089b"+
+ "\7,\2\2\u089b\u089f\3\2\2\2\u089c\u089e\13\2\2\2\u089d\u089c\3\2\2\2\u089e"+
+ "\u08a1\3\2\2\2\u089f\u08a0\3\2\2\2\u089f\u089d\3\2\2\2\u08a0\u08a2\3\2"+
+ "\2\2\u08a1\u089f\3\2\2\2\u08a2\u08a3\7,\2\2\u08a3\u08a4\7\61\2\2\u08a4"+
+ "\u08a5\3\2\2\2\u08a5\u08a6\b\u00f3\2\2\u08a6\u01e6\3\2\2\2\u08a7\u08a9"+
+ "\t\n\2\2\u08a8\u08a7\3\2\2\2\u08a9\u08aa\3\2\2\2\u08aa\u08a8\3\2\2\2\u08aa"+
+ "\u08ab\3\2\2\2\u08ab\u08ac\3\2\2\2\u08ac\u08ad\b\u00f4\2\2\u08ad\u01e8"+
+ "\3\2\2\2\u08ae\u08af\13\2\2\2\u08af\u01ea\3\2\2\2#\2\u079c\u07b9\u07bb"+
+ "\u07c7\u07c9\u07d4\u07dc\u07e1\u07e7\u07ee\u07f0\u07f5\u07fb\u07fe\u0806"+
+ "\u080a\u080e\u0813\u0815\u081c\u081e\u0824\u0826\u082f\u0831\u087d\u0882"+
+ "\u088e\u0892\u0895\u089f\u08aa\3\2\3\2";
+ 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);
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlListener.java b/src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlListener.java
new file mode 100644
index 0000000..d403528
--- /dev/null
+++ b/src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlListener.java
@@ -0,0 +1,2372 @@
+// Generated from com/github/bigdata/sql/antlr4/presto/PrestoSql.g4 by ANTLR 4.7
+package com.github.bigdata.sql.antlr4.presto;
+import org.antlr.v4.runtime.tree.ParseTreeListener;
+
+/**
+ * This interface defines a complete listener for a parse tree produced by
+ * {@link PrestoSqlParser}.
+ */
+public interface PrestoSqlListener extends ParseTreeListener {
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#singleStatement}.
+ * @param ctx the parse tree
+ */
+ void enterSingleStatement(PrestoSqlParser.SingleStatementContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#singleStatement}.
+ * @param ctx the parse tree
+ */
+ void exitSingleStatement(PrestoSqlParser.SingleStatementContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#standaloneExpression}.
+ * @param ctx the parse tree
+ */
+ void enterStandaloneExpression(PrestoSqlParser.StandaloneExpressionContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#standaloneExpression}.
+ * @param ctx the parse tree
+ */
+ void exitStandaloneExpression(PrestoSqlParser.StandaloneExpressionContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#standaloneRoutineBody}.
+ * @param ctx the parse tree
+ */
+ void enterStandaloneRoutineBody(PrestoSqlParser.StandaloneRoutineBodyContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#standaloneRoutineBody}.
+ * @param ctx the parse tree
+ */
+ void exitStandaloneRoutineBody(PrestoSqlParser.StandaloneRoutineBodyContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code statementDefault}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterStatementDefault(PrestoSqlParser.StatementDefaultContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code statementDefault}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitStatementDefault(PrestoSqlParser.StatementDefaultContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code use}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterUse(PrestoSqlParser.UseContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code use}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitUse(PrestoSqlParser.UseContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code createSchema}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterCreateSchema(PrestoSqlParser.CreateSchemaContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code createSchema}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitCreateSchema(PrestoSqlParser.CreateSchemaContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code dropSchema}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterDropSchema(PrestoSqlParser.DropSchemaContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code dropSchema}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitDropSchema(PrestoSqlParser.DropSchemaContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code renameSchema}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterRenameSchema(PrestoSqlParser.RenameSchemaContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code renameSchema}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitRenameSchema(PrestoSqlParser.RenameSchemaContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code createTableAsSelect}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterCreateTableAsSelect(PrestoSqlParser.CreateTableAsSelectContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code createTableAsSelect}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitCreateTableAsSelect(PrestoSqlParser.CreateTableAsSelectContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code createTable}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterCreateTable(PrestoSqlParser.CreateTableContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code createTable}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitCreateTable(PrestoSqlParser.CreateTableContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code dropTable}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterDropTable(PrestoSqlParser.DropTableContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code dropTable}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitDropTable(PrestoSqlParser.DropTableContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code insertInto}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterInsertInto(PrestoSqlParser.InsertIntoContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code insertInto}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitInsertInto(PrestoSqlParser.InsertIntoContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code delete}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterDelete(PrestoSqlParser.DeleteContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code delete}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitDelete(PrestoSqlParser.DeleteContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code renameTable}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterRenameTable(PrestoSqlParser.RenameTableContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code renameTable}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitRenameTable(PrestoSqlParser.RenameTableContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code renameColumn}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterRenameColumn(PrestoSqlParser.RenameColumnContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code renameColumn}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitRenameColumn(PrestoSqlParser.RenameColumnContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code dropColumn}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterDropColumn(PrestoSqlParser.DropColumnContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code dropColumn}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitDropColumn(PrestoSqlParser.DropColumnContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code addColumn}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterAddColumn(PrestoSqlParser.AddColumnContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code addColumn}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitAddColumn(PrestoSqlParser.AddColumnContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code analyze}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterAnalyze(PrestoSqlParser.AnalyzeContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code analyze}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitAnalyze(PrestoSqlParser.AnalyzeContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code createType}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterCreateType(PrestoSqlParser.CreateTypeContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code createType}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitCreateType(PrestoSqlParser.CreateTypeContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code createView}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterCreateView(PrestoSqlParser.CreateViewContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code createView}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitCreateView(PrestoSqlParser.CreateViewContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code dropView}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterDropView(PrestoSqlParser.DropViewContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code dropView}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitDropView(PrestoSqlParser.DropViewContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code createMaterializedView}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterCreateMaterializedView(PrestoSqlParser.CreateMaterializedViewContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code createMaterializedView}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitCreateMaterializedView(PrestoSqlParser.CreateMaterializedViewContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code dropMaterializedView}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterDropMaterializedView(PrestoSqlParser.DropMaterializedViewContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code dropMaterializedView}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitDropMaterializedView(PrestoSqlParser.DropMaterializedViewContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code refreshMaterializedView}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterRefreshMaterializedView(PrestoSqlParser.RefreshMaterializedViewContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code refreshMaterializedView}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitRefreshMaterializedView(PrestoSqlParser.RefreshMaterializedViewContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code createFunction}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterCreateFunction(PrestoSqlParser.CreateFunctionContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code createFunction}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitCreateFunction(PrestoSqlParser.CreateFunctionContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code alterFunction}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterAlterFunction(PrestoSqlParser.AlterFunctionContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code alterFunction}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitAlterFunction(PrestoSqlParser.AlterFunctionContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code dropFunction}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterDropFunction(PrestoSqlParser.DropFunctionContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code dropFunction}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitDropFunction(PrestoSqlParser.DropFunctionContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code call}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterCall(PrestoSqlParser.CallContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code call}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitCall(PrestoSqlParser.CallContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code createRole}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterCreateRole(PrestoSqlParser.CreateRoleContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code createRole}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitCreateRole(PrestoSqlParser.CreateRoleContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code dropRole}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterDropRole(PrestoSqlParser.DropRoleContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code dropRole}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitDropRole(PrestoSqlParser.DropRoleContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code grantRoles}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterGrantRoles(PrestoSqlParser.GrantRolesContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code grantRoles}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitGrantRoles(PrestoSqlParser.GrantRolesContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code revokeRoles}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterRevokeRoles(PrestoSqlParser.RevokeRolesContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code revokeRoles}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitRevokeRoles(PrestoSqlParser.RevokeRolesContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code setRole}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterSetRole(PrestoSqlParser.SetRoleContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code setRole}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitSetRole(PrestoSqlParser.SetRoleContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code grant}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterGrant(PrestoSqlParser.GrantContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code grant}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitGrant(PrestoSqlParser.GrantContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code revoke}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterRevoke(PrestoSqlParser.RevokeContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code revoke}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitRevoke(PrestoSqlParser.RevokeContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code showGrants}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterShowGrants(PrestoSqlParser.ShowGrantsContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code showGrants}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitShowGrants(PrestoSqlParser.ShowGrantsContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code explain}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterExplain(PrestoSqlParser.ExplainContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code explain}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitExplain(PrestoSqlParser.ExplainContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code showCreateTable}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterShowCreateTable(PrestoSqlParser.ShowCreateTableContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code showCreateTable}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitShowCreateTable(PrestoSqlParser.ShowCreateTableContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code showCreateView}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterShowCreateView(PrestoSqlParser.ShowCreateViewContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code showCreateView}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitShowCreateView(PrestoSqlParser.ShowCreateViewContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code showCreateMaterializedView}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterShowCreateMaterializedView(PrestoSqlParser.ShowCreateMaterializedViewContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code showCreateMaterializedView}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitShowCreateMaterializedView(PrestoSqlParser.ShowCreateMaterializedViewContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code showCreateFunction}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterShowCreateFunction(PrestoSqlParser.ShowCreateFunctionContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code showCreateFunction}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitShowCreateFunction(PrestoSqlParser.ShowCreateFunctionContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code showTables}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterShowTables(PrestoSqlParser.ShowTablesContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code showTables}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitShowTables(PrestoSqlParser.ShowTablesContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code showSchemas}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterShowSchemas(PrestoSqlParser.ShowSchemasContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code showSchemas}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitShowSchemas(PrestoSqlParser.ShowSchemasContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code showCatalogs}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterShowCatalogs(PrestoSqlParser.ShowCatalogsContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code showCatalogs}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitShowCatalogs(PrestoSqlParser.ShowCatalogsContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code showColumns}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterShowColumns(PrestoSqlParser.ShowColumnsContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code showColumns}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitShowColumns(PrestoSqlParser.ShowColumnsContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code showStats}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterShowStats(PrestoSqlParser.ShowStatsContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code showStats}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitShowStats(PrestoSqlParser.ShowStatsContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code showStatsForQuery}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterShowStatsForQuery(PrestoSqlParser.ShowStatsForQueryContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code showStatsForQuery}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitShowStatsForQuery(PrestoSqlParser.ShowStatsForQueryContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code showRoles}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterShowRoles(PrestoSqlParser.ShowRolesContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code showRoles}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitShowRoles(PrestoSqlParser.ShowRolesContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code showRoleGrants}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterShowRoleGrants(PrestoSqlParser.ShowRoleGrantsContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code showRoleGrants}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitShowRoleGrants(PrestoSqlParser.ShowRoleGrantsContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code showFunctions}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterShowFunctions(PrestoSqlParser.ShowFunctionsContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code showFunctions}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitShowFunctions(PrestoSqlParser.ShowFunctionsContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code showSession}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterShowSession(PrestoSqlParser.ShowSessionContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code showSession}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitShowSession(PrestoSqlParser.ShowSessionContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code setSession}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterSetSession(PrestoSqlParser.SetSessionContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code setSession}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitSetSession(PrestoSqlParser.SetSessionContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code resetSession}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterResetSession(PrestoSqlParser.ResetSessionContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code resetSession}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitResetSession(PrestoSqlParser.ResetSessionContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code startTransaction}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterStartTransaction(PrestoSqlParser.StartTransactionContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code startTransaction}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitStartTransaction(PrestoSqlParser.StartTransactionContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code commit}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterCommit(PrestoSqlParser.CommitContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code commit}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitCommit(PrestoSqlParser.CommitContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code rollback}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterRollback(PrestoSqlParser.RollbackContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code rollback}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitRollback(PrestoSqlParser.RollbackContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code prepare}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterPrepare(PrestoSqlParser.PrepareContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code prepare}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitPrepare(PrestoSqlParser.PrepareContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code deallocate}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterDeallocate(PrestoSqlParser.DeallocateContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code deallocate}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitDeallocate(PrestoSqlParser.DeallocateContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code execute}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterExecute(PrestoSqlParser.ExecuteContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code execute}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitExecute(PrestoSqlParser.ExecuteContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code describeInput}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterDescribeInput(PrestoSqlParser.DescribeInputContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code describeInput}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitDescribeInput(PrestoSqlParser.DescribeInputContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code describeOutput}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void enterDescribeOutput(PrestoSqlParser.DescribeOutputContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code describeOutput}
+ * labeled alternative in {@link PrestoSqlParser#statement}.
+ * @param ctx the parse tree
+ */
+ void exitDescribeOutput(PrestoSqlParser.DescribeOutputContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#query}.
+ * @param ctx the parse tree
+ */
+ void enterQuery(PrestoSqlParser.QueryContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#query}.
+ * @param ctx the parse tree
+ */
+ void exitQuery(PrestoSqlParser.QueryContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#with}.
+ * @param ctx the parse tree
+ */
+ void enterWith(PrestoSqlParser.WithContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#with}.
+ * @param ctx the parse tree
+ */
+ void exitWith(PrestoSqlParser.WithContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#tableElement}.
+ * @param ctx the parse tree
+ */
+ void enterTableElement(PrestoSqlParser.TableElementContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#tableElement}.
+ * @param ctx the parse tree
+ */
+ void exitTableElement(PrestoSqlParser.TableElementContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#columnDefinition}.
+ * @param ctx the parse tree
+ */
+ void enterColumnDefinition(PrestoSqlParser.ColumnDefinitionContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#columnDefinition}.
+ * @param ctx the parse tree
+ */
+ void exitColumnDefinition(PrestoSqlParser.ColumnDefinitionContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#likeClause}.
+ * @param ctx the parse tree
+ */
+ void enterLikeClause(PrestoSqlParser.LikeClauseContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#likeClause}.
+ * @param ctx the parse tree
+ */
+ void exitLikeClause(PrestoSqlParser.LikeClauseContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#properties}.
+ * @param ctx the parse tree
+ */
+ void enterProperties(PrestoSqlParser.PropertiesContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#properties}.
+ * @param ctx the parse tree
+ */
+ void exitProperties(PrestoSqlParser.PropertiesContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#property}.
+ * @param ctx the parse tree
+ */
+ void enterProperty(PrestoSqlParser.PropertyContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#property}.
+ * @param ctx the parse tree
+ */
+ void exitProperty(PrestoSqlParser.PropertyContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#sqlParameterDeclaration}.
+ * @param ctx the parse tree
+ */
+ void enterSqlParameterDeclaration(PrestoSqlParser.SqlParameterDeclarationContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#sqlParameterDeclaration}.
+ * @param ctx the parse tree
+ */
+ void exitSqlParameterDeclaration(PrestoSqlParser.SqlParameterDeclarationContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#routineCharacteristics}.
+ * @param ctx the parse tree
+ */
+ void enterRoutineCharacteristics(PrestoSqlParser.RoutineCharacteristicsContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#routineCharacteristics}.
+ * @param ctx the parse tree
+ */
+ void exitRoutineCharacteristics(PrestoSqlParser.RoutineCharacteristicsContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#routineCharacteristic}.
+ * @param ctx the parse tree
+ */
+ void enterRoutineCharacteristic(PrestoSqlParser.RoutineCharacteristicContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#routineCharacteristic}.
+ * @param ctx the parse tree
+ */
+ void exitRoutineCharacteristic(PrestoSqlParser.RoutineCharacteristicContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#alterRoutineCharacteristics}.
+ * @param ctx the parse tree
+ */
+ void enterAlterRoutineCharacteristics(PrestoSqlParser.AlterRoutineCharacteristicsContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#alterRoutineCharacteristics}.
+ * @param ctx the parse tree
+ */
+ void exitAlterRoutineCharacteristics(PrestoSqlParser.AlterRoutineCharacteristicsContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#alterRoutineCharacteristic}.
+ * @param ctx the parse tree
+ */
+ void enterAlterRoutineCharacteristic(PrestoSqlParser.AlterRoutineCharacteristicContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#alterRoutineCharacteristic}.
+ * @param ctx the parse tree
+ */
+ void exitAlterRoutineCharacteristic(PrestoSqlParser.AlterRoutineCharacteristicContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#routineBody}.
+ * @param ctx the parse tree
+ */
+ void enterRoutineBody(PrestoSqlParser.RoutineBodyContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#routineBody}.
+ * @param ctx the parse tree
+ */
+ void exitRoutineBody(PrestoSqlParser.RoutineBodyContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#returnStatement}.
+ * @param ctx the parse tree
+ */
+ void enterReturnStatement(PrestoSqlParser.ReturnStatementContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#returnStatement}.
+ * @param ctx the parse tree
+ */
+ void exitReturnStatement(PrestoSqlParser.ReturnStatementContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#externalBodyReference}.
+ * @param ctx the parse tree
+ */
+ void enterExternalBodyReference(PrestoSqlParser.ExternalBodyReferenceContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#externalBodyReference}.
+ * @param ctx the parse tree
+ */
+ void exitExternalBodyReference(PrestoSqlParser.ExternalBodyReferenceContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#language}.
+ * @param ctx the parse tree
+ */
+ void enterLanguage(PrestoSqlParser.LanguageContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#language}.
+ * @param ctx the parse tree
+ */
+ void exitLanguage(PrestoSqlParser.LanguageContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#determinism}.
+ * @param ctx the parse tree
+ */
+ void enterDeterminism(PrestoSqlParser.DeterminismContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#determinism}.
+ * @param ctx the parse tree
+ */
+ void exitDeterminism(PrestoSqlParser.DeterminismContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#nullCallClause}.
+ * @param ctx the parse tree
+ */
+ void enterNullCallClause(PrestoSqlParser.NullCallClauseContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#nullCallClause}.
+ * @param ctx the parse tree
+ */
+ void exitNullCallClause(PrestoSqlParser.NullCallClauseContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#externalRoutineName}.
+ * @param ctx the parse tree
+ */
+ void enterExternalRoutineName(PrestoSqlParser.ExternalRoutineNameContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#externalRoutineName}.
+ * @param ctx the parse tree
+ */
+ void exitExternalRoutineName(PrestoSqlParser.ExternalRoutineNameContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#queryNoWith}.
+ * @param ctx the parse tree
+ */
+ void enterQueryNoWith(PrestoSqlParser.QueryNoWithContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#queryNoWith}.
+ * @param ctx the parse tree
+ */
+ void exitQueryNoWith(PrestoSqlParser.QueryNoWithContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code queryTermDefault}
+ * labeled alternative in {@link PrestoSqlParser#queryTerm}.
+ * @param ctx the parse tree
+ */
+ void enterQueryTermDefault(PrestoSqlParser.QueryTermDefaultContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code queryTermDefault}
+ * labeled alternative in {@link PrestoSqlParser#queryTerm}.
+ * @param ctx the parse tree
+ */
+ void exitQueryTermDefault(PrestoSqlParser.QueryTermDefaultContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code setOperation}
+ * labeled alternative in {@link PrestoSqlParser#queryTerm}.
+ * @param ctx the parse tree
+ */
+ void enterSetOperation(PrestoSqlParser.SetOperationContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code setOperation}
+ * labeled alternative in {@link PrestoSqlParser#queryTerm}.
+ * @param ctx the parse tree
+ */
+ void exitSetOperation(PrestoSqlParser.SetOperationContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code queryPrimaryDefault}
+ * labeled alternative in {@link PrestoSqlParser#queryPrimary}.
+ * @param ctx the parse tree
+ */
+ void enterQueryPrimaryDefault(PrestoSqlParser.QueryPrimaryDefaultContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code queryPrimaryDefault}
+ * labeled alternative in {@link PrestoSqlParser#queryPrimary}.
+ * @param ctx the parse tree
+ */
+ void exitQueryPrimaryDefault(PrestoSqlParser.QueryPrimaryDefaultContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code table}
+ * labeled alternative in {@link PrestoSqlParser#queryPrimary}.
+ * @param ctx the parse tree
+ */
+ void enterTable(PrestoSqlParser.TableContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code table}
+ * labeled alternative in {@link PrestoSqlParser#queryPrimary}.
+ * @param ctx the parse tree
+ */
+ void exitTable(PrestoSqlParser.TableContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code inlineTable}
+ * labeled alternative in {@link PrestoSqlParser#queryPrimary}.
+ * @param ctx the parse tree
+ */
+ void enterInlineTable(PrestoSqlParser.InlineTableContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code inlineTable}
+ * labeled alternative in {@link PrestoSqlParser#queryPrimary}.
+ * @param ctx the parse tree
+ */
+ void exitInlineTable(PrestoSqlParser.InlineTableContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code subquery}
+ * labeled alternative in {@link PrestoSqlParser#queryPrimary}.
+ * @param ctx the parse tree
+ */
+ void enterSubquery(PrestoSqlParser.SubqueryContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code subquery}
+ * labeled alternative in {@link PrestoSqlParser#queryPrimary}.
+ * @param ctx the parse tree
+ */
+ void exitSubquery(PrestoSqlParser.SubqueryContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#sortItem}.
+ * @param ctx the parse tree
+ */
+ void enterSortItem(PrestoSqlParser.SortItemContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#sortItem}.
+ * @param ctx the parse tree
+ */
+ void exitSortItem(PrestoSqlParser.SortItemContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#querySpecification}.
+ * @param ctx the parse tree
+ */
+ void enterQuerySpecification(PrestoSqlParser.QuerySpecificationContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#querySpecification}.
+ * @param ctx the parse tree
+ */
+ void exitQuerySpecification(PrestoSqlParser.QuerySpecificationContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#groupBy}.
+ * @param ctx the parse tree
+ */
+ void enterGroupBy(PrestoSqlParser.GroupByContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#groupBy}.
+ * @param ctx the parse tree
+ */
+ void exitGroupBy(PrestoSqlParser.GroupByContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code singleGroupingSet}
+ * labeled alternative in {@link PrestoSqlParser#groupingElement}.
+ * @param ctx the parse tree
+ */
+ void enterSingleGroupingSet(PrestoSqlParser.SingleGroupingSetContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code singleGroupingSet}
+ * labeled alternative in {@link PrestoSqlParser#groupingElement}.
+ * @param ctx the parse tree
+ */
+ void exitSingleGroupingSet(PrestoSqlParser.SingleGroupingSetContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code rollup}
+ * labeled alternative in {@link PrestoSqlParser#groupingElement}.
+ * @param ctx the parse tree
+ */
+ void enterRollup(PrestoSqlParser.RollupContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code rollup}
+ * labeled alternative in {@link PrestoSqlParser#groupingElement}.
+ * @param ctx the parse tree
+ */
+ void exitRollup(PrestoSqlParser.RollupContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code cube}
+ * labeled alternative in {@link PrestoSqlParser#groupingElement}.
+ * @param ctx the parse tree
+ */
+ void enterCube(PrestoSqlParser.CubeContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code cube}
+ * labeled alternative in {@link PrestoSqlParser#groupingElement}.
+ * @param ctx the parse tree
+ */
+ void exitCube(PrestoSqlParser.CubeContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code multipleGroupingSets}
+ * labeled alternative in {@link PrestoSqlParser#groupingElement}.
+ * @param ctx the parse tree
+ */
+ void enterMultipleGroupingSets(PrestoSqlParser.MultipleGroupingSetsContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code multipleGroupingSets}
+ * labeled alternative in {@link PrestoSqlParser#groupingElement}.
+ * @param ctx the parse tree
+ */
+ void exitMultipleGroupingSets(PrestoSqlParser.MultipleGroupingSetsContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#groupingSet}.
+ * @param ctx the parse tree
+ */
+ void enterGroupingSet(PrestoSqlParser.GroupingSetContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#groupingSet}.
+ * @param ctx the parse tree
+ */
+ void exitGroupingSet(PrestoSqlParser.GroupingSetContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#namedQuery}.
+ * @param ctx the parse tree
+ */
+ void enterNamedQuery(PrestoSqlParser.NamedQueryContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#namedQuery}.
+ * @param ctx the parse tree
+ */
+ void exitNamedQuery(PrestoSqlParser.NamedQueryContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#setQuantifier}.
+ * @param ctx the parse tree
+ */
+ void enterSetQuantifier(PrestoSqlParser.SetQuantifierContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#setQuantifier}.
+ * @param ctx the parse tree
+ */
+ void exitSetQuantifier(PrestoSqlParser.SetQuantifierContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code selectSingle}
+ * labeled alternative in {@link PrestoSqlParser#selectItem}.
+ * @param ctx the parse tree
+ */
+ void enterSelectSingle(PrestoSqlParser.SelectSingleContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code selectSingle}
+ * labeled alternative in {@link PrestoSqlParser#selectItem}.
+ * @param ctx the parse tree
+ */
+ void exitSelectSingle(PrestoSqlParser.SelectSingleContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code selectAll}
+ * labeled alternative in {@link PrestoSqlParser#selectItem}.
+ * @param ctx the parse tree
+ */
+ void enterSelectAll(PrestoSqlParser.SelectAllContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code selectAll}
+ * labeled alternative in {@link PrestoSqlParser#selectItem}.
+ * @param ctx the parse tree
+ */
+ void exitSelectAll(PrestoSqlParser.SelectAllContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code relationDefault}
+ * labeled alternative in {@link PrestoSqlParser#relation}.
+ * @param ctx the parse tree
+ */
+ void enterRelationDefault(PrestoSqlParser.RelationDefaultContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code relationDefault}
+ * labeled alternative in {@link PrestoSqlParser#relation}.
+ * @param ctx the parse tree
+ */
+ void exitRelationDefault(PrestoSqlParser.RelationDefaultContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code joinRelation}
+ * labeled alternative in {@link PrestoSqlParser#relation}.
+ * @param ctx the parse tree
+ */
+ void enterJoinRelation(PrestoSqlParser.JoinRelationContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code joinRelation}
+ * labeled alternative in {@link PrestoSqlParser#relation}.
+ * @param ctx the parse tree
+ */
+ void exitJoinRelation(PrestoSqlParser.JoinRelationContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#joinType}.
+ * @param ctx the parse tree
+ */
+ void enterJoinType(PrestoSqlParser.JoinTypeContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#joinType}.
+ * @param ctx the parse tree
+ */
+ void exitJoinType(PrestoSqlParser.JoinTypeContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#joinCriteria}.
+ * @param ctx the parse tree
+ */
+ void enterJoinCriteria(PrestoSqlParser.JoinCriteriaContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#joinCriteria}.
+ * @param ctx the parse tree
+ */
+ void exitJoinCriteria(PrestoSqlParser.JoinCriteriaContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#sampledRelation}.
+ * @param ctx the parse tree
+ */
+ void enterSampledRelation(PrestoSqlParser.SampledRelationContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#sampledRelation}.
+ * @param ctx the parse tree
+ */
+ void exitSampledRelation(PrestoSqlParser.SampledRelationContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#sampleType}.
+ * @param ctx the parse tree
+ */
+ void enterSampleType(PrestoSqlParser.SampleTypeContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#sampleType}.
+ * @param ctx the parse tree
+ */
+ void exitSampleType(PrestoSqlParser.SampleTypeContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#aliasedRelation}.
+ * @param ctx the parse tree
+ */
+ void enterAliasedRelation(PrestoSqlParser.AliasedRelationContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#aliasedRelation}.
+ * @param ctx the parse tree
+ */
+ void exitAliasedRelation(PrestoSqlParser.AliasedRelationContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#columnAliases}.
+ * @param ctx the parse tree
+ */
+ void enterColumnAliases(PrestoSqlParser.ColumnAliasesContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#columnAliases}.
+ * @param ctx the parse tree
+ */
+ void exitColumnAliases(PrestoSqlParser.ColumnAliasesContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code tableName}
+ * labeled alternative in {@link PrestoSqlParser#relationPrimary}.
+ * @param ctx the parse tree
+ */
+ void enterTableName(PrestoSqlParser.TableNameContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code tableName}
+ * labeled alternative in {@link PrestoSqlParser#relationPrimary}.
+ * @param ctx the parse tree
+ */
+ void exitTableName(PrestoSqlParser.TableNameContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code subqueryRelation}
+ * labeled alternative in {@link PrestoSqlParser#relationPrimary}.
+ * @param ctx the parse tree
+ */
+ void enterSubqueryRelation(PrestoSqlParser.SubqueryRelationContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code subqueryRelation}
+ * labeled alternative in {@link PrestoSqlParser#relationPrimary}.
+ * @param ctx the parse tree
+ */
+ void exitSubqueryRelation(PrestoSqlParser.SubqueryRelationContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code unnest}
+ * labeled alternative in {@link PrestoSqlParser#relationPrimary}.
+ * @param ctx the parse tree
+ */
+ void enterUnnest(PrestoSqlParser.UnnestContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code unnest}
+ * labeled alternative in {@link PrestoSqlParser#relationPrimary}.
+ * @param ctx the parse tree
+ */
+ void exitUnnest(PrestoSqlParser.UnnestContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code lateral}
+ * labeled alternative in {@link PrestoSqlParser#relationPrimary}.
+ * @param ctx the parse tree
+ */
+ void enterLateral(PrestoSqlParser.LateralContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code lateral}
+ * labeled alternative in {@link PrestoSqlParser#relationPrimary}.
+ * @param ctx the parse tree
+ */
+ void exitLateral(PrestoSqlParser.LateralContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code parenthesizedRelation}
+ * labeled alternative in {@link PrestoSqlParser#relationPrimary}.
+ * @param ctx the parse tree
+ */
+ void enterParenthesizedRelation(PrestoSqlParser.ParenthesizedRelationContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code parenthesizedRelation}
+ * labeled alternative in {@link PrestoSqlParser#relationPrimary}.
+ * @param ctx the parse tree
+ */
+ void exitParenthesizedRelation(PrestoSqlParser.ParenthesizedRelationContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#expression}.
+ * @param ctx the parse tree
+ */
+ void enterExpression(PrestoSqlParser.ExpressionContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#expression}.
+ * @param ctx the parse tree
+ */
+ void exitExpression(PrestoSqlParser.ExpressionContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code logicalNot}
+ * labeled alternative in {@link PrestoSqlParser#booleanExpression}.
+ * @param ctx the parse tree
+ */
+ void enterLogicalNot(PrestoSqlParser.LogicalNotContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code logicalNot}
+ * labeled alternative in {@link PrestoSqlParser#booleanExpression}.
+ * @param ctx the parse tree
+ */
+ void exitLogicalNot(PrestoSqlParser.LogicalNotContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code predicated}
+ * labeled alternative in {@link PrestoSqlParser#booleanExpression}.
+ * @param ctx the parse tree
+ */
+ void enterPredicated(PrestoSqlParser.PredicatedContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code predicated}
+ * labeled alternative in {@link PrestoSqlParser#booleanExpression}.
+ * @param ctx the parse tree
+ */
+ void exitPredicated(PrestoSqlParser.PredicatedContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code logicalBinary}
+ * labeled alternative in {@link PrestoSqlParser#booleanExpression}.
+ * @param ctx the parse tree
+ */
+ void enterLogicalBinary(PrestoSqlParser.LogicalBinaryContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code logicalBinary}
+ * labeled alternative in {@link PrestoSqlParser#booleanExpression}.
+ * @param ctx the parse tree
+ */
+ void exitLogicalBinary(PrestoSqlParser.LogicalBinaryContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code comparison}
+ * labeled alternative in {@link PrestoSqlParser#predicate}.
+ * @param ctx the parse tree
+ */
+ void enterComparison(PrestoSqlParser.ComparisonContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code comparison}
+ * labeled alternative in {@link PrestoSqlParser#predicate}.
+ * @param ctx the parse tree
+ */
+ void exitComparison(PrestoSqlParser.ComparisonContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code quantifiedComparison}
+ * labeled alternative in {@link PrestoSqlParser#predicate}.
+ * @param ctx the parse tree
+ */
+ void enterQuantifiedComparison(PrestoSqlParser.QuantifiedComparisonContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code quantifiedComparison}
+ * labeled alternative in {@link PrestoSqlParser#predicate}.
+ * @param ctx the parse tree
+ */
+ void exitQuantifiedComparison(PrestoSqlParser.QuantifiedComparisonContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code between}
+ * labeled alternative in {@link PrestoSqlParser#predicate}.
+ * @param ctx the parse tree
+ */
+ void enterBetween(PrestoSqlParser.BetweenContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code between}
+ * labeled alternative in {@link PrestoSqlParser#predicate}.
+ * @param ctx the parse tree
+ */
+ void exitBetween(PrestoSqlParser.BetweenContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code inList}
+ * labeled alternative in {@link PrestoSqlParser#predicate}.
+ * @param ctx the parse tree
+ */
+ void enterInList(PrestoSqlParser.InListContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code inList}
+ * labeled alternative in {@link PrestoSqlParser#predicate}.
+ * @param ctx the parse tree
+ */
+ void exitInList(PrestoSqlParser.InListContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code inSubquery}
+ * labeled alternative in {@link PrestoSqlParser#predicate}.
+ * @param ctx the parse tree
+ */
+ void enterInSubquery(PrestoSqlParser.InSubqueryContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code inSubquery}
+ * labeled alternative in {@link PrestoSqlParser#predicate}.
+ * @param ctx the parse tree
+ */
+ void exitInSubquery(PrestoSqlParser.InSubqueryContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code like}
+ * labeled alternative in {@link PrestoSqlParser#predicate}.
+ * @param ctx the parse tree
+ */
+ void enterLike(PrestoSqlParser.LikeContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code like}
+ * labeled alternative in {@link PrestoSqlParser#predicate}.
+ * @param ctx the parse tree
+ */
+ void exitLike(PrestoSqlParser.LikeContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code nullPredicate}
+ * labeled alternative in {@link PrestoSqlParser#predicate}.
+ * @param ctx the parse tree
+ */
+ void enterNullPredicate(PrestoSqlParser.NullPredicateContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code nullPredicate}
+ * labeled alternative in {@link PrestoSqlParser#predicate}.
+ * @param ctx the parse tree
+ */
+ void exitNullPredicate(PrestoSqlParser.NullPredicateContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code distinctFrom}
+ * labeled alternative in {@link PrestoSqlParser#predicate}.
+ * @param ctx the parse tree
+ */
+ void enterDistinctFrom(PrestoSqlParser.DistinctFromContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code distinctFrom}
+ * labeled alternative in {@link PrestoSqlParser#predicate}.
+ * @param ctx the parse tree
+ */
+ void exitDistinctFrom(PrestoSqlParser.DistinctFromContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code valueExpressionDefault}
+ * labeled alternative in {@link PrestoSqlParser#valueExpression}.
+ * @param ctx the parse tree
+ */
+ void enterValueExpressionDefault(PrestoSqlParser.ValueExpressionDefaultContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code valueExpressionDefault}
+ * labeled alternative in {@link PrestoSqlParser#valueExpression}.
+ * @param ctx the parse tree
+ */
+ void exitValueExpressionDefault(PrestoSqlParser.ValueExpressionDefaultContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code concatenation}
+ * labeled alternative in {@link PrestoSqlParser#valueExpression}.
+ * @param ctx the parse tree
+ */
+ void enterConcatenation(PrestoSqlParser.ConcatenationContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code concatenation}
+ * labeled alternative in {@link PrestoSqlParser#valueExpression}.
+ * @param ctx the parse tree
+ */
+ void exitConcatenation(PrestoSqlParser.ConcatenationContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code arithmeticBinary}
+ * labeled alternative in {@link PrestoSqlParser#valueExpression}.
+ * @param ctx the parse tree
+ */
+ void enterArithmeticBinary(PrestoSqlParser.ArithmeticBinaryContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code arithmeticBinary}
+ * labeled alternative in {@link PrestoSqlParser#valueExpression}.
+ * @param ctx the parse tree
+ */
+ void exitArithmeticBinary(PrestoSqlParser.ArithmeticBinaryContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code arithmeticUnary}
+ * labeled alternative in {@link PrestoSqlParser#valueExpression}.
+ * @param ctx the parse tree
+ */
+ void enterArithmeticUnary(PrestoSqlParser.ArithmeticUnaryContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code arithmeticUnary}
+ * labeled alternative in {@link PrestoSqlParser#valueExpression}.
+ * @param ctx the parse tree
+ */
+ void exitArithmeticUnary(PrestoSqlParser.ArithmeticUnaryContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code atTimeZone}
+ * labeled alternative in {@link PrestoSqlParser#valueExpression}.
+ * @param ctx the parse tree
+ */
+ void enterAtTimeZone(PrestoSqlParser.AtTimeZoneContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code atTimeZone}
+ * labeled alternative in {@link PrestoSqlParser#valueExpression}.
+ * @param ctx the parse tree
+ */
+ void exitAtTimeZone(PrestoSqlParser.AtTimeZoneContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code dereference}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void enterDereference(PrestoSqlParser.DereferenceContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code dereference}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void exitDereference(PrestoSqlParser.DereferenceContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code typeConstructor}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void enterTypeConstructor(PrestoSqlParser.TypeConstructorContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code typeConstructor}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void exitTypeConstructor(PrestoSqlParser.TypeConstructorContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code specialDateTimeFunction}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void enterSpecialDateTimeFunction(PrestoSqlParser.SpecialDateTimeFunctionContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code specialDateTimeFunction}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void exitSpecialDateTimeFunction(PrestoSqlParser.SpecialDateTimeFunctionContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code substring}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void enterSubstring(PrestoSqlParser.SubstringContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code substring}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void exitSubstring(PrestoSqlParser.SubstringContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code cast}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void enterCast(PrestoSqlParser.CastContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code cast}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void exitCast(PrestoSqlParser.CastContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code lambda}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void enterLambda(PrestoSqlParser.LambdaContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code lambda}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void exitLambda(PrestoSqlParser.LambdaContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code parenthesizedExpression}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void enterParenthesizedExpression(PrestoSqlParser.ParenthesizedExpressionContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code parenthesizedExpression}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void exitParenthesizedExpression(PrestoSqlParser.ParenthesizedExpressionContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code parameter}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void enterParameter(PrestoSqlParser.ParameterContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code parameter}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void exitParameter(PrestoSqlParser.ParameterContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code normalize}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void enterNormalize(PrestoSqlParser.NormalizeContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code normalize}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void exitNormalize(PrestoSqlParser.NormalizeContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code intervalLiteral}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void enterIntervalLiteral(PrestoSqlParser.IntervalLiteralContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code intervalLiteral}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void exitIntervalLiteral(PrestoSqlParser.IntervalLiteralContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code numericLiteral}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void enterNumericLiteral(PrestoSqlParser.NumericLiteralContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code numericLiteral}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void exitNumericLiteral(PrestoSqlParser.NumericLiteralContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code booleanLiteral}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void enterBooleanLiteral(PrestoSqlParser.BooleanLiteralContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code booleanLiteral}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void exitBooleanLiteral(PrestoSqlParser.BooleanLiteralContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code simpleCase}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void enterSimpleCase(PrestoSqlParser.SimpleCaseContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code simpleCase}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void exitSimpleCase(PrestoSqlParser.SimpleCaseContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code columnReference}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void enterColumnReference(PrestoSqlParser.ColumnReferenceContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code columnReference}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void exitColumnReference(PrestoSqlParser.ColumnReferenceContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code nullLiteral}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void enterNullLiteral(PrestoSqlParser.NullLiteralContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code nullLiteral}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void exitNullLiteral(PrestoSqlParser.NullLiteralContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code rowConstructor}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void enterRowConstructor(PrestoSqlParser.RowConstructorContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code rowConstructor}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void exitRowConstructor(PrestoSqlParser.RowConstructorContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code subscript}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void enterSubscript(PrestoSqlParser.SubscriptContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code subscript}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void exitSubscript(PrestoSqlParser.SubscriptContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code subqueryExpression}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void enterSubqueryExpression(PrestoSqlParser.SubqueryExpressionContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code subqueryExpression}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void exitSubqueryExpression(PrestoSqlParser.SubqueryExpressionContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code binaryLiteral}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void enterBinaryLiteral(PrestoSqlParser.BinaryLiteralContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code binaryLiteral}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void exitBinaryLiteral(PrestoSqlParser.BinaryLiteralContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code currentUser}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void enterCurrentUser(PrestoSqlParser.CurrentUserContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code currentUser}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void exitCurrentUser(PrestoSqlParser.CurrentUserContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code extract}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void enterExtract(PrestoSqlParser.ExtractContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code extract}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void exitExtract(PrestoSqlParser.ExtractContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code stringLiteral}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void enterStringLiteral(PrestoSqlParser.StringLiteralContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code stringLiteral}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void exitStringLiteral(PrestoSqlParser.StringLiteralContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code arrayConstructor}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void enterArrayConstructor(PrestoSqlParser.ArrayConstructorContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code arrayConstructor}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void exitArrayConstructor(PrestoSqlParser.ArrayConstructorContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code functionCall}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void enterFunctionCall(PrestoSqlParser.FunctionCallContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code functionCall}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void exitFunctionCall(PrestoSqlParser.FunctionCallContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code exists}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void enterExists(PrestoSqlParser.ExistsContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code exists}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void exitExists(PrestoSqlParser.ExistsContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code position}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void enterPosition(PrestoSqlParser.PositionContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code position}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void exitPosition(PrestoSqlParser.PositionContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code searchedCase}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void enterSearchedCase(PrestoSqlParser.SearchedCaseContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code searchedCase}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void exitSearchedCase(PrestoSqlParser.SearchedCaseContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code groupingOperation}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void enterGroupingOperation(PrestoSqlParser.GroupingOperationContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code groupingOperation}
+ * labeled alternative in {@link PrestoSqlParser#primaryExpression}.
+ * @param ctx the parse tree
+ */
+ void exitGroupingOperation(PrestoSqlParser.GroupingOperationContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code basicStringLiteral}
+ * labeled alternative in {@link PrestoSqlParser#string}.
+ * @param ctx the parse tree
+ */
+ void enterBasicStringLiteral(PrestoSqlParser.BasicStringLiteralContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code basicStringLiteral}
+ * labeled alternative in {@link PrestoSqlParser#string}.
+ * @param ctx the parse tree
+ */
+ void exitBasicStringLiteral(PrestoSqlParser.BasicStringLiteralContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code unicodeStringLiteral}
+ * labeled alternative in {@link PrestoSqlParser#string}.
+ * @param ctx the parse tree
+ */
+ void enterUnicodeStringLiteral(PrestoSqlParser.UnicodeStringLiteralContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code unicodeStringLiteral}
+ * labeled alternative in {@link PrestoSqlParser#string}.
+ * @param ctx the parse tree
+ */
+ void exitUnicodeStringLiteral(PrestoSqlParser.UnicodeStringLiteralContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#nullTreatment}.
+ * @param ctx the parse tree
+ */
+ void enterNullTreatment(PrestoSqlParser.NullTreatmentContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#nullTreatment}.
+ * @param ctx the parse tree
+ */
+ void exitNullTreatment(PrestoSqlParser.NullTreatmentContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code timeZoneInterval}
+ * labeled alternative in {@link PrestoSqlParser#timeZoneSpecifier}.
+ * @param ctx the parse tree
+ */
+ void enterTimeZoneInterval(PrestoSqlParser.TimeZoneIntervalContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code timeZoneInterval}
+ * labeled alternative in {@link PrestoSqlParser#timeZoneSpecifier}.
+ * @param ctx the parse tree
+ */
+ void exitTimeZoneInterval(PrestoSqlParser.TimeZoneIntervalContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code timeZoneString}
+ * labeled alternative in {@link PrestoSqlParser#timeZoneSpecifier}.
+ * @param ctx the parse tree
+ */
+ void enterTimeZoneString(PrestoSqlParser.TimeZoneStringContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code timeZoneString}
+ * labeled alternative in {@link PrestoSqlParser#timeZoneSpecifier}.
+ * @param ctx the parse tree
+ */
+ void exitTimeZoneString(PrestoSqlParser.TimeZoneStringContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#comparisonOperator}.
+ * @param ctx the parse tree
+ */
+ void enterComparisonOperator(PrestoSqlParser.ComparisonOperatorContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#comparisonOperator}.
+ * @param ctx the parse tree
+ */
+ void exitComparisonOperator(PrestoSqlParser.ComparisonOperatorContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#comparisonQuantifier}.
+ * @param ctx the parse tree
+ */
+ void enterComparisonQuantifier(PrestoSqlParser.ComparisonQuantifierContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#comparisonQuantifier}.
+ * @param ctx the parse tree
+ */
+ void exitComparisonQuantifier(PrestoSqlParser.ComparisonQuantifierContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#booleanValue}.
+ * @param ctx the parse tree
+ */
+ void enterBooleanValue(PrestoSqlParser.BooleanValueContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#booleanValue}.
+ * @param ctx the parse tree
+ */
+ void exitBooleanValue(PrestoSqlParser.BooleanValueContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#interval}.
+ * @param ctx the parse tree
+ */
+ void enterInterval(PrestoSqlParser.IntervalContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#interval}.
+ * @param ctx the parse tree
+ */
+ void exitInterval(PrestoSqlParser.IntervalContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#intervalField}.
+ * @param ctx the parse tree
+ */
+ void enterIntervalField(PrestoSqlParser.IntervalFieldContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#intervalField}.
+ * @param ctx the parse tree
+ */
+ void exitIntervalField(PrestoSqlParser.IntervalFieldContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#normalForm}.
+ * @param ctx the parse tree
+ */
+ void enterNormalForm(PrestoSqlParser.NormalFormContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#normalForm}.
+ * @param ctx the parse tree
+ */
+ void exitNormalForm(PrestoSqlParser.NormalFormContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#types}.
+ * @param ctx the parse tree
+ */
+ void enterTypes(PrestoSqlParser.TypesContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#types}.
+ * @param ctx the parse tree
+ */
+ void exitTypes(PrestoSqlParser.TypesContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#type}.
+ * @param ctx the parse tree
+ */
+ void enterType(PrestoSqlParser.TypeContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#type}.
+ * @param ctx the parse tree
+ */
+ void exitType(PrestoSqlParser.TypeContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#typeParameter}.
+ * @param ctx the parse tree
+ */
+ void enterTypeParameter(PrestoSqlParser.TypeParameterContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#typeParameter}.
+ * @param ctx the parse tree
+ */
+ void exitTypeParameter(PrestoSqlParser.TypeParameterContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#baseType}.
+ * @param ctx the parse tree
+ */
+ void enterBaseType(PrestoSqlParser.BaseTypeContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#baseType}.
+ * @param ctx the parse tree
+ */
+ void exitBaseType(PrestoSqlParser.BaseTypeContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#whenClause}.
+ * @param ctx the parse tree
+ */
+ void enterWhenClause(PrestoSqlParser.WhenClauseContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#whenClause}.
+ * @param ctx the parse tree
+ */
+ void exitWhenClause(PrestoSqlParser.WhenClauseContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#filter}.
+ * @param ctx the parse tree
+ */
+ void enterFilter(PrestoSqlParser.FilterContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#filter}.
+ * @param ctx the parse tree
+ */
+ void exitFilter(PrestoSqlParser.FilterContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#over}.
+ * @param ctx the parse tree
+ */
+ void enterOver(PrestoSqlParser.OverContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#over}.
+ * @param ctx the parse tree
+ */
+ void exitOver(PrestoSqlParser.OverContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#windowFrame}.
+ * @param ctx the parse tree
+ */
+ void enterWindowFrame(PrestoSqlParser.WindowFrameContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#windowFrame}.
+ * @param ctx the parse tree
+ */
+ void exitWindowFrame(PrestoSqlParser.WindowFrameContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code unboundedFrame}
+ * labeled alternative in {@link PrestoSqlParser#frameBound}.
+ * @param ctx the parse tree
+ */
+ void enterUnboundedFrame(PrestoSqlParser.UnboundedFrameContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code unboundedFrame}
+ * labeled alternative in {@link PrestoSqlParser#frameBound}.
+ * @param ctx the parse tree
+ */
+ void exitUnboundedFrame(PrestoSqlParser.UnboundedFrameContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code currentRowBound}
+ * labeled alternative in {@link PrestoSqlParser#frameBound}.
+ * @param ctx the parse tree
+ */
+ void enterCurrentRowBound(PrestoSqlParser.CurrentRowBoundContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code currentRowBound}
+ * labeled alternative in {@link PrestoSqlParser#frameBound}.
+ * @param ctx the parse tree
+ */
+ void exitCurrentRowBound(PrestoSqlParser.CurrentRowBoundContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code boundedFrame}
+ * labeled alternative in {@link PrestoSqlParser#frameBound}.
+ * @param ctx the parse tree
+ */
+ void enterBoundedFrame(PrestoSqlParser.BoundedFrameContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code boundedFrame}
+ * labeled alternative in {@link PrestoSqlParser#frameBound}.
+ * @param ctx the parse tree
+ */
+ void exitBoundedFrame(PrestoSqlParser.BoundedFrameContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code explainFormat}
+ * labeled alternative in {@link PrestoSqlParser#explainOption}.
+ * @param ctx the parse tree
+ */
+ void enterExplainFormat(PrestoSqlParser.ExplainFormatContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code explainFormat}
+ * labeled alternative in {@link PrestoSqlParser#explainOption}.
+ * @param ctx the parse tree
+ */
+ void exitExplainFormat(PrestoSqlParser.ExplainFormatContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code explainType}
+ * labeled alternative in {@link PrestoSqlParser#explainOption}.
+ * @param ctx the parse tree
+ */
+ void enterExplainType(PrestoSqlParser.ExplainTypeContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code explainType}
+ * labeled alternative in {@link PrestoSqlParser#explainOption}.
+ * @param ctx the parse tree
+ */
+ void exitExplainType(PrestoSqlParser.ExplainTypeContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code isolationLevel}
+ * labeled alternative in {@link PrestoSqlParser#transactionMode}.
+ * @param ctx the parse tree
+ */
+ void enterIsolationLevel(PrestoSqlParser.IsolationLevelContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code isolationLevel}
+ * labeled alternative in {@link PrestoSqlParser#transactionMode}.
+ * @param ctx the parse tree
+ */
+ void exitIsolationLevel(PrestoSqlParser.IsolationLevelContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code transactionAccessMode}
+ * labeled alternative in {@link PrestoSqlParser#transactionMode}.
+ * @param ctx the parse tree
+ */
+ void enterTransactionAccessMode(PrestoSqlParser.TransactionAccessModeContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code transactionAccessMode}
+ * labeled alternative in {@link PrestoSqlParser#transactionMode}.
+ * @param ctx the parse tree
+ */
+ void exitTransactionAccessMode(PrestoSqlParser.TransactionAccessModeContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code readUncommitted}
+ * labeled alternative in {@link PrestoSqlParser#levelOfIsolation}.
+ * @param ctx the parse tree
+ */
+ void enterReadUncommitted(PrestoSqlParser.ReadUncommittedContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code readUncommitted}
+ * labeled alternative in {@link PrestoSqlParser#levelOfIsolation}.
+ * @param ctx the parse tree
+ */
+ void exitReadUncommitted(PrestoSqlParser.ReadUncommittedContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code readCommitted}
+ * labeled alternative in {@link PrestoSqlParser#levelOfIsolation}.
+ * @param ctx the parse tree
+ */
+ void enterReadCommitted(PrestoSqlParser.ReadCommittedContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code readCommitted}
+ * labeled alternative in {@link PrestoSqlParser#levelOfIsolation}.
+ * @param ctx the parse tree
+ */
+ void exitReadCommitted(PrestoSqlParser.ReadCommittedContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code repeatableRead}
+ * labeled alternative in {@link PrestoSqlParser#levelOfIsolation}.
+ * @param ctx the parse tree
+ */
+ void enterRepeatableRead(PrestoSqlParser.RepeatableReadContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code repeatableRead}
+ * labeled alternative in {@link PrestoSqlParser#levelOfIsolation}.
+ * @param ctx the parse tree
+ */
+ void exitRepeatableRead(PrestoSqlParser.RepeatableReadContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code serializable}
+ * labeled alternative in {@link PrestoSqlParser#levelOfIsolation}.
+ * @param ctx the parse tree
+ */
+ void enterSerializable(PrestoSqlParser.SerializableContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code serializable}
+ * labeled alternative in {@link PrestoSqlParser#levelOfIsolation}.
+ * @param ctx the parse tree
+ */
+ void exitSerializable(PrestoSqlParser.SerializableContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code positionalArgument}
+ * labeled alternative in {@link PrestoSqlParser#callArgument}.
+ * @param ctx the parse tree
+ */
+ void enterPositionalArgument(PrestoSqlParser.PositionalArgumentContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code positionalArgument}
+ * labeled alternative in {@link PrestoSqlParser#callArgument}.
+ * @param ctx the parse tree
+ */
+ void exitPositionalArgument(PrestoSqlParser.PositionalArgumentContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code namedArgument}
+ * labeled alternative in {@link PrestoSqlParser#callArgument}.
+ * @param ctx the parse tree
+ */
+ void enterNamedArgument(PrestoSqlParser.NamedArgumentContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code namedArgument}
+ * labeled alternative in {@link PrestoSqlParser#callArgument}.
+ * @param ctx the parse tree
+ */
+ void exitNamedArgument(PrestoSqlParser.NamedArgumentContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#privilege}.
+ * @param ctx the parse tree
+ */
+ void enterPrivilege(PrestoSqlParser.PrivilegeContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#privilege}.
+ * @param ctx the parse tree
+ */
+ void exitPrivilege(PrestoSqlParser.PrivilegeContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#qualifiedName}.
+ * @param ctx the parse tree
+ */
+ void enterQualifiedName(PrestoSqlParser.QualifiedNameContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#qualifiedName}.
+ * @param ctx the parse tree
+ */
+ void exitQualifiedName(PrestoSqlParser.QualifiedNameContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code currentUserGrantor}
+ * labeled alternative in {@link PrestoSqlParser#grantor}.
+ * @param ctx the parse tree
+ */
+ void enterCurrentUserGrantor(PrestoSqlParser.CurrentUserGrantorContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code currentUserGrantor}
+ * labeled alternative in {@link PrestoSqlParser#grantor}.
+ * @param ctx the parse tree
+ */
+ void exitCurrentUserGrantor(PrestoSqlParser.CurrentUserGrantorContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code currentRoleGrantor}
+ * labeled alternative in {@link PrestoSqlParser#grantor}.
+ * @param ctx the parse tree
+ */
+ void enterCurrentRoleGrantor(PrestoSqlParser.CurrentRoleGrantorContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code currentRoleGrantor}
+ * labeled alternative in {@link PrestoSqlParser#grantor}.
+ * @param ctx the parse tree
+ */
+ void exitCurrentRoleGrantor(PrestoSqlParser.CurrentRoleGrantorContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code specifiedPrincipal}
+ * labeled alternative in {@link PrestoSqlParser#grantor}.
+ * @param ctx the parse tree
+ */
+ void enterSpecifiedPrincipal(PrestoSqlParser.SpecifiedPrincipalContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code specifiedPrincipal}
+ * labeled alternative in {@link PrestoSqlParser#grantor}.
+ * @param ctx the parse tree
+ */
+ void exitSpecifiedPrincipal(PrestoSqlParser.SpecifiedPrincipalContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code userPrincipal}
+ * labeled alternative in {@link PrestoSqlParser#principal}.
+ * @param ctx the parse tree
+ */
+ void enterUserPrincipal(PrestoSqlParser.UserPrincipalContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code userPrincipal}
+ * labeled alternative in {@link PrestoSqlParser#principal}.
+ * @param ctx the parse tree
+ */
+ void exitUserPrincipal(PrestoSqlParser.UserPrincipalContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code rolePrincipal}
+ * labeled alternative in {@link PrestoSqlParser#principal}.
+ * @param ctx the parse tree
+ */
+ void enterRolePrincipal(PrestoSqlParser.RolePrincipalContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code rolePrincipal}
+ * labeled alternative in {@link PrestoSqlParser#principal}.
+ * @param ctx the parse tree
+ */
+ void exitRolePrincipal(PrestoSqlParser.RolePrincipalContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code unspecifiedPrincipal}
+ * labeled alternative in {@link PrestoSqlParser#principal}.
+ * @param ctx the parse tree
+ */
+ void enterUnspecifiedPrincipal(PrestoSqlParser.UnspecifiedPrincipalContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code unspecifiedPrincipal}
+ * labeled alternative in {@link PrestoSqlParser#principal}.
+ * @param ctx the parse tree
+ */
+ void exitUnspecifiedPrincipal(PrestoSqlParser.UnspecifiedPrincipalContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#roles}.
+ * @param ctx the parse tree
+ */
+ void enterRoles(PrestoSqlParser.RolesContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#roles}.
+ * @param ctx the parse tree
+ */
+ void exitRoles(PrestoSqlParser.RolesContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code unquotedIdentifier}
+ * labeled alternative in {@link PrestoSqlParser#identifier}.
+ * @param ctx the parse tree
+ */
+ void enterUnquotedIdentifier(PrestoSqlParser.UnquotedIdentifierContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code unquotedIdentifier}
+ * labeled alternative in {@link PrestoSqlParser#identifier}.
+ * @param ctx the parse tree
+ */
+ void exitUnquotedIdentifier(PrestoSqlParser.UnquotedIdentifierContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code quotedIdentifier}
+ * labeled alternative in {@link PrestoSqlParser#identifier}.
+ * @param ctx the parse tree
+ */
+ void enterQuotedIdentifier(PrestoSqlParser.QuotedIdentifierContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code quotedIdentifier}
+ * labeled alternative in {@link PrestoSqlParser#identifier}.
+ * @param ctx the parse tree
+ */
+ void exitQuotedIdentifier(PrestoSqlParser.QuotedIdentifierContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code backQuotedIdentifier}
+ * labeled alternative in {@link PrestoSqlParser#identifier}.
+ * @param ctx the parse tree
+ */
+ void enterBackQuotedIdentifier(PrestoSqlParser.BackQuotedIdentifierContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code backQuotedIdentifier}
+ * labeled alternative in {@link PrestoSqlParser#identifier}.
+ * @param ctx the parse tree
+ */
+ void exitBackQuotedIdentifier(PrestoSqlParser.BackQuotedIdentifierContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code digitIdentifier}
+ * labeled alternative in {@link PrestoSqlParser#identifier}.
+ * @param ctx the parse tree
+ */
+ void enterDigitIdentifier(PrestoSqlParser.DigitIdentifierContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code digitIdentifier}
+ * labeled alternative in {@link PrestoSqlParser#identifier}.
+ * @param ctx the parse tree
+ */
+ void exitDigitIdentifier(PrestoSqlParser.DigitIdentifierContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code decimalLiteral}
+ * labeled alternative in {@link PrestoSqlParser#number}.
+ * @param ctx the parse tree
+ */
+ void enterDecimalLiteral(PrestoSqlParser.DecimalLiteralContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code decimalLiteral}
+ * labeled alternative in {@link PrestoSqlParser#number}.
+ * @param ctx the parse tree
+ */
+ void exitDecimalLiteral(PrestoSqlParser.DecimalLiteralContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code doubleLiteral}
+ * labeled alternative in {@link PrestoSqlParser#number}.
+ * @param ctx the parse tree
+ */
+ void enterDoubleLiteral(PrestoSqlParser.DoubleLiteralContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code doubleLiteral}
+ * labeled alternative in {@link PrestoSqlParser#number}.
+ * @param ctx the parse tree
+ */
+ void exitDoubleLiteral(PrestoSqlParser.DoubleLiteralContext ctx);
+ /**
+ * Enter a parse tree produced by the {@code integerLiteral}
+ * labeled alternative in {@link PrestoSqlParser#number}.
+ * @param ctx the parse tree
+ */
+ void enterIntegerLiteral(PrestoSqlParser.IntegerLiteralContext ctx);
+ /**
+ * Exit a parse tree produced by the {@code integerLiteral}
+ * labeled alternative in {@link PrestoSqlParser#number}.
+ * @param ctx the parse tree
+ */
+ void exitIntegerLiteral(PrestoSqlParser.IntegerLiteralContext ctx);
+ /**
+ * Enter a parse tree produced by {@link PrestoSqlParser#nonReserved}.
+ * @param ctx the parse tree
+ */
+ void enterNonReserved(PrestoSqlParser.NonReservedContext ctx);
+ /**
+ * Exit a parse tree produced by {@link PrestoSqlParser#nonReserved}.
+ * @param ctx the parse tree
+ */
+ void exitNonReserved(PrestoSqlParser.NonReservedContext ctx);
+}
\ No newline at end of file
diff --git a/src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlParser.java b/src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlParser.java
new file mode 100644
index 0000000..9438e2a
--- /dev/null
+++ b/src/main/java/com/github/bigdata/sql/antlr4/presto/PrestoSqlParser.java
@@ -0,0 +1,14787 @@
+// Generated from com/github/bigdata/sql/antlr4/presto/PrestoSql.g4 by ANTLR 4.7
+package com.github.bigdata.sql.antlr4.presto;
+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 PrestoSqlParser extends Parser {
+ static { RuntimeMetaData.checkVersion("4.7", RuntimeMetaData.VERSION); }
+
+ protected static final DFA[] _decisionToDFA;
+ protected static final PredictionContextCache _sharedContextCache =
+ new PredictionContextCache();
+ public static final int
+ T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9,
+ ADD=10, ADMIN=11, ALL=12, ALTER=13, ANALYZE=14, AND=15, ANY=16, ARRAY=17,
+ AS=18, ASC=19, AT=20, BERNOULLI=21, BETWEEN=22, BY=23, CALL=24, CALLED=25,
+ CASCADE=26, CASE=27, CAST=28, CATALOGS=29, COLUMN=30, COLUMNS=31, COMMENT=32,
+ COMMIT=33, COMMITTED=34, CONSTRAINT=35, CREATE=36, CROSS=37, CUBE=38,
+ CURRENT=39, CURRENT_DATE=40, CURRENT_ROLE=41, CURRENT_TIME=42, CURRENT_TIMESTAMP=43,
+ CURRENT_USER=44, DATA=45, DATE=46, DAY=47, DEALLOCATE=48, DEFINER=49,
+ DELETE=50, DESC=51, DESCRIBE=52, DETERMINISTIC=53, DISTINCT=54, DISTRIBUTED=55,
+ DROP=56, ELSE=57, END=58, ESCAPE=59, EXCEPT=60, EXCLUDING=61, EXECUTE=62,
+ EXISTS=63, EXPLAIN=64, EXTRACT=65, EXTERNAL=66, FALSE=67, FILTER=68, FIRST=69,
+ FOLLOWING=70, FOR=71, FORMAT=72, FROM=73, FULL=74, FUNCTION=75, FUNCTIONS=76,
+ GRANT=77, GRANTED=78, GRANTS=79, GRAPHVIZ=80, GROUP=81, GROUPING=82, HAVING=83,
+ HOUR=84, IF=85, IGNORE=86, IN=87, INCLUDING=88, INNER=89, INPUT=90, INSERT=91,
+ INTERSECT=92, INTERVAL=93, INTO=94, INVOKER=95, IO=96, IS=97, ISOLATION=98,
+ JSON=99, JOIN=100, LANGUAGE=101, LAST=102, LATERAL=103, LEFT=104, LEVEL=105,
+ LIKE=106, LIMIT=107, LOCALTIME=108, LOCALTIMESTAMP=109, LOGICAL=110, MAP=111,
+ MATERIALIZED=112, MINUTE=113, MONTH=114, NAME=115, NATURAL=116, NFC=117,
+ NFD=118, NFKC=119, NFKD=120, NO=121, NONE=122, NORMALIZE=123, NOT=124,
+ NULL=125, NULLIF=126, NULLS=127, OFFSET=128, ON=129, ONLY=130, OPTION=131,
+ OR=132, ORDER=133, ORDINALITY=134, OUTER=135, OUTPUT=136, OVER=137, PARTITION=138,
+ PARTITIONS=139, POSITION=140, PRECEDING=141, PREPARE=142, PRIVILEGES=143,
+ PROPERTIES=144, RANGE=145, READ=146, RECURSIVE=147, REFRESH=148, RENAME=149,
+ REPEATABLE=150, REPLACE=151, RESET=152, RESPECT=153, RESTRICT=154, RETURN=155,
+ RETURNS=156, REVOKE=157, RIGHT=158, ROLE=159, ROLES=160, ROLLBACK=161,
+ ROLLUP=162, ROW=163, ROWS=164, SCHEMA=165, SCHEMAS=166, SECOND=167, SECURITY=168,
+ SELECT=169, SERIALIZABLE=170, SESSION=171, SET=172, SETS=173, SHOW=174,
+ SOME=175, SQL=176, START=177, STATS=178, SUBSTRING=179, SYSTEM=180, TABLE=181,
+ TABLES=182, TABLESAMPLE=183, TEMPORARY=184, TEXT=185, THEN=186, TIME=187,
+ TIMESTAMP=188, TO=189, TRANSACTION=190, TRUE=191, TRY_CAST=192, TYPE=193,
+ UESCAPE=194, UNBOUNDED=195, UNCOMMITTED=196, UNION=197, UNNEST=198, USE=199,
+ USER=200, USING=201, VALIDATE=202, VALUES=203, VERBOSE=204, VIEW=205,
+ WHEN=206, WHERE=207, WITH=208, WORK=209, WRITE=210, YEAR=211, ZONE=212,
+ EQ=213, NEQ=214, LT=215, LTE=216, GT=217, GTE=218, PLUS=219, MINUS=220,
+ ASTERISK=221, SLASH=222, PERCENT=223, CONCAT=224, STRING=225, UNICODE_STRING=226,
+ BINARY_LITERAL=227, INTEGER_VALUE=228, DECIMAL_VALUE=229, DOUBLE_VALUE=230,
+ IDENTIFIER=231, DIGIT_IDENTIFIER=232, QUOTED_IDENTIFIER=233, BACKQUOTED_IDENTIFIER=234,
+ TIME_WITH_TIME_ZONE=235, TIMESTAMP_WITH_TIME_ZONE=236, DOUBLE_PRECISION=237,
+ SIMPLE_COMMENT=238, BRACKETED_COMMENT=239, WS=240, UNRECOGNIZED=241, DELIMITER=242;
+ public static final int
+ RULE_singleStatement = 0, RULE_standaloneExpression = 1, RULE_standaloneRoutineBody = 2,
+ RULE_statement = 3, RULE_query = 4, RULE_with = 5, RULE_tableElement = 6,
+ RULE_columnDefinition = 7, RULE_likeClause = 8, RULE_properties = 9, RULE_property = 10,
+ RULE_sqlParameterDeclaration = 11, RULE_routineCharacteristics = 12, RULE_routineCharacteristic = 13,
+ RULE_alterRoutineCharacteristics = 14, RULE_alterRoutineCharacteristic = 15,
+ RULE_routineBody = 16, RULE_returnStatement = 17, RULE_externalBodyReference = 18,
+ RULE_language = 19, RULE_determinism = 20, RULE_nullCallClause = 21, RULE_externalRoutineName = 22,
+ RULE_queryNoWith = 23, RULE_queryTerm = 24, RULE_queryPrimary = 25, RULE_sortItem = 26,
+ RULE_querySpecification = 27, RULE_groupBy = 28, RULE_groupingElement = 29,
+ RULE_groupingSet = 30, RULE_namedQuery = 31, RULE_setQuantifier = 32,
+ RULE_selectItem = 33, RULE_relation = 34, RULE_joinType = 35, RULE_joinCriteria = 36,
+ RULE_sampledRelation = 37, RULE_sampleType = 38, RULE_aliasedRelation = 39,
+ RULE_columnAliases = 40, RULE_relationPrimary = 41, RULE_expression = 42,
+ RULE_booleanExpression = 43, RULE_predicate = 44, RULE_valueExpression = 45,
+ RULE_primaryExpression = 46, RULE_string = 47, RULE_nullTreatment = 48,
+ RULE_timeZoneSpecifier = 49, RULE_comparisonOperator = 50, RULE_comparisonQuantifier = 51,
+ RULE_booleanValue = 52, RULE_interval = 53, RULE_intervalField = 54, RULE_normalForm = 55,
+ RULE_types = 56, RULE_type = 57, RULE_typeParameter = 58, RULE_baseType = 59,
+ RULE_whenClause = 60, RULE_filter = 61, RULE_over = 62, RULE_windowFrame = 63,
+ RULE_frameBound = 64, RULE_explainOption = 65, RULE_transactionMode = 66,
+ RULE_levelOfIsolation = 67, RULE_callArgument = 68, RULE_privilege = 69,
+ RULE_qualifiedName = 70, RULE_grantor = 71, RULE_principal = 72, RULE_roles = 73,
+ RULE_identifier = 74, RULE_number = 75, RULE_nonReserved = 76;
+ public static final String[] ruleNames = {
+ "singleStatement", "standaloneExpression", "standaloneRoutineBody", "statement",
+ "query", "with", "tableElement", "columnDefinition", "likeClause", "properties",
+ "property", "sqlParameterDeclaration", "routineCharacteristics", "routineCharacteristic",
+ "alterRoutineCharacteristics", "alterRoutineCharacteristic", "routineBody",
+ "returnStatement", "externalBodyReference", "language", "determinism",
+ "nullCallClause", "externalRoutineName", "queryNoWith", "queryTerm", "queryPrimary",
+ "sortItem", "querySpecification", "groupBy", "groupingElement", "groupingSet",
+ "namedQuery", "setQuantifier", "selectItem", "relation", "joinType", "joinCriteria",
+ "sampledRelation", "sampleType", "aliasedRelation", "columnAliases", "relationPrimary",
+ "expression", "booleanExpression", "predicate", "valueExpression", "primaryExpression",
+ "string", "nullTreatment", "timeZoneSpecifier", "comparisonOperator",
+ "comparisonQuantifier", "booleanValue", "interval", "intervalField", "normalForm",
+ "types", "type", "typeParameter", "baseType", "whenClause", "filter",
+ "over", "windowFrame", "frameBound", "explainOption", "transactionMode",
+ "levelOfIsolation", "callArgument", "privilege", "qualifiedName", "grantor",
+ "principal", "roles", "identifier", "number", "nonReserved"
+ };
+
+ private static final String[] _LITERAL_NAMES = {
+ null, "'.'", "'('", "')'", "','", "'?'", "'->'", "'['", "']'", "'=>'",
+ "'ADD'", "'ADMIN'", "'ALL'", "'ALTER'", "'ANALYZE'", "'AND'", "'ANY'",
+ "'ARRAY'", "'AS'", "'ASC'", "'AT'", "'BERNOULLI'", "'BETWEEN'", "'BY'",
+ "'CALL'", "'CALLED'", "'CASCADE'", "'CASE'", "'CAST'", "'CATALOGS'", "'COLUMN'",
+ "'COLUMNS'", "'COMMENT'", "'COMMIT'", "'COMMITTED'", "'CONSTRAINT'", "'CREATE'",
+ "'CROSS'", "'CUBE'", "'CURRENT'", "'CURRENT_DATE'", "'CURRENT_ROLE'",
+ "'CURRENT_TIME'", "'CURRENT_TIMESTAMP'", "'CURRENT_USER'", "'DATA'", "'DATE'",
+ "'DAY'", "'DEALLOCATE'", "'DEFINER'", "'DELETE'", "'DESC'", "'DESCRIBE'",
+ "'DETERMINISTIC'", "'DISTINCT'", "'DISTRIBUTED'", "'DROP'", "'ELSE'",
+ "'END'", "'ESCAPE'", "'EXCEPT'", "'EXCLUDING'", "'EXECUTE'", "'EXISTS'",
+ "'EXPLAIN'", "'EXTRACT'", "'EXTERNAL'", "'FALSE'", "'FILTER'", "'FIRST'",
+ "'FOLLOWING'", "'FOR'", "'FORMAT'", "'FROM'", "'FULL'", "'FUNCTION'",
+ "'FUNCTIONS'", "'GRANT'", "'GRANTED'", "'GRANTS'", "'GRAPHVIZ'", "'GROUP'",
+ "'GROUPING'", "'HAVING'", "'HOUR'", "'IF'", "'IGNORE'", "'IN'", "'INCLUDING'",
+ "'INNER'", "'INPUT'", "'INSERT'", "'INTERSECT'", "'INTERVAL'", "'INTO'",
+ "'INVOKER'", "'IO'", "'IS'", "'ISOLATION'", "'JSON'", "'JOIN'", "'LANGUAGE'",
+ "'LAST'", "'LATERAL'", "'LEFT'", "'LEVEL'", "'LIKE'", "'LIMIT'", "'LOCALTIME'",
+ "'LOCALTIMESTAMP'", "'LOGICAL'", "'MAP'", "'MATERIALIZED'", "'MINUTE'",
+ "'MONTH'", "'NAME'", "'NATURAL'", "'NFC'", "'NFD'", "'NFKC'", "'NFKD'",
+ "'NO'", "'NONE'", "'NORMALIZE'", "'NOT'", "'NULL'", "'NULLIF'", "'NULLS'",
+ "'OFFSET'", "'ON'", "'ONLY'", "'OPTION'", "'OR'", "'ORDER'", "'ORDINALITY'",
+ "'OUTER'", "'OUTPUT'", "'OVER'", "'PARTITION'", "'PARTITIONS'", "'POSITION'",
+ "'PRECEDING'", "'PREPARE'", "'PRIVILEGES'", "'PROPERTIES'", "'RANGE'",
+ "'READ'", "'RECURSIVE'", "'REFRESH'", "'RENAME'", "'REPEATABLE'", "'REPLACE'",
+ "'RESET'", "'RESPECT'", "'RESTRICT'", "'RETURN'", "'RETURNS'", "'REVOKE'",
+ "'RIGHT'", "'ROLE'", "'ROLES'", "'ROLLBACK'", "'ROLLUP'", "'ROW'", "'ROWS'",
+ "'SCHEMA'", "'SCHEMAS'", "'SECOND'", "'SECURITY'", "'SELECT'", "'SERIALIZABLE'",
+ "'SESSION'", "'SET'", "'SETS'", "'SHOW'", "'SOME'", "'SQL'", "'START'",
+ "'STATS'", "'SUBSTRING'", "'SYSTEM'", "'TABLE'", "'TABLES'", "'TABLESAMPLE'",
+ "'TEMPORARY'", "'TEXT'", "'THEN'", "'TIME'", "'TIMESTAMP'", "'TO'", "'TRANSACTION'",
+ "'TRUE'", "'TRY_CAST'", "'TYPE'", "'UESCAPE'", "'UNBOUNDED'", "'UNCOMMITTED'",
+ "'UNION'", "'UNNEST'", "'USE'", "'USER'", "'USING'", "'VALIDATE'", "'VALUES'",
+ "'VERBOSE'", "'VIEW'", "'WHEN'", "'WHERE'", "'WITH'", "'WORK'", "'WRITE'",
+ "'YEAR'", "'ZONE'", "'='", null, "'<'", "'<='", "'>'", "'>='", "'+'",
+ "'-'", "'*'", "'/'", "'%'", "'||'"
+ };
+ private static final String[] _SYMBOLIC_NAMES = {
+ null, null, null, null, null, null, null, null, null, null, "ADD", "ADMIN",
+ "ALL", "ALTER", "ANALYZE", "AND", "ANY", "ARRAY", "AS", "ASC", "AT", "BERNOULLI",
+ "BETWEEN", "BY", "CALL", "CALLED", "CASCADE", "CASE", "CAST", "CATALOGS",
+ "COLUMN", "COLUMNS", "COMMENT", "COMMIT", "COMMITTED", "CONSTRAINT", "CREATE",
+ "CROSS", "CUBE", "CURRENT", "CURRENT_DATE", "CURRENT_ROLE", "CURRENT_TIME",
+ "CURRENT_TIMESTAMP", "CURRENT_USER", "DATA", "DATE", "DAY", "DEALLOCATE",
+ "DEFINER", "DELETE", "DESC", "DESCRIBE", "DETERMINISTIC", "DISTINCT",
+ "DISTRIBUTED", "DROP", "ELSE", "END", "ESCAPE", "EXCEPT", "EXCLUDING",
+ "EXECUTE", "EXISTS", "EXPLAIN", "EXTRACT", "EXTERNAL", "FALSE", "FILTER",
+ "FIRST", "FOLLOWING", "FOR", "FORMAT", "FROM", "FULL", "FUNCTION", "FUNCTIONS",
+ "GRANT", "GRANTED", "GRANTS", "GRAPHVIZ", "GROUP", "GROUPING", "HAVING",
+ "HOUR", "IF", "IGNORE", "IN", "INCLUDING", "INNER", "INPUT", "INSERT",
+ "INTERSECT", "INTERVAL", "INTO", "INVOKER", "IO", "IS", "ISOLATION", "JSON",
+ "JOIN", "LANGUAGE", "LAST", "LATERAL", "LEFT", "LEVEL", "LIKE", "LIMIT",
+ "LOCALTIME", "LOCALTIMESTAMP", "LOGICAL", "MAP", "MATERIALIZED", "MINUTE",
+ "MONTH", "NAME", "NATURAL", "NFC", "NFD", "NFKC", "NFKD", "NO", "NONE",
+ "NORMALIZE", "NOT", "NULL", "NULLIF", "NULLS", "OFFSET", "ON", "ONLY",
+ "OPTION", "OR", "ORDER", "ORDINALITY", "OUTER", "OUTPUT", "OVER", "PARTITION",
+ "PARTITIONS", "POSITION", "PRECEDING", "PREPARE", "PRIVILEGES", "PROPERTIES",
+ "RANGE", "READ", "RECURSIVE", "REFRESH", "RENAME", "REPEATABLE", "REPLACE",
+ "RESET", "RESPECT", "RESTRICT", "RETURN", "RETURNS", "REVOKE", "RIGHT",
+ "ROLE", "ROLES", "ROLLBACK", "ROLLUP", "ROW", "ROWS", "SCHEMA", "SCHEMAS",
+ "SECOND", "SECURITY", "SELECT", "SERIALIZABLE", "SESSION", "SET", "SETS",
+ "SHOW", "SOME", "SQL", "START", "STATS", "SUBSTRING", "SYSTEM", "TABLE",
+ "TABLES", "TABLESAMPLE", "TEMPORARY", "TEXT", "THEN", "TIME", "TIMESTAMP",
+ "TO", "TRANSACTION", "TRUE", "TRY_CAST", "TYPE", "UESCAPE", "UNBOUNDED",
+ "UNCOMMITTED", "UNION", "UNNEST", "USE", "USER", "USING", "VALIDATE",
+ "VALUES", "VERBOSE", "VIEW", "WHEN", "WHERE", "WITH", "WORK", "WRITE",
+ "YEAR", "ZONE", "EQ", "NEQ", "LT", "LTE", "GT", "GTE", "PLUS", "MINUS",
+ "ASTERISK", "SLASH", "PERCENT", "CONCAT", "STRING", "UNICODE_STRING",
+ "BINARY_LITERAL", "INTEGER_VALUE", "DECIMAL_VALUE", "DOUBLE_VALUE", "IDENTIFIER",
+ "DIGIT_IDENTIFIER", "QUOTED_IDENTIFIER", "BACKQUOTED_IDENTIFIER", "TIME_WITH_TIME_ZONE",
+ "TIMESTAMP_WITH_TIME_ZONE", "DOUBLE_PRECISION", "SIMPLE_COMMENT", "BRACKETED_COMMENT",
+ "WS", "UNRECOGNIZED", "DELIMITER"
+ };
+ 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 "PrestoSql.g4"; }
+
+ @Override
+ public String[] getRuleNames() { return ruleNames; }
+
+ @Override
+ public String getSerializedATN() { return _serializedATN; }
+
+ @Override
+ public ATN getATN() { return _ATN; }
+
+ public PrestoSqlParser(TokenStream input) {
+ super(input);
+ _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
+ }
+ public static class SingleStatementContext extends ParserRuleContext {
+ public StatementContext statement() {
+ return getRuleContext(StatementContext.class,0);
+ }
+ public TerminalNode EOF() { return getToken(PrestoSqlParser.EOF, 0); }
+ public SingleStatementContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_singleStatement; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSingleStatement(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSingleStatement(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitSingleStatement(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final SingleStatementContext singleStatement() throws RecognitionException {
+ SingleStatementContext _localctx = new SingleStatementContext(_ctx, getState());
+ enterRule(_localctx, 0, RULE_singleStatement);
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(154);
+ statement();
+ setState(155);
+ match(EOF);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class StandaloneExpressionContext extends ParserRuleContext {
+ public ExpressionContext expression() {
+ return getRuleContext(ExpressionContext.class,0);
+ }
+ public TerminalNode EOF() { return getToken(PrestoSqlParser.EOF, 0); }
+ public StandaloneExpressionContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_standaloneExpression; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterStandaloneExpression(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitStandaloneExpression(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitStandaloneExpression(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final StandaloneExpressionContext standaloneExpression() throws RecognitionException {
+ StandaloneExpressionContext _localctx = new StandaloneExpressionContext(_ctx, getState());
+ enterRule(_localctx, 2, RULE_standaloneExpression);
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(157);
+ expression();
+ setState(158);
+ match(EOF);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class StandaloneRoutineBodyContext extends ParserRuleContext {
+ public RoutineBodyContext routineBody() {
+ return getRuleContext(RoutineBodyContext.class,0);
+ }
+ public TerminalNode EOF() { return getToken(PrestoSqlParser.EOF, 0); }
+ public StandaloneRoutineBodyContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_standaloneRoutineBody; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterStandaloneRoutineBody(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitStandaloneRoutineBody(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitStandaloneRoutineBody(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final StandaloneRoutineBodyContext standaloneRoutineBody() throws RecognitionException {
+ StandaloneRoutineBodyContext _localctx = new StandaloneRoutineBodyContext(_ctx, getState());
+ enterRule(_localctx, 4, RULE_standaloneRoutineBody);
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(160);
+ routineBody();
+ setState(161);
+ match(EOF);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class StatementContext extends ParserRuleContext {
+ public StatementContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_statement; }
+
+ public StatementContext() { }
+ public void copyFrom(StatementContext ctx) {
+ super.copyFrom(ctx);
+ }
+ }
+ public static class ExplainContext extends StatementContext {
+ public TerminalNode EXPLAIN() { return getToken(PrestoSqlParser.EXPLAIN, 0); }
+ public StatementContext statement() {
+ return getRuleContext(StatementContext.class,0);
+ }
+ public TerminalNode ANALYZE() { return getToken(PrestoSqlParser.ANALYZE, 0); }
+ public TerminalNode VERBOSE() { return getToken(PrestoSqlParser.VERBOSE, 0); }
+ public List explainOption() {
+ return getRuleContexts(ExplainOptionContext.class);
+ }
+ public ExplainOptionContext explainOption(int i) {
+ return getRuleContext(ExplainOptionContext.class,i);
+ }
+ public ExplainContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterExplain(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitExplain(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitExplain(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class PrepareContext extends StatementContext {
+ public TerminalNode PREPARE() { return getToken(PrestoSqlParser.PREPARE, 0); }
+ public IdentifierContext identifier() {
+ return getRuleContext(IdentifierContext.class,0);
+ }
+ public TerminalNode FROM() { return getToken(PrestoSqlParser.FROM, 0); }
+ public StatementContext statement() {
+ return getRuleContext(StatementContext.class,0);
+ }
+ public PrepareContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterPrepare(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitPrepare(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitPrepare(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class DropMaterializedViewContext extends StatementContext {
+ public TerminalNode DROP() { return getToken(PrestoSqlParser.DROP, 0); }
+ public TerminalNode MATERIALIZED() { return getToken(PrestoSqlParser.MATERIALIZED, 0); }
+ public TerminalNode VIEW() { return getToken(PrestoSqlParser.VIEW, 0); }
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public TerminalNode IF() { return getToken(PrestoSqlParser.IF, 0); }
+ public TerminalNode EXISTS() { return getToken(PrestoSqlParser.EXISTS, 0); }
+ public DropMaterializedViewContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterDropMaterializedView(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitDropMaterializedView(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitDropMaterializedView(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class UseContext extends StatementContext {
+ public IdentifierContext schema;
+ public IdentifierContext catalog;
+ public TerminalNode USE() { return getToken(PrestoSqlParser.USE, 0); }
+ public List identifier() {
+ return getRuleContexts(IdentifierContext.class);
+ }
+ public IdentifierContext identifier(int i) {
+ return getRuleContext(IdentifierContext.class,i);
+ }
+ public UseContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterUse(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitUse(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitUse(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class DeallocateContext extends StatementContext {
+ public TerminalNode DEALLOCATE() { return getToken(PrestoSqlParser.DEALLOCATE, 0); }
+ public TerminalNode PREPARE() { return getToken(PrestoSqlParser.PREPARE, 0); }
+ public IdentifierContext identifier() {
+ return getRuleContext(IdentifierContext.class,0);
+ }
+ public DeallocateContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterDeallocate(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitDeallocate(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitDeallocate(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class RenameTableContext extends StatementContext {
+ public QualifiedNameContext from;
+ public QualifiedNameContext to;
+ public TerminalNode ALTER() { return getToken(PrestoSqlParser.ALTER, 0); }
+ public TerminalNode TABLE() { return getToken(PrestoSqlParser.TABLE, 0); }
+ public TerminalNode RENAME() { return getToken(PrestoSqlParser.RENAME, 0); }
+ public TerminalNode TO() { return getToken(PrestoSqlParser.TO, 0); }
+ public List qualifiedName() {
+ return getRuleContexts(QualifiedNameContext.class);
+ }
+ public QualifiedNameContext qualifiedName(int i) {
+ return getRuleContext(QualifiedNameContext.class,i);
+ }
+ public TerminalNode IF() { return getToken(PrestoSqlParser.IF, 0); }
+ public TerminalNode EXISTS() { return getToken(PrestoSqlParser.EXISTS, 0); }
+ public RenameTableContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterRenameTable(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitRenameTable(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitRenameTable(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class CommitContext extends StatementContext {
+ public TerminalNode COMMIT() { return getToken(PrestoSqlParser.COMMIT, 0); }
+ public TerminalNode WORK() { return getToken(PrestoSqlParser.WORK, 0); }
+ public CommitContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterCommit(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitCommit(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitCommit(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class CreateRoleContext extends StatementContext {
+ public IdentifierContext name;
+ public TerminalNode CREATE() { return getToken(PrestoSqlParser.CREATE, 0); }
+ public TerminalNode ROLE() { return getToken(PrestoSqlParser.ROLE, 0); }
+ public IdentifierContext identifier() {
+ return getRuleContext(IdentifierContext.class,0);
+ }
+ public TerminalNode WITH() { return getToken(PrestoSqlParser.WITH, 0); }
+ public TerminalNode ADMIN() { return getToken(PrestoSqlParser.ADMIN, 0); }
+ public GrantorContext grantor() {
+ return getRuleContext(GrantorContext.class,0);
+ }
+ public CreateRoleContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterCreateRole(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitCreateRole(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitCreateRole(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class ShowCreateFunctionContext extends StatementContext {
+ public TerminalNode SHOW() { return getToken(PrestoSqlParser.SHOW, 0); }
+ public TerminalNode CREATE() { return getToken(PrestoSqlParser.CREATE, 0); }
+ public TerminalNode FUNCTION() { return getToken(PrestoSqlParser.FUNCTION, 0); }
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public TypesContext types() {
+ return getRuleContext(TypesContext.class,0);
+ }
+ public ShowCreateFunctionContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterShowCreateFunction(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitShowCreateFunction(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitShowCreateFunction(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class DropColumnContext extends StatementContext {
+ public QualifiedNameContext tableName;
+ public QualifiedNameContext column;
+ public TerminalNode ALTER() { return getToken(PrestoSqlParser.ALTER, 0); }
+ public TerminalNode TABLE() { return getToken(PrestoSqlParser.TABLE, 0); }
+ public TerminalNode DROP() { return getToken(PrestoSqlParser.DROP, 0); }
+ public TerminalNode COLUMN() { return getToken(PrestoSqlParser.COLUMN, 0); }
+ public List qualifiedName() {
+ return getRuleContexts(QualifiedNameContext.class);
+ }
+ public QualifiedNameContext qualifiedName(int i) {
+ return getRuleContext(QualifiedNameContext.class,i);
+ }
+ public List IF() { return getTokens(PrestoSqlParser.IF); }
+ public TerminalNode IF(int i) {
+ return getToken(PrestoSqlParser.IF, i);
+ }
+ public List EXISTS() { return getTokens(PrestoSqlParser.EXISTS); }
+ public TerminalNode EXISTS(int i) {
+ return getToken(PrestoSqlParser.EXISTS, i);
+ }
+ public DropColumnContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterDropColumn(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitDropColumn(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitDropColumn(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class DropViewContext extends StatementContext {
+ public TerminalNode DROP() { return getToken(PrestoSqlParser.DROP, 0); }
+ public TerminalNode VIEW() { return getToken(PrestoSqlParser.VIEW, 0); }
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public TerminalNode IF() { return getToken(PrestoSqlParser.IF, 0); }
+ public TerminalNode EXISTS() { return getToken(PrestoSqlParser.EXISTS, 0); }
+ public DropViewContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterDropView(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitDropView(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitDropView(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class ShowTablesContext extends StatementContext {
+ public StringContext pattern;
+ public StringContext escape;
+ public TerminalNode SHOW() { return getToken(PrestoSqlParser.SHOW, 0); }
+ public TerminalNode TABLES() { return getToken(PrestoSqlParser.TABLES, 0); }
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public TerminalNode LIKE() { return getToken(PrestoSqlParser.LIKE, 0); }
+ public TerminalNode FROM() { return getToken(PrestoSqlParser.FROM, 0); }
+ public TerminalNode IN() { return getToken(PrestoSqlParser.IN, 0); }
+ public List string() {
+ return getRuleContexts(StringContext.class);
+ }
+ public StringContext string(int i) {
+ return getRuleContext(StringContext.class,i);
+ }
+ public TerminalNode ESCAPE() { return getToken(PrestoSqlParser.ESCAPE, 0); }
+ public ShowTablesContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterShowTables(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitShowTables(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitShowTables(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class ShowCatalogsContext extends StatementContext {
+ public StringContext pattern;
+ public TerminalNode SHOW() { return getToken(PrestoSqlParser.SHOW, 0); }
+ public TerminalNode CATALOGS() { return getToken(PrestoSqlParser.CATALOGS, 0); }
+ public TerminalNode LIKE() { return getToken(PrestoSqlParser.LIKE, 0); }
+ public StringContext string() {
+ return getRuleContext(StringContext.class,0);
+ }
+ public ShowCatalogsContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterShowCatalogs(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitShowCatalogs(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitShowCatalogs(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class ShowRolesContext extends StatementContext {
+ public TerminalNode SHOW() { return getToken(PrestoSqlParser.SHOW, 0); }
+ public TerminalNode ROLES() { return getToken(PrestoSqlParser.ROLES, 0); }
+ public TerminalNode CURRENT() { return getToken(PrestoSqlParser.CURRENT, 0); }
+ public IdentifierContext identifier() {
+ return getRuleContext(IdentifierContext.class,0);
+ }
+ public TerminalNode FROM() { return getToken(PrestoSqlParser.FROM, 0); }
+ public TerminalNode IN() { return getToken(PrestoSqlParser.IN, 0); }
+ public ShowRolesContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterShowRoles(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitShowRoles(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitShowRoles(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class RenameColumnContext extends StatementContext {
+ public QualifiedNameContext tableName;
+ public IdentifierContext from;
+ public IdentifierContext to;
+ public TerminalNode ALTER() { return getToken(PrestoSqlParser.ALTER, 0); }
+ public TerminalNode TABLE() { return getToken(PrestoSqlParser.TABLE, 0); }
+ public TerminalNode RENAME() { return getToken(PrestoSqlParser.RENAME, 0); }
+ public TerminalNode COLUMN() { return getToken(PrestoSqlParser.COLUMN, 0); }
+ public TerminalNode TO() { return getToken(PrestoSqlParser.TO, 0); }
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public List identifier() {
+ return getRuleContexts(IdentifierContext.class);
+ }
+ public IdentifierContext identifier(int i) {
+ return getRuleContext(IdentifierContext.class,i);
+ }
+ public List IF() { return getTokens(PrestoSqlParser.IF); }
+ public TerminalNode IF(int i) {
+ return getToken(PrestoSqlParser.IF, i);
+ }
+ public List EXISTS() { return getTokens(PrestoSqlParser.EXISTS); }
+ public TerminalNode EXISTS(int i) {
+ return getToken(PrestoSqlParser.EXISTS, i);
+ }
+ public RenameColumnContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterRenameColumn(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitRenameColumn(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitRenameColumn(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class RevokeRolesContext extends StatementContext {
+ public TerminalNode REVOKE() { return getToken(PrestoSqlParser.REVOKE, 0); }
+ public RolesContext roles() {
+ return getRuleContext(RolesContext.class,0);
+ }
+ public TerminalNode FROM() { return getToken(PrestoSqlParser.FROM, 0); }
+ public List principal() {
+ return getRuleContexts(PrincipalContext.class);
+ }
+ public PrincipalContext principal(int i) {
+ return getRuleContext(PrincipalContext.class,i);
+ }
+ public TerminalNode ADMIN() { return getToken(PrestoSqlParser.ADMIN, 0); }
+ public TerminalNode OPTION() { return getToken(PrestoSqlParser.OPTION, 0); }
+ public TerminalNode FOR() { return getToken(PrestoSqlParser.FOR, 0); }
+ public TerminalNode GRANTED() { return getToken(PrestoSqlParser.GRANTED, 0); }
+ public TerminalNode BY() { return getToken(PrestoSqlParser.BY, 0); }
+ public GrantorContext grantor() {
+ return getRuleContext(GrantorContext.class,0);
+ }
+ public RevokeRolesContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterRevokeRoles(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitRevokeRoles(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitRevokeRoles(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class ShowCreateTableContext extends StatementContext {
+ public TerminalNode SHOW() { return getToken(PrestoSqlParser.SHOW, 0); }
+ public TerminalNode CREATE() { return getToken(PrestoSqlParser.CREATE, 0); }
+ public TerminalNode TABLE() { return getToken(PrestoSqlParser.TABLE, 0); }
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public ShowCreateTableContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterShowCreateTable(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitShowCreateTable(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitShowCreateTable(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class ShowColumnsContext extends StatementContext {
+ public TerminalNode SHOW() { return getToken(PrestoSqlParser.SHOW, 0); }
+ public TerminalNode COLUMNS() { return getToken(PrestoSqlParser.COLUMNS, 0); }
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public TerminalNode FROM() { return getToken(PrestoSqlParser.FROM, 0); }
+ public TerminalNode IN() { return getToken(PrestoSqlParser.IN, 0); }
+ public TerminalNode DESCRIBE() { return getToken(PrestoSqlParser.DESCRIBE, 0); }
+ public TerminalNode DESC() { return getToken(PrestoSqlParser.DESC, 0); }
+ public ShowColumnsContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterShowColumns(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitShowColumns(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitShowColumns(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class ShowRoleGrantsContext extends StatementContext {
+ public TerminalNode SHOW() { return getToken(PrestoSqlParser.SHOW, 0); }
+ public TerminalNode ROLE() { return getToken(PrestoSqlParser.ROLE, 0); }
+ public TerminalNode GRANTS() { return getToken(PrestoSqlParser.GRANTS, 0); }
+ public IdentifierContext identifier() {
+ return getRuleContext(IdentifierContext.class,0);
+ }
+ public TerminalNode FROM() { return getToken(PrestoSqlParser.FROM, 0); }
+ public TerminalNode IN() { return getToken(PrestoSqlParser.IN, 0); }
+ public ShowRoleGrantsContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterShowRoleGrants(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitShowRoleGrants(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitShowRoleGrants(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class AddColumnContext extends StatementContext {
+ public QualifiedNameContext tableName;
+ public ColumnDefinitionContext column;
+ public TerminalNode ALTER() { return getToken(PrestoSqlParser.ALTER, 0); }
+ public TerminalNode TABLE() { return getToken(PrestoSqlParser.TABLE, 0); }
+ public TerminalNode ADD() { return getToken(PrestoSqlParser.ADD, 0); }
+ public TerminalNode COLUMN() { return getToken(PrestoSqlParser.COLUMN, 0); }
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public ColumnDefinitionContext columnDefinition() {
+ return getRuleContext(ColumnDefinitionContext.class,0);
+ }
+ public List IF() { return getTokens(PrestoSqlParser.IF); }
+ public TerminalNode IF(int i) {
+ return getToken(PrestoSqlParser.IF, i);
+ }
+ public List EXISTS() { return getTokens(PrestoSqlParser.EXISTS); }
+ public TerminalNode EXISTS(int i) {
+ return getToken(PrestoSqlParser.EXISTS, i);
+ }
+ public TerminalNode NOT() { return getToken(PrestoSqlParser.NOT, 0); }
+ public AddColumnContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterAddColumn(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitAddColumn(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitAddColumn(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class ResetSessionContext extends StatementContext {
+ public TerminalNode RESET() { return getToken(PrestoSqlParser.RESET, 0); }
+ public TerminalNode SESSION() { return getToken(PrestoSqlParser.SESSION, 0); }
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public ResetSessionContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterResetSession(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitResetSession(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitResetSession(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class InsertIntoContext extends StatementContext {
+ public TerminalNode INSERT() { return getToken(PrestoSqlParser.INSERT, 0); }
+ public TerminalNode INTO() { return getToken(PrestoSqlParser.INTO, 0); }
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public QueryContext query() {
+ return getRuleContext(QueryContext.class,0);
+ }
+ public ColumnAliasesContext columnAliases() {
+ return getRuleContext(ColumnAliasesContext.class,0);
+ }
+ public InsertIntoContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterInsertInto(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitInsertInto(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitInsertInto(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class ShowSessionContext extends StatementContext {
+ public TerminalNode SHOW() { return getToken(PrestoSqlParser.SHOW, 0); }
+ public TerminalNode SESSION() { return getToken(PrestoSqlParser.SESSION, 0); }
+ public ShowSessionContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterShowSession(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitShowSession(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitShowSession(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class CreateSchemaContext extends StatementContext {
+ public TerminalNode CREATE() { return getToken(PrestoSqlParser.CREATE, 0); }
+ public TerminalNode SCHEMA() { return getToken(PrestoSqlParser.SCHEMA, 0); }
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public TerminalNode IF() { return getToken(PrestoSqlParser.IF, 0); }
+ public TerminalNode NOT() { return getToken(PrestoSqlParser.NOT, 0); }
+ public TerminalNode EXISTS() { return getToken(PrestoSqlParser.EXISTS, 0); }
+ public TerminalNode WITH() { return getToken(PrestoSqlParser.WITH, 0); }
+ public PropertiesContext properties() {
+ return getRuleContext(PropertiesContext.class,0);
+ }
+ public CreateSchemaContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterCreateSchema(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitCreateSchema(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitCreateSchema(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class ExecuteContext extends StatementContext {
+ public TerminalNode EXECUTE() { return getToken(PrestoSqlParser.EXECUTE, 0); }
+ public IdentifierContext identifier() {
+ return getRuleContext(IdentifierContext.class,0);
+ }
+ public TerminalNode USING() { return getToken(PrestoSqlParser.USING, 0); }
+ public List expression() {
+ return getRuleContexts(ExpressionContext.class);
+ }
+ public ExpressionContext expression(int i) {
+ return getRuleContext(ExpressionContext.class,i);
+ }
+ public ExecuteContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterExecute(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitExecute(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitExecute(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class RenameSchemaContext extends StatementContext {
+ public TerminalNode ALTER() { return getToken(PrestoSqlParser.ALTER, 0); }
+ public TerminalNode SCHEMA() { return getToken(PrestoSqlParser.SCHEMA, 0); }
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public TerminalNode RENAME() { return getToken(PrestoSqlParser.RENAME, 0); }
+ public TerminalNode TO() { return getToken(PrestoSqlParser.TO, 0); }
+ public IdentifierContext identifier() {
+ return getRuleContext(IdentifierContext.class,0);
+ }
+ public RenameSchemaContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterRenameSchema(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitRenameSchema(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitRenameSchema(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class DropRoleContext extends StatementContext {
+ public IdentifierContext name;
+ public TerminalNode DROP() { return getToken(PrestoSqlParser.DROP, 0); }
+ public TerminalNode ROLE() { return getToken(PrestoSqlParser.ROLE, 0); }
+ public IdentifierContext identifier() {
+ return getRuleContext(IdentifierContext.class,0);
+ }
+ public DropRoleContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterDropRole(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitDropRole(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitDropRole(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class AnalyzeContext extends StatementContext {
+ public TerminalNode ANALYZE() { return getToken(PrestoSqlParser.ANALYZE, 0); }
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public TerminalNode WITH() { return getToken(PrestoSqlParser.WITH, 0); }
+ public PropertiesContext properties() {
+ return getRuleContext(PropertiesContext.class,0);
+ }
+ public AnalyzeContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterAnalyze(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitAnalyze(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitAnalyze(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class SetRoleContext extends StatementContext {
+ public IdentifierContext role;
+ public TerminalNode SET() { return getToken(PrestoSqlParser.SET, 0); }
+ public TerminalNode ROLE() { return getToken(PrestoSqlParser.ROLE, 0); }
+ public TerminalNode ALL() { return getToken(PrestoSqlParser.ALL, 0); }
+ public TerminalNode NONE() { return getToken(PrestoSqlParser.NONE, 0); }
+ public IdentifierContext identifier() {
+ return getRuleContext(IdentifierContext.class,0);
+ }
+ public SetRoleContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSetRole(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSetRole(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitSetRole(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class CreateFunctionContext extends StatementContext {
+ public QualifiedNameContext functionName;
+ public TypeContext returnType;
+ public TerminalNode CREATE() { return getToken(PrestoSqlParser.CREATE, 0); }
+ public TerminalNode FUNCTION() { return getToken(PrestoSqlParser.FUNCTION, 0); }
+ public TerminalNode RETURNS() { return getToken(PrestoSqlParser.RETURNS, 0); }
+ public RoutineCharacteristicsContext routineCharacteristics() {
+ return getRuleContext(RoutineCharacteristicsContext.class,0);
+ }
+ public RoutineBodyContext routineBody() {
+ return getRuleContext(RoutineBodyContext.class,0);
+ }
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public TypeContext type() {
+ return getRuleContext(TypeContext.class,0);
+ }
+ public TerminalNode OR() { return getToken(PrestoSqlParser.OR, 0); }
+ public TerminalNode REPLACE() { return getToken(PrestoSqlParser.REPLACE, 0); }
+ public TerminalNode TEMPORARY() { return getToken(PrestoSqlParser.TEMPORARY, 0); }
+ public List sqlParameterDeclaration() {
+ return getRuleContexts(SqlParameterDeclarationContext.class);
+ }
+ public SqlParameterDeclarationContext sqlParameterDeclaration(int i) {
+ return getRuleContext(SqlParameterDeclarationContext.class,i);
+ }
+ public TerminalNode COMMENT() { return getToken(PrestoSqlParser.COMMENT, 0); }
+ public StringContext string() {
+ return getRuleContext(StringContext.class,0);
+ }
+ public CreateFunctionContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterCreateFunction(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitCreateFunction(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitCreateFunction(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class ShowGrantsContext extends StatementContext {
+ public TerminalNode SHOW() { return getToken(PrestoSqlParser.SHOW, 0); }
+ public TerminalNode GRANTS() { return getToken(PrestoSqlParser.GRANTS, 0); }
+ public TerminalNode ON() { return getToken(PrestoSqlParser.ON, 0); }
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public TerminalNode TABLE() { return getToken(PrestoSqlParser.TABLE, 0); }
+ public ShowGrantsContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterShowGrants(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitShowGrants(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitShowGrants(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class DropSchemaContext extends StatementContext {
+ public TerminalNode DROP() { return getToken(PrestoSqlParser.DROP, 0); }
+ public TerminalNode SCHEMA() { return getToken(PrestoSqlParser.SCHEMA, 0); }
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public TerminalNode IF() { return getToken(PrestoSqlParser.IF, 0); }
+ public TerminalNode EXISTS() { return getToken(PrestoSqlParser.EXISTS, 0); }
+ public TerminalNode CASCADE() { return getToken(PrestoSqlParser.CASCADE, 0); }
+ public TerminalNode RESTRICT() { return getToken(PrestoSqlParser.RESTRICT, 0); }
+ public DropSchemaContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterDropSchema(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitDropSchema(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitDropSchema(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class ShowCreateViewContext extends StatementContext {
+ public TerminalNode SHOW() { return getToken(PrestoSqlParser.SHOW, 0); }
+ public TerminalNode CREATE() { return getToken(PrestoSqlParser.CREATE, 0); }
+ public TerminalNode VIEW() { return getToken(PrestoSqlParser.VIEW, 0); }
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public ShowCreateViewContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterShowCreateView(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitShowCreateView(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitShowCreateView(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class CreateTableContext extends StatementContext {
+ public TerminalNode CREATE() { return getToken(PrestoSqlParser.CREATE, 0); }
+ public TerminalNode TABLE() { return getToken(PrestoSqlParser.TABLE, 0); }
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public List tableElement() {
+ return getRuleContexts(TableElementContext.class);
+ }
+ public TableElementContext tableElement(int i) {
+ return getRuleContext(TableElementContext.class,i);
+ }
+ public TerminalNode IF() { return getToken(PrestoSqlParser.IF, 0); }
+ public TerminalNode NOT() { return getToken(PrestoSqlParser.NOT, 0); }
+ public TerminalNode EXISTS() { return getToken(PrestoSqlParser.EXISTS, 0); }
+ public TerminalNode COMMENT() { return getToken(PrestoSqlParser.COMMENT, 0); }
+ public StringContext string() {
+ return getRuleContext(StringContext.class,0);
+ }
+ public TerminalNode WITH() { return getToken(PrestoSqlParser.WITH, 0); }
+ public PropertiesContext properties() {
+ return getRuleContext(PropertiesContext.class,0);
+ }
+ public CreateTableContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterCreateTable(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitCreateTable(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitCreateTable(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class StartTransactionContext extends StatementContext {
+ public TerminalNode START() { return getToken(PrestoSqlParser.START, 0); }
+ public TerminalNode TRANSACTION() { return getToken(PrestoSqlParser.TRANSACTION, 0); }
+ public List transactionMode() {
+ return getRuleContexts(TransactionModeContext.class);
+ }
+ public TransactionModeContext transactionMode(int i) {
+ return getRuleContext(TransactionModeContext.class,i);
+ }
+ public StartTransactionContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterStartTransaction(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitStartTransaction(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitStartTransaction(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class CreateTableAsSelectContext extends StatementContext {
+ public TerminalNode CREATE() { return getToken(PrestoSqlParser.CREATE, 0); }
+ public TerminalNode TABLE() { return getToken(PrestoSqlParser.TABLE, 0); }
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public TerminalNode AS() { return getToken(PrestoSqlParser.AS, 0); }
+ public QueryContext query() {
+ return getRuleContext(QueryContext.class,0);
+ }
+ public TerminalNode IF() { return getToken(PrestoSqlParser.IF, 0); }
+ public TerminalNode NOT() { return getToken(PrestoSqlParser.NOT, 0); }
+ public TerminalNode EXISTS() { return getToken(PrestoSqlParser.EXISTS, 0); }
+ public ColumnAliasesContext columnAliases() {
+ return getRuleContext(ColumnAliasesContext.class,0);
+ }
+ public TerminalNode COMMENT() { return getToken(PrestoSqlParser.COMMENT, 0); }
+ public StringContext string() {
+ return getRuleContext(StringContext.class,0);
+ }
+ public List WITH() { return getTokens(PrestoSqlParser.WITH); }
+ public TerminalNode WITH(int i) {
+ return getToken(PrestoSqlParser.WITH, i);
+ }
+ public PropertiesContext properties() {
+ return getRuleContext(PropertiesContext.class,0);
+ }
+ public TerminalNode DATA() { return getToken(PrestoSqlParser.DATA, 0); }
+ public TerminalNode NO() { return getToken(PrestoSqlParser.NO, 0); }
+ public CreateTableAsSelectContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterCreateTableAsSelect(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitCreateTableAsSelect(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitCreateTableAsSelect(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class ShowStatsContext extends StatementContext {
+ public TerminalNode SHOW() { return getToken(PrestoSqlParser.SHOW, 0); }
+ public TerminalNode STATS() { return getToken(PrestoSqlParser.STATS, 0); }
+ public TerminalNode FOR() { return getToken(PrestoSqlParser.FOR, 0); }
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public ShowStatsContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterShowStats(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitShowStats(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitShowStats(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class DropFunctionContext extends StatementContext {
+ public TerminalNode DROP() { return getToken(PrestoSqlParser.DROP, 0); }
+ public TerminalNode FUNCTION() { return getToken(PrestoSqlParser.FUNCTION, 0); }
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public TerminalNode TEMPORARY() { return getToken(PrestoSqlParser.TEMPORARY, 0); }
+ public TerminalNode IF() { return getToken(PrestoSqlParser.IF, 0); }
+ public TerminalNode EXISTS() { return getToken(PrestoSqlParser.EXISTS, 0); }
+ public TypesContext types() {
+ return getRuleContext(TypesContext.class,0);
+ }
+ public DropFunctionContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterDropFunction(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitDropFunction(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitDropFunction(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class RevokeContext extends StatementContext {
+ public PrincipalContext grantee;
+ public TerminalNode REVOKE() { return getToken(PrestoSqlParser.REVOKE, 0); }
+ public TerminalNode ON() { return getToken(PrestoSqlParser.ON, 0); }
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public TerminalNode FROM() { return getToken(PrestoSqlParser.FROM, 0); }
+ public PrincipalContext principal() {
+ return getRuleContext(PrincipalContext.class,0);
+ }
+ public List privilege() {
+ return getRuleContexts(PrivilegeContext.class);
+ }
+ public PrivilegeContext privilege(int i) {
+ return getRuleContext(PrivilegeContext.class,i);
+ }
+ public TerminalNode ALL() { return getToken(PrestoSqlParser.ALL, 0); }
+ public TerminalNode PRIVILEGES() { return getToken(PrestoSqlParser.PRIVILEGES, 0); }
+ public TerminalNode GRANT() { return getToken(PrestoSqlParser.GRANT, 0); }
+ public TerminalNode OPTION() { return getToken(PrestoSqlParser.OPTION, 0); }
+ public TerminalNode FOR() { return getToken(PrestoSqlParser.FOR, 0); }
+ public TerminalNode TABLE() { return getToken(PrestoSqlParser.TABLE, 0); }
+ public RevokeContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterRevoke(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitRevoke(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitRevoke(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class CreateTypeContext extends StatementContext {
+ public TerminalNode CREATE() { return getToken(PrestoSqlParser.CREATE, 0); }
+ public TerminalNode TYPE() { return getToken(PrestoSqlParser.TYPE, 0); }
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public TerminalNode AS() { return getToken(PrestoSqlParser.AS, 0); }
+ public List sqlParameterDeclaration() {
+ return getRuleContexts(SqlParameterDeclarationContext.class);
+ }
+ public SqlParameterDeclarationContext sqlParameterDeclaration(int i) {
+ return getRuleContext(SqlParameterDeclarationContext.class,i);
+ }
+ public TypeContext type() {
+ return getRuleContext(TypeContext.class,0);
+ }
+ public CreateTypeContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterCreateType(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitCreateType(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitCreateType(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class DeleteContext extends StatementContext {
+ public TerminalNode DELETE() { return getToken(PrestoSqlParser.DELETE, 0); }
+ public TerminalNode FROM() { return getToken(PrestoSqlParser.FROM, 0); }
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public TerminalNode WHERE() { return getToken(PrestoSqlParser.WHERE, 0); }
+ public BooleanExpressionContext booleanExpression() {
+ return getRuleContext(BooleanExpressionContext.class,0);
+ }
+ public DeleteContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterDelete(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitDelete(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitDelete(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class DescribeInputContext extends StatementContext {
+ public TerminalNode DESCRIBE() { return getToken(PrestoSqlParser.DESCRIBE, 0); }
+ public TerminalNode INPUT() { return getToken(PrestoSqlParser.INPUT, 0); }
+ public IdentifierContext identifier() {
+ return getRuleContext(IdentifierContext.class,0);
+ }
+ public DescribeInputContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterDescribeInput(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitDescribeInput(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitDescribeInput(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class ShowStatsForQueryContext extends StatementContext {
+ public TerminalNode SHOW() { return getToken(PrestoSqlParser.SHOW, 0); }
+ public TerminalNode STATS() { return getToken(PrestoSqlParser.STATS, 0); }
+ public TerminalNode FOR() { return getToken(PrestoSqlParser.FOR, 0); }
+ public QuerySpecificationContext querySpecification() {
+ return getRuleContext(QuerySpecificationContext.class,0);
+ }
+ public ShowStatsForQueryContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterShowStatsForQuery(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitShowStatsForQuery(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitShowStatsForQuery(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class StatementDefaultContext extends StatementContext {
+ public QueryContext query() {
+ return getRuleContext(QueryContext.class,0);
+ }
+ public StatementDefaultContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterStatementDefault(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitStatementDefault(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitStatementDefault(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class CreateMaterializedViewContext extends StatementContext {
+ public TerminalNode CREATE() { return getToken(PrestoSqlParser.CREATE, 0); }
+ public TerminalNode MATERIALIZED() { return getToken(PrestoSqlParser.MATERIALIZED, 0); }
+ public TerminalNode VIEW() { return getToken(PrestoSqlParser.VIEW, 0); }
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public TerminalNode AS() { return getToken(PrestoSqlParser.AS, 0); }
+ public QueryContext query() {
+ return getRuleContext(QueryContext.class,0);
+ }
+ public TerminalNode IF() { return getToken(PrestoSqlParser.IF, 0); }
+ public TerminalNode NOT() { return getToken(PrestoSqlParser.NOT, 0); }
+ public TerminalNode EXISTS() { return getToken(PrestoSqlParser.EXISTS, 0); }
+ public TerminalNode COMMENT() { return getToken(PrestoSqlParser.COMMENT, 0); }
+ public StringContext string() {
+ return getRuleContext(StringContext.class,0);
+ }
+ public TerminalNode WITH() { return getToken(PrestoSqlParser.WITH, 0); }
+ public PropertiesContext properties() {
+ return getRuleContext(PropertiesContext.class,0);
+ }
+ public CreateMaterializedViewContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterCreateMaterializedView(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitCreateMaterializedView(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitCreateMaterializedView(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class AlterFunctionContext extends StatementContext {
+ public TerminalNode ALTER() { return getToken(PrestoSqlParser.ALTER, 0); }
+ public TerminalNode FUNCTION() { return getToken(PrestoSqlParser.FUNCTION, 0); }
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public AlterRoutineCharacteristicsContext alterRoutineCharacteristics() {
+ return getRuleContext(AlterRoutineCharacteristicsContext.class,0);
+ }
+ public TypesContext types() {
+ return getRuleContext(TypesContext.class,0);
+ }
+ public AlterFunctionContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterAlterFunction(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitAlterFunction(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitAlterFunction(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class SetSessionContext extends StatementContext {
+ public TerminalNode SET() { return getToken(PrestoSqlParser.SET, 0); }
+ public TerminalNode SESSION() { return getToken(PrestoSqlParser.SESSION, 0); }
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public TerminalNode EQ() { return getToken(PrestoSqlParser.EQ, 0); }
+ public ExpressionContext expression() {
+ return getRuleContext(ExpressionContext.class,0);
+ }
+ public SetSessionContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSetSession(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSetSession(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitSetSession(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class CreateViewContext extends StatementContext {
+ public TerminalNode CREATE() { return getToken(PrestoSqlParser.CREATE, 0); }
+ public TerminalNode VIEW() { return getToken(PrestoSqlParser.VIEW, 0); }
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public TerminalNode AS() { return getToken(PrestoSqlParser.AS, 0); }
+ public QueryContext query() {
+ return getRuleContext(QueryContext.class,0);
+ }
+ public TerminalNode OR() { return getToken(PrestoSqlParser.OR, 0); }
+ public TerminalNode REPLACE() { return getToken(PrestoSqlParser.REPLACE, 0); }
+ public TerminalNode SECURITY() { return getToken(PrestoSqlParser.SECURITY, 0); }
+ public TerminalNode DEFINER() { return getToken(PrestoSqlParser.DEFINER, 0); }
+ public TerminalNode INVOKER() { return getToken(PrestoSqlParser.INVOKER, 0); }
+ public CreateViewContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterCreateView(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitCreateView(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitCreateView(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class ShowSchemasContext extends StatementContext {
+ public StringContext pattern;
+ public StringContext escape;
+ public TerminalNode SHOW() { return getToken(PrestoSqlParser.SHOW, 0); }
+ public TerminalNode SCHEMAS() { return getToken(PrestoSqlParser.SCHEMAS, 0); }
+ public IdentifierContext identifier() {
+ return getRuleContext(IdentifierContext.class,0);
+ }
+ public TerminalNode LIKE() { return getToken(PrestoSqlParser.LIKE, 0); }
+ public TerminalNode FROM() { return getToken(PrestoSqlParser.FROM, 0); }
+ public TerminalNode IN() { return getToken(PrestoSqlParser.IN, 0); }
+ public List string() {
+ return getRuleContexts(StringContext.class);
+ }
+ public StringContext string(int i) {
+ return getRuleContext(StringContext.class,i);
+ }
+ public TerminalNode ESCAPE() { return getToken(PrestoSqlParser.ESCAPE, 0); }
+ public ShowSchemasContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterShowSchemas(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitShowSchemas(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitShowSchemas(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class DropTableContext extends StatementContext {
+ public TerminalNode DROP() { return getToken(PrestoSqlParser.DROP, 0); }
+ public TerminalNode TABLE() { return getToken(PrestoSqlParser.TABLE, 0); }
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public TerminalNode IF() { return getToken(PrestoSqlParser.IF, 0); }
+ public TerminalNode EXISTS() { return getToken(PrestoSqlParser.EXISTS, 0); }
+ public DropTableContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterDropTable(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitDropTable(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitDropTable(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class RollbackContext extends StatementContext {
+ public TerminalNode ROLLBACK() { return getToken(PrestoSqlParser.ROLLBACK, 0); }
+ public TerminalNode WORK() { return getToken(PrestoSqlParser.WORK, 0); }
+ public RollbackContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterRollback(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitRollback(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitRollback(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class GrantRolesContext extends StatementContext {
+ public TerminalNode GRANT() { return getToken(PrestoSqlParser.GRANT, 0); }
+ public RolesContext roles() {
+ return getRuleContext(RolesContext.class,0);
+ }
+ public TerminalNode TO() { return getToken(PrestoSqlParser.TO, 0); }
+ public List principal() {
+ return getRuleContexts(PrincipalContext.class);
+ }
+ public PrincipalContext principal(int i) {
+ return getRuleContext(PrincipalContext.class,i);
+ }
+ public TerminalNode WITH() { return getToken(PrestoSqlParser.WITH, 0); }
+ public TerminalNode ADMIN() { return getToken(PrestoSqlParser.ADMIN, 0); }
+ public TerminalNode OPTION() { return getToken(PrestoSqlParser.OPTION, 0); }
+ public TerminalNode GRANTED() { return getToken(PrestoSqlParser.GRANTED, 0); }
+ public TerminalNode BY() { return getToken(PrestoSqlParser.BY, 0); }
+ public GrantorContext grantor() {
+ return getRuleContext(GrantorContext.class,0);
+ }
+ public GrantRolesContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterGrantRoles(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitGrantRoles(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitGrantRoles(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class CallContext extends StatementContext {
+ public TerminalNode CALL() { return getToken(PrestoSqlParser.CALL, 0); }
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public List callArgument() {
+ return getRuleContexts(CallArgumentContext.class);
+ }
+ public CallArgumentContext callArgument(int i) {
+ return getRuleContext(CallArgumentContext.class,i);
+ }
+ public CallContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterCall(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitCall(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitCall(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class RefreshMaterializedViewContext extends StatementContext {
+ public TerminalNode REFRESH() { return getToken(PrestoSqlParser.REFRESH, 0); }
+ public TerminalNode MATERIALIZED() { return getToken(PrestoSqlParser.MATERIALIZED, 0); }
+ public TerminalNode VIEW() { return getToken(PrestoSqlParser.VIEW, 0); }
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public TerminalNode WHERE() { return getToken(PrestoSqlParser.WHERE, 0); }
+ public BooleanExpressionContext booleanExpression() {
+ return getRuleContext(BooleanExpressionContext.class,0);
+ }
+ public RefreshMaterializedViewContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterRefreshMaterializedView(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitRefreshMaterializedView(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitRefreshMaterializedView(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class ShowCreateMaterializedViewContext extends StatementContext {
+ public TerminalNode SHOW() { return getToken(PrestoSqlParser.SHOW, 0); }
+ public TerminalNode CREATE() { return getToken(PrestoSqlParser.CREATE, 0); }
+ public TerminalNode MATERIALIZED() { return getToken(PrestoSqlParser.MATERIALIZED, 0); }
+ public TerminalNode VIEW() { return getToken(PrestoSqlParser.VIEW, 0); }
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public ShowCreateMaterializedViewContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterShowCreateMaterializedView(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitShowCreateMaterializedView(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitShowCreateMaterializedView(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class ShowFunctionsContext extends StatementContext {
+ public StringContext pattern;
+ public StringContext escape;
+ public TerminalNode SHOW() { return getToken(PrestoSqlParser.SHOW, 0); }
+ public TerminalNode FUNCTIONS() { return getToken(PrestoSqlParser.FUNCTIONS, 0); }
+ public TerminalNode LIKE() { return getToken(PrestoSqlParser.LIKE, 0); }
+ public List string() {
+ return getRuleContexts(StringContext.class);
+ }
+ public StringContext string(int i) {
+ return getRuleContext(StringContext.class,i);
+ }
+ public TerminalNode ESCAPE() { return getToken(PrestoSqlParser.ESCAPE, 0); }
+ public ShowFunctionsContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterShowFunctions(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitShowFunctions(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitShowFunctions(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class DescribeOutputContext extends StatementContext {
+ public TerminalNode DESCRIBE() { return getToken(PrestoSqlParser.DESCRIBE, 0); }
+ public TerminalNode OUTPUT() { return getToken(PrestoSqlParser.OUTPUT, 0); }
+ public IdentifierContext identifier() {
+ return getRuleContext(IdentifierContext.class,0);
+ }
+ public DescribeOutputContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterDescribeOutput(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitDescribeOutput(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitDescribeOutput(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class GrantContext extends StatementContext {
+ public PrincipalContext grantee;
+ public List GRANT() { return getTokens(PrestoSqlParser.GRANT); }
+ public TerminalNode GRANT(int i) {
+ return getToken(PrestoSqlParser.GRANT, i);
+ }
+ public TerminalNode ON() { return getToken(PrestoSqlParser.ON, 0); }
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public TerminalNode TO() { return getToken(PrestoSqlParser.TO, 0); }
+ public PrincipalContext principal() {
+ return getRuleContext(PrincipalContext.class,0);
+ }
+ public List privilege() {
+ return getRuleContexts(PrivilegeContext.class);
+ }
+ public PrivilegeContext privilege(int i) {
+ return getRuleContext(PrivilegeContext.class,i);
+ }
+ public TerminalNode ALL() { return getToken(PrestoSqlParser.ALL, 0); }
+ public TerminalNode PRIVILEGES() { return getToken(PrestoSqlParser.PRIVILEGES, 0); }
+ public TerminalNode TABLE() { return getToken(PrestoSqlParser.TABLE, 0); }
+ public TerminalNode WITH() { return getToken(PrestoSqlParser.WITH, 0); }
+ public TerminalNode OPTION() { return getToken(PrestoSqlParser.OPTION, 0); }
+ public GrantContext(StatementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterGrant(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitGrant(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitGrant(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final StatementContext statement() throws RecognitionException {
+ StatementContext _localctx = new StatementContext(_ctx, getState());
+ enterRule(_localctx, 6, RULE_statement);
+ int _la;
+ try {
+ setState(791);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,88,_ctx) ) {
+ case 1:
+ _localctx = new StatementDefaultContext(_localctx);
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(163);
+ query();
+ }
+ break;
+ case 2:
+ _localctx = new UseContext(_localctx);
+ enterOuterAlt(_localctx, 2);
+ {
+ setState(164);
+ match(USE);
+ setState(165);
+ ((UseContext)_localctx).schema = identifier();
+ }
+ break;
+ case 3:
+ _localctx = new UseContext(_localctx);
+ enterOuterAlt(_localctx, 3);
+ {
+ setState(166);
+ match(USE);
+ setState(167);
+ ((UseContext)_localctx).catalog = identifier();
+ setState(168);
+ match(T__0);
+ setState(169);
+ ((UseContext)_localctx).schema = identifier();
+ }
+ break;
+ case 4:
+ _localctx = new CreateSchemaContext(_localctx);
+ enterOuterAlt(_localctx, 4);
+ {
+ setState(171);
+ match(CREATE);
+ setState(172);
+ match(SCHEMA);
+ setState(176);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,0,_ctx) ) {
+ case 1:
+ {
+ setState(173);
+ match(IF);
+ setState(174);
+ match(NOT);
+ setState(175);
+ match(EXISTS);
+ }
+ break;
+ }
+ setState(178);
+ qualifiedName();
+ setState(181);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==WITH) {
+ {
+ setState(179);
+ match(WITH);
+ setState(180);
+ properties();
+ }
+ }
+
+ }
+ break;
+ case 5:
+ _localctx = new DropSchemaContext(_localctx);
+ enterOuterAlt(_localctx, 5);
+ {
+ setState(183);
+ match(DROP);
+ setState(184);
+ match(SCHEMA);
+ setState(187);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,2,_ctx) ) {
+ case 1:
+ {
+ setState(185);
+ match(IF);
+ setState(186);
+ match(EXISTS);
+ }
+ break;
+ }
+ setState(189);
+ qualifiedName();
+ setState(191);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==CASCADE || _la==RESTRICT) {
+ {
+ setState(190);
+ _la = _input.LA(1);
+ if ( !(_la==CASCADE || _la==RESTRICT) ) {
+ _errHandler.recoverInline(this);
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
+ consume();
+ }
+ }
+ }
+
+ }
+ break;
+ case 6:
+ _localctx = new RenameSchemaContext(_localctx);
+ enterOuterAlt(_localctx, 6);
+ {
+ setState(193);
+ match(ALTER);
+ setState(194);
+ match(SCHEMA);
+ setState(195);
+ qualifiedName();
+ setState(196);
+ match(RENAME);
+ setState(197);
+ match(TO);
+ setState(198);
+ identifier();
+ }
+ break;
+ case 7:
+ _localctx = new CreateTableAsSelectContext(_localctx);
+ enterOuterAlt(_localctx, 7);
+ {
+ setState(200);
+ match(CREATE);
+ setState(201);
+ match(TABLE);
+ setState(205);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,4,_ctx) ) {
+ case 1:
+ {
+ setState(202);
+ match(IF);
+ setState(203);
+ match(NOT);
+ setState(204);
+ match(EXISTS);
+ }
+ break;
+ }
+ setState(207);
+ qualifiedName();
+ setState(209);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==T__1) {
+ {
+ setState(208);
+ columnAliases();
+ }
+ }
+
+ setState(213);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==COMMENT) {
+ {
+ setState(211);
+ match(COMMENT);
+ setState(212);
+ string();
+ }
+ }
+
+ setState(217);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==WITH) {
+ {
+ setState(215);
+ match(WITH);
+ setState(216);
+ properties();
+ }
+ }
+
+ setState(219);
+ match(AS);
+ setState(225);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,8,_ctx) ) {
+ case 1:
+ {
+ setState(220);
+ query();
+ }
+ break;
+ case 2:
+ {
+ setState(221);
+ match(T__1);
+ setState(222);
+ query();
+ setState(223);
+ match(T__2);
+ }
+ break;
+ }
+ setState(232);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==WITH) {
+ {
+ setState(227);
+ match(WITH);
+ setState(229);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==NO) {
+ {
+ setState(228);
+ match(NO);
+ }
+ }
+
+ setState(231);
+ match(DATA);
+ }
+ }
+
+ }
+ break;
+ case 8:
+ _localctx = new CreateTableContext(_localctx);
+ enterOuterAlt(_localctx, 8);
+ {
+ setState(234);
+ match(CREATE);
+ setState(235);
+ match(TABLE);
+ setState(239);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,11,_ctx) ) {
+ case 1:
+ {
+ setState(236);
+ match(IF);
+ setState(237);
+ match(NOT);
+ setState(238);
+ match(EXISTS);
+ }
+ break;
+ }
+ setState(241);
+ qualifiedName();
+ setState(242);
+ match(T__1);
+ setState(243);
+ tableElement();
+ setState(248);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ while (_la==T__3) {
+ {
+ {
+ setState(244);
+ match(T__3);
+ setState(245);
+ tableElement();
+ }
+ }
+ setState(250);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ }
+ setState(251);
+ match(T__2);
+ setState(254);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==COMMENT) {
+ {
+ setState(252);
+ match(COMMENT);
+ setState(253);
+ string();
+ }
+ }
+
+ setState(258);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==WITH) {
+ {
+ setState(256);
+ match(WITH);
+ setState(257);
+ properties();
+ }
+ }
+
+ }
+ break;
+ case 9:
+ _localctx = new DropTableContext(_localctx);
+ enterOuterAlt(_localctx, 9);
+ {
+ setState(260);
+ match(DROP);
+ setState(261);
+ match(TABLE);
+ setState(264);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,15,_ctx) ) {
+ case 1:
+ {
+ setState(262);
+ match(IF);
+ setState(263);
+ match(EXISTS);
+ }
+ break;
+ }
+ setState(266);
+ qualifiedName();
+ }
+ break;
+ case 10:
+ _localctx = new InsertIntoContext(_localctx);
+ enterOuterAlt(_localctx, 10);
+ {
+ setState(267);
+ match(INSERT);
+ setState(268);
+ match(INTO);
+ setState(269);
+ qualifiedName();
+ setState(271);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,16,_ctx) ) {
+ case 1:
+ {
+ setState(270);
+ columnAliases();
+ }
+ break;
+ }
+ setState(273);
+ query();
+ }
+ break;
+ case 11:
+ _localctx = new DeleteContext(_localctx);
+ enterOuterAlt(_localctx, 11);
+ {
+ setState(275);
+ match(DELETE);
+ setState(276);
+ match(FROM);
+ setState(277);
+ qualifiedName();
+ setState(280);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==WHERE) {
+ {
+ setState(278);
+ match(WHERE);
+ setState(279);
+ booleanExpression(0);
+ }
+ }
+
+ }
+ break;
+ case 12:
+ _localctx = new RenameTableContext(_localctx);
+ enterOuterAlt(_localctx, 12);
+ {
+ setState(282);
+ match(ALTER);
+ setState(283);
+ match(TABLE);
+ setState(286);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,18,_ctx) ) {
+ case 1:
+ {
+ setState(284);
+ match(IF);
+ setState(285);
+ match(EXISTS);
+ }
+ break;
+ }
+ setState(288);
+ ((RenameTableContext)_localctx).from = qualifiedName();
+ setState(289);
+ match(RENAME);
+ setState(290);
+ match(TO);
+ setState(291);
+ ((RenameTableContext)_localctx).to = qualifiedName();
+ }
+ break;
+ case 13:
+ _localctx = new RenameColumnContext(_localctx);
+ enterOuterAlt(_localctx, 13);
+ {
+ setState(293);
+ match(ALTER);
+ setState(294);
+ match(TABLE);
+ setState(297);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,19,_ctx) ) {
+ case 1:
+ {
+ setState(295);
+ match(IF);
+ setState(296);
+ match(EXISTS);
+ }
+ break;
+ }
+ setState(299);
+ ((RenameColumnContext)_localctx).tableName = qualifiedName();
+ setState(300);
+ match(RENAME);
+ setState(301);
+ match(COLUMN);
+ setState(304);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,20,_ctx) ) {
+ case 1:
+ {
+ setState(302);
+ match(IF);
+ setState(303);
+ match(EXISTS);
+ }
+ break;
+ }
+ setState(306);
+ ((RenameColumnContext)_localctx).from = identifier();
+ setState(307);
+ match(TO);
+ setState(308);
+ ((RenameColumnContext)_localctx).to = identifier();
+ }
+ break;
+ case 14:
+ _localctx = new DropColumnContext(_localctx);
+ enterOuterAlt(_localctx, 14);
+ {
+ setState(310);
+ match(ALTER);
+ setState(311);
+ match(TABLE);
+ setState(314);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,21,_ctx) ) {
+ case 1:
+ {
+ setState(312);
+ match(IF);
+ setState(313);
+ match(EXISTS);
+ }
+ break;
+ }
+ setState(316);
+ ((DropColumnContext)_localctx).tableName = qualifiedName();
+ setState(317);
+ match(DROP);
+ setState(318);
+ match(COLUMN);
+ setState(321);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,22,_ctx) ) {
+ case 1:
+ {
+ setState(319);
+ match(IF);
+ setState(320);
+ match(EXISTS);
+ }
+ break;
+ }
+ setState(323);
+ ((DropColumnContext)_localctx).column = qualifiedName();
+ }
+ break;
+ case 15:
+ _localctx = new AddColumnContext(_localctx);
+ enterOuterAlt(_localctx, 15);
+ {
+ setState(325);
+ match(ALTER);
+ setState(326);
+ match(TABLE);
+ setState(329);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,23,_ctx) ) {
+ case 1:
+ {
+ setState(327);
+ match(IF);
+ setState(328);
+ match(EXISTS);
+ }
+ break;
+ }
+ setState(331);
+ ((AddColumnContext)_localctx).tableName = qualifiedName();
+ setState(332);
+ match(ADD);
+ setState(333);
+ match(COLUMN);
+ setState(337);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,24,_ctx) ) {
+ case 1:
+ {
+ setState(334);
+ match(IF);
+ setState(335);
+ match(NOT);
+ setState(336);
+ match(EXISTS);
+ }
+ break;
+ }
+ setState(339);
+ ((AddColumnContext)_localctx).column = columnDefinition();
+ }
+ break;
+ case 16:
+ _localctx = new AnalyzeContext(_localctx);
+ enterOuterAlt(_localctx, 16);
+ {
+ setState(341);
+ match(ANALYZE);
+ setState(342);
+ qualifiedName();
+ setState(345);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==WITH) {
+ {
+ setState(343);
+ match(WITH);
+ setState(344);
+ properties();
+ }
+ }
+
+ }
+ break;
+ case 17:
+ _localctx = new CreateTypeContext(_localctx);
+ enterOuterAlt(_localctx, 17);
+ {
+ setState(347);
+ match(CREATE);
+ setState(348);
+ match(TYPE);
+ setState(349);
+ qualifiedName();
+ setState(350);
+ match(AS);
+ setState(363);
+ _errHandler.sync(this);
+ switch (_input.LA(1)) {
+ case T__1:
+ {
+ setState(351);
+ match(T__1);
+ setState(352);
+ sqlParameterDeclaration();
+ setState(357);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ while (_la==T__3) {
+ {
+ {
+ setState(353);
+ match(T__3);
+ setState(354);
+ sqlParameterDeclaration();
+ }
+ }
+ setState(359);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ }
+ setState(360);
+ match(T__2);
+ }
+ break;
+ case ADD:
+ case ADMIN:
+ case ALL:
+ case ANALYZE:
+ case ANY:
+ case ARRAY:
+ case ASC:
+ case AT:
+ case BERNOULLI:
+ case CALL:
+ case CALLED:
+ case CASCADE:
+ case CATALOGS:
+ case COLUMN:
+ case COLUMNS:
+ case COMMENT:
+ case COMMIT:
+ case COMMITTED:
+ case CURRENT:
+ case CURRENT_ROLE:
+ case DATA:
+ case DATE:
+ case DAY:
+ case DEFINER:
+ case DESC:
+ case DETERMINISTIC:
+ case DISTRIBUTED:
+ case EXCLUDING:
+ case EXPLAIN:
+ case EXTERNAL:
+ case FILTER:
+ case FIRST:
+ case FOLLOWING:
+ case FORMAT:
+ case FUNCTION:
+ case FUNCTIONS:
+ case GRANT:
+ case GRANTED:
+ case GRANTS:
+ case GRAPHVIZ:
+ case HOUR:
+ case IF:
+ case IGNORE:
+ case INCLUDING:
+ case INPUT:
+ case INTERVAL:
+ case INVOKER:
+ case IO:
+ case ISOLATION:
+ case JSON:
+ case LANGUAGE:
+ case LAST:
+ case LATERAL:
+ case LEVEL:
+ case LIMIT:
+ case LOGICAL:
+ case MAP:
+ case MATERIALIZED:
+ case MINUTE:
+ case MONTH:
+ case NAME:
+ case NFC:
+ case NFD:
+ case NFKC:
+ case NFKD:
+ case NO:
+ case NONE:
+ case NULLIF:
+ case NULLS:
+ case OFFSET:
+ case ONLY:
+ case OPTION:
+ case ORDINALITY:
+ case OUTPUT:
+ case OVER:
+ case PARTITION:
+ case PARTITIONS:
+ case POSITION:
+ case PRECEDING:
+ case PRIVILEGES:
+ case PROPERTIES:
+ case RANGE:
+ case READ:
+ case REFRESH:
+ case RENAME:
+ case REPEATABLE:
+ case REPLACE:
+ case RESET:
+ case RESPECT:
+ case RESTRICT:
+ case RETURN:
+ case RETURNS:
+ case REVOKE:
+ case ROLE:
+ case ROLES:
+ case ROLLBACK:
+ case ROW:
+ case ROWS:
+ case SCHEMA:
+ case SCHEMAS:
+ case SECOND:
+ case SECURITY:
+ case SERIALIZABLE:
+ case SESSION:
+ case SET:
+ case SETS:
+ case SHOW:
+ case SOME:
+ case SQL:
+ case START:
+ case STATS:
+ case SUBSTRING:
+ case SYSTEM:
+ case TABLES:
+ case TABLESAMPLE:
+ case TEMPORARY:
+ case TEXT:
+ case TIME:
+ case TIMESTAMP:
+ case TO:
+ case TRANSACTION:
+ case TRY_CAST:
+ case TYPE:
+ case UNBOUNDED:
+ case UNCOMMITTED:
+ case USE:
+ case USER:
+ case VALIDATE:
+ case VERBOSE:
+ case VIEW:
+ case WORK:
+ case WRITE:
+ case YEAR:
+ case ZONE:
+ case IDENTIFIER:
+ case DIGIT_IDENTIFIER:
+ case QUOTED_IDENTIFIER:
+ case BACKQUOTED_IDENTIFIER:
+ case TIME_WITH_TIME_ZONE:
+ case TIMESTAMP_WITH_TIME_ZONE:
+ case DOUBLE_PRECISION:
+ {
+ setState(362);
+ type(0);
+ }
+ break;
+ default:
+ throw new NoViableAltException(this);
+ }
+ }
+ break;
+ case 18:
+ _localctx = new CreateViewContext(_localctx);
+ enterOuterAlt(_localctx, 18);
+ {
+ setState(365);
+ match(CREATE);
+ setState(368);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==OR) {
+ {
+ setState(366);
+ match(OR);
+ setState(367);
+ match(REPLACE);
+ }
+ }
+
+ setState(370);
+ match(VIEW);
+ setState(371);
+ qualifiedName();
+ setState(374);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==SECURITY) {
+ {
+ setState(372);
+ match(SECURITY);
+ setState(373);
+ _la = _input.LA(1);
+ if ( !(_la==DEFINER || _la==INVOKER) ) {
+ _errHandler.recoverInline(this);
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
+ consume();
+ }
+ }
+ }
+
+ setState(376);
+ match(AS);
+ setState(377);
+ query();
+ }
+ break;
+ case 19:
+ _localctx = new DropViewContext(_localctx);
+ enterOuterAlt(_localctx, 19);
+ {
+ setState(379);
+ match(DROP);
+ setState(380);
+ match(VIEW);
+ setState(383);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,30,_ctx) ) {
+ case 1:
+ {
+ setState(381);
+ match(IF);
+ setState(382);
+ match(EXISTS);
+ }
+ break;
+ }
+ setState(385);
+ qualifiedName();
+ }
+ break;
+ case 20:
+ _localctx = new CreateMaterializedViewContext(_localctx);
+ enterOuterAlt(_localctx, 20);
+ {
+ setState(386);
+ match(CREATE);
+ setState(387);
+ match(MATERIALIZED);
+ setState(388);
+ match(VIEW);
+ setState(392);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,31,_ctx) ) {
+ case 1:
+ {
+ setState(389);
+ match(IF);
+ setState(390);
+ match(NOT);
+ setState(391);
+ match(EXISTS);
+ }
+ break;
+ }
+ setState(394);
+ qualifiedName();
+ setState(397);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==COMMENT) {
+ {
+ setState(395);
+ match(COMMENT);
+ setState(396);
+ string();
+ }
+ }
+
+ setState(401);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==WITH) {
+ {
+ setState(399);
+ match(WITH);
+ setState(400);
+ properties();
+ }
+ }
+
+ setState(403);
+ match(AS);
+ setState(409);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,34,_ctx) ) {
+ case 1:
+ {
+ setState(404);
+ query();
+ }
+ break;
+ case 2:
+ {
+ setState(405);
+ match(T__1);
+ setState(406);
+ query();
+ setState(407);
+ match(T__2);
+ }
+ break;
+ }
+ }
+ break;
+ case 21:
+ _localctx = new DropMaterializedViewContext(_localctx);
+ enterOuterAlt(_localctx, 21);
+ {
+ setState(411);
+ match(DROP);
+ setState(412);
+ match(MATERIALIZED);
+ setState(413);
+ match(VIEW);
+ setState(416);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,35,_ctx) ) {
+ case 1:
+ {
+ setState(414);
+ match(IF);
+ setState(415);
+ match(EXISTS);
+ }
+ break;
+ }
+ setState(418);
+ qualifiedName();
+ }
+ break;
+ case 22:
+ _localctx = new RefreshMaterializedViewContext(_localctx);
+ enterOuterAlt(_localctx, 22);
+ {
+ setState(419);
+ match(REFRESH);
+ setState(420);
+ match(MATERIALIZED);
+ setState(421);
+ match(VIEW);
+ setState(422);
+ qualifiedName();
+ setState(423);
+ match(WHERE);
+ setState(424);
+ booleanExpression(0);
+ }
+ break;
+ case 23:
+ _localctx = new CreateFunctionContext(_localctx);
+ enterOuterAlt(_localctx, 23);
+ {
+ setState(426);
+ match(CREATE);
+ setState(429);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==OR) {
+ {
+ setState(427);
+ match(OR);
+ setState(428);
+ match(REPLACE);
+ }
+ }
+
+ setState(432);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==TEMPORARY) {
+ {
+ setState(431);
+ match(TEMPORARY);
+ }
+ }
+
+ setState(434);
+ match(FUNCTION);
+ setState(435);
+ ((CreateFunctionContext)_localctx).functionName = qualifiedName();
+ setState(436);
+ match(T__1);
+ setState(445);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ADD) | (1L << ADMIN) | (1L << ALL) | (1L << ANALYZE) | (1L << ANY) | (1L << ARRAY) | (1L << ASC) | (1L << AT) | (1L << BERNOULLI) | (1L << CALL) | (1L << CALLED) | (1L << CASCADE) | (1L << CATALOGS) | (1L << COLUMN) | (1L << COLUMNS) | (1L << COMMENT) | (1L << COMMIT) | (1L << COMMITTED) | (1L << CURRENT) | (1L << CURRENT_ROLE) | (1L << DATA) | (1L << DATE) | (1L << DAY) | (1L << DEFINER) | (1L << DESC) | (1L << DETERMINISTIC) | (1L << DISTRIBUTED) | (1L << EXCLUDING))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EXPLAIN - 64)) | (1L << (EXTERNAL - 64)) | (1L << (FILTER - 64)) | (1L << (FIRST - 64)) | (1L << (FOLLOWING - 64)) | (1L << (FORMAT - 64)) | (1L << (FUNCTION - 64)) | (1L << (FUNCTIONS - 64)) | (1L << (GRANT - 64)) | (1L << (GRANTED - 64)) | (1L << (GRANTS - 64)) | (1L << (GRAPHVIZ - 64)) | (1L << (HOUR - 64)) | (1L << (IF - 64)) | (1L << (IGNORE - 64)) | (1L << (INCLUDING - 64)) | (1L << (INPUT - 64)) | (1L << (INTERVAL - 64)) | (1L << (INVOKER - 64)) | (1L << (IO - 64)) | (1L << (ISOLATION - 64)) | (1L << (JSON - 64)) | (1L << (LANGUAGE - 64)) | (1L << (LAST - 64)) | (1L << (LATERAL - 64)) | (1L << (LEVEL - 64)) | (1L << (LIMIT - 64)) | (1L << (LOGICAL - 64)) | (1L << (MAP - 64)) | (1L << (MATERIALIZED - 64)) | (1L << (MINUTE - 64)) | (1L << (MONTH - 64)) | (1L << (NAME - 64)) | (1L << (NFC - 64)) | (1L << (NFD - 64)) | (1L << (NFKC - 64)) | (1L << (NFKD - 64)) | (1L << (NO - 64)) | (1L << (NONE - 64)) | (1L << (NULLIF - 64)) | (1L << (NULLS - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OFFSET - 128)) | (1L << (ONLY - 128)) | (1L << (OPTION - 128)) | (1L << (ORDINALITY - 128)) | (1L << (OUTPUT - 128)) | (1L << (OVER - 128)) | (1L << (PARTITION - 128)) | (1L << (PARTITIONS - 128)) | (1L << (POSITION - 128)) | (1L << (PRECEDING - 128)) | (1L << (PRIVILEGES - 128)) | (1L << (PROPERTIES - 128)) | (1L << (RANGE - 128)) | (1L << (READ - 128)) | (1L << (REFRESH - 128)) | (1L << (RENAME - 128)) | (1L << (REPEATABLE - 128)) | (1L << (REPLACE - 128)) | (1L << (RESET - 128)) | (1L << (RESPECT - 128)) | (1L << (RESTRICT - 128)) | (1L << (RETURN - 128)) | (1L << (RETURNS - 128)) | (1L << (REVOKE - 128)) | (1L << (ROLE - 128)) | (1L << (ROLES - 128)) | (1L << (ROLLBACK - 128)) | (1L << (ROW - 128)) | (1L << (ROWS - 128)) | (1L << (SCHEMA - 128)) | (1L << (SCHEMAS - 128)) | (1L << (SECOND - 128)) | (1L << (SECURITY - 128)) | (1L << (SERIALIZABLE - 128)) | (1L << (SESSION - 128)) | (1L << (SET - 128)) | (1L << (SETS - 128)) | (1L << (SHOW - 128)) | (1L << (SOME - 128)) | (1L << (SQL - 128)) | (1L << (START - 128)) | (1L << (STATS - 128)) | (1L << (SUBSTRING - 128)) | (1L << (SYSTEM - 128)) | (1L << (TABLES - 128)) | (1L << (TABLESAMPLE - 128)) | (1L << (TEMPORARY - 128)) | (1L << (TEXT - 128)) | (1L << (TIME - 128)) | (1L << (TIMESTAMP - 128)) | (1L << (TO - 128)) | (1L << (TRANSACTION - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (TRY_CAST - 192)) | (1L << (TYPE - 192)) | (1L << (UNBOUNDED - 192)) | (1L << (UNCOMMITTED - 192)) | (1L << (USE - 192)) | (1L << (USER - 192)) | (1L << (VALIDATE - 192)) | (1L << (VERBOSE - 192)) | (1L << (VIEW - 192)) | (1L << (WORK - 192)) | (1L << (WRITE - 192)) | (1L << (YEAR - 192)) | (1L << (ZONE - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (DIGIT_IDENTIFIER - 192)) | (1L << (QUOTED_IDENTIFIER - 192)) | (1L << (BACKQUOTED_IDENTIFIER - 192)))) != 0)) {
+ {
+ setState(437);
+ sqlParameterDeclaration();
+ setState(442);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ while (_la==T__3) {
+ {
+ {
+ setState(438);
+ match(T__3);
+ setState(439);
+ sqlParameterDeclaration();
+ }
+ }
+ setState(444);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ }
+ }
+ }
+
+ setState(447);
+ match(T__2);
+ setState(448);
+ match(RETURNS);
+ setState(449);
+ ((CreateFunctionContext)_localctx).returnType = type(0);
+ setState(452);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==COMMENT) {
+ {
+ setState(450);
+ match(COMMENT);
+ setState(451);
+ string();
+ }
+ }
+
+ setState(454);
+ routineCharacteristics();
+ setState(455);
+ routineBody();
+ }
+ break;
+ case 24:
+ _localctx = new AlterFunctionContext(_localctx);
+ enterOuterAlt(_localctx, 24);
+ {
+ setState(457);
+ match(ALTER);
+ setState(458);
+ match(FUNCTION);
+ setState(459);
+ qualifiedName();
+ setState(461);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==T__1) {
+ {
+ setState(460);
+ types();
+ }
+ }
+
+ setState(463);
+ alterRoutineCharacteristics();
+ }
+ break;
+ case 25:
+ _localctx = new DropFunctionContext(_localctx);
+ enterOuterAlt(_localctx, 25);
+ {
+ setState(465);
+ match(DROP);
+ setState(467);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==TEMPORARY) {
+ {
+ setState(466);
+ match(TEMPORARY);
+ }
+ }
+
+ setState(469);
+ match(FUNCTION);
+ setState(472);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,43,_ctx) ) {
+ case 1:
+ {
+ setState(470);
+ match(IF);
+ setState(471);
+ match(EXISTS);
+ }
+ break;
+ }
+ setState(474);
+ qualifiedName();
+ setState(476);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==T__1) {
+ {
+ setState(475);
+ types();
+ }
+ }
+
+ }
+ break;
+ case 26:
+ _localctx = new CallContext(_localctx);
+ enterOuterAlt(_localctx, 26);
+ {
+ setState(478);
+ match(CALL);
+ setState(479);
+ qualifiedName();
+ setState(480);
+ match(T__1);
+ setState(489);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__1) | (1L << T__4) | (1L << ADD) | (1L << ADMIN) | (1L << ALL) | (1L << ANALYZE) | (1L << ANY) | (1L << ARRAY) | (1L << ASC) | (1L << AT) | (1L << BERNOULLI) | (1L << CALL) | (1L << CALLED) | (1L << CASCADE) | (1L << CASE) | (1L << CAST) | (1L << CATALOGS) | (1L << COLUMN) | (1L << COLUMNS) | (1L << COMMENT) | (1L << COMMIT) | (1L << COMMITTED) | (1L << CURRENT) | (1L << CURRENT_DATE) | (1L << CURRENT_ROLE) | (1L << CURRENT_TIME) | (1L << CURRENT_TIMESTAMP) | (1L << CURRENT_USER) | (1L << DATA) | (1L << DATE) | (1L << DAY) | (1L << DEFINER) | (1L << DESC) | (1L << DETERMINISTIC) | (1L << DISTRIBUTED) | (1L << EXCLUDING) | (1L << EXISTS))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EXPLAIN - 64)) | (1L << (EXTRACT - 64)) | (1L << (EXTERNAL - 64)) | (1L << (FALSE - 64)) | (1L << (FILTER - 64)) | (1L << (FIRST - 64)) | (1L << (FOLLOWING - 64)) | (1L << (FORMAT - 64)) | (1L << (FUNCTION - 64)) | (1L << (FUNCTIONS - 64)) | (1L << (GRANT - 64)) | (1L << (GRANTED - 64)) | (1L << (GRANTS - 64)) | (1L << (GRAPHVIZ - 64)) | (1L << (GROUPING - 64)) | (1L << (HOUR - 64)) | (1L << (IF - 64)) | (1L << (IGNORE - 64)) | (1L << (INCLUDING - 64)) | (1L << (INPUT - 64)) | (1L << (INTERVAL - 64)) | (1L << (INVOKER - 64)) | (1L << (IO - 64)) | (1L << (ISOLATION - 64)) | (1L << (JSON - 64)) | (1L << (LANGUAGE - 64)) | (1L << (LAST - 64)) | (1L << (LATERAL - 64)) | (1L << (LEVEL - 64)) | (1L << (LIMIT - 64)) | (1L << (LOCALTIME - 64)) | (1L << (LOCALTIMESTAMP - 64)) | (1L << (LOGICAL - 64)) | (1L << (MAP - 64)) | (1L << (MATERIALIZED - 64)) | (1L << (MINUTE - 64)) | (1L << (MONTH - 64)) | (1L << (NAME - 64)) | (1L << (NFC - 64)) | (1L << (NFD - 64)) | (1L << (NFKC - 64)) | (1L << (NFKD - 64)) | (1L << (NO - 64)) | (1L << (NONE - 64)) | (1L << (NORMALIZE - 64)) | (1L << (NOT - 64)) | (1L << (NULL - 64)) | (1L << (NULLIF - 64)) | (1L << (NULLS - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OFFSET - 128)) | (1L << (ONLY - 128)) | (1L << (OPTION - 128)) | (1L << (ORDINALITY - 128)) | (1L << (OUTPUT - 128)) | (1L << (OVER - 128)) | (1L << (PARTITION - 128)) | (1L << (PARTITIONS - 128)) | (1L << (POSITION - 128)) | (1L << (PRECEDING - 128)) | (1L << (PRIVILEGES - 128)) | (1L << (PROPERTIES - 128)) | (1L << (RANGE - 128)) | (1L << (READ - 128)) | (1L << (REFRESH - 128)) | (1L << (RENAME - 128)) | (1L << (REPEATABLE - 128)) | (1L << (REPLACE - 128)) | (1L << (RESET - 128)) | (1L << (RESPECT - 128)) | (1L << (RESTRICT - 128)) | (1L << (RETURN - 128)) | (1L << (RETURNS - 128)) | (1L << (REVOKE - 128)) | (1L << (ROLE - 128)) | (1L << (ROLES - 128)) | (1L << (ROLLBACK - 128)) | (1L << (ROW - 128)) | (1L << (ROWS - 128)) | (1L << (SCHEMA - 128)) | (1L << (SCHEMAS - 128)) | (1L << (SECOND - 128)) | (1L << (SECURITY - 128)) | (1L << (SERIALIZABLE - 128)) | (1L << (SESSION - 128)) | (1L << (SET - 128)) | (1L << (SETS - 128)) | (1L << (SHOW - 128)) | (1L << (SOME - 128)) | (1L << (SQL - 128)) | (1L << (START - 128)) | (1L << (STATS - 128)) | (1L << (SUBSTRING - 128)) | (1L << (SYSTEM - 128)) | (1L << (TABLES - 128)) | (1L << (TABLESAMPLE - 128)) | (1L << (TEMPORARY - 128)) | (1L << (TEXT - 128)) | (1L << (TIME - 128)) | (1L << (TIMESTAMP - 128)) | (1L << (TO - 128)) | (1L << (TRANSACTION - 128)) | (1L << (TRUE - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (TRY_CAST - 192)) | (1L << (TYPE - 192)) | (1L << (UNBOUNDED - 192)) | (1L << (UNCOMMITTED - 192)) | (1L << (USE - 192)) | (1L << (USER - 192)) | (1L << (VALIDATE - 192)) | (1L << (VERBOSE - 192)) | (1L << (VIEW - 192)) | (1L << (WORK - 192)) | (1L << (WRITE - 192)) | (1L << (YEAR - 192)) | (1L << (ZONE - 192)) | (1L << (PLUS - 192)) | (1L << (MINUS - 192)) | (1L << (STRING - 192)) | (1L << (UNICODE_STRING - 192)) | (1L << (BINARY_LITERAL - 192)) | (1L << (INTEGER_VALUE - 192)) | (1L << (DECIMAL_VALUE - 192)) | (1L << (DOUBLE_VALUE - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (DIGIT_IDENTIFIER - 192)) | (1L << (QUOTED_IDENTIFIER - 192)) | (1L << (BACKQUOTED_IDENTIFIER - 192)) | (1L << (DOUBLE_PRECISION - 192)))) != 0)) {
+ {
+ setState(481);
+ callArgument();
+ setState(486);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ while (_la==T__3) {
+ {
+ {
+ setState(482);
+ match(T__3);
+ setState(483);
+ callArgument();
+ }
+ }
+ setState(488);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ }
+ }
+ }
+
+ setState(491);
+ match(T__2);
+ }
+ break;
+ case 27:
+ _localctx = new CreateRoleContext(_localctx);
+ enterOuterAlt(_localctx, 27);
+ {
+ setState(493);
+ match(CREATE);
+ setState(494);
+ match(ROLE);
+ setState(495);
+ ((CreateRoleContext)_localctx).name = identifier();
+ setState(499);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==WITH) {
+ {
+ setState(496);
+ match(WITH);
+ setState(497);
+ match(ADMIN);
+ setState(498);
+ grantor();
+ }
+ }
+
+ }
+ break;
+ case 28:
+ _localctx = new DropRoleContext(_localctx);
+ enterOuterAlt(_localctx, 28);
+ {
+ setState(501);
+ match(DROP);
+ setState(502);
+ match(ROLE);
+ setState(503);
+ ((DropRoleContext)_localctx).name = identifier();
+ }
+ break;
+ case 29:
+ _localctx = new GrantRolesContext(_localctx);
+ enterOuterAlt(_localctx, 29);
+ {
+ setState(504);
+ match(GRANT);
+ setState(505);
+ roles();
+ setState(506);
+ match(TO);
+ setState(507);
+ principal();
+ setState(512);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ while (_la==T__3) {
+ {
+ {
+ setState(508);
+ match(T__3);
+ setState(509);
+ principal();
+ }
+ }
+ setState(514);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ }
+ setState(518);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==WITH) {
+ {
+ setState(515);
+ match(WITH);
+ setState(516);
+ match(ADMIN);
+ setState(517);
+ match(OPTION);
+ }
+ }
+
+ setState(523);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==GRANTED) {
+ {
+ setState(520);
+ match(GRANTED);
+ setState(521);
+ match(BY);
+ setState(522);
+ grantor();
+ }
+ }
+
+ }
+ break;
+ case 30:
+ _localctx = new RevokeRolesContext(_localctx);
+ enterOuterAlt(_localctx, 30);
+ {
+ setState(525);
+ match(REVOKE);
+ setState(529);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,51,_ctx) ) {
+ case 1:
+ {
+ setState(526);
+ match(ADMIN);
+ setState(527);
+ match(OPTION);
+ setState(528);
+ match(FOR);
+ }
+ break;
+ }
+ setState(531);
+ roles();
+ setState(532);
+ match(FROM);
+ setState(533);
+ principal();
+ setState(538);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ while (_la==T__3) {
+ {
+ {
+ setState(534);
+ match(T__3);
+ setState(535);
+ principal();
+ }
+ }
+ setState(540);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ }
+ setState(544);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==GRANTED) {
+ {
+ setState(541);
+ match(GRANTED);
+ setState(542);
+ match(BY);
+ setState(543);
+ grantor();
+ }
+ }
+
+ }
+ break;
+ case 31:
+ _localctx = new SetRoleContext(_localctx);
+ enterOuterAlt(_localctx, 31);
+ {
+ setState(546);
+ match(SET);
+ setState(547);
+ match(ROLE);
+ setState(551);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,54,_ctx) ) {
+ case 1:
+ {
+ setState(548);
+ match(ALL);
+ }
+ break;
+ case 2:
+ {
+ setState(549);
+ match(NONE);
+ }
+ break;
+ case 3:
+ {
+ setState(550);
+ ((SetRoleContext)_localctx).role = identifier();
+ }
+ break;
+ }
+ }
+ break;
+ case 32:
+ _localctx = new GrantContext(_localctx);
+ enterOuterAlt(_localctx, 32);
+ {
+ setState(553);
+ match(GRANT);
+ setState(564);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,56,_ctx) ) {
+ case 1:
+ {
+ setState(554);
+ privilege();
+ setState(559);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ while (_la==T__3) {
+ {
+ {
+ setState(555);
+ match(T__3);
+ setState(556);
+ privilege();
+ }
+ }
+ setState(561);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ }
+ }
+ break;
+ case 2:
+ {
+ setState(562);
+ match(ALL);
+ setState(563);
+ match(PRIVILEGES);
+ }
+ break;
+ }
+ setState(566);
+ match(ON);
+ setState(568);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==TABLE) {
+ {
+ setState(567);
+ match(TABLE);
+ }
+ }
+
+ setState(570);
+ qualifiedName();
+ setState(571);
+ match(TO);
+ setState(572);
+ ((GrantContext)_localctx).grantee = principal();
+ setState(576);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==WITH) {
+ {
+ setState(573);
+ match(WITH);
+ setState(574);
+ match(GRANT);
+ setState(575);
+ match(OPTION);
+ }
+ }
+
+ }
+ break;
+ case 33:
+ _localctx = new RevokeContext(_localctx);
+ enterOuterAlt(_localctx, 33);
+ {
+ setState(578);
+ match(REVOKE);
+ setState(582);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,59,_ctx) ) {
+ case 1:
+ {
+ setState(579);
+ match(GRANT);
+ setState(580);
+ match(OPTION);
+ setState(581);
+ match(FOR);
+ }
+ break;
+ }
+ setState(594);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,61,_ctx) ) {
+ case 1:
+ {
+ setState(584);
+ privilege();
+ setState(589);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ while (_la==T__3) {
+ {
+ {
+ setState(585);
+ match(T__3);
+ setState(586);
+ privilege();
+ }
+ }
+ setState(591);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ }
+ }
+ break;
+ case 2:
+ {
+ setState(592);
+ match(ALL);
+ setState(593);
+ match(PRIVILEGES);
+ }
+ break;
+ }
+ setState(596);
+ match(ON);
+ setState(598);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==TABLE) {
+ {
+ setState(597);
+ match(TABLE);
+ }
+ }
+
+ setState(600);
+ qualifiedName();
+ setState(601);
+ match(FROM);
+ setState(602);
+ ((RevokeContext)_localctx).grantee = principal();
+ }
+ break;
+ case 34:
+ _localctx = new ShowGrantsContext(_localctx);
+ enterOuterAlt(_localctx, 34);
+ {
+ setState(604);
+ match(SHOW);
+ setState(605);
+ match(GRANTS);
+ setState(611);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==ON) {
+ {
+ setState(606);
+ match(ON);
+ setState(608);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==TABLE) {
+ {
+ setState(607);
+ match(TABLE);
+ }
+ }
+
+ setState(610);
+ qualifiedName();
+ }
+ }
+
+ }
+ break;
+ case 35:
+ _localctx = new ExplainContext(_localctx);
+ enterOuterAlt(_localctx, 35);
+ {
+ setState(613);
+ match(EXPLAIN);
+ setState(615);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,65,_ctx) ) {
+ case 1:
+ {
+ setState(614);
+ match(ANALYZE);
+ }
+ break;
+ }
+ setState(618);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==VERBOSE) {
+ {
+ setState(617);
+ match(VERBOSE);
+ }
+ }
+
+ setState(631);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,68,_ctx) ) {
+ case 1:
+ {
+ setState(620);
+ match(T__1);
+ setState(621);
+ explainOption();
+ setState(626);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ while (_la==T__3) {
+ {
+ {
+ setState(622);
+ match(T__3);
+ setState(623);
+ explainOption();
+ }
+ }
+ setState(628);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ }
+ setState(629);
+ match(T__2);
+ }
+ break;
+ }
+ setState(633);
+ statement();
+ }
+ break;
+ case 36:
+ _localctx = new ShowCreateTableContext(_localctx);
+ enterOuterAlt(_localctx, 36);
+ {
+ setState(634);
+ match(SHOW);
+ setState(635);
+ match(CREATE);
+ setState(636);
+ match(TABLE);
+ setState(637);
+ qualifiedName();
+ }
+ break;
+ case 37:
+ _localctx = new ShowCreateViewContext(_localctx);
+ enterOuterAlt(_localctx, 37);
+ {
+ setState(638);
+ match(SHOW);
+ setState(639);
+ match(CREATE);
+ setState(640);
+ match(VIEW);
+ setState(641);
+ qualifiedName();
+ }
+ break;
+ case 38:
+ _localctx = new ShowCreateMaterializedViewContext(_localctx);
+ enterOuterAlt(_localctx, 38);
+ {
+ setState(642);
+ match(SHOW);
+ setState(643);
+ match(CREATE);
+ setState(644);
+ match(MATERIALIZED);
+ setState(645);
+ match(VIEW);
+ setState(646);
+ qualifiedName();
+ }
+ break;
+ case 39:
+ _localctx = new ShowCreateFunctionContext(_localctx);
+ enterOuterAlt(_localctx, 39);
+ {
+ setState(647);
+ match(SHOW);
+ setState(648);
+ match(CREATE);
+ setState(649);
+ match(FUNCTION);
+ setState(650);
+ qualifiedName();
+ setState(652);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==T__1) {
+ {
+ setState(651);
+ types();
+ }
+ }
+
+ }
+ break;
+ case 40:
+ _localctx = new ShowTablesContext(_localctx);
+ enterOuterAlt(_localctx, 40);
+ {
+ setState(654);
+ match(SHOW);
+ setState(655);
+ match(TABLES);
+ setState(658);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==FROM || _la==IN) {
+ {
+ setState(656);
+ _la = _input.LA(1);
+ if ( !(_la==FROM || _la==IN) ) {
+ _errHandler.recoverInline(this);
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
+ consume();
+ }
+ setState(657);
+ qualifiedName();
+ }
+ }
+
+ setState(666);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==LIKE) {
+ {
+ setState(660);
+ match(LIKE);
+ setState(661);
+ ((ShowTablesContext)_localctx).pattern = string();
+ setState(664);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==ESCAPE) {
+ {
+ setState(662);
+ match(ESCAPE);
+ setState(663);
+ ((ShowTablesContext)_localctx).escape = string();
+ }
+ }
+
+ }
+ }
+
+ }
+ break;
+ case 41:
+ _localctx = new ShowSchemasContext(_localctx);
+ enterOuterAlt(_localctx, 41);
+ {
+ setState(668);
+ match(SHOW);
+ setState(669);
+ match(SCHEMAS);
+ setState(672);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==FROM || _la==IN) {
+ {
+ setState(670);
+ _la = _input.LA(1);
+ if ( !(_la==FROM || _la==IN) ) {
+ _errHandler.recoverInline(this);
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
+ consume();
+ }
+ setState(671);
+ identifier();
+ }
+ }
+
+ setState(680);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==LIKE) {
+ {
+ setState(674);
+ match(LIKE);
+ setState(675);
+ ((ShowSchemasContext)_localctx).pattern = string();
+ setState(678);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==ESCAPE) {
+ {
+ setState(676);
+ match(ESCAPE);
+ setState(677);
+ ((ShowSchemasContext)_localctx).escape = string();
+ }
+ }
+
+ }
+ }
+
+ }
+ break;
+ case 42:
+ _localctx = new ShowCatalogsContext(_localctx);
+ enterOuterAlt(_localctx, 42);
+ {
+ setState(682);
+ match(SHOW);
+ setState(683);
+ match(CATALOGS);
+ setState(686);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==LIKE) {
+ {
+ setState(684);
+ match(LIKE);
+ setState(685);
+ ((ShowCatalogsContext)_localctx).pattern = string();
+ }
+ }
+
+ }
+ break;
+ case 43:
+ _localctx = new ShowColumnsContext(_localctx);
+ enterOuterAlt(_localctx, 43);
+ {
+ setState(688);
+ match(SHOW);
+ setState(689);
+ match(COLUMNS);
+ setState(690);
+ _la = _input.LA(1);
+ if ( !(_la==FROM || _la==IN) ) {
+ _errHandler.recoverInline(this);
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
+ consume();
+ }
+ setState(691);
+ qualifiedName();
+ }
+ break;
+ case 44:
+ _localctx = new ShowStatsContext(_localctx);
+ enterOuterAlt(_localctx, 44);
+ {
+ setState(692);
+ match(SHOW);
+ setState(693);
+ match(STATS);
+ setState(694);
+ match(FOR);
+ setState(695);
+ qualifiedName();
+ }
+ break;
+ case 45:
+ _localctx = new ShowStatsForQueryContext(_localctx);
+ enterOuterAlt(_localctx, 45);
+ {
+ setState(696);
+ match(SHOW);
+ setState(697);
+ match(STATS);
+ setState(698);
+ match(FOR);
+ setState(699);
+ match(T__1);
+ setState(700);
+ querySpecification();
+ setState(701);
+ match(T__2);
+ }
+ break;
+ case 46:
+ _localctx = new ShowRolesContext(_localctx);
+ enterOuterAlt(_localctx, 46);
+ {
+ setState(703);
+ match(SHOW);
+ setState(705);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==CURRENT) {
+ {
+ setState(704);
+ match(CURRENT);
+ }
+ }
+
+ setState(707);
+ match(ROLES);
+ setState(710);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==FROM || _la==IN) {
+ {
+ setState(708);
+ _la = _input.LA(1);
+ if ( !(_la==FROM || _la==IN) ) {
+ _errHandler.recoverInline(this);
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
+ consume();
+ }
+ setState(709);
+ identifier();
+ }
+ }
+
+ }
+ break;
+ case 47:
+ _localctx = new ShowRoleGrantsContext(_localctx);
+ enterOuterAlt(_localctx, 47);
+ {
+ setState(712);
+ match(SHOW);
+ setState(713);
+ match(ROLE);
+ setState(714);
+ match(GRANTS);
+ setState(717);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==FROM || _la==IN) {
+ {
+ setState(715);
+ _la = _input.LA(1);
+ if ( !(_la==FROM || _la==IN) ) {
+ _errHandler.recoverInline(this);
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
+ consume();
+ }
+ setState(716);
+ identifier();
+ }
+ }
+
+ }
+ break;
+ case 48:
+ _localctx = new ShowColumnsContext(_localctx);
+ enterOuterAlt(_localctx, 48);
+ {
+ setState(719);
+ match(DESCRIBE);
+ setState(720);
+ qualifiedName();
+ }
+ break;
+ case 49:
+ _localctx = new ShowColumnsContext(_localctx);
+ enterOuterAlt(_localctx, 49);
+ {
+ setState(721);
+ match(DESC);
+ setState(722);
+ qualifiedName();
+ }
+ break;
+ case 50:
+ _localctx = new ShowFunctionsContext(_localctx);
+ enterOuterAlt(_localctx, 50);
+ {
+ setState(723);
+ match(SHOW);
+ setState(724);
+ match(FUNCTIONS);
+ setState(731);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==LIKE) {
+ {
+ setState(725);
+ match(LIKE);
+ setState(726);
+ ((ShowFunctionsContext)_localctx).pattern = string();
+ setState(729);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==ESCAPE) {
+ {
+ setState(727);
+ match(ESCAPE);
+ setState(728);
+ ((ShowFunctionsContext)_localctx).escape = string();
+ }
+ }
+
+ }
+ }
+
+ }
+ break;
+ case 51:
+ _localctx = new ShowSessionContext(_localctx);
+ enterOuterAlt(_localctx, 51);
+ {
+ setState(733);
+ match(SHOW);
+ setState(734);
+ match(SESSION);
+ }
+ break;
+ case 52:
+ _localctx = new SetSessionContext(_localctx);
+ enterOuterAlt(_localctx, 52);
+ {
+ setState(735);
+ match(SET);
+ setState(736);
+ match(SESSION);
+ setState(737);
+ qualifiedName();
+ setState(738);
+ match(EQ);
+ setState(739);
+ expression();
+ }
+ break;
+ case 53:
+ _localctx = new ResetSessionContext(_localctx);
+ enterOuterAlt(_localctx, 53);
+ {
+ setState(741);
+ match(RESET);
+ setState(742);
+ match(SESSION);
+ setState(743);
+ qualifiedName();
+ }
+ break;
+ case 54:
+ _localctx = new StartTransactionContext(_localctx);
+ enterOuterAlt(_localctx, 54);
+ {
+ setState(744);
+ match(START);
+ setState(745);
+ match(TRANSACTION);
+ setState(754);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==ISOLATION || _la==READ) {
+ {
+ setState(746);
+ transactionMode();
+ setState(751);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ while (_la==T__3) {
+ {
+ {
+ setState(747);
+ match(T__3);
+ setState(748);
+ transactionMode();
+ }
+ }
+ setState(753);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ }
+ }
+ }
+
+ }
+ break;
+ case 55:
+ _localctx = new CommitContext(_localctx);
+ enterOuterAlt(_localctx, 55);
+ {
+ setState(756);
+ match(COMMIT);
+ setState(758);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==WORK) {
+ {
+ setState(757);
+ match(WORK);
+ }
+ }
+
+ }
+ break;
+ case 56:
+ _localctx = new RollbackContext(_localctx);
+ enterOuterAlt(_localctx, 56);
+ {
+ setState(760);
+ match(ROLLBACK);
+ setState(762);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==WORK) {
+ {
+ setState(761);
+ match(WORK);
+ }
+ }
+
+ }
+ break;
+ case 57:
+ _localctx = new PrepareContext(_localctx);
+ enterOuterAlt(_localctx, 57);
+ {
+ setState(764);
+ match(PREPARE);
+ setState(765);
+ identifier();
+ setState(766);
+ match(FROM);
+ setState(767);
+ statement();
+ }
+ break;
+ case 58:
+ _localctx = new DeallocateContext(_localctx);
+ enterOuterAlt(_localctx, 58);
+ {
+ setState(769);
+ match(DEALLOCATE);
+ setState(770);
+ match(PREPARE);
+ setState(771);
+ identifier();
+ }
+ break;
+ case 59:
+ _localctx = new ExecuteContext(_localctx);
+ enterOuterAlt(_localctx, 59);
+ {
+ setState(772);
+ match(EXECUTE);
+ setState(773);
+ identifier();
+ setState(783);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==USING) {
+ {
+ setState(774);
+ match(USING);
+ setState(775);
+ expression();
+ setState(780);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ while (_la==T__3) {
+ {
+ {
+ setState(776);
+ match(T__3);
+ setState(777);
+ expression();
+ }
+ }
+ setState(782);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ }
+ }
+ }
+
+ }
+ break;
+ case 60:
+ _localctx = new DescribeInputContext(_localctx);
+ enterOuterAlt(_localctx, 60);
+ {
+ setState(785);
+ match(DESCRIBE);
+ setState(786);
+ match(INPUT);
+ setState(787);
+ identifier();
+ }
+ break;
+ case 61:
+ _localctx = new DescribeOutputContext(_localctx);
+ enterOuterAlt(_localctx, 61);
+ {
+ setState(788);
+ match(DESCRIBE);
+ setState(789);
+ match(OUTPUT);
+ setState(790);
+ identifier();
+ }
+ break;
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class QueryContext extends ParserRuleContext {
+ public QueryNoWithContext queryNoWith() {
+ return getRuleContext(QueryNoWithContext.class,0);
+ }
+ public WithContext with() {
+ return getRuleContext(WithContext.class,0);
+ }
+ public QueryContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_query; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterQuery(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitQuery(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitQuery(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final QueryContext query() throws RecognitionException {
+ QueryContext _localctx = new QueryContext(_ctx, getState());
+ enterRule(_localctx, 8, RULE_query);
+ int _la;
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(794);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==WITH) {
+ {
+ setState(793);
+ with();
+ }
+ }
+
+ setState(796);
+ queryNoWith();
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class WithContext extends ParserRuleContext {
+ public TerminalNode WITH() { return getToken(PrestoSqlParser.WITH, 0); }
+ public List namedQuery() {
+ return getRuleContexts(NamedQueryContext.class);
+ }
+ public NamedQueryContext namedQuery(int i) {
+ return getRuleContext(NamedQueryContext.class,i);
+ }
+ public TerminalNode RECURSIVE() { return getToken(PrestoSqlParser.RECURSIVE, 0); }
+ public WithContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_with; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterWith(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitWith(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitWith(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final WithContext with() throws RecognitionException {
+ WithContext _localctx = new WithContext(_ctx, getState());
+ enterRule(_localctx, 10, RULE_with);
+ int _la;
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(798);
+ match(WITH);
+ setState(800);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==RECURSIVE) {
+ {
+ setState(799);
+ match(RECURSIVE);
+ }
+ }
+
+ setState(802);
+ namedQuery();
+ setState(807);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ while (_la==T__3) {
+ {
+ {
+ setState(803);
+ match(T__3);
+ setState(804);
+ namedQuery();
+ }
+ }
+ setState(809);
+ _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 TableElementContext extends ParserRuleContext {
+ public ColumnDefinitionContext columnDefinition() {
+ return getRuleContext(ColumnDefinitionContext.class,0);
+ }
+ public LikeClauseContext likeClause() {
+ return getRuleContext(LikeClauseContext.class,0);
+ }
+ public TableElementContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_tableElement; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterTableElement(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitTableElement(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitTableElement(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final TableElementContext tableElement() throws RecognitionException {
+ TableElementContext _localctx = new TableElementContext(_ctx, getState());
+ enterRule(_localctx, 12, RULE_tableElement);
+ try {
+ setState(812);
+ _errHandler.sync(this);
+ switch (_input.LA(1)) {
+ case ADD:
+ case ADMIN:
+ case ALL:
+ case ANALYZE:
+ case ANY:
+ case ARRAY:
+ case ASC:
+ case AT:
+ case BERNOULLI:
+ case CALL:
+ case CALLED:
+ case CASCADE:
+ case CATALOGS:
+ case COLUMN:
+ case COLUMNS:
+ case COMMENT:
+ case COMMIT:
+ case COMMITTED:
+ case CURRENT:
+ case CURRENT_ROLE:
+ case DATA:
+ case DATE:
+ case DAY:
+ case DEFINER:
+ case DESC:
+ case DETERMINISTIC:
+ case DISTRIBUTED:
+ case EXCLUDING:
+ case EXPLAIN:
+ case EXTERNAL:
+ case FILTER:
+ case FIRST:
+ case FOLLOWING:
+ case FORMAT:
+ case FUNCTION:
+ case FUNCTIONS:
+ case GRANT:
+ case GRANTED:
+ case GRANTS:
+ case GRAPHVIZ:
+ case HOUR:
+ case IF:
+ case IGNORE:
+ case INCLUDING:
+ case INPUT:
+ case INTERVAL:
+ case INVOKER:
+ case IO:
+ case ISOLATION:
+ case JSON:
+ case LANGUAGE:
+ case LAST:
+ case LATERAL:
+ case LEVEL:
+ case LIMIT:
+ case LOGICAL:
+ case MAP:
+ case MATERIALIZED:
+ case MINUTE:
+ case MONTH:
+ case NAME:
+ case NFC:
+ case NFD:
+ case NFKC:
+ case NFKD:
+ case NO:
+ case NONE:
+ case NULLIF:
+ case NULLS:
+ case OFFSET:
+ case ONLY:
+ case OPTION:
+ case ORDINALITY:
+ case OUTPUT:
+ case OVER:
+ case PARTITION:
+ case PARTITIONS:
+ case POSITION:
+ case PRECEDING:
+ case PRIVILEGES:
+ case PROPERTIES:
+ case RANGE:
+ case READ:
+ case REFRESH:
+ case RENAME:
+ case REPEATABLE:
+ case REPLACE:
+ case RESET:
+ case RESPECT:
+ case RESTRICT:
+ case RETURN:
+ case RETURNS:
+ case REVOKE:
+ case ROLE:
+ case ROLES:
+ case ROLLBACK:
+ case ROW:
+ case ROWS:
+ case SCHEMA:
+ case SCHEMAS:
+ case SECOND:
+ case SECURITY:
+ case SERIALIZABLE:
+ case SESSION:
+ case SET:
+ case SETS:
+ case SHOW:
+ case SOME:
+ case SQL:
+ case START:
+ case STATS:
+ case SUBSTRING:
+ case SYSTEM:
+ case TABLES:
+ case TABLESAMPLE:
+ case TEMPORARY:
+ case TEXT:
+ case TIME:
+ case TIMESTAMP:
+ case TO:
+ case TRANSACTION:
+ case TRY_CAST:
+ case TYPE:
+ case UNBOUNDED:
+ case UNCOMMITTED:
+ case USE:
+ case USER:
+ case VALIDATE:
+ case VERBOSE:
+ case VIEW:
+ case WORK:
+ case WRITE:
+ case YEAR:
+ case ZONE:
+ case IDENTIFIER:
+ case DIGIT_IDENTIFIER:
+ case QUOTED_IDENTIFIER:
+ case BACKQUOTED_IDENTIFIER:
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(810);
+ columnDefinition();
+ }
+ break;
+ case LIKE:
+ enterOuterAlt(_localctx, 2);
+ {
+ setState(811);
+ likeClause();
+ }
+ 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 ColumnDefinitionContext extends ParserRuleContext {
+ public IdentifierContext identifier() {
+ return getRuleContext(IdentifierContext.class,0);
+ }
+ public TypeContext type() {
+ return getRuleContext(TypeContext.class,0);
+ }
+ public TerminalNode NOT() { return getToken(PrestoSqlParser.NOT, 0); }
+ public TerminalNode NULL() { return getToken(PrestoSqlParser.NULL, 0); }
+ public TerminalNode COMMENT() { return getToken(PrestoSqlParser.COMMENT, 0); }
+ public StringContext string() {
+ return getRuleContext(StringContext.class,0);
+ }
+ public TerminalNode WITH() { return getToken(PrestoSqlParser.WITH, 0); }
+ public PropertiesContext properties() {
+ return getRuleContext(PropertiesContext.class,0);
+ }
+ public ColumnDefinitionContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_columnDefinition; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterColumnDefinition(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitColumnDefinition(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitColumnDefinition(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final ColumnDefinitionContext columnDefinition() throws RecognitionException {
+ ColumnDefinitionContext _localctx = new ColumnDefinitionContext(_ctx, getState());
+ enterRule(_localctx, 14, RULE_columnDefinition);
+ int _la;
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(814);
+ identifier();
+ setState(815);
+ type(0);
+ setState(818);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==NOT) {
+ {
+ setState(816);
+ match(NOT);
+ setState(817);
+ match(NULL);
+ }
+ }
+
+ setState(822);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==COMMENT) {
+ {
+ setState(820);
+ match(COMMENT);
+ setState(821);
+ string();
+ }
+ }
+
+ setState(826);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==WITH) {
+ {
+ setState(824);
+ match(WITH);
+ setState(825);
+ properties();
+ }
+ }
+
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class LikeClauseContext extends ParserRuleContext {
+ public Token optionType;
+ public TerminalNode LIKE() { return getToken(PrestoSqlParser.LIKE, 0); }
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public TerminalNode PROPERTIES() { return getToken(PrestoSqlParser.PROPERTIES, 0); }
+ public TerminalNode INCLUDING() { return getToken(PrestoSqlParser.INCLUDING, 0); }
+ public TerminalNode EXCLUDING() { return getToken(PrestoSqlParser.EXCLUDING, 0); }
+ public LikeClauseContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_likeClause; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterLikeClause(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitLikeClause(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitLikeClause(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final LikeClauseContext likeClause() throws RecognitionException {
+ LikeClauseContext _localctx = new LikeClauseContext(_ctx, getState());
+ enterRule(_localctx, 16, RULE_likeClause);
+ int _la;
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(828);
+ match(LIKE);
+ setState(829);
+ qualifiedName();
+ setState(832);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==EXCLUDING || _la==INCLUDING) {
+ {
+ setState(830);
+ ((LikeClauseContext)_localctx).optionType = _input.LT(1);
+ _la = _input.LA(1);
+ if ( !(_la==EXCLUDING || _la==INCLUDING) ) {
+ ((LikeClauseContext)_localctx).optionType = (Token)_errHandler.recoverInline(this);
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
+ consume();
+ }
+ setState(831);
+ match(PROPERTIES);
+ }
+ }
+
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class PropertiesContext extends ParserRuleContext {
+ public List property() {
+ return getRuleContexts(PropertyContext.class);
+ }
+ public PropertyContext property(int i) {
+ return getRuleContext(PropertyContext.class,i);
+ }
+ public PropertiesContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_properties; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterProperties(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitProperties(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitProperties(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final PropertiesContext properties() throws RecognitionException {
+ PropertiesContext _localctx = new PropertiesContext(_ctx, getState());
+ enterRule(_localctx, 18, RULE_properties);
+ int _la;
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(834);
+ match(T__1);
+ setState(835);
+ property();
+ setState(840);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ while (_la==T__3) {
+ {
+ {
+ setState(836);
+ match(T__3);
+ setState(837);
+ property();
+ }
+ }
+ setState(842);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ }
+ setState(843);
+ match(T__2);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class PropertyContext extends ParserRuleContext {
+ public IdentifierContext identifier() {
+ return getRuleContext(IdentifierContext.class,0);
+ }
+ public TerminalNode EQ() { return getToken(PrestoSqlParser.EQ, 0); }
+ public ExpressionContext expression() {
+ return getRuleContext(ExpressionContext.class,0);
+ }
+ public PropertyContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_property; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterProperty(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitProperty(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitProperty(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final PropertyContext property() throws RecognitionException {
+ PropertyContext _localctx = new PropertyContext(_ctx, getState());
+ enterRule(_localctx, 20, RULE_property);
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(845);
+ identifier();
+ setState(846);
+ match(EQ);
+ setState(847);
+ expression();
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class SqlParameterDeclarationContext extends ParserRuleContext {
+ public IdentifierContext identifier() {
+ return getRuleContext(IdentifierContext.class,0);
+ }
+ public TypeContext type() {
+ return getRuleContext(TypeContext.class,0);
+ }
+ public SqlParameterDeclarationContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_sqlParameterDeclaration; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSqlParameterDeclaration(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSqlParameterDeclaration(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitSqlParameterDeclaration(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final SqlParameterDeclarationContext sqlParameterDeclaration() throws RecognitionException {
+ SqlParameterDeclarationContext _localctx = new SqlParameterDeclarationContext(_ctx, getState());
+ enterRule(_localctx, 22, RULE_sqlParameterDeclaration);
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(849);
+ identifier();
+ setState(850);
+ type(0);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class RoutineCharacteristicsContext extends ParserRuleContext {
+ public List routineCharacteristic() {
+ return getRuleContexts(RoutineCharacteristicContext.class);
+ }
+ public RoutineCharacteristicContext routineCharacteristic(int i) {
+ return getRuleContext(RoutineCharacteristicContext.class,i);
+ }
+ public RoutineCharacteristicsContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_routineCharacteristics; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterRoutineCharacteristics(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitRoutineCharacteristics(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitRoutineCharacteristics(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final RoutineCharacteristicsContext routineCharacteristics() throws RecognitionException {
+ RoutineCharacteristicsContext _localctx = new RoutineCharacteristicsContext(_ctx, getState());
+ enterRule(_localctx, 24, RULE_routineCharacteristics);
+ int _la;
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(855);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ while (_la==CALLED || _la==DETERMINISTIC || ((((_la - 101)) & ~0x3f) == 0 && ((1L << (_la - 101)) & ((1L << (LANGUAGE - 101)) | (1L << (NOT - 101)) | (1L << (RETURNS - 101)))) != 0)) {
+ {
+ {
+ setState(852);
+ routineCharacteristic();
+ }
+ }
+ setState(857);
+ _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 RoutineCharacteristicContext extends ParserRuleContext {
+ public TerminalNode LANGUAGE() { return getToken(PrestoSqlParser.LANGUAGE, 0); }
+ public LanguageContext language() {
+ return getRuleContext(LanguageContext.class,0);
+ }
+ public DeterminismContext determinism() {
+ return getRuleContext(DeterminismContext.class,0);
+ }
+ public NullCallClauseContext nullCallClause() {
+ return getRuleContext(NullCallClauseContext.class,0);
+ }
+ public RoutineCharacteristicContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_routineCharacteristic; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterRoutineCharacteristic(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitRoutineCharacteristic(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitRoutineCharacteristic(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final RoutineCharacteristicContext routineCharacteristic() throws RecognitionException {
+ RoutineCharacteristicContext _localctx = new RoutineCharacteristicContext(_ctx, getState());
+ enterRule(_localctx, 26, RULE_routineCharacteristic);
+ try {
+ setState(862);
+ _errHandler.sync(this);
+ switch (_input.LA(1)) {
+ case LANGUAGE:
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(858);
+ match(LANGUAGE);
+ setState(859);
+ language();
+ }
+ break;
+ case DETERMINISTIC:
+ case NOT:
+ enterOuterAlt(_localctx, 2);
+ {
+ setState(860);
+ determinism();
+ }
+ break;
+ case CALLED:
+ case RETURNS:
+ enterOuterAlt(_localctx, 3);
+ {
+ setState(861);
+ nullCallClause();
+ }
+ 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 AlterRoutineCharacteristicsContext extends ParserRuleContext {
+ public List alterRoutineCharacteristic() {
+ return getRuleContexts(AlterRoutineCharacteristicContext.class);
+ }
+ public AlterRoutineCharacteristicContext alterRoutineCharacteristic(int i) {
+ return getRuleContext(AlterRoutineCharacteristicContext.class,i);
+ }
+ public AlterRoutineCharacteristicsContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_alterRoutineCharacteristics; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterAlterRoutineCharacteristics(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitAlterRoutineCharacteristics(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitAlterRoutineCharacteristics(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final AlterRoutineCharacteristicsContext alterRoutineCharacteristics() throws RecognitionException {
+ AlterRoutineCharacteristicsContext _localctx = new AlterRoutineCharacteristicsContext(_ctx, getState());
+ enterRule(_localctx, 28, RULE_alterRoutineCharacteristics);
+ int _la;
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(867);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ while (_la==CALLED || _la==RETURNS) {
+ {
+ {
+ setState(864);
+ alterRoutineCharacteristic();
+ }
+ }
+ setState(869);
+ _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 AlterRoutineCharacteristicContext extends ParserRuleContext {
+ public NullCallClauseContext nullCallClause() {
+ return getRuleContext(NullCallClauseContext.class,0);
+ }
+ public AlterRoutineCharacteristicContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_alterRoutineCharacteristic; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterAlterRoutineCharacteristic(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitAlterRoutineCharacteristic(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitAlterRoutineCharacteristic(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final AlterRoutineCharacteristicContext alterRoutineCharacteristic() throws RecognitionException {
+ AlterRoutineCharacteristicContext _localctx = new AlterRoutineCharacteristicContext(_ctx, getState());
+ enterRule(_localctx, 30, RULE_alterRoutineCharacteristic);
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(870);
+ nullCallClause();
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class RoutineBodyContext extends ParserRuleContext {
+ public ReturnStatementContext returnStatement() {
+ return getRuleContext(ReturnStatementContext.class,0);
+ }
+ public ExternalBodyReferenceContext externalBodyReference() {
+ return getRuleContext(ExternalBodyReferenceContext.class,0);
+ }
+ public RoutineBodyContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_routineBody; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterRoutineBody(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitRoutineBody(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitRoutineBody(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final RoutineBodyContext routineBody() throws RecognitionException {
+ RoutineBodyContext _localctx = new RoutineBodyContext(_ctx, getState());
+ enterRule(_localctx, 32, RULE_routineBody);
+ try {
+ setState(874);
+ _errHandler.sync(this);
+ switch (_input.LA(1)) {
+ case RETURN:
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(872);
+ returnStatement();
+ }
+ break;
+ case EXTERNAL:
+ enterOuterAlt(_localctx, 2);
+ {
+ setState(873);
+ externalBodyReference();
+ }
+ 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 ReturnStatementContext extends ParserRuleContext {
+ public TerminalNode RETURN() { return getToken(PrestoSqlParser.RETURN, 0); }
+ public ExpressionContext expression() {
+ return getRuleContext(ExpressionContext.class,0);
+ }
+ public ReturnStatementContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_returnStatement; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterReturnStatement(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitReturnStatement(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitReturnStatement(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final ReturnStatementContext returnStatement() throws RecognitionException {
+ ReturnStatementContext _localctx = new ReturnStatementContext(_ctx, getState());
+ enterRule(_localctx, 34, RULE_returnStatement);
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(876);
+ match(RETURN);
+ setState(877);
+ expression();
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class ExternalBodyReferenceContext extends ParserRuleContext {
+ public TerminalNode EXTERNAL() { return getToken(PrestoSqlParser.EXTERNAL, 0); }
+ public TerminalNode NAME() { return getToken(PrestoSqlParser.NAME, 0); }
+ public ExternalRoutineNameContext externalRoutineName() {
+ return getRuleContext(ExternalRoutineNameContext.class,0);
+ }
+ public ExternalBodyReferenceContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_externalBodyReference; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterExternalBodyReference(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitExternalBodyReference(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitExternalBodyReference(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final ExternalBodyReferenceContext externalBodyReference() throws RecognitionException {
+ ExternalBodyReferenceContext _localctx = new ExternalBodyReferenceContext(_ctx, getState());
+ enterRule(_localctx, 36, RULE_externalBodyReference);
+ int _la;
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(879);
+ match(EXTERNAL);
+ setState(882);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==NAME) {
+ {
+ setState(880);
+ match(NAME);
+ setState(881);
+ externalRoutineName();
+ }
+ }
+
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class LanguageContext extends ParserRuleContext {
+ public TerminalNode SQL() { return getToken(PrestoSqlParser.SQL, 0); }
+ public IdentifierContext identifier() {
+ return getRuleContext(IdentifierContext.class,0);
+ }
+ public LanguageContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_language; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterLanguage(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitLanguage(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitLanguage(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final LanguageContext language() throws RecognitionException {
+ LanguageContext _localctx = new LanguageContext(_ctx, getState());
+ enterRule(_localctx, 38, RULE_language);
+ try {
+ setState(886);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,103,_ctx) ) {
+ case 1:
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(884);
+ match(SQL);
+ }
+ break;
+ case 2:
+ enterOuterAlt(_localctx, 2);
+ {
+ setState(885);
+ identifier();
+ }
+ break;
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class DeterminismContext extends ParserRuleContext {
+ public TerminalNode DETERMINISTIC() { return getToken(PrestoSqlParser.DETERMINISTIC, 0); }
+ public TerminalNode NOT() { return getToken(PrestoSqlParser.NOT, 0); }
+ public DeterminismContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_determinism; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterDeterminism(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitDeterminism(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitDeterminism(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final DeterminismContext determinism() throws RecognitionException {
+ DeterminismContext _localctx = new DeterminismContext(_ctx, getState());
+ enterRule(_localctx, 40, RULE_determinism);
+ try {
+ setState(891);
+ _errHandler.sync(this);
+ switch (_input.LA(1)) {
+ case DETERMINISTIC:
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(888);
+ match(DETERMINISTIC);
+ }
+ break;
+ case NOT:
+ enterOuterAlt(_localctx, 2);
+ {
+ setState(889);
+ match(NOT);
+ setState(890);
+ match(DETERMINISTIC);
+ }
+ 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 NullCallClauseContext extends ParserRuleContext {
+ public TerminalNode RETURNS() { return getToken(PrestoSqlParser.RETURNS, 0); }
+ public List NULL() { return getTokens(PrestoSqlParser.NULL); }
+ public TerminalNode NULL(int i) {
+ return getToken(PrestoSqlParser.NULL, i);
+ }
+ public TerminalNode ON() { return getToken(PrestoSqlParser.ON, 0); }
+ public TerminalNode INPUT() { return getToken(PrestoSqlParser.INPUT, 0); }
+ public TerminalNode CALLED() { return getToken(PrestoSqlParser.CALLED, 0); }
+ public NullCallClauseContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_nullCallClause; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterNullCallClause(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitNullCallClause(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitNullCallClause(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final NullCallClauseContext nullCallClause() throws RecognitionException {
+ NullCallClauseContext _localctx = new NullCallClauseContext(_ctx, getState());
+ enterRule(_localctx, 42, RULE_nullCallClause);
+ try {
+ setState(902);
+ _errHandler.sync(this);
+ switch (_input.LA(1)) {
+ case RETURNS:
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(893);
+ match(RETURNS);
+ setState(894);
+ match(NULL);
+ setState(895);
+ match(ON);
+ setState(896);
+ match(NULL);
+ setState(897);
+ match(INPUT);
+ }
+ break;
+ case CALLED:
+ enterOuterAlt(_localctx, 2);
+ {
+ setState(898);
+ match(CALLED);
+ setState(899);
+ match(ON);
+ setState(900);
+ match(NULL);
+ setState(901);
+ match(INPUT);
+ }
+ 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 ExternalRoutineNameContext extends ParserRuleContext {
+ public IdentifierContext identifier() {
+ return getRuleContext(IdentifierContext.class,0);
+ }
+ public ExternalRoutineNameContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_externalRoutineName; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterExternalRoutineName(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitExternalRoutineName(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitExternalRoutineName(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final ExternalRoutineNameContext externalRoutineName() throws RecognitionException {
+ ExternalRoutineNameContext _localctx = new ExternalRoutineNameContext(_ctx, getState());
+ enterRule(_localctx, 44, RULE_externalRoutineName);
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(904);
+ identifier();
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class QueryNoWithContext extends ParserRuleContext {
+ public Token offset;
+ public Token limit;
+ public QueryTermContext queryTerm() {
+ return getRuleContext(QueryTermContext.class,0);
+ }
+ public TerminalNode ORDER() { return getToken(PrestoSqlParser.ORDER, 0); }
+ public TerminalNode BY() { return getToken(PrestoSqlParser.BY, 0); }
+ public List sortItem() {
+ return getRuleContexts(SortItemContext.class);
+ }
+ public SortItemContext sortItem(int i) {
+ return getRuleContext(SortItemContext.class,i);
+ }
+ public TerminalNode OFFSET() { return getToken(PrestoSqlParser.OFFSET, 0); }
+ public TerminalNode LIMIT() { return getToken(PrestoSqlParser.LIMIT, 0); }
+ public List INTEGER_VALUE() { return getTokens(PrestoSqlParser.INTEGER_VALUE); }
+ public TerminalNode INTEGER_VALUE(int i) {
+ return getToken(PrestoSqlParser.INTEGER_VALUE, i);
+ }
+ public TerminalNode ALL() { return getToken(PrestoSqlParser.ALL, 0); }
+ public TerminalNode ROW() { return getToken(PrestoSqlParser.ROW, 0); }
+ public TerminalNode ROWS() { return getToken(PrestoSqlParser.ROWS, 0); }
+ public QueryNoWithContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_queryNoWith; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterQueryNoWith(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitQueryNoWith(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitQueryNoWith(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final QueryNoWithContext queryNoWith() throws RecognitionException {
+ QueryNoWithContext _localctx = new QueryNoWithContext(_ctx, getState());
+ enterRule(_localctx, 46, RULE_queryNoWith);
+ int _la;
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(906);
+ queryTerm(0);
+ setState(917);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==ORDER) {
+ {
+ setState(907);
+ match(ORDER);
+ setState(908);
+ match(BY);
+ setState(909);
+ sortItem();
+ setState(914);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ while (_la==T__3) {
+ {
+ {
+ setState(910);
+ match(T__3);
+ setState(911);
+ sortItem();
+ }
+ }
+ setState(916);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ }
+ }
+ }
+
+ setState(924);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==OFFSET) {
+ {
+ setState(919);
+ match(OFFSET);
+ setState(920);
+ ((QueryNoWithContext)_localctx).offset = match(INTEGER_VALUE);
+ setState(922);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==ROW || _la==ROWS) {
+ {
+ setState(921);
+ _la = _input.LA(1);
+ if ( !(_la==ROW || _la==ROWS) ) {
+ _errHandler.recoverInline(this);
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
+ consume();
+ }
+ }
+ }
+
+ }
+ }
+
+ setState(928);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==LIMIT) {
+ {
+ setState(926);
+ match(LIMIT);
+ setState(927);
+ ((QueryNoWithContext)_localctx).limit = _input.LT(1);
+ _la = _input.LA(1);
+ if ( !(_la==ALL || _la==INTEGER_VALUE) ) {
+ ((QueryNoWithContext)_localctx).limit = (Token)_errHandler.recoverInline(this);
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
+ consume();
+ }
+ }
+ }
+
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class QueryTermContext extends ParserRuleContext {
+ public QueryTermContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_queryTerm; }
+
+ public QueryTermContext() { }
+ public void copyFrom(QueryTermContext ctx) {
+ super.copyFrom(ctx);
+ }
+ }
+ public static class QueryTermDefaultContext extends QueryTermContext {
+ public QueryPrimaryContext queryPrimary() {
+ return getRuleContext(QueryPrimaryContext.class,0);
+ }
+ public QueryTermDefaultContext(QueryTermContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterQueryTermDefault(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitQueryTermDefault(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitQueryTermDefault(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class SetOperationContext extends QueryTermContext {
+ public QueryTermContext left;
+ public Token operator;
+ public QueryTermContext right;
+ public List queryTerm() {
+ return getRuleContexts(QueryTermContext.class);
+ }
+ public QueryTermContext queryTerm(int i) {
+ return getRuleContext(QueryTermContext.class,i);
+ }
+ public TerminalNode INTERSECT() { return getToken(PrestoSqlParser.INTERSECT, 0); }
+ public SetQuantifierContext setQuantifier() {
+ return getRuleContext(SetQuantifierContext.class,0);
+ }
+ public TerminalNode UNION() { return getToken(PrestoSqlParser.UNION, 0); }
+ public TerminalNode EXCEPT() { return getToken(PrestoSqlParser.EXCEPT, 0); }
+ public SetOperationContext(QueryTermContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSetOperation(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSetOperation(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitSetOperation(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final QueryTermContext queryTerm() throws RecognitionException {
+ return queryTerm(0);
+ }
+
+ private QueryTermContext queryTerm(int _p) throws RecognitionException {
+ ParserRuleContext _parentctx = _ctx;
+ int _parentState = getState();
+ QueryTermContext _localctx = new QueryTermContext(_ctx, _parentState);
+ QueryTermContext _prevctx = _localctx;
+ int _startState = 48;
+ enterRecursionRule(_localctx, 48, RULE_queryTerm, _p);
+ int _la;
+ try {
+ int _alt;
+ enterOuterAlt(_localctx, 1);
+ {
+ {
+ _localctx = new QueryTermDefaultContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+
+ setState(931);
+ queryPrimary();
+ }
+ _ctx.stop = _input.LT(-1);
+ setState(947);
+ _errHandler.sync(this);
+ _alt = getInterpreter().adaptivePredict(_input,114,_ctx);
+ while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
+ if ( _alt==1 ) {
+ if ( _parseListeners!=null ) triggerExitRuleEvent();
+ _prevctx = _localctx;
+ {
+ setState(945);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,113,_ctx) ) {
+ case 1:
+ {
+ _localctx = new SetOperationContext(new QueryTermContext(_parentctx, _parentState));
+ ((SetOperationContext)_localctx).left = _prevctx;
+ pushNewRecursionContext(_localctx, _startState, RULE_queryTerm);
+ setState(933);
+ if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)");
+ setState(934);
+ ((SetOperationContext)_localctx).operator = match(INTERSECT);
+ setState(936);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==ALL || _la==DISTINCT) {
+ {
+ setState(935);
+ setQuantifier();
+ }
+ }
+
+ setState(938);
+ ((SetOperationContext)_localctx).right = queryTerm(3);
+ }
+ break;
+ case 2:
+ {
+ _localctx = new SetOperationContext(new QueryTermContext(_parentctx, _parentState));
+ ((SetOperationContext)_localctx).left = _prevctx;
+ pushNewRecursionContext(_localctx, _startState, RULE_queryTerm);
+ setState(939);
+ if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)");
+ setState(940);
+ ((SetOperationContext)_localctx).operator = _input.LT(1);
+ _la = _input.LA(1);
+ if ( !(_la==EXCEPT || _la==UNION) ) {
+ ((SetOperationContext)_localctx).operator = (Token)_errHandler.recoverInline(this);
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
+ consume();
+ }
+ setState(942);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==ALL || _la==DISTINCT) {
+ {
+ setState(941);
+ setQuantifier();
+ }
+ }
+
+ setState(944);
+ ((SetOperationContext)_localctx).right = queryTerm(2);
+ }
+ break;
+ }
+ }
+ }
+ setState(949);
+ _errHandler.sync(this);
+ _alt = getInterpreter().adaptivePredict(_input,114,_ctx);
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ unrollRecursionContexts(_parentctx);
+ }
+ return _localctx;
+ }
+
+ public static class QueryPrimaryContext extends ParserRuleContext {
+ public QueryPrimaryContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_queryPrimary; }
+
+ public QueryPrimaryContext() { }
+ public void copyFrom(QueryPrimaryContext ctx) {
+ super.copyFrom(ctx);
+ }
+ }
+ public static class SubqueryContext extends QueryPrimaryContext {
+ public QueryNoWithContext queryNoWith() {
+ return getRuleContext(QueryNoWithContext.class,0);
+ }
+ public SubqueryContext(QueryPrimaryContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSubquery(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSubquery(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitSubquery(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class QueryPrimaryDefaultContext extends QueryPrimaryContext {
+ public QuerySpecificationContext querySpecification() {
+ return getRuleContext(QuerySpecificationContext.class,0);
+ }
+ public QueryPrimaryDefaultContext(QueryPrimaryContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterQueryPrimaryDefault(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitQueryPrimaryDefault(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitQueryPrimaryDefault(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class TableContext extends QueryPrimaryContext {
+ public TerminalNode TABLE() { return getToken(PrestoSqlParser.TABLE, 0); }
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public TableContext(QueryPrimaryContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterTable(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitTable(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitTable(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class InlineTableContext extends QueryPrimaryContext {
+ public TerminalNode VALUES() { return getToken(PrestoSqlParser.VALUES, 0); }
+ public List expression() {
+ return getRuleContexts(ExpressionContext.class);
+ }
+ public ExpressionContext expression(int i) {
+ return getRuleContext(ExpressionContext.class,i);
+ }
+ public InlineTableContext(QueryPrimaryContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterInlineTable(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitInlineTable(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitInlineTable(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final QueryPrimaryContext queryPrimary() throws RecognitionException {
+ QueryPrimaryContext _localctx = new QueryPrimaryContext(_ctx, getState());
+ enterRule(_localctx, 50, RULE_queryPrimary);
+ try {
+ int _alt;
+ setState(966);
+ _errHandler.sync(this);
+ switch (_input.LA(1)) {
+ case SELECT:
+ _localctx = new QueryPrimaryDefaultContext(_localctx);
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(950);
+ querySpecification();
+ }
+ break;
+ case TABLE:
+ _localctx = new TableContext(_localctx);
+ enterOuterAlt(_localctx, 2);
+ {
+ setState(951);
+ match(TABLE);
+ setState(952);
+ qualifiedName();
+ }
+ break;
+ case VALUES:
+ _localctx = new InlineTableContext(_localctx);
+ enterOuterAlt(_localctx, 3);
+ {
+ setState(953);
+ match(VALUES);
+ setState(954);
+ expression();
+ setState(959);
+ _errHandler.sync(this);
+ _alt = getInterpreter().adaptivePredict(_input,115,_ctx);
+ while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
+ if ( _alt==1 ) {
+ {
+ {
+ setState(955);
+ match(T__3);
+ setState(956);
+ expression();
+ }
+ }
+ }
+ setState(961);
+ _errHandler.sync(this);
+ _alt = getInterpreter().adaptivePredict(_input,115,_ctx);
+ }
+ }
+ break;
+ case T__1:
+ _localctx = new SubqueryContext(_localctx);
+ enterOuterAlt(_localctx, 4);
+ {
+ setState(962);
+ match(T__1);
+ setState(963);
+ queryNoWith();
+ setState(964);
+ match(T__2);
+ }
+ 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 SortItemContext extends ParserRuleContext {
+ public Token ordering;
+ public Token nullOrdering;
+ public ExpressionContext expression() {
+ return getRuleContext(ExpressionContext.class,0);
+ }
+ public TerminalNode NULLS() { return getToken(PrestoSqlParser.NULLS, 0); }
+ public TerminalNode ASC() { return getToken(PrestoSqlParser.ASC, 0); }
+ public TerminalNode DESC() { return getToken(PrestoSqlParser.DESC, 0); }
+ public TerminalNode FIRST() { return getToken(PrestoSqlParser.FIRST, 0); }
+ public TerminalNode LAST() { return getToken(PrestoSqlParser.LAST, 0); }
+ public SortItemContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_sortItem; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSortItem(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSortItem(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitSortItem(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final SortItemContext sortItem() throws RecognitionException {
+ SortItemContext _localctx = new SortItemContext(_ctx, getState());
+ enterRule(_localctx, 52, RULE_sortItem);
+ int _la;
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(968);
+ expression();
+ setState(970);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==ASC || _la==DESC) {
+ {
+ setState(969);
+ ((SortItemContext)_localctx).ordering = _input.LT(1);
+ _la = _input.LA(1);
+ if ( !(_la==ASC || _la==DESC) ) {
+ ((SortItemContext)_localctx).ordering = (Token)_errHandler.recoverInline(this);
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
+ consume();
+ }
+ }
+ }
+
+ setState(974);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==NULLS) {
+ {
+ setState(972);
+ match(NULLS);
+ setState(973);
+ ((SortItemContext)_localctx).nullOrdering = _input.LT(1);
+ _la = _input.LA(1);
+ if ( !(_la==FIRST || _la==LAST) ) {
+ ((SortItemContext)_localctx).nullOrdering = (Token)_errHandler.recoverInline(this);
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
+ consume();
+ }
+ }
+ }
+
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class QuerySpecificationContext extends ParserRuleContext {
+ public BooleanExpressionContext where;
+ public BooleanExpressionContext having;
+ public TerminalNode SELECT() { return getToken(PrestoSqlParser.SELECT, 0); }
+ public List selectItem() {
+ return getRuleContexts(SelectItemContext.class);
+ }
+ public SelectItemContext selectItem(int i) {
+ return getRuleContext(SelectItemContext.class,i);
+ }
+ public SetQuantifierContext setQuantifier() {
+ return getRuleContext(SetQuantifierContext.class,0);
+ }
+ public TerminalNode FROM() { return getToken(PrestoSqlParser.FROM, 0); }
+ public List relation() {
+ return getRuleContexts(RelationContext.class);
+ }
+ public RelationContext relation(int i) {
+ return getRuleContext(RelationContext.class,i);
+ }
+ public TerminalNode WHERE() { return getToken(PrestoSqlParser.WHERE, 0); }
+ public TerminalNode GROUP() { return getToken(PrestoSqlParser.GROUP, 0); }
+ public TerminalNode BY() { return getToken(PrestoSqlParser.BY, 0); }
+ public GroupByContext groupBy() {
+ return getRuleContext(GroupByContext.class,0);
+ }
+ public TerminalNode HAVING() { return getToken(PrestoSqlParser.HAVING, 0); }
+ public List booleanExpression() {
+ return getRuleContexts(BooleanExpressionContext.class);
+ }
+ public BooleanExpressionContext booleanExpression(int i) {
+ return getRuleContext(BooleanExpressionContext.class,i);
+ }
+ public QuerySpecificationContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_querySpecification; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterQuerySpecification(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitQuerySpecification(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitQuerySpecification(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final QuerySpecificationContext querySpecification() throws RecognitionException {
+ QuerySpecificationContext _localctx = new QuerySpecificationContext(_ctx, getState());
+ enterRule(_localctx, 54, RULE_querySpecification);
+ try {
+ int _alt;
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(976);
+ match(SELECT);
+ setState(978);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,119,_ctx) ) {
+ case 1:
+ {
+ setState(977);
+ setQuantifier();
+ }
+ break;
+ }
+ setState(980);
+ selectItem();
+ setState(985);
+ _errHandler.sync(this);
+ _alt = getInterpreter().adaptivePredict(_input,120,_ctx);
+ while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
+ if ( _alt==1 ) {
+ {
+ {
+ setState(981);
+ match(T__3);
+ setState(982);
+ selectItem();
+ }
+ }
+ }
+ setState(987);
+ _errHandler.sync(this);
+ _alt = getInterpreter().adaptivePredict(_input,120,_ctx);
+ }
+ setState(997);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,122,_ctx) ) {
+ case 1:
+ {
+ setState(988);
+ match(FROM);
+ setState(989);
+ relation(0);
+ setState(994);
+ _errHandler.sync(this);
+ _alt = getInterpreter().adaptivePredict(_input,121,_ctx);
+ while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
+ if ( _alt==1 ) {
+ {
+ {
+ setState(990);
+ match(T__3);
+ setState(991);
+ relation(0);
+ }
+ }
+ }
+ setState(996);
+ _errHandler.sync(this);
+ _alt = getInterpreter().adaptivePredict(_input,121,_ctx);
+ }
+ }
+ break;
+ }
+ setState(1001);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,123,_ctx) ) {
+ case 1:
+ {
+ setState(999);
+ match(WHERE);
+ setState(1000);
+ ((QuerySpecificationContext)_localctx).where = booleanExpression(0);
+ }
+ break;
+ }
+ setState(1006);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,124,_ctx) ) {
+ case 1:
+ {
+ setState(1003);
+ match(GROUP);
+ setState(1004);
+ match(BY);
+ setState(1005);
+ groupBy();
+ }
+ break;
+ }
+ setState(1010);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,125,_ctx) ) {
+ case 1:
+ {
+ setState(1008);
+ match(HAVING);
+ setState(1009);
+ ((QuerySpecificationContext)_localctx).having = booleanExpression(0);
+ }
+ break;
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class GroupByContext extends ParserRuleContext {
+ public List groupingElement() {
+ return getRuleContexts(GroupingElementContext.class);
+ }
+ public GroupingElementContext groupingElement(int i) {
+ return getRuleContext(GroupingElementContext.class,i);
+ }
+ public SetQuantifierContext setQuantifier() {
+ return getRuleContext(SetQuantifierContext.class,0);
+ }
+ public GroupByContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_groupBy; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterGroupBy(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitGroupBy(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitGroupBy(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final GroupByContext groupBy() throws RecognitionException {
+ GroupByContext _localctx = new GroupByContext(_ctx, getState());
+ enterRule(_localctx, 56, RULE_groupBy);
+ try {
+ int _alt;
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(1013);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,126,_ctx) ) {
+ case 1:
+ {
+ setState(1012);
+ setQuantifier();
+ }
+ break;
+ }
+ setState(1015);
+ groupingElement();
+ setState(1020);
+ _errHandler.sync(this);
+ _alt = getInterpreter().adaptivePredict(_input,127,_ctx);
+ while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
+ if ( _alt==1 ) {
+ {
+ {
+ setState(1016);
+ match(T__3);
+ setState(1017);
+ groupingElement();
+ }
+ }
+ }
+ setState(1022);
+ _errHandler.sync(this);
+ _alt = getInterpreter().adaptivePredict(_input,127,_ctx);
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class GroupingElementContext extends ParserRuleContext {
+ public GroupingElementContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_groupingElement; }
+
+ public GroupingElementContext() { }
+ public void copyFrom(GroupingElementContext ctx) {
+ super.copyFrom(ctx);
+ }
+ }
+ public static class MultipleGroupingSetsContext extends GroupingElementContext {
+ public TerminalNode GROUPING() { return getToken(PrestoSqlParser.GROUPING, 0); }
+ public TerminalNode SETS() { return getToken(PrestoSqlParser.SETS, 0); }
+ public List groupingSet() {
+ return getRuleContexts(GroupingSetContext.class);
+ }
+ public GroupingSetContext groupingSet(int i) {
+ return getRuleContext(GroupingSetContext.class,i);
+ }
+ public MultipleGroupingSetsContext(GroupingElementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterMultipleGroupingSets(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitMultipleGroupingSets(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitMultipleGroupingSets(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class SingleGroupingSetContext extends GroupingElementContext {
+ public GroupingSetContext groupingSet() {
+ return getRuleContext(GroupingSetContext.class,0);
+ }
+ public SingleGroupingSetContext(GroupingElementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSingleGroupingSet(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSingleGroupingSet(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitSingleGroupingSet(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class CubeContext extends GroupingElementContext {
+ public TerminalNode CUBE() { return getToken(PrestoSqlParser.CUBE, 0); }
+ public List expression() {
+ return getRuleContexts(ExpressionContext.class);
+ }
+ public ExpressionContext expression(int i) {
+ return getRuleContext(ExpressionContext.class,i);
+ }
+ public CubeContext(GroupingElementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterCube(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitCube(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitCube(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class RollupContext extends GroupingElementContext {
+ public TerminalNode ROLLUP() { return getToken(PrestoSqlParser.ROLLUP, 0); }
+ public List expression() {
+ return getRuleContexts(ExpressionContext.class);
+ }
+ public ExpressionContext expression(int i) {
+ return getRuleContext(ExpressionContext.class,i);
+ }
+ public RollupContext(GroupingElementContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterRollup(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitRollup(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitRollup(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final GroupingElementContext groupingElement() throws RecognitionException {
+ GroupingElementContext _localctx = new GroupingElementContext(_ctx, getState());
+ enterRule(_localctx, 58, RULE_groupingElement);
+ int _la;
+ try {
+ setState(1063);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,133,_ctx) ) {
+ case 1:
+ _localctx = new SingleGroupingSetContext(_localctx);
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(1023);
+ groupingSet();
+ }
+ break;
+ case 2:
+ _localctx = new RollupContext(_localctx);
+ enterOuterAlt(_localctx, 2);
+ {
+ setState(1024);
+ match(ROLLUP);
+ setState(1025);
+ match(T__1);
+ setState(1034);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__1) | (1L << T__4) | (1L << ADD) | (1L << ADMIN) | (1L << ALL) | (1L << ANALYZE) | (1L << ANY) | (1L << ARRAY) | (1L << ASC) | (1L << AT) | (1L << BERNOULLI) | (1L << CALL) | (1L << CALLED) | (1L << CASCADE) | (1L << CASE) | (1L << CAST) | (1L << CATALOGS) | (1L << COLUMN) | (1L << COLUMNS) | (1L << COMMENT) | (1L << COMMIT) | (1L << COMMITTED) | (1L << CURRENT) | (1L << CURRENT_DATE) | (1L << CURRENT_ROLE) | (1L << CURRENT_TIME) | (1L << CURRENT_TIMESTAMP) | (1L << CURRENT_USER) | (1L << DATA) | (1L << DATE) | (1L << DAY) | (1L << DEFINER) | (1L << DESC) | (1L << DETERMINISTIC) | (1L << DISTRIBUTED) | (1L << EXCLUDING) | (1L << EXISTS))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EXPLAIN - 64)) | (1L << (EXTRACT - 64)) | (1L << (EXTERNAL - 64)) | (1L << (FALSE - 64)) | (1L << (FILTER - 64)) | (1L << (FIRST - 64)) | (1L << (FOLLOWING - 64)) | (1L << (FORMAT - 64)) | (1L << (FUNCTION - 64)) | (1L << (FUNCTIONS - 64)) | (1L << (GRANT - 64)) | (1L << (GRANTED - 64)) | (1L << (GRANTS - 64)) | (1L << (GRAPHVIZ - 64)) | (1L << (GROUPING - 64)) | (1L << (HOUR - 64)) | (1L << (IF - 64)) | (1L << (IGNORE - 64)) | (1L << (INCLUDING - 64)) | (1L << (INPUT - 64)) | (1L << (INTERVAL - 64)) | (1L << (INVOKER - 64)) | (1L << (IO - 64)) | (1L << (ISOLATION - 64)) | (1L << (JSON - 64)) | (1L << (LANGUAGE - 64)) | (1L << (LAST - 64)) | (1L << (LATERAL - 64)) | (1L << (LEVEL - 64)) | (1L << (LIMIT - 64)) | (1L << (LOCALTIME - 64)) | (1L << (LOCALTIMESTAMP - 64)) | (1L << (LOGICAL - 64)) | (1L << (MAP - 64)) | (1L << (MATERIALIZED - 64)) | (1L << (MINUTE - 64)) | (1L << (MONTH - 64)) | (1L << (NAME - 64)) | (1L << (NFC - 64)) | (1L << (NFD - 64)) | (1L << (NFKC - 64)) | (1L << (NFKD - 64)) | (1L << (NO - 64)) | (1L << (NONE - 64)) | (1L << (NORMALIZE - 64)) | (1L << (NOT - 64)) | (1L << (NULL - 64)) | (1L << (NULLIF - 64)) | (1L << (NULLS - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OFFSET - 128)) | (1L << (ONLY - 128)) | (1L << (OPTION - 128)) | (1L << (ORDINALITY - 128)) | (1L << (OUTPUT - 128)) | (1L << (OVER - 128)) | (1L << (PARTITION - 128)) | (1L << (PARTITIONS - 128)) | (1L << (POSITION - 128)) | (1L << (PRECEDING - 128)) | (1L << (PRIVILEGES - 128)) | (1L << (PROPERTIES - 128)) | (1L << (RANGE - 128)) | (1L << (READ - 128)) | (1L << (REFRESH - 128)) | (1L << (RENAME - 128)) | (1L << (REPEATABLE - 128)) | (1L << (REPLACE - 128)) | (1L << (RESET - 128)) | (1L << (RESPECT - 128)) | (1L << (RESTRICT - 128)) | (1L << (RETURN - 128)) | (1L << (RETURNS - 128)) | (1L << (REVOKE - 128)) | (1L << (ROLE - 128)) | (1L << (ROLES - 128)) | (1L << (ROLLBACK - 128)) | (1L << (ROW - 128)) | (1L << (ROWS - 128)) | (1L << (SCHEMA - 128)) | (1L << (SCHEMAS - 128)) | (1L << (SECOND - 128)) | (1L << (SECURITY - 128)) | (1L << (SERIALIZABLE - 128)) | (1L << (SESSION - 128)) | (1L << (SET - 128)) | (1L << (SETS - 128)) | (1L << (SHOW - 128)) | (1L << (SOME - 128)) | (1L << (SQL - 128)) | (1L << (START - 128)) | (1L << (STATS - 128)) | (1L << (SUBSTRING - 128)) | (1L << (SYSTEM - 128)) | (1L << (TABLES - 128)) | (1L << (TABLESAMPLE - 128)) | (1L << (TEMPORARY - 128)) | (1L << (TEXT - 128)) | (1L << (TIME - 128)) | (1L << (TIMESTAMP - 128)) | (1L << (TO - 128)) | (1L << (TRANSACTION - 128)) | (1L << (TRUE - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (TRY_CAST - 192)) | (1L << (TYPE - 192)) | (1L << (UNBOUNDED - 192)) | (1L << (UNCOMMITTED - 192)) | (1L << (USE - 192)) | (1L << (USER - 192)) | (1L << (VALIDATE - 192)) | (1L << (VERBOSE - 192)) | (1L << (VIEW - 192)) | (1L << (WORK - 192)) | (1L << (WRITE - 192)) | (1L << (YEAR - 192)) | (1L << (ZONE - 192)) | (1L << (PLUS - 192)) | (1L << (MINUS - 192)) | (1L << (STRING - 192)) | (1L << (UNICODE_STRING - 192)) | (1L << (BINARY_LITERAL - 192)) | (1L << (INTEGER_VALUE - 192)) | (1L << (DECIMAL_VALUE - 192)) | (1L << (DOUBLE_VALUE - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (DIGIT_IDENTIFIER - 192)) | (1L << (QUOTED_IDENTIFIER - 192)) | (1L << (BACKQUOTED_IDENTIFIER - 192)) | (1L << (DOUBLE_PRECISION - 192)))) != 0)) {
+ {
+ setState(1026);
+ expression();
+ setState(1031);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ while (_la==T__3) {
+ {
+ {
+ setState(1027);
+ match(T__3);
+ setState(1028);
+ expression();
+ }
+ }
+ setState(1033);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ }
+ }
+ }
+
+ setState(1036);
+ match(T__2);
+ }
+ break;
+ case 3:
+ _localctx = new CubeContext(_localctx);
+ enterOuterAlt(_localctx, 3);
+ {
+ setState(1037);
+ match(CUBE);
+ setState(1038);
+ match(T__1);
+ setState(1047);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__1) | (1L << T__4) | (1L << ADD) | (1L << ADMIN) | (1L << ALL) | (1L << ANALYZE) | (1L << ANY) | (1L << ARRAY) | (1L << ASC) | (1L << AT) | (1L << BERNOULLI) | (1L << CALL) | (1L << CALLED) | (1L << CASCADE) | (1L << CASE) | (1L << CAST) | (1L << CATALOGS) | (1L << COLUMN) | (1L << COLUMNS) | (1L << COMMENT) | (1L << COMMIT) | (1L << COMMITTED) | (1L << CURRENT) | (1L << CURRENT_DATE) | (1L << CURRENT_ROLE) | (1L << CURRENT_TIME) | (1L << CURRENT_TIMESTAMP) | (1L << CURRENT_USER) | (1L << DATA) | (1L << DATE) | (1L << DAY) | (1L << DEFINER) | (1L << DESC) | (1L << DETERMINISTIC) | (1L << DISTRIBUTED) | (1L << EXCLUDING) | (1L << EXISTS))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EXPLAIN - 64)) | (1L << (EXTRACT - 64)) | (1L << (EXTERNAL - 64)) | (1L << (FALSE - 64)) | (1L << (FILTER - 64)) | (1L << (FIRST - 64)) | (1L << (FOLLOWING - 64)) | (1L << (FORMAT - 64)) | (1L << (FUNCTION - 64)) | (1L << (FUNCTIONS - 64)) | (1L << (GRANT - 64)) | (1L << (GRANTED - 64)) | (1L << (GRANTS - 64)) | (1L << (GRAPHVIZ - 64)) | (1L << (GROUPING - 64)) | (1L << (HOUR - 64)) | (1L << (IF - 64)) | (1L << (IGNORE - 64)) | (1L << (INCLUDING - 64)) | (1L << (INPUT - 64)) | (1L << (INTERVAL - 64)) | (1L << (INVOKER - 64)) | (1L << (IO - 64)) | (1L << (ISOLATION - 64)) | (1L << (JSON - 64)) | (1L << (LANGUAGE - 64)) | (1L << (LAST - 64)) | (1L << (LATERAL - 64)) | (1L << (LEVEL - 64)) | (1L << (LIMIT - 64)) | (1L << (LOCALTIME - 64)) | (1L << (LOCALTIMESTAMP - 64)) | (1L << (LOGICAL - 64)) | (1L << (MAP - 64)) | (1L << (MATERIALIZED - 64)) | (1L << (MINUTE - 64)) | (1L << (MONTH - 64)) | (1L << (NAME - 64)) | (1L << (NFC - 64)) | (1L << (NFD - 64)) | (1L << (NFKC - 64)) | (1L << (NFKD - 64)) | (1L << (NO - 64)) | (1L << (NONE - 64)) | (1L << (NORMALIZE - 64)) | (1L << (NOT - 64)) | (1L << (NULL - 64)) | (1L << (NULLIF - 64)) | (1L << (NULLS - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OFFSET - 128)) | (1L << (ONLY - 128)) | (1L << (OPTION - 128)) | (1L << (ORDINALITY - 128)) | (1L << (OUTPUT - 128)) | (1L << (OVER - 128)) | (1L << (PARTITION - 128)) | (1L << (PARTITIONS - 128)) | (1L << (POSITION - 128)) | (1L << (PRECEDING - 128)) | (1L << (PRIVILEGES - 128)) | (1L << (PROPERTIES - 128)) | (1L << (RANGE - 128)) | (1L << (READ - 128)) | (1L << (REFRESH - 128)) | (1L << (RENAME - 128)) | (1L << (REPEATABLE - 128)) | (1L << (REPLACE - 128)) | (1L << (RESET - 128)) | (1L << (RESPECT - 128)) | (1L << (RESTRICT - 128)) | (1L << (RETURN - 128)) | (1L << (RETURNS - 128)) | (1L << (REVOKE - 128)) | (1L << (ROLE - 128)) | (1L << (ROLES - 128)) | (1L << (ROLLBACK - 128)) | (1L << (ROW - 128)) | (1L << (ROWS - 128)) | (1L << (SCHEMA - 128)) | (1L << (SCHEMAS - 128)) | (1L << (SECOND - 128)) | (1L << (SECURITY - 128)) | (1L << (SERIALIZABLE - 128)) | (1L << (SESSION - 128)) | (1L << (SET - 128)) | (1L << (SETS - 128)) | (1L << (SHOW - 128)) | (1L << (SOME - 128)) | (1L << (SQL - 128)) | (1L << (START - 128)) | (1L << (STATS - 128)) | (1L << (SUBSTRING - 128)) | (1L << (SYSTEM - 128)) | (1L << (TABLES - 128)) | (1L << (TABLESAMPLE - 128)) | (1L << (TEMPORARY - 128)) | (1L << (TEXT - 128)) | (1L << (TIME - 128)) | (1L << (TIMESTAMP - 128)) | (1L << (TO - 128)) | (1L << (TRANSACTION - 128)) | (1L << (TRUE - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (TRY_CAST - 192)) | (1L << (TYPE - 192)) | (1L << (UNBOUNDED - 192)) | (1L << (UNCOMMITTED - 192)) | (1L << (USE - 192)) | (1L << (USER - 192)) | (1L << (VALIDATE - 192)) | (1L << (VERBOSE - 192)) | (1L << (VIEW - 192)) | (1L << (WORK - 192)) | (1L << (WRITE - 192)) | (1L << (YEAR - 192)) | (1L << (ZONE - 192)) | (1L << (PLUS - 192)) | (1L << (MINUS - 192)) | (1L << (STRING - 192)) | (1L << (UNICODE_STRING - 192)) | (1L << (BINARY_LITERAL - 192)) | (1L << (INTEGER_VALUE - 192)) | (1L << (DECIMAL_VALUE - 192)) | (1L << (DOUBLE_VALUE - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (DIGIT_IDENTIFIER - 192)) | (1L << (QUOTED_IDENTIFIER - 192)) | (1L << (BACKQUOTED_IDENTIFIER - 192)) | (1L << (DOUBLE_PRECISION - 192)))) != 0)) {
+ {
+ setState(1039);
+ expression();
+ setState(1044);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ while (_la==T__3) {
+ {
+ {
+ setState(1040);
+ match(T__3);
+ setState(1041);
+ expression();
+ }
+ }
+ setState(1046);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ }
+ }
+ }
+
+ setState(1049);
+ match(T__2);
+ }
+ break;
+ case 4:
+ _localctx = new MultipleGroupingSetsContext(_localctx);
+ enterOuterAlt(_localctx, 4);
+ {
+ setState(1050);
+ match(GROUPING);
+ setState(1051);
+ match(SETS);
+ setState(1052);
+ match(T__1);
+ setState(1053);
+ groupingSet();
+ setState(1058);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ while (_la==T__3) {
+ {
+ {
+ setState(1054);
+ match(T__3);
+ setState(1055);
+ groupingSet();
+ }
+ }
+ setState(1060);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ }
+ setState(1061);
+ match(T__2);
+ }
+ break;
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class GroupingSetContext extends ParserRuleContext {
+ public List expression() {
+ return getRuleContexts(ExpressionContext.class);
+ }
+ public ExpressionContext expression(int i) {
+ return getRuleContext(ExpressionContext.class,i);
+ }
+ public GroupingSetContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_groupingSet; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterGroupingSet(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitGroupingSet(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitGroupingSet(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final GroupingSetContext groupingSet() throws RecognitionException {
+ GroupingSetContext _localctx = new GroupingSetContext(_ctx, getState());
+ enterRule(_localctx, 60, RULE_groupingSet);
+ int _la;
+ try {
+ setState(1078);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,136,_ctx) ) {
+ case 1:
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(1065);
+ match(T__1);
+ setState(1074);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__1) | (1L << T__4) | (1L << ADD) | (1L << ADMIN) | (1L << ALL) | (1L << ANALYZE) | (1L << ANY) | (1L << ARRAY) | (1L << ASC) | (1L << AT) | (1L << BERNOULLI) | (1L << CALL) | (1L << CALLED) | (1L << CASCADE) | (1L << CASE) | (1L << CAST) | (1L << CATALOGS) | (1L << COLUMN) | (1L << COLUMNS) | (1L << COMMENT) | (1L << COMMIT) | (1L << COMMITTED) | (1L << CURRENT) | (1L << CURRENT_DATE) | (1L << CURRENT_ROLE) | (1L << CURRENT_TIME) | (1L << CURRENT_TIMESTAMP) | (1L << CURRENT_USER) | (1L << DATA) | (1L << DATE) | (1L << DAY) | (1L << DEFINER) | (1L << DESC) | (1L << DETERMINISTIC) | (1L << DISTRIBUTED) | (1L << EXCLUDING) | (1L << EXISTS))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EXPLAIN - 64)) | (1L << (EXTRACT - 64)) | (1L << (EXTERNAL - 64)) | (1L << (FALSE - 64)) | (1L << (FILTER - 64)) | (1L << (FIRST - 64)) | (1L << (FOLLOWING - 64)) | (1L << (FORMAT - 64)) | (1L << (FUNCTION - 64)) | (1L << (FUNCTIONS - 64)) | (1L << (GRANT - 64)) | (1L << (GRANTED - 64)) | (1L << (GRANTS - 64)) | (1L << (GRAPHVIZ - 64)) | (1L << (GROUPING - 64)) | (1L << (HOUR - 64)) | (1L << (IF - 64)) | (1L << (IGNORE - 64)) | (1L << (INCLUDING - 64)) | (1L << (INPUT - 64)) | (1L << (INTERVAL - 64)) | (1L << (INVOKER - 64)) | (1L << (IO - 64)) | (1L << (ISOLATION - 64)) | (1L << (JSON - 64)) | (1L << (LANGUAGE - 64)) | (1L << (LAST - 64)) | (1L << (LATERAL - 64)) | (1L << (LEVEL - 64)) | (1L << (LIMIT - 64)) | (1L << (LOCALTIME - 64)) | (1L << (LOCALTIMESTAMP - 64)) | (1L << (LOGICAL - 64)) | (1L << (MAP - 64)) | (1L << (MATERIALIZED - 64)) | (1L << (MINUTE - 64)) | (1L << (MONTH - 64)) | (1L << (NAME - 64)) | (1L << (NFC - 64)) | (1L << (NFD - 64)) | (1L << (NFKC - 64)) | (1L << (NFKD - 64)) | (1L << (NO - 64)) | (1L << (NONE - 64)) | (1L << (NORMALIZE - 64)) | (1L << (NOT - 64)) | (1L << (NULL - 64)) | (1L << (NULLIF - 64)) | (1L << (NULLS - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OFFSET - 128)) | (1L << (ONLY - 128)) | (1L << (OPTION - 128)) | (1L << (ORDINALITY - 128)) | (1L << (OUTPUT - 128)) | (1L << (OVER - 128)) | (1L << (PARTITION - 128)) | (1L << (PARTITIONS - 128)) | (1L << (POSITION - 128)) | (1L << (PRECEDING - 128)) | (1L << (PRIVILEGES - 128)) | (1L << (PROPERTIES - 128)) | (1L << (RANGE - 128)) | (1L << (READ - 128)) | (1L << (REFRESH - 128)) | (1L << (RENAME - 128)) | (1L << (REPEATABLE - 128)) | (1L << (REPLACE - 128)) | (1L << (RESET - 128)) | (1L << (RESPECT - 128)) | (1L << (RESTRICT - 128)) | (1L << (RETURN - 128)) | (1L << (RETURNS - 128)) | (1L << (REVOKE - 128)) | (1L << (ROLE - 128)) | (1L << (ROLES - 128)) | (1L << (ROLLBACK - 128)) | (1L << (ROW - 128)) | (1L << (ROWS - 128)) | (1L << (SCHEMA - 128)) | (1L << (SCHEMAS - 128)) | (1L << (SECOND - 128)) | (1L << (SECURITY - 128)) | (1L << (SERIALIZABLE - 128)) | (1L << (SESSION - 128)) | (1L << (SET - 128)) | (1L << (SETS - 128)) | (1L << (SHOW - 128)) | (1L << (SOME - 128)) | (1L << (SQL - 128)) | (1L << (START - 128)) | (1L << (STATS - 128)) | (1L << (SUBSTRING - 128)) | (1L << (SYSTEM - 128)) | (1L << (TABLES - 128)) | (1L << (TABLESAMPLE - 128)) | (1L << (TEMPORARY - 128)) | (1L << (TEXT - 128)) | (1L << (TIME - 128)) | (1L << (TIMESTAMP - 128)) | (1L << (TO - 128)) | (1L << (TRANSACTION - 128)) | (1L << (TRUE - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (TRY_CAST - 192)) | (1L << (TYPE - 192)) | (1L << (UNBOUNDED - 192)) | (1L << (UNCOMMITTED - 192)) | (1L << (USE - 192)) | (1L << (USER - 192)) | (1L << (VALIDATE - 192)) | (1L << (VERBOSE - 192)) | (1L << (VIEW - 192)) | (1L << (WORK - 192)) | (1L << (WRITE - 192)) | (1L << (YEAR - 192)) | (1L << (ZONE - 192)) | (1L << (PLUS - 192)) | (1L << (MINUS - 192)) | (1L << (STRING - 192)) | (1L << (UNICODE_STRING - 192)) | (1L << (BINARY_LITERAL - 192)) | (1L << (INTEGER_VALUE - 192)) | (1L << (DECIMAL_VALUE - 192)) | (1L << (DOUBLE_VALUE - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (DIGIT_IDENTIFIER - 192)) | (1L << (QUOTED_IDENTIFIER - 192)) | (1L << (BACKQUOTED_IDENTIFIER - 192)) | (1L << (DOUBLE_PRECISION - 192)))) != 0)) {
+ {
+ setState(1066);
+ expression();
+ setState(1071);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ while (_la==T__3) {
+ {
+ {
+ setState(1067);
+ match(T__3);
+ setState(1068);
+ expression();
+ }
+ }
+ setState(1073);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ }
+ }
+ }
+
+ setState(1076);
+ match(T__2);
+ }
+ break;
+ case 2:
+ enterOuterAlt(_localctx, 2);
+ {
+ setState(1077);
+ expression();
+ }
+ break;
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class NamedQueryContext extends ParserRuleContext {
+ public IdentifierContext name;
+ public TerminalNode AS() { return getToken(PrestoSqlParser.AS, 0); }
+ public QueryContext query() {
+ return getRuleContext(QueryContext.class,0);
+ }
+ public IdentifierContext identifier() {
+ return getRuleContext(IdentifierContext.class,0);
+ }
+ public ColumnAliasesContext columnAliases() {
+ return getRuleContext(ColumnAliasesContext.class,0);
+ }
+ public NamedQueryContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_namedQuery; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterNamedQuery(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitNamedQuery(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitNamedQuery(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final NamedQueryContext namedQuery() throws RecognitionException {
+ NamedQueryContext _localctx = new NamedQueryContext(_ctx, getState());
+ enterRule(_localctx, 62, RULE_namedQuery);
+ int _la;
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(1080);
+ ((NamedQueryContext)_localctx).name = identifier();
+ setState(1082);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==T__1) {
+ {
+ setState(1081);
+ columnAliases();
+ }
+ }
+
+ setState(1084);
+ match(AS);
+ setState(1085);
+ match(T__1);
+ setState(1086);
+ query();
+ setState(1087);
+ match(T__2);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class SetQuantifierContext extends ParserRuleContext {
+ public TerminalNode DISTINCT() { return getToken(PrestoSqlParser.DISTINCT, 0); }
+ public TerminalNode ALL() { return getToken(PrestoSqlParser.ALL, 0); }
+ public SetQuantifierContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_setQuantifier; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSetQuantifier(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSetQuantifier(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitSetQuantifier(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final SetQuantifierContext setQuantifier() throws RecognitionException {
+ SetQuantifierContext _localctx = new SetQuantifierContext(_ctx, getState());
+ enterRule(_localctx, 64, RULE_setQuantifier);
+ int _la;
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(1089);
+ _la = _input.LA(1);
+ if ( !(_la==ALL || _la==DISTINCT) ) {
+ _errHandler.recoverInline(this);
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
+ consume();
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class SelectItemContext extends ParserRuleContext {
+ public SelectItemContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_selectItem; }
+
+ public SelectItemContext() { }
+ public void copyFrom(SelectItemContext ctx) {
+ super.copyFrom(ctx);
+ }
+ }
+ public static class SelectAllContext extends SelectItemContext {
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public TerminalNode ASTERISK() { return getToken(PrestoSqlParser.ASTERISK, 0); }
+ public SelectAllContext(SelectItemContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSelectAll(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSelectAll(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitSelectAll(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class SelectSingleContext extends SelectItemContext {
+ public ExpressionContext expression() {
+ return getRuleContext(ExpressionContext.class,0);
+ }
+ public IdentifierContext identifier() {
+ return getRuleContext(IdentifierContext.class,0);
+ }
+ public TerminalNode AS() { return getToken(PrestoSqlParser.AS, 0); }
+ public SelectSingleContext(SelectItemContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSelectSingle(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSelectSingle(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitSelectSingle(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final SelectItemContext selectItem() throws RecognitionException {
+ SelectItemContext _localctx = new SelectItemContext(_ctx, getState());
+ enterRule(_localctx, 66, RULE_selectItem);
+ int _la;
+ try {
+ setState(1103);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,140,_ctx) ) {
+ case 1:
+ _localctx = new SelectSingleContext(_localctx);
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(1091);
+ expression();
+ setState(1096);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,139,_ctx) ) {
+ case 1:
+ {
+ setState(1093);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==AS) {
+ {
+ setState(1092);
+ match(AS);
+ }
+ }
+
+ setState(1095);
+ identifier();
+ }
+ break;
+ }
+ }
+ break;
+ case 2:
+ _localctx = new SelectAllContext(_localctx);
+ enterOuterAlt(_localctx, 2);
+ {
+ setState(1098);
+ qualifiedName();
+ setState(1099);
+ match(T__0);
+ setState(1100);
+ match(ASTERISK);
+ }
+ break;
+ case 3:
+ _localctx = new SelectAllContext(_localctx);
+ enterOuterAlt(_localctx, 3);
+ {
+ setState(1102);
+ match(ASTERISK);
+ }
+ break;
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class RelationContext extends ParserRuleContext {
+ public RelationContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_relation; }
+
+ public RelationContext() { }
+ public void copyFrom(RelationContext ctx) {
+ super.copyFrom(ctx);
+ }
+ }
+ public static class RelationDefaultContext extends RelationContext {
+ public SampledRelationContext sampledRelation() {
+ return getRuleContext(SampledRelationContext.class,0);
+ }
+ public RelationDefaultContext(RelationContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterRelationDefault(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitRelationDefault(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitRelationDefault(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class JoinRelationContext extends RelationContext {
+ public RelationContext left;
+ public SampledRelationContext right;
+ public RelationContext rightRelation;
+ public List relation() {
+ return getRuleContexts(RelationContext.class);
+ }
+ public RelationContext relation(int i) {
+ return getRuleContext(RelationContext.class,i);
+ }
+ public TerminalNode CROSS() { return getToken(PrestoSqlParser.CROSS, 0); }
+ public TerminalNode JOIN() { return getToken(PrestoSqlParser.JOIN, 0); }
+ public JoinTypeContext joinType() {
+ return getRuleContext(JoinTypeContext.class,0);
+ }
+ public JoinCriteriaContext joinCriteria() {
+ return getRuleContext(JoinCriteriaContext.class,0);
+ }
+ public TerminalNode NATURAL() { return getToken(PrestoSqlParser.NATURAL, 0); }
+ public SampledRelationContext sampledRelation() {
+ return getRuleContext(SampledRelationContext.class,0);
+ }
+ public JoinRelationContext(RelationContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterJoinRelation(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitJoinRelation(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitJoinRelation(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final RelationContext relation() throws RecognitionException {
+ return relation(0);
+ }
+
+ private RelationContext relation(int _p) throws RecognitionException {
+ ParserRuleContext _parentctx = _ctx;
+ int _parentState = getState();
+ RelationContext _localctx = new RelationContext(_ctx, _parentState);
+ RelationContext _prevctx = _localctx;
+ int _startState = 68;
+ enterRecursionRule(_localctx, 68, RULE_relation, _p);
+ try {
+ int _alt;
+ enterOuterAlt(_localctx, 1);
+ {
+ {
+ _localctx = new RelationDefaultContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+
+ setState(1106);
+ sampledRelation();
+ }
+ _ctx.stop = _input.LT(-1);
+ setState(1126);
+ _errHandler.sync(this);
+ _alt = getInterpreter().adaptivePredict(_input,142,_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 JoinRelationContext(new RelationContext(_parentctx, _parentState));
+ ((JoinRelationContext)_localctx).left = _prevctx;
+ pushNewRecursionContext(_localctx, _startState, RULE_relation);
+ setState(1108);
+ if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)");
+ setState(1122);
+ _errHandler.sync(this);
+ switch (_input.LA(1)) {
+ case CROSS:
+ {
+ setState(1109);
+ match(CROSS);
+ setState(1110);
+ match(JOIN);
+ setState(1111);
+ ((JoinRelationContext)_localctx).right = sampledRelation();
+ }
+ break;
+ case FULL:
+ case INNER:
+ case JOIN:
+ case LEFT:
+ case RIGHT:
+ {
+ setState(1112);
+ joinType();
+ setState(1113);
+ match(JOIN);
+ setState(1114);
+ ((JoinRelationContext)_localctx).rightRelation = relation(0);
+ setState(1115);
+ joinCriteria();
+ }
+ break;
+ case NATURAL:
+ {
+ setState(1117);
+ match(NATURAL);
+ setState(1118);
+ joinType();
+ setState(1119);
+ match(JOIN);
+ setState(1120);
+ ((JoinRelationContext)_localctx).right = sampledRelation();
+ }
+ break;
+ default:
+ throw new NoViableAltException(this);
+ }
+ }
+ }
+ }
+ setState(1128);
+ _errHandler.sync(this);
+ _alt = getInterpreter().adaptivePredict(_input,142,_ctx);
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ unrollRecursionContexts(_parentctx);
+ }
+ return _localctx;
+ }
+
+ public static class JoinTypeContext extends ParserRuleContext {
+ public TerminalNode INNER() { return getToken(PrestoSqlParser.INNER, 0); }
+ public TerminalNode LEFT() { return getToken(PrestoSqlParser.LEFT, 0); }
+ public TerminalNode OUTER() { return getToken(PrestoSqlParser.OUTER, 0); }
+ public TerminalNode RIGHT() { return getToken(PrestoSqlParser.RIGHT, 0); }
+ public TerminalNode FULL() { return getToken(PrestoSqlParser.FULL, 0); }
+ public JoinTypeContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_joinType; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterJoinType(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitJoinType(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitJoinType(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final JoinTypeContext joinType() throws RecognitionException {
+ JoinTypeContext _localctx = new JoinTypeContext(_ctx, getState());
+ enterRule(_localctx, 70, RULE_joinType);
+ int _la;
+ try {
+ setState(1144);
+ _errHandler.sync(this);
+ switch (_input.LA(1)) {
+ case INNER:
+ case JOIN:
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(1130);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==INNER) {
+ {
+ setState(1129);
+ match(INNER);
+ }
+ }
+
+ }
+ break;
+ case LEFT:
+ enterOuterAlt(_localctx, 2);
+ {
+ setState(1132);
+ match(LEFT);
+ setState(1134);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==OUTER) {
+ {
+ setState(1133);
+ match(OUTER);
+ }
+ }
+
+ }
+ break;
+ case RIGHT:
+ enterOuterAlt(_localctx, 3);
+ {
+ setState(1136);
+ match(RIGHT);
+ setState(1138);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==OUTER) {
+ {
+ setState(1137);
+ match(OUTER);
+ }
+ }
+
+ }
+ break;
+ case FULL:
+ enterOuterAlt(_localctx, 4);
+ {
+ setState(1140);
+ match(FULL);
+ setState(1142);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==OUTER) {
+ {
+ setState(1141);
+ match(OUTER);
+ }
+ }
+
+ }
+ 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 JoinCriteriaContext extends ParserRuleContext {
+ public TerminalNode ON() { return getToken(PrestoSqlParser.ON, 0); }
+ public BooleanExpressionContext booleanExpression() {
+ return getRuleContext(BooleanExpressionContext.class,0);
+ }
+ public TerminalNode USING() { return getToken(PrestoSqlParser.USING, 0); }
+ public List identifier() {
+ return getRuleContexts(IdentifierContext.class);
+ }
+ public IdentifierContext identifier(int i) {
+ return getRuleContext(IdentifierContext.class,i);
+ }
+ public JoinCriteriaContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_joinCriteria; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterJoinCriteria(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitJoinCriteria(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitJoinCriteria(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final JoinCriteriaContext joinCriteria() throws RecognitionException {
+ JoinCriteriaContext _localctx = new JoinCriteriaContext(_ctx, getState());
+ enterRule(_localctx, 72, RULE_joinCriteria);
+ int _la;
+ try {
+ setState(1160);
+ _errHandler.sync(this);
+ switch (_input.LA(1)) {
+ case ON:
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(1146);
+ match(ON);
+ setState(1147);
+ booleanExpression(0);
+ }
+ break;
+ case USING:
+ enterOuterAlt(_localctx, 2);
+ {
+ setState(1148);
+ match(USING);
+ setState(1149);
+ match(T__1);
+ setState(1150);
+ identifier();
+ setState(1155);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ while (_la==T__3) {
+ {
+ {
+ setState(1151);
+ match(T__3);
+ setState(1152);
+ identifier();
+ }
+ }
+ setState(1157);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ }
+ setState(1158);
+ match(T__2);
+ }
+ 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 SampledRelationContext extends ParserRuleContext {
+ public ExpressionContext percentage;
+ public AliasedRelationContext aliasedRelation() {
+ return getRuleContext(AliasedRelationContext.class,0);
+ }
+ public TerminalNode TABLESAMPLE() { return getToken(PrestoSqlParser.TABLESAMPLE, 0); }
+ public SampleTypeContext sampleType() {
+ return getRuleContext(SampleTypeContext.class,0);
+ }
+ public ExpressionContext expression() {
+ return getRuleContext(ExpressionContext.class,0);
+ }
+ public SampledRelationContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_sampledRelation; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSampledRelation(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSampledRelation(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitSampledRelation(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final SampledRelationContext sampledRelation() throws RecognitionException {
+ SampledRelationContext _localctx = new SampledRelationContext(_ctx, getState());
+ enterRule(_localctx, 74, RULE_sampledRelation);
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(1162);
+ aliasedRelation();
+ setState(1169);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,150,_ctx) ) {
+ case 1:
+ {
+ setState(1163);
+ match(TABLESAMPLE);
+ setState(1164);
+ sampleType();
+ setState(1165);
+ match(T__1);
+ setState(1166);
+ ((SampledRelationContext)_localctx).percentage = expression();
+ setState(1167);
+ match(T__2);
+ }
+ break;
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class SampleTypeContext extends ParserRuleContext {
+ public TerminalNode BERNOULLI() { return getToken(PrestoSqlParser.BERNOULLI, 0); }
+ public TerminalNode SYSTEM() { return getToken(PrestoSqlParser.SYSTEM, 0); }
+ public SampleTypeContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_sampleType; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSampleType(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSampleType(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitSampleType(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final SampleTypeContext sampleType() throws RecognitionException {
+ SampleTypeContext _localctx = new SampleTypeContext(_ctx, getState());
+ enterRule(_localctx, 76, RULE_sampleType);
+ int _la;
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(1171);
+ _la = _input.LA(1);
+ if ( !(_la==BERNOULLI || _la==SYSTEM) ) {
+ _errHandler.recoverInline(this);
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
+ consume();
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class AliasedRelationContext extends ParserRuleContext {
+ public RelationPrimaryContext relationPrimary() {
+ return getRuleContext(RelationPrimaryContext.class,0);
+ }
+ public IdentifierContext identifier() {
+ return getRuleContext(IdentifierContext.class,0);
+ }
+ public TerminalNode AS() { return getToken(PrestoSqlParser.AS, 0); }
+ public ColumnAliasesContext columnAliases() {
+ return getRuleContext(ColumnAliasesContext.class,0);
+ }
+ public AliasedRelationContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_aliasedRelation; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterAliasedRelation(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitAliasedRelation(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitAliasedRelation(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final AliasedRelationContext aliasedRelation() throws RecognitionException {
+ AliasedRelationContext _localctx = new AliasedRelationContext(_ctx, getState());
+ enterRule(_localctx, 78, RULE_aliasedRelation);
+ int _la;
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(1173);
+ relationPrimary();
+ setState(1181);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,153,_ctx) ) {
+ case 1:
+ {
+ setState(1175);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==AS) {
+ {
+ setState(1174);
+ match(AS);
+ }
+ }
+
+ setState(1177);
+ identifier();
+ setState(1179);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,152,_ctx) ) {
+ case 1:
+ {
+ setState(1178);
+ columnAliases();
+ }
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class ColumnAliasesContext extends ParserRuleContext {
+ public List identifier() {
+ return getRuleContexts(IdentifierContext.class);
+ }
+ public IdentifierContext identifier(int i) {
+ return getRuleContext(IdentifierContext.class,i);
+ }
+ public ColumnAliasesContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_columnAliases; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterColumnAliases(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitColumnAliases(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitColumnAliases(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final ColumnAliasesContext columnAliases() throws RecognitionException {
+ ColumnAliasesContext _localctx = new ColumnAliasesContext(_ctx, getState());
+ enterRule(_localctx, 80, RULE_columnAliases);
+ int _la;
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(1183);
+ match(T__1);
+ setState(1184);
+ identifier();
+ setState(1189);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ while (_la==T__3) {
+ {
+ {
+ setState(1185);
+ match(T__3);
+ setState(1186);
+ identifier();
+ }
+ }
+ setState(1191);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ }
+ setState(1192);
+ match(T__2);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class RelationPrimaryContext extends ParserRuleContext {
+ public RelationPrimaryContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_relationPrimary; }
+
+ public RelationPrimaryContext() { }
+ public void copyFrom(RelationPrimaryContext ctx) {
+ super.copyFrom(ctx);
+ }
+ }
+ public static class SubqueryRelationContext extends RelationPrimaryContext {
+ public QueryContext query() {
+ return getRuleContext(QueryContext.class,0);
+ }
+ public SubqueryRelationContext(RelationPrimaryContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSubqueryRelation(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSubqueryRelation(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitSubqueryRelation(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class ParenthesizedRelationContext extends RelationPrimaryContext {
+ public RelationContext relation() {
+ return getRuleContext(RelationContext.class,0);
+ }
+ public ParenthesizedRelationContext(RelationPrimaryContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterParenthesizedRelation(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitParenthesizedRelation(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitParenthesizedRelation(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class UnnestContext extends RelationPrimaryContext {
+ public TerminalNode UNNEST() { return getToken(PrestoSqlParser.UNNEST, 0); }
+ public List expression() {
+ return getRuleContexts(ExpressionContext.class);
+ }
+ public ExpressionContext expression(int i) {
+ return getRuleContext(ExpressionContext.class,i);
+ }
+ public TerminalNode WITH() { return getToken(PrestoSqlParser.WITH, 0); }
+ public TerminalNode ORDINALITY() { return getToken(PrestoSqlParser.ORDINALITY, 0); }
+ public UnnestContext(RelationPrimaryContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterUnnest(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitUnnest(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitUnnest(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class LateralContext extends RelationPrimaryContext {
+ public TerminalNode LATERAL() { return getToken(PrestoSqlParser.LATERAL, 0); }
+ public QueryContext query() {
+ return getRuleContext(QueryContext.class,0);
+ }
+ public LateralContext(RelationPrimaryContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterLateral(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitLateral(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitLateral(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class TableNameContext extends RelationPrimaryContext {
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public TableNameContext(RelationPrimaryContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterTableName(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitTableName(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitTableName(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final RelationPrimaryContext relationPrimary() throws RecognitionException {
+ RelationPrimaryContext _localctx = new RelationPrimaryContext(_ctx, getState());
+ enterRule(_localctx, 82, RULE_relationPrimary);
+ int _la;
+ try {
+ setState(1223);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,157,_ctx) ) {
+ case 1:
+ _localctx = new TableNameContext(_localctx);
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(1194);
+ qualifiedName();
+ }
+ break;
+ case 2:
+ _localctx = new SubqueryRelationContext(_localctx);
+ enterOuterAlt(_localctx, 2);
+ {
+ setState(1195);
+ match(T__1);
+ setState(1196);
+ query();
+ setState(1197);
+ match(T__2);
+ }
+ break;
+ case 3:
+ _localctx = new UnnestContext(_localctx);
+ enterOuterAlt(_localctx, 3);
+ {
+ setState(1199);
+ match(UNNEST);
+ setState(1200);
+ match(T__1);
+ setState(1201);
+ expression();
+ setState(1206);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ while (_la==T__3) {
+ {
+ {
+ setState(1202);
+ match(T__3);
+ setState(1203);
+ expression();
+ }
+ }
+ setState(1208);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ }
+ setState(1209);
+ match(T__2);
+ setState(1212);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,156,_ctx) ) {
+ case 1:
+ {
+ setState(1210);
+ match(WITH);
+ setState(1211);
+ match(ORDINALITY);
+ }
+ break;
+ }
+ }
+ break;
+ case 4:
+ _localctx = new LateralContext(_localctx);
+ enterOuterAlt(_localctx, 4);
+ {
+ setState(1214);
+ match(LATERAL);
+ setState(1215);
+ match(T__1);
+ setState(1216);
+ query();
+ setState(1217);
+ match(T__2);
+ }
+ break;
+ case 5:
+ _localctx = new ParenthesizedRelationContext(_localctx);
+ enterOuterAlt(_localctx, 5);
+ {
+ setState(1219);
+ match(T__1);
+ setState(1220);
+ relation(0);
+ setState(1221);
+ match(T__2);
+ }
+ 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 BooleanExpressionContext booleanExpression() {
+ return getRuleContext(BooleanExpressionContext.class,0);
+ }
+ public ExpressionContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_expression; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterExpression(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitExpression(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitExpression(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final ExpressionContext expression() throws RecognitionException {
+ ExpressionContext _localctx = new ExpressionContext(_ctx, getState());
+ enterRule(_localctx, 84, RULE_expression);
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(1225);
+ booleanExpression(0);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class BooleanExpressionContext extends ParserRuleContext {
+ public BooleanExpressionContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_booleanExpression; }
+
+ public BooleanExpressionContext() { }
+ public void copyFrom(BooleanExpressionContext ctx) {
+ super.copyFrom(ctx);
+ }
+ }
+ public static class LogicalNotContext extends BooleanExpressionContext {
+ public TerminalNode NOT() { return getToken(PrestoSqlParser.NOT, 0); }
+ public BooleanExpressionContext booleanExpression() {
+ return getRuleContext(BooleanExpressionContext.class,0);
+ }
+ public LogicalNotContext(BooleanExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterLogicalNot(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitLogicalNot(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitLogicalNot(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class PredicatedContext extends BooleanExpressionContext {
+ public ValueExpressionContext valueExpression;
+ public ValueExpressionContext valueExpression() {
+ return getRuleContext(ValueExpressionContext.class,0);
+ }
+ public PredicateContext predicate() {
+ return getRuleContext(PredicateContext.class,0);
+ }
+ public PredicatedContext(BooleanExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterPredicated(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitPredicated(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitPredicated(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class LogicalBinaryContext extends BooleanExpressionContext {
+ public BooleanExpressionContext left;
+ public Token operator;
+ public BooleanExpressionContext right;
+ public List booleanExpression() {
+ return getRuleContexts(BooleanExpressionContext.class);
+ }
+ public BooleanExpressionContext booleanExpression(int i) {
+ return getRuleContext(BooleanExpressionContext.class,i);
+ }
+ public TerminalNode AND() { return getToken(PrestoSqlParser.AND, 0); }
+ public TerminalNode OR() { return getToken(PrestoSqlParser.OR, 0); }
+ public LogicalBinaryContext(BooleanExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterLogicalBinary(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitLogicalBinary(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitLogicalBinary(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final BooleanExpressionContext booleanExpression() throws RecognitionException {
+ return booleanExpression(0);
+ }
+
+ private BooleanExpressionContext booleanExpression(int _p) throws RecognitionException {
+ ParserRuleContext _parentctx = _ctx;
+ int _parentState = getState();
+ BooleanExpressionContext _localctx = new BooleanExpressionContext(_ctx, _parentState);
+ BooleanExpressionContext _prevctx = _localctx;
+ int _startState = 86;
+ enterRecursionRule(_localctx, 86, RULE_booleanExpression, _p);
+ try {
+ int _alt;
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(1234);
+ _errHandler.sync(this);
+ switch (_input.LA(1)) {
+ case T__1:
+ case T__4:
+ case ADD:
+ case ADMIN:
+ case ALL:
+ case ANALYZE:
+ case ANY:
+ case ARRAY:
+ case ASC:
+ case AT:
+ case BERNOULLI:
+ case CALL:
+ case CALLED:
+ case CASCADE:
+ case CASE:
+ case CAST:
+ case CATALOGS:
+ case COLUMN:
+ case COLUMNS:
+ case COMMENT:
+ case COMMIT:
+ case COMMITTED:
+ case CURRENT:
+ case CURRENT_DATE:
+ case CURRENT_ROLE:
+ case CURRENT_TIME:
+ case CURRENT_TIMESTAMP:
+ case CURRENT_USER:
+ case DATA:
+ case DATE:
+ case DAY:
+ case DEFINER:
+ case DESC:
+ case DETERMINISTIC:
+ case DISTRIBUTED:
+ case EXCLUDING:
+ case EXISTS:
+ case EXPLAIN:
+ case EXTRACT:
+ case EXTERNAL:
+ case FALSE:
+ case FILTER:
+ case FIRST:
+ case FOLLOWING:
+ case FORMAT:
+ case FUNCTION:
+ case FUNCTIONS:
+ case GRANT:
+ case GRANTED:
+ case GRANTS:
+ case GRAPHVIZ:
+ case GROUPING:
+ case HOUR:
+ case IF:
+ case IGNORE:
+ case INCLUDING:
+ case INPUT:
+ case INTERVAL:
+ case INVOKER:
+ case IO:
+ case ISOLATION:
+ case JSON:
+ case LANGUAGE:
+ case LAST:
+ case LATERAL:
+ case LEVEL:
+ case LIMIT:
+ case LOCALTIME:
+ case LOCALTIMESTAMP:
+ case LOGICAL:
+ case MAP:
+ case MATERIALIZED:
+ case MINUTE:
+ case MONTH:
+ case NAME:
+ case NFC:
+ case NFD:
+ case NFKC:
+ case NFKD:
+ case NO:
+ case NONE:
+ case NORMALIZE:
+ case NULL:
+ case NULLIF:
+ case NULLS:
+ case OFFSET:
+ case ONLY:
+ case OPTION:
+ case ORDINALITY:
+ case OUTPUT:
+ case OVER:
+ case PARTITION:
+ case PARTITIONS:
+ case POSITION:
+ case PRECEDING:
+ case PRIVILEGES:
+ case PROPERTIES:
+ case RANGE:
+ case READ:
+ case REFRESH:
+ case RENAME:
+ case REPEATABLE:
+ case REPLACE:
+ case RESET:
+ case RESPECT:
+ case RESTRICT:
+ case RETURN:
+ case RETURNS:
+ case REVOKE:
+ case ROLE:
+ case ROLES:
+ case ROLLBACK:
+ case ROW:
+ case ROWS:
+ case SCHEMA:
+ case SCHEMAS:
+ case SECOND:
+ case SECURITY:
+ case SERIALIZABLE:
+ case SESSION:
+ case SET:
+ case SETS:
+ case SHOW:
+ case SOME:
+ case SQL:
+ case START:
+ case STATS:
+ case SUBSTRING:
+ case SYSTEM:
+ case TABLES:
+ case TABLESAMPLE:
+ case TEMPORARY:
+ case TEXT:
+ case TIME:
+ case TIMESTAMP:
+ case TO:
+ case TRANSACTION:
+ case TRUE:
+ case TRY_CAST:
+ case TYPE:
+ case UNBOUNDED:
+ case UNCOMMITTED:
+ case USE:
+ case USER:
+ case VALIDATE:
+ case VERBOSE:
+ case VIEW:
+ case WORK:
+ case WRITE:
+ case YEAR:
+ case ZONE:
+ case PLUS:
+ case MINUS:
+ case STRING:
+ case UNICODE_STRING:
+ case BINARY_LITERAL:
+ case INTEGER_VALUE:
+ case DECIMAL_VALUE:
+ case DOUBLE_VALUE:
+ case IDENTIFIER:
+ case DIGIT_IDENTIFIER:
+ case QUOTED_IDENTIFIER:
+ case BACKQUOTED_IDENTIFIER:
+ case DOUBLE_PRECISION:
+ {
+ _localctx = new PredicatedContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+
+ setState(1228);
+ ((PredicatedContext)_localctx).valueExpression = valueExpression(0);
+ setState(1230);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,158,_ctx) ) {
+ case 1:
+ {
+ setState(1229);
+ predicate(((PredicatedContext)_localctx).valueExpression);
+ }
+ break;
+ }
+ }
+ break;
+ case NOT:
+ {
+ _localctx = new LogicalNotContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(1232);
+ match(NOT);
+ setState(1233);
+ booleanExpression(3);
+ }
+ break;
+ default:
+ throw new NoViableAltException(this);
+ }
+ _ctx.stop = _input.LT(-1);
+ setState(1244);
+ _errHandler.sync(this);
+ _alt = getInterpreter().adaptivePredict(_input,161,_ctx);
+ while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
+ if ( _alt==1 ) {
+ if ( _parseListeners!=null ) triggerExitRuleEvent();
+ _prevctx = _localctx;
+ {
+ setState(1242);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,160,_ctx) ) {
+ case 1:
+ {
+ _localctx = new LogicalBinaryContext(new BooleanExpressionContext(_parentctx, _parentState));
+ ((LogicalBinaryContext)_localctx).left = _prevctx;
+ pushNewRecursionContext(_localctx, _startState, RULE_booleanExpression);
+ setState(1236);
+ if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)");
+ setState(1237);
+ ((LogicalBinaryContext)_localctx).operator = match(AND);
+ setState(1238);
+ ((LogicalBinaryContext)_localctx).right = booleanExpression(3);
+ }
+ break;
+ case 2:
+ {
+ _localctx = new LogicalBinaryContext(new BooleanExpressionContext(_parentctx, _parentState));
+ ((LogicalBinaryContext)_localctx).left = _prevctx;
+ pushNewRecursionContext(_localctx, _startState, RULE_booleanExpression);
+ setState(1239);
+ if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)");
+ setState(1240);
+ ((LogicalBinaryContext)_localctx).operator = match(OR);
+ setState(1241);
+ ((LogicalBinaryContext)_localctx).right = booleanExpression(2);
+ }
+ break;
+ }
+ }
+ }
+ setState(1246);
+ _errHandler.sync(this);
+ _alt = getInterpreter().adaptivePredict(_input,161,_ctx);
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ unrollRecursionContexts(_parentctx);
+ }
+ return _localctx;
+ }
+
+ public static class PredicateContext extends ParserRuleContext {
+ public ParserRuleContext value;
+ public PredicateContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); }
+ public PredicateContext(ParserRuleContext parent, int invokingState, ParserRuleContext value) {
+ super(parent, invokingState);
+ this.value = value;
+ }
+ @Override public int getRuleIndex() { return RULE_predicate; }
+
+ public PredicateContext() { }
+ public void copyFrom(PredicateContext ctx) {
+ super.copyFrom(ctx);
+ this.value = ctx.value;
+ }
+ }
+ public static class ComparisonContext extends PredicateContext {
+ public ValueExpressionContext right;
+ public ComparisonOperatorContext comparisonOperator() {
+ return getRuleContext(ComparisonOperatorContext.class,0);
+ }
+ public ValueExpressionContext valueExpression() {
+ return getRuleContext(ValueExpressionContext.class,0);
+ }
+ public ComparisonContext(PredicateContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterComparison(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitComparison(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitComparison(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class LikeContext extends PredicateContext {
+ public ValueExpressionContext pattern;
+ public ValueExpressionContext escape;
+ public TerminalNode LIKE() { return getToken(PrestoSqlParser.LIKE, 0); }
+ public List valueExpression() {
+ return getRuleContexts(ValueExpressionContext.class);
+ }
+ public ValueExpressionContext valueExpression(int i) {
+ return getRuleContext(ValueExpressionContext.class,i);
+ }
+ public TerminalNode NOT() { return getToken(PrestoSqlParser.NOT, 0); }
+ public TerminalNode ESCAPE() { return getToken(PrestoSqlParser.ESCAPE, 0); }
+ public LikeContext(PredicateContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterLike(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitLike(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitLike(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class InSubqueryContext extends PredicateContext {
+ public TerminalNode IN() { return getToken(PrestoSqlParser.IN, 0); }
+ public QueryContext query() {
+ return getRuleContext(QueryContext.class,0);
+ }
+ public TerminalNode NOT() { return getToken(PrestoSqlParser.NOT, 0); }
+ public InSubqueryContext(PredicateContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterInSubquery(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitInSubquery(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitInSubquery(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class DistinctFromContext extends PredicateContext {
+ public ValueExpressionContext right;
+ public TerminalNode IS() { return getToken(PrestoSqlParser.IS, 0); }
+ public TerminalNode DISTINCT() { return getToken(PrestoSqlParser.DISTINCT, 0); }
+ public TerminalNode FROM() { return getToken(PrestoSqlParser.FROM, 0); }
+ public ValueExpressionContext valueExpression() {
+ return getRuleContext(ValueExpressionContext.class,0);
+ }
+ public TerminalNode NOT() { return getToken(PrestoSqlParser.NOT, 0); }
+ public DistinctFromContext(PredicateContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterDistinctFrom(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitDistinctFrom(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitDistinctFrom(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class InListContext extends PredicateContext {
+ public TerminalNode IN() { return getToken(PrestoSqlParser.IN, 0); }
+ public List expression() {
+ return getRuleContexts(ExpressionContext.class);
+ }
+ public ExpressionContext expression(int i) {
+ return getRuleContext(ExpressionContext.class,i);
+ }
+ public TerminalNode NOT() { return getToken(PrestoSqlParser.NOT, 0); }
+ public InListContext(PredicateContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterInList(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitInList(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitInList(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class NullPredicateContext extends PredicateContext {
+ public TerminalNode IS() { return getToken(PrestoSqlParser.IS, 0); }
+ public TerminalNode NULL() { return getToken(PrestoSqlParser.NULL, 0); }
+ public TerminalNode NOT() { return getToken(PrestoSqlParser.NOT, 0); }
+ public NullPredicateContext(PredicateContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterNullPredicate(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitNullPredicate(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitNullPredicate(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class BetweenContext extends PredicateContext {
+ public ValueExpressionContext lower;
+ public ValueExpressionContext upper;
+ public TerminalNode BETWEEN() { return getToken(PrestoSqlParser.BETWEEN, 0); }
+ public TerminalNode AND() { return getToken(PrestoSqlParser.AND, 0); }
+ public List valueExpression() {
+ return getRuleContexts(ValueExpressionContext.class);
+ }
+ public ValueExpressionContext valueExpression(int i) {
+ return getRuleContext(ValueExpressionContext.class,i);
+ }
+ public TerminalNode NOT() { return getToken(PrestoSqlParser.NOT, 0); }
+ public BetweenContext(PredicateContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterBetween(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitBetween(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitBetween(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class QuantifiedComparisonContext extends PredicateContext {
+ public ComparisonOperatorContext comparisonOperator() {
+ return getRuleContext(ComparisonOperatorContext.class,0);
+ }
+ public ComparisonQuantifierContext comparisonQuantifier() {
+ return getRuleContext(ComparisonQuantifierContext.class,0);
+ }
+ public QueryContext query() {
+ return getRuleContext(QueryContext.class,0);
+ }
+ public QuantifiedComparisonContext(PredicateContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterQuantifiedComparison(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitQuantifiedComparison(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitQuantifiedComparison(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final PredicateContext predicate(ParserRuleContext value) throws RecognitionException {
+ PredicateContext _localctx = new PredicateContext(_ctx, getState(), value);
+ enterRule(_localctx, 88, RULE_predicate);
+ int _la;
+ try {
+ setState(1308);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,170,_ctx) ) {
+ case 1:
+ _localctx = new ComparisonContext(_localctx);
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(1247);
+ comparisonOperator();
+ setState(1248);
+ ((ComparisonContext)_localctx).right = valueExpression(0);
+ }
+ break;
+ case 2:
+ _localctx = new QuantifiedComparisonContext(_localctx);
+ enterOuterAlt(_localctx, 2);
+ {
+ setState(1250);
+ comparisonOperator();
+ setState(1251);
+ comparisonQuantifier();
+ setState(1252);
+ match(T__1);
+ setState(1253);
+ query();
+ setState(1254);
+ match(T__2);
+ }
+ break;
+ case 3:
+ _localctx = new BetweenContext(_localctx);
+ enterOuterAlt(_localctx, 3);
+ {
+ setState(1257);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==NOT) {
+ {
+ setState(1256);
+ match(NOT);
+ }
+ }
+
+ setState(1259);
+ match(BETWEEN);
+ setState(1260);
+ ((BetweenContext)_localctx).lower = valueExpression(0);
+ setState(1261);
+ match(AND);
+ setState(1262);
+ ((BetweenContext)_localctx).upper = valueExpression(0);
+ }
+ break;
+ case 4:
+ _localctx = new InListContext(_localctx);
+ enterOuterAlt(_localctx, 4);
+ {
+ setState(1265);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==NOT) {
+ {
+ setState(1264);
+ match(NOT);
+ }
+ }
+
+ setState(1267);
+ match(IN);
+ setState(1268);
+ match(T__1);
+ setState(1269);
+ expression();
+ setState(1274);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ while (_la==T__3) {
+ {
+ {
+ setState(1270);
+ match(T__3);
+ setState(1271);
+ expression();
+ }
+ }
+ setState(1276);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ }
+ setState(1277);
+ match(T__2);
+ }
+ break;
+ case 5:
+ _localctx = new InSubqueryContext(_localctx);
+ enterOuterAlt(_localctx, 5);
+ {
+ setState(1280);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==NOT) {
+ {
+ setState(1279);
+ match(NOT);
+ }
+ }
+
+ setState(1282);
+ match(IN);
+ setState(1283);
+ match(T__1);
+ setState(1284);
+ query();
+ setState(1285);
+ match(T__2);
+ }
+ break;
+ case 6:
+ _localctx = new LikeContext(_localctx);
+ enterOuterAlt(_localctx, 6);
+ {
+ setState(1288);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==NOT) {
+ {
+ setState(1287);
+ match(NOT);
+ }
+ }
+
+ setState(1290);
+ match(LIKE);
+ setState(1291);
+ ((LikeContext)_localctx).pattern = valueExpression(0);
+ setState(1294);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,167,_ctx) ) {
+ case 1:
+ {
+ setState(1292);
+ match(ESCAPE);
+ setState(1293);
+ ((LikeContext)_localctx).escape = valueExpression(0);
+ }
+ break;
+ }
+ }
+ break;
+ case 7:
+ _localctx = new NullPredicateContext(_localctx);
+ enterOuterAlt(_localctx, 7);
+ {
+ setState(1296);
+ match(IS);
+ setState(1298);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==NOT) {
+ {
+ setState(1297);
+ match(NOT);
+ }
+ }
+
+ setState(1300);
+ match(NULL);
+ }
+ break;
+ case 8:
+ _localctx = new DistinctFromContext(_localctx);
+ enterOuterAlt(_localctx, 8);
+ {
+ setState(1301);
+ match(IS);
+ setState(1303);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==NOT) {
+ {
+ setState(1302);
+ match(NOT);
+ }
+ }
+
+ setState(1305);
+ match(DISTINCT);
+ setState(1306);
+ match(FROM);
+ setState(1307);
+ ((DistinctFromContext)_localctx).right = valueExpression(0);
+ }
+ break;
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class ValueExpressionContext extends ParserRuleContext {
+ public ValueExpressionContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_valueExpression; }
+
+ public ValueExpressionContext() { }
+ public void copyFrom(ValueExpressionContext ctx) {
+ super.copyFrom(ctx);
+ }
+ }
+ public static class ValueExpressionDefaultContext extends ValueExpressionContext {
+ public PrimaryExpressionContext primaryExpression() {
+ return getRuleContext(PrimaryExpressionContext.class,0);
+ }
+ public ValueExpressionDefaultContext(ValueExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterValueExpressionDefault(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitValueExpressionDefault(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitValueExpressionDefault(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class ConcatenationContext extends ValueExpressionContext {
+ public ValueExpressionContext left;
+ public ValueExpressionContext right;
+ public TerminalNode CONCAT() { return getToken(PrestoSqlParser.CONCAT, 0); }
+ public List valueExpression() {
+ return getRuleContexts(ValueExpressionContext.class);
+ }
+ public ValueExpressionContext valueExpression(int i) {
+ return getRuleContext(ValueExpressionContext.class,i);
+ }
+ public ConcatenationContext(ValueExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterConcatenation(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitConcatenation(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitConcatenation(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class ArithmeticBinaryContext extends ValueExpressionContext {
+ public ValueExpressionContext left;
+ public Token operator;
+ public ValueExpressionContext right;
+ public List valueExpression() {
+ return getRuleContexts(ValueExpressionContext.class);
+ }
+ public ValueExpressionContext valueExpression(int i) {
+ return getRuleContext(ValueExpressionContext.class,i);
+ }
+ public TerminalNode ASTERISK() { return getToken(PrestoSqlParser.ASTERISK, 0); }
+ public TerminalNode SLASH() { return getToken(PrestoSqlParser.SLASH, 0); }
+ public TerminalNode PERCENT() { return getToken(PrestoSqlParser.PERCENT, 0); }
+ public TerminalNode PLUS() { return getToken(PrestoSqlParser.PLUS, 0); }
+ public TerminalNode MINUS() { return getToken(PrestoSqlParser.MINUS, 0); }
+ public ArithmeticBinaryContext(ValueExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterArithmeticBinary(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitArithmeticBinary(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitArithmeticBinary(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class ArithmeticUnaryContext extends ValueExpressionContext {
+ public Token operator;
+ public ValueExpressionContext valueExpression() {
+ return getRuleContext(ValueExpressionContext.class,0);
+ }
+ public TerminalNode MINUS() { return getToken(PrestoSqlParser.MINUS, 0); }
+ public TerminalNode PLUS() { return getToken(PrestoSqlParser.PLUS, 0); }
+ public ArithmeticUnaryContext(ValueExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterArithmeticUnary(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitArithmeticUnary(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitArithmeticUnary(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class AtTimeZoneContext extends ValueExpressionContext {
+ public ValueExpressionContext valueExpression() {
+ return getRuleContext(ValueExpressionContext.class,0);
+ }
+ public TerminalNode AT() { return getToken(PrestoSqlParser.AT, 0); }
+ public TimeZoneSpecifierContext timeZoneSpecifier() {
+ return getRuleContext(TimeZoneSpecifierContext.class,0);
+ }
+ public AtTimeZoneContext(ValueExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterAtTimeZone(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitAtTimeZone(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitAtTimeZone(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final ValueExpressionContext valueExpression() throws RecognitionException {
+ return valueExpression(0);
+ }
+
+ private ValueExpressionContext valueExpression(int _p) throws RecognitionException {
+ ParserRuleContext _parentctx = _ctx;
+ int _parentState = getState();
+ ValueExpressionContext _localctx = new ValueExpressionContext(_ctx, _parentState);
+ ValueExpressionContext _prevctx = _localctx;
+ int _startState = 90;
+ enterRecursionRule(_localctx, 90, RULE_valueExpression, _p);
+ int _la;
+ try {
+ int _alt;
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(1314);
+ _errHandler.sync(this);
+ switch (_input.LA(1)) {
+ case T__1:
+ case T__4:
+ case ADD:
+ case ADMIN:
+ case ALL:
+ case ANALYZE:
+ case ANY:
+ case ARRAY:
+ case ASC:
+ case AT:
+ case BERNOULLI:
+ case CALL:
+ case CALLED:
+ case CASCADE:
+ case CASE:
+ case CAST:
+ case CATALOGS:
+ case COLUMN:
+ case COLUMNS:
+ case COMMENT:
+ case COMMIT:
+ case COMMITTED:
+ case CURRENT:
+ case CURRENT_DATE:
+ case CURRENT_ROLE:
+ case CURRENT_TIME:
+ case CURRENT_TIMESTAMP:
+ case CURRENT_USER:
+ case DATA:
+ case DATE:
+ case DAY:
+ case DEFINER:
+ case DESC:
+ case DETERMINISTIC:
+ case DISTRIBUTED:
+ case EXCLUDING:
+ case EXISTS:
+ case EXPLAIN:
+ case EXTRACT:
+ case EXTERNAL:
+ case FALSE:
+ case FILTER:
+ case FIRST:
+ case FOLLOWING:
+ case FORMAT:
+ case FUNCTION:
+ case FUNCTIONS:
+ case GRANT:
+ case GRANTED:
+ case GRANTS:
+ case GRAPHVIZ:
+ case GROUPING:
+ case HOUR:
+ case IF:
+ case IGNORE:
+ case INCLUDING:
+ case INPUT:
+ case INTERVAL:
+ case INVOKER:
+ case IO:
+ case ISOLATION:
+ case JSON:
+ case LANGUAGE:
+ case LAST:
+ case LATERAL:
+ case LEVEL:
+ case LIMIT:
+ case LOCALTIME:
+ case LOCALTIMESTAMP:
+ case LOGICAL:
+ case MAP:
+ case MATERIALIZED:
+ case MINUTE:
+ case MONTH:
+ case NAME:
+ case NFC:
+ case NFD:
+ case NFKC:
+ case NFKD:
+ case NO:
+ case NONE:
+ case NORMALIZE:
+ case NULL:
+ case NULLIF:
+ case NULLS:
+ case OFFSET:
+ case ONLY:
+ case OPTION:
+ case ORDINALITY:
+ case OUTPUT:
+ case OVER:
+ case PARTITION:
+ case PARTITIONS:
+ case POSITION:
+ case PRECEDING:
+ case PRIVILEGES:
+ case PROPERTIES:
+ case RANGE:
+ case READ:
+ case REFRESH:
+ case RENAME:
+ case REPEATABLE:
+ case REPLACE:
+ case RESET:
+ case RESPECT:
+ case RESTRICT:
+ case RETURN:
+ case RETURNS:
+ case REVOKE:
+ case ROLE:
+ case ROLES:
+ case ROLLBACK:
+ case ROW:
+ case ROWS:
+ case SCHEMA:
+ case SCHEMAS:
+ case SECOND:
+ case SECURITY:
+ case SERIALIZABLE:
+ case SESSION:
+ case SET:
+ case SETS:
+ case SHOW:
+ case SOME:
+ case SQL:
+ case START:
+ case STATS:
+ case SUBSTRING:
+ case SYSTEM:
+ case TABLES:
+ case TABLESAMPLE:
+ case TEMPORARY:
+ case TEXT:
+ case TIME:
+ case TIMESTAMP:
+ case TO:
+ case TRANSACTION:
+ case TRUE:
+ case TRY_CAST:
+ case TYPE:
+ case UNBOUNDED:
+ case UNCOMMITTED:
+ case USE:
+ case USER:
+ case VALIDATE:
+ case VERBOSE:
+ case VIEW:
+ case WORK:
+ case WRITE:
+ case YEAR:
+ case ZONE:
+ case STRING:
+ case UNICODE_STRING:
+ case BINARY_LITERAL:
+ case INTEGER_VALUE:
+ case DECIMAL_VALUE:
+ case DOUBLE_VALUE:
+ case IDENTIFIER:
+ case DIGIT_IDENTIFIER:
+ case QUOTED_IDENTIFIER:
+ case BACKQUOTED_IDENTIFIER:
+ case DOUBLE_PRECISION:
+ {
+ _localctx = new ValueExpressionDefaultContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+
+ setState(1311);
+ primaryExpression(0);
+ }
+ break;
+ case PLUS:
+ case MINUS:
+ {
+ _localctx = new ArithmeticUnaryContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(1312);
+ ((ArithmeticUnaryContext)_localctx).operator = _input.LT(1);
+ _la = _input.LA(1);
+ if ( !(_la==PLUS || _la==MINUS) ) {
+ ((ArithmeticUnaryContext)_localctx).operator = (Token)_errHandler.recoverInline(this);
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
+ consume();
+ }
+ setState(1313);
+ valueExpression(4);
+ }
+ break;
+ default:
+ throw new NoViableAltException(this);
+ }
+ _ctx.stop = _input.LT(-1);
+ setState(1330);
+ _errHandler.sync(this);
+ _alt = getInterpreter().adaptivePredict(_input,173,_ctx);
+ while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
+ if ( _alt==1 ) {
+ if ( _parseListeners!=null ) triggerExitRuleEvent();
+ _prevctx = _localctx;
+ {
+ setState(1328);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,172,_ctx) ) {
+ case 1:
+ {
+ _localctx = new ArithmeticBinaryContext(new ValueExpressionContext(_parentctx, _parentState));
+ ((ArithmeticBinaryContext)_localctx).left = _prevctx;
+ pushNewRecursionContext(_localctx, _startState, RULE_valueExpression);
+ setState(1316);
+ if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)");
+ setState(1317);
+ ((ArithmeticBinaryContext)_localctx).operator = _input.LT(1);
+ _la = _input.LA(1);
+ if ( !(((((_la - 221)) & ~0x3f) == 0 && ((1L << (_la - 221)) & ((1L << (ASTERISK - 221)) | (1L << (SLASH - 221)) | (1L << (PERCENT - 221)))) != 0)) ) {
+ ((ArithmeticBinaryContext)_localctx).operator = (Token)_errHandler.recoverInline(this);
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
+ consume();
+ }
+ setState(1318);
+ ((ArithmeticBinaryContext)_localctx).right = valueExpression(4);
+ }
+ break;
+ case 2:
+ {
+ _localctx = new ArithmeticBinaryContext(new ValueExpressionContext(_parentctx, _parentState));
+ ((ArithmeticBinaryContext)_localctx).left = _prevctx;
+ pushNewRecursionContext(_localctx, _startState, RULE_valueExpression);
+ setState(1319);
+ if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)");
+ setState(1320);
+ ((ArithmeticBinaryContext)_localctx).operator = _input.LT(1);
+ _la = _input.LA(1);
+ if ( !(_la==PLUS || _la==MINUS) ) {
+ ((ArithmeticBinaryContext)_localctx).operator = (Token)_errHandler.recoverInline(this);
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
+ consume();
+ }
+ setState(1321);
+ ((ArithmeticBinaryContext)_localctx).right = valueExpression(3);
+ }
+ break;
+ case 3:
+ {
+ _localctx = new ConcatenationContext(new ValueExpressionContext(_parentctx, _parentState));
+ ((ConcatenationContext)_localctx).left = _prevctx;
+ pushNewRecursionContext(_localctx, _startState, RULE_valueExpression);
+ setState(1322);
+ if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)");
+ setState(1323);
+ match(CONCAT);
+ setState(1324);
+ ((ConcatenationContext)_localctx).right = valueExpression(2);
+ }
+ break;
+ case 4:
+ {
+ _localctx = new AtTimeZoneContext(new ValueExpressionContext(_parentctx, _parentState));
+ pushNewRecursionContext(_localctx, _startState, RULE_valueExpression);
+ setState(1325);
+ if (!(precpred(_ctx, 5))) throw new FailedPredicateException(this, "precpred(_ctx, 5)");
+ setState(1326);
+ match(AT);
+ setState(1327);
+ timeZoneSpecifier();
+ }
+ break;
+ }
+ }
+ }
+ setState(1332);
+ _errHandler.sync(this);
+ _alt = getInterpreter().adaptivePredict(_input,173,_ctx);
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ unrollRecursionContexts(_parentctx);
+ }
+ return _localctx;
+ }
+
+ public static class PrimaryExpressionContext extends ParserRuleContext {
+ public PrimaryExpressionContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_primaryExpression; }
+
+ public PrimaryExpressionContext() { }
+ public void copyFrom(PrimaryExpressionContext ctx) {
+ super.copyFrom(ctx);
+ }
+ }
+ public static class DereferenceContext extends PrimaryExpressionContext {
+ public PrimaryExpressionContext base;
+ public IdentifierContext fieldName;
+ public PrimaryExpressionContext primaryExpression() {
+ return getRuleContext(PrimaryExpressionContext.class,0);
+ }
+ public IdentifierContext identifier() {
+ return getRuleContext(IdentifierContext.class,0);
+ }
+ public DereferenceContext(PrimaryExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterDereference(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitDereference(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitDereference(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class TypeConstructorContext extends PrimaryExpressionContext {
+ public IdentifierContext identifier() {
+ return getRuleContext(IdentifierContext.class,0);
+ }
+ public StringContext string() {
+ return getRuleContext(StringContext.class,0);
+ }
+ public TerminalNode DOUBLE_PRECISION() { return getToken(PrestoSqlParser.DOUBLE_PRECISION, 0); }
+ public TypeConstructorContext(PrimaryExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterTypeConstructor(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitTypeConstructor(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitTypeConstructor(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class SpecialDateTimeFunctionContext extends PrimaryExpressionContext {
+ public Token name;
+ public Token precision;
+ public TerminalNode CURRENT_DATE() { return getToken(PrestoSqlParser.CURRENT_DATE, 0); }
+ public TerminalNode CURRENT_TIME() { return getToken(PrestoSqlParser.CURRENT_TIME, 0); }
+ public TerminalNode INTEGER_VALUE() { return getToken(PrestoSqlParser.INTEGER_VALUE, 0); }
+ public TerminalNode CURRENT_TIMESTAMP() { return getToken(PrestoSqlParser.CURRENT_TIMESTAMP, 0); }
+ public TerminalNode LOCALTIME() { return getToken(PrestoSqlParser.LOCALTIME, 0); }
+ public TerminalNode LOCALTIMESTAMP() { return getToken(PrestoSqlParser.LOCALTIMESTAMP, 0); }
+ public SpecialDateTimeFunctionContext(PrimaryExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSpecialDateTimeFunction(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSpecialDateTimeFunction(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitSpecialDateTimeFunction(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class SubstringContext extends PrimaryExpressionContext {
+ public TerminalNode SUBSTRING() { return getToken(PrestoSqlParser.SUBSTRING, 0); }
+ public List valueExpression() {
+ return getRuleContexts(ValueExpressionContext.class);
+ }
+ public ValueExpressionContext valueExpression(int i) {
+ return getRuleContext(ValueExpressionContext.class,i);
+ }
+ public TerminalNode FROM() { return getToken(PrestoSqlParser.FROM, 0); }
+ public TerminalNode FOR() { return getToken(PrestoSqlParser.FOR, 0); }
+ public SubstringContext(PrimaryExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSubstring(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSubstring(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitSubstring(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class CastContext extends PrimaryExpressionContext {
+ public TerminalNode CAST() { return getToken(PrestoSqlParser.CAST, 0); }
+ public ExpressionContext expression() {
+ return getRuleContext(ExpressionContext.class,0);
+ }
+ public TerminalNode AS() { return getToken(PrestoSqlParser.AS, 0); }
+ public TypeContext type() {
+ return getRuleContext(TypeContext.class,0);
+ }
+ public TerminalNode TRY_CAST() { return getToken(PrestoSqlParser.TRY_CAST, 0); }
+ public CastContext(PrimaryExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterCast(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitCast(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitCast(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class LambdaContext extends PrimaryExpressionContext {
+ public List identifier() {
+ return getRuleContexts(IdentifierContext.class);
+ }
+ public IdentifierContext identifier(int i) {
+ return getRuleContext(IdentifierContext.class,i);
+ }
+ public ExpressionContext expression() {
+ return getRuleContext(ExpressionContext.class,0);
+ }
+ public LambdaContext(PrimaryExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterLambda(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitLambda(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitLambda(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class ParenthesizedExpressionContext extends PrimaryExpressionContext {
+ public ExpressionContext expression() {
+ return getRuleContext(ExpressionContext.class,0);
+ }
+ public ParenthesizedExpressionContext(PrimaryExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterParenthesizedExpression(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitParenthesizedExpression(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitParenthesizedExpression(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class ParameterContext extends PrimaryExpressionContext {
+ public ParameterContext(PrimaryExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterParameter(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitParameter(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitParameter(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class NormalizeContext extends PrimaryExpressionContext {
+ public TerminalNode NORMALIZE() { return getToken(PrestoSqlParser.NORMALIZE, 0); }
+ public ValueExpressionContext valueExpression() {
+ return getRuleContext(ValueExpressionContext.class,0);
+ }
+ public NormalFormContext normalForm() {
+ return getRuleContext(NormalFormContext.class,0);
+ }
+ public NormalizeContext(PrimaryExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterNormalize(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitNormalize(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitNormalize(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class IntervalLiteralContext extends PrimaryExpressionContext {
+ public IntervalContext interval() {
+ return getRuleContext(IntervalContext.class,0);
+ }
+ public IntervalLiteralContext(PrimaryExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterIntervalLiteral(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitIntervalLiteral(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitIntervalLiteral(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class NumericLiteralContext extends PrimaryExpressionContext {
+ public NumberContext number() {
+ return getRuleContext(NumberContext.class,0);
+ }
+ public NumericLiteralContext(PrimaryExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterNumericLiteral(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitNumericLiteral(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitNumericLiteral(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class BooleanLiteralContext extends PrimaryExpressionContext {
+ public BooleanValueContext booleanValue() {
+ return getRuleContext(BooleanValueContext.class,0);
+ }
+ public BooleanLiteralContext(PrimaryExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterBooleanLiteral(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitBooleanLiteral(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitBooleanLiteral(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class SimpleCaseContext extends PrimaryExpressionContext {
+ public ExpressionContext elseExpression;
+ public TerminalNode CASE() { return getToken(PrestoSqlParser.CASE, 0); }
+ public ValueExpressionContext valueExpression() {
+ return getRuleContext(ValueExpressionContext.class,0);
+ }
+ public TerminalNode END() { return getToken(PrestoSqlParser.END, 0); }
+ public List whenClause() {
+ return getRuleContexts(WhenClauseContext.class);
+ }
+ public WhenClauseContext whenClause(int i) {
+ return getRuleContext(WhenClauseContext.class,i);
+ }
+ public TerminalNode ELSE() { return getToken(PrestoSqlParser.ELSE, 0); }
+ public ExpressionContext expression() {
+ return getRuleContext(ExpressionContext.class,0);
+ }
+ public SimpleCaseContext(PrimaryExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSimpleCase(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSimpleCase(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitSimpleCase(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class ColumnReferenceContext extends PrimaryExpressionContext {
+ public IdentifierContext identifier() {
+ return getRuleContext(IdentifierContext.class,0);
+ }
+ public ColumnReferenceContext(PrimaryExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterColumnReference(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitColumnReference(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitColumnReference(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class NullLiteralContext extends PrimaryExpressionContext {
+ public TerminalNode NULL() { return getToken(PrestoSqlParser.NULL, 0); }
+ public NullLiteralContext(PrimaryExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterNullLiteral(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitNullLiteral(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitNullLiteral(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class RowConstructorContext extends PrimaryExpressionContext {
+ public List expression() {
+ return getRuleContexts(ExpressionContext.class);
+ }
+ public ExpressionContext expression(int i) {
+ return getRuleContext(ExpressionContext.class,i);
+ }
+ public TerminalNode ROW() { return getToken(PrestoSqlParser.ROW, 0); }
+ public RowConstructorContext(PrimaryExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterRowConstructor(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitRowConstructor(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitRowConstructor(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class SubscriptContext extends PrimaryExpressionContext {
+ public PrimaryExpressionContext value;
+ public ValueExpressionContext index;
+ public PrimaryExpressionContext primaryExpression() {
+ return getRuleContext(PrimaryExpressionContext.class,0);
+ }
+ public ValueExpressionContext valueExpression() {
+ return getRuleContext(ValueExpressionContext.class,0);
+ }
+ public SubscriptContext(PrimaryExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSubscript(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSubscript(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitSubscript(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class SubqueryExpressionContext extends PrimaryExpressionContext {
+ public QueryContext query() {
+ return getRuleContext(QueryContext.class,0);
+ }
+ public SubqueryExpressionContext(PrimaryExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSubqueryExpression(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSubqueryExpression(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitSubqueryExpression(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class BinaryLiteralContext extends PrimaryExpressionContext {
+ public TerminalNode BINARY_LITERAL() { return getToken(PrestoSqlParser.BINARY_LITERAL, 0); }
+ public BinaryLiteralContext(PrimaryExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterBinaryLiteral(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitBinaryLiteral(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitBinaryLiteral(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class CurrentUserContext extends PrimaryExpressionContext {
+ public Token name;
+ public TerminalNode CURRENT_USER() { return getToken(PrestoSqlParser.CURRENT_USER, 0); }
+ public CurrentUserContext(PrimaryExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterCurrentUser(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitCurrentUser(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitCurrentUser(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class ExtractContext extends PrimaryExpressionContext {
+ public TerminalNode EXTRACT() { return getToken(PrestoSqlParser.EXTRACT, 0); }
+ public IdentifierContext identifier() {
+ return getRuleContext(IdentifierContext.class,0);
+ }
+ public TerminalNode FROM() { return getToken(PrestoSqlParser.FROM, 0); }
+ public ValueExpressionContext valueExpression() {
+ return getRuleContext(ValueExpressionContext.class,0);
+ }
+ public ExtractContext(PrimaryExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterExtract(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitExtract(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitExtract(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class StringLiteralContext extends PrimaryExpressionContext {
+ public StringContext string() {
+ return getRuleContext(StringContext.class,0);
+ }
+ public StringLiteralContext(PrimaryExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterStringLiteral(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitStringLiteral(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitStringLiteral(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class ArrayConstructorContext extends PrimaryExpressionContext {
+ public TerminalNode ARRAY() { return getToken(PrestoSqlParser.ARRAY, 0); }
+ public List expression() {
+ return getRuleContexts(ExpressionContext.class);
+ }
+ public ExpressionContext expression(int i) {
+ return getRuleContext(ExpressionContext.class,i);
+ }
+ public ArrayConstructorContext(PrimaryExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterArrayConstructor(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitArrayConstructor(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitArrayConstructor(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class FunctionCallContext extends PrimaryExpressionContext {
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public TerminalNode ASTERISK() { return getToken(PrestoSqlParser.ASTERISK, 0); }
+ public FilterContext filter() {
+ return getRuleContext(FilterContext.class,0);
+ }
+ public OverContext over() {
+ return getRuleContext(OverContext.class,0);
+ }
+ public List expression() {
+ return getRuleContexts(ExpressionContext.class);
+ }
+ public ExpressionContext expression(int i) {
+ return getRuleContext(ExpressionContext.class,i);
+ }
+ public TerminalNode ORDER() { return getToken(PrestoSqlParser.ORDER, 0); }
+ public TerminalNode BY() { return getToken(PrestoSqlParser.BY, 0); }
+ public List sortItem() {
+ return getRuleContexts(SortItemContext.class);
+ }
+ public SortItemContext sortItem(int i) {
+ return getRuleContext(SortItemContext.class,i);
+ }
+ public SetQuantifierContext setQuantifier() {
+ return getRuleContext(SetQuantifierContext.class,0);
+ }
+ public NullTreatmentContext nullTreatment() {
+ return getRuleContext(NullTreatmentContext.class,0);
+ }
+ public FunctionCallContext(PrimaryExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterFunctionCall(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitFunctionCall(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitFunctionCall(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class ExistsContext extends PrimaryExpressionContext {
+ public TerminalNode EXISTS() { return getToken(PrestoSqlParser.EXISTS, 0); }
+ public QueryContext query() {
+ return getRuleContext(QueryContext.class,0);
+ }
+ public ExistsContext(PrimaryExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterExists(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitExists(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitExists(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class PositionContext extends PrimaryExpressionContext {
+ public TerminalNode POSITION() { return getToken(PrestoSqlParser.POSITION, 0); }
+ public List valueExpression() {
+ return getRuleContexts(ValueExpressionContext.class);
+ }
+ public ValueExpressionContext valueExpression(int i) {
+ return getRuleContext(ValueExpressionContext.class,i);
+ }
+ public TerminalNode IN() { return getToken(PrestoSqlParser.IN, 0); }
+ public PositionContext(PrimaryExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterPosition(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitPosition(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitPosition(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class SearchedCaseContext extends PrimaryExpressionContext {
+ public ExpressionContext elseExpression;
+ public TerminalNode CASE() { return getToken(PrestoSqlParser.CASE, 0); }
+ public TerminalNode END() { return getToken(PrestoSqlParser.END, 0); }
+ public List whenClause() {
+ return getRuleContexts(WhenClauseContext.class);
+ }
+ public WhenClauseContext whenClause(int i) {
+ return getRuleContext(WhenClauseContext.class,i);
+ }
+ public TerminalNode ELSE() { return getToken(PrestoSqlParser.ELSE, 0); }
+ public ExpressionContext expression() {
+ return getRuleContext(ExpressionContext.class,0);
+ }
+ public SearchedCaseContext(PrimaryExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterSearchedCase(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitSearchedCase(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitSearchedCase(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class GroupingOperationContext extends PrimaryExpressionContext {
+ public TerminalNode GROUPING() { return getToken(PrestoSqlParser.GROUPING, 0); }
+ public List qualifiedName() {
+ return getRuleContexts(QualifiedNameContext.class);
+ }
+ public QualifiedNameContext qualifiedName(int i) {
+ return getRuleContext(QualifiedNameContext.class,i);
+ }
+ public GroupingOperationContext(PrimaryExpressionContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterGroupingOperation(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitGroupingOperation(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitGroupingOperation(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final PrimaryExpressionContext primaryExpression() throws RecognitionException {
+ return primaryExpression(0);
+ }
+
+ private PrimaryExpressionContext primaryExpression(int _p) throws RecognitionException {
+ ParserRuleContext _parentctx = _ctx;
+ int _parentState = getState();
+ PrimaryExpressionContext _localctx = new PrimaryExpressionContext(_ctx, _parentState);
+ PrimaryExpressionContext _prevctx = _localctx;
+ int _startState = 92;
+ enterRecursionRule(_localctx, 92, RULE_primaryExpression, _p);
+ int _la;
+ try {
+ int _alt;
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(1572);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,202,_ctx) ) {
+ case 1:
+ {
+ _localctx = new NullLiteralContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+
+ setState(1334);
+ match(NULL);
+ }
+ break;
+ case 2:
+ {
+ _localctx = new IntervalLiteralContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(1335);
+ interval();
+ }
+ break;
+ case 3:
+ {
+ _localctx = new TypeConstructorContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(1336);
+ identifier();
+ setState(1337);
+ string();
+ }
+ break;
+ case 4:
+ {
+ _localctx = new TypeConstructorContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(1339);
+ match(DOUBLE_PRECISION);
+ setState(1340);
+ string();
+ }
+ break;
+ case 5:
+ {
+ _localctx = new NumericLiteralContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(1341);
+ number();
+ }
+ break;
+ case 6:
+ {
+ _localctx = new BooleanLiteralContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(1342);
+ booleanValue();
+ }
+ break;
+ case 7:
+ {
+ _localctx = new StringLiteralContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(1343);
+ string();
+ }
+ break;
+ case 8:
+ {
+ _localctx = new BinaryLiteralContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(1344);
+ match(BINARY_LITERAL);
+ }
+ break;
+ case 9:
+ {
+ _localctx = new ParameterContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(1345);
+ match(T__4);
+ }
+ break;
+ case 10:
+ {
+ _localctx = new PositionContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(1346);
+ match(POSITION);
+ setState(1347);
+ match(T__1);
+ setState(1348);
+ valueExpression(0);
+ setState(1349);
+ match(IN);
+ setState(1350);
+ valueExpression(0);
+ setState(1351);
+ match(T__2);
+ }
+ break;
+ case 11:
+ {
+ _localctx = new RowConstructorContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(1353);
+ match(T__1);
+ setState(1354);
+ expression();
+ setState(1357);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ do {
+ {
+ {
+ setState(1355);
+ match(T__3);
+ setState(1356);
+ expression();
+ }
+ }
+ setState(1359);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ } while ( _la==T__3 );
+ setState(1361);
+ match(T__2);
+ }
+ break;
+ case 12:
+ {
+ _localctx = new RowConstructorContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(1363);
+ match(ROW);
+ setState(1364);
+ match(T__1);
+ setState(1365);
+ expression();
+ setState(1370);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ while (_la==T__3) {
+ {
+ {
+ setState(1366);
+ match(T__3);
+ setState(1367);
+ expression();
+ }
+ }
+ setState(1372);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ }
+ setState(1373);
+ match(T__2);
+ }
+ break;
+ case 13:
+ {
+ _localctx = new FunctionCallContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(1375);
+ qualifiedName();
+ setState(1376);
+ match(T__1);
+ setState(1377);
+ match(ASTERISK);
+ setState(1378);
+ match(T__2);
+ setState(1380);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,176,_ctx) ) {
+ case 1:
+ {
+ setState(1379);
+ filter();
+ }
+ break;
+ }
+ setState(1383);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,177,_ctx) ) {
+ case 1:
+ {
+ setState(1382);
+ over();
+ }
+ break;
+ }
+ }
+ break;
+ case 14:
+ {
+ _localctx = new FunctionCallContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(1385);
+ qualifiedName();
+ setState(1386);
+ match(T__1);
+ setState(1398);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__1) | (1L << T__4) | (1L << ADD) | (1L << ADMIN) | (1L << ALL) | (1L << ANALYZE) | (1L << ANY) | (1L << ARRAY) | (1L << ASC) | (1L << AT) | (1L << BERNOULLI) | (1L << CALL) | (1L << CALLED) | (1L << CASCADE) | (1L << CASE) | (1L << CAST) | (1L << CATALOGS) | (1L << COLUMN) | (1L << COLUMNS) | (1L << COMMENT) | (1L << COMMIT) | (1L << COMMITTED) | (1L << CURRENT) | (1L << CURRENT_DATE) | (1L << CURRENT_ROLE) | (1L << CURRENT_TIME) | (1L << CURRENT_TIMESTAMP) | (1L << CURRENT_USER) | (1L << DATA) | (1L << DATE) | (1L << DAY) | (1L << DEFINER) | (1L << DESC) | (1L << DETERMINISTIC) | (1L << DISTINCT) | (1L << DISTRIBUTED) | (1L << EXCLUDING) | (1L << EXISTS))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EXPLAIN - 64)) | (1L << (EXTRACT - 64)) | (1L << (EXTERNAL - 64)) | (1L << (FALSE - 64)) | (1L << (FILTER - 64)) | (1L << (FIRST - 64)) | (1L << (FOLLOWING - 64)) | (1L << (FORMAT - 64)) | (1L << (FUNCTION - 64)) | (1L << (FUNCTIONS - 64)) | (1L << (GRANT - 64)) | (1L << (GRANTED - 64)) | (1L << (GRANTS - 64)) | (1L << (GRAPHVIZ - 64)) | (1L << (GROUPING - 64)) | (1L << (HOUR - 64)) | (1L << (IF - 64)) | (1L << (IGNORE - 64)) | (1L << (INCLUDING - 64)) | (1L << (INPUT - 64)) | (1L << (INTERVAL - 64)) | (1L << (INVOKER - 64)) | (1L << (IO - 64)) | (1L << (ISOLATION - 64)) | (1L << (JSON - 64)) | (1L << (LANGUAGE - 64)) | (1L << (LAST - 64)) | (1L << (LATERAL - 64)) | (1L << (LEVEL - 64)) | (1L << (LIMIT - 64)) | (1L << (LOCALTIME - 64)) | (1L << (LOCALTIMESTAMP - 64)) | (1L << (LOGICAL - 64)) | (1L << (MAP - 64)) | (1L << (MATERIALIZED - 64)) | (1L << (MINUTE - 64)) | (1L << (MONTH - 64)) | (1L << (NAME - 64)) | (1L << (NFC - 64)) | (1L << (NFD - 64)) | (1L << (NFKC - 64)) | (1L << (NFKD - 64)) | (1L << (NO - 64)) | (1L << (NONE - 64)) | (1L << (NORMALIZE - 64)) | (1L << (NOT - 64)) | (1L << (NULL - 64)) | (1L << (NULLIF - 64)) | (1L << (NULLS - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OFFSET - 128)) | (1L << (ONLY - 128)) | (1L << (OPTION - 128)) | (1L << (ORDINALITY - 128)) | (1L << (OUTPUT - 128)) | (1L << (OVER - 128)) | (1L << (PARTITION - 128)) | (1L << (PARTITIONS - 128)) | (1L << (POSITION - 128)) | (1L << (PRECEDING - 128)) | (1L << (PRIVILEGES - 128)) | (1L << (PROPERTIES - 128)) | (1L << (RANGE - 128)) | (1L << (READ - 128)) | (1L << (REFRESH - 128)) | (1L << (RENAME - 128)) | (1L << (REPEATABLE - 128)) | (1L << (REPLACE - 128)) | (1L << (RESET - 128)) | (1L << (RESPECT - 128)) | (1L << (RESTRICT - 128)) | (1L << (RETURN - 128)) | (1L << (RETURNS - 128)) | (1L << (REVOKE - 128)) | (1L << (ROLE - 128)) | (1L << (ROLES - 128)) | (1L << (ROLLBACK - 128)) | (1L << (ROW - 128)) | (1L << (ROWS - 128)) | (1L << (SCHEMA - 128)) | (1L << (SCHEMAS - 128)) | (1L << (SECOND - 128)) | (1L << (SECURITY - 128)) | (1L << (SERIALIZABLE - 128)) | (1L << (SESSION - 128)) | (1L << (SET - 128)) | (1L << (SETS - 128)) | (1L << (SHOW - 128)) | (1L << (SOME - 128)) | (1L << (SQL - 128)) | (1L << (START - 128)) | (1L << (STATS - 128)) | (1L << (SUBSTRING - 128)) | (1L << (SYSTEM - 128)) | (1L << (TABLES - 128)) | (1L << (TABLESAMPLE - 128)) | (1L << (TEMPORARY - 128)) | (1L << (TEXT - 128)) | (1L << (TIME - 128)) | (1L << (TIMESTAMP - 128)) | (1L << (TO - 128)) | (1L << (TRANSACTION - 128)) | (1L << (TRUE - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (TRY_CAST - 192)) | (1L << (TYPE - 192)) | (1L << (UNBOUNDED - 192)) | (1L << (UNCOMMITTED - 192)) | (1L << (USE - 192)) | (1L << (USER - 192)) | (1L << (VALIDATE - 192)) | (1L << (VERBOSE - 192)) | (1L << (VIEW - 192)) | (1L << (WORK - 192)) | (1L << (WRITE - 192)) | (1L << (YEAR - 192)) | (1L << (ZONE - 192)) | (1L << (PLUS - 192)) | (1L << (MINUS - 192)) | (1L << (STRING - 192)) | (1L << (UNICODE_STRING - 192)) | (1L << (BINARY_LITERAL - 192)) | (1L << (INTEGER_VALUE - 192)) | (1L << (DECIMAL_VALUE - 192)) | (1L << (DOUBLE_VALUE - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (DIGIT_IDENTIFIER - 192)) | (1L << (QUOTED_IDENTIFIER - 192)) | (1L << (BACKQUOTED_IDENTIFIER - 192)) | (1L << (DOUBLE_PRECISION - 192)))) != 0)) {
+ {
+ setState(1388);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,178,_ctx) ) {
+ case 1:
+ {
+ setState(1387);
+ setQuantifier();
+ }
+ break;
+ }
+ setState(1390);
+ expression();
+ setState(1395);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ while (_la==T__3) {
+ {
+ {
+ setState(1391);
+ match(T__3);
+ setState(1392);
+ expression();
+ }
+ }
+ setState(1397);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ }
+ }
+ }
+
+ setState(1410);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==ORDER) {
+ {
+ setState(1400);
+ match(ORDER);
+ setState(1401);
+ match(BY);
+ setState(1402);
+ sortItem();
+ setState(1407);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ while (_la==T__3) {
+ {
+ {
+ setState(1403);
+ match(T__3);
+ setState(1404);
+ sortItem();
+ }
+ }
+ setState(1409);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ }
+ }
+ }
+
+ setState(1412);
+ match(T__2);
+ setState(1414);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,183,_ctx) ) {
+ case 1:
+ {
+ setState(1413);
+ filter();
+ }
+ break;
+ }
+ setState(1420);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,185,_ctx) ) {
+ case 1:
+ {
+ setState(1417);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==IGNORE || _la==RESPECT) {
+ {
+ setState(1416);
+ nullTreatment();
+ }
+ }
+
+ setState(1419);
+ over();
+ }
+ break;
+ }
+ }
+ break;
+ case 15:
+ {
+ _localctx = new LambdaContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(1422);
+ identifier();
+ setState(1423);
+ match(T__5);
+ setState(1424);
+ expression();
+ }
+ break;
+ case 16:
+ {
+ _localctx = new LambdaContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(1426);
+ match(T__1);
+ setState(1435);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ADD) | (1L << ADMIN) | (1L << ALL) | (1L << ANALYZE) | (1L << ANY) | (1L << ARRAY) | (1L << ASC) | (1L << AT) | (1L << BERNOULLI) | (1L << CALL) | (1L << CALLED) | (1L << CASCADE) | (1L << CATALOGS) | (1L << COLUMN) | (1L << COLUMNS) | (1L << COMMENT) | (1L << COMMIT) | (1L << COMMITTED) | (1L << CURRENT) | (1L << CURRENT_ROLE) | (1L << DATA) | (1L << DATE) | (1L << DAY) | (1L << DEFINER) | (1L << DESC) | (1L << DETERMINISTIC) | (1L << DISTRIBUTED) | (1L << EXCLUDING))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EXPLAIN - 64)) | (1L << (EXTERNAL - 64)) | (1L << (FILTER - 64)) | (1L << (FIRST - 64)) | (1L << (FOLLOWING - 64)) | (1L << (FORMAT - 64)) | (1L << (FUNCTION - 64)) | (1L << (FUNCTIONS - 64)) | (1L << (GRANT - 64)) | (1L << (GRANTED - 64)) | (1L << (GRANTS - 64)) | (1L << (GRAPHVIZ - 64)) | (1L << (HOUR - 64)) | (1L << (IF - 64)) | (1L << (IGNORE - 64)) | (1L << (INCLUDING - 64)) | (1L << (INPUT - 64)) | (1L << (INTERVAL - 64)) | (1L << (INVOKER - 64)) | (1L << (IO - 64)) | (1L << (ISOLATION - 64)) | (1L << (JSON - 64)) | (1L << (LANGUAGE - 64)) | (1L << (LAST - 64)) | (1L << (LATERAL - 64)) | (1L << (LEVEL - 64)) | (1L << (LIMIT - 64)) | (1L << (LOGICAL - 64)) | (1L << (MAP - 64)) | (1L << (MATERIALIZED - 64)) | (1L << (MINUTE - 64)) | (1L << (MONTH - 64)) | (1L << (NAME - 64)) | (1L << (NFC - 64)) | (1L << (NFD - 64)) | (1L << (NFKC - 64)) | (1L << (NFKD - 64)) | (1L << (NO - 64)) | (1L << (NONE - 64)) | (1L << (NULLIF - 64)) | (1L << (NULLS - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OFFSET - 128)) | (1L << (ONLY - 128)) | (1L << (OPTION - 128)) | (1L << (ORDINALITY - 128)) | (1L << (OUTPUT - 128)) | (1L << (OVER - 128)) | (1L << (PARTITION - 128)) | (1L << (PARTITIONS - 128)) | (1L << (POSITION - 128)) | (1L << (PRECEDING - 128)) | (1L << (PRIVILEGES - 128)) | (1L << (PROPERTIES - 128)) | (1L << (RANGE - 128)) | (1L << (READ - 128)) | (1L << (REFRESH - 128)) | (1L << (RENAME - 128)) | (1L << (REPEATABLE - 128)) | (1L << (REPLACE - 128)) | (1L << (RESET - 128)) | (1L << (RESPECT - 128)) | (1L << (RESTRICT - 128)) | (1L << (RETURN - 128)) | (1L << (RETURNS - 128)) | (1L << (REVOKE - 128)) | (1L << (ROLE - 128)) | (1L << (ROLES - 128)) | (1L << (ROLLBACK - 128)) | (1L << (ROW - 128)) | (1L << (ROWS - 128)) | (1L << (SCHEMA - 128)) | (1L << (SCHEMAS - 128)) | (1L << (SECOND - 128)) | (1L << (SECURITY - 128)) | (1L << (SERIALIZABLE - 128)) | (1L << (SESSION - 128)) | (1L << (SET - 128)) | (1L << (SETS - 128)) | (1L << (SHOW - 128)) | (1L << (SOME - 128)) | (1L << (SQL - 128)) | (1L << (START - 128)) | (1L << (STATS - 128)) | (1L << (SUBSTRING - 128)) | (1L << (SYSTEM - 128)) | (1L << (TABLES - 128)) | (1L << (TABLESAMPLE - 128)) | (1L << (TEMPORARY - 128)) | (1L << (TEXT - 128)) | (1L << (TIME - 128)) | (1L << (TIMESTAMP - 128)) | (1L << (TO - 128)) | (1L << (TRANSACTION - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (TRY_CAST - 192)) | (1L << (TYPE - 192)) | (1L << (UNBOUNDED - 192)) | (1L << (UNCOMMITTED - 192)) | (1L << (USE - 192)) | (1L << (USER - 192)) | (1L << (VALIDATE - 192)) | (1L << (VERBOSE - 192)) | (1L << (VIEW - 192)) | (1L << (WORK - 192)) | (1L << (WRITE - 192)) | (1L << (YEAR - 192)) | (1L << (ZONE - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (DIGIT_IDENTIFIER - 192)) | (1L << (QUOTED_IDENTIFIER - 192)) | (1L << (BACKQUOTED_IDENTIFIER - 192)))) != 0)) {
+ {
+ setState(1427);
+ identifier();
+ setState(1432);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ while (_la==T__3) {
+ {
+ {
+ setState(1428);
+ match(T__3);
+ setState(1429);
+ identifier();
+ }
+ }
+ setState(1434);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ }
+ }
+ }
+
+ setState(1437);
+ match(T__2);
+ setState(1438);
+ match(T__5);
+ setState(1439);
+ expression();
+ }
+ break;
+ case 17:
+ {
+ _localctx = new SubqueryExpressionContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(1440);
+ match(T__1);
+ setState(1441);
+ query();
+ setState(1442);
+ match(T__2);
+ }
+ break;
+ case 18:
+ {
+ _localctx = new ExistsContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(1444);
+ match(EXISTS);
+ setState(1445);
+ match(T__1);
+ setState(1446);
+ query();
+ setState(1447);
+ match(T__2);
+ }
+ break;
+ case 19:
+ {
+ _localctx = new SimpleCaseContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(1449);
+ match(CASE);
+ setState(1450);
+ valueExpression(0);
+ setState(1452);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ do {
+ {
+ {
+ setState(1451);
+ whenClause();
+ }
+ }
+ setState(1454);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ } while ( _la==WHEN );
+ setState(1458);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==ELSE) {
+ {
+ setState(1456);
+ match(ELSE);
+ setState(1457);
+ ((SimpleCaseContext)_localctx).elseExpression = expression();
+ }
+ }
+
+ setState(1460);
+ match(END);
+ }
+ break;
+ case 20:
+ {
+ _localctx = new SearchedCaseContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(1462);
+ match(CASE);
+ setState(1464);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ do {
+ {
+ {
+ setState(1463);
+ whenClause();
+ }
+ }
+ setState(1466);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ } while ( _la==WHEN );
+ setState(1470);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==ELSE) {
+ {
+ setState(1468);
+ match(ELSE);
+ setState(1469);
+ ((SearchedCaseContext)_localctx).elseExpression = expression();
+ }
+ }
+
+ setState(1472);
+ match(END);
+ }
+ break;
+ case 21:
+ {
+ _localctx = new CastContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(1474);
+ match(CAST);
+ setState(1475);
+ match(T__1);
+ setState(1476);
+ expression();
+ setState(1477);
+ match(AS);
+ setState(1478);
+ type(0);
+ setState(1479);
+ match(T__2);
+ }
+ break;
+ case 22:
+ {
+ _localctx = new CastContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(1481);
+ match(TRY_CAST);
+ setState(1482);
+ match(T__1);
+ setState(1483);
+ expression();
+ setState(1484);
+ match(AS);
+ setState(1485);
+ type(0);
+ setState(1486);
+ match(T__2);
+ }
+ break;
+ case 23:
+ {
+ _localctx = new ArrayConstructorContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(1488);
+ match(ARRAY);
+ setState(1489);
+ match(T__6);
+ setState(1498);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__1) | (1L << T__4) | (1L << ADD) | (1L << ADMIN) | (1L << ALL) | (1L << ANALYZE) | (1L << ANY) | (1L << ARRAY) | (1L << ASC) | (1L << AT) | (1L << BERNOULLI) | (1L << CALL) | (1L << CALLED) | (1L << CASCADE) | (1L << CASE) | (1L << CAST) | (1L << CATALOGS) | (1L << COLUMN) | (1L << COLUMNS) | (1L << COMMENT) | (1L << COMMIT) | (1L << COMMITTED) | (1L << CURRENT) | (1L << CURRENT_DATE) | (1L << CURRENT_ROLE) | (1L << CURRENT_TIME) | (1L << CURRENT_TIMESTAMP) | (1L << CURRENT_USER) | (1L << DATA) | (1L << DATE) | (1L << DAY) | (1L << DEFINER) | (1L << DESC) | (1L << DETERMINISTIC) | (1L << DISTRIBUTED) | (1L << EXCLUDING) | (1L << EXISTS))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EXPLAIN - 64)) | (1L << (EXTRACT - 64)) | (1L << (EXTERNAL - 64)) | (1L << (FALSE - 64)) | (1L << (FILTER - 64)) | (1L << (FIRST - 64)) | (1L << (FOLLOWING - 64)) | (1L << (FORMAT - 64)) | (1L << (FUNCTION - 64)) | (1L << (FUNCTIONS - 64)) | (1L << (GRANT - 64)) | (1L << (GRANTED - 64)) | (1L << (GRANTS - 64)) | (1L << (GRAPHVIZ - 64)) | (1L << (GROUPING - 64)) | (1L << (HOUR - 64)) | (1L << (IF - 64)) | (1L << (IGNORE - 64)) | (1L << (INCLUDING - 64)) | (1L << (INPUT - 64)) | (1L << (INTERVAL - 64)) | (1L << (INVOKER - 64)) | (1L << (IO - 64)) | (1L << (ISOLATION - 64)) | (1L << (JSON - 64)) | (1L << (LANGUAGE - 64)) | (1L << (LAST - 64)) | (1L << (LATERAL - 64)) | (1L << (LEVEL - 64)) | (1L << (LIMIT - 64)) | (1L << (LOCALTIME - 64)) | (1L << (LOCALTIMESTAMP - 64)) | (1L << (LOGICAL - 64)) | (1L << (MAP - 64)) | (1L << (MATERIALIZED - 64)) | (1L << (MINUTE - 64)) | (1L << (MONTH - 64)) | (1L << (NAME - 64)) | (1L << (NFC - 64)) | (1L << (NFD - 64)) | (1L << (NFKC - 64)) | (1L << (NFKD - 64)) | (1L << (NO - 64)) | (1L << (NONE - 64)) | (1L << (NORMALIZE - 64)) | (1L << (NOT - 64)) | (1L << (NULL - 64)) | (1L << (NULLIF - 64)) | (1L << (NULLS - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OFFSET - 128)) | (1L << (ONLY - 128)) | (1L << (OPTION - 128)) | (1L << (ORDINALITY - 128)) | (1L << (OUTPUT - 128)) | (1L << (OVER - 128)) | (1L << (PARTITION - 128)) | (1L << (PARTITIONS - 128)) | (1L << (POSITION - 128)) | (1L << (PRECEDING - 128)) | (1L << (PRIVILEGES - 128)) | (1L << (PROPERTIES - 128)) | (1L << (RANGE - 128)) | (1L << (READ - 128)) | (1L << (REFRESH - 128)) | (1L << (RENAME - 128)) | (1L << (REPEATABLE - 128)) | (1L << (REPLACE - 128)) | (1L << (RESET - 128)) | (1L << (RESPECT - 128)) | (1L << (RESTRICT - 128)) | (1L << (RETURN - 128)) | (1L << (RETURNS - 128)) | (1L << (REVOKE - 128)) | (1L << (ROLE - 128)) | (1L << (ROLES - 128)) | (1L << (ROLLBACK - 128)) | (1L << (ROW - 128)) | (1L << (ROWS - 128)) | (1L << (SCHEMA - 128)) | (1L << (SCHEMAS - 128)) | (1L << (SECOND - 128)) | (1L << (SECURITY - 128)) | (1L << (SERIALIZABLE - 128)) | (1L << (SESSION - 128)) | (1L << (SET - 128)) | (1L << (SETS - 128)) | (1L << (SHOW - 128)) | (1L << (SOME - 128)) | (1L << (SQL - 128)) | (1L << (START - 128)) | (1L << (STATS - 128)) | (1L << (SUBSTRING - 128)) | (1L << (SYSTEM - 128)) | (1L << (TABLES - 128)) | (1L << (TABLESAMPLE - 128)) | (1L << (TEMPORARY - 128)) | (1L << (TEXT - 128)) | (1L << (TIME - 128)) | (1L << (TIMESTAMP - 128)) | (1L << (TO - 128)) | (1L << (TRANSACTION - 128)) | (1L << (TRUE - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (TRY_CAST - 192)) | (1L << (TYPE - 192)) | (1L << (UNBOUNDED - 192)) | (1L << (UNCOMMITTED - 192)) | (1L << (USE - 192)) | (1L << (USER - 192)) | (1L << (VALIDATE - 192)) | (1L << (VERBOSE - 192)) | (1L << (VIEW - 192)) | (1L << (WORK - 192)) | (1L << (WRITE - 192)) | (1L << (YEAR - 192)) | (1L << (ZONE - 192)) | (1L << (PLUS - 192)) | (1L << (MINUS - 192)) | (1L << (STRING - 192)) | (1L << (UNICODE_STRING - 192)) | (1L << (BINARY_LITERAL - 192)) | (1L << (INTEGER_VALUE - 192)) | (1L << (DECIMAL_VALUE - 192)) | (1L << (DOUBLE_VALUE - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (DIGIT_IDENTIFIER - 192)) | (1L << (QUOTED_IDENTIFIER - 192)) | (1L << (BACKQUOTED_IDENTIFIER - 192)) | (1L << (DOUBLE_PRECISION - 192)))) != 0)) {
+ {
+ setState(1490);
+ expression();
+ setState(1495);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ while (_la==T__3) {
+ {
+ {
+ setState(1491);
+ match(T__3);
+ setState(1492);
+ expression();
+ }
+ }
+ setState(1497);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ }
+ }
+ }
+
+ setState(1500);
+ match(T__7);
+ }
+ break;
+ case 24:
+ {
+ _localctx = new ColumnReferenceContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(1501);
+ identifier();
+ }
+ break;
+ case 25:
+ {
+ _localctx = new SpecialDateTimeFunctionContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(1502);
+ ((SpecialDateTimeFunctionContext)_localctx).name = match(CURRENT_DATE);
+ }
+ break;
+ case 26:
+ {
+ _localctx = new SpecialDateTimeFunctionContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(1503);
+ ((SpecialDateTimeFunctionContext)_localctx).name = match(CURRENT_TIME);
+ setState(1507);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,194,_ctx) ) {
+ case 1:
+ {
+ setState(1504);
+ match(T__1);
+ setState(1505);
+ ((SpecialDateTimeFunctionContext)_localctx).precision = match(INTEGER_VALUE);
+ setState(1506);
+ match(T__2);
+ }
+ break;
+ }
+ }
+ break;
+ case 27:
+ {
+ _localctx = new SpecialDateTimeFunctionContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(1509);
+ ((SpecialDateTimeFunctionContext)_localctx).name = match(CURRENT_TIMESTAMP);
+ setState(1513);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,195,_ctx) ) {
+ case 1:
+ {
+ setState(1510);
+ match(T__1);
+ setState(1511);
+ ((SpecialDateTimeFunctionContext)_localctx).precision = match(INTEGER_VALUE);
+ setState(1512);
+ match(T__2);
+ }
+ break;
+ }
+ }
+ break;
+ case 28:
+ {
+ _localctx = new SpecialDateTimeFunctionContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(1515);
+ ((SpecialDateTimeFunctionContext)_localctx).name = match(LOCALTIME);
+ setState(1519);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,196,_ctx) ) {
+ case 1:
+ {
+ setState(1516);
+ match(T__1);
+ setState(1517);
+ ((SpecialDateTimeFunctionContext)_localctx).precision = match(INTEGER_VALUE);
+ setState(1518);
+ match(T__2);
+ }
+ break;
+ }
+ }
+ break;
+ case 29:
+ {
+ _localctx = new SpecialDateTimeFunctionContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(1521);
+ ((SpecialDateTimeFunctionContext)_localctx).name = match(LOCALTIMESTAMP);
+ setState(1525);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,197,_ctx) ) {
+ case 1:
+ {
+ setState(1522);
+ match(T__1);
+ setState(1523);
+ ((SpecialDateTimeFunctionContext)_localctx).precision = match(INTEGER_VALUE);
+ setState(1524);
+ match(T__2);
+ }
+ break;
+ }
+ }
+ break;
+ case 30:
+ {
+ _localctx = new CurrentUserContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(1527);
+ ((CurrentUserContext)_localctx).name = match(CURRENT_USER);
+ }
+ break;
+ case 31:
+ {
+ _localctx = new SubstringContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(1528);
+ match(SUBSTRING);
+ setState(1529);
+ match(T__1);
+ setState(1530);
+ valueExpression(0);
+ setState(1531);
+ match(FROM);
+ setState(1532);
+ valueExpression(0);
+ setState(1535);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==FOR) {
+ {
+ setState(1533);
+ match(FOR);
+ setState(1534);
+ valueExpression(0);
+ }
+ }
+
+ setState(1537);
+ match(T__2);
+ }
+ break;
+ case 32:
+ {
+ _localctx = new NormalizeContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(1539);
+ match(NORMALIZE);
+ setState(1540);
+ match(T__1);
+ setState(1541);
+ valueExpression(0);
+ setState(1544);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==T__3) {
+ {
+ setState(1542);
+ match(T__3);
+ setState(1543);
+ normalForm();
+ }
+ }
+
+ setState(1546);
+ match(T__2);
+ }
+ break;
+ case 33:
+ {
+ _localctx = new ExtractContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(1548);
+ match(EXTRACT);
+ setState(1549);
+ match(T__1);
+ setState(1550);
+ identifier();
+ setState(1551);
+ match(FROM);
+ setState(1552);
+ valueExpression(0);
+ setState(1553);
+ match(T__2);
+ }
+ break;
+ case 34:
+ {
+ _localctx = new ParenthesizedExpressionContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(1555);
+ match(T__1);
+ setState(1556);
+ expression();
+ setState(1557);
+ match(T__2);
+ }
+ break;
+ case 35:
+ {
+ _localctx = new GroupingOperationContext(_localctx);
+ _ctx = _localctx;
+ _prevctx = _localctx;
+ setState(1559);
+ match(GROUPING);
+ setState(1560);
+ match(T__1);
+ setState(1569);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ADD) | (1L << ADMIN) | (1L << ALL) | (1L << ANALYZE) | (1L << ANY) | (1L << ARRAY) | (1L << ASC) | (1L << AT) | (1L << BERNOULLI) | (1L << CALL) | (1L << CALLED) | (1L << CASCADE) | (1L << CATALOGS) | (1L << COLUMN) | (1L << COLUMNS) | (1L << COMMENT) | (1L << COMMIT) | (1L << COMMITTED) | (1L << CURRENT) | (1L << CURRENT_ROLE) | (1L << DATA) | (1L << DATE) | (1L << DAY) | (1L << DEFINER) | (1L << DESC) | (1L << DETERMINISTIC) | (1L << DISTRIBUTED) | (1L << EXCLUDING))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EXPLAIN - 64)) | (1L << (EXTERNAL - 64)) | (1L << (FILTER - 64)) | (1L << (FIRST - 64)) | (1L << (FOLLOWING - 64)) | (1L << (FORMAT - 64)) | (1L << (FUNCTION - 64)) | (1L << (FUNCTIONS - 64)) | (1L << (GRANT - 64)) | (1L << (GRANTED - 64)) | (1L << (GRANTS - 64)) | (1L << (GRAPHVIZ - 64)) | (1L << (HOUR - 64)) | (1L << (IF - 64)) | (1L << (IGNORE - 64)) | (1L << (INCLUDING - 64)) | (1L << (INPUT - 64)) | (1L << (INTERVAL - 64)) | (1L << (INVOKER - 64)) | (1L << (IO - 64)) | (1L << (ISOLATION - 64)) | (1L << (JSON - 64)) | (1L << (LANGUAGE - 64)) | (1L << (LAST - 64)) | (1L << (LATERAL - 64)) | (1L << (LEVEL - 64)) | (1L << (LIMIT - 64)) | (1L << (LOGICAL - 64)) | (1L << (MAP - 64)) | (1L << (MATERIALIZED - 64)) | (1L << (MINUTE - 64)) | (1L << (MONTH - 64)) | (1L << (NAME - 64)) | (1L << (NFC - 64)) | (1L << (NFD - 64)) | (1L << (NFKC - 64)) | (1L << (NFKD - 64)) | (1L << (NO - 64)) | (1L << (NONE - 64)) | (1L << (NULLIF - 64)) | (1L << (NULLS - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OFFSET - 128)) | (1L << (ONLY - 128)) | (1L << (OPTION - 128)) | (1L << (ORDINALITY - 128)) | (1L << (OUTPUT - 128)) | (1L << (OVER - 128)) | (1L << (PARTITION - 128)) | (1L << (PARTITIONS - 128)) | (1L << (POSITION - 128)) | (1L << (PRECEDING - 128)) | (1L << (PRIVILEGES - 128)) | (1L << (PROPERTIES - 128)) | (1L << (RANGE - 128)) | (1L << (READ - 128)) | (1L << (REFRESH - 128)) | (1L << (RENAME - 128)) | (1L << (REPEATABLE - 128)) | (1L << (REPLACE - 128)) | (1L << (RESET - 128)) | (1L << (RESPECT - 128)) | (1L << (RESTRICT - 128)) | (1L << (RETURN - 128)) | (1L << (RETURNS - 128)) | (1L << (REVOKE - 128)) | (1L << (ROLE - 128)) | (1L << (ROLES - 128)) | (1L << (ROLLBACK - 128)) | (1L << (ROW - 128)) | (1L << (ROWS - 128)) | (1L << (SCHEMA - 128)) | (1L << (SCHEMAS - 128)) | (1L << (SECOND - 128)) | (1L << (SECURITY - 128)) | (1L << (SERIALIZABLE - 128)) | (1L << (SESSION - 128)) | (1L << (SET - 128)) | (1L << (SETS - 128)) | (1L << (SHOW - 128)) | (1L << (SOME - 128)) | (1L << (SQL - 128)) | (1L << (START - 128)) | (1L << (STATS - 128)) | (1L << (SUBSTRING - 128)) | (1L << (SYSTEM - 128)) | (1L << (TABLES - 128)) | (1L << (TABLESAMPLE - 128)) | (1L << (TEMPORARY - 128)) | (1L << (TEXT - 128)) | (1L << (TIME - 128)) | (1L << (TIMESTAMP - 128)) | (1L << (TO - 128)) | (1L << (TRANSACTION - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (TRY_CAST - 192)) | (1L << (TYPE - 192)) | (1L << (UNBOUNDED - 192)) | (1L << (UNCOMMITTED - 192)) | (1L << (USE - 192)) | (1L << (USER - 192)) | (1L << (VALIDATE - 192)) | (1L << (VERBOSE - 192)) | (1L << (VIEW - 192)) | (1L << (WORK - 192)) | (1L << (WRITE - 192)) | (1L << (YEAR - 192)) | (1L << (ZONE - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (DIGIT_IDENTIFIER - 192)) | (1L << (QUOTED_IDENTIFIER - 192)) | (1L << (BACKQUOTED_IDENTIFIER - 192)))) != 0)) {
+ {
+ setState(1561);
+ qualifiedName();
+ setState(1566);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ while (_la==T__3) {
+ {
+ {
+ setState(1562);
+ match(T__3);
+ setState(1563);
+ qualifiedName();
+ }
+ }
+ setState(1568);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ }
+ }
+ }
+
+ setState(1571);
+ match(T__2);
+ }
+ break;
+ }
+ _ctx.stop = _input.LT(-1);
+ setState(1584);
+ _errHandler.sync(this);
+ _alt = getInterpreter().adaptivePredict(_input,204,_ctx);
+ while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
+ if ( _alt==1 ) {
+ if ( _parseListeners!=null ) triggerExitRuleEvent();
+ _prevctx = _localctx;
+ {
+ setState(1582);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,203,_ctx) ) {
+ case 1:
+ {
+ _localctx = new SubscriptContext(new PrimaryExpressionContext(_parentctx, _parentState));
+ ((SubscriptContext)_localctx).value = _prevctx;
+ pushNewRecursionContext(_localctx, _startState, RULE_primaryExpression);
+ setState(1574);
+ if (!(precpred(_ctx, 14))) throw new FailedPredicateException(this, "precpred(_ctx, 14)");
+ setState(1575);
+ match(T__6);
+ setState(1576);
+ ((SubscriptContext)_localctx).index = valueExpression(0);
+ setState(1577);
+ match(T__7);
+ }
+ break;
+ case 2:
+ {
+ _localctx = new DereferenceContext(new PrimaryExpressionContext(_parentctx, _parentState));
+ ((DereferenceContext)_localctx).base = _prevctx;
+ pushNewRecursionContext(_localctx, _startState, RULE_primaryExpression);
+ setState(1579);
+ if (!(precpred(_ctx, 12))) throw new FailedPredicateException(this, "precpred(_ctx, 12)");
+ setState(1580);
+ match(T__0);
+ setState(1581);
+ ((DereferenceContext)_localctx).fieldName = identifier();
+ }
+ break;
+ }
+ }
+ }
+ setState(1586);
+ _errHandler.sync(this);
+ _alt = getInterpreter().adaptivePredict(_input,204,_ctx);
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ unrollRecursionContexts(_parentctx);
+ }
+ return _localctx;
+ }
+
+ public static class StringContext extends ParserRuleContext {
+ public StringContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_string; }
+
+ public StringContext() { }
+ public void copyFrom(StringContext ctx) {
+ super.copyFrom(ctx);
+ }
+ }
+ public static class UnicodeStringLiteralContext extends StringContext {
+ public TerminalNode UNICODE_STRING() { return getToken(PrestoSqlParser.UNICODE_STRING, 0); }
+ public TerminalNode UESCAPE() { return getToken(PrestoSqlParser.UESCAPE, 0); }
+ public TerminalNode STRING() { return getToken(PrestoSqlParser.STRING, 0); }
+ public UnicodeStringLiteralContext(StringContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterUnicodeStringLiteral(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitUnicodeStringLiteral(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitUnicodeStringLiteral(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class BasicStringLiteralContext extends StringContext {
+ public TerminalNode STRING() { return getToken(PrestoSqlParser.STRING, 0); }
+ public BasicStringLiteralContext(StringContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterBasicStringLiteral(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitBasicStringLiteral(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitBasicStringLiteral(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final StringContext string() throws RecognitionException {
+ StringContext _localctx = new StringContext(_ctx, getState());
+ enterRule(_localctx, 94, RULE_string);
+ try {
+ setState(1593);
+ _errHandler.sync(this);
+ switch (_input.LA(1)) {
+ case STRING:
+ _localctx = new BasicStringLiteralContext(_localctx);
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(1587);
+ match(STRING);
+ }
+ break;
+ case UNICODE_STRING:
+ _localctx = new UnicodeStringLiteralContext(_localctx);
+ enterOuterAlt(_localctx, 2);
+ {
+ setState(1588);
+ match(UNICODE_STRING);
+ setState(1591);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,205,_ctx) ) {
+ case 1:
+ {
+ setState(1589);
+ match(UESCAPE);
+ setState(1590);
+ match(STRING);
+ }
+ 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 NullTreatmentContext extends ParserRuleContext {
+ public TerminalNode IGNORE() { return getToken(PrestoSqlParser.IGNORE, 0); }
+ public TerminalNode NULLS() { return getToken(PrestoSqlParser.NULLS, 0); }
+ public TerminalNode RESPECT() { return getToken(PrestoSqlParser.RESPECT, 0); }
+ public NullTreatmentContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_nullTreatment; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterNullTreatment(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitNullTreatment(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitNullTreatment(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final NullTreatmentContext nullTreatment() throws RecognitionException {
+ NullTreatmentContext _localctx = new NullTreatmentContext(_ctx, getState());
+ enterRule(_localctx, 96, RULE_nullTreatment);
+ try {
+ setState(1599);
+ _errHandler.sync(this);
+ switch (_input.LA(1)) {
+ case IGNORE:
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(1595);
+ match(IGNORE);
+ setState(1596);
+ match(NULLS);
+ }
+ break;
+ case RESPECT:
+ enterOuterAlt(_localctx, 2);
+ {
+ setState(1597);
+ match(RESPECT);
+ setState(1598);
+ match(NULLS);
+ }
+ 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 TimeZoneSpecifierContext extends ParserRuleContext {
+ public TimeZoneSpecifierContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_timeZoneSpecifier; }
+
+ public TimeZoneSpecifierContext() { }
+ public void copyFrom(TimeZoneSpecifierContext ctx) {
+ super.copyFrom(ctx);
+ }
+ }
+ public static class TimeZoneIntervalContext extends TimeZoneSpecifierContext {
+ public TerminalNode TIME() { return getToken(PrestoSqlParser.TIME, 0); }
+ public TerminalNode ZONE() { return getToken(PrestoSqlParser.ZONE, 0); }
+ public IntervalContext interval() {
+ return getRuleContext(IntervalContext.class,0);
+ }
+ public TimeZoneIntervalContext(TimeZoneSpecifierContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterTimeZoneInterval(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitTimeZoneInterval(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitTimeZoneInterval(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+ public static class TimeZoneStringContext extends TimeZoneSpecifierContext {
+ public TerminalNode TIME() { return getToken(PrestoSqlParser.TIME, 0); }
+ public TerminalNode ZONE() { return getToken(PrestoSqlParser.ZONE, 0); }
+ public StringContext string() {
+ return getRuleContext(StringContext.class,0);
+ }
+ public TimeZoneStringContext(TimeZoneSpecifierContext ctx) { copyFrom(ctx); }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterTimeZoneString(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitTimeZoneString(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitTimeZoneString(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final TimeZoneSpecifierContext timeZoneSpecifier() throws RecognitionException {
+ TimeZoneSpecifierContext _localctx = new TimeZoneSpecifierContext(_ctx, getState());
+ enterRule(_localctx, 98, RULE_timeZoneSpecifier);
+ try {
+ setState(1607);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,208,_ctx) ) {
+ case 1:
+ _localctx = new TimeZoneIntervalContext(_localctx);
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(1601);
+ match(TIME);
+ setState(1602);
+ match(ZONE);
+ setState(1603);
+ interval();
+ }
+ break;
+ case 2:
+ _localctx = new TimeZoneStringContext(_localctx);
+ enterOuterAlt(_localctx, 2);
+ {
+ setState(1604);
+ match(TIME);
+ setState(1605);
+ match(ZONE);
+ setState(1606);
+ string();
+ }
+ break;
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class ComparisonOperatorContext extends ParserRuleContext {
+ public TerminalNode EQ() { return getToken(PrestoSqlParser.EQ, 0); }
+ public TerminalNode NEQ() { return getToken(PrestoSqlParser.NEQ, 0); }
+ public TerminalNode LT() { return getToken(PrestoSqlParser.LT, 0); }
+ public TerminalNode LTE() { return getToken(PrestoSqlParser.LTE, 0); }
+ public TerminalNode GT() { return getToken(PrestoSqlParser.GT, 0); }
+ public TerminalNode GTE() { return getToken(PrestoSqlParser.GTE, 0); }
+ public ComparisonOperatorContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_comparisonOperator; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterComparisonOperator(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitComparisonOperator(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitComparisonOperator(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final ComparisonOperatorContext comparisonOperator() throws RecognitionException {
+ ComparisonOperatorContext _localctx = new ComparisonOperatorContext(_ctx, getState());
+ enterRule(_localctx, 100, RULE_comparisonOperator);
+ int _la;
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(1609);
+ _la = _input.LA(1);
+ if ( !(((((_la - 213)) & ~0x3f) == 0 && ((1L << (_la - 213)) & ((1L << (EQ - 213)) | (1L << (NEQ - 213)) | (1L << (LT - 213)) | (1L << (LTE - 213)) | (1L << (GT - 213)) | (1L << (GTE - 213)))) != 0)) ) {
+ _errHandler.recoverInline(this);
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
+ consume();
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class ComparisonQuantifierContext extends ParserRuleContext {
+ public TerminalNode ALL() { return getToken(PrestoSqlParser.ALL, 0); }
+ public TerminalNode SOME() { return getToken(PrestoSqlParser.SOME, 0); }
+ public TerminalNode ANY() { return getToken(PrestoSqlParser.ANY, 0); }
+ public ComparisonQuantifierContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_comparisonQuantifier; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterComparisonQuantifier(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitComparisonQuantifier(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitComparisonQuantifier(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final ComparisonQuantifierContext comparisonQuantifier() throws RecognitionException {
+ ComparisonQuantifierContext _localctx = new ComparisonQuantifierContext(_ctx, getState());
+ enterRule(_localctx, 102, RULE_comparisonQuantifier);
+ int _la;
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(1611);
+ _la = _input.LA(1);
+ if ( !(_la==ALL || _la==ANY || _la==SOME) ) {
+ _errHandler.recoverInline(this);
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
+ consume();
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class BooleanValueContext extends ParserRuleContext {
+ public TerminalNode TRUE() { return getToken(PrestoSqlParser.TRUE, 0); }
+ public TerminalNode FALSE() { return getToken(PrestoSqlParser.FALSE, 0); }
+ public BooleanValueContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_booleanValue; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterBooleanValue(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitBooleanValue(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitBooleanValue(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final BooleanValueContext booleanValue() throws RecognitionException {
+ BooleanValueContext _localctx = new BooleanValueContext(_ctx, getState());
+ enterRule(_localctx, 104, RULE_booleanValue);
+ int _la;
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(1613);
+ _la = _input.LA(1);
+ if ( !(_la==FALSE || _la==TRUE) ) {
+ _errHandler.recoverInline(this);
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
+ consume();
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class IntervalContext extends ParserRuleContext {
+ public Token sign;
+ public IntervalFieldContext from;
+ public IntervalFieldContext to;
+ public TerminalNode INTERVAL() { return getToken(PrestoSqlParser.INTERVAL, 0); }
+ public StringContext string() {
+ return getRuleContext(StringContext.class,0);
+ }
+ public List intervalField() {
+ return getRuleContexts(IntervalFieldContext.class);
+ }
+ public IntervalFieldContext intervalField(int i) {
+ return getRuleContext(IntervalFieldContext.class,i);
+ }
+ public TerminalNode TO() { return getToken(PrestoSqlParser.TO, 0); }
+ public TerminalNode PLUS() { return getToken(PrestoSqlParser.PLUS, 0); }
+ public TerminalNode MINUS() { return getToken(PrestoSqlParser.MINUS, 0); }
+ public IntervalContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_interval; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterInterval(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitInterval(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitInterval(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final IntervalContext interval() throws RecognitionException {
+ IntervalContext _localctx = new IntervalContext(_ctx, getState());
+ enterRule(_localctx, 106, RULE_interval);
+ int _la;
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(1615);
+ match(INTERVAL);
+ setState(1617);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if (_la==PLUS || _la==MINUS) {
+ {
+ setState(1616);
+ ((IntervalContext)_localctx).sign = _input.LT(1);
+ _la = _input.LA(1);
+ if ( !(_la==PLUS || _la==MINUS) ) {
+ ((IntervalContext)_localctx).sign = (Token)_errHandler.recoverInline(this);
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
+ consume();
+ }
+ }
+ }
+
+ setState(1619);
+ string();
+ setState(1620);
+ ((IntervalContext)_localctx).from = intervalField();
+ setState(1623);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,210,_ctx) ) {
+ case 1:
+ {
+ setState(1621);
+ match(TO);
+ setState(1622);
+ ((IntervalContext)_localctx).to = intervalField();
+ }
+ break;
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class IntervalFieldContext extends ParserRuleContext {
+ public TerminalNode YEAR() { return getToken(PrestoSqlParser.YEAR, 0); }
+ public TerminalNode MONTH() { return getToken(PrestoSqlParser.MONTH, 0); }
+ public TerminalNode DAY() { return getToken(PrestoSqlParser.DAY, 0); }
+ public TerminalNode HOUR() { return getToken(PrestoSqlParser.HOUR, 0); }
+ public TerminalNode MINUTE() { return getToken(PrestoSqlParser.MINUTE, 0); }
+ public TerminalNode SECOND() { return getToken(PrestoSqlParser.SECOND, 0); }
+ public IntervalFieldContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_intervalField; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterIntervalField(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitIntervalField(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitIntervalField(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final IntervalFieldContext intervalField() throws RecognitionException {
+ IntervalFieldContext _localctx = new IntervalFieldContext(_ctx, getState());
+ enterRule(_localctx, 108, RULE_intervalField);
+ int _la;
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(1625);
+ _la = _input.LA(1);
+ if ( !(_la==DAY || ((((_la - 84)) & ~0x3f) == 0 && ((1L << (_la - 84)) & ((1L << (HOUR - 84)) | (1L << (MINUTE - 84)) | (1L << (MONTH - 84)))) != 0) || _la==SECOND || _la==YEAR) ) {
+ _errHandler.recoverInline(this);
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
+ consume();
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class NormalFormContext extends ParserRuleContext {
+ public TerminalNode NFD() { return getToken(PrestoSqlParser.NFD, 0); }
+ public TerminalNode NFC() { return getToken(PrestoSqlParser.NFC, 0); }
+ public TerminalNode NFKD() { return getToken(PrestoSqlParser.NFKD, 0); }
+ public TerminalNode NFKC() { return getToken(PrestoSqlParser.NFKC, 0); }
+ public NormalFormContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_normalForm; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterNormalForm(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitNormalForm(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitNormalForm(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final NormalFormContext normalForm() throws RecognitionException {
+ NormalFormContext _localctx = new NormalFormContext(_ctx, getState());
+ enterRule(_localctx, 110, RULE_normalForm);
+ int _la;
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(1627);
+ _la = _input.LA(1);
+ if ( !(((((_la - 117)) & ~0x3f) == 0 && ((1L << (_la - 117)) & ((1L << (NFC - 117)) | (1L << (NFD - 117)) | (1L << (NFKC - 117)) | (1L << (NFKD - 117)))) != 0)) ) {
+ _errHandler.recoverInline(this);
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
+ consume();
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class TypesContext extends ParserRuleContext {
+ public List type() {
+ return getRuleContexts(TypeContext.class);
+ }
+ public TypeContext type(int i) {
+ return getRuleContext(TypeContext.class,i);
+ }
+ public TypesContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_types; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterTypes(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitTypes(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitTypes(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final TypesContext types() throws RecognitionException {
+ TypesContext _localctx = new TypesContext(_ctx, getState());
+ enterRule(_localctx, 112, RULE_types);
+ int _la;
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(1629);
+ match(T__1);
+ setState(1638);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ADD) | (1L << ADMIN) | (1L << ALL) | (1L << ANALYZE) | (1L << ANY) | (1L << ARRAY) | (1L << ASC) | (1L << AT) | (1L << BERNOULLI) | (1L << CALL) | (1L << CALLED) | (1L << CASCADE) | (1L << CATALOGS) | (1L << COLUMN) | (1L << COLUMNS) | (1L << COMMENT) | (1L << COMMIT) | (1L << COMMITTED) | (1L << CURRENT) | (1L << CURRENT_ROLE) | (1L << DATA) | (1L << DATE) | (1L << DAY) | (1L << DEFINER) | (1L << DESC) | (1L << DETERMINISTIC) | (1L << DISTRIBUTED) | (1L << EXCLUDING))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (EXPLAIN - 64)) | (1L << (EXTERNAL - 64)) | (1L << (FILTER - 64)) | (1L << (FIRST - 64)) | (1L << (FOLLOWING - 64)) | (1L << (FORMAT - 64)) | (1L << (FUNCTION - 64)) | (1L << (FUNCTIONS - 64)) | (1L << (GRANT - 64)) | (1L << (GRANTED - 64)) | (1L << (GRANTS - 64)) | (1L << (GRAPHVIZ - 64)) | (1L << (HOUR - 64)) | (1L << (IF - 64)) | (1L << (IGNORE - 64)) | (1L << (INCLUDING - 64)) | (1L << (INPUT - 64)) | (1L << (INTERVAL - 64)) | (1L << (INVOKER - 64)) | (1L << (IO - 64)) | (1L << (ISOLATION - 64)) | (1L << (JSON - 64)) | (1L << (LANGUAGE - 64)) | (1L << (LAST - 64)) | (1L << (LATERAL - 64)) | (1L << (LEVEL - 64)) | (1L << (LIMIT - 64)) | (1L << (LOGICAL - 64)) | (1L << (MAP - 64)) | (1L << (MATERIALIZED - 64)) | (1L << (MINUTE - 64)) | (1L << (MONTH - 64)) | (1L << (NAME - 64)) | (1L << (NFC - 64)) | (1L << (NFD - 64)) | (1L << (NFKC - 64)) | (1L << (NFKD - 64)) | (1L << (NO - 64)) | (1L << (NONE - 64)) | (1L << (NULLIF - 64)) | (1L << (NULLS - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (OFFSET - 128)) | (1L << (ONLY - 128)) | (1L << (OPTION - 128)) | (1L << (ORDINALITY - 128)) | (1L << (OUTPUT - 128)) | (1L << (OVER - 128)) | (1L << (PARTITION - 128)) | (1L << (PARTITIONS - 128)) | (1L << (POSITION - 128)) | (1L << (PRECEDING - 128)) | (1L << (PRIVILEGES - 128)) | (1L << (PROPERTIES - 128)) | (1L << (RANGE - 128)) | (1L << (READ - 128)) | (1L << (REFRESH - 128)) | (1L << (RENAME - 128)) | (1L << (REPEATABLE - 128)) | (1L << (REPLACE - 128)) | (1L << (RESET - 128)) | (1L << (RESPECT - 128)) | (1L << (RESTRICT - 128)) | (1L << (RETURN - 128)) | (1L << (RETURNS - 128)) | (1L << (REVOKE - 128)) | (1L << (ROLE - 128)) | (1L << (ROLES - 128)) | (1L << (ROLLBACK - 128)) | (1L << (ROW - 128)) | (1L << (ROWS - 128)) | (1L << (SCHEMA - 128)) | (1L << (SCHEMAS - 128)) | (1L << (SECOND - 128)) | (1L << (SECURITY - 128)) | (1L << (SERIALIZABLE - 128)) | (1L << (SESSION - 128)) | (1L << (SET - 128)) | (1L << (SETS - 128)) | (1L << (SHOW - 128)) | (1L << (SOME - 128)) | (1L << (SQL - 128)) | (1L << (START - 128)) | (1L << (STATS - 128)) | (1L << (SUBSTRING - 128)) | (1L << (SYSTEM - 128)) | (1L << (TABLES - 128)) | (1L << (TABLESAMPLE - 128)) | (1L << (TEMPORARY - 128)) | (1L << (TEXT - 128)) | (1L << (TIME - 128)) | (1L << (TIMESTAMP - 128)) | (1L << (TO - 128)) | (1L << (TRANSACTION - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (TRY_CAST - 192)) | (1L << (TYPE - 192)) | (1L << (UNBOUNDED - 192)) | (1L << (UNCOMMITTED - 192)) | (1L << (USE - 192)) | (1L << (USER - 192)) | (1L << (VALIDATE - 192)) | (1L << (VERBOSE - 192)) | (1L << (VIEW - 192)) | (1L << (WORK - 192)) | (1L << (WRITE - 192)) | (1L << (YEAR - 192)) | (1L << (ZONE - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (DIGIT_IDENTIFIER - 192)) | (1L << (QUOTED_IDENTIFIER - 192)) | (1L << (BACKQUOTED_IDENTIFIER - 192)) | (1L << (TIME_WITH_TIME_ZONE - 192)) | (1L << (TIMESTAMP_WITH_TIME_ZONE - 192)) | (1L << (DOUBLE_PRECISION - 192)))) != 0)) {
+ {
+ setState(1630);
+ type(0);
+ setState(1635);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ while (_la==T__3) {
+ {
+ {
+ setState(1631);
+ match(T__3);
+ setState(1632);
+ type(0);
+ }
+ }
+ setState(1637);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ }
+ }
+ }
+
+ setState(1640);
+ match(T__2);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class TypeContext extends ParserRuleContext {
+ public IntervalFieldContext from;
+ public IntervalFieldContext to;
+ public TerminalNode ARRAY() { return getToken(PrestoSqlParser.ARRAY, 0); }
+ public List type() {
+ return getRuleContexts(TypeContext.class);
+ }
+ public TypeContext type(int i) {
+ return getRuleContext(TypeContext.class,i);
+ }
+ public TerminalNode MAP() { return getToken(PrestoSqlParser.MAP, 0); }
+ public TerminalNode ROW() { return getToken(PrestoSqlParser.ROW, 0); }
+ public List identifier() {
+ return getRuleContexts(IdentifierContext.class);
+ }
+ public IdentifierContext identifier(int i) {
+ return getRuleContext(IdentifierContext.class,i);
+ }
+ public BaseTypeContext baseType() {
+ return getRuleContext(BaseTypeContext.class,0);
+ }
+ public List typeParameter() {
+ return getRuleContexts(TypeParameterContext.class);
+ }
+ public TypeParameterContext typeParameter(int i) {
+ return getRuleContext(TypeParameterContext.class,i);
+ }
+ public TerminalNode INTERVAL() { return getToken(PrestoSqlParser.INTERVAL, 0); }
+ public TerminalNode TO() { return getToken(PrestoSqlParser.TO, 0); }
+ public List intervalField() {
+ return getRuleContexts(IntervalFieldContext.class);
+ }
+ public IntervalFieldContext intervalField(int i) {
+ return getRuleContext(IntervalFieldContext.class,i);
+ }
+ public TypeContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_type; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterType(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitType(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitType(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final TypeContext type() throws RecognitionException {
+ return type(0);
+ }
+
+ private TypeContext type(int _p) throws RecognitionException {
+ ParserRuleContext _parentctx = _ctx;
+ int _parentState = getState();
+ TypeContext _localctx = new TypeContext(_ctx, _parentState);
+ TypeContext _prevctx = _localctx;
+ int _startState = 114;
+ enterRecursionRule(_localctx, 114, RULE_type, _p);
+ int _la;
+ try {
+ int _alt;
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(1689);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,216,_ctx) ) {
+ case 1:
+ {
+ setState(1643);
+ match(ARRAY);
+ setState(1644);
+ match(LT);
+ setState(1645);
+ type(0);
+ setState(1646);
+ match(GT);
+ }
+ break;
+ case 2:
+ {
+ setState(1648);
+ match(MAP);
+ setState(1649);
+ match(LT);
+ setState(1650);
+ type(0);
+ setState(1651);
+ match(T__3);
+ setState(1652);
+ type(0);
+ setState(1653);
+ match(GT);
+ }
+ break;
+ case 3:
+ {
+ setState(1655);
+ match(ROW);
+ setState(1656);
+ match(T__1);
+ setState(1657);
+ identifier();
+ setState(1658);
+ type(0);
+ setState(1665);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ while (_la==T__3) {
+ {
+ {
+ setState(1659);
+ match(T__3);
+ setState(1660);
+ identifier();
+ setState(1661);
+ type(0);
+ }
+ }
+ setState(1667);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ }
+ setState(1668);
+ match(T__2);
+ }
+ break;
+ case 4:
+ {
+ setState(1670);
+ baseType();
+ setState(1682);
+ _errHandler.sync(this);
+ switch ( getInterpreter().adaptivePredict(_input,215,_ctx) ) {
+ case 1:
+ {
+ setState(1671);
+ match(T__1);
+ setState(1672);
+ typeParameter();
+ setState(1677);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ while (_la==T__3) {
+ {
+ {
+ setState(1673);
+ match(T__3);
+ setState(1674);
+ typeParameter();
+ }
+ }
+ setState(1679);
+ _errHandler.sync(this);
+ _la = _input.LA(1);
+ }
+ setState(1680);
+ match(T__2);
+ }
+ break;
+ }
+ }
+ break;
+ case 5:
+ {
+ setState(1684);
+ match(INTERVAL);
+ setState(1685);
+ ((TypeContext)_localctx).from = intervalField();
+ setState(1686);
+ match(TO);
+ setState(1687);
+ ((TypeContext)_localctx).to = intervalField();
+ }
+ break;
+ }
+ _ctx.stop = _input.LT(-1);
+ setState(1695);
+ _errHandler.sync(this);
+ _alt = getInterpreter().adaptivePredict(_input,217,_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 TypeContext(_parentctx, _parentState);
+ pushNewRecursionContext(_localctx, _startState, RULE_type);
+ setState(1691);
+ if (!(precpred(_ctx, 6))) throw new FailedPredicateException(this, "precpred(_ctx, 6)");
+ setState(1692);
+ match(ARRAY);
+ }
+ }
+ }
+ setState(1697);
+ _errHandler.sync(this);
+ _alt = getInterpreter().adaptivePredict(_input,217,_ctx);
+ }
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ unrollRecursionContexts(_parentctx);
+ }
+ return _localctx;
+ }
+
+ public static class TypeParameterContext extends ParserRuleContext {
+ public TerminalNode INTEGER_VALUE() { return getToken(PrestoSqlParser.INTEGER_VALUE, 0); }
+ public TypeContext type() {
+ return getRuleContext(TypeContext.class,0);
+ }
+ public TypeParameterContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_typeParameter; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterTypeParameter(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitTypeParameter(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitTypeParameter(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final TypeParameterContext typeParameter() throws RecognitionException {
+ TypeParameterContext _localctx = new TypeParameterContext(_ctx, getState());
+ enterRule(_localctx, 116, RULE_typeParameter);
+ try {
+ setState(1700);
+ _errHandler.sync(this);
+ switch (_input.LA(1)) {
+ case INTEGER_VALUE:
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(1698);
+ match(INTEGER_VALUE);
+ }
+ break;
+ case ADD:
+ case ADMIN:
+ case ALL:
+ case ANALYZE:
+ case ANY:
+ case ARRAY:
+ case ASC:
+ case AT:
+ case BERNOULLI:
+ case CALL:
+ case CALLED:
+ case CASCADE:
+ case CATALOGS:
+ case COLUMN:
+ case COLUMNS:
+ case COMMENT:
+ case COMMIT:
+ case COMMITTED:
+ case CURRENT:
+ case CURRENT_ROLE:
+ case DATA:
+ case DATE:
+ case DAY:
+ case DEFINER:
+ case DESC:
+ case DETERMINISTIC:
+ case DISTRIBUTED:
+ case EXCLUDING:
+ case EXPLAIN:
+ case EXTERNAL:
+ case FILTER:
+ case FIRST:
+ case FOLLOWING:
+ case FORMAT:
+ case FUNCTION:
+ case FUNCTIONS:
+ case GRANT:
+ case GRANTED:
+ case GRANTS:
+ case GRAPHVIZ:
+ case HOUR:
+ case IF:
+ case IGNORE:
+ case INCLUDING:
+ case INPUT:
+ case INTERVAL:
+ case INVOKER:
+ case IO:
+ case ISOLATION:
+ case JSON:
+ case LANGUAGE:
+ case LAST:
+ case LATERAL:
+ case LEVEL:
+ case LIMIT:
+ case LOGICAL:
+ case MAP:
+ case MATERIALIZED:
+ case MINUTE:
+ case MONTH:
+ case NAME:
+ case NFC:
+ case NFD:
+ case NFKC:
+ case NFKD:
+ case NO:
+ case NONE:
+ case NULLIF:
+ case NULLS:
+ case OFFSET:
+ case ONLY:
+ case OPTION:
+ case ORDINALITY:
+ case OUTPUT:
+ case OVER:
+ case PARTITION:
+ case PARTITIONS:
+ case POSITION:
+ case PRECEDING:
+ case PRIVILEGES:
+ case PROPERTIES:
+ case RANGE:
+ case READ:
+ case REFRESH:
+ case RENAME:
+ case REPEATABLE:
+ case REPLACE:
+ case RESET:
+ case RESPECT:
+ case RESTRICT:
+ case RETURN:
+ case RETURNS:
+ case REVOKE:
+ case ROLE:
+ case ROLES:
+ case ROLLBACK:
+ case ROW:
+ case ROWS:
+ case SCHEMA:
+ case SCHEMAS:
+ case SECOND:
+ case SECURITY:
+ case SERIALIZABLE:
+ case SESSION:
+ case SET:
+ case SETS:
+ case SHOW:
+ case SOME:
+ case SQL:
+ case START:
+ case STATS:
+ case SUBSTRING:
+ case SYSTEM:
+ case TABLES:
+ case TABLESAMPLE:
+ case TEMPORARY:
+ case TEXT:
+ case TIME:
+ case TIMESTAMP:
+ case TO:
+ case TRANSACTION:
+ case TRY_CAST:
+ case TYPE:
+ case UNBOUNDED:
+ case UNCOMMITTED:
+ case USE:
+ case USER:
+ case VALIDATE:
+ case VERBOSE:
+ case VIEW:
+ case WORK:
+ case WRITE:
+ case YEAR:
+ case ZONE:
+ case IDENTIFIER:
+ case DIGIT_IDENTIFIER:
+ case QUOTED_IDENTIFIER:
+ case BACKQUOTED_IDENTIFIER:
+ case TIME_WITH_TIME_ZONE:
+ case TIMESTAMP_WITH_TIME_ZONE:
+ case DOUBLE_PRECISION:
+ enterOuterAlt(_localctx, 2);
+ {
+ setState(1699);
+ type(0);
+ }
+ 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 BaseTypeContext extends ParserRuleContext {
+ public TerminalNode TIME_WITH_TIME_ZONE() { return getToken(PrestoSqlParser.TIME_WITH_TIME_ZONE, 0); }
+ public TerminalNode TIMESTAMP_WITH_TIME_ZONE() { return getToken(PrestoSqlParser.TIMESTAMP_WITH_TIME_ZONE, 0); }
+ public TerminalNode DOUBLE_PRECISION() { return getToken(PrestoSqlParser.DOUBLE_PRECISION, 0); }
+ public QualifiedNameContext qualifiedName() {
+ return getRuleContext(QualifiedNameContext.class,0);
+ }
+ public BaseTypeContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_baseType; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterBaseType(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitBaseType(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitBaseType(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final BaseTypeContext baseType() throws RecognitionException {
+ BaseTypeContext _localctx = new BaseTypeContext(_ctx, getState());
+ enterRule(_localctx, 118, RULE_baseType);
+ try {
+ setState(1706);
+ _errHandler.sync(this);
+ switch (_input.LA(1)) {
+ case TIME_WITH_TIME_ZONE:
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(1702);
+ match(TIME_WITH_TIME_ZONE);
+ }
+ break;
+ case TIMESTAMP_WITH_TIME_ZONE:
+ enterOuterAlt(_localctx, 2);
+ {
+ setState(1703);
+ match(TIMESTAMP_WITH_TIME_ZONE);
+ }
+ break;
+ case DOUBLE_PRECISION:
+ enterOuterAlt(_localctx, 3);
+ {
+ setState(1704);
+ match(DOUBLE_PRECISION);
+ }
+ break;
+ case ADD:
+ case ADMIN:
+ case ALL:
+ case ANALYZE:
+ case ANY:
+ case ARRAY:
+ case ASC:
+ case AT:
+ case BERNOULLI:
+ case CALL:
+ case CALLED:
+ case CASCADE:
+ case CATALOGS:
+ case COLUMN:
+ case COLUMNS:
+ case COMMENT:
+ case COMMIT:
+ case COMMITTED:
+ case CURRENT:
+ case CURRENT_ROLE:
+ case DATA:
+ case DATE:
+ case DAY:
+ case DEFINER:
+ case DESC:
+ case DETERMINISTIC:
+ case DISTRIBUTED:
+ case EXCLUDING:
+ case EXPLAIN:
+ case EXTERNAL:
+ case FILTER:
+ case FIRST:
+ case FOLLOWING:
+ case FORMAT:
+ case FUNCTION:
+ case FUNCTIONS:
+ case GRANT:
+ case GRANTED:
+ case GRANTS:
+ case GRAPHVIZ:
+ case HOUR:
+ case IF:
+ case IGNORE:
+ case INCLUDING:
+ case INPUT:
+ case INTERVAL:
+ case INVOKER:
+ case IO:
+ case ISOLATION:
+ case JSON:
+ case LANGUAGE:
+ case LAST:
+ case LATERAL:
+ case LEVEL:
+ case LIMIT:
+ case LOGICAL:
+ case MAP:
+ case MATERIALIZED:
+ case MINUTE:
+ case MONTH:
+ case NAME:
+ case NFC:
+ case NFD:
+ case NFKC:
+ case NFKD:
+ case NO:
+ case NONE:
+ case NULLIF:
+ case NULLS:
+ case OFFSET:
+ case ONLY:
+ case OPTION:
+ case ORDINALITY:
+ case OUTPUT:
+ case OVER:
+ case PARTITION:
+ case PARTITIONS:
+ case POSITION:
+ case PRECEDING:
+ case PRIVILEGES:
+ case PROPERTIES:
+ case RANGE:
+ case READ:
+ case REFRESH:
+ case RENAME:
+ case REPEATABLE:
+ case REPLACE:
+ case RESET:
+ case RESPECT:
+ case RESTRICT:
+ case RETURN:
+ case RETURNS:
+ case REVOKE:
+ case ROLE:
+ case ROLES:
+ case ROLLBACK:
+ case ROW:
+ case ROWS:
+ case SCHEMA:
+ case SCHEMAS:
+ case SECOND:
+ case SECURITY:
+ case SERIALIZABLE:
+ case SESSION:
+ case SET:
+ case SETS:
+ case SHOW:
+ case SOME:
+ case SQL:
+ case START:
+ case STATS:
+ case SUBSTRING:
+ case SYSTEM:
+ case TABLES:
+ case TABLESAMPLE:
+ case TEMPORARY:
+ case TEXT:
+ case TIME:
+ case TIMESTAMP:
+ case TO:
+ case TRANSACTION:
+ case TRY_CAST:
+ case TYPE:
+ case UNBOUNDED:
+ case UNCOMMITTED:
+ case USE:
+ case USER:
+ case VALIDATE:
+ case VERBOSE:
+ case VIEW:
+ case WORK:
+ case WRITE:
+ case YEAR:
+ case ZONE:
+ case IDENTIFIER:
+ case DIGIT_IDENTIFIER:
+ case QUOTED_IDENTIFIER:
+ case BACKQUOTED_IDENTIFIER:
+ enterOuterAlt(_localctx, 4);
+ {
+ setState(1705);
+ qualifiedName();
+ }
+ 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 WhenClauseContext extends ParserRuleContext {
+ public ExpressionContext condition;
+ public ExpressionContext result;
+ public TerminalNode WHEN() { return getToken(PrestoSqlParser.WHEN, 0); }
+ public TerminalNode THEN() { return getToken(PrestoSqlParser.THEN, 0); }
+ public List expression() {
+ return getRuleContexts(ExpressionContext.class);
+ }
+ public ExpressionContext expression(int i) {
+ return getRuleContext(ExpressionContext.class,i);
+ }
+ public WhenClauseContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_whenClause; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterWhenClause(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitWhenClause(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitWhenClause(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final WhenClauseContext whenClause() throws RecognitionException {
+ WhenClauseContext _localctx = new WhenClauseContext(_ctx, getState());
+ enterRule(_localctx, 120, RULE_whenClause);
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(1708);
+ match(WHEN);
+ setState(1709);
+ ((WhenClauseContext)_localctx).condition = expression();
+ setState(1710);
+ match(THEN);
+ setState(1711);
+ ((WhenClauseContext)_localctx).result = expression();
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class FilterContext extends ParserRuleContext {
+ public TerminalNode FILTER() { return getToken(PrestoSqlParser.FILTER, 0); }
+ public TerminalNode WHERE() { return getToken(PrestoSqlParser.WHERE, 0); }
+ public BooleanExpressionContext booleanExpression() {
+ return getRuleContext(BooleanExpressionContext.class,0);
+ }
+ public FilterContext(ParserRuleContext parent, int invokingState) {
+ super(parent, invokingState);
+ }
+ @Override public int getRuleIndex() { return RULE_filter; }
+ @Override
+ public void enterRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).enterFilter(this);
+ }
+ @Override
+ public void exitRule(ParseTreeListener listener) {
+ if ( listener instanceof PrestoSqlListener ) ((PrestoSqlListener)listener).exitFilter(this);
+ }
+ @Override
+ public T accept(ParseTreeVisitor extends T> visitor) {
+ if ( visitor instanceof PrestoSqlVisitor ) return ((PrestoSqlVisitor extends T>)visitor).visitFilter(this);
+ else return visitor.visitChildren(this);
+ }
+ }
+
+ public final FilterContext filter() throws RecognitionException {
+ FilterContext _localctx = new FilterContext(_ctx, getState());
+ enterRule(_localctx, 122, RULE_filter);
+ try {
+ enterOuterAlt(_localctx, 1);
+ {
+ setState(1713);
+ match(FILTER);
+ setState(1714);
+ match(T__1);
+ setState(1715);
+ match(WHERE);
+ setState(1716);
+ booleanExpression(0);
+ setState(1717);
+ match(T__2);
+ }
+ }
+ catch (RecognitionException re) {
+ _localctx.exception = re;
+ _errHandler.reportError(this, re);
+ _errHandler.recover(this, re);
+ }
+ finally {
+ exitRule();
+ }
+ return _localctx;
+ }
+
+ public static class OverContext extends ParserRuleContext {
+ public ExpressionContext expression;
+ public List partition = new ArrayList