support format g4 (#232)

* chore: install antlr-format-cli to format g4 files

* style: format all g4 files

* chore: apply antlr-format to lint-staged
This commit is contained in:
Hayden 2023-12-12 20:05:21 +08:00 committed by GitHub
parent 17eba1f2aa
commit 14a5214e82
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
20 changed files with 16763 additions and 13690 deletions

View File

@ -1,4 +1,5 @@
module.exports = {
'*.js': [`prettier --write`],
'*.ts': [`prettier --write`],
'*.g4': [`antlr-format -c ./antlr.format.json -v`],
};

34
antlr.format.json Normal file
View File

@ -0,0 +1,34 @@
{
"main": {
"alignTrailingComments": true,
"columnLimit": 150,
"minEmptyLines": 1,
"maxEmptyLinesToKeep": 1,
"reflowComments": false,
"useTab": false,
"allowShortRulesOnASingleLine": false,
"allowShortBlocksOnASingleLine": true,
"alignSemicolons": "hanging",
"alignColons": "hanging",
"spaceBeforeAssignmentOperators": false,
"keepEmptyLinesAtTheStartOfBlocks": true
},
"lexer": {
"alignTrailingComments": true,
"columnLimit": 150,
"maxEmptyLinesToKeep": 1,
"reflowComments": false,
"useTab": false,
"allowShortRulesOnASingleLine": true,
"allowShortBlocksOnASingleLine": true,
"minEmptyLines": 0,
"alignSemicolons": "none",
"alignColons": "trailing",
"singleLineOverrulesHangingColon": true,
"alignLexerCommands": true,
"alignLabels": true,
"alignTrailers": true,
"spaceBeforeAssignmentOperators": false,
"groupedAlignments": true
}
}

View File

@ -28,6 +28,7 @@
"release": "node ./scripts/release.js",
"lint": "prettier --check '**/*.ts' --config ./.prettierrc",
"lint-fix": "prettier --write '**/*.ts' --config ./.prettierrc",
"format-g4": "antlr-format -c ./antlr.format.json -v ./src/grammar/**/*.g4",
"cleanComment": "node ./scripts/cleanCommentCli.js"
},
"license": "MIT",
@ -39,6 +40,7 @@
"@swc/jest": "^0.2.26",
"@types/jest": "^29.5.1",
"@types/node": "^18.15.11",
"antlr-format-cli": "^1.2.1",
"antlr4ts-cli": "^0.5.0-alpha.4",
"chalk": "4.1.2",
"commitizen": "^4.3.0",

View File

