feat: support trino(presto) sql language (#105)

* feat(trino): intergrate prestoGrammar to dt-sql-parser

* feat(trino): add trinoSQl test framework

* feat(trino): intergrate test files for trinoSQL

* test(trino): support alterStatement test

* test(trino): support alter table set authorization statement

* feat(trino): complete trinosql alter unit tests

* test(trino): complete dropStatement unit cases for trinosql

* test(trino): complete create statement unit cases for trinoSQL

* test(trino): complete insertStatement unit cases for trinoSQl

* test(trino): dropStatement test files changed to short line split

* test(trino): complete selectStatement unit cases and grammar check

* test(trino): complete commentStatement unit case for trinoSQL

* test(trino): complete analyze commit and call clause unit case

* test(trino): complete delete deny and describe statement unit case

* test(trino): complete explain execute and grant statement unit case

* feat(trino): improve GRANT Role grammar

* test(trino): complete show statement unit case

* test(trino): complete truncateTable startTransaction update and values  statement unit case

* test(trino): improve update statement test cases

* test(trino): complete revoke revoke roles  and rollback statement unit case

* test(trino): add set statement test case

* feat: generator new trino parser and lexer file

* feat(trino): improve alter statement grammar

* test(trino): complete alter statement unit cases

* feat(trino): support case-insensitive lexers

* fix(trino): rm unless gen files

* test(trino): complete merge and reset session statement unit cases

* test(trino): complete merge anduse statement unit cases

* test(trino): complete prepare and refresh materialized view statement unit cases

* test(trino): improve statement unit cases

* test(trino): complete match recognize statement unit cases

* test(trino): complete window with row pattern recognition statement unit cases
This commit is contained in:
mumiao
2023-05-24 15:07:02 +08:00
committed by GitHub
parent 0924acf730
commit 9c82a5d248
119 changed files with 35039 additions and 2 deletions

File diff suppressed because it is too large Load Diff

View File

@ -12,3 +12,5 @@ export * from './lib/spark/SparkSqlVisitor';
export * from './lib/spark/SparkSqlListener';
export * from './lib/pgsql/PostgreSQLParserListener';
export * from './lib/pgsql/PostgreSQLParserVisitor';
export * from './lib/trinosql/trinoSqlParserListener';
export * from './lib/trinosql/trinoSqlParserVisitor';

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,538 @@
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
T__9=10
T__10=11
T__11=12
T__12=13
T__13=14
T__14=15
T__15=16
ADD=17
ADMIN=18
AFTER=19
ALL=20
ALTER=21
ANALYZE=22
AND=23
ANY=24
ARRAY=25
AS=26
ASC=27
AT=28
AUTHORIZATION=29
BERNOULLI=30
BETWEEN=31
BY=32
CALL=33
CASCADE=34
CASE=35
CAST=36
CATALOGS=37
COLUMN=38
COLUMNS=39
COMMENT=40
COMMIT=41
COMMITTED=42
CONSTRAINT=43
CREATE=44
CROSS=45
CUBE=46
CURRENT=47
CURRENT_CATALOG=48
CURRENT_DATE=49
CURRENT_PATH=50
CURRENT_ROLE=51
CURRENT_SCHEMA=52
CURRENT_TIME=53
CURRENT_TIMESTAMP=54
CURRENT_USER=55
DATA=56
DATE=57
DAY=58
DEFAULT=59
DEALLOCATE=60
DEFINER=61
DELETE=62
DESC=63
DESCRIBE=64
DEFINE=65
DISTINCT=66
DISTRIBUTED=67
DOUBLE=68
DROP=69
ELSE=70
EMPTY=71
END=72
ESCAPE=73
EXCEPT=74
EXCLUDING=75
EXECUTE=76
EXISTS=77
EXPLAIN=78
EXTRACT=79
FALSE=80
FETCH=81
FILTER=82
FINAL=83
FIRST=84
FOLLOWING=85
FOR=86
FORMAT=87
FROM=88
FULL=89
FUNCTIONS=90
GRANT=91
GRANTED=92
GRANTS=93
DENY=94
GRAPHVIZ=95
GROUP=96
GROUPING=97
GROUPS=98
HAVING=99
HOUR=100
IF=101
IGNORE=102
IN=103
INCLUDING=104
INITIAL=105
INNER=106
INPUT=107
INSERT=108
INTERSECT=109
INTERVAL=110
INTO=111
INVOKER=112
IO=113
IS=114
ISOLATION=115
JOIN=116
JSON=117
LAST=118
LATERAL=119
LEFT=120
LEVEL=121
LIKE=122
LIMIT=123
LOCAL=124
LOCALTIME=125
LOCALTIMESTAMP=126
LOGICAL=127
MAP=128
MATCH=129
MATCHED=130
MATCHES=131
MATCH_RECOGNIZE=132
MATERIALIZED=133
MEASURES=134
MERGE=135
MINUTE=136
MONTH=137
NATURAL=138
NEXT=139
NFC=140
NFD=141
NFKC=142
NFKD=143
NO=144
NONE=145
NORMALIZE=146
NOT=147
NULL=148
NULLIF=149
NULLS=150
OFFSET=151
OMIT=152
ON=153
ONE=154
ONLY=155
OPTION=156
OR=157
ORDER=158
ORDINALITY=159
OUTER=160
OUTPUT=161
OVER=162
PARTITION=163
PARTITIONS=164
PAST=165
PATH=166
PATTERN=167
PER=168
PERMUTE=169
POSITION=170
PRECEDING=171
PRECISION=172
PREPARE=173
PRIVILEGES=174
PROPERTIES=175
RANGE=176
READ=177
RECURSIVE=178
REFRESH=179
RENAME=180
REPEATABLE=181
REPLACE=182
RESET=183
RESPECT=184
RESTRICT=185
REVOKE=186
RIGHT=187
ROLE=188
ROLES=189
ROLLBACK=190
ROLLUP=191
ROW=192
ROWS=193
RUNNING=194
SCHEMA=195
SCHEMAS=196
SECOND=197
SECURITY=198
SEEK=199
SELECT=200
SERIALIZABLE=201
SESSION=202
SET=203
SETS=204
SHOW=205
SOME=206
START=207
STATS=208
SUBSET=209
SUBSTRING=210
SYSTEM=211
TABLE=212
TABLES=213
TABLESAMPLE=214
TEXT=215
THEN=216
TIES=217
TIME=218
TIMESTAMP=219
TO=220
TRANSACTION=221
TRUNCATE=222
TRUE=223
TRY_CAST=224
TYPE=225
UESCAPE=226
UNBOUNDED=227
UNCOMMITTED=228
UNION=229
UNMATCHED=230
UNNEST=231
UPDATE=232
USE=233
USER=234
USING=235
VALIDATE=236
VALUES=237
VERBOSE=238
VIEW=239
WHEN=240
WHERE=241
WINDOW=242
WITH=243
WITHOUT=244
WORK=245
WRITE=246
YEAR=247
ZONE=248
EQ=249
NEQ=250
LT=251
LTE=252
GT=253
GTE=254
PLUS=255
MINUS=256
ASTERISK=257
SLASH=258
PERCENT=259
CONCAT=260
QUESTION_MARK=261
STRING=262
UNICODE_STRING=263
BINARY_LITERAL=264
INTEGER_VALUE=265
DECIMAL_VALUE=266
DOUBLE_VALUE=267
IDENTIFIER=268
DIGIT_IDENTIFIER=269
QUOTED_IDENTIFIER=270
BACKQUOTED_IDENTIFIER=271
SEMICOLON=272
SIMPLE_COMMENT=273
BRACKETED_COMMENT=274
WS=275
UNRECOGNIZED=276
DELIMITER=277
'.'=1
'('=2
')'=3
','=4
'SKIP'=5
'->'=6
'['=7
']'=8
'|'=9
'^'=10
'$'=11
'{-'=12
'-}'=13
'{'=14
'}'=15
'=>'=16
'ADD'=17
'ADMIN'=18
'AFTER'=19
'ALL'=20
'ALTER'=21
'ANALYZE'=22
'AND'=23
'ANY'=24
'ARRAY'=25
'AS'=26
'ASC'=27
'AT'=28
'AUTHORIZATION'=29
'BERNOULLI'=30
'BETWEEN'=31
'BY'=32
'CALL'=33
'CASCADE'=34
'CASE'=35
'CAST'=36
'CATALOGS'=37
'COLUMN'=38
'COLUMNS'=39
'COMMENT'=40
'COMMIT'=41
'COMMITTED'=42
'CONSTRAINT'=43
'CREATE'=44
'CROSS'=45
'CUBE'=46
'CURRENT'=47
'CURRENT_CATALOG'=48
'CURRENT_DATE'=49
'CURRENT_PATH'=50
'CURRENT_ROLE'=51
'CURRENT_SCHEMA'=52
'CURRENT_TIME'=53
'CURRENT_TIMESTAMP'=54
'CURRENT_USER'=55
'DATA'=56
'DATE'=57
'DAY'=58
'DEFAULT'=59
'DEALLOCATE'=60
'DEFINER'=61
'DELETE'=62
'DESC'=63
'DESCRIBE'=64
'DEFINE'=65
'DISTINCT'=66
'DISTRIBUTED'=67
'DOUBLE'=68
'DROP'=69
'ELSE'=70
'EMPTY'=71
'END'=72
'ESCAPE'=73
'EXCEPT'=74
'EXCLUDING'=75
'EXECUTE'=76
'EXISTS'=77
'EXPLAIN'=78
'EXTRACT'=79
'FALSE'=80
'FETCH'=81
'FILTER'=82
'FINAL'=83
'FIRST'=84
'FOLLOWING'=85
'FOR'=86
'FORMAT'=87
'FROM'=88
'FULL'=89
'FUNCTIONS'=90
'GRANT'=91
'GRANTED'=92
'GRANTS'=93
'DENY'=94
'GRAPHVIZ'=95
'GROUP'=96
'GROUPING'=97
'GROUPS'=98
'HAVING'=99
'HOUR'=100
'IF'=101
'IGNORE'=102
'IN'=103
'INCLUDING'=104
'INITIAL'=105
'INNER'=106
'INPUT'=107
'INSERT'=108
'INTERSECT'=109
'INTERVAL'=110
'INTO'=111
'INVOKER'=112
'IO'=113
'IS'=114
'ISOLATION'=115
'JOIN'=116
'JSON'=117
'LAST'=118
'LATERAL'=119
'LEFT'=120
'LEVEL'=121
'LIKE'=122
'LIMIT'=123
'LOCAL'=124
'LOCALTIME'=125
'LOCALTIMESTAMP'=126
'LOGICAL'=127
'MAP'=128
'MATCH'=129
'MATCHED'=130
'MATCHES'=131
'MATCH_RECOGNIZE'=132
'MATERIALIZED'=133
'MEASURES'=134
'MERGE'=135
'MINUTE'=136
'MONTH'=137
'NATURAL'=138
'NEXT'=139
'NFC'=140
'NFD'=141
'NFKC'=142
'NFKD'=143
'NO'=144
'NONE'=145
'NORMALIZE'=146
'NOT'=147
'NULL'=148
'NULLIF'=149
'NULLS'=150
'OFFSET'=151
'OMIT'=152
'ON'=153
'ONE'=154
'ONLY'=155
'OPTION'=156
'OR'=157
'ORDER'=158
'ORDINALITY'=159
'OUTER'=160
'OUTPUT'=161
'OVER'=162
'PARTITION'=163
'PARTITIONS'=164
'PAST'=165
'PATH'=166
'PATTERN'=167
'PER'=168
'PERMUTE'=169
'POSITION'=170
'PRECEDING'=171
'PRECISION'=172
'PREPARE'=173
'PRIVILEGES'=174
'PROPERTIES'=175
'RANGE'=176
'READ'=177
'RECURSIVE'=178
'REFRESH'=179
'RENAME'=180
'REPEATABLE'=181
'REPLACE'=182
'RESET'=183
'RESPECT'=184
'RESTRICT'=185
'REVOKE'=186
'RIGHT'=187
'ROLE'=188
'ROLES'=189
'ROLLBACK'=190
'ROLLUP'=191
'ROW'=192
'ROWS'=193
'RUNNING'=194
'SCHEMA'=195
'SCHEMAS'=196
'SECOND'=197
'SECURITY'=198
'SEEK'=199
'SELECT'=200
'SERIALIZABLE'=201
'SESSION'=202
'SET'=203
'SETS'=204
'SHOW'=205
'SOME'=206
'START'=207
'STATS'=208
'SUBSET'=209
'SUBSTRING'=210
'SYSTEM'=211
'TABLE'=212
'TABLES'=213
'TABLESAMPLE'=214
'TEXT'=215
'THEN'=216
'TIES'=217
'TIME'=218
'TIMESTAMP'=219
'TO'=220
'TRANSACTION'=221
'TRUNCATE'=222
'TRUE'=223
'TRY_CAST'=224
'TYPE'=225
'UESCAPE'=226
'UNBOUNDED'=227
'UNCOMMITTED'=228
'UNION'=229
'UNMATCHED'=230
'UNNEST'=231
'UPDATE'=232
'USE'=233
'USER'=234
'USING'=235
'VALIDATE'=236
'VALUES'=237
'VERBOSE'=238
'VIEW'=239
'WHEN'=240
'WHERE'=241
'WINDOW'=242
'WITH'=243
'WITHOUT'=244
'WORK'=245
'WRITE'=246
'YEAR'=247
'ZONE'=248
'='=249
'<'=251
'<='=252
'>'=253
'>='=254
'+'=255
'-'=256
'*'=257
'/'=258
'%'=259
'||'=260
'?'=261
';'=272

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,537 @@
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
T__9=10
T__10=11
T__11=12
T__12=13
T__13=14
T__14=15
T__15=16
ADD=17
ADMIN=18
AFTER=19
ALL=20
ALTER=21
ANALYZE=22
AND=23
ANY=24
ARRAY=25
AS=26
ASC=27
AT=28
AUTHORIZATION=29
BERNOULLI=30
BETWEEN=31
BY=32
CALL=33
CASCADE=34
CASE=35
CAST=36
CATALOGS=37
COLUMN=38
COLUMNS=39
COMMENT=40
COMMIT=41
COMMITTED=42
CONSTRAINT=43
CREATE=44
CROSS=45
CUBE=46
CURRENT=47
CURRENT_CATALOG=48
CURRENT_DATE=49
CURRENT_PATH=50
CURRENT_ROLE=51
CURRENT_SCHEMA=52
CURRENT_TIME=53
CURRENT_TIMESTAMP=54
CURRENT_USER=55
DATA=56
DATE=57
DAY=58
DEFAULT=59
DEALLOCATE=60
DEFINER=61
DELETE=62
DESC=63
DESCRIBE=64
DEFINE=65
DISTINCT=66
DISTRIBUTED=67
DOUBLE=68
DROP=69
ELSE=70
EMPTY=71
END=72
ESCAPE=73
EXCEPT=74
EXCLUDING=75
EXECUTE=76
EXISTS=77
EXPLAIN=78
EXTRACT=79
FALSE=80
FETCH=81
FILTER=82
FINAL=83
FIRST=84
FOLLOWING=85
FOR=86
FORMAT=87
FROM=88
FULL=89
FUNCTIONS=90
GRANT=91
GRANTED=92
GRANTS=93
DENY=94
GRAPHVIZ=95
GROUP=96
GROUPING=97
GROUPS=98
HAVING=99
HOUR=100
IF=101
IGNORE=102
IN=103
INCLUDING=104
INITIAL=105
INNER=106
INPUT=107
INSERT=108
INTERSECT=109
INTERVAL=110
INTO=111
INVOKER=112
IO=113
IS=114
ISOLATION=115
JOIN=116
JSON=117
LAST=118
LATERAL=119
LEFT=120
LEVEL=121
LIKE=122
LIMIT=123
LOCAL=124
LOCALTIME=125
LOCALTIMESTAMP=126
LOGICAL=127
MAP=128
MATCH=129
MATCHED=130
MATCHES=131
MATCH_RECOGNIZE=132
MATERIALIZED=133
MEASURES=134
MERGE=135
MINUTE=136
MONTH=137
NATURAL=138
NEXT=139
NFC=140
NFD=141
NFKC=142
NFKD=143
NO=144
NONE=145
NORMALIZE=146
NOT=147
NULL=148
NULLIF=149
NULLS=150
OFFSET=151
OMIT=152
ON=153
ONE=154
ONLY=155
OPTION=156
OR=157
ORDER=158
ORDINALITY=159
OUTER=160
OUTPUT=161
OVER=162
PARTITION=163
PARTITIONS=164
PAST=165
PATH=166
PATTERN=167
PER=168
PERMUTE=169
POSITION=170
PRECEDING=171
PRECISION=172
PREPARE=173
PRIVILEGES=174
PROPERTIES=175
RANGE=176
READ=177
RECURSIVE=178
REFRESH=179
RENAME=180
REPEATABLE=181
REPLACE=182
RESET=183
RESPECT=184
RESTRICT=185
REVOKE=186
RIGHT=187
ROLE=188
ROLES=189
ROLLBACK=190
ROLLUP=191
ROW=192
ROWS=193
RUNNING=194
SCHEMA=195
SCHEMAS=196
SECOND=197
SECURITY=198
SEEK=199
SELECT=200
SERIALIZABLE=201
SESSION=202
SET=203
SETS=204
SHOW=205
SOME=206
START=207
STATS=208
SUBSET=209
SUBSTRING=210
SYSTEM=211
TABLE=212
TABLES=213
TABLESAMPLE=214
TEXT=215
THEN=216
TIES=217
TIME=218
TIMESTAMP=219
TO=220
TRANSACTION=221
TRUNCATE=222
TRUE=223
TRY_CAST=224
TYPE=225
UESCAPE=226
UNBOUNDED=227
UNCOMMITTED=228
UNION=229
UNMATCHED=230
UNNEST=231
UPDATE=232
USE=233
USER=234
USING=235
VALIDATE=236
VALUES=237
VERBOSE=238
VIEW=239
WHEN=240
WHERE=241
WINDOW=242
WITH=243
WITHOUT=244
WORK=245
WRITE=246
YEAR=247
ZONE=248
EQ=249
NEQ=250
LT=251
LTE=252
GT=253
GTE=254
PLUS=255
MINUS=256
ASTERISK=257
SLASH=258
PERCENT=259
CONCAT=260
QUESTION_MARK=261
STRING=262
UNICODE_STRING=263
BINARY_LITERAL=264
INTEGER_VALUE=265
DECIMAL_VALUE=266
DOUBLE_VALUE=267
IDENTIFIER=268
DIGIT_IDENTIFIER=269
QUOTED_IDENTIFIER=270
BACKQUOTED_IDENTIFIER=271
SEMICOLON=272
SIMPLE_COMMENT=273
BRACKETED_COMMENT=274
WS=275
UNRECOGNIZED=276
'.'=1
'('=2
')'=3
','=4
'SKIP'=5
'->'=6
'['=7
']'=8
'|'=9
'^'=10
'$'=11
'{-'=12
'-}'=13
'{'=14
'}'=15
'=>'=16
'ADD'=17
'ADMIN'=18
'AFTER'=19
'ALL'=20
'ALTER'=21
'ANALYZE'=22
'AND'=23
'ANY'=24
'ARRAY'=25
'AS'=26
'ASC'=27
'AT'=28
'AUTHORIZATION'=29
'BERNOULLI'=30
'BETWEEN'=31
'BY'=32
'CALL'=33
'CASCADE'=34
'CASE'=35
'CAST'=36
'CATALOGS'=37
'COLUMN'=38
'COLUMNS'=39
'COMMENT'=40
'COMMIT'=41
'COMMITTED'=42
'CONSTRAINT'=43
'CREATE'=44
'CROSS'=45
'CUBE'=46
'CURRENT'=47
'CURRENT_CATALOG'=48
'CURRENT_DATE'=49
'CURRENT_PATH'=50
'CURRENT_ROLE'=51
'CURRENT_SCHEMA'=52
'CURRENT_TIME'=53
'CURRENT_TIMESTAMP'=54
'CURRENT_USER'=55
'DATA'=56
'DATE'=57
'DAY'=58
'DEFAULT'=59
'DEALLOCATE'=60
'DEFINER'=61
'DELETE'=62
'DESC'=63
'DESCRIBE'=64
'DEFINE'=65
'DISTINCT'=66
'DISTRIBUTED'=67
'DOUBLE'=68
'DROP'=69
'ELSE'=70
'EMPTY'=71
'END'=72
'ESCAPE'=73
'EXCEPT'=74
'EXCLUDING'=75
'EXECUTE'=76
'EXISTS'=77
'EXPLAIN'=78
'EXTRACT'=79
'FALSE'=80
'FETCH'=81
'FILTER'=82
'FINAL'=83
'FIRST'=84
'FOLLOWING'=85
'FOR'=86
'FORMAT'=87
'FROM'=88
'FULL'=89
'FUNCTIONS'=90
'GRANT'=91
'GRANTED'=92
'GRANTS'=93
'DENY'=94
'GRAPHVIZ'=95
'GROUP'=96
'GROUPING'=97
'GROUPS'=98
'HAVING'=99
'HOUR'=100
'IF'=101
'IGNORE'=102
'IN'=103
'INCLUDING'=104
'INITIAL'=105
'INNER'=106
'INPUT'=107
'INSERT'=108
'INTERSECT'=109
'INTERVAL'=110
'INTO'=111
'INVOKER'=112
'IO'=113
'IS'=114
'ISOLATION'=115
'JOIN'=116
'JSON'=117
'LAST'=118
'LATERAL'=119
'LEFT'=120
'LEVEL'=121
'LIKE'=122
'LIMIT'=123
'LOCAL'=124
'LOCALTIME'=125
'LOCALTIMESTAMP'=126
'LOGICAL'=127
'MAP'=128
'MATCH'=129
'MATCHED'=130
'MATCHES'=131
'MATCH_RECOGNIZE'=132
'MATERIALIZED'=133
'MEASURES'=134
'MERGE'=135
'MINUTE'=136
'MONTH'=137
'NATURAL'=138
'NEXT'=139
'NFC'=140
'NFD'=141
'NFKC'=142
'NFKD'=143
'NO'=144
'NONE'=145
'NORMALIZE'=146
'NOT'=147
'NULL'=148
'NULLIF'=149
'NULLS'=150
'OFFSET'=151
'OMIT'=152
'ON'=153
'ONE'=154
'ONLY'=155
'OPTION'=156
'OR'=157
'ORDER'=158
'ORDINALITY'=159
'OUTER'=160
'OUTPUT'=161
'OVER'=162
'PARTITION'=163
'PARTITIONS'=164
'PAST'=165
'PATH'=166
'PATTERN'=167
'PER'=168
'PERMUTE'=169
'POSITION'=170
'PRECEDING'=171
'PRECISION'=172
'PREPARE'=173
'PRIVILEGES'=174
'PROPERTIES'=175
'RANGE'=176
'READ'=177
'RECURSIVE'=178
'REFRESH'=179
'RENAME'=180
'REPEATABLE'=181
'REPLACE'=182
'RESET'=183
'RESPECT'=184
'RESTRICT'=185
'REVOKE'=186
'RIGHT'=187
'ROLE'=188
'ROLES'=189
'ROLLBACK'=190
'ROLLUP'=191
'ROW'=192
'ROWS'=193
'RUNNING'=194
'SCHEMA'=195
'SCHEMAS'=196
'SECOND'=197
'SECURITY'=198
'SEEK'=199
'SELECT'=200
'SERIALIZABLE'=201
'SESSION'=202
'SET'=203
'SETS'=204
'SHOW'=205
'SOME'=206
'START'=207
'STATS'=208
'SUBSET'=209
'SUBSTRING'=210
'SYSTEM'=211
'TABLE'=212
'TABLES'=213
'TABLESAMPLE'=214
'TEXT'=215
'THEN'=216
'TIES'=217
'TIME'=218
'TIMESTAMP'=219
'TO'=220
'TRANSACTION'=221
'TRUNCATE'=222
'TRUE'=223
'TRY_CAST'=224
'TYPE'=225
'UESCAPE'=226
'UNBOUNDED'=227
'UNCOMMITTED'=228
'UNION'=229
'UNMATCHED'=230
'UNNEST'=231
'UPDATE'=232
'USE'=233
'USER'=234
'USING'=235
'VALIDATE'=236
'VALUES'=237
'VERBOSE'=238
'VIEW'=239
'WHEN'=240
'WHERE'=241
'WINDOW'=242
'WITH'=243
'WITHOUT'=244
'WORK'=245
'WRITE'=246
'YEAR'=247
'ZONE'=248
'='=249
'<'=251
'<='=252
'>'=253
'>='=254
'+'=255
'-'=256
'*'=257
'/'=258
'%'=259
'||'=260
'?'=261
';'=272

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

17
src/parser/trinosql.ts Normal file
View File

@ -0,0 +1,17 @@
import { CharStream, CommonTokenStream, Lexer } from 'antlr4';
import trinoSqlLexer from '../lib/trinosql/trinoSqlParserLexer';
import trinoSqlParser from '../lib/trinosql/trinoSqlParserParser';
import BasicParser from './common/basicParser';
export default class trinoSQL extends BasicParser {
public createLexer(input: string): trinoSqlLexer {
const chars = new CharStream(input.toUpperCase()); // Some Lexer only support uppercase token, So you need transform
const lexer = new trinoSqlLexer(chars);
return lexer;
}
public createParserFromLexer(lexer: Lexer): trinoSqlParser {
const tokens = new CommonTokenStream(lexer);
const parser = new trinoSqlParser(tokens);
return parser;
}
}