add flinksql
This commit is contained in:
624
src/antlr4/flinksql/sql.interp
Normal file
624
src/antlr4/flinksql/sql.interp
Normal file
File diff suppressed because one or more lines are too long
488
src/antlr4/flinksql/sql.tokens
Normal file
488
src/antlr4/flinksql/sql.tokens
Normal file
@ -0,0 +1,488 @@
|
||||
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
|
||||
SELECT=11
|
||||
FROM=12
|
||||
ADD=13
|
||||
AS=14
|
||||
ALL=15
|
||||
ANY=16
|
||||
DISTINCT=17
|
||||
WHERE=18
|
||||
GROUP=19
|
||||
BY=20
|
||||
GROUPING=21
|
||||
SETS=22
|
||||
CUBE=23
|
||||
ROLLUP=24
|
||||
ORDER=25
|
||||
HAVING=26
|
||||
LIMIT=27
|
||||
AT=28
|
||||
OR=29
|
||||
AND=30
|
||||
IN=31
|
||||
NOT=32
|
||||
NO=33
|
||||
EXISTS=34
|
||||
BETWEEN=35
|
||||
LIKE=36
|
||||
RLIKE=37
|
||||
IS=38
|
||||
NULL=39
|
||||
TRUE=40
|
||||
FALSE=41
|
||||
NULLS=42
|
||||
ASC=43
|
||||
DESC=44
|
||||
FOR=45
|
||||
INTERVAL=46
|
||||
CASE=47
|
||||
WHEN=48
|
||||
THEN=49
|
||||
ELSE=50
|
||||
END=51
|
||||
JOIN=52
|
||||
CROSS=53
|
||||
OUTER=54
|
||||
INNER=55
|
||||
LEFT=56
|
||||
SEMI=57
|
||||
RIGHT=58
|
||||
FULL=59
|
||||
NATURAL=60
|
||||
ON=61
|
||||
PIVOT=62
|
||||
LATERAL=63
|
||||
WINDOW=64
|
||||
OVER=65
|
||||
PARTITION=66
|
||||
RANGE=67
|
||||
ROWS=68
|
||||
UNBOUNDED=69
|
||||
PRECEDING=70
|
||||
FOLLOWING=71
|
||||
CURRENT=72
|
||||
FIRST=73
|
||||
AFTER=74
|
||||
LAST=75
|
||||
ROW=76
|
||||
WITH=77
|
||||
VALUES=78
|
||||
CREATE=79
|
||||
TABLE=80
|
||||
DIRECTORY=81
|
||||
VIEW=82
|
||||
REPLACE=83
|
||||
INSERT=84
|
||||
DELETE=85
|
||||
INTO=86
|
||||
DESCRIBE=87
|
||||
EXPLAIN=88
|
||||
FORMAT=89
|
||||
LOGICAL=90
|
||||
CODEGEN=91
|
||||
COST=92
|
||||
CAST=93
|
||||
SHOW=94
|
||||
TABLES=95
|
||||
COLUMNS=96
|
||||
COLUMN=97
|
||||
USE=98
|
||||
PARTITIONS=99
|
||||
FUNCTIONS=100
|
||||
DROP=101
|
||||
UNION=102
|
||||
EXCEPT=103
|
||||
SETMINUS=104
|
||||
INTERSECT=105
|
||||
TO=106
|
||||
TABLESAMPLE=107
|
||||
STRATIFY=108
|
||||
ALTER=109
|
||||
RENAME=110
|
||||
ARRAY=111
|
||||
MAP=112
|
||||
STRUCT=113
|
||||
COMMENT=114
|
||||
SET=115
|
||||
RESET=116
|
||||
DATA=117
|
||||
START=118
|
||||
TRANSACTION=119
|
||||
COMMIT=120
|
||||
ROLLBACK=121
|
||||
MACRO=122
|
||||
IGNORE=123
|
||||
BOTH=124
|
||||
LEADING=125
|
||||
TRAILING=126
|
||||
IF=127
|
||||
POSITION=128
|
||||
EXTRACT=129
|
||||
EQ=130
|
||||
NSEQ=131
|
||||
NEQ=132
|
||||
NEQJ=133
|
||||
LT=134
|
||||
LTE=135
|
||||
GT=136
|
||||
GTE=137
|
||||
PLUS=138
|
||||
MINUS=139
|
||||
ASTERISK=140
|
||||
SLASH=141
|
||||
PERCENT=142
|
||||
DIV=143
|
||||
TILDE=144
|
||||
AMPERSAND=145
|
||||
PIPE=146
|
||||
CONCAT_PIPE=147
|
||||
HAT=148
|
||||
PERCENTLIT=149
|
||||
BUCKET=150
|
||||
OUT=151
|
||||
OF=152
|
||||
SORT=153
|
||||
CLUSTER=154
|
||||
DISTRIBUTE=155
|
||||
OVERWRITE=156
|
||||
TRANSFORM=157
|
||||
REDUCE=158
|
||||
USING=159
|
||||
SERDE=160
|
||||
SERDEPROPERTIES=161
|
||||
RECORDREADER=162
|
||||
RECORDWRITER=163
|
||||
DELIMITED=164
|
||||
FIELDS=165
|
||||
TERMINATED=166
|
||||
COLLECTION=167
|
||||
ITEMS=168
|
||||
KEYS=169
|
||||
ESCAPED=170
|
||||
LINES=171
|
||||
SEPARATED=172
|
||||
FUNCTION=173
|
||||
EXTENDED=174
|
||||
REFRESH=175
|
||||
CLEAR=176
|
||||
CACHE=177
|
||||
UNCACHE=178
|
||||
LAZY=179
|
||||
FORMATTED=180
|
||||
GLOBAL=181
|
||||
TEMPORARY=182
|
||||
OPTIONS=183
|
||||
UNSET=184
|
||||
TBLPROPERTIES=185
|
||||
DBPROPERTIES=186
|
||||
BUCKETS=187
|
||||
SKEWED=188
|
||||
STORED=189
|
||||
DIRECTORIES=190
|
||||
LOCATION=191
|
||||
EXCHANGE=192
|
||||
ARCHIVE=193
|
||||
UNARCHIVE=194
|
||||
FILEFORMAT=195
|
||||
TOUCH=196
|
||||
COMPACT=197
|
||||
CONCATENATE=198
|
||||
CHANGE=199
|
||||
CASCADE=200
|
||||
RESTRICT=201
|
||||
CLUSTERED=202
|
||||
SORTED=203
|
||||
PURGE=204
|
||||
INPUTFORMAT=205
|
||||
OUTPUTFORMAT=206
|
||||
DATABASE=207
|
||||
DATABASES=208
|
||||
DFS=209
|
||||
TRUNCATE=210
|
||||
ANALYZE=211
|
||||
COMPUTE=212
|
||||
LIST=213
|
||||
STATISTICS=214
|
||||
PARTITIONED=215
|
||||
EXTERNAL=216
|
||||
DEFINED=217
|
||||
REVOKE=218
|
||||
GRANT=219
|
||||
LOCK=220
|
||||
UNLOCK=221
|
||||
MSCK=222
|
||||
REPAIR=223
|
||||
RECOVER=224
|
||||
EXPORT=225
|
||||
IMPORT=226
|
||||
LOAD=227
|
||||
ROLE=228
|
||||
ROLES=229
|
||||
COMPACTIONS=230
|
||||
PRINCIPALS=231
|
||||
TRANSACTIONS=232
|
||||
INDEX=233
|
||||
INDEXES=234
|
||||
LOCKS=235
|
||||
OPTION=236
|
||||
ANTI=237
|
||||
LOCAL=238
|
||||
INPATH=239
|
||||
WATERMARK=240
|
||||
STRING=241
|
||||
BIGINT_LITERAL=242
|
||||
SMALLINT_LITERAL=243
|
||||
TINYINT_LITERAL=244
|
||||
INTEGER_VALUE=245
|
||||
DECIMAL_VALUE=246
|
||||
DOUBLE_LITERAL=247
|
||||
BIGDECIMAL_LITERAL=248
|
||||
IDENTIFIER=249
|
||||
BACKQUOTED_IDENTIFIER=250
|
||||
SIMPLE_COMMENT=251
|
||||
BRACKETED_EMPTY_COMMENT=252
|
||||
BRACKETED_COMMENT=253
|
||||
WS=254
|
||||
UNRECOGNIZED=255
|
||||
'('=1
|
||||
')'=2
|
||||
'.'=3
|
||||
','=4
|
||||
'/*+'=5
|
||||
'*/'=6
|
||||
'->'=7
|
||||
'['=8
|
||||
']'=9
|
||||
':'=10
|
||||
'SELECT'=11
|
||||
'FROM'=12
|
||||
'ADD'=13
|
||||
'AS'=14
|
||||
'ALL'=15
|
||||
'ANY'=16
|
||||
'DISTINCT'=17
|
||||
'WHERE'=18
|
||||
'GROUP'=19
|
||||
'BY'=20
|
||||
'GROUPING'=21
|
||||
'SETS'=22
|
||||
'CUBE'=23
|
||||
'ROLLUP'=24
|
||||
'ORDER'=25
|
||||
'HAVING'=26
|
||||
'LIMIT'=27
|
||||
'AT'=28
|
||||
'OR'=29
|
||||
'AND'=30
|
||||
'IN'=31
|
||||
'NO'=33
|
||||
'EXISTS'=34
|
||||
'BETWEEN'=35
|
||||
'LIKE'=36
|
||||
'IS'=38
|
||||
'NULL'=39
|
||||
'TRUE'=40
|
||||
'FALSE'=41
|
||||
'NULLS'=42
|
||||
'ASC'=43
|
||||
'DESC'=44
|
||||
'FOR'=45
|
||||
'INTERVAL'=46
|
||||
'CASE'=47
|
||||
'WHEN'=48
|
||||
'THEN'=49
|
||||
'ELSE'=50
|
||||
'END'=51
|
||||
'JOIN'=52
|
||||
'CROSS'=53
|
||||
'OUTER'=54
|
||||
'INNER'=55
|
||||
'LEFT'=56
|
||||
'SEMI'=57
|
||||
'RIGHT'=58
|
||||
'FULL'=59
|
||||
'NATURAL'=60
|
||||
'ON'=61
|
||||
'PIVOT'=62
|
||||
'LATERAL'=63
|
||||
'WINDOW'=64
|
||||
'OVER'=65
|
||||
'PARTITION'=66
|
||||
'RANGE'=67
|
||||
'ROWS'=68
|
||||
'UNBOUNDED'=69
|
||||
'PRECEDING'=70
|
||||
'FOLLOWING'=71
|
||||
'CURRENT'=72
|
||||
'FIRST'=73
|
||||
'AFTER'=74
|
||||
'LAST'=75
|
||||
'ROW'=76
|
||||
'WITH'=77
|
||||
'VALUES'=78
|
||||
'CREATE'=79
|
||||
'TABLE'=80
|
||||
'DIRECTORY'=81
|
||||
'VIEW'=82
|
||||
'REPLACE'=83
|
||||
'INSERT'=84
|
||||
'DELETE'=85
|
||||
'INTO'=86
|
||||
'DESCRIBE'=87
|
||||
'EXPLAIN'=88
|
||||
'FORMAT'=89
|
||||
'LOGICAL'=90
|
||||
'CODEGEN'=91
|
||||
'COST'=92
|
||||
'CAST'=93
|
||||
'SHOW'=94
|
||||
'TABLES'=95
|
||||
'COLUMNS'=96
|
||||
'COLUMN'=97
|
||||
'USE'=98
|
||||
'PARTITIONS'=99
|
||||
'FUNCTIONS'=100
|
||||
'DROP'=101
|
||||
'UNION'=102
|
||||
'EXCEPT'=103
|
||||
'MINUS'=104
|
||||
'INTERSECT'=105
|
||||
'TO'=106
|
||||
'TABLESAMPLE'=107
|
||||
'STRATIFY'=108
|
||||
'ALTER'=109
|
||||
'RENAME'=110
|
||||
'ARRAY'=111
|
||||
'MAP'=112
|
||||
'STRUCT'=113
|
||||
'COMMENT'=114
|
||||
'SET'=115
|
||||
'RESET'=116
|
||||
'DATA'=117
|
||||
'START'=118
|
||||
'TRANSACTION'=119
|
||||
'COMMIT'=120
|
||||
'ROLLBACK'=121
|
||||
'MACRO'=122
|
||||
'IGNORE'=123
|
||||
'BOTH'=124
|
||||
'LEADING'=125
|
||||
'TRAILING'=126
|
||||
'IF'=127
|
||||
'POSITION'=128
|
||||
'EXTRACT'=129
|
||||
'<=>'=131
|
||||
'<>'=132
|
||||
'!='=133
|
||||
'<'=134
|
||||
'>'=136
|
||||
'+'=138
|
||||
'-'=139
|
||||
'*'=140
|
||||
'/'=141
|
||||
'%'=142
|
||||
'DIV'=143
|
||||
'~'=144
|
||||
'&'=145
|
||||
'|'=146
|
||||
'||'=147
|
||||
'^'=148
|
||||
'PERCENT'=149
|
||||
'BUCKET'=150
|
||||
'OUT'=151
|
||||
'OF'=152
|
||||
'SORT'=153
|
||||
'CLUSTER'=154
|
||||
'DISTRIBUTE'=155
|
||||
'OVERWRITE'=156
|
||||
'TRANSFORM'=157
|
||||
'REDUCE'=158
|
||||
'USING'=159
|
||||
'SERDE'=160
|
||||
'SERDEPROPERTIES'=161
|
||||
'RECORDREADER'=162
|
||||
'RECORDWRITER'=163
|
||||
'DELIMITED'=164
|
||||
'FIELDS'=165
|
||||
'TERMINATED'=166
|
||||
'COLLECTION'=167
|
||||
'ITEMS'=168
|
||||
'KEYS'=169
|
||||
'ESCAPED'=170
|
||||
'LINES'=171
|
||||
'SEPARATED'=172
|
||||
'FUNCTION'=173
|
||||
'EXTENDED'=174
|
||||
'REFRESH'=175
|
||||
'CLEAR'=176
|
||||
'CACHE'=177
|
||||
'UNCACHE'=178
|
||||
'LAZY'=179
|
||||
'FORMATTED'=180
|
||||
'GLOBAL'=181
|
||||
'OPTIONS'=183
|
||||
'UNSET'=184
|
||||
'TBLPROPERTIES'=185
|
||||
'DBPROPERTIES'=186
|
||||
'BUCKETS'=187
|
||||
'SKEWED'=188
|
||||
'STORED'=189
|
||||
'DIRECTORIES'=190
|
||||
'LOCATION'=191
|
||||
'EXCHANGE'=192
|
||||
'ARCHIVE'=193
|
||||
'UNARCHIVE'=194
|
||||
'FILEFORMAT'=195
|
||||
'TOUCH'=196
|
||||
'COMPACT'=197
|
||||
'CONCATENATE'=198
|
||||
'CHANGE'=199
|
||||
'CASCADE'=200
|
||||
'RESTRICT'=201
|
||||
'CLUSTERED'=202
|
||||
'SORTED'=203
|
||||
'PURGE'=204
|
||||
'INPUTFORMAT'=205
|
||||
'OUTPUTFORMAT'=206
|
||||
'DFS'=209
|
||||
'TRUNCATE'=210
|
||||
'ANALYZE'=211
|
||||
'COMPUTE'=212
|
||||
'LIST'=213
|
||||
'STATISTICS'=214
|
||||
'PARTITIONED'=215
|
||||
'EXTERNAL'=216
|
||||
'DEFINED'=217
|
||||
'REVOKE'=218
|
||||
'GRANT'=219
|
||||
'LOCK'=220
|
||||
'UNLOCK'=221
|
||||
'MSCK'=222
|
||||
'REPAIR'=223
|
||||
'RECOVER'=224
|
||||
'EXPORT'=225
|
||||
'IMPORT'=226
|
||||
'LOAD'=227
|
||||
'ROLE'=228
|
||||
'ROLES'=229
|
||||
'COMPACTIONS'=230
|
||||
'PRINCIPALS'=231
|
||||
'TRANSACTIONS'=232
|
||||
'INDEX'=233
|
||||
'INDEXES'=234
|
||||
'LOCKS'=235
|
||||
'OPTION'=236
|
||||
'ANTI'=237
|
||||
'LOCAL'=238
|
||||
'INPATH'=239
|
||||
'WATERMARK'=240
|
||||
'/**/'=252
|
786
src/antlr4/flinksql/sqlLexer.interp
Normal file
786
src/antlr4/flinksql/sqlLexer.interp
Normal file
File diff suppressed because one or more lines are too long
2051
src/antlr4/flinksql/sqlLexer.js
Normal file
2051
src/antlr4/flinksql/sqlLexer.js
Normal file
File diff suppressed because it is too large
Load Diff
488
src/antlr4/flinksql/sqlLexer.tokens
Normal file
488
src/antlr4/flinksql/sqlLexer.tokens
Normal file
@ -0,0 +1,488 @@
|
||||
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
|
||||
SELECT=11
|
||||
FROM=12
|
||||
ADD=13
|
||||
AS=14
|
||||
ALL=15
|
||||
ANY=16
|
||||
DISTINCT=17
|
||||
WHERE=18
|
||||
GROUP=19
|
||||
BY=20
|
||||
GROUPING=21
|
||||
SETS=22
|
||||
CUBE=23
|
||||
ROLLUP=24
|
||||
ORDER=25
|
||||
HAVING=26
|
||||
LIMIT=27
|
||||
AT=28
|
||||
OR=29
|
||||
AND=30
|
||||
IN=31
|
||||
NOT=32
|
||||
NO=33
|
||||
EXISTS=34
|
||||
BETWEEN=35
|
||||
LIKE=36
|
||||
RLIKE=37
|
||||
IS=38
|
||||
NULL=39
|
||||
TRUE=40
|
||||
FALSE=41
|
||||
NULLS=42
|
||||
ASC=43
|
||||
DESC=44
|
||||
FOR=45
|
||||
INTERVAL=46
|
||||
CASE=47
|
||||
WHEN=48
|
||||
THEN=49
|
||||
ELSE=50
|
||||
END=51
|
||||
JOIN=52
|
||||
CROSS=53
|
||||
OUTER=54
|
||||
INNER=55
|
||||
LEFT=56
|
||||
SEMI=57
|
||||
RIGHT=58
|
||||
FULL=59
|
||||
NATURAL=60
|
||||
ON=61
|
||||
PIVOT=62
|
||||
LATERAL=63
|
||||
WINDOW=64
|
||||
OVER=65
|
||||
PARTITION=66
|
||||
RANGE=67
|
||||
ROWS=68
|
||||
UNBOUNDED=69
|
||||
PRECEDING=70
|
||||
FOLLOWING=71
|
||||
CURRENT=72
|
||||
FIRST=73
|
||||
AFTER=74
|
||||
LAST=75
|
||||
ROW=76
|
||||
WITH=77
|
||||
VALUES=78
|
||||
CREATE=79
|
||||
TABLE=80
|
||||
DIRECTORY=81
|
||||
VIEW=82
|
||||
REPLACE=83
|
||||
INSERT=84
|
||||
DELETE=85
|
||||
INTO=86
|
||||
DESCRIBE=87
|
||||
EXPLAIN=88
|
||||
FORMAT=89
|
||||
LOGICAL=90
|
||||
CODEGEN=91
|
||||
COST=92
|
||||
CAST=93
|
||||
SHOW=94
|
||||
TABLES=95
|
||||
COLUMNS=96
|
||||
COLUMN=97
|
||||
USE=98
|
||||
PARTITIONS=99
|
||||
FUNCTIONS=100
|
||||
DROP=101
|
||||
UNION=102
|
||||
EXCEPT=103
|
||||
SETMINUS=104
|
||||
INTERSECT=105
|
||||
TO=106
|
||||
TABLESAMPLE=107
|
||||
STRATIFY=108
|
||||
ALTER=109
|
||||
RENAME=110
|
||||
ARRAY=111
|
||||
MAP=112
|
||||
STRUCT=113
|
||||
COMMENT=114
|
||||
SET=115
|
||||
RESET=116
|
||||
DATA=117
|
||||
START=118
|
||||
TRANSACTION=119
|
||||
COMMIT=120
|
||||
ROLLBACK=121
|
||||
MACRO=122
|
||||
IGNORE=123
|
||||
BOTH=124
|
||||
LEADING=125
|
||||
TRAILING=126
|
||||
IF=127
|
||||
POSITION=128
|
||||
EXTRACT=129
|
||||
EQ=130
|
||||
NSEQ=131
|
||||
NEQ=132
|
||||
NEQJ=133
|
||||
LT=134
|
||||
LTE=135
|
||||
GT=136
|
||||
GTE=137
|
||||
PLUS=138
|
||||
MINUS=139
|
||||
ASTERISK=140
|
||||
SLASH=141
|
||||
PERCENT=142
|
||||
DIV=143
|
||||
TILDE=144
|
||||
AMPERSAND=145
|
||||
PIPE=146
|
||||
CONCAT_PIPE=147
|
||||
HAT=148
|
||||
PERCENTLIT=149
|
||||
BUCKET=150
|
||||
OUT=151
|
||||
OF=152
|
||||
SORT=153
|
||||
CLUSTER=154
|
||||
DISTRIBUTE=155
|
||||
OVERWRITE=156
|
||||
TRANSFORM=157
|
||||
REDUCE=158
|
||||
USING=159
|
||||
SERDE=160
|
||||
SERDEPROPERTIES=161
|
||||
RECORDREADER=162
|
||||
RECORDWRITER=163
|
||||
DELIMITED=164
|
||||
FIELDS=165
|
||||
TERMINATED=166
|
||||
COLLECTION=167
|
||||
ITEMS=168
|
||||
KEYS=169
|
||||
ESCAPED=170
|
||||
LINES=171
|
||||
SEPARATED=172
|
||||
FUNCTION=173
|
||||
EXTENDED=174
|
||||
REFRESH=175
|
||||
CLEAR=176
|
||||
CACHE=177
|
||||
UNCACHE=178
|
||||
LAZY=179
|
||||
FORMATTED=180
|
||||
GLOBAL=181
|
||||
TEMPORARY=182
|
||||
OPTIONS=183
|
||||
UNSET=184
|
||||
TBLPROPERTIES=185
|
||||
DBPROPERTIES=186
|
||||
BUCKETS=187
|
||||
SKEWED=188
|
||||
STORED=189
|
||||
DIRECTORIES=190
|
||||
LOCATION=191
|
||||
EXCHANGE=192
|
||||
ARCHIVE=193
|
||||
UNARCHIVE=194
|
||||
FILEFORMAT=195
|
||||
TOUCH=196
|
||||
COMPACT=197
|
||||
CONCATENATE=198
|
||||
CHANGE=199
|
||||
CASCADE=200
|
||||
RESTRICT=201
|
||||
CLUSTERED=202
|
||||
SORTED=203
|
||||
PURGE=204
|
||||
INPUTFORMAT=205
|
||||
OUTPUTFORMAT=206
|
||||
DATABASE=207
|
||||
DATABASES=208
|
||||
DFS=209
|
||||
TRUNCATE=210
|
||||
ANALYZE=211
|
||||
COMPUTE=212
|
||||
LIST=213
|
||||
STATISTICS=214
|
||||
PARTITIONED=215
|
||||
EXTERNAL=216
|
||||
DEFINED=217
|
||||
REVOKE=218
|
||||
GRANT=219
|
||||
LOCK=220
|
||||
UNLOCK=221
|
||||
MSCK=222
|
||||
REPAIR=223
|
||||
RECOVER=224
|
||||
EXPORT=225
|
||||
IMPORT=226
|
||||
LOAD=227
|
||||
ROLE=228
|
||||
ROLES=229
|
||||
COMPACTIONS=230
|
||||
PRINCIPALS=231
|
||||
TRANSACTIONS=232
|
||||
INDEX=233
|
||||
INDEXES=234
|
||||
LOCKS=235
|
||||
OPTION=236
|
||||
ANTI=237
|
||||
LOCAL=238
|
||||
INPATH=239
|
||||
WATERMARK=240
|
||||
STRING=241
|
||||
BIGINT_LITERAL=242
|
||||
SMALLINT_LITERAL=243
|
||||
TINYINT_LITERAL=244
|
||||
INTEGER_VALUE=245
|
||||
DECIMAL_VALUE=246
|
||||
DOUBLE_LITERAL=247
|
||||
BIGDECIMAL_LITERAL=248
|
||||
IDENTIFIER=249
|
||||
BACKQUOTED_IDENTIFIER=250
|
||||
SIMPLE_COMMENT=251
|
||||
BRACKETED_EMPTY_COMMENT=252
|
||||
BRACKETED_COMMENT=253
|
||||
WS=254
|
||||
UNRECOGNIZED=255
|
||||
'('=1
|
||||
')'=2
|
||||
'.'=3
|
||||
','=4
|
||||
'/*+'=5
|
||||
'*/'=6
|
||||
'->'=7
|
||||
'['=8
|
||||
']'=9
|
||||
':'=10
|
||||
'SELECT'=11
|
||||
'FROM'=12
|
||||
'ADD'=13
|
||||
'AS'=14
|
||||
'ALL'=15
|
||||
'ANY'=16
|
||||
'DISTINCT'=17
|
||||
'WHERE'=18
|
||||
'GROUP'=19
|
||||
'BY'=20
|
||||
'GROUPING'=21
|
||||
'SETS'=22
|
||||
'CUBE'=23
|
||||
'ROLLUP'=24
|
||||
'ORDER'=25
|
||||
'HAVING'=26
|
||||
'LIMIT'=27
|
||||
'AT'=28
|
||||
'OR'=29
|
||||
'AND'=30
|
||||
'IN'=31
|
||||
'NO'=33
|
||||
'EXISTS'=34
|
||||
'BETWEEN'=35
|
||||
'LIKE'=36
|
||||
'IS'=38
|
||||
'NULL'=39
|
||||
'TRUE'=40
|
||||
'FALSE'=41
|
||||
'NULLS'=42
|
||||
'ASC'=43
|
||||
'DESC'=44
|
||||
'FOR'=45
|
||||
'INTERVAL'=46
|
||||
'CASE'=47
|
||||
'WHEN'=48
|
||||
'THEN'=49
|
||||
'ELSE'=50
|
||||
'END'=51
|
||||
'JOIN'=52
|
||||
'CROSS'=53
|
||||
'OUTER'=54
|
||||
'INNER'=55
|
||||
'LEFT'=56
|
||||
'SEMI'=57
|
||||
'RIGHT'=58
|
||||
'FULL'=59
|
||||
'NATURAL'=60
|
||||
'ON'=61
|
||||
'PIVOT'=62
|
||||
'LATERAL'=63
|
||||
'WINDOW'=64
|
||||
'OVER'=65
|
||||
'PARTITION'=66
|
||||
'RANGE'=67
|
||||
'ROWS'=68
|
||||
'UNBOUNDED'=69
|
||||
'PRECEDING'=70
|
||||
'FOLLOWING'=71
|
||||
'CURRENT'=72
|
||||
'FIRST'=73
|
||||
'AFTER'=74
|
||||
'LAST'=75
|
||||
'ROW'=76
|
||||
'WITH'=77
|
||||
'VALUES'=78
|
||||
'CREATE'=79
|
||||
'TABLE'=80
|
||||
'DIRECTORY'=81
|
||||
'VIEW'=82
|
||||
'REPLACE'=83
|
||||
'INSERT'=84
|
||||
'DELETE'=85
|
||||
'INTO'=86
|
||||
'DESCRIBE'=87
|
||||
'EXPLAIN'=88
|
||||
'FORMAT'=89
|
||||
'LOGICAL'=90
|
||||
'CODEGEN'=91
|
||||
'COST'=92
|
||||
'CAST'=93
|
||||
'SHOW'=94
|
||||
'TABLES'=95
|
||||
'COLUMNS'=96
|
||||
'COLUMN'=97
|
||||
'USE'=98
|
||||
'PARTITIONS'=99
|
||||
'FUNCTIONS'=100
|
||||
'DROP'=101
|
||||
'UNION'=102
|
||||
'EXCEPT'=103
|
||||
'MINUS'=104
|
||||
'INTERSECT'=105
|
||||
'TO'=106
|
||||
'TABLESAMPLE'=107
|
||||
'STRATIFY'=108
|
||||
'ALTER'=109
|
||||
'RENAME'=110
|
||||
'ARRAY'=111
|
||||
'MAP'=112
|
||||
'STRUCT'=113
|
||||
'COMMENT'=114
|
||||
'SET'=115
|
||||
'RESET'=116
|
||||
'DATA'=117
|
||||
'START'=118
|
||||
'TRANSACTION'=119
|
||||
'COMMIT'=120
|
||||
'ROLLBACK'=121
|
||||
'MACRO'=122
|
||||
'IGNORE'=123
|
||||
'BOTH'=124
|
||||
'LEADING'=125
|
||||
'TRAILING'=126
|
||||
'IF'=127
|
||||
'POSITION'=128
|
||||
'EXTRACT'=129
|
||||
'<=>'=131
|
||||
'<>'=132
|
||||
'!='=133
|
||||
'<'=134
|
||||
'>'=136
|
||||
'+'=138
|
||||
'-'=139
|
||||
'*'=140
|
||||
'/'=141
|
||||
'%'=142
|
||||
'DIV'=143
|
||||
'~'=144
|
||||
'&'=145
|
||||
'|'=146
|
||||
'||'=147
|
||||
'^'=148
|
||||
'PERCENT'=149
|
||||
'BUCKET'=150
|
||||
'OUT'=151
|
||||
'OF'=152
|
||||
'SORT'=153
|
||||
'CLUSTER'=154
|
||||
'DISTRIBUTE'=155
|
||||
'OVERWRITE'=156
|
||||
'TRANSFORM'=157
|
||||
'REDUCE'=158
|
||||
'USING'=159
|
||||
'SERDE'=160
|
||||
'SERDEPROPERTIES'=161
|
||||
'RECORDREADER'=162
|
||||
'RECORDWRITER'=163
|
||||
'DELIMITED'=164
|
||||
'FIELDS'=165
|
||||
'TERMINATED'=166
|
||||
'COLLECTION'=167
|
||||
'ITEMS'=168
|
||||
'KEYS'=169
|
||||
'ESCAPED'=170
|
||||
'LINES'=171
|
||||
'SEPARATED'=172
|
||||
'FUNCTION'=173
|
||||
'EXTENDED'=174
|
||||
'REFRESH'=175
|
||||
'CLEAR'=176
|
||||
'CACHE'=177
|
||||
'UNCACHE'=178
|
||||
'LAZY'=179
|
||||
'FORMATTED'=180
|
||||
'GLOBAL'=181
|
||||
'OPTIONS'=183
|
||||
'UNSET'=184
|
||||
'TBLPROPERTIES'=185
|
||||
'DBPROPERTIES'=186
|
||||
'BUCKETS'=187
|
||||
'SKEWED'=188
|
||||
'STORED'=189
|
||||
'DIRECTORIES'=190
|
||||
'LOCATION'=191
|
||||
'EXCHANGE'=192
|
||||
'ARCHIVE'=193
|
||||
'UNARCHIVE'=194
|
||||
'FILEFORMAT'=195
|
||||
'TOUCH'=196
|
||||
'COMPACT'=197
|
||||
'CONCATENATE'=198
|
||||
'CHANGE'=199
|
||||
'CASCADE'=200
|
||||
'RESTRICT'=201
|
||||
'CLUSTERED'=202
|
||||
'SORTED'=203
|
||||
'PURGE'=204
|
||||
'INPUTFORMAT'=205
|
||||
'OUTPUTFORMAT'=206
|
||||
'DFS'=209
|
||||
'TRUNCATE'=210
|
||||
'ANALYZE'=211
|
||||
'COMPUTE'=212
|
||||
'LIST'=213
|
||||
'STATISTICS'=214
|
||||
'PARTITIONED'=215
|
||||
'EXTERNAL'=216
|
||||
'DEFINED'=217
|
||||
'REVOKE'=218
|
||||
'GRANT'=219
|
||||
'LOCK'=220
|
||||
'UNLOCK'=221
|
||||
'MSCK'=222
|
||||
'REPAIR'=223
|
||||
'RECOVER'=224
|
||||
'EXPORT'=225
|
||||
'IMPORT'=226
|
||||
'LOAD'=227
|
||||
'ROLE'=228
|
||||
'ROLES'=229
|
||||
'COMPACTIONS'=230
|
||||
'PRINCIPALS'=231
|
||||
'TRANSACTIONS'=232
|
||||
'INDEX'=233
|
||||
'INDEXES'=234
|
||||
'LOCKS'=235
|
||||
'OPTION'=236
|
||||
'ANTI'=237
|
||||
'LOCAL'=238
|
||||
'INPATH'=239
|
||||
'WATERMARK'=240
|
||||
'/**/'=252
|
1878
src/antlr4/flinksql/sqlListener.js
Normal file
1878
src/antlr4/flinksql/sqlListener.js
Normal file
File diff suppressed because it is too large
Load Diff
25744
src/antlr4/flinksql/sqlParser.js
Normal file
25744
src/antlr4/flinksql/sqlParser.js
Normal file
File diff suppressed because one or more lines are too long
1258
src/antlr4/flinksql/sqlVisitor.js
Normal file
1258
src/antlr4/flinksql/sqlVisitor.js
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,9 @@
|
||||
import * as parser from "./lib/parser";
|
||||
import * as filter from "./lib/filter";
|
||||
import flinksqlParser from './lib/flinkParser';
|
||||
|
||||
export {
|
||||
parser,
|
||||
filter
|
||||
filter,
|
||||
flinksqlParser
|
||||
};
|
57
src/lib/flinkParser.ts
Normal file
57
src/lib/flinkParser.ts
Normal file
@ -0,0 +1,57 @@
|
||||
import * as antlr4 from 'antlr4'
|
||||
import { ErrorListener } from 'antlr4/error';
|
||||
import { sqlLexer } from '../antlr4/flinksql/sqlLexer';
|
||||
import { sqlParser } from '../antlr4/flinksql/sqlParser';
|
||||
import { sqlVisitor } from '../antlr4/flinksql/sqlVisitor';
|
||||
|
||||
import { splitSql } from '../utils'
|
||||
|
||||
interface SyntaxError {
|
||||
line: number;
|
||||
column: number;
|
||||
token: antlr4.Token;
|
||||
errorMsg: string;
|
||||
}
|
||||
|
||||
class SqlErrorListener extends ErrorListener {
|
||||
error: SyntaxError = null;
|
||||
syntaxError (recognizer: antlr4.Recognizer, offendingSymbol: antlr4.Token, line: number, charPositionInLine: number, msg: string, e: any) {
|
||||
this.error = {
|
||||
line,
|
||||
column: charPositionInLine,
|
||||
token: offendingSymbol,
|
||||
errorMsg: msg
|
||||
};
|
||||
}
|
||||
}
|
||||
function parserSingle (sql: string,) {
|
||||
if (!sql || !sql.trim()) {
|
||||
return null;
|
||||
}
|
||||
const inputStream = new antlr4.InputStream(sql.toUpperCase());
|
||||
const lexer = <unknown>new sqlLexer(inputStream) as antlr4.Lexer;
|
||||
const tokenStream = new antlr4.CommonTokenStream(lexer);
|
||||
const parser: any = new sqlParser(tokenStream);
|
||||
parser.buildParseTrees = true;
|
||||
let listener = new SqlErrorListener();
|
||||
parser.addErrorListener(listener)
|
||||
parser.singleStatement();
|
||||
return listener.error;
|
||||
}
|
||||
function parserSyntax (sql: sql): SyntaxError {
|
||||
let runSql = typeof sql == 'string' ? sql : sql.join('');
|
||||
const sqls = splitSql(runSql);
|
||||
for (let i = 0, index = 0; i < sqls.length; i++) {
|
||||
/**
|
||||
* 这边不取分号
|
||||
*/
|
||||
let sql = new Array(index).fill(' ').join('') + runSql.substring(index, sqls[i]);
|
||||
let err = parserSingle(sql);
|
||||
if (err) {
|
||||
return err;
|
||||
}
|
||||
index = sqls[i] + 1;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
export default parserSyntax;
|
@ -2,7 +2,6 @@
|
||||
import * as sqlSyntaxParser from '../core/sqlSyntaxParser';
|
||||
import * as sqlAutoCompleteParser from '../core/sqlAutoCompleteParser';
|
||||
|
||||
type sql = string | string [];
|
||||
enum sqlType {
|
||||
Hive = 'hive',
|
||||
None = 'sql',
|
||||
@ -29,12 +28,13 @@ function parseSyntax(sql: sql, type:sqlType = sqlType.Hive): sqlSyntaxParser.Syn
|
||||
/**
|
||||
* 自动补全提示
|
||||
*/
|
||||
function parserSql(sql: sql, type:sqlType = sqlType.Hive): sqlAutoCompleteParser.CompleteResult {
|
||||
function parserSql(sql: sql, type: sqlType = sqlType.Hive): sqlAutoCompleteParser.CompleteResult {
|
||||
const parserArgs = sqlToParserArgs(sql);
|
||||
return sqlAutoCompleteParser.parser.parseSql(parserArgs[0], parserArgs[1], type, false)
|
||||
}
|
||||
|
||||
export {
|
||||
parseSyntax,
|
||||
parserSql
|
||||
parserSql,
|
||||
sqlType
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
1
src/typing/base.d.ts
vendored
Normal file
1
src/typing/base.d.ts
vendored
Normal file
@ -0,0 +1 @@
|
||||
declare type sql = string | string[]
|
@ -20,7 +20,95 @@ function replaceStrFormIndexArr(str, replaceStr, indexArr) {
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
function splitSql (sql: string) {
|
||||
let haveEnd = true;
|
||||
if (!sql.endsWith(';')) {
|
||||
sql += ';';
|
||||
haveEnd = false;
|
||||
}
|
||||
interface splitParser {
|
||||
index: number;
|
||||
queue: string;
|
||||
sqls: number[];
|
||||
}
|
||||
// 处理引号
|
||||
function quoteToken (parser: splitParser, sql: string): string {
|
||||
let queue = parser.queue;
|
||||
let endsWith = queue[queue.length - 1];
|
||||
if (endsWith == '\'' || endsWith == '"') {
|
||||
let nextToken = sql.indexOf(endsWith, parser.index + 1);
|
||||
if (nextToken != -1) {
|
||||
parser.index = nextToken;
|
||||
parser.queue = '';
|
||||
} else {
|
||||
parser.index = sql.length - 1;
|
||||
}
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
// 处理单行注释
|
||||
function singleLineCommentToken (parser: splitParser, sql: string): string {
|
||||
let queue = parser.queue;
|
||||
if (queue.endsWith('--')) {
|
||||
let nextToken = sql.indexOf('\n', parser.index + 1);
|
||||
if (nextToken != -1) {
|
||||
parser.index = nextToken;
|
||||
queue = '';
|
||||
} else {
|
||||
parser.index = sql.length - 1;
|
||||
}
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
// 处理多行注释
|
||||
function multipleLineCommentToken (parser: splitParser, sql: string): string {
|
||||
let queue = parser.queue;
|
||||
if (queue.endsWith('/*')) {
|
||||
let nextToken = sql.indexOf('*/', parser.index + 1);
|
||||
if (nextToken != -1) {
|
||||
parser.index = nextToken + 1;
|
||||
parser.queue = '';
|
||||
} else {
|
||||
parser.index = sql.length - 1;
|
||||
parser.queue = '';
|
||||
}
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
function splitToken (parser: splitParser, sql: string): string {
|
||||
let queue = parser.queue;
|
||||
if (queue.endsWith(';')) {
|
||||
if (!haveEnd && parser.index == sql.length - 1) {
|
||||
parser.sqls.push(parser.index - 1);
|
||||
queue = '';
|
||||
} else {
|
||||
parser.sqls.push(parser.index);
|
||||
queue = '';
|
||||
}
|
||||
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
let parser: splitParser = {
|
||||
index: 0,
|
||||
queue: '',
|
||||
sqls: []
|
||||
};
|
||||
for (parser.index = 0; parser.index < sql.length; parser.index++) {
|
||||
let char = sql[parser.index];
|
||||
parser.queue += char;
|
||||
let tokenFuncs = [quoteToken, singleLineCommentToken, multipleLineCommentToken, splitToken];
|
||||
for (let i = 0; i < tokenFuncs.length; i++) {
|
||||
tokenFuncs[i](parser, sql);
|
||||
}
|
||||
}
|
||||
return parser.sqls;
|
||||
}
|
||||
export {
|
||||
replaceStrFormIndexArr
|
||||
replaceStrFormIndexArr,
|
||||
splitSql
|
||||
}
|
Reference in New Issue
Block a user