@ -8,6 +8,7 @@ specifiers:
'@swc/jest': ^0.2.26
'@types/jest': ^29.5.1
'@types/node': ^18.15.11
antlr-format-cli: ^1.2.1
antlr4-c3: 3.1.1
antlr4ts: 0.5.0-alpha.4
antlr4ts-cli: ^0.5.0-alpha.4
@ -35,6 +36,7 @@ devDependencies:
'@swc/jest': 0.2.26_@swc+core@1.3.60
'@types/jest': 29.5.1
'@types/node': 18.16.16
antlr-format-cli: 1.2.1
antlr4ts-cli: 0.5.0-alpha.4
chalk: 4.1.2
commitizen: 4.3.0_@swc+core@1.3.60
@ -351,6 +353,13 @@ packages:
'@babel/helper-plugin-utils': 7.21.5
dev: true
/@babel/runtime/7.23.6:
resolution: {integrity: sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==}
engines: {node: '>=6.9.0'}
dependencies:
regenerator-runtime: 0.14.0
dev: true
/@babel/template/7.21.9:
resolution: {integrity: sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ==}
engines: {node: '>=6.9.0'}
@ -587,6 +596,11 @@ packages:
'@jridgewell/trace-mapping': 0.3.9
dev: true
/@humanwhocodes/momoa/2.0.4:
resolution: {integrity: sha512-RE815I4arJFtt+FVeU1Tgp9/Xvecacji8w/V6XtXsWWH/wz/eNkNbhb+ny/+PlVZjV0rxQpRSQKNKE3lcktHEA==}
engines: {node: '>=10.10.0'}
dev: true
/@hutson/parse-repository-url/3.0.2:
resolution: {integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==}
engines: {node: '>=6.9.0'}
@ -899,6 +913,22 @@ packages:
dev: true
optional: true
/@readme/better-ajv-errors/1.6.0_ajv@8.12.0:
resolution: {integrity: sha512-9gO9rld84Jgu13kcbKRU+WHseNhaVt76wYMeRDGsUGYxwJtI3RmEJ9LY9dZCYQGI8eUZLuxb5qDja0nqklpFjQ==}
engines: {node: '>=14'}
peerDependencies:
ajv: 4.11.8 - 8
dependencies:
'@babel/code-frame': 7.21.4
'@babel/runtime': 7.23.6
'@humanwhocodes/momoa': 2.0.4
ajv: 8.12.0
chalk: 4.1.2
json-to-ast: 2.1.0
jsonpointer: 5.0.1
leven: 3.1.0
dev: true
/@sinclair/typebox/0.25.24:
resolution: {integrity: sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==}
dev: true
@ -1112,6 +1142,10 @@ packages:
pretty-format: 29.5.0
dev: true
/@types/json-schema/7.0.15:
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
dev: true
/@types/minimist/1.2.2:
resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==}
dev: true
@ -1233,12 +1267,32 @@ packages:
engines: {node: '>=12'}
dev: true
/antlr-format-cli/1.2.1:
resolution: {integrity: sha512-vqpoL9x3bXiNnC/vzZG3XOyk2vUAHPmBbI/ufyAqbxQHD27OPuUM4n/6m6NBEZZ7V4U2aEiefnZg2SCaSU89oA==}
hasBin: true
dependencies:
'@readme/better-ajv-errors': 1.6.0_ajv@8.12.0
ajv: 8.12.0
antlr4ng: 2.0.2
commander: 11.1.0
glob: 10.3.10
ts-json-schema-generator: 1.4.0
transitivePeerDependencies:
- antlr4ng-cli
dev: true
/antlr4-c3/3.1.1:
resolution: {integrity: sha512-S7DixV12kxWexTkQYGvooCgHYU5AjF74oYio+ZNgm0XN3EzxDY3J6Si9GprQ4KksvgWwK//EgZnL/26WB+bOpw==}
dependencies:
antlr4ts: 0.5.0-alpha.4
dev: false
/antlr4ng/2.0.2:
resolution: {integrity: sha512-Fhs3AvhoGigRt3RpHw0wGA7n03j9BpskH9yCUViNB7NtKuCA+imy2orEZ8qcgPG98f7IryEPYlG9sx99f3ZOyw==}
peerDependencies:
antlr4ng-cli: 1.0.4
dev: true
/antlr4ts-cli/0.5.0-alpha.4:
resolution: {integrity: sha512-lVPVBTA2CVHRYILSKilL6Jd4hAumhSZZWA7UbQNQrmaSSj7dPmmYaN4bOmZG79cOy0lS00i4LY68JZZjZMWVrw==}
hasBin: true
@ -1558,6 +1612,11 @@ packages:
engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
dev: true
/code-error-fragment/0.0.230:
resolution: {integrity: sha512-cadkfKp6932H8UkhzE/gcUqhRMNf8jHzkAN7+5Myabswaghu4xABTgPHDCjW+dBAJxj/SpkTYokpzDqY4pCzQw==}
engines: {node: '>= 4'}
dev: true
/collect-v8-coverage/1.0.1:
resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==}
dev: true
@ -1587,6 +1646,11 @@ packages:
resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
dev: true
/commander/11.1.0:
resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==}
engines: {node: '>=16'}
dev: true
/commander/9.5.0:
resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==}
engines: {node: ^12.20.0 || >=14}
@ -2312,6 +2376,17 @@ packages:
path-is-absolute: 1.0.1
dev: true
/glob/8.1.0:
resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==}
engines: {node: '>=12'}
dependencies:
fs.realpath: 1.0.0
inflight: 1.0.6
inherits: 2.0.4
minimatch: 5.1.6
once: 1.4.0
dev: true
/global-dirs/0.1.1:
resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==}
engines: {node: '>=4'}
@ -2348,6 +2423,10 @@ packages:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
dev: true
/grapheme-splitter/1.0.4:
resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
dev: true
/handlebars/4.7.7:
resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==}
engines: {node: '>=0.4.7'}
@ -3107,6 +3186,14 @@ packages:
resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
dev: true
/json-to-ast/2.1.0:
resolution: {integrity: sha512-W9Lq347r8tA1DfMvAGn9QNcgYm4Wm7Yc+k8e6vezpMnRT+NHbtlxgNBXRVjXe9YM6eTn6+p/MKOlV/aABJcSnQ==}
engines: {node: '>= 4'}
dependencies:
code-error-fragment: 0.0.230
grapheme-splitter: 1.0.4
dev: true
/json5/2.2.3:
resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
engines: {node: '>=6'}
@ -3130,6 +3217,11 @@ packages:
engines: {'0': node >= 0.2.0}
dev: true
/jsonpointer/5.0.1:
resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==}
engines: {node: '>=0.10.0'}
dev: true
/kind-of/6.0.3:
resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
engines: {node: '>=0.10.0'}
@ -3405,6 +3497,13 @@ packages:
brace-expansion: 1.1.11
dev: true
/minimatch/5.1.6:
resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
engines: {node: '>=10'}
dependencies:
brace-expansion: 2.0.1
dev: true
/minimatch/9.0.3:
resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
engines: {node: '>=16 || 14 >=14.17'}
@ -3823,6 +3922,10 @@ packages:
strip-indent: 3.0.0
dev: true
/regenerator-runtime/0.14.0:
resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==}
dev: true
/require-directory/2.1.1:
resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
engines: {node: '>=0.10.0'}
@ -3910,6 +4013,11 @@ packages:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
dev: true
/safe-stable-stringify/2.4.3:
resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==}
engines: {node: '>=10'}
dev: true
/safer-buffer/2.1.2:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
dev: true
@ -4253,6 +4361,20 @@ packages:
engines: {node: '>=8'}
dev: true
/ts-json-schema-generator/1.4.0:
resolution: {integrity: sha512-wm8vyihmGgYpxrqRshmYkWGNwEk+sf3xV2rUgxv8Ryeh7bSpMO7pZQOht+2rS002eDkFTxR7EwRPXVzrS0WJTg==}
engines: {node: '>=10.0.0'}
hasBin: true
dependencies:
'@types/json-schema': 7.0.15
commander: 11.1.0
glob: 8.1.0
json5: 2.2.3
normalize-path: 3.0.0
safe-stable-stringify: 2.4.3
typescript: 5.2.2
dev: true
/ts-node/10.9.1_0d2585e4297d96d8e906ef9bffd6d443:
resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
hasBin: true
@ -4324,6 +4446,12 @@ packages:
hasBin: true
dev: true
/typescript/5.2.2:
resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==}
engines: {node: '>=14.17'}
hasBin: true
dev: true
/uglify-js/3.17.4:
resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==}
engines: {node: '>=0.8.0'}

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +1,16 @@
// $antlr-format alignTrailingComments true, columnLimit 150, minEmptyLines 1, maxEmptyLinesToKeep 1, reflowComments false, useTab false
// $antlr-format allowShortRulesOnASingleLine false, allowShortBlocksOnASingleLine true, alignSemicolons hanging, alignColons hanging
// $antlr-format spaceBeforeAssignmentOperators false, keepEmptyLinesAtTheStartOfBlocks true
parser grammar FlinkSqlParser;
options { tokenVocab=FlinkSqlLexer; }
options {
tokenVocab=FlinkSqlLexer;
}
program: singleStatement* EOF;
program
: singleStatement* EOF
;
singleStatement
: sqlStatement SEMICOLON?
@ -10,10 +18,18 @@ singleStatement
;
sqlStatement
: ddlStatement | dmlStatement | describeStatement
| explainStatement | useStatement | showStatememt
| loadStatement | unloadStatememt | setStatememt
| resetStatememt | jarStatememt | dtAddStatement
: ddlStatement
| dmlStatement
| describeStatement
| explainStatement
| useStatement
| showStatememt
| loadStatement
| unloadStatememt
| setStatememt
| resetStatememt
| jarStatememt
| dtAddStatement
;
emptyStatement
@ -21,13 +37,25 @@ emptyStatement
;
ddlStatement
: createTable | createDatabase | createView | createFunction | createCatalog
| alterTable | alertView | alterDatabase | alterFunction
| dropCatalog | dropTable | dropDatabase | dropView | dropFunction
: createTable
| createDatabase
| createView
| createFunction
| createCatalog
| alterTable
| alertView
| alterDatabase
| alterFunction
| dropCatalog
| dropTable
| dropDatabase
| dropView
| dropFunction
;
dmlStatement
: queryStatement | insertStatement
: queryStatement
| insertStatement
;
// some statemen
@ -36,7 +64,11 @@ describeStatement
;
explainStatement
: KW_EXPLAIN (explainDetails | KW_PLAN KW_FOR)? (dmlStatement | insertSimpleStatement | insertMulStatement)
: KW_EXPLAIN (explainDetails | KW_PLAN KW_FOR)? (
dmlStatement
| insertSimpleStatement
| insertMulStatement
)
;
explainDetails
@ -44,11 +76,13 @@ explainDetails
;
explainDetail
: KW_CHANGELOG_MODE | KW_JSON_EXECUTION_PLAN | KW_ESTIMATED_COST
: KW_CHANGELOG_MODE
| KW_JSON_EXECUTION_PLAN
| KW_ESTIMATED_COST
;
useStatement
: KW_USE KW_CATALOG catalogPath
: KW_USE KW_CATALOG catalogPath
| KW_USE databasePath
| useModuleStatement
;
@ -60,8 +94,8 @@ useModuleStatement
showStatememt
: KW_SHOW (KW_CATALOGS | KW_DATABASES | KW_VIEWS | KW_JARS)
| KW_SHOW KW_CURRENT (KW_CATALOG | KW_DATABASE)
| KW_SHOW KW_TABLES (( KW_FROM | KW_IN ) databasePath)? likePredicate?
| KW_SHOW KW_COLUMNS ( KW_FROM | KW_IN ) (viewPath| tablePath) likePredicate?
| KW_SHOW KW_TABLES (( KW_FROM | KW_IN) databasePath)? likePredicate?
| KW_SHOW KW_COLUMNS ( KW_FROM | KW_IN) (viewPath | tablePath) likePredicate?
| KW_SHOW KW_CREATE (KW_TABLE tablePath | KW_VIEW viewPath)
| KW_SHOW KW_USER? KW_FUNCTIONS
| KW_SHOW KW_FULL? KW_MODULES
@ -70,7 +104,7 @@ showStatememt
loadStatement
: KW_LOAD KW_MODULE uid (KW_WITH tablePropertyList)?
;
unloadStatememt
: KW_UNLOAD KW_MODULE uid
;
@ -82,7 +116,7 @@ setStatememt
resetStatememt
: KW_RESET tablePropertyKey?
;
jarStatememt
: (KW_ADD | KW_REMOVE) KW_JAR jarFileName
;
@ -91,7 +125,13 @@ jarStatememt
dtAddStatement
: KW_ADD KW_JAR KW_WITH dtFilePath (KW_AS uid)?
| KW_ADD KW_FILE KW_WITH dtFilePath (KW_AS uid)? (KW_RENAME uid)?
| KW_ADD (KW_PYTHON_FILES | KW_PYTHON_REQUIREMENTS | KW_PYTHON_DEPENDENCIES | KW_PYTHON_JAR | KW_PYTHON_ARCHIVES) KW_WITH dtFilePath KW_RENAME uid
| KW_ADD (
KW_PYTHON_FILES
| KW_PYTHON_REQUIREMENTS
| KW_PYTHON_DEPENDENCIES
| KW_PYTHON_JAR
| KW_PYTHON_ARCHIVES
) KW_WITH dtFilePath KW_RENAME uid
| KW_ADD KW_PYTHON_PARAMETER dtFilePath
| KW_ADD KW_ENGINE KW_FILE KW_WITH dtFilePath KW_RENAME uid KW_KEY uid
| KW_ADD KW_CONFIG KW_FILE KW_WITH dtFilePath KW_FOR uid KW_AS uid
@ -106,19 +146,12 @@ dtFilePath
createTable
: (simpleCreateTable | createTableAsSelect)
;
simpleCreateTable
: KW_CREATE KW_TEMPORARY? KW_TABLE ifNotExists? tablePathCreate
LR_BRACKET
columnOptionDefinition (COMMA columnOptionDefinition)*
(COMMA watermarkDefinition)?
(COMMA tableConstraint)?
(COMMA selfDefinitionClause)?
RR_BRACKET
commentSpec?
partitionDefinition?
withOption
likeDefinition?
: KW_CREATE KW_TEMPORARY? KW_TABLE ifNotExists? tablePathCreate LR_BRACKET columnOptionDefinition (
COMMA columnOptionDefinition
)* (COMMA watermarkDefinition)? (COMMA tableConstraint)? (COMMA selfDefinitionClause)? RR_BRACKET commentSpec? partitionDefinition? withOption
likeDefinition?
;
/*
@ -141,10 +174,12 @@ physicalColumnDefinition
columnNameCreate
: uid
| expression;
| expression
;
columnName
: uid | expression
: uid
| expression
;
columnNameList
@ -153,9 +188,21 @@ columnNameList
columnType
: typeName=(KW_DATE | KW_BOOLEAN | KW_NULL)
| typeName=(KW_CHAR | KW_VARCHAR | KW_STRING | KW_BINARY | KW_VARBINARY | KW_BYTES
| KW_TINYINT | KW_SMALLINT |KW_INT | KW_INTEGER | KW_BIGINT
| KW_TIME | KW_TIMESTAMP_LTZ | KW_DATETIME
| typeName=(
KW_CHAR
| KW_VARCHAR
| KW_STRING
| KW_BINARY
| KW_VARBINARY
| KW_BYTES
| KW_TINYINT
| KW_SMALLINT
| KW_INT
| KW_INTEGER
| KW_BIGINT
| KW_TIME
| KW_TIMESTAMP_LTZ
| KW_DATETIME
) lengthOneDimension?
| typeName=KW_TIMESTAMP lengthOneDimension? ((KW_WITHOUT | KW_WITH) KW_LOCAL? KW_TIME KW_ZONE)?
| typeName=(KW_DECIMAL | KW_DEC | KW_NUMERIC | KW_FLOAT | KW_DOUBLE) lengthTwoOptionalDimension?
@ -190,7 +237,8 @@ rowTypeDimension
;
columnConstraint
:(KW_CONSTRAINT constraintName)? KW_PRIMARY KW_KEY (KW_NOT KW_ENFORCED)? | KW_NOT? KW_NULL
: (KW_CONSTRAINT constraintName)? KW_PRIMARY KW_KEY (KW_NOT KW_ENFORCED)?
| KW_NOT? KW_NULL
;
commentSpec
@ -239,9 +287,9 @@ transformList
;
transform
: columnName #identityTransform
| qualifiedName #columnTransform
| LR_BRACKET transformArgument (COMMA transformArgument)* RR_BRACKET #applyTransform
: columnName # identityTransform
| qualifiedName # columnTransform
| LR_BRACKET transformArgument (COMMA transformArgument)* RR_BRACKET # applyTransform
;
transformArgument
@ -271,11 +319,13 @@ createView
;
createFunction
: KW_CREATE (KW_TEMPORARY|KW_TEMPORARY KW_SYSTEM)? KW_FUNCTION ifNotExists? functionNameCreate KW_AS identifier (KW_LANGUAGE (KW_JAVA|KW_SCALA|KW_PYTHON))? usingClause?
: KW_CREATE (KW_TEMPORARY | KW_TEMPORARY KW_SYSTEM)? KW_FUNCTION ifNotExists? functionNameCreate KW_AS identifier (
KW_LANGUAGE (KW_JAVA | KW_SCALA | KW_PYTHON)
)? usingClause?
;
usingClause
: KW_USING KW_JAR jarFileName (COMMA KW_JAR jarFileName)*
: KW_USING KW_JAR jarFileName (COMMA KW_JAR jarFileName)*
;
jarFileName
@ -287,7 +337,13 @@ jarFileName
// it only includes rename, set key, add constraint, drop constraint, add unique
alterTable
: KW_ALTER KW_TABLE ifExists? tablePath (renameDefinition | setKeyValueDefinition | addConstraint | dropConstraint | addUnique)
: KW_ALTER KW_TABLE ifExists? tablePath (
renameDefinition
| setKeyValueDefinition
| addConstraint
| dropConstraint
| addUnique
)
;
renameDefinition
@ -323,10 +379,11 @@ alterDatabase
;
alterFunction
: KW_ALTER (KW_TEMPORARY|KW_TEMPORARY KW_SYSTEM)? KW_FUNCTION ifExists? functionName KW_AS identifier (KW_LANGUAGE (KW_JAVA|KW_SCALA|KW_PYTHON))? // TODO
: KW_ALTER (KW_TEMPORARY | KW_TEMPORARY KW_SYSTEM)? KW_FUNCTION ifExists? functionName KW_AS identifier (
KW_LANGUAGE (KW_JAVA | KW_SCALA | KW_PYTHON)
)? // TODO
;
// Drop statements
dropCatalog
@ -346,20 +403,19 @@ dropView
;
dropFunction
: KW_DROP (KW_TEMPORARY|KW_TEMPORARY KW_SYSTEM)? KW_FUNCTION ifExists? functionName
: KW_DROP (KW_TEMPORARY | KW_TEMPORARY KW_SYSTEM)? KW_FUNCTION ifExists? functionName
;
// Insert statements
insertStatement
: (KW_EXECUTE? insertSimpleStatement)
| insertMulStatementCompatibility | (KW_EXECUTE insertMulStatement)
: (KW_EXECUTE? insertSimpleStatement)
| insertMulStatementCompatibility
| (KW_EXECUTE insertMulStatement)
;
insertSimpleStatement
: KW_INSERT (KW_INTO | KW_OVERWRITE) tablePath
(
: KW_INSERT (KW_INTO | KW_OVERWRITE) tablePath (
insertPartitionDefinition? columnNameList? queryStatement
| valuesDefinition
)
@ -374,13 +430,11 @@ valuesDefinition
;
valuesRowDefinition
: LR_BRACKET
constant (COMMA constant)*
RR_BRACKET
: LR_BRACKET constant (COMMA constant)* RR_BRACKET
;
insertMulStatementCompatibility
: KW_BEGIN KW_STATEMENT KW_SET SEMICOLON (insertSimpleStatement SEMICOLON)+ KW_END
: KW_BEGIN KW_STATEMENT KW_SET SEMICOLON (insertSimpleStatement SEMICOLON)+ KW_END
;
insertMulStatement
@ -399,7 +453,7 @@ queryStatement
;
valuesCaluse
: KW_VALUES expression (COMMA expression )*
: KW_VALUES expression (COMMA expression)*
;
withClause
@ -420,12 +474,15 @@ selectStatement
;
selectClause
: KW_SELECT setQuantifier? (ASTERISK_SIGN | projectItemDefinition (COMMA projectItemDefinition)*)
: KW_SELECT setQuantifier? (
ASTERISK_SIGN
| projectItemDefinition (COMMA projectItemDefinition)*
)
;
projectItemDefinition
: overWindowItem
| columnName (KW_AS? expression )?
| columnName (KW_AS? expression)?
;
overWindowItem
@ -481,7 +538,7 @@ windoTVFName
: KW_TUMBLE
| KW_HOP
| KW_CUMULATE
;
;
windowTVFParam
: KW_TABLE timeAttrColumn
@ -563,25 +620,12 @@ namedWindow
;
windowSpec
: name=errorCapturingIdentifier?
LR_BRACKET
partitionByClause?
orderByCaluse?
windowFrame?
RR_BRACKET
: name=errorCapturingIdentifier? LR_BRACKET partitionByClause? orderByCaluse? windowFrame? RR_BRACKET
;
matchRecognizeClause
: KW_MATCH_RECOGNIZE
LR_BRACKET
partitionByClause?
orderByCaluse?
measuresClause?
outputMode?
afterMatchStrategy?
patternDefination?
patternVariablesDefination
RR_BRACKET ( KW_AS? identifier )?
: KW_MATCH_RECOGNIZE LR_BRACKET partitionByClause? orderByCaluse? measuresClause? outputMode? afterMatchStrategy? patternDefination?
patternVariablesDefination RR_BRACKET (KW_AS? identifier)?
;
orderByCaluse
@ -605,7 +649,7 @@ quantifiers
| (ADD_SIGN)
| (QUESTION_MARK_SIGN)
| (LB_BRACKET DIG_LITERAL COMMA DIG_LITERAL RB_BRACKET)
| (LB_BRACKET DIG_LITERAL COMMA RB_BRACKET)
| (LB_BRACKET DIG_LITERAL COMMA RB_BRACKET)
| (LB_BRACKET COMMA DIG_LITERAL RB_BRACKET)
;
@ -614,11 +658,7 @@ measuresClause
;
patternDefination
: KW_PATTERN
LR_BRACKET
patternVariable+
RR_BRACKET
withinClause?
: KW_PATTERN LR_BRACKET patternVariable+ RR_BRACKET withinClause?
;
patternVariable
@ -631,7 +671,7 @@ outputMode
;
afterMatchStrategy
: KW_AFTER KW_MATCH KW_SKIP KW_PAST KW_LAST KW_ROW
: KW_AFTER KW_MATCH KW_SKIP KW_PAST KW_LAST KW_ROW
| KW_AFTER KW_MATCH KW_SKIP KW_TO KW_NEXT KW_ROW
| KW_AFTER KW_MATCH KW_SKIP KW_TO KW_LAST unquotedIdentifier
| KW_AFTER KW_MATCH KW_SKIP KW_TO KW_FIRST unquotedIdentifier
@ -654,7 +694,6 @@ withinClause
: KW_WITHIN timeIntervalExpression
;
// expression
expression
@ -662,19 +701,16 @@ expression
;
booleanExpression
: KW_NOT booleanExpression #logicalNot
| KW_EXISTS LR_BRACKET queryStatement RR_BRACKET #exists
| valueExpression predicate? #predicated
| left=booleanExpression operator=KW_AND right=booleanExpression #logicalBinary
| left=booleanExpression operator=KW_OR right=booleanExpression #logicalBinary
| booleanExpression KW_IS KW_NOT? kind=(KW_TRUE | KW_FALSE | KW_UNKNOWN | KW_NULL) #logicalNested
: KW_NOT booleanExpression # logicalNot
| KW_EXISTS LR_BRACKET queryStatement RR_BRACKET # exists
| valueExpression predicate? # predicated
| left=booleanExpression operator=KW_AND right=booleanExpression # logicalBinary
| left=booleanExpression operator=KW_OR right=booleanExpression # logicalBinary
| booleanExpression KW_IS KW_NOT? kind=(KW_TRUE | KW_FALSE | KW_UNKNOWN | KW_NULL) # logicalNested
;
predicate
: KW_NOT?
kind=KW_BETWEEN (KW_ASYMMETRIC | KW_SYMMETRIC)?
lower=valueExpression KW_AND
upper=valueExpression
: KW_NOT? kind=KW_BETWEEN (KW_ASYMMETRIC | KW_SYMMETRIC)? lower=valueExpression KW_AND upper=valueExpression
| KW_NOT? kind=KW_IN LR_BRACKET expression (COMMA expression)* RR_BRACKET
| KW_NOT? kind=KW_IN LR_BRACKET queryStatement RR_BRACKET
| kind=KW_EXISTS LR_BRACKET queryStatement RR_BRACKET
@ -686,42 +722,45 @@ predicate
;
likePredicate
: KW_NOT? kind=KW_LIKE quantifier=(KW_ANY | KW_ALL) (LR_BRACKET RR_BRACKET | LR_BRACKET expression (COMMA expression)* RR_BRACKET)
: KW_NOT? kind=KW_LIKE quantifier=(KW_ANY | KW_ALL) (
LR_BRACKET RR_BRACKET
| LR_BRACKET expression (COMMA expression)* RR_BRACKET
)
| KW_NOT? kind=KW_LIKE pattern=valueExpression (KW_ESCAPE stringLiteral)?
;
valueExpression
: primaryExpression #valueExpressionDefault
| operator=(HYPNEN_SIGN | ADD_SIGN | BIT_NOT_OP) valueExpression #arithmeticUnary
| left=valueExpression operator=(ASTERISK_SIGN | SLASH_SIGN | PENCENT_SIGN | KW_DIV) right=valueExpression #arithmeticBinary
| left=valueExpression operator=(ADD_SIGN | HYPNEN_SIGN | DOUBLE_VERTICAL_SIGN) right=valueExpression #arithmeticBinary
| left=valueExpression operator=BIT_AND_OP right=valueExpression #arithmeticBinary
| left=valueExpression operator=BIT_XOR_OP right=valueExpression #arithmeticBinary
| left=valueExpression operator=BIT_OR_OP right=valueExpression #arithmeticBinary
| left=valueExpression comparisonOperator right=valueExpression #comparison
: primaryExpression # valueExpressionDefault
| operator=(HYPNEN_SIGN | ADD_SIGN | BIT_NOT_OP) valueExpression # arithmeticUnary
| left=valueExpression operator=(ASTERISK_SIGN | SLASH_SIGN | PENCENT_SIGN | KW_DIV) right=valueExpression # arithmeticBinary
| left=valueExpression operator=(ADD_SIGN | HYPNEN_SIGN | DOUBLE_VERTICAL_SIGN) right=valueExpression # arithmeticBinary
| left=valueExpression operator=BIT_AND_OP right=valueExpression # arithmeticBinary
| left=valueExpression operator=BIT_XOR_OP right=valueExpression # arithmeticBinary
| left=valueExpression operator=BIT_OR_OP right=valueExpression # arithmeticBinary
| left=valueExpression comparisonOperator right=valueExpression # comparison
;
primaryExpression
: KW_CASE whenClause+ (KW_ELSE elseExpression=expression)? KW_END #searchedCase
| KW_CASE value=expression whenClause+ (KW_ELSE elseExpression=expression)? KW_END #simpleCase
| KW_CAST LR_BRACKET expression KW_AS columnType RR_BRACKET #cast
: KW_CASE whenClause+ (KW_ELSE elseExpression=expression)? KW_END # searchedCase
| KW_CASE value=expression whenClause+ (KW_ELSE elseExpression=expression)? KW_END # simpleCase
| KW_CAST LR_BRACKET expression KW_AS columnType RR_BRACKET # cast
// | STRUCT LR_BRACKET (argument+=namedExpression (COMMA argument+=namedExpression)*)? RR_BRACKET #struct
| KW_FIRST LR_BRACKET expression (KW_IGNORE KW_NULLS)? RR_BRACKET #first
| KW_LAST LR_BRACKET expression (KW_IGNORE KW_NULLS)? RR_BRACKET #last
| KW_POSITION LR_BRACKET substr=valueExpression KW_IN str=valueExpression RR_BRACKET #position
| constant #constantDefault
| ASTERISK_SIGN #star
| uid DOT ASTERISK_SIGN #star
| KW_FIRST LR_BRACKET expression (KW_IGNORE KW_NULLS)? RR_BRACKET # first
| KW_LAST LR_BRACKET expression (KW_IGNORE KW_NULLS)? RR_BRACKET # last
| KW_POSITION LR_BRACKET substr=valueExpression KW_IN str=valueExpression RR_BRACKET # position
| constant # constantDefault
| ASTERISK_SIGN # star
| uid DOT ASTERISK_SIGN # star
// | LR_BRACKET namedExpression (COMMA namedExpression)+ RR_BRACKET #rowConstructor
| LR_BRACKET queryStatement RR_BRACKET #subqueryExpression
| functionName LR_BRACKET (setQuantifier? functionParam (COMMA functionParam)*)? RR_BRACKET #functionCall
| LR_BRACKET queryStatement RR_BRACKET # subqueryExpression
| functionName LR_BRACKET (setQuantifier? functionParam (COMMA functionParam)*)? RR_BRACKET # functionCall
// | identifier '->' expression #lambda
// | '(' identifier (',' identifier)+ ')' '->' expression #lambda
| value=primaryExpression LS_BRACKET index=valueExpression RS_BRACKET #subscript
| identifier #columnReference
| dereferenceDefinition #dereference
| LR_BRACKET expression RR_BRACKET #parenthesizedExpression
| KW_CURRENT_TIMESTAMP #dateFunctionExpression
| value=primaryExpression LS_BRACKET index=valueExpression RS_BRACKET # subscript
| identifier # columnReference
| dereferenceDefinition # dereference
| LR_BRACKET expression RR_BRACKET # parenthesizedExpression
| KW_CURRENT_TIMESTAMP # dateFunctionExpression
// | EXTRACT LR_BRACKET field=identifier KW_FROM source=valueExpression RR_BRACKET #extract
// | (SUBSTR | SUBSTRING) LR_BRACKET str=valueExpression (KW_FROM | COMMA) pos=valueExpression
// ((KW_FOR | COMMA) len=valueExpression)? RR_BRACKET #substring
@ -758,7 +797,8 @@ correlationName
;
qualifiedName
: identifier | dereferenceDefinition
: identifier
| dereferenceDefinition
;
timeIntervalExpression
@ -795,8 +835,8 @@ errorCapturingIdentifier
;
errorCapturingIdentifierExtra
: (KW_MINUS identifier)+ #errorIdent
| #realIdent
: (KW_MINUS identifier)+ # errorIdent
| # realIdent
;
identifierList
@ -808,13 +848,14 @@ identifierSeq
;
identifier
: unquotedIdentifier #unquotedIdentifierAlternative
| quotedIdentifier #quotedIdentifierAlternative
| nonReservedKeywords #nonReservedKeywordsAlternative
: unquotedIdentifier # unquotedIdentifierAlternative
| quotedIdentifier # quotedIdentifierAlternative
| nonReservedKeywords # nonReservedKeywordsAlternative
;
unquotedIdentifier
: DIG_LITERAL | ID_LITERAL
: DIG_LITERAL
| ID_LITERAL
;
quotedIdentifier
@ -870,10 +911,12 @@ withOption
;
ifNotExists
: KW_IF KW_NOT KW_EXISTS;
: KW_IF KW_NOT KW_EXISTS
;
ifExists
: KW_IF KW_EXISTS;
: KW_IF KW_EXISTS
;
tablePropertyList
: LR_BRACKET tableProperty (COMMA tableProperty)* RR_BRACKET
@ -884,7 +927,8 @@ tableProperty
;
tablePropertyKey
: identifier | dereferenceDefinition
: identifier
| dereferenceDefinition
| STRING_LITERAL
;
@ -898,56 +942,56 @@ tablePropertyValue
logicalOperator
: KW_AND
| BIT_AND_OP BIT_AND_OP
| KW_OR
| KW_OR
| BIT_OR_OP BIT_OR_OP
;
comparisonOperator
: EQUAL_SYMBOL
| GREATER_SYMBOL
| LESS_SYMBOL
| LESS_SYMBOL EQUAL_SYMBOL
: EQUAL_SYMBOL
| GREATER_SYMBOL
| LESS_SYMBOL
| LESS_SYMBOL EQUAL_SYMBOL
| GREATER_SYMBOL EQUAL_SYMBOL
| LESS_SYMBOL GREATER_SYMBOL
| EXCLAMATION_SYMBOL EQUAL_SYMBOL
| LESS_SYMBOL GREATER_SYMBOL
| EXCLAMATION_SYMBOL EQUAL_SYMBOL
| LESS_SYMBOL EQUAL_SYMBOL GREATER_SYMBOL
;
bitOperator
: LESS_SYMBOL LESS_SYMBOL
| GREATER_SYMBOL GREATER_SYMBOL
| BIT_AND_OP
| BIT_XOR_OP
: LESS_SYMBOL LESS_SYMBOL
| GREATER_SYMBOL GREATER_SYMBOL
| BIT_AND_OP
| BIT_XOR_OP
| BIT_OR_OP
;
mathOperator
: ASTERISK_SIGN
| SLASH_SIGN
| PENCENT_SIGN
| KW_DIV
| ADD_SIGN
| HYPNEN_SIGN
: ASTERISK_SIGN
| SLASH_SIGN
| PENCENT_SIGN
| KW_DIV
| ADD_SIGN
| HYPNEN_SIGN
| DOUBLE_HYPNEN_SIGN
;
unaryOperator
: EXCLAMATION_SYMBOL
| BIT_NOT_OP
| ADD_SIGN
| HYPNEN_SIGN
: EXCLAMATION_SYMBOL
| BIT_NOT_OP
| ADD_SIGN
| HYPNEN_SIGN
| KW_NOT
;
constant
: timeIntervalExpression
| timePointLiteral
| stringLiteral // 引号包含的字符串
| HYPNEN_SIGN? decimalLiteral // 正/负整数
| booleanLiteral // 布尔值
| REAL_LITERAL // 小数
| stringLiteral // 引号包含的字符串
| HYPNEN_SIGN? decimalLiteral // 正/负整数
| booleanLiteral // 布尔值
| REAL_LITERAL // 小数
| BIT_STRING
| KW_NOT? KW_NULL // 空 | 非空
| KW_NOT? KW_NULL // 空 | 非空
;
timePointLiteral
@ -963,7 +1007,9 @@ decimalLiteral
;
booleanLiteral
: KW_TRUE | KW_FALSE;
: KW_TRUE
| KW_FALSE
;
setQuantifier
: KW_DISTINCT
@ -1159,5 +1205,5 @@ nonReservedKeywords
| KW_VIEW
| KW_WEEK
| KW_YEARS
| KW_ZONE
| KW_ZONE
;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -19,351 +19,317 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
// $antlr-format alignTrailingComments true, columnLimit 150, maxEmptyLinesToKeep 1, reflowComments false, useTab false
// $antlr-format allowShortRulesOnASingleLine true, allowShortBlocksOnASingleLine true, minEmptyLines 0, alignSemicolons none, alignColons trailing
// $antlr-format singleLineOverrulesHangingColon true, alignLexerCommands true, alignLabels true, alignTrailers true
// $antlr-format spaceBeforeAssignmentOperators false, groupedAlignments true
lexer grammar ImpalaSqlLexer;
options { caseInsensitive = true; }
options {
caseInsensitive=true;
}
KW_ADD : 'ADD';
KW_ALL : 'ALL';
KW_ANALYTIC : 'ANALYTIC';
KW_ALTER : 'ALTER';
KW_AND : 'AND';
KW_ANY : 'ANY';
KW_ANTI : 'ANTI';
KW_ARRAY : 'ARRAY';
KW_AS : 'AS';
KW_ASC : 'ASC';
KW_AT : 'AT';
KW_AGGREGATE : 'AGGREGATE';
KW_AUTHORIZATION : 'AUTHORIZATION';
KW_BERNOULLI : 'BERNOULLI';
KW_BETWEEN : 'BETWEEN';
KW_BLOCK_SIZE : 'BLOCK_SIZE';
KW_PARTITIONED : 'PARTITIONED';
KW_PREPARE_FN : 'PREPARE_FN';
KW_EXTERNAL : 'EXTERNAL';
KW_CLOSEFN : 'CLOSEFN';
KW_SORT : 'SORT';
KW_PURGE : 'PURGE';
KW_STORED : 'STORED';
KW_LOCATION : 'LOCATION';
KW_TBLPROPERTIES : 'TBLPROPERTIES';
KW_BY : 'BY';
KW_CASCADE : 'CASCADE';
KW_CASE : 'CASE';
KW_CAST : 'CAST';
KW_CACHED : 'CACHED';
KW_CHANGE : 'CHANGE';
KW_COLUMN : 'COLUMN';
KW_COLUMNS : 'COLUMNS';
KW_COMMENT : 'COMMENT';
KW_COMPRESSION : 'COMPRESSION';
KW_COMPUTE : 'COMPUTE';
KW_CREATE : 'CREATE';
KW_CROSS : 'CROSS';
KW_CURRENT : 'CURRENT';
KW_CURRENT_DATE : 'CURRENT_DATE';
KW_CURRENT_PATH : 'CURRENT_PATH';
KW_CURRENT_TIME : 'CURRENT_TIME';
KW_CURRENT_TIMESTAMP : 'CURRENT_TIMESTAMP';
KW_CURRENT_USER : 'CURRENT_USER';
KW_DATA : 'DATA';
KW_DATABASE : 'DATABASE';
KW_DATABASES : 'DATABASES';
KW_DAY : 'DAY';
KW_DAYS : 'DAYS';
KW_DELETE : 'DELETE';
KW_DEFAULT : 'DEFAULT';
KW_DELIMITED : 'DELIMITED';
KW_DISABLE : 'DISABLE';
KW_UPDATE : 'UPDATE';
KW_DESC : 'DESC';
KW_DESCRIBE : 'DESCRIBE';
KW_DISTINCT : 'DISTINCT';
KW_DROP : 'DROP';
KW_ELSE : 'ELSE';
KW_ENCODING : 'ENCODING';
KW_END : 'END';
KW_ESCAPE : 'ESCAPE';
KW_ESCAPED : 'ESCAPED';
KW_EXCEPT : 'EXCEPT';
KW_EXCLUDING : 'EXCLUDING';
KW_EXISTS : 'EXISTS';
KW_EXPLAIN : 'EXPLAIN';
KW_EXTRACT : 'EXTRACT';
KW_EXTENDED : 'EXTENDED';
KW_FALSE : 'FALSE';
KW_FIELDS : 'FIELDS';
KW_FILEFORMAT : 'FILEFORMAT';
KW_FILES : 'FILES';
KW_FILTER : 'FILTER';
KW_FIRST : 'FIRST';
KW_FINALIZE_FN : 'FINALIZE_FN';
KW_FOLLOWING : 'FOLLOWING';
KW_FOR : 'FOR';
KW_FORMAT : 'FORMAT';
KW_FORMATTED : 'FORMATTED';
KW_FOREIGN : 'FOREIGN';
KW_FROM : 'FROM';
KW_FULL : 'FULL';
KW_FUNCTION : 'FUNCTION';
KW_FUNCTIONS : 'FUNCTIONS';
KW_GRANT : 'GRANT';
KW_GROUP : 'GROUP';
KW_GROUPING : 'GROUPING';
KW_HASH : 'HASH';
KW_HAVING : 'HAVING';
KW_HOUR : 'HOUR';
KW_HOURS : 'HOURS';
KW_IF : 'IF';
KW_IN : 'IN';
KW_INCLUDING : 'INCLUDING';
KW_INCREMENTAL : 'INCREMENTAL';
KW_INNER : 'INNER';
KW_INPATH : 'INPATH';
KW_INSERT : 'INSERT';
KW_INTERSECT : 'INTERSECT';
KW_INTERVAL : 'INTERVAL';
KW_INTERMEDIATE : 'INTERMEDIATE';
KW_INTO : 'INTO';
KW_INIT_FN : 'INIT_FN';
KW_IREGEXP : 'IREGEXP';
KW_ILIKE : 'ILIKE';
KW_INVALIDATE : 'INVALIDATE';
KW_IS : 'IS';
KW_JOIN : 'JOIN';
KW_KEY : 'KEY';
KW_KUDU : 'KUDU';
KW_LAST : 'LAST';
KW_LATERAL : 'LATERAL';
KW_LEFT : 'LEFT';
KW_LIKE : 'LIKE';
KW_LIMIT : 'LIMIT';
KW_LINES : 'LINES';
KW_LOAD : 'LOAD';
KW_LOCALTIME : 'LOCALTIME';
KW_LOCALTIMESTAMP : 'LOCALTIMESTAMP';
KW_METADATA : 'METADATA';
KW_MAP : 'MAP';
KW_MINUTE : 'MINUTE';
KW_MINUTES : 'MINUTES';
KW_MONTH : 'MONTH';
KW_MONTHS : 'MONTHS';
KW_MERGE_FN : 'MERGE_FN';
KW_NFC : 'NFC';
KW_NFD : 'NFD';
KW_NFKC : 'NFKC';
KW_NFKD : 'NFKD';
KW_NORMALIZE : 'NORMALIZE';
KW_NOT : 'NOT';
KW_NULL : 'NULL';
KW_NULLS : 'NULLS';
KW_OFFSET : 'OFFSET';
KW_ON : 'ON';
KW_OPTION : 'OPTION';
KW_OR : 'OR';
KW_ORDER : 'ORDER';
KW_ORDINALITY : 'ORDINALITY';
KW_OUTER : 'OUTER';
KW_OWNER : 'OWNER';
KW_OVER : 'OVER';
KW_OVERWRITE : 'OVERWRITE';
KW_PARTITION : 'PARTITION';
KW_PARTITIONS : 'PARTITIONS';
KW_PARQUET : 'PARQUET';
KW_POSITION : 'POSITION';
KW_PRECEDING : 'PRECEDING';
KW_PRIMARY : 'PRIMARY';
KW_REPLICATION : 'REPLICATION';
KW_PRIVILEGES : 'PRIVILEGES';
KW_PROPERTIES : 'PROPERTIES';
KW_RANGE : 'RANGE';
KW_RECOVER : 'RECOVER';
KW_RENAME : 'RENAME';
KW_REPEATABLE : 'REPEATABLE';
KW_REPLACE : 'REPLACE';
KW_RESTRICT : 'RESTRICT';
KW_RETURNS : 'RETURNS';
KW_REVOKE : 'REVOKE';
KW_REFRESH : 'REFRESH';
KW_REGEXP : 'REGEXP';
KW_RLIKE : 'RLIKE';
KW_RIGHT : 'RIGHT';
KW_ROLE : 'ROLE';
KW_ROLES : 'ROLES';
KW_ROW : 'ROW';
KW_ROWS : 'ROWS';
KW_SCHEMA : 'SCHEMA';
KW_SCHEMAS : 'SCHEMAS';
KW_SECOND : 'SECOND';
KW_SECONDS : 'SECONDS';
KW_SELECT : 'SELECT';
KW_SERDEPROPERTIES : 'SERDEPROPERTIES';
KW_SET : 'SET';
KW_SEMI : 'SEMI';
KW_SERVER : 'SERVER';
KW_SHOW : 'SHOW';
KW_SHUTDOWN : 'SHUTDOWN';
KW_SOME : 'SOME';
KW_STATS : 'STATS';
KW_STRUCT : 'STRUCT';
KW_STRAIGHT_JOIN : 'STRAIGHT_JOIN';
KW_SUBSTRING : 'SUBSTRING';
KW_SYSTEM : 'SYSTEM';
KW_SYMBOL : 'SYMBOL';
KW_SERIALIZE_FN : 'SERIALIZE_FN';
KW_TABLE : 'TABLE';
KW_TABLES : 'TABLES';
KW_TABLESAMPLE : 'TABLESAMPLE';
KW_TERMINATED : 'TERMINATED ';
KW_THEN : 'THEN';
KW_TO : 'TO';
KW_TRUE : 'TRUE';
KW_TRY_CAST : 'TRY_CAST';
KW_TRUNCATE : 'TRUNCATE';
KW_UNCACHED : 'UNCACHED';
KW_UESCAPE : 'UESCAPE';
KW_UNBOUNDED : 'UNBOUNDED';
KW_UNION : 'UNION';
KW_UNNEST : 'UNNEST';
KW_UNSET : 'UNSET';
KW_USE : 'USE';
KW_USER : 'USER';
KW_USING : 'USING';
KW_UPDATE_FN : 'UPDATE_FN';
KW_UPSERT : 'UPSERT';
KW_UNKNOWN : 'UNKNOWN';
KW_URI : 'URI';
KW_VALUE : 'VALUE';
KW_VALUES : 'VALUES';
KW_VIEW : 'VIEW';
KW_VIEWS : 'VIEWS';
KW_WHEN : 'WHEN';
KW_WHERE : 'WHERE';
KW_WITH : 'WITH';
KW_YEAR : 'YEAR';
KW_YEARS : 'YEARS';
KW_TEXTFILE : 'TEXTFILE';
KW_ORC : 'ORC';
KW_AVRO : 'AVRO';
KW_SEQUENCEFILE : 'SEQUENCEFILE';
KW_RCFILE : 'RCFILE';
KW_REFERENCES : 'REFERENCES';
KW_NOVALIDATE : 'NOVALIDATE';
KW_RELY : 'RELY';
KW_ADD : 'ADD';
KW_ALL : 'ALL';
KW_ANALYTIC : 'ANALYTIC';
KW_ALTER : 'ALTER';
KW_AND : 'AND';
KW_ANY : 'ANY';
KW_ANTI : 'ANTI';
KW_ARRAY : 'ARRAY';
KW_AS : 'AS';
KW_ASC : 'ASC';
KW_AT : 'AT';
KW_AGGREGATE : 'AGGREGATE';
KW_AUTHORIZATION : 'AUTHORIZATION';
KW_BERNOULLI : 'BERNOULLI';
KW_BETWEEN : 'BETWEEN';
KW_BLOCK_SIZE : 'BLOCK_SIZE';
KW_PARTITIONED : 'PARTITIONED';
KW_PREPARE_FN : 'PREPARE_FN';
KW_EXTERNAL : 'EXTERNAL';
KW_CLOSEFN : 'CLOSEFN';
KW_SORT : 'SORT';
KW_PURGE : 'PURGE';
KW_STORED : 'STORED';
KW_LOCATION : 'LOCATION';
KW_TBLPROPERTIES : 'TBLPROPERTIES';
KW_BY : 'BY';
KW_CASCADE : 'CASCADE';
KW_CASE : 'CASE';
KW_CAST : 'CAST';
KW_CACHED : 'CACHED';
KW_CHANGE : 'CHANGE';
KW_COLUMN : 'COLUMN';
KW_COLUMNS : 'COLUMNS';
KW_COMMENT : 'COMMENT';
KW_COMPRESSION : 'COMPRESSION';
KW_COMPUTE : 'COMPUTE';
KW_CREATE : 'CREATE';
KW_CROSS : 'CROSS';
KW_CURRENT : 'CURRENT';
KW_CURRENT_DATE : 'CURRENT_DATE';
KW_CURRENT_PATH : 'CURRENT_PATH';
KW_CURRENT_TIME : 'CURRENT_TIME';
KW_CURRENT_TIMESTAMP : 'CURRENT_TIMESTAMP';
KW_CURRENT_USER : 'CURRENT_USER';
KW_DATA : 'DATA';
KW_DATABASE : 'DATABASE';
KW_DATABASES : 'DATABASES';
KW_DAY : 'DAY';
KW_DAYS : 'DAYS';
KW_DELETE : 'DELETE';
KW_DEFAULT : 'DEFAULT';
KW_DELIMITED : 'DELIMITED';
KW_DISABLE : 'DISABLE';
KW_UPDATE : 'UPDATE';
KW_DESC : 'DESC';
KW_DESCRIBE : 'DESCRIBE';
KW_DISTINCT : 'DISTINCT';
KW_DROP : 'DROP';
KW_ELSE : 'ELSE';
KW_ENCODING : 'ENCODING';
KW_END : 'END';
KW_ESCAPE : 'ESCAPE';
KW_ESCAPED : 'ESCAPED';
KW_EXCEPT : 'EXCEPT';
KW_EXCLUDING : 'EXCLUDING';
KW_EXISTS : 'EXISTS';
KW_EXPLAIN : 'EXPLAIN';
KW_EXTRACT : 'EXTRACT';
KW_EXTENDED : 'EXTENDED';
KW_FALSE : 'FALSE';
KW_FIELDS : 'FIELDS';
KW_FILEFORMAT : 'FILEFORMAT';
KW_FILES : 'FILES';
KW_FILTER : 'FILTER';
KW_FIRST : 'FIRST';
KW_FINALIZE_FN : 'FINALIZE_FN';
KW_FOLLOWING : 'FOLLOWING';
KW_FOR : 'FOR';
KW_FORMAT : 'FORMAT';
KW_FORMATTED : 'FORMATTED';
KW_FOREIGN : 'FOREIGN';
KW_FROM : 'FROM';
KW_FULL : 'FULL';
KW_FUNCTION : 'FUNCTION';
KW_FUNCTIONS : 'FUNCTIONS';
KW_GRANT : 'GRANT';
KW_GROUP : 'GROUP';
KW_GROUPING : 'GROUPING';
KW_HASH : 'HASH';
KW_HAVING : 'HAVING';
KW_HOUR : 'HOUR';
KW_HOURS : 'HOURS';
KW_IF : 'IF';
KW_IN : 'IN';
KW_INCLUDING : 'INCLUDING';
KW_INCREMENTAL : 'INCREMENTAL';
KW_INNER : 'INNER';
KW_INPATH : 'INPATH';
KW_INSERT : 'INSERT';
KW_INTERSECT : 'INTERSECT';
KW_INTERVAL : 'INTERVAL';
KW_INTERMEDIATE : 'INTERMEDIATE';
KW_INTO : 'INTO';
KW_INIT_FN : 'INIT_FN';
KW_IREGEXP : 'IREGEXP';
KW_ILIKE : 'ILIKE';
KW_INVALIDATE : 'INVALIDATE';
KW_IS : 'IS';
KW_JOIN : 'JOIN';
KW_KEY : 'KEY';
KW_KUDU : 'KUDU';
KW_LAST : 'LAST';
KW_LATERAL : 'LATERAL';
KW_LEFT : 'LEFT';
KW_LIKE : 'LIKE';
KW_LIMIT : 'LIMIT';
KW_LINES : 'LINES';
KW_LOAD : 'LOAD';
KW_LOCALTIME : 'LOCALTIME';
KW_LOCALTIMESTAMP : 'LOCALTIMESTAMP';
KW_METADATA : 'METADATA';
KW_MAP : 'MAP';
KW_MINUTE : 'MINUTE';
KW_MINUTES : 'MINUTES';
KW_MONTH : 'MONTH';
KW_MONTHS : 'MONTHS';
KW_MERGE_FN : 'MERGE_FN';
KW_NFC : 'NFC';
KW_NFD : 'NFD';
KW_NFKC : 'NFKC';
KW_NFKD : 'NFKD';
KW_NORMALIZE : 'NORMALIZE';
KW_NOT : 'NOT';
KW_NULL : 'NULL';
KW_NULLS : 'NULLS';
KW_OFFSET : 'OFFSET';
KW_ON : 'ON';
KW_OPTION : 'OPTION';
KW_OR : 'OR';
KW_ORDER : 'ORDER';
KW_ORDINALITY : 'ORDINALITY';
KW_OUTER : 'OUTER';
KW_OWNER : 'OWNER';
KW_OVER : 'OVER';
KW_OVERWRITE : 'OVERWRITE';
KW_PARTITION : 'PARTITION';
KW_PARTITIONS : 'PARTITIONS';
KW_PARQUET : 'PARQUET';
KW_POSITION : 'POSITION';
KW_PRECEDING : 'PRECEDING';
KW_PRIMARY : 'PRIMARY';
KW_REPLICATION : 'REPLICATION';
KW_PRIVILEGES : 'PRIVILEGES';
KW_PROPERTIES : 'PROPERTIES';
KW_RANGE : 'RANGE';
KW_RECOVER : 'RECOVER';
KW_RENAME : 'RENAME';
KW_REPEATABLE : 'REPEATABLE';
KW_REPLACE : 'REPLACE';
KW_RESTRICT : 'RESTRICT';
KW_RETURNS : 'RETURNS';
KW_REVOKE : 'REVOKE';
KW_REFRESH : 'REFRESH';
KW_REGEXP : 'REGEXP';
KW_RLIKE : 'RLIKE';
KW_RIGHT : 'RIGHT';
KW_ROLE : 'ROLE';
KW_ROLES : 'ROLES';
KW_ROW : 'ROW';
KW_ROWS : 'ROWS';
KW_SCHEMA : 'SCHEMA';
KW_SCHEMAS : 'SCHEMAS';
KW_SECOND : 'SECOND';
KW_SECONDS : 'SECONDS';
KW_SELECT : 'SELECT';
KW_SERDEPROPERTIES : 'SERDEPROPERTIES';
KW_SET : 'SET';
KW_SEMI : 'SEMI';
KW_SERVER : 'SERVER';
KW_SHOW : 'SHOW';
KW_SHUTDOWN : 'SHUTDOWN';
KW_SOME : 'SOME';
KW_STATS : 'STATS';
KW_STRUCT : 'STRUCT';
KW_STRAIGHT_JOIN : 'STRAIGHT_JOIN';
KW_SUBSTRING : 'SUBSTRING';
KW_SYSTEM : 'SYSTEM';
KW_SYMBOL : 'SYMBOL';
KW_SERIALIZE_FN : 'SERIALIZE_FN';
KW_TABLE : 'TABLE';
KW_TABLES : 'TABLES';
KW_TABLESAMPLE : 'TABLESAMPLE';
KW_TERMINATED : 'TERMINATED ';
KW_THEN : 'THEN';
KW_TO : 'TO';
KW_TRUE : 'TRUE';
KW_TRY_CAST : 'TRY_CAST';
KW_TRUNCATE : 'TRUNCATE';
KW_UNCACHED : 'UNCACHED';
KW_UESCAPE : 'UESCAPE';
KW_UNBOUNDED : 'UNBOUNDED';
KW_UNION : 'UNION';
KW_UNNEST : 'UNNEST';
KW_UNSET : 'UNSET';
KW_USE : 'USE';
KW_USER : 'USER';
KW_USING : 'USING';
KW_UPDATE_FN : 'UPDATE_FN';
KW_UPSERT : 'UPSERT';
KW_UNKNOWN : 'UNKNOWN';
KW_URI : 'URI';
KW_VALUE : 'VALUE';
KW_VALUES : 'VALUES';
KW_VIEW : 'VIEW';
KW_VIEWS : 'VIEWS';
KW_WHEN : 'WHEN';
KW_WHERE : 'WHERE';
KW_WITH : 'WITH';
KW_YEAR : 'YEAR';
KW_YEARS : 'YEARS';
KW_TEXTFILE : 'TEXTFILE';
KW_ORC : 'ORC';
KW_AVRO : 'AVRO';
KW_SEQUENCEFILE : 'SEQUENCEFILE';
KW_RCFILE : 'RCFILE';
KW_REFERENCES : 'REFERENCES';
KW_NOVALIDATE : 'NOVALIDATE';
KW_RELY : 'RELY';
STATS_NUMDVS : '\'NUMDVS\'';
STATS_NUMNULLS : '\'NUMNULLS\'';
STATS_AVGSIZE : '\'AVGSIZE\'';
STATS_MAXSIZE : '\'MAXSIZE\'';
EQ : '=';
NEQ : '<>' | '!=';
LT : '<';
LTE : '<=';
GT : '>';
GTE : '>=';
PLUS: '+';
MINUS: '-';
ASTERISK: '*';
SLASH: '/';
PERCENT: '%';
CONCAT: '||';
EQ : '=';
NEQ : '<>' | '!=';
LT : '<';
LTE : '<=';
GT : '>';
GTE : '>=';
PLUS : '+';
MINUS : '-';
ASTERISK : '*';
SLASH : '/';
PERCENT : '%';
CONCAT : '||';
DOT : '.';
SEMICOLON: ';';
COMMA: ',';
COLON : ':' ;
LPAREN : '(' ;
RPAREN : ')' ;
LSQUARE : '[' ;
RSQUARE : ']' ;
LCURLY : '{';
RCURLY : '}';
DOT : '.';
SEMICOLON : ';';
COMMA : ',';
COLON : ':';
LPAREN : '(';
RPAREN : ')';
LSQUARE : '[';
RSQUARE : ']';
LCURLY : '{';
RCURLY : '}';
BITWISEOR : '|';
QUESTION : '?';
QUESTION : '?';
RIGHT_ARROW : '->';
RIGHT_ARROW: '->';
STRING
: '\'' ( ~'\'' | '\'\'' )* '\''
| '"' ( ~'"' | '""' )* '"'
;
STRING: '\'' ( ~'\'' | '\'\'')* '\'' | '"' ( ~'"' | '""')* '"';
UNICODE_STRING
: 'U&\'' ( ~'\'' | '\'\'' )* '\''
;
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\'' (~'\'')* '\''
;
BINARY_LITERAL: 'X\'' (~'\'')* '\'';
INTEGER_VALUE
: DIGIT+
;
INTEGER_VALUE: DIGIT+;
DECIMAL_VALUE
: DIGIT+ '.' DIGIT*
| '.' DIGIT+
;
DECIMAL_VALUE: DIGIT+ '.' DIGIT* | '.' DIGIT+;
DOUBLE_VALUE
: DIGIT+ ('.' DIGIT*)? EXPONENT
| '.' DIGIT+ EXPONENT
;
DOUBLE_VALUE: DIGIT+ ('.' DIGIT*)? EXPONENT | '.' DIGIT+ EXPONENT;
IDENTIFIER
: (LETTER | '_') (LETTER | DIGIT | '_' | '@' | ':')*
;
IDENTIFIER: (LETTER | '_') (LETTER | DIGIT | '_' | '@' | ':')*;
DIGIT_IDENTIFIER
: DIGIT (LETTER | DIGIT | '_' | '@' | ':')+
;
DIGIT_IDENTIFIER: DIGIT (LETTER | DIGIT | '_' | '@' | ':')+;
QUOTED_IDENTIFIER
: '"' ( ~'"' | '""' )* '"'
;
QUOTED_IDENTIFIER: '"' ( ~'"' | '""')* '"';
BACKQUOTED_IDENTIFIER
: '`' ( ~'`' | '``' )* '`'
;
BACKQUOTED_IDENTIFIER: '`' ( ~'`' | '``')* '`';
TIME_WITH_TIME_ZONE
: 'TIME' WS 'WITH' WS 'TIME' WS 'ZONE'
;
TIME_WITH_TIME_ZONE: 'TIME' WS 'WITH' WS 'TIME' WS 'ZONE';
TIMESTAMP_WITH_TIME_ZONE
: 'TIMESTAMP' WS 'WITH' WS 'TIME' WS 'ZONE'
;
TIMESTAMP_WITH_TIME_ZONE: 'TIMESTAMP' WS 'WITH' WS 'TIME' WS 'ZONE';
DOUBLE_PRECISION
: 'DOUBLE' WS 'PRECISION'
;
DOUBLE_PRECISION: 'DOUBLE' WS 'PRECISION';
fragment EXPONENT
: 'E' [+-]? DIGIT+
;
fragment EXPONENT: 'E' [+-]? DIGIT+;
fragment DIGIT
: [0-9]
;
fragment DIGIT: [0-9];
fragment LETTER
: [A-Z]
;
fragment LETTER: [A-Z];
SIMPLE_COMMENT
: '--' ~[\r\n]* '\r'? '\n'? -> channel(HIDDEN)
;
SIMPLE_COMMENT: '--' ~[\r\n]* '\r'? '\n'? -> channel(HIDDEN);
BRACKETED_COMMENT
: '/*' .*? '*/' -> channel(HIDDEN)
;
BRACKETED_COMMENT: '/*' .*? '*/' -> channel(HIDDEN);
WS
: [ \r\n\t]+ -> channel(HIDDEN)
;
WS: [ \r\n\t]+ -> channel(HIDDEN);

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

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

View File

@ -18,6 +18,11 @@
* Reference: https://github.com/apache/spark/blob/master/sql/api/src/main/antlr4/org/apache/spark/sql/catalyst/parser/SqlBaseLexer.g4
*/
// $antlr-format alignTrailingComments true, columnLimit 150, maxEmptyLinesToKeep 1, reflowComments false, useTab false
// $antlr-format allowShortRulesOnASingleLine true, allowShortBlocksOnASingleLine true, minEmptyLines 0, alignSemicolons none, alignColons trailing
// $antlr-format singleLineOverrulesHangingColon true, alignLexerCommands true, alignLabels true, alignTrailers true
// $antlr-format spaceBeforeAssignmentOperators false, groupedAlignments true
lexer grammar SparkSqlLexer;
@members {
@ -39,12 +44,12 @@ lexer grammar SparkSqlLexer;
SEMICOLON: ';';
LEFT_PAREN: '(';
RIGHT_PAREN: ')';
COMMA: ',';
DOT: '.';
LEFT_BRACKET: '[';
RIGHT_BRACKET: ']';
LEFT_PAREN : '(';
RIGHT_PAREN : ')';
COMMA : ',';
DOT : '.';
LEFT_BRACKET : '[';
RIGHT_BRACKET : ']';
// NOTE: If you add a new token in the list below, you should update the list of keywords
// and reserved tag in `docs/sql-ref-ansi-compliance.md#sql-keywords`, and
@ -54,468 +59,420 @@ RIGHT_BRACKET: ']';
// Start of the keywords list
//============================
//--SPARK-KEYWORD-LIST-START
KW_ADD: 'ADD';
KW_AFTER: 'AFTER';
KW_ALL: 'ALL';
KW_ALTER: 'ALTER';
KW_ALWAYS: 'ALWAYS';
KW_ANALYZE: 'ANALYZE';
KW_AND: 'AND';
KW_ANTI: 'ANTI';
KW_ANY: 'ANY';
KW_ANY_VALUE: 'ANY_VALUE';
KW_ARCHIVE: 'ARCHIVE';
KW_ARRAY: 'ARRAY';
KW_AS: 'AS';
KW_ASC: 'ASC';
KW_AT: 'AT';
KW_AUTHORIZATION: 'AUTHORIZATION';
KW_BETWEEN: 'BETWEEN';
KW_BIGINT: 'BIGINT';
KW_BINARY: 'BINARY';
KW_BOOLEAN: 'BOOLEAN';
KW_BOTH: 'BOTH';
KW_BUCKET: 'BUCKET';
KW_BUCKETS: 'BUCKETS';
KW_BY: 'BY';
KW_BYTE: 'BYTE';
KW_CACHE: 'CACHE';
KW_CASCADE: 'CASCADE';
KW_CASE: 'CASE';
KW_CAST: 'CAST';
KW_CATALOG: 'CATALOG';
KW_CATALOGS: 'CATALOGS';
KW_CHANGE: 'CHANGE';
KW_CHAR: 'CHAR';
KW_CHARACTER: 'CHARACTER';
KW_CHECK: 'CHECK';
KW_CLEAR: 'CLEAR';
KW_CLUSTER: 'CLUSTER';
KW_CLUSTERED: 'CLUSTERED';
KW_CODEGEN: 'CODEGEN';
KW_COLLATE: 'COLLATE';
KW_COLLECTION: 'COLLECTION';
KW_COLUMN: 'COLUMN';
KW_COLUMNS: 'COLUMNS';
KW_COMMENT: 'COMMENT';
KW_COMMIT: 'COMMIT';
KW_COMPACT: 'COMPACT';
KW_COMPACTIONS: 'COMPACTIONS';
KW_COMPUTE: 'COMPUTE';
KW_CONCATENATE: 'CONCATENATE';
KW_CONSTRAINT: 'CONSTRAINT';
KW_COST: 'COST';
KW_CREATE: 'CREATE';
KW_CROSS: 'CROSS';
KW_CUBE: 'CUBE';
KW_CURRENT: 'CURRENT';
KW_CURRENT_DATE: 'CURRENT_DATE';
KW_CURRENT_TIME: 'CURRENT_TIME';
KW_CURRENT_TIMESTAMP: 'CURRENT_TIMESTAMP';
KW_CURRENT_USER: 'CURRENT_USER';
KW_DAY: 'DAY';
KW_DAYS: 'DAYS';
KW_DAYOFYEAR: 'DAYOFYEAR';
KW_DATA: 'DATA';
KW_DATE: 'DATE';
KW_DATABASE: 'DATABASE';
KW_DATABASES: 'DATABASES';
KW_DATEADD: 'DATEADD';
KW_DATE_ADD: 'DATE_ADD';
KW_DATEDIFF: 'DATEDIFF';
KW_DATE_DIFF: 'DATE_DIFF';
KW_DBPROPERTIES: 'DBPROPERTIES';
KW_DEC: 'DEC';
KW_DECIMAL: 'DECIMAL';
KW_DECLARE: 'DECLARE';
KW_DEFAULT: 'DEFAULT';
KW_DEFINED: 'DEFINED';
KW_DELETE: 'DELETE';
KW_DELIMITED: 'DELIMITED';
KW_DESC: 'DESC';
KW_DESCRIBE: 'DESCRIBE';
KW_DFS: 'DFS';
KW_DIRECTORIES: 'DIRECTORIES';
KW_DIRECTORY: 'DIRECTORY';
KW_DISTINCT: 'DISTINCT';
KW_DISTRIBUTE: 'DISTRIBUTE';
KW_DIV: 'DIV';
KW_DOUBLE: 'DOUBLE';
KW_DROP: 'DROP';
KW_ELSE: 'ELSE';
KW_END: 'END';
KW_ESCAPE: 'ESCAPE';
KW_ESCAPED: 'ESCAPED';
KW_EXCEPT: 'EXCEPT';
KW_EXCHANGE: 'EXCHANGE';
KW_EXCLUDE: 'EXCLUDE';
KW_EXISTS: 'EXISTS';
KW_EXPLAIN: 'EXPLAIN';
KW_EXPORT: 'EXPORT';
KW_EXTENDED: 'EXTENDED';
KW_EXTERNAL: 'EXTERNAL';
KW_EXTRACT: 'EXTRACT';
KW_FALSE: 'FALSE';
KW_FETCH: 'FETCH';
KW_FIELDS: 'FIELDS';
KW_FILTER: 'FILTER';
KW_FILEFORMAT: 'FILEFORMAT';
KW_FIRST: 'FIRST';
KW_FLOAT: 'FLOAT';
KW_FOLLOWING: 'FOLLOWING';
KW_FOR: 'FOR';
KW_FOREIGN: 'FOREIGN';
KW_FORMAT: 'FORMAT';
KW_FORMATTED: 'FORMATTED';
KW_FROM: 'FROM';
KW_FULL: 'FULL';
KW_FUNCTION: 'FUNCTION';
KW_FUNCTIONS: 'FUNCTIONS';
KW_GENERATED: 'GENERATED';
KW_GLOBAL: 'GLOBAL';
KW_GRANT: 'GRANT';
KW_GROUP: 'GROUP';
KW_GROUPING: 'GROUPING';
KW_HAVING: 'HAVING';
KW_BINARY_HEX: 'X';
KW_HOUR: 'HOUR';
KW_HOURS: 'HOURS';
KW_IDENTIFIER: 'IDENTIFIER';
KW_IF: 'IF';
KW_IGNORE: 'IGNORE';
KW_IMPORT: 'IMPORT';
KW_IN: 'IN';
KW_INCLUDE: 'INCLUDE';
KW_INDEX: 'INDEX';
KW_INDEXES: 'INDEXES';
KW_INNER: 'INNER';
KW_INPATH: 'INPATH';
KW_INPUTFORMAT: 'INPUTFORMAT';
KW_INSERT: 'INSERT';
KW_INTERSECT: 'INTERSECT';
KW_INTERVAL: 'INTERVAL';
KW_INT: 'INT';
KW_INTEGER: 'INTEGER';
KW_INTO: 'INTO';
KW_IS: 'IS';
KW_ITEMS: 'ITEMS';
KW_JOIN: 'JOIN';
KW_KEYS: 'KEYS';
KW_LAST: 'LAST';
KW_LATERAL: 'LATERAL';
KW_LAZY: 'LAZY';
KW_LEADING: 'LEADING';
KW_LEFT: 'LEFT';
KW_LIKE: 'LIKE';
KW_ILIKE: 'ILIKE';
KW_LIMIT: 'LIMIT';
KW_LINES: 'LINES';
KW_LIST: 'LIST';
KW_LOAD: 'LOAD';
KW_LOCAL: 'LOCAL';
KW_LOCATION: 'LOCATION';
KW_LOCK: 'LOCK';
KW_LOCKS: 'LOCKS';
KW_LOGICAL: 'LOGICAL';
KW_LONG: 'LONG';
KW_MACRO: 'MACRO';
KW_MAP: 'MAP';
KW_MATCHED: 'MATCHED';
KW_MERGE: 'MERGE';
KW_MICROSECOND: 'MICROSECOND';
KW_MICROSECONDS: 'MICROSECONDS';
KW_MILLISECOND: 'MILLISECOND';
KW_MILLISECONDS: 'MILLISECONDS';
KW_MINUTE: 'MINUTE';
KW_MINUTES: 'MINUTES';
KW_MONTH: 'MONTH';
KW_MONTHS: 'MONTHS';
KW_MSCK: 'MSCK';
KW_NAME: 'NAME';
KW_NAMESPACE: 'NAMESPACE';
KW_NAMESPACES: 'NAMESPACES';
KW_NANOSECOND: 'NANOSECOND';
KW_NANOSECONDS: 'NANOSECONDS';
KW_NATURAL: 'NATURAL';
KW_NO: 'NO';
KW_NOSCAN: 'NOSCAN';
KW_NOT: 'NOT';
KW_NULL: 'NULL';
KW_NULLS: 'NULLS';
KW_NUMERIC: 'NUMERIC';
KW_OF: 'OF';
KW_OFFSET: 'OFFSET';
KW_ON: 'ON';
KW_ONLY: 'ONLY';
KW_OPTION: 'OPTION';
KW_OPTIONS: 'OPTIONS';
KW_OR: 'OR';
KW_ORDER: 'ORDER';
KW_OUT: 'OUT';
KW_OUTER: 'OUTER';
KW_OUTPUTFORMAT: 'OUTPUTFORMAT';
KW_OVER: 'OVER';
KW_OVERLAPS: 'OVERLAPS';
KW_OVERLAY: 'OVERLAY';
KW_OVERWRITE: 'OVERWRITE';
KW_PARTITION: 'PARTITION';
KW_PARTITIONED: 'PARTITIONED';
KW_PARTITIONS: 'PARTITIONS';
KW_PERCENTILE_CONT: 'PERCENTILE_CONT';
KW_PERCENTILE_DISC: 'PERCENTILE_DISC';
KW_PERCENTLIT: 'PERCENT';
KW_PIVOT: 'PIVOT';
KW_PLACING: 'PLACING';
KW_POSITION: 'POSITION';
KW_PRECEDING: 'PRECEDING';
KW_PRIMARY: 'PRIMARY';
KW_PRINCIPALS: 'PRINCIPALS';
KW_PROPERTIES: 'PROPERTIES';
KW_PURGE: 'PURGE';
KW_QUARTER: 'QUARTER';
KW_QUERY: 'QUERY';
KW_RANGE: 'RANGE';
KW_REAL: 'REAL';
KW_RECORDREADER: 'RECORDREADER';
KW_RECORDWRITER: 'RECORDWRITER';
KW_RECOVER: 'RECOVER';
KW_REDUCE: 'REDUCE';
KW_REFERENCES: 'REFERENCES';
KW_REFRESH: 'REFRESH';
KW_RENAME: 'RENAME';
KW_REPAIR: 'REPAIR';
KW_REPEATABLE: 'REPEATABLE';
KW_REPLACE: 'REPLACE';
KW_RESET: 'RESET';
KW_RESPECT: 'RESPECT';
KW_RESTRICT: 'RESTRICT';
KW_REVOKE: 'REVOKE';
KW_RIGHT: 'RIGHT';
KW_RLIKE: 'RLIKE';
KW_REGEXP: 'REGEXP';
KW_ROLE: 'ROLE';
KW_ROLES: 'ROLES';
KW_ROLLBACK: 'ROLLBACK';
KW_ROLLUP: 'ROLLUP';
KW_ROW: 'ROW';
KW_ROWS: 'ROWS';
KW_SECOND: 'SECOND';
KW_SECONDS: 'SECONDS';
KW_SCHEMA: 'SCHEMA';
KW_SCHEMAS: 'SCHEMAS';
KW_SELECT: 'SELECT';
KW_SEMI: 'SEMI';
KW_SEPARATED: 'SEPARATED';
KW_SERDE: 'SERDE';
KW_SERDEPROPERTIES: 'SERDEPROPERTIES';
KW_SESSION_USER: 'SESSION_USER';
KW_SET: 'SET';
KW_MINUS: 'MINUS';
KW_SETS: 'SETS';
KW_SHORT: 'SHORT';
KW_SHOW: 'SHOW';
KW_SINGLE: 'SINGLE';
KW_SKEWED: 'SKEWED';
KW_SMALLINT: 'SMALLINT';
KW_SOME: 'SOME';
KW_SORT: 'SORT';
KW_SORTED: 'SORTED';
KW_SOURCE: 'SOURCE';
KW_START: 'START';
KW_STATISTICS: 'STATISTICS';
KW_STORED: 'STORED';
KW_STRATIFY: 'STRATIFY';
KW_STRING: 'STRING';
KW_STRUCT: 'STRUCT';
KW_SUBSTR: 'SUBSTR';
KW_SUBSTRING: 'SUBSTRING';
KW_SYNC: 'SYNC';
KW_SYSTEM: 'SYSTEM';
KW_SYSTEM_TIME: 'SYSTEM_TIME';
KW_SYSTEM_VERSION: 'SYSTEM_VERSION';
KW_TABLE: 'TABLE';
KW_TABLES: 'TABLES';
KW_TABLESAMPLE: 'TABLESAMPLE';
KW_TARGET: 'TARGET';
KW_TBLPROPERTIES: 'TBLPROPERTIES';
KW_TEMPORARY: 'TEMPORARY';
KW_TERMINATED: 'TERMINATED';
KW_THEN: 'THEN';
KW_TIME: 'TIME';
KW_TIMEDIFF: 'TIMEDIFF';
KW_TIMESTAMP: 'TIMESTAMP';
KW_TIMESTAMP_LTZ: 'TIMESTAMP_LTZ';
KW_TIMESTAMP_NTZ: 'TIMESTAMP_NTZ';
KW_TIMESTAMPADD: 'TIMESTAMPADD';
KW_TIMESTAMPDIFF: 'TIMESTAMPDIFF';
KW_TINYINT: 'TINYINT';
KW_TO: 'TO';
KW_TOUCH: 'TOUCH';
KW_TRAILING: 'TRAILING';
KW_TRANSACTION: 'TRANSACTION';
KW_TRANSACTIONS: 'TRANSACTIONS';
KW_TRANSFORM: 'TRANSFORM';
KW_TRIM: 'TRIM';
KW_TRUE: 'TRUE';
KW_TRUNCATE: 'TRUNCATE';
KW_TRY_CAST: 'TRY_CAST';
KW_TYPE: 'TYPE';
KW_UNARCHIVE: 'UNARCHIVE';
KW_UNBOUNDED: 'UNBOUNDED';
KW_UNCACHE: 'UNCACHE';
KW_UNION: 'UNION';
KW_UNIQUE: 'UNIQUE';
KW_UNKNOWN: 'UNKNOWN';
KW_UNLOCK: 'UNLOCK';
KW_UNPIVOT: 'UNPIVOT';
KW_UNSET: 'UNSET';
KW_UPDATE: 'UPDATE';
KW_USE: 'USE';
KW_USER: 'USER';
KW_USING: 'USING';
KW_VALUES: 'VALUES';
KW_VARCHAR: 'VARCHAR';
KW_VAR: 'VAR';
KW_VARIABLE: 'VARIABLE';
KW_VERSION: 'VERSION';
KW_VIEW: 'VIEW';
KW_VIEWS: 'VIEWS';
KW_VOID: 'VOID';
KW_WEEK: 'WEEK';
KW_WEEKS: 'WEEKS';
KW_WHEN: 'WHEN';
KW_WHERE: 'WHERE';
KW_WINDOW: 'WINDOW';
KW_WITH: 'WITH';
KW_WITHIN: 'WITHIN';
KW_YEAR: 'YEAR';
KW_YEARS: 'YEARS';
KW_ZONE: 'ZONE';
KW_ADD : 'ADD';
KW_AFTER : 'AFTER';
KW_ALL : 'ALL';
KW_ALTER : 'ALTER';
KW_ALWAYS : 'ALWAYS';
KW_ANALYZE : 'ANALYZE';
KW_AND : 'AND';
KW_ANTI : 'ANTI';
KW_ANY : 'ANY';
KW_ANY_VALUE : 'ANY_VALUE';
KW_ARCHIVE : 'ARCHIVE';
KW_ARRAY : 'ARRAY';
KW_AS : 'AS';
KW_ASC : 'ASC';
KW_AT : 'AT';
KW_AUTHORIZATION : 'AUTHORIZATION';
KW_BETWEEN : 'BETWEEN';
KW_BIGINT : 'BIGINT';
KW_BINARY : 'BINARY';
KW_BOOLEAN : 'BOOLEAN';
KW_BOTH : 'BOTH';
KW_BUCKET : 'BUCKET';
KW_BUCKETS : 'BUCKETS';
KW_BY : 'BY';
KW_BYTE : 'BYTE';
KW_CACHE : 'CACHE';
KW_CASCADE : 'CASCADE';
KW_CASE : 'CASE';
KW_CAST : 'CAST';
KW_CATALOG : 'CATALOG';
KW_CATALOGS : 'CATALOGS';
KW_CHANGE : 'CHANGE';
KW_CHAR : 'CHAR';
KW_CHARACTER : 'CHARACTER';
KW_CHECK : 'CHECK';
KW_CLEAR : 'CLEAR';
KW_CLUSTER : 'CLUSTER';
KW_CLUSTERED : 'CLUSTERED';
KW_CODEGEN : 'CODEGEN';
KW_COLLATE : 'COLLATE';
KW_COLLECTION : 'COLLECTION';
KW_COLUMN : 'COLUMN';
KW_COLUMNS : 'COLUMNS';
KW_COMMENT : 'COMMENT';
KW_COMMIT : 'COMMIT';
KW_COMPACT : 'COMPACT';
KW_COMPACTIONS : 'COMPACTIONS';
KW_COMPUTE : 'COMPUTE';
KW_CONCATENATE : 'CONCATENATE';
KW_CONSTRAINT : 'CONSTRAINT';
KW_COST : 'COST';
KW_CREATE : 'CREATE';
KW_CROSS : 'CROSS';
KW_CUBE : 'CUBE';
KW_CURRENT : 'CURRENT';
KW_CURRENT_DATE : 'CURRENT_DATE';
KW_CURRENT_TIME : 'CURRENT_TIME';
KW_CURRENT_TIMESTAMP : 'CURRENT_TIMESTAMP';
KW_CURRENT_USER : 'CURRENT_USER';
KW_DAY : 'DAY';
KW_DAYS : 'DAYS';
KW_DAYOFYEAR : 'DAYOFYEAR';
KW_DATA : 'DATA';
KW_DATE : 'DATE';
KW_DATABASE : 'DATABASE';
KW_DATABASES : 'DATABASES';
KW_DATEADD : 'DATEADD';
KW_DATE_ADD : 'DATE_ADD';
KW_DATEDIFF : 'DATEDIFF';
KW_DATE_DIFF : 'DATE_DIFF';
KW_DBPROPERTIES : 'DBPROPERTIES';
KW_DEC : 'DEC';
KW_DECIMAL : 'DECIMAL';
KW_DECLARE : 'DECLARE';
KW_DEFAULT : 'DEFAULT';
KW_DEFINED : 'DEFINED';
KW_DELETE : 'DELETE';
KW_DELIMITED : 'DELIMITED';
KW_DESC : 'DESC';
KW_DESCRIBE : 'DESCRIBE';
KW_DFS : 'DFS';
KW_DIRECTORIES : 'DIRECTORIES';
KW_DIRECTORY : 'DIRECTORY';
KW_DISTINCT : 'DISTINCT';
KW_DISTRIBUTE : 'DISTRIBUTE';
KW_DIV : 'DIV';
KW_DOUBLE : 'DOUBLE';
KW_DROP : 'DROP';
KW_ELSE : 'ELSE';
KW_END : 'END';
KW_ESCAPE : 'ESCAPE';
KW_ESCAPED : 'ESCAPED';
KW_EXCEPT : 'EXCEPT';
KW_EXCHANGE : 'EXCHANGE';
KW_EXCLUDE : 'EXCLUDE';
KW_EXISTS : 'EXISTS';
KW_EXPLAIN : 'EXPLAIN';
KW_EXPORT : 'EXPORT';
KW_EXTENDED : 'EXTENDED';
KW_EXTERNAL : 'EXTERNAL';
KW_EXTRACT : 'EXTRACT';
KW_FALSE : 'FALSE';
KW_FETCH : 'FETCH';
KW_FIELDS : 'FIELDS';
KW_FILTER : 'FILTER';
KW_FILEFORMAT : 'FILEFORMAT';
KW_FIRST : 'FIRST';
KW_FLOAT : 'FLOAT';
KW_FOLLOWING : 'FOLLOWING';
KW_FOR : 'FOR';
KW_FOREIGN : 'FOREIGN';
KW_FORMAT : 'FORMAT';
KW_FORMATTED : 'FORMATTED';
KW_FROM : 'FROM';
KW_FULL : 'FULL';
KW_FUNCTION : 'FUNCTION';
KW_FUNCTIONS : 'FUNCTIONS';
KW_GENERATED : 'GENERATED';
KW_GLOBAL : 'GLOBAL';
KW_GRANT : 'GRANT';
KW_GROUP : 'GROUP';
KW_GROUPING : 'GROUPING';
KW_HAVING : 'HAVING';
KW_BINARY_HEX : 'X';
KW_HOUR : 'HOUR';
KW_HOURS : 'HOURS';
KW_IDENTIFIER : 'IDENTIFIER';
KW_IF : 'IF';
KW_IGNORE : 'IGNORE';
KW_IMPORT : 'IMPORT';
KW_IN : 'IN';
KW_INCLUDE : 'INCLUDE';
KW_INDEX : 'INDEX';
KW_INDEXES : 'INDEXES';
KW_INNER : 'INNER';
KW_INPATH : 'INPATH';
KW_INPUTFORMAT : 'INPUTFORMAT';
KW_INSERT : 'INSERT';
KW_INTERSECT : 'INTERSECT';
KW_INTERVAL : 'INTERVAL';
KW_INT : 'INT';
KW_INTEGER : 'INTEGER';
KW_INTO : 'INTO';
KW_IS : 'IS';
KW_ITEMS : 'ITEMS';
KW_JOIN : 'JOIN';
KW_KEYS : 'KEYS';
KW_LAST : 'LAST';
KW_LATERAL : 'LATERAL';
KW_LAZY : 'LAZY';
KW_LEADING : 'LEADING';
KW_LEFT : 'LEFT';
KW_LIKE : 'LIKE';
KW_ILIKE : 'ILIKE';
KW_LIMIT : 'LIMIT';
KW_LINES : 'LINES';
KW_LIST : 'LIST';
KW_LOAD : 'LOAD';
KW_LOCAL : 'LOCAL';
KW_LOCATION : 'LOCATION';
KW_LOCK : 'LOCK';
KW_LOCKS : 'LOCKS';
KW_LOGICAL : 'LOGICAL';
KW_LONG : 'LONG';
KW_MACRO : 'MACRO';
KW_MAP : 'MAP';
KW_MATCHED : 'MATCHED';
KW_MERGE : 'MERGE';
KW_MICROSECOND : 'MICROSECOND';
KW_MICROSECONDS : 'MICROSECONDS';
KW_MILLISECOND : 'MILLISECOND';
KW_MILLISECONDS : 'MILLISECONDS';
KW_MINUTE : 'MINUTE';
KW_MINUTES : 'MINUTES';
KW_MONTH : 'MONTH';
KW_MONTHS : 'MONTHS';
KW_MSCK : 'MSCK';
KW_NAME : 'NAME';
KW_NAMESPACE : 'NAMESPACE';
KW_NAMESPACES : 'NAMESPACES';
KW_NANOSECOND : 'NANOSECOND';
KW_NANOSECONDS : 'NANOSECONDS';
KW_NATURAL : 'NATURAL';
KW_NO : 'NO';
KW_NOSCAN : 'NOSCAN';
KW_NOT : 'NOT';
KW_NULL : 'NULL';
KW_NULLS : 'NULLS';
KW_NUMERIC : 'NUMERIC';
KW_OF : 'OF';
KW_OFFSET : 'OFFSET';
KW_ON : 'ON';
KW_ONLY : 'ONLY';
KW_OPTION : 'OPTION';
KW_OPTIONS : 'OPTIONS';
KW_OR : 'OR';
KW_ORDER : 'ORDER';
KW_OUT : 'OUT';
KW_OUTER : 'OUTER';
KW_OUTPUTFORMAT : 'OUTPUTFORMAT';
KW_OVER : 'OVER';
KW_OVERLAPS : 'OVERLAPS';
KW_OVERLAY : 'OVERLAY';
KW_OVERWRITE : 'OVERWRITE';
KW_PARTITION : 'PARTITION';
KW_PARTITIONED : 'PARTITIONED';
KW_PARTITIONS : 'PARTITIONS';
KW_PERCENTILE_CONT : 'PERCENTILE_CONT';
KW_PERCENTILE_DISC : 'PERCENTILE_DISC';
KW_PERCENTLIT : 'PERCENT';
KW_PIVOT : 'PIVOT';
KW_PLACING : 'PLACING';
KW_POSITION : 'POSITION';
KW_PRECEDING : 'PRECEDING';
KW_PRIMARY : 'PRIMARY';
KW_PRINCIPALS : 'PRINCIPALS';
KW_PROPERTIES : 'PROPERTIES';
KW_PURGE : 'PURGE';
KW_QUARTER : 'QUARTER';
KW_QUERY : 'QUERY';
KW_RANGE : 'RANGE';
KW_REAL : 'REAL';
KW_RECORDREADER : 'RECORDREADER';
KW_RECORDWRITER : 'RECORDWRITER';
KW_RECOVER : 'RECOVER';
KW_REDUCE : 'REDUCE';
KW_REFERENCES : 'REFERENCES';
KW_REFRESH : 'REFRESH';
KW_RENAME : 'RENAME';
KW_REPAIR : 'REPAIR';
KW_REPEATABLE : 'REPEATABLE';
KW_REPLACE : 'REPLACE';
KW_RESET : 'RESET';
KW_RESPECT : 'RESPECT';
KW_RESTRICT : 'RESTRICT';
KW_REVOKE : 'REVOKE';
KW_RIGHT : 'RIGHT';
KW_RLIKE : 'RLIKE';
KW_REGEXP : 'REGEXP';
KW_ROLE : 'ROLE';
KW_ROLES : 'ROLES';
KW_ROLLBACK : 'ROLLBACK';
KW_ROLLUP : 'ROLLUP';
KW_ROW : 'ROW';
KW_ROWS : 'ROWS';
KW_SECOND : 'SECOND';
KW_SECONDS : 'SECONDS';
KW_SCHEMA : 'SCHEMA';
KW_SCHEMAS : 'SCHEMAS';
KW_SELECT : 'SELECT';
KW_SEMI : 'SEMI';
KW_SEPARATED : 'SEPARATED';
KW_SERDE : 'SERDE';
KW_SERDEPROPERTIES : 'SERDEPROPERTIES';
KW_SESSION_USER : 'SESSION_USER';
KW_SET : 'SET';
KW_MINUS : 'MINUS';
KW_SETS : 'SETS';
KW_SHORT : 'SHORT';
KW_SHOW : 'SHOW';
KW_SINGLE : 'SINGLE';
KW_SKEWED : 'SKEWED';
KW_SMALLINT : 'SMALLINT';
KW_SOME : 'SOME';
KW_SORT : 'SORT';
KW_SORTED : 'SORTED';
KW_SOURCE : 'SOURCE';
KW_START : 'START';
KW_STATISTICS : 'STATISTICS';
KW_STORED : 'STORED';
KW_STRATIFY : 'STRATIFY';
KW_STRING : 'STRING';
KW_STRUCT : 'STRUCT';
KW_SUBSTR : 'SUBSTR';
KW_SUBSTRING : 'SUBSTRING';
KW_SYNC : 'SYNC';
KW_SYSTEM : 'SYSTEM';
KW_SYSTEM_TIME : 'SYSTEM_TIME';
KW_SYSTEM_VERSION : 'SYSTEM_VERSION';
KW_TABLE : 'TABLE';
KW_TABLES : 'TABLES';
KW_TABLESAMPLE : 'TABLESAMPLE';
KW_TARGET : 'TARGET';
KW_TBLPROPERTIES : 'TBLPROPERTIES';
KW_TEMPORARY : 'TEMPORARY';
KW_TERMINATED : 'TERMINATED';
KW_THEN : 'THEN';
KW_TIME : 'TIME';
KW_TIMEDIFF : 'TIMEDIFF';
KW_TIMESTAMP : 'TIMESTAMP';
KW_TIMESTAMP_LTZ : 'TIMESTAMP_LTZ';
KW_TIMESTAMP_NTZ : 'TIMESTAMP_NTZ';
KW_TIMESTAMPADD : 'TIMESTAMPADD';
KW_TIMESTAMPDIFF : 'TIMESTAMPDIFF';
KW_TINYINT : 'TINYINT';
KW_TO : 'TO';
KW_TOUCH : 'TOUCH';
KW_TRAILING : 'TRAILING';
KW_TRANSACTION : 'TRANSACTION';
KW_TRANSACTIONS : 'TRANSACTIONS';
KW_TRANSFORM : 'TRANSFORM';
KW_TRIM : 'TRIM';
KW_TRUE : 'TRUE';
KW_TRUNCATE : 'TRUNCATE';
KW_TRY_CAST : 'TRY_CAST';
KW_TYPE : 'TYPE';
KW_UNARCHIVE : 'UNARCHIVE';
KW_UNBOUNDED : 'UNBOUNDED';
KW_UNCACHE : 'UNCACHE';
KW_UNION : 'UNION';
KW_UNIQUE : 'UNIQUE';
KW_UNKNOWN : 'UNKNOWN';
KW_UNLOCK : 'UNLOCK';
KW_UNPIVOT : 'UNPIVOT';
KW_UNSET : 'UNSET';
KW_UPDATE : 'UPDATE';
KW_USE : 'USE';
KW_USER : 'USER';
KW_USING : 'USING';
KW_VALUES : 'VALUES';
KW_VARCHAR : 'VARCHAR';
KW_VAR : 'VAR';
KW_VARIABLE : 'VARIABLE';
KW_VERSION : 'VERSION';
KW_VIEW : 'VIEW';
KW_VIEWS : 'VIEWS';
KW_VOID : 'VOID';
KW_WEEK : 'WEEK';
KW_WEEKS : 'WEEKS';
KW_WHEN : 'WHEN';
KW_WHERE : 'WHERE';
KW_WINDOW : 'WINDOW';
KW_WITH : 'WITH';
KW_WITHIN : 'WITHIN';
KW_YEAR : 'YEAR';
KW_YEARS : 'YEARS';
KW_ZONE : 'ZONE';
//--SPARK-KEYWORD-LIST-END
//============================
// End of the keywords list
//============================
EQ : '=' | '==';
NSEQ: '<=>';
NEQ : '<>';
NEQJ: '!=';
LT : '<';
LTE : '<=' | '!>';
GT : '>';
GTE : '>=' | '!<';
EQ : '=' | '==';
NSEQ : '<=>';
NEQ : '<>';
NEQJ : '!=';
LT : '<';
LTE : '<=' | '!>';
GT : '>';
GTE : '>=' | '!<';
NOT: '!';
PLUS: '+';
MINUS: '-';
ASTERISK: '*';
SLASH: '/';
PERCENT: '%';
TILDE: '~';
AMPERSAND: '&';
PIPE: '|';
CONCAT_PIPE: '||';
HAT: '^';
COLON: ':';
ARROW: '->';
FAT_ARROW : '=>';
HENT_START: '/*+';
HENT_END: '*/';
QUESTION: '?';
NOT : '!';
PLUS : '+';
MINUS : '-';
ASTERISK : '*';
SLASH : '/';
PERCENT : '%';
TILDE : '~';
AMPERSAND : '&';
PIPE : '|';
CONCAT_PIPE : '||';
HAT : '^';
COLON : ':';
ARROW : '->';
FAT_ARROW : '=>';
HENT_START : '/*+';
HENT_END : '*/';
QUESTION : '?';
STRING_LITERAL
: '\'' ( ~('\''|'\\') | ('\\' .) )* '\''
| 'R\'' (~'\'')* '\''
| 'R"'(~'"')* '"'
;
STRING_LITERAL: '\'' ( ~('\'' | '\\') | ('\\' .))* '\'' | 'R\'' (~'\'')* '\'' | 'R"' (~'"')* '"';
DOUBLEQUOTED_STRING
:'"' ( ~('"'|'\\') | ('\\' .) )* '"'
;
DOUBLEQUOTED_STRING: '"' ( ~('"' | '\\') | ('\\' .))* '"';
// NOTE: If you move a numeric literal, you should modify `ParserUtils.toExprAlias()`
// which assumes all numeric literals are between `BIGINT_LITERAL` and `BIGDECIMAL_LITERAL`.
BIGINT_LITERAL
: DIGIT+ 'L'
;
BIGINT_LITERAL: DIGIT+ 'L';
SMALLINT_LITERAL
: DIGIT+ 'S'
;
SMALLINT_LITERAL: DIGIT+ 'S';
TINYINT_LITERAL
: DIGIT+ 'Y'
;
TINYINT_LITERAL: DIGIT+ 'Y';
INTEGER_VALUE
: DIGIT+
;
INTEGER_VALUE: DIGIT+;
EXPONENT_VALUE
: DIGIT+ EXPONENT
| DECIMAL_DIGITS EXPONENT
;
EXPONENT_VALUE: DIGIT+ EXPONENT | DECIMAL_DIGITS EXPONENT;
DECIMAL_VALUE
: DECIMAL_DIGITS
;
DECIMAL_VALUE: DECIMAL_DIGITS;
FLOAT_LITERAL
: DIGIT+ EXPONENT? 'F'
| DECIMAL_DIGITS EXPONENT? 'F'
;
FLOAT_LITERAL: DIGIT+ EXPONENT? 'F' | DECIMAL_DIGITS EXPONENT? 'F';
DOUBLE_LITERAL
: DIGIT+ EXPONENT? 'D'
| DECIMAL_DIGITS EXPONENT? 'D'
;
DOUBLE_LITERAL: DIGIT+ EXPONENT? 'D' | DECIMAL_DIGITS EXPONENT? 'D';
BIGDECIMAL_LITERAL
: DIGIT+ EXPONENT? 'BD'
| DECIMAL_DIGITS EXPONENT? 'BD'
;
BIGDECIMAL_LITERAL: DIGIT+ EXPONENT? 'BD' | DECIMAL_DIGITS EXPONENT? 'BD';
IDENTIFIER
: (LETTER | DIGIT | '_')+
;
IDENTIFIER: (LETTER | DIGIT | '_')+;
BACKQUOTED_IDENTIFIER
: '`' ( ~'`' | '``' )* '`'
;
BACKQUOTED_IDENTIFIER: '`' ( ~'`' | '``')* '`';
fragment DECIMAL_DIGITS
: DIGIT+ '.' DIGIT*
| '.' DIGIT+
;
fragment DECIMAL_DIGITS: DIGIT+ '.' DIGIT* | '.' DIGIT+;
fragment EXPONENT
: 'E' [+-]? DIGIT+
;
fragment EXPONENT: 'E' [+-]? DIGIT+;
fragment DIGIT
: [0-9]
;
fragment DIGIT: [0-9];
fragment LETTER
: [A-Za-z]
;
fragment LETTER: [A-Za-z];
SIMPLE_COMMENT
: '--' ('\\\n' | ~[\r\n])* '\r'? '\n'? -> channel(HIDDEN)
;
SIMPLE_COMMENT: '--' ('\\\n' | ~[\r\n])* '\r'? '\n'? -> channel(HIDDEN);
BRACKETED_COMMENT
: '/*' ( BRACKETED_COMMENT | . )*? ('*/' | {this.markUnclosedComment();} EOF) -> channel(HIDDEN)
;
BRACKETED_COMMENT:
'/*' (BRACKETED_COMMENT | .)*? ('*/' | {this.markUnclosedComment();} EOF) -> channel(HIDDEN);
WS
: [ \r\n\t]+ -> 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
: .
;
UNRECOGNIZED: .;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

270
yarn.lock
View File

@ -17,6 +17,14 @@
dependencies:
"@babel/highlight" "^7.18.6"
"@babel/code-frame@^7.16.0":
version "7.23.5"
resolved "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244"
integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==
dependencies:
"@babel/highlight" "^7.23.4"
chalk "^2.4.2"
"@babel/compat-data@^7.22.0":
version "7.22.3"
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.3.tgz#cd502a6a0b6e37d7ad72ce7e71a7160a3ae36f7e"
@ -134,6 +142,11 @@
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2"
integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==
"@babel/helper-validator-identifier@^7.22.20":
version "7.22.20"
resolved "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0"
integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==
"@babel/helper-validator-option@^7.21.0":
version "7.21.0"
resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180"
@ -157,6 +170,15 @@
chalk "^2.0.0"
js-tokens "^4.0.0"
"@babel/highlight@^7.23.4":
version "7.23.4"
resolved "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b"
integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==
dependencies:
"@babel/helper-validator-identifier" "^7.22.20"
chalk "^2.4.2"
js-tokens "^4.0.0"
"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.9", "@babel/parser@^7.22.0", "@babel/parser@^7.22.4":
version "7.22.4"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.4.tgz#a770e98fd785c231af9d93f6459d36770993fb32"
@ -260,6 +282,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.20.2"
"@babel/runtime@^7.21.0":
version "7.23.6"
resolved "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.23.6.tgz#c05e610dc228855dc92ef1b53d07389ed8ab521d"
integrity sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==
dependencies:
regenerator-runtime "^0.14.0"
"@babel/template@^7.20.7", "@babel/template@^7.21.9", "@babel/template@^7.3.3":
version "7.21.9"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.21.9.tgz#bf8dad2859130ae46088a99c1f265394877446fb"
@ -479,11 +508,28 @@
dependencies:
"@jridgewell/trace-mapping" "0.3.9"
"@humanwhocodes/momoa@^2.0.3":
version "2.0.4"
resolved "https://registry.npmmirror.com/@humanwhocodes/momoa/-/momoa-2.0.4.tgz#8b9e7a629651d15009c3587d07a222deeb829385"
integrity sha512-RE815I4arJFtt+FVeU1Tgp9/Xvecacji8w/V6XtXsWWH/wz/eNkNbhb+ny/+PlVZjV0rxQpRSQKNKE3lcktHEA==
"@hutson/parse-repository-url@^3.0.0":
version "3.0.2"
resolved "https://registry.yarnpkg.com/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz#98c23c950a3d9b6c8f0daed06da6c3af06981340"
integrity sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==
"@isaacs/cliui@^8.0.2":
version "8.0.2"
resolved "https://registry.npmmirror.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550"
integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==
dependencies:
string-width "^5.1.2"
string-width-cjs "npm:string-width@^4.2.0"
strip-ansi "^7.0.1"
strip-ansi-cjs "npm:strip-ansi@^6.0.1"
wrap-ansi "^8.1.0"
wrap-ansi-cjs "npm:wrap-ansi@^7.0.0"
"@istanbuljs/load-nyc-config@^1.0.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced"
@ -760,6 +806,24 @@
"@jridgewell/resolve-uri" "3.1.0"
"@jridgewell/sourcemap-codec" "1.4.14"
"@pkgjs/parseargs@^0.11.0":
version "0.11.0"
resolved "https://registry.npmmirror.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33"
integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==
"@readme/better-ajv-errors@1.6.0":
version "1.6.0"
resolved "https://registry.npmmirror.com/@readme/better-ajv-errors/-/better-ajv-errors-1.6.0.tgz#cf96740bd71d256ed628f3a7466ecae0846edd62"
integrity sha512-9gO9rld84Jgu13kcbKRU+WHseNhaVt76wYMeRDGsUGYxwJtI3RmEJ9LY9dZCYQGI8eUZLuxb5qDja0nqklpFjQ==
dependencies:
"@babel/code-frame" "^7.16.0"
"@babel/runtime" "^7.21.0"
"@humanwhocodes/momoa" "^2.0.3"
chalk "^4.1.2"
json-to-ast "^2.0.3"
jsonpointer "^5.0.0"
leven "^3.1.0"
"@sinclair/typebox@^0.25.16":
version "0.25.24"
resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.24.tgz#8c7688559979f7079aacaf31aa881c3aa410b718"
@ -940,6 +1004,11 @@
expect "^29.0.0"
pretty-format "^29.0.0"
"@types/json-schema@^7.0.12":
version "7.0.15"
resolved "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
"@types/minimist@^1.2.0":
version "1.2.2"
resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c"
@ -1025,7 +1094,7 @@ aggregate-error@^3.0.0:
clean-stack "^2.0.0"
indent-string "^4.0.0"
ajv@^8.11.0:
ajv@8.12.0, ajv@^8.11.0:
version "8.12.0"
resolved "https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1"
integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==
@ -1071,11 +1140,23 @@ ansi-styles@^5.0.0:
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b"
integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==
ansi-styles@^6.0.0:
ansi-styles@^6.0.0, ansi-styles@^6.1.0:
version "6.2.1"
resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5"
integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==
antlr-format-cli@^1.2.1:
version "1.2.1"
resolved "https://registry.npmmirror.com/antlr-format-cli/-/antlr-format-cli-1.2.1.tgz#285ad653551ad8821e7685f2b44199f838113bbb"
integrity sha512-vqpoL9x3bXiNnC/vzZG3XOyk2vUAHPmBbI/ufyAqbxQHD27OPuUM4n/6m6NBEZZ7V4U2aEiefnZg2SCaSU89oA==
dependencies:
"@readme/better-ajv-errors" "1.6.0"
ajv "8.12.0"
antlr4ng "2.0.2"
commander "11.1.0"
glob "10.3.10"
ts-json-schema-generator "1.4.0"
antlr4-c3@3.1.1:
version "3.1.1"
resolved "https://registry.npmmirror.com/antlr4-c3/-/antlr4-c3-3.1.1.tgz#f3d579e17c925d9e3cc984ed0ecb5095fce1611f"
@ -1083,6 +1164,11 @@ antlr4-c3@3.1.1:
dependencies:
antlr4ts "0.5.0-alpha.4"
antlr4ng@2.0.2:
version "2.0.2"
resolved "https://registry.npmmirror.com/antlr4ng/-/antlr4ng-2.0.2.tgz#31d224cc45e578b78ef77fccf9316d133d7cc81c"
integrity sha512-Fhs3AvhoGigRt3RpHw0wGA7n03j9BpskH9yCUViNB7NtKuCA+imy2orEZ8qcgPG98f7IryEPYlG9sx99f3ZOyw==
antlr4ts-cli@^0.5.0-alpha.4:
version "0.5.0-alpha.4"
resolved "https://registry.yarnpkg.com/antlr4ts-cli/-/antlr4ts-cli-0.5.0-alpha.4.tgz#f3bfc37f10131e78d7b981c397a2aaa0450b67f6"
@ -1225,6 +1311,13 @@ brace-expansion@^1.1.7:
balanced-match "^1.0.0"
concat-map "0.0.1"
brace-expansion@^2.0.1:
version "2.0.1"
resolved "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae"
integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==
dependencies:
balanced-match "^1.0.0"
braces@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
@ -1296,7 +1389,7 @@ caniuse-lite@^1.0.30001489:
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001491.tgz#eab0e0f392de6f7411751d148de9b5bd6b203e46"
integrity sha512-17EYIi4TLnPiTzVKMveIxU5ETlxbSO3B6iPvMbprqnKh4qJsQGk5Nh1Lp4jIMAE0XfrujsJuWZAM3oJdMHaKBA==
chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1:
chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
@ -1399,6 +1492,11 @@ co@^4.6.0:
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==
code-error-fragment@0.0.230:
version "0.0.230"
resolved "https://registry.npmmirror.com/code-error-fragment/-/code-error-fragment-0.0.230.tgz#d736d75c832445342eca1d1fedbf17d9618b14d7"
integrity sha512-cadkfKp6932H8UkhzE/gcUqhRMNf8jHzkAN7+5Myabswaghu4xABTgPHDCjW+dBAJxj/SpkTYokpzDqY4pCzQw==
collect-v8-coverage@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59"
@ -1433,6 +1531,11 @@ colorette@^2.0.16:
resolved "https://registry.npmmirror.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a"
integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==
commander@11.1.0, commander@^11.0.0:
version "11.1.0"
resolved "https://registry.npmmirror.com/commander/-/commander-11.1.0.tgz#62fdce76006a68e5c1ab3314dc92e800eb83d906"
integrity sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==
commander@^9.3.0:
version "9.5.0"
resolved "https://registry.npmmirror.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30"
@ -1708,7 +1811,7 @@ create-require@^1.1.0:
resolved "https://registry.npmmirror.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
cross-spawn@^7.0.3:
cross-spawn@^7.0.0, cross-spawn@^7.0.3:
version "7.0.3"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
@ -2001,6 +2104,14 @@ findup-sync@^4.0.0:
micromatch "^4.0.2"
resolve-dir "^1.0.1"
foreground-child@^3.1.0:
version "3.1.1"
resolved "https://registry.npmmirror.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d"
integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==
dependencies:
cross-spawn "^7.0.0"
signal-exit "^4.0.1"
fs-extra@9.1.0:
version "9.1.0"
resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d"
@ -2099,6 +2210,17 @@ gitconfiglocal@^1.0.0:
dependencies:
ini "^1.3.2"
glob@10.3.10, glob@^10.3.10:
version "10.3.10"
resolved "https://registry.npmmirror.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b"
integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==
dependencies:
foreground-child "^3.1.0"
jackspeak "^2.3.5"
minimatch "^9.0.1"
minipass "^5.0.0 || ^6.0.2 || ^7.0.0"
path-scurry "^1.10.1"
glob@7.2.3, glob@^7.1.3, glob@^7.1.4:
version "7.2.3"
resolved "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
@ -2111,6 +2233,17 @@ glob@7.2.3, glob@^7.1.3, glob@^7.1.4:
once "^1.3.0"
path-is-absolute "^1.0.0"
glob@^8.0.3:
version "8.1.0"
resolved "https://registry.npmmirror.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e"
integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==
dependencies:
fs.realpath "^1.0.0"
inflight "^1.0.4"
inherits "2"
minimatch "^5.0.1"
once "^1.3.0"
global-dirs@^0.1.1:
version "0.1.1"
resolved "https://registry.npmmirror.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445"
@ -2148,6 +2281,11 @@ graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.9:
resolved "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
grapheme-splitter@^1.0.4:
version "1.0.4"
resolved "https://registry.npmmirror.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e"
integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==
handlebars@^4.7.7:
version "4.7.7"
resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1"
@ -2452,6 +2590,15 @@ istanbul-reports@^3.1.3:
html-escaper "^2.0.0"
istanbul-lib-report "^3.0.0"
jackspeak@^2.3.5:
version "2.3.6"
resolved "https://registry.npmmirror.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8"
integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==
dependencies:
"@isaacs/cliui" "^8.0.2"
optionalDependencies:
"@pkgjs/parseargs" "^0.11.0"
jest-changed-files@^29.5.0:
version "29.5.0"
resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.5.0.tgz#e88786dca8bf2aa899ec4af7644e16d9dcf9b23e"
@ -2858,9 +3005,17 @@ json-stringify-safe@^5.0.1:
resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==
json5@^2.2.2:
json-to-ast@^2.0.3:
version "2.1.0"
resolved "https://registry.npmmirror.com/json-to-ast/-/json-to-ast-2.1.0.tgz#041a9fcd03c0845036acb670d29f425cea4faaf9"
integrity sha512-W9Lq347r8tA1DfMvAGn9QNcgYm4Wm7Yc+k8e6vezpMnRT+NHbtlxgNBXRVjXe9YM6eTn6+p/MKOlV/aABJcSnQ==
dependencies:
code-error-fragment "0.0.230"
grapheme-splitter "^1.0.4"
json5@^2.2.2, json5@^2.2.3:
version "2.2.3"
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
resolved "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
jsonc-parser@^3.2.0:
@ -2882,6 +3037,11 @@ jsonparse@^1.2.0:
resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280"
integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==
jsonpointer@^5.0.0:
version "5.0.1"
resolved "https://registry.npmmirror.com/jsonpointer/-/jsonpointer-5.0.1.tgz#2110e0af0900fd37467b5907ecd13a7884a1b559"
integrity sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==
kind-of@^6.0.3:
version "6.0.3"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
@ -3083,6 +3243,11 @@ lru-cache@^6.0.0:
dependencies:
yallist "^4.0.0"
"lru-cache@^9.1.1 || ^10.0.0":
version "10.1.0"
resolved "https://registry.npmmirror.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484"
integrity sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==
make-dir@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
@ -3164,6 +3329,20 @@ minimatch@^3.0.4, minimatch@^3.1.1:
dependencies:
brace-expansion "^1.1.7"
minimatch@^5.0.1:
version "5.1.6"
resolved "https://registry.npmmirror.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96"
integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==
dependencies:
brace-expansion "^2.0.1"
minimatch@^9.0.1:
version "9.0.3"
resolved "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825"
integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==
dependencies:
brace-expansion "^2.0.1"
minimist-options@4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619"
@ -3183,6 +3362,11 @@ minimist@^1.2.5, minimist@^1.2.6:
resolved "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
"minipass@^5.0.0 || ^6.0.2 || ^7.0.0":
version "7.0.4"
resolved "https://registry.npmmirror.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c"
integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==
modify-values@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022"
@ -3410,6 +3594,14 @@ path-parse@^1.0.7:
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
path-scurry@^1.10.1:
version "1.10.1"
resolved "https://registry.npmmirror.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698"
integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==
dependencies:
lru-cache "^9.1.1 || ^10.0.0"
minipass "^5.0.0 || ^6.0.2 || ^7.0.0"
path-type@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
@ -3577,6 +3769,11 @@ redent@^3.0.0:
indent-string "^4.0.0"
strip-indent "^3.0.0"
regenerator-runtime@^0.14.0:
version "0.14.0"
resolved "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45"
integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==
require-directory@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
@ -3668,6 +3865,11 @@ safe-buffer@~5.2.0:
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
safe-stable-stringify@^2.4.3:
version "2.4.3"
resolved "https://registry.npmmirror.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886"
integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==
"safer-buffer@>= 2.1.2 < 3":
version "2.1.2"
resolved "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
@ -3714,6 +3916,11 @@ signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7:
resolved "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
signal-exit@^4.0.1:
version "4.1.0"
resolved "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
sisteransi@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
@ -3848,6 +4055,15 @@ string-length@^4.0.1:
char-regex "^1.0.2"
strip-ansi "^6.0.0"
"string-width-cjs@npm:string-width@^4.2.0":
version "4.2.3"
resolved "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
dependencies:
emoji-regex "^8.0.0"
is-fullwidth-code-point "^3.0.0"
strip-ansi "^6.0.1"
string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
version "4.2.3"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
@ -3857,7 +4073,7 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
is-fullwidth-code-point "^3.0.0"
strip-ansi "^6.0.1"
string-width@^5.0.0:
string-width@^5.0.0, string-width@^5.0.1, string-width@^5.1.2:
version "5.1.2"
resolved "https://registry.npmmirror.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794"
integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==
@ -3885,6 +4101,13 @@ stringify-package@^1.0.1:
resolved "https://registry.yarnpkg.com/stringify-package/-/stringify-package-1.0.1.tgz#e5aa3643e7f74d0f28628b72f3dad5cecfc3ba85"
integrity sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==
"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
version "6.0.1"
resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
dependencies:
ansi-regex "^5.0.1"
strip-ansi@^6.0.0, strip-ansi@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
@ -4020,6 +4243,19 @@ trim-newlines@^3.0.0:
resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144"
integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==
ts-json-schema-generator@1.4.0:
version "1.4.0"
resolved "https://registry.npmmirror.com/ts-json-schema-generator/-/ts-json-schema-generator-1.4.0.tgz#f341b36792c372d3d09245414a4f3a6efa2697f8"
integrity sha512-wm8vyihmGgYpxrqRshmYkWGNwEk+sf3xV2rUgxv8Ryeh7bSpMO7pZQOht+2rS002eDkFTxR7EwRPXVzrS0WJTg==
dependencies:
"@types/json-schema" "^7.0.12"
commander "^11.0.0"
glob "^8.0.3"
json5 "^2.2.3"
normalize-path "^3.0.0"
safe-stable-stringify "^2.4.3"
typescript "~5.2.2"
ts-node@^10.8.1:
version "10.9.1"
resolved "https://registry.npmmirror.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b"
@ -4074,7 +4310,7 @@ typedarray@^0.0.6:
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==
"typescript@^4.6.4 || ^5.0.0":
"typescript@^4.6.4 || ^5.0.0", typescript@~5.2.2:
version "5.2.2"
resolved "https://registry.npmmirror.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78"
integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==
@ -4174,6 +4410,15 @@ wordwrap@^1.0.0:
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
version "7.0.0"
resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
dependencies:
ansi-styles "^4.0.0"
string-width "^4.1.0"
strip-ansi "^6.0.0"
wrap-ansi@^6.0.1, wrap-ansi@^6.2.0:
version "6.2.0"
resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
@ -4192,6 +4437,15 @@ wrap-ansi@^7.0.0:
string-width "^4.1.0"
strip-ansi "^6.0.0"
wrap-ansi@^8.1.0:
version "8.1.0"
resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"
integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==
dependencies:
ansi-styles "^6.1.0"
string-width "^5.0.1"
strip-ansi "^7.0.1"
wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"