@hamelin.sh/compiler 0.2.9 → 0.2.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/iife.js +3881 -2906
- package/dist/main.d.ts +91 -2894
- package/dist/main.js +25450 -26107
- package/package.json +4 -3
package/dist/main.d.ts
CHANGED
|
@@ -1,48 +1,30 @@
|
|
|
1
|
-
import * as antlr from 'antlr4ng';
|
|
2
|
-
import { AbstractParseTreeVisitor, Token, ParseTreeListener, TerminalNode, ErrorNode, ParserRuleContext } from 'antlr4ng';
|
|
3
|
-
|
|
4
1
|
/* tslint:disable */
|
|
5
2
|
/* eslint-disable */
|
|
6
3
|
type CompileQueryResult = { Ok: QueryTranslation } | { Err: ContextualTranslationErrors };
|
|
7
4
|
|
|
8
5
|
type QueryDatasetsResult = { Ok: string[] } | { Err: ContextualTranslationErrors };
|
|
9
6
|
|
|
10
|
-
interface
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
interface ContextualTranslationErrors {
|
|
16
|
-
hamelin: string;
|
|
17
|
-
errors: ContextualTranslationError[];
|
|
7
|
+
interface Completion {
|
|
8
|
+
at: { start: number; end: number };
|
|
9
|
+
filter: boolean | undefined;
|
|
10
|
+
items: CompletionItem[];
|
|
18
11
|
}
|
|
19
12
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
interval: { start: number; end: number };
|
|
24
|
-
message: string;
|
|
13
|
+
interface Translation {
|
|
14
|
+
sql: string;
|
|
15
|
+
columns: Column[];
|
|
25
16
|
}
|
|
26
17
|
|
|
27
|
-
interface
|
|
28
|
-
error: TranslationError;
|
|
18
|
+
interface ContextualCompletion {
|
|
29
19
|
pretty: string;
|
|
20
|
+
completion: Completion;
|
|
30
21
|
}
|
|
31
22
|
|
|
32
|
-
|
|
33
|
-
area: LanguageArea | undefined;
|
|
34
|
-
stage: Stage;
|
|
35
|
-
level: Level;
|
|
36
|
-
primary: Context;
|
|
37
|
-
supporting: Context[] | undefined;
|
|
38
|
-
source_desc: string | undefined;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
type Stage = "Translation" | "Parsing" | "SemanticAnalysis";
|
|
42
|
-
|
|
43
|
-
type LanguageArea = "FunctionCall" | "Operator" | "Deref" | "IndexAccess" | "Parsing";
|
|
23
|
+
type CompletionItemKind = "Text" | "Variable" | "Function" | "Command" | "Keyword";
|
|
44
24
|
|
|
45
|
-
|
|
25
|
+
interface QueryTranslation {
|
|
26
|
+
translation: Translation;
|
|
27
|
+
}
|
|
46
28
|
|
|
47
29
|
interface ContextualResult {
|
|
48
30
|
hamelin: string;
|
|
@@ -51,13 +33,6 @@ interface ContextualResult {
|
|
|
51
33
|
translation: QueryTranslation | undefined;
|
|
52
34
|
}
|
|
53
35
|
|
|
54
|
-
interface ContextualCompletion {
|
|
55
|
-
pretty: string;
|
|
56
|
-
completion: Completion;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
type CompletionItemKind = "Text" | "Variable" | "Function" | "Command" | "Keyword";
|
|
60
|
-
|
|
61
36
|
interface CompletionItem {
|
|
62
37
|
/**
|
|
63
38
|
* What to show
|
|
@@ -86,35 +61,49 @@ interface CompletionItem {
|
|
|
86
61
|
section: string | undefined;
|
|
87
62
|
}
|
|
88
63
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
64
|
+
type Level = "Error" | "Warning" | "Info";
|
|
65
|
+
|
|
66
|
+
interface TranslationError {
|
|
67
|
+
area: LanguageArea | undefined;
|
|
68
|
+
stage: Stage;
|
|
69
|
+
level: Level;
|
|
70
|
+
primary: Context;
|
|
71
|
+
supporting: Context[] | undefined;
|
|
72
|
+
source_desc: string | undefined;
|
|
93
73
|
}
|
|
94
74
|
|
|
95
|
-
interface
|
|
96
|
-
|
|
97
|
-
|
|
75
|
+
interface ContextualTranslationErrors {
|
|
76
|
+
hamelin: string;
|
|
77
|
+
errors: ContextualTranslationError[];
|
|
98
78
|
}
|
|
99
79
|
|
|
100
|
-
|
|
101
|
-
|
|
80
|
+
type LanguageArea = "FunctionCall" | "Operator" | "Deref" | "IndexAccess" | "Parsing";
|
|
81
|
+
|
|
82
|
+
interface Context {
|
|
83
|
+
interval: { start: number; end: number };
|
|
84
|
+
message: string;
|
|
102
85
|
}
|
|
103
86
|
|
|
104
|
-
interface
|
|
105
|
-
|
|
87
|
+
interface ContextualTranslationError {
|
|
88
|
+
error: TranslationError;
|
|
89
|
+
pretty: string;
|
|
106
90
|
}
|
|
107
91
|
|
|
108
|
-
type
|
|
92
|
+
type Stage = "Translation" | "Parsing" | "SemanticAnalysis";
|
|
109
93
|
|
|
110
|
-
|
|
94
|
+
interface FunctionDescription {
|
|
95
|
+
name: string;
|
|
96
|
+
parameters: string;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
type Catalog = Record<string, Column[]>;
|
|
111
100
|
|
|
112
101
|
interface Column {
|
|
113
102
|
name: string;
|
|
114
103
|
type: HamelinType;
|
|
115
104
|
}
|
|
116
105
|
|
|
117
|
-
type
|
|
106
|
+
type HamelinType = "binary" | "boolean" | "interval" | "calendar_interval" | "int" | "double" | "rows" | "string" | "timestamp" | "unknown" | { decimal: { precision: number; scale: number } } | { array: { element_type: HamelinType } } | { map: { key_type: HamelinType; value_type: HamelinType } } | { tuple: { elements: HamelinType[] } } | "variant" | { range: { of: HamelinType } } | { struct: Column[] };
|
|
118
107
|
|
|
119
108
|
declare class CatalogProvider {
|
|
120
109
|
private constructor();
|
|
@@ -125,2860 +114,68 @@ declare class CatalogProvider {
|
|
|
125
114
|
declare class Compiler {
|
|
126
115
|
free(): void;
|
|
127
116
|
[Symbol.dispose](): void;
|
|
128
|
-
constructor();
|
|
129
|
-
get_function_descriptions(): FunctionDescription[];
|
|
130
|
-
set_catalog_provider(provider: CatalogProvider): void;
|
|
131
|
-
set_time_range(start?: Date | null, end?: Date | null): void;
|
|
132
|
-
set_time_range_expression(expression: string): ContextualTranslationErrors | undefined;
|
|
133
117
|
compile_query(query: string): CompileQueryResult;
|
|
118
|
+
set_time_range(start?: Date | null, end?: Date | null): void;
|
|
134
119
|
compile_query_at(query: string, at?: number | null): ContextualResult;
|
|
120
|
+
set_catalog_provider(provider: CatalogProvider): void;
|
|
135
121
|
get_statement_datasets(query: string): QueryDatasetsResult;
|
|
122
|
+
get_function_descriptions(): FunctionDescription[];
|
|
123
|
+
set_time_range_expression(expression: string): ContextualTranslationErrors | undefined;
|
|
124
|
+
constructor();
|
|
136
125
|
}
|
|
137
126
|
|
|
138
|
-
|
|
127
|
+
declare const compileHamelin: (catalog: Catalog, hamelinInput: string, timeRange?: string) => Promise<CompileQueryResult>;
|
|
128
|
+
declare const createCompiler: (catalog: Catalog) => Promise<Compiler>;
|
|
129
|
+
|
|
130
|
+
declare const hamelinGrammar = "grammar Hamelin;\n\nidentifierEOF\n : identifier EOF\n ;\n\nqueryEOF\n : query EOF\n ;\n\ncommandEOF\n : command EOF\n ;\n\nexpressionEOF\n : expression EOF\n ;\n\npipelineEOF\n : pipeline EOF\n ;\n\nsimpleIdentifierEOF\n : simpleIdentifier EOF\n ;\n\nquery\n : (WITH simpleIdentifier ASSIGN pipeline)+ pipeline #withQuery\n | pipeline #standaloneQuery\n | expression #expressionQuery\n ;\n\npipeline\n : command ( PIPE command )* #pipelineAlt\n ;\n\ncommand\n : LET_COMMAND assignment (COMMA assignment)* COMMA? #letCommand\n | WHERE_COMMAND expression #whereCommand\n | SELECT_COMMAND assignmentClause (COMMA assignmentClause)* COMMA? #selectCommand\n | DROP_COMMAND selection (COMMA selection)* COMMA? #dropCommand\n | FROM_COMMAND fromClause (COMMA fromClause)* COMMA? #fromCommand\n | UNION_COMMAND fromClause (COMMA fromClause)* COMMA? #unionCommand\n | LIMIT_COMMAND expression #limitCommand\n | PARSE_COMMAND src=expression? string\n AS? identifier (COMMA identifier)* COMMA? NODROP? #parseCommand\n | WITHIN_COMMAND expression #withinCommand\n | AGG_COMMAND (assignmentClause (COMMA assignmentClause)*)? COMMA?\n (BY groupClause (COMMA groupClause)*)? COMMA?\n (SORT BY? sortExpression (COMMA sortExpression)*)? COMMA? #aggCommand\n | SORT BY? sortExpression (COMMA sortExpression)* COMMA? #sortCommand\n | WINDOW_COMMAND assignmentClause (COMMA assignmentClause)* COMMA?\n (BY groupClause (COMMA groupClause)*)? COMMA?\n (SORT BY? sortExpression (COMMA sortExpression)*)? COMMA?\n (WITHIN_COMMAND within=expression)? #windowCommand\n | APPEND_COMMAND tableReference (DISTINCT_BY selection (COMMA selection)*)? COMMA? #appendCommand\n | (JOIN_COMMAND | LOOKUP_COMMAND) fromClause (ON on=expression)? #joinCommand\n | EXPLODE_COMMAND assignmentClause #explodeCommand\n | (UNNEST_COMMAND | ROWS_COMMAND) expression #unnestCommand\n | NEST_COMMAND identifier #nestCommand\n | MATCH_COMMAND pattern+\n (WHEN matchDefine (COMMA matchDefine)*)? COMMA?\n (BY groupClause (COMMA groupClause)*)? COMMA?\n (SORT BY? sortExpression (COMMA sortExpression)*)? COMMA? #matchCommand\n ;\n\nassignmentClause: assignment | expression;\ngroupClause: assignmentClause;\nassignment: identifier ASSIGN expression;\nmatchDefine: simpleIdentifier ASSIGN expression;\nselection: identifier;\nsortExpression: expression (ASC | DESC)?;\ntableAlias: simpleIdentifier ASSIGN tableReference;\nfromClause: tableAlias | tableReference;\n\nexpression\n // Keep this list in precedence order (important!)\n : operator=(MINUS | PLUS) expression #unaryPrefixOperator\n | expression (SECOND_TRUNC | MINUTE_TRUNC | HOUR_TRUNC | DAY_TRUNC | WEEK_TRUNC |\n MONTH_TRUNC | QUARTER_TRUNC | YEAR_TRUNC) #tsTrunc\n | left=expression operator=DOT right=simpleIdentifier #deref\n | value=expression LBRACKET index=expression RBRACKET #indexAccess\n | left=expression operator=(ASTERISK | SLASH | PERCENT) right=expression #binaryOperator\n | left=expression operator=(PLUS | MINUS) right=expression #binaryOperator\n | operator=RANGE expression #unaryPrefixOperator\n | expression operator=RANGE #unaryPostfixOperator\n | left=expression operator=RANGE right=expression #binaryOperator\n | left=expression operator=AS right=hamelintype #cast\n | left=expression\n operator=(EQ | NEQ | LT | LTE | GT | GTE | IS | ISNOT | IN | NOTIN)\n right=expression #binaryOperator\n | operator=NOT expression #unaryPrefixOperator\n | left=expression operator=AND right=expression #binaryOperator\n | left=expression operator=OR right=expression #binaryOperator\n\n // Complex Literals\n | left=expression operator=COLON right=expression #pairLiteral\n | LCURLY simpleIdentifier COLON expression\n (COMMA simpleIdentifier COLON expression)* COMMA? RCURLY #structLiteral\n | LPARENS ((expression COMMA) |\n (expression COMMA expression (COMMA expression)* COMMA?)) RPARENS #tupleLiteral\n | LBRACKET (expression (COMMA expression)* COMMA?)? RBRACKET #arrayLiteral\n\n // Function Calls\n | functionName=simpleIdentifier\n LPARENS (namedArgument (COMMA namedArgument)* COMMA?)? RPARENS #functionCall\n | functionName=simpleIdentifier LPARENS\n positionalArgument (COMMA positionalArgument)*\n (COMMA namedArgument)* COMMA? RPARENS #functionCall\n\n // Primitive Literals\n | NULL #nullLiteral\n | number #numericLiteral\n | TRUE #booleanLiteral\n | FALSE #booleanLiteral\n | string #stringLiteral\n | BINARY_LITERAL #binaryLiteral\n | RANGE #unboundRangeLiteral\n | (NANOSECOND_INTERVAL | MICROSECOND_INTERVAL | MILLISECOND_INTERVAL |\n SECOND_INTERVAL | MINUTE_INTERVAL | HOUR_INTERVAL | DAY_INTERVAL |\n WEEK_INTERVAL | MONTH_INTERVAL | QUARTER_INTERVAL | YEAR_INTERVAL) #intervalLiteral\n | ROWS_LITERAL #rowsLiteral\n | (SECOND_TRUNC | MINUTE_TRUNC | HOUR_TRUNC | DAY_TRUNC | WEEK_TRUNC |\n MONTH_TRUNC | QUARTER_TRUNC | YEAR_TRUNC) #tsTruncTimestampLiteral\n\n // Environment references\n | columnReference #columnReferenceAlt\n\n // Keep this at the bottom to use it the mechanism that query authors have to specify precedence.\n | LPARENS expression RPARENS #parenthesizedExpression\n ;\n\nhamelintype\n : simpleIdentifier LPARENS hamelintype (COMMA hamelintype)* COMMA? RPARENS #parameterizedType\n | simpleIdentifier LPARENS INTEGER_VALUE (COMMA INTEGER_VALUE)* COMMA? RPARENS #typeWithArguments\n | LCURLY simpleIdentifier COLON hamelintype\n (COMMA simpleIdentifier COLON hamelintype)* COMMA? RCURLY #structType\n | LPARENS hamelintype (COMMA hamelintype )* COMMA? RPARENS #tupleType\n | simpleIdentifier #simpleType\n ;\n\npattern\n : fromClause quantifier? #quantified\n | LPARENS pattern+ RPARENS quantifier #nested\n ;\n\nquantifier\n : ASTERISK #AnyNumber\n | PLUS #AtLeastOne\n | QUESTIONMARK #ZeroOrOne\n | LCURLY INTEGER_VALUE RCURLY #Exactly\n ;\n\ncolumnReference\n : simpleIdentifier\n ;\n\ntableReference\n : identifier\n ;\n\nidentifier\n : simpleIdentifier\n | simpleIdentifier (DOT simpleIdentifier)+\n ;\n\nsimpleIdentifier\n : IDENTIFIER #unquotedIdentifier\n | BACKQUOTED_IDENTIFIER #backQuotedIdentifier\n ;\n\nstring\n : SINGLE_QUOTED_STRING #basicSingleQuotedStringLiteral\n | DOUBLE_QUOTED_STRING #basicDoubleQuotedStringLiteral\n | value=SINGLE_QUOTED_UNICODE_STRING (UESCAPE uesc=SINGLE_QUOTED_STRING)? #unicodeSingleQuotedStringLiteral\n | value=DOUBLE_QUOTED_UNICODE_STRING (UESCAPE uesc=DOUBLE_QUOTED_STRING)? #unicodeDoubleQuotedStringLiteral\n ;\n\nnumber\n : value=DECIMAL_VALUE #decimalLiteral\n | value=DOUBLE_VALUE #scientificLiteral\n | value=INTEGER_VALUE #integerLiteral\n ;\n\npositionalArgument\n : expression\n ;\n\nnamedArgument\n : simpleIdentifier ASSIGN expression\n ;\n\n//\n// COMMANDS\n//\n\nLET_COMMAND: 'LET' | 'let';\nWHERE_COMMAND: 'WHERE' | 'where';\nSELECT_COMMAND: 'SELECT' | 'select';\nDROP_COMMAND: 'DROP' | 'drop';\nFROM_COMMAND: 'FROM' | 'from';\nUNION_COMMAND: 'UNION' | 'union';\nLIMIT_COMMAND: 'LIMIT' | 'limit';\nPARSE_COMMAND: 'PARSE' | 'parse';\nWITHIN_COMMAND: 'WITHIN' | 'within';\nAGG_COMMAND: 'AGG' | 'agg';\nWINDOW_COMMAND: 'WINDOW' | 'window';\nAPPEND_COMMAND: 'APPEND' | 'append';\nJOIN_COMMAND: 'JOIN' | 'join';\nLOOKUP_COMMAND: 'LOOKUP' | 'lookup';\nEXPLODE_COMMAND: 'EXPLODE' | 'explode';\nUNNEST_COMMAND: 'UNNEST' | 'unnest';\nNEST_COMMAND: 'NEST' | 'nest';\nROWS_COMMAND: 'ROWS' | 'rows';\nMATCH_COMMAND: 'MATCH' | 'match';\n\nAS: 'AS' | 'as';\nNODROP: 'NODROP' | 'nodrop';\n\n//\n// Operators\n//\n\nPLUS: '+';\nMINUS: '-';\nASTERISK: '*';\nSLASH: '/';\nPERCENT: '%';\nLCURLY: '{';\nRCURLY: '}';\nCOLON: ':';\nQUESTIONMARK: '?';\n\nEQ: '==';\nNEQ: '!=';\nLT: '<';\nLTE: '<=';\nGT: '>';\nGTE: '>=';\nRANGE: '..';\n\nASSIGN: '=';\n\n//\n// Keywords\n//\n\nAND: 'AND' | 'and';\nFALSE: 'FALSE' | 'false';\nIS: 'IS' | 'is';\nNOT: 'NOT' | 'not';\nISNOT: 'IS NOT' | 'is not';\nIN: 'IN' | 'in';\nNOTIN: 'NOT IN' | 'not in';\nNULL: 'NULL' | 'null';\nOR: 'OR' | 'or';\nTRUE: 'TRUE' | 'true';\nUESCAPE: 'UESCAPE' | 'uescape';\nWITH: 'WITH' | 'with';\nBY: 'BY' | 'by';\nSORT: 'SORT' | 'sort';\nASC: 'ASC' | 'asc';\nDESC: 'DESC' | 'desc';\nDISTINCT_BY: 'DISTINCT BY' | 'distinct by';\nON: 'ON' | 'on';\nWHEN: 'WHEN' | 'when';\n\n//\n// Symbols\n//\n\nCOMMA: ',';\nPIPE: '|';\nLPARENS: '(';\nRPARENS: ')';\nDOT: '.';\nLBRACKET: '[';\nRBRACKET: ']';\n\n//\n// Literals\n//\n\nSINGLE_QUOTED_STRING\n : '\\'' ( ~'\\'' | '\\'\\'')* '\\''\n ;\nDOUBLE_QUOTED_STRING\n : '\"' ( ~'\"' | '\"\"')* '\"'\n ;\n\nSINGLE_QUOTED_UNICODE_STRING\n : 'U&\\'' ( ~'\\'' | '\\'\\'')* '\\'' // Unicode string with default escape character: U&'Hello winter \\2603 !'\n ;\n\nDOUBLE_QUOTED_UNICODE_STRING\n : 'U&\"' ( ~'\"' | '\"\"')* '\"' // Unicode string with custom escape character: U&'Hello winter #2603 !' UESCAPE '#'\n ;\n\n// Note: we allow any character inside the binary literal and validate\n// its a correct literal when the AST is being constructed. This\n// allows us to provide more meaningful error messages to the user\nBINARY_LITERAL\n : 'x\\'' (~'\\'')* '\\''\n ;\n\nNANOSECOND_INTERVAL\n : DECIMAL_INTEGER 'ns'\n ;\n\nMICROSECOND_INTERVAL\n : DECIMAL_INTEGER 'us'\n ;\n\nMILLISECOND_INTERVAL\n : DECIMAL_INTEGER 'ms'\n ;\n\nSECOND_INTERVAL\n : DECIMAL_INTEGER ('s' | 'sec' | 'secs' | 'second' | 'seconds')\n ;\n\nMINUTE_INTERVAL\n : DECIMAL_INTEGER ('m' | 'min' | 'mins' | 'minute' | 'minutes')\n ;\n\nHOUR_INTERVAL\n : DECIMAL_INTEGER ('h' | 'hr' | 'hrs' | 'hour' | 'hours')\n ;\n\nDAY_INTERVAL\n : DECIMAL_INTEGER ('d' | 'day' | 'days')\n ;\n\nWEEK_INTERVAL\n : DECIMAL_INTEGER ('w' | 'week' | 'weeks')\n ;\n\nMONTH_INTERVAL\n : DECIMAL_INTEGER ('mon' | 'month' | 'months')\n ;\n\nQUARTER_INTERVAL\n : DECIMAL_INTEGER ('q' | 'qtr' | 'qtrs' | 'quarter' | 'quarters')\n ;\n\nYEAR_INTERVAL\n : DECIMAL_INTEGER ('y' | 'yr' | 'yrs' | 'year' | 'years')\n ;\n\nROWS_LITERAL\n : DECIMAL_INTEGER ('r' | 'row' | 'rows')\n ;\n\nSECOND_TRUNC\n : '@' ('s' | 'sec' | 'secs' | 'second' | 'seconds')\n ;\n\nMINUTE_TRUNC\n : '@' ('m' | 'min' | 'mins' | 'minute' | 'minutes')\n ;\n\nHOUR_TRUNC\n : '@' ('h' | 'hr' | 'hrs' | 'hour' | 'hours')\n ;\n\nDAY_TRUNC\n : '@' ('d' | 'day' | 'days')\n ;\n\nWEEK_TRUNC\n : '@' ('w' | 'week' | 'weeks')\n ;\n\nMONTH_TRUNC\n : '@' ('mon' | 'month' | 'months')\n ;\n\nQUARTER_TRUNC\n : '@' ('q' | 'qtr' | 'qtrs' | 'quarter' | 'quarters')\n ;\n\nYEAR_TRUNC\n : '@' ('y' | 'yr' | 'yrs' | 'year' | 'years')\n ;\n\nINTEGER_VALUE\n : DECIMAL_INTEGER\n | HEXADECIMAL_INTEGER\n | OCTAL_INTEGER\n | BINARY_INTEGER\n ;\n\nDECIMAL_VALUE\n : DECIMAL_INTEGER '.' DECIMAL_INTEGER\n | '.' DECIMAL_INTEGER\n ;\n\nDOUBLE_VALUE\n : DIGIT+ ('.' DIGIT*)? EXPONENT\n | '.' DIGIT+ EXPONENT\n ;\n\nIDENTIFIER\n : [a-zA-Z_][a-zA-Z_0-9]*\n ;\n\nBACKQUOTED_IDENTIFIER\n : '`' ( ~'`' | '``' )* '`'\n ;\n\nfragment DECIMAL_INTEGER\n : DIGIT ('_'? DIGIT)*\n ;\n\nfragment HEXADECIMAL_INTEGER\n : '0x' ('_'? (DIGIT | [A-F]))+\n ;\n\nfragment OCTAL_INTEGER\n : '0o' ('_'? [0-7])+\n ;\n\nfragment BINARY_INTEGER\n : '0b' ('_'? [01])+\n ;\n\nfragment EXPONENT\n : 'e' [+-]? DIGIT+\n ;\n\nfragment DIGIT\n : [0-9]\n ;\n\n//\n// Comments and whitespace\n//\n\nSIMPLE_COMMENT\n : '//' ~[\\r\\n]* '\\r'? '\\n'? -> channel(HIDDEN)\n ;\n\nBRACKETED_COMMENT\n : '/*' .*? '*/' -> channel(HIDDEN)\n ;\n\nWS\n : [ \\r\\n\\t]+ -> skip\n ;\n";
|
|
139
131
|
|
|
140
|
-
interface InitOutput {
|
|
141
|
-
readonly memory: WebAssembly.Memory;
|
|
142
|
-
readonly __wbg_catalogprovider_free: (a: number, b: number) => void;
|
|
143
|
-
readonly catalogprovider_try_from_catalog: (a: any) => [number, number, number];
|
|
144
|
-
readonly __wbg_compiler_free: (a: number, b: number) => void;
|
|
145
|
-
readonly compiler_new: () => number;
|
|
146
|
-
readonly compiler_get_function_descriptions: (a: number) => [number, number];
|
|
147
|
-
readonly compiler_set_catalog_provider: (a: number, b: number) => void;
|
|
148
|
-
readonly compiler_set_time_range: (a: number, b: number, c: number) => void;
|
|
149
|
-
readonly compiler_set_time_range_expression: (a: number, b: number, c: number) => any;
|
|
150
|
-
readonly compiler_compile_query: (a: number, b: number, c: number) => any;
|
|
151
|
-
readonly compiler_compile_query_at: (a: number, b: number, c: number, d: number) => any;
|
|
152
|
-
readonly compiler_get_statement_datasets: (a: number, b: number, c: number) => any;
|
|
153
|
-
readonly __wbindgen_malloc: (a: number, b: number) => number;
|
|
154
|
-
readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
|
|
155
|
-
readonly __wbindgen_exn_store: (a: number) => void;
|
|
156
|
-
readonly __externref_table_alloc: () => number;
|
|
157
|
-
readonly __wbindgen_externrefs: WebAssembly.Table;
|
|
158
|
-
readonly __externref_table_dealloc: (a: number) => void;
|
|
159
|
-
readonly __externref_drop_slice: (a: number, b: number) => void;
|
|
160
|
-
readonly __wbindgen_free: (a: number, b: number, c: number) => void;
|
|
161
|
-
readonly __wbindgen_start: () => void;
|
|
162
|
-
}
|
|
132
|
+
declare const hamelinPrompt = "## Hamelin Instructions\n\nI am going to teach you a new query language, it\u2019s called Hamelin. Its main purpose is to support SIEM use-cases. In some ways, it is similar to SQL, PRQL, Elastic Query Language, Sumo Logic Query Language or Splunk Query Language, though it has some distinct properties. It\u2019s a pipe language, which processes data and allows to separate the operations using pipes. Throughout this guide, I will include some examples in <example></example> tags.\n\nHamelin query consists out of one or more operations separated by pipe (\"|\"). It is very important to memorize the commands, as each pipe operation must start with either of these. Following are the only commands supported:\n\n- `FROM` is the beginning of every Hamelin query. Every query must pull data from _somewhere._ One exception is that Hamelin can be used to calculate some expression value too, e.g. <example>LET x = 8 * 2</example>.\n- `SELECT` allows to specify which columns are selected: <example>SELECT <col1>, <col2>, <col3> = <val></example> drops all columns except columns 1 and 2, and also defines a 3rd column to a new, specific value. It\u2019s optional and by default, SELECT * is implied (which selects all columns).\n- `WHERE` filters the rows that flow through it based on applying a boolean condition to each of them.\n- `LET <col> = <val>` defines a new column value, or shadows an existing value.\n- `DROP <col1>, <col2>` removes col1 and col2 from the projection.\n- `WITH <tab1> = <operations>` associates the tab1 with specified operations (until two newlines are encountered) , so tab1 can be reused later\n- `AGG <function1, function2, ...> BY <column1, column2, ...>` aggregates and groups by the data accordingly\n- `WINDOW` applies aggregation or window functions over sliding windows of data.\n- `MATCH` correlates multiple event patterns together.\n- `SORT <columns> <optional order>` sorts the rows using specified criteria (and `ASC` or `DESC` order, `ASC` being default)\n- `LIMIT <limit>` limits the output rows\n\nIt is extremely important to start each pipe section using one of the commands and use pipe (\"|\") to separate further operations, e.g.\n<example>\nFROM example | WHERE name = \"John Smith\" | SELECT name, address\n</example>\n\nFor example, to select columns \"c1\" and \"c2\" from table \"A\", one needs to write:\n\n<example>\nFROM A\n| SELECT c1, c2\n</example>\n\nTo add a filter for \"c1=3\" condition:\n\n<example>\nFROM A\n| WHERE c1 == 3\n| SELECT c1, c2\n</example>\n\nTo select all data from table \"A\" and associate column \"v\" value multipled by 2 with new column \"x\"\"\n\n<example>\nFROM A\n| LET x = v*2\n</example>\n\nTo associate column c1 with new column x and remove c1 and c3, this can be used:\n\n<example>\nFROM A\n| LET x = c1\n| DROP c1, c3\n</example>\n\nIf only c1, c2 and c3 are present, the above can be rewritten using just `SELECT` :\n<example>\nFROM A\n| SELECT x = c1, c2\n</example>\n\n### Aggregations\n\nAggregations are extremely common in queries and Hamelin supports these via `AGG` keyword: `| AGG <aggregation1>, <aggregation2>, ... BY column1, column2, ...`\n\nThe \"BY ...\" part is optional. Any columns or operations not specified in the aggregation operation will be dropped.\nThe list of aggregations is optional as well. When not specifying it, the operation acts in a similar way as the DISTINCT operator in SQL.\n\nTo aggregate rows in table \"A\" using count and group by c1:\n\n<example>\nFROM A\n | AGG count = count() BY c1\n</example>\n\nTo get distinct c1 values in table \"A\" and ignore nulls:\n\n<example>\nFROM A\n | AGG BY c1\n | WHERE c1 IS NOT NULL\n</example>\n\nTo aggregate rows in table \"A\" using count, group by c1 and select 10 most common values:\n\n<example>\nFROM A\n | AGG count = count() BY c1\n | SORT count DESC\n | LIMIT 10\n</example>\n\nTo take max of column c1, avg of column c2 and count, grouped by c3 and order max(c1) and take top 10 results, this can be issued:\n\n<example>\nFROM A\n | AGG count = count(), max = max(c1), avg = avg(c2) BY c3\n | SORT max DESC\n | LIMIT 10\n</example>\n\nIt is also possible to associate the aggregate values with new column names:\n\n<example>\nFROM A\n | AGG count = count(), max_c1 = max(c1), avg_c2 = avg(c2) by c3\n | SORT max_c1 desc\n | LIMIT 10\n</example>\n\nVery important: remember that aggregation selects only columns (and aggregations) specified, everything else is dropped. If you want to filter and aggregate data, consider the right order. E.g. to filter cases where c1 > 500 and then get average value of c2, grouped by c3 from table tbl, sorted by c2, this is the correct order (WHERE before AGG):\n\n<example>\nFROM tbl\n| WHERE c1 > 500\n| AGG avg_c2 = avg(c2) BY c3\n| SORT avg_c2\n</example>\n\nOf course, there are also cases when WHERE is applied after aggregation. E.g. to get average of c1 and count, grouped by c3, only where count() > 10, this will be a correct query:\n\n<example>\nFROM tbl\n | AGG count = count(), avg_c1 = avg(c1) BY c3\n | WHERE count > 10\n</example>\n\n### Literals\n\nHamelin adopts most of SQL\u2019s conventions for the basic literal syntax and semantics. Integer, decimal, boolean, string literals, and NULL all behave as they do in SQL, and have equivalent syntax.\n\nIn addition, however, Hamelin adds:\n\n- Double-quoted strings, which allow for the use of single quotes in the string without needing escaping.\n- Support for multiline. (You can add literal newlines into a string.)\n\n### Identifiers\n\nThe identifier syntax is similar to how Trino SQL handles identifiers. They are ASCII letter sequences. These sequences can also start with an underscore `_` or contain an underscore. The sequences can also contain digits, but they cannot start with digits. For Hamelin, we want to follow along with the way string _literals_ are using double-quotes in many existing programming languages and therefore we want to stray from the SQL example, which requires the use of single-quotes `'` for strings. This means we do not want to support double-quoted identifiers. We instead support backtick-quoted identifiers: `identifier of life`.\n\nFollowing query retrieves data from test table and filters for two conditions, whether \"curry wurst\" column is equal to the string \"wiener schnitzel\" and \"1a_extra\" column is equal to the string 'mit \"pommes\"' (note the doublequote inside)\n\n<example>\nFROM _test\n| WHERE `curry wurst` == 'wiener schnitzel'\n AND `1a_extra` == 'mit \"pommes\"'\n</example>\n\n### Types\n\nHamelin has the following primitive types:\n\n- `boolean`\n- `int` - an umbrella for all integer types of any bit length\n- `decimal(precision, scale)` - exact fixed point values with specified precision and scale (e.g. `100.5`)\n- `double` - floating point numbers with variable precision (e.g. `-9.87e2`)\n- `string` - a string of any length, defined as a literal with either single quotes. String literals can escape quotes of either type by doubling them. (e.g. `\"She said \"\"hello\"\"\"`, `'It''s raining`)\n- `binary` - translates to `varbinary` in SQL for handling binary data\n- `timestamp` - an umbrella for date, timestamp, and all their variants (precision and timezone)\n- `interval` - an exact time duration of seconds, minutes, hours, or days (e.g. `30s`, `14d`)\n- `calendar_interval` - a calendar based time duration of months, quarters, or years (e.g. `3mon`, `5y`)\n- `range` - a span between two values of any primitive type using the `..` operator, which is inclusive on both sides and can be unbounded in either direction (e.g. `ts('2024-01-15')..now()`, `1..10`, `yesterday()..`). This is primarily used for time ranges, but can be used for any sortable type.\n\nHamelin has four composite types: \n\n- A `struct` has a set of fields, each with name and schema. You can access its field `my_field` of `my_struct` by doing `my_struct.my_field`\n- A `map` has a set of key-value pairs with homogeneous types. You can access the value for key `my_key` in `my_map` by doing `my_map[\"my_key\"]`\n- An `array` is an ordered list of values with homogeneous types. You can access the value at index 5 in `my_array` my doing `my_array[5]`\n- A `variant` is essentially a representation of untyped JSON data. You can access fields of JSON objects with the struct syntax above and you can access items of JSON arrays with the array syntax above.\n\nHamelin types can be casted to one another with the `AS` operator\n\n- If the type cast fails, the expression returns `NULL`\n- Casting never happens implicitly, so to concatenate strings with other types you need to cast. Often parentheses are necessary to make sure to cast the right expression (e.g. `\"Today is \" + (now() AS string)`)\n- Casting is most often useful for casting `variant`s parsed from JSON into the expected composite type (e.g. `| LET parsed = parse_json(message) AS { user_id: string, email: string}`)\n\nAny field in Hamelin can also be `NULL`. There is no concept of a `NOT NULL` field. You can check for `NULL` values with `IS NULL` or `IS NOT NULL`.\n\n### Operators\n\nHamelin is designed to be very intentional to make interactive query authoring more fluent and ergonomic.\n\n- Boolean operators\n - Negation: `NOT`\n - Conjunction: `AND`\n - Disjunction: `OR`\n- Identity: `IS` (only really used to test against `NULL`).\n- Arithmetic:\n - Addition: `+`\n - Subtraction: `-`\n - Multiplication: `*`\n - Division: `/`\n - Modulo: `%`\n - Negation: `-`\n- Comparison:\n - Equality: `==`\n - Note we use single-equals for _assignment_.\n - Non-equality: `!=`\n - Greater than: `>`\n - Less than: `<`\n - Greater or equal: `>=`\n - Less or equal: `<=`\n - Inclusion: `IN ['item1', 'item2', ...]` or `IN 1..10`\n- Concatenation: `+`\n - For strings: `'one' + 'two'` is `onetwo`\n - For arrays: `['one'] + ['two']` is `['one', 'two']`\n\n### Unioning multiple tables with FROM\n\nHamelin allows a shorthand in the `FROM` command that targets _many_ sources (by separating them with commas (the `,` character). In a system that offers search, authors often want to perform the same search (or filter) over the rows that come from many different places. This is most common in \"needle\" queries, where you\u2019re looking for something relatively rare in a bunch of different data sets. This is not a common pattern in structured querying, likely explaining why SQL makes this so hard, and why there is no direct translation of this form in SQL.\n\nFor example, where table A defines only `f1` and `f2`, and table B defines only `f2` and `f3`, following will work. It will select `f1` and `f2` from table A and `f2` and `f3` from table B, so the full set of fields in the output of the following example will be `f1`, `f2`, `f3`.\n\n<example>\nFROM A, B\n</example>\n\nYou can also alias the fields based on which table they came from if you need to determine which table a given `f2` value came from example. In the following example, the output fields would be a struct `a` with sub-fields `f1` and `f2` and a struct `b` with sub-fields `f2` and `f3`. You can reference the sub-fields later in the query with `a.f1`, `b.f2`, etc. In addition, the fields are all still usable at the top level.\n\n<example>\nFROM a = A, b = B\n</example>\n\nAliasing tables is also useful when aggregating multiple types of rows (often from `WITH` CTEs):\n\n<example>\nWITH network_connections = FROM simba.sysmon_events\n| WHERE winlog.event_id == '3'\n\nWITH suspicious_file_creation = FROM simba.sysmon_events\n| WHERE winlog.event_id == '11'\n\nFROM network_connections = network_connections, suspicious_file_creation = suspicious_file_creation\n| AGG network_connections_count = count(network_connections), suspicious_file_creation_count = count(suspicious_file_creation)\n BY host.name\n</example>\n\n### Functions\n\nThe following functions are supported in expressions (within `LET`, `SELECT`, `WHERE`, etc.):\n\n- len(x[])\n- sum(x[])\n- avg(x[])\n- min(x[])\n- max(x[])\n- array_distinct(x[])\n- filter_null(x[])\n- slice(x[], start, end) - returns a slice of the array x from start to end (inclusive). Supports negative indices to count from the end of the array.\n- flatten(x[]) - flattens a nested array by one level.\n- all(x[])\n- any(x[])\n- len(x[])\n- abs(x)\n- cbrt(x)\n- ceil(x)\n- floor(x)\n- degrees(x)\n- e() - Euler's number\n- exp(x)\n- ln(x)\n- log(b, x)\n- log10(x)\n- log2(x)\n- pi()\n- pow(x,p)\n- power(x,p)\n- radians(x)\n- round(x)\n- round(x,d)\n- sign(x)\n- sqrt(x)\n- truncate(x) - Remove the fractional part of a number\n- width_bucket(x,bound1,bound2,n) - the bucket number for a value in a histogram with equal-width buckets\n- width_bucket(x, bins[]) - the bucket number for a value using explicitly defined bucket boundaries\n- if(condition, then, else) - Both `then` and `else` must have the same type\n- case(when_condition: then_condition, when_condition: then_expression, ...) - Evaluates multiple condition-value pairs in order and returns the value associated with the first condition that evaluates to true. Returns null if no conditions are true. Every `then` must have the same type. There is no `else` in this expression, but you can achieve the same results by having `true` in the final `then_expression` like `case(when_condition: then_condition, when_condition: then_expression, ..., true: else_expression)`.\n- regexp_count(str, pattern)\n- regexp_extract(str, pattern)\n- regexp_extract(str, pattern, group)\n- regexp_extract_all(str, pattern)\n- regexp_extract_all(str, pattern, group)\n- regexp_like(string, pattern)\n- regexp_position(string, pattern, start)\n- regexp_replace(string, pattern)\n- regexp_replace(string, pattern, replacement)\n- regexp_split(string, pattern)\n- split(str, separator)\n- array_join(x[], separator)\n- replace(str, str_to_remove)\n- starts_with(str, prefix)\n- ends_with(str, suffix)\n- contains(str, substring)\n- len(str)\n- lower(str)\n- upper(str)\n- parse_json(json_str) - Only takes a string, never pass a map or struct\n- to_json_string(json_variant) - Only takes a variant. To pass other types, cast to variant with `AS variant`\n- typeof(x)\n- coalesce(x[]) - returns the first non-null value from a list of expressions\n- first(x)\n- last(x)\n- now()\n- today()\n- yesterday()\n- tomorrow()\n- ts(str)\n- at_timezone(timestamp, timezone)\n- year(timestamp)\n- month(timestamp)\n- day(timestamp)\n- hour(timestamp)\n- minute(timestamp)\n- second(timestamp)\n- from_unixtime_micros(x) - returns timestamp\n- from_unixtime_millis(x) - returns timestamp\n- from_unixtime_nanos(x) - returns timestamp\n- from_unixtime_seconds(x) - returns timestamp\n- from_millis(x) - returns interval\n- from_nanos(x) - returns interval\n- to_unixtime(timestamp) - returns double in seconds since the Unix epoch\n- to_millis(interval)\n- to_nanos(interval)\n- map(keys, values)\n- map(elements)\n- map_keys(map)\n- map_values(map)\n- next(expression)\n- cidr_contains(cidr, ip)\n- is_ipv4(ip)\n- is_ipv6(ip)\n\nThe following functions are only available within an AGG or WINDOW command:\n\n- all(bool_expr) - returns true if bool_expr is true for all rows\n- any(bool_expr) - returns true if bool_expr is true for any row\n- any_value(x) - returns an arbitrary value from each group\n- approx_percentile(x, percentile)\n- array_agg(x)\n- avg(x)\n- count_distinct(x) - counts the number of distinct non-null values of x\n- approx_distinct(x) - same as count_distinct(x) but uses an approximation algorithm that is faster but less accurate\n- count_if(condition) - counts all rows where condition is true\n- count(expr) - counts all rows where expr is non-null\n- count() - counts all rows\n- map_agg(key, value)\n- max(x)\n- min(x)\n- multimap_agg(key, value)\n- stddev(x)\n- sum(x)\n\nThe following functions are only available within a WINDOW command:\n\n- first_value(expression)\n- last_value(expression)\n- nth_value(expression, n)\n- cume_dist() - the number of rows with values less than or equal to the current row's value, divided by the total number of rows in the partition\n- percent_rank() - the percentile rank of each row within the window partition\n- dense_rank() - the rank of each row within a window partition without gaps\n- lag(expression, offset, ignore_nulls) - the value of an expression from a previous row within the window\n- lead(expression, offset, ignore_nulls) - the value of an expression from a subsequent row within the window\n- rank() - the rank of each row within a window partition with gaps\n- row_number() - a sequential row number for each row within a window partition\n\n### Describing time ranges\n\nUse `<low>..<high>` to describe a time range. Drop either `low` or `high` from the expression to communicate that side being unbounded. Allow the use of interval values, like `WITHIN 1hr..`. This time range syntax is used in the `timeRange` input of tools such as `execute-hamelin-query` and `query-page-run-query` to filter the result set to only the rows that have a `timestamp` in that time range. The time range syntax can be used in various parts of a Hamelin query, such as the `WINDOW` command.\n\nThe `WITHIN` keyword is used to compare expressions to ranges. It can be used in three basic forms:\n\n- `| WHERE val WITHIN low..high` allows `WITHIN` to be used as a binary boolean operator to test any sortable value against a range. This can be used anywhere boolean expressions are needed.\n- `| WINDOW WITHIN low..high` defines the frame clause of a window expression, filtering only those rows which are within the interval defined in terms of the current (or output) row.\n\nWhenever providing timestamp literals, you must use a format of `('<TIMESTAMP>' AS timestamp)`. For example, to describe noon on March 1st, 2020, use `('2020-03-01 12:00' AS timestamp)`. To select all rows from table A with timestamp greater than March 1st, 2020 on noon, you can use:\n<example>\nFROM A\n| WHERE timestamp > ('2025-03-01 12:00' AS timestamp)\n</example>\n\nTo select rows from the last hour, use `timeRange`:\n\n<example>\n-1h..\n</example>\n\nTo select rows which were between two and one hour ago, use the `timeRange`:\n\n<example>\n-2h..-1h\n</example>\n\nTo select rows which occured during the past 7 days, use the `timeRange`:\n\n<example>\n-1w..\n</example>\n\nThe `@` operator can also be used on a timestamp to round timestamps down to the nearest unit (day, hour, etc.).\n\nTo select rows in the previous 5 calendar days (not including today), use the `timeRange`:\n\n<example>\n-5d@d..now()@d\n</example>\n\n### Windows\n\n- `WINDOW` is a command that behaves like a mix of `AGG` and `LET`. It has three optional arguments that come at the end, all of which define a window:\n - `BY <column1, column2>` means everything in the let is partitioned by this. (e.g., `BY user` means compute the function in a user-relative window).\n - `SORT <column1, column2, ...>` means everything in the let sorted by this. (e.g., `SORT timestamp`).\n - `WITHIN <range>` means everything in the let uses this range as the frame. (e.g., `WITHIN -5m` means within a 5 minute sliding window).\n - Here, within uses nearly the same semantics as the `WITHIN` command.\n - We introduce a new row interval literal with the suffix `r` or `rows` or `row` for defining ranges over exact numbers of rows rather than over ranges of values.\n- All three are optional, but the presence of any means _every_ expression in the let is defined \"over\" this window.\n\nFor example, to do count in 5 minute windows in table tbl:\n\n<example>\nFROM tbl | WINDOW c = count() WITHIN -5m\n</example>\n\n#### Rate-Based Detection with WINDOW...WITHIN\n\nUse `WINDOW ... WITHIN` for sliding window aggregations to detect bursts or spikes of activity.\n\n**When to use:** Count/aggregate events within a moving time window (e.g., \"10+ failed logins in the last 5 minutes\")\n\n**Key characteristics:**\n- **Purpose**: Detect bursts/spikes of activity (rate-based detection)\n- **Syntax**: `WINDOW ... BY grouping_keys WITHIN -duration`\n- **Window moves with time**: Always looks at the most recent N minutes/hours\n- **Use cases**: Rate limiting, burst detection, threshold alerting, brute force attacks\n- **Duration format**: `-5min`, `-1h`, `-1d` (negative values look backward in time)\n\n**Example: Brute Force Detection**\n\n<example>\nFROM simba.okta_events\n| WHERE event.action == \"user.session.start\" AND event.outcome == \"failure\"\n| WINDOW\n failed_login_count = count(),\n unique_ips = array_agg(source.ip)\n BY user.name\n WITHIN -5min\n| WHERE failed_login_count >= 10\n| SELECT\n timestamp,\n user.name,\n event.count = failed_login_count,\n source.ip_count = unique_ips\n</example>\n\n**Common WINDOW patterns:**\n\n<example>\n// Count events in sliding window\nFROM dataset | WINDOW event_count = count() BY host WITHIN -10min\n</example>\n\n<example>\n// Conditional counting\nFROM dataset\n| WINDOW\n malicious_count = count_if(is_malicious),\n total_count = count()\n BY user.name\n WITHIN -30min\n</example>\n\n### Event Correlation with MATCH\n\nThe `MATCH` command enables powerful multi-stage detection by correlating different event patterns. This is essential for detecting attack chains and reducing false positives.\n\n**When to use MATCH:**\n- Detecting multi-stage attacks (initial access \u2192 execution \u2192 persistence)\n- Correlating different behavioral indicators\n- Building high-fidelity detections that require multiple suspicious events\n- Creating attack chain detections with context\n\n**MATCH Pattern Structure:**\n\n```hamelin\n// Step 1: Define individual event patterns as WITH clauses\nWITH pattern1 = FROM dataset\n| WHERE <specific conditions>\n| SELECT fields...\n\nWITH pattern2 = FROM dataset\n| WHERE <different conditions>\n| SELECT fields...\n\n// Step 2: Correlate patterns using MATCH (space-separated!)\nMATCH p1=pattern1? p2=pattern2?\nBY correlation_key // e.g., host, user, session_id\n| LET indicator_count = (\n if(p1 IS NOT NULL, 1, 0) +\n if(p2 IS NOT NULL, 1, 0)\n) AS int\n| WHERE indicator_count >= 2 // Alert when 2+ patterns match\n\n// Step 3: Aggregate and enrich\n| AGG\n timestamp = min(timestamp),\n event.start = min(timestamp),\n event.end = max(timestamp),\n pattern1_event = array_agg(p1)[0],\n pattern2_event = array_agg(p2)[0],\n indicator_count = max(indicator_count)\n BY match_number, correlation_key\n\n// Step 4: Apply time window constraint\n| WHERE event.end - event.start <= 10min\n\n// Step 5: Build output with risk scoring\n| LET risk_score = (\n if(pattern1_event IS NOT NULL, 30, 0) +\n if(pattern2_event IS NOT NULL, 30, 0)\n) AS int\n| SELECT timestamp, fields...\n```\n\n**Critical MATCH Syntax Rules:**\n- Pattern aliases are **space-separated**, NOT comma-separated: `MATCH a=query1? b=query2? c=query3?`\n- Use `?` quantifier to make patterns optional (allows partial matches)\n- The `BY` clause specifies the correlation key (what ties events together)\n- Access matched events in AGG using `array_agg(alias)[0]`\n- Time window filtering: `WHERE event.end - event.start <= duration`\n\n**Example: Multi-Stage Malware Detection**\n\n<example>\n// Define behavioral indicators\nWITH lnk_powershell = FROM simba.sysmon_events\n| WHERE event.code == \"1\"\n| LET parent_image = coalesce(winlog.event_data[\"ParentImage\"], '') AS string\n| LET image = coalesce(winlog.event_data[\"Image\"], '') AS string\n| LET cmd_line = coalesce(winlog.event_data[\"CommandLine\"], '') AS string\n| LET host = host.name AS string\n| WHERE regexp_like(lower(parent_image), '(?i).*\\\\\\\\explorer\\\\.exe')\n AND regexp_like(lower(image), '(?i).*(powershell|pwsh)\\\\.exe')\n AND regexp_like(cmd_line, '(?i).*(hidden|-enc|-encodedcommand).*')\n| SELECT timestamp, host, process_image = image, process_commandline = cmd_line\n\nWITH cloud_download = FROM simba.sysmon_events\n| WHERE event.code == \"1\"\n| LET image = coalesce(winlog.event_data[\"Image\"], '') AS string\n| LET cmd_line = coalesce(winlog.event_data[\"CommandLine\"], '') AS string\n| LET host = host.name AS string\n| WHERE regexp_like(lower(image), '(?i).*(powershell|pwsh)\\\\.exe')\n AND regexp_like(cmd_line, '(?i).*(github\\\\.com|dropbox\\\\.com).*')\n AND regexp_like(cmd_line, '(?i).*(downloadstring|invoke-webrequest).*')\n| SELECT timestamp, host, process_image = image, process_commandline = cmd_line\n\n// Correlate: alert when 2+ indicators on same host within 10 min\nMATCH lnk=lnk_powershell? dl=cloud_download?\nBY host\n| LET indicator_count = (\n if(lnk IS NOT NULL, 1, 0) +\n if(dl IS NOT NULL, 1, 0)\n) AS int\n| WHERE indicator_count >= 2\n| AGG\n timestamp = min(timestamp),\n event.start = min(timestamp),\n event.end = max(timestamp),\n lnk_event = array_agg(lnk)[0],\n dl_event = array_agg(dl)[0],\n indicator_count = max(indicator_count)\n BY match_number, host\n| WHERE event.end - event.start <= 10min\n| LET risk_score = (\n if(lnk_event IS NOT NULL, 40, 0) +\n if(dl_event IS NOT NULL, 40, 0)\n) AS int\n| SELECT\n timestamp,\n event.start,\n event.end,\n host,\n event.count = indicator_count,\n event.risk_score = risk_score\n</example>\n\n### More valid examples\n\nTo find records in table foo where column c1 is greater than 42, one needs to write:\n\n<example>\nFROM foo | WHERE c1 > 42\n</example>\n\nTo take unique (distinct) tuples of hostname and dest_port in table1, you can use AGG without aggregation functions:\n<example>\nFROM table1 | AGG BY hostname, dest_port\n</example>\n\nTo get number of flows by protocol and destination_port, then select top 10 by count, one needs to write:\n<example>\nFROM flows\n| AGG count = count() BY protocol, destination_port\n| SORT count DESC\n| LIMIT 10\n</example>\n\n### Invalid usage examples\n\nHere are some examples how NOT TO USE Hamelin. It is important to memorize these bad examples and verify when producing a response to the prompt if the output is correct.\n\nFollowing bad query mistakenly uses ORDER BY rather than SORT:\n<bad_example>\nFROM flows\n| ORDER BY count() DESC\n</bad_example>\nAfter fixing:\n<example>\nFROM flows\n| SORT count() DESC\n</example>\n\nFollowing bad query uses aggregation for sorting, but it was already done\n<bad_example>\nFROM flows\n| AGG count() BY user_name\n| SORT count()\n</bad_example>\nAfter fixing:\n<example>\nFROM flows\n| AGG count = count() BY user_name\n| SORT count\n</example>\n\nFollowing bad query mistakenly uses a single equal sign for equality test:\n<bad_example>\nFROM flows\n| WHERE user = 'John Smith'\n</bad_example>\nAfter fixing:\n<example>\nFROM flows\n| WHERE user == 'John Smith'\n</example>\n\nFollowing bad query mistakenly uses a star character in count:\n<bad_example>\nFROM flows\n| AGG count = count(*) BY user\n</bad_example>\nAfter fixing:\n<example>\nFROM flows\n| AGG count = count() BY user\n</example>\n\nFollowing bad query is mixing two commands in one:\n<bad_example>\nFROM flows | SELECT dest_port, LET proto = 'tcp'\n</bad_example>\nAfter fixing:\n<example>\nFROM flows | SELECT dest_port | LET proto = 'tcp'\n</example>\n\nFollowing bad query is using incorrect AS operator\n<bad_example>\nFROM flows | AGG max(timestamp) AS max_timestamp\n</bad_example>\nAfter fixing:\n<example>\nFROM flows | AGG max_timestamp = max(timestamp)\n</example>\n\nThe following bad query uses the LIKE operator, which doesn't exist in Hamelin:\n<bad_example>\nFROM flows | WHERE proto LIKE 'http%'\n</bad_example>\nThree different options to fix:\n<example>\nFROM flows | WHERE starts_with(proto, 'http')\n</example>\n<example>\nFROM flows | WHERE contains(proto, 'http')\n</example>\n<example>\nFROM flows | WHERE regexp_like(proto, '^http')\n</example>\n\nAGG does not support the WITHIN clause. Use WINDOW for rate-based detection with sliding windows.\n<bad_example>\n| AGG count() BY host WITHIN -5min\n</bad_example>\nAfter fixing:\n<example>\n| WINDOW count() BY host WITHIN -5min\n</example>\n\nMATCH patterns must be space-separated, not comma-separated.\n<bad_example>\nMATCH a=query1?, b=query2?, c=query3?\n</bad_example>\nAfter fixing:\n<example>\nMATCH a=query1? b=query2? c=query3?\n</example>\n\n### Key differences from SQL\n\nHamelin is not SQL but a unique query language! Carefully note the Hamelin rules when drafting a new query.\n\n- The count function does not include a star. So it's `count()` and definitely NOT `count(*)`.\n- There is no `CASE`/`WHEN` operator in Hamelin, but its implemented as the `case(when_condition: then_condition, when_condition: then_expression, ...)`\n- There's no `LIKE` operator. Instead, use `contains` to do simple substring searching or `regexp_like` to check if a string matches a regex pattern.\n- String concatenation happens with `+` not `||`\n- Double equals `==` is required for equality comparison. Single equals `=` is only used for assignment.\n- `AS` is used for casting, never for assignment/aliasing.\n- `SORT`, not `ORDER BY`\n- There is no support for subqueries within expressions (`| WHERE name IN (FROM admins | SELECT name)` is not valid)\n\n\n### Summary\n\nLet me note a few important properties:\n\n- Aggregation, when used, must be done using `AGG` keyword. The `AGG` command completely redefines the field space so only fields used/defined in the command will be available downstream.\n- Grouping, when used, must be done within a window or aggregation, i.e. there is no separate GROUP BY operation, but there is \"AGG .... BY ....\"\n- Each query must start with `FROM <table>`, followed by other operations separated by pipe character (\"|\").\n- Very important, pipe character (\"|\") must be always used to separate each operation. For example, this is invalid: <bad_example>FROM tbl WHERE x > 5</bad_example>. Instead, it should be: <example> FROM tbl | WHERE x > 5</example>. It\u2019s extremely important, use pipe characters for separation!\n- The only valid operation names are FROM, SELECT, WHERE, DROP, LET, WITH, WINDOW, MATCH, SORT, LIMIT, AGG - each operation must start with one of these.\n- When the prompt contains a SQL query on the input, you must convert it into a Hamelin query!!!\n\n### Best Practices\n\n- Don't use `SORT` and `LIMIT` commands unless the specific situation requires them or the user asks for it specifically. If you're adding `| SORT timestamp DESC` to the end of the query, that's almost always wrong.\n- `SELECT` is useful to narrow the result set if the you and the user know exactly what you're looking for, but `SELECT` is not required and should be omitted for most queries.\n\n### Final Reminders\n\nNow you should understand how Hamelin operates and how to write queries. When providing Hamelin queries, make sure you take into account syntax requirements of Hamelin and do logical operators correctly. Ensure that the order of operations as logically described in the question is followed. Ensure that the order of aggregating and filtering operations is correct. When asked for providing a Hamelin query, provide concise output with a correct Hamelin query.\n";
|
|
163
133
|
|
|
164
|
-
type
|
|
134
|
+
type QuerySort = {
|
|
135
|
+
column: string;
|
|
136
|
+
direction: "asc" | "desc" | null;
|
|
137
|
+
};
|
|
165
138
|
/**
|
|
166
|
-
*
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
* @param {{ module: SyncInitInput }} module - Passing `SyncInitInput` directly is deprecated.
|
|
170
|
-
*
|
|
171
|
-
* @returns {InitOutput}
|
|
172
|
-
*/
|
|
173
|
-
declare function initSync(module: { module: SyncInitInput } | SyncInitInput): InitOutput;
|
|
139
|
+
* Returns the top level sorting information from the provided Hamelin query.
|
|
140
|
+
*/
|
|
141
|
+
declare const getSorts: (hamelinQuery: string) => QuerySort[];
|
|
174
142
|
|
|
175
|
-
|
|
176
|
-
|
|
143
|
+
type QueryAggregation = {
|
|
144
|
+
columns: string[];
|
|
145
|
+
by: string[];
|
|
146
|
+
sort: QuerySort[];
|
|
147
|
+
};
|
|
148
|
+
declare const getAggregations: (query: string) => QueryAggregation[];
|
|
177
149
|
|
|
178
|
-
declare
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
static readonly MATCH_COMMAND = 19;
|
|
198
|
-
static readonly AS = 20;
|
|
199
|
-
static readonly NODROP = 21;
|
|
200
|
-
static readonly PLUS = 22;
|
|
201
|
-
static readonly MINUS = 23;
|
|
202
|
-
static readonly ASTERISK = 24;
|
|
203
|
-
static readonly SLASH = 25;
|
|
204
|
-
static readonly PERCENT = 26;
|
|
205
|
-
static readonly LCURLY = 27;
|
|
206
|
-
static readonly RCURLY = 28;
|
|
207
|
-
static readonly COLON = 29;
|
|
208
|
-
static readonly QUESTIONMARK = 30;
|
|
209
|
-
static readonly EQ = 31;
|
|
210
|
-
static readonly NEQ = 32;
|
|
211
|
-
static readonly LT = 33;
|
|
212
|
-
static readonly LTE = 34;
|
|
213
|
-
static readonly GT = 35;
|
|
214
|
-
static readonly GTE = 36;
|
|
215
|
-
static readonly RANGE = 37;
|
|
216
|
-
static readonly ASSIGN = 38;
|
|
217
|
-
static readonly AND = 39;
|
|
218
|
-
static readonly FALSE = 40;
|
|
219
|
-
static readonly IS = 41;
|
|
220
|
-
static readonly NOT = 42;
|
|
221
|
-
static readonly ISNOT = 43;
|
|
222
|
-
static readonly IN = 44;
|
|
223
|
-
static readonly NOTIN = 45;
|
|
224
|
-
static readonly NULL = 46;
|
|
225
|
-
static readonly OR = 47;
|
|
226
|
-
static readonly TRUE = 48;
|
|
227
|
-
static readonly UESCAPE = 49;
|
|
228
|
-
static readonly WITH = 50;
|
|
229
|
-
static readonly BY = 51;
|
|
230
|
-
static readonly SORT = 52;
|
|
231
|
-
static readonly ASC = 53;
|
|
232
|
-
static readonly DESC = 54;
|
|
233
|
-
static readonly DISTINCT_BY = 55;
|
|
234
|
-
static readonly ON = 56;
|
|
235
|
-
static readonly WHEN = 57;
|
|
236
|
-
static readonly COMMA = 58;
|
|
237
|
-
static readonly PIPE = 59;
|
|
238
|
-
static readonly LPARENS = 60;
|
|
239
|
-
static readonly RPARENS = 61;
|
|
240
|
-
static readonly DOT = 62;
|
|
241
|
-
static readonly LBRACKET = 63;
|
|
242
|
-
static readonly RBRACKET = 64;
|
|
243
|
-
static readonly SINGLE_QUOTED_STRING = 65;
|
|
244
|
-
static readonly DOUBLE_QUOTED_STRING = 66;
|
|
245
|
-
static readonly SINGLE_QUOTED_UNICODE_STRING = 67;
|
|
246
|
-
static readonly DOUBLE_QUOTED_UNICODE_STRING = 68;
|
|
247
|
-
static readonly BINARY_LITERAL = 69;
|
|
248
|
-
static readonly NANOSECOND_INTERVAL = 70;
|
|
249
|
-
static readonly MICROSECOND_INTERVAL = 71;
|
|
250
|
-
static readonly MILLISECOND_INTERVAL = 72;
|
|
251
|
-
static readonly SECOND_INTERVAL = 73;
|
|
252
|
-
static readonly MINUTE_INTERVAL = 74;
|
|
253
|
-
static readonly HOUR_INTERVAL = 75;
|
|
254
|
-
static readonly DAY_INTERVAL = 76;
|
|
255
|
-
static readonly WEEK_INTERVAL = 77;
|
|
256
|
-
static readonly MONTH_INTERVAL = 78;
|
|
257
|
-
static readonly QUARTER_INTERVAL = 79;
|
|
258
|
-
static readonly YEAR_INTERVAL = 80;
|
|
259
|
-
static readonly ROWS_LITERAL = 81;
|
|
260
|
-
static readonly SECOND_TRUNC = 82;
|
|
261
|
-
static readonly MINUTE_TRUNC = 83;
|
|
262
|
-
static readonly HOUR_TRUNC = 84;
|
|
263
|
-
static readonly DAY_TRUNC = 85;
|
|
264
|
-
static readonly WEEK_TRUNC = 86;
|
|
265
|
-
static readonly MONTH_TRUNC = 87;
|
|
266
|
-
static readonly QUARTER_TRUNC = 88;
|
|
267
|
-
static readonly YEAR_TRUNC = 89;
|
|
268
|
-
static readonly INTEGER_VALUE = 90;
|
|
269
|
-
static readonly DECIMAL_VALUE = 91;
|
|
270
|
-
static readonly DOUBLE_VALUE = 92;
|
|
271
|
-
static readonly IDENTIFIER = 93;
|
|
272
|
-
static readonly BACKQUOTED_IDENTIFIER = 94;
|
|
273
|
-
static readonly SIMPLE_COMMENT = 95;
|
|
274
|
-
static readonly BRACKETED_COMMENT = 96;
|
|
275
|
-
static readonly WS = 97;
|
|
276
|
-
static readonly channelNames: string[];
|
|
277
|
-
static readonly literalNames: (string | null)[];
|
|
278
|
-
static readonly symbolicNames: (string | null)[];
|
|
279
|
-
static readonly modeNames: string[];
|
|
280
|
-
static readonly ruleNames: string[];
|
|
281
|
-
constructor(input: antlr.CharStream);
|
|
282
|
-
get grammarFileName(): string;
|
|
283
|
-
get literalNames(): (string | null)[];
|
|
284
|
-
get symbolicNames(): (string | null)[];
|
|
285
|
-
get ruleNames(): string[];
|
|
286
|
-
get serializedATN(): number[];
|
|
287
|
-
get channelNames(): string[];
|
|
288
|
-
get modeNames(): string[];
|
|
289
|
-
static readonly _serializedATN: number[];
|
|
290
|
-
private static __ATN;
|
|
291
|
-
static get _ATN(): antlr.ATN;
|
|
292
|
-
private static readonly vocabulary;
|
|
293
|
-
get vocabulary(): antlr.Vocabulary;
|
|
294
|
-
private static readonly decisionsToDFA;
|
|
295
|
-
}
|
|
150
|
+
declare const getDatasetsFromQuery: (catalog: Catalog, hamelinInput: string) => Promise<QueryDatasetsResult>;
|
|
151
|
+
|
|
152
|
+
declare const getFunctionDescriptions: () => Promise<FunctionDescription[]>;
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Returns the top level limit information from the provided Hamelin query.
|
|
156
|
+
*/
|
|
157
|
+
declare const getLimits: (hamelinQuery: string) => number[];
|
|
158
|
+
|
|
159
|
+
type FieldNames = string[] | null;
|
|
160
|
+
declare const getSelectedFields: (query: string) => FieldNames;
|
|
161
|
+
|
|
162
|
+
declare function parseTokenValueClass(stream: {
|
|
163
|
+
string: string;
|
|
164
|
+
pos: number;
|
|
165
|
+
match: (text: string) => boolean | unknown[] | null;
|
|
166
|
+
}, functions: FunctionDescription[]): string | null;
|
|
167
|
+
|
|
168
|
+
declare const sampleCatalog: Catalog;
|
|
296
169
|
|
|
297
170
|
/**
|
|
298
|
-
*
|
|
299
|
-
*
|
|
171
|
+
* Invokes Antlr4-c3 to collect completion candidates for a given input string
|
|
172
|
+
* at a specific position.
|
|
300
173
|
*
|
|
301
|
-
* @param
|
|
302
|
-
*
|
|
174
|
+
* @param input The input string to analyze.
|
|
175
|
+
* @param pos Request completion at this index in the input string,
|
|
176
|
+
* @returns A collection of candidates or undefined if no candidates are found
|
|
177
|
+
* or the position is invalid.
|
|
303
178
|
*/
|
|
304
|
-
declare
|
|
305
|
-
/**
|
|
306
|
-
* Visit a parse tree produced by `HamelinParser.identifierEOF`.
|
|
307
|
-
* @param ctx the parse tree
|
|
308
|
-
* @return the visitor result
|
|
309
|
-
*/
|
|
310
|
-
visitIdentifierEOF?: (ctx: IdentifierEOFContext) => Result;
|
|
311
|
-
/**
|
|
312
|
-
* Visit a parse tree produced by `HamelinParser.queryEOF`.
|
|
313
|
-
* @param ctx the parse tree
|
|
314
|
-
* @return the visitor result
|
|
315
|
-
*/
|
|
316
|
-
visitQueryEOF?: (ctx: QueryEOFContext) => Result;
|
|
317
|
-
/**
|
|
318
|
-
* Visit a parse tree produced by `HamelinParser.commandEOF`.
|
|
319
|
-
* @param ctx the parse tree
|
|
320
|
-
* @return the visitor result
|
|
321
|
-
*/
|
|
322
|
-
visitCommandEOF?: (ctx: CommandEOFContext) => Result;
|
|
323
|
-
/**
|
|
324
|
-
* Visit a parse tree produced by `HamelinParser.expressionEOF`.
|
|
325
|
-
* @param ctx the parse tree
|
|
326
|
-
* @return the visitor result
|
|
327
|
-
*/
|
|
328
|
-
visitExpressionEOF?: (ctx: ExpressionEOFContext) => Result;
|
|
329
|
-
/**
|
|
330
|
-
* Visit a parse tree produced by `HamelinParser.pipelineEOF`.
|
|
331
|
-
* @param ctx the parse tree
|
|
332
|
-
* @return the visitor result
|
|
333
|
-
*/
|
|
334
|
-
visitPipelineEOF?: (ctx: PipelineEOFContext) => Result;
|
|
335
|
-
/**
|
|
336
|
-
* Visit a parse tree produced by `HamelinParser.simpleIdentifierEOF`.
|
|
337
|
-
* @param ctx the parse tree
|
|
338
|
-
* @return the visitor result
|
|
339
|
-
*/
|
|
340
|
-
visitSimpleIdentifierEOF?: (ctx: SimpleIdentifierEOFContext) => Result;
|
|
341
|
-
/**
|
|
342
|
-
* Visit a parse tree produced by the `withQuery`
|
|
343
|
-
* labeled alternative in `HamelinParser.query`.
|
|
344
|
-
* @param ctx the parse tree
|
|
345
|
-
* @return the visitor result
|
|
346
|
-
*/
|
|
347
|
-
visitWithQuery?: (ctx: WithQueryContext) => Result;
|
|
348
|
-
/**
|
|
349
|
-
* Visit a parse tree produced by the `standaloneQuery`
|
|
350
|
-
* labeled alternative in `HamelinParser.query`.
|
|
351
|
-
* @param ctx the parse tree
|
|
352
|
-
* @return the visitor result
|
|
353
|
-
*/
|
|
354
|
-
visitStandaloneQuery?: (ctx: StandaloneQueryContext) => Result;
|
|
355
|
-
/**
|
|
356
|
-
* Visit a parse tree produced by the `expressionQuery`
|
|
357
|
-
* labeled alternative in `HamelinParser.query`.
|
|
358
|
-
* @param ctx the parse tree
|
|
359
|
-
* @return the visitor result
|
|
360
|
-
*/
|
|
361
|
-
visitExpressionQuery?: (ctx: ExpressionQueryContext) => Result;
|
|
362
|
-
/**
|
|
363
|
-
* Visit a parse tree produced by the `pipelineAlt`
|
|
364
|
-
* labeled alternative in `HamelinParser.pipeline`.
|
|
365
|
-
* @param ctx the parse tree
|
|
366
|
-
* @return the visitor result
|
|
367
|
-
*/
|
|
368
|
-
visitPipelineAlt?: (ctx: PipelineAltContext) => Result;
|
|
369
|
-
/**
|
|
370
|
-
* Visit a parse tree produced by the `letCommand`
|
|
371
|
-
* labeled alternative in `HamelinParser.command`.
|
|
372
|
-
* @param ctx the parse tree
|
|
373
|
-
* @return the visitor result
|
|
374
|
-
*/
|
|
375
|
-
visitLetCommand?: (ctx: LetCommandContext) => Result;
|
|
376
|
-
/**
|
|
377
|
-
* Visit a parse tree produced by the `whereCommand`
|
|
378
|
-
* labeled alternative in `HamelinParser.command`.
|
|
379
|
-
* @param ctx the parse tree
|
|
380
|
-
* @return the visitor result
|
|
381
|
-
*/
|
|
382
|
-
visitWhereCommand?: (ctx: WhereCommandContext) => Result;
|
|
383
|
-
/**
|
|
384
|
-
* Visit a parse tree produced by the `selectCommand`
|
|
385
|
-
* labeled alternative in `HamelinParser.command`.
|
|
386
|
-
* @param ctx the parse tree
|
|
387
|
-
* @return the visitor result
|
|
388
|
-
*/
|
|
389
|
-
visitSelectCommand?: (ctx: SelectCommandContext) => Result;
|
|
390
|
-
/**
|
|
391
|
-
* Visit a parse tree produced by the `dropCommand`
|
|
392
|
-
* labeled alternative in `HamelinParser.command`.
|
|
393
|
-
* @param ctx the parse tree
|
|
394
|
-
* @return the visitor result
|
|
395
|
-
*/
|
|
396
|
-
visitDropCommand?: (ctx: DropCommandContext) => Result;
|
|
397
|
-
/**
|
|
398
|
-
* Visit a parse tree produced by the `fromCommand`
|
|
399
|
-
* labeled alternative in `HamelinParser.command`.
|
|
400
|
-
* @param ctx the parse tree
|
|
401
|
-
* @return the visitor result
|
|
402
|
-
*/
|
|
403
|
-
visitFromCommand?: (ctx: FromCommandContext) => Result;
|
|
404
|
-
/**
|
|
405
|
-
* Visit a parse tree produced by the `unionCommand`
|
|
406
|
-
* labeled alternative in `HamelinParser.command`.
|
|
407
|
-
* @param ctx the parse tree
|
|
408
|
-
* @return the visitor result
|
|
409
|
-
*/
|
|
410
|
-
visitUnionCommand?: (ctx: UnionCommandContext) => Result;
|
|
411
|
-
/**
|
|
412
|
-
* Visit a parse tree produced by the `limitCommand`
|
|
413
|
-
* labeled alternative in `HamelinParser.command`.
|
|
414
|
-
* @param ctx the parse tree
|
|
415
|
-
* @return the visitor result
|
|
416
|
-
*/
|
|
417
|
-
visitLimitCommand?: (ctx: LimitCommandContext) => Result;
|
|
418
|
-
/**
|
|
419
|
-
* Visit a parse tree produced by the `parseCommand`
|
|
420
|
-
* labeled alternative in `HamelinParser.command`.
|
|
421
|
-
* @param ctx the parse tree
|
|
422
|
-
* @return the visitor result
|
|
423
|
-
*/
|
|
424
|
-
visitParseCommand?: (ctx: ParseCommandContext) => Result;
|
|
425
|
-
/**
|
|
426
|
-
* Visit a parse tree produced by the `withinCommand`
|
|
427
|
-
* labeled alternative in `HamelinParser.command`.
|
|
428
|
-
* @param ctx the parse tree
|
|
429
|
-
* @return the visitor result
|
|
430
|
-
*/
|
|
431
|
-
visitWithinCommand?: (ctx: WithinCommandContext) => Result;
|
|
432
|
-
/**
|
|
433
|
-
* Visit a parse tree produced by the `aggCommand`
|
|
434
|
-
* labeled alternative in `HamelinParser.command`.
|
|
435
|
-
* @param ctx the parse tree
|
|
436
|
-
* @return the visitor result
|
|
437
|
-
*/
|
|
438
|
-
visitAggCommand?: (ctx: AggCommandContext) => Result;
|
|
439
|
-
/**
|
|
440
|
-
* Visit a parse tree produced by the `sortCommand`
|
|
441
|
-
* labeled alternative in `HamelinParser.command`.
|
|
442
|
-
* @param ctx the parse tree
|
|
443
|
-
* @return the visitor result
|
|
444
|
-
*/
|
|
445
|
-
visitSortCommand?: (ctx: SortCommandContext) => Result;
|
|
446
|
-
/**
|
|
447
|
-
* Visit a parse tree produced by the `windowCommand`
|
|
448
|
-
* labeled alternative in `HamelinParser.command`.
|
|
449
|
-
* @param ctx the parse tree
|
|
450
|
-
* @return the visitor result
|
|
451
|
-
*/
|
|
452
|
-
visitWindowCommand?: (ctx: WindowCommandContext) => Result;
|
|
453
|
-
/**
|
|
454
|
-
* Visit a parse tree produced by the `appendCommand`
|
|
455
|
-
* labeled alternative in `HamelinParser.command`.
|
|
456
|
-
* @param ctx the parse tree
|
|
457
|
-
* @return the visitor result
|
|
458
|
-
*/
|
|
459
|
-
visitAppendCommand?: (ctx: AppendCommandContext) => Result;
|
|
460
|
-
/**
|
|
461
|
-
* Visit a parse tree produced by the `joinCommand`
|
|
462
|
-
* labeled alternative in `HamelinParser.command`.
|
|
463
|
-
* @param ctx the parse tree
|
|
464
|
-
* @return the visitor result
|
|
465
|
-
*/
|
|
466
|
-
visitJoinCommand?: (ctx: JoinCommandContext) => Result;
|
|
467
|
-
/**
|
|
468
|
-
* Visit a parse tree produced by the `explodeCommand`
|
|
469
|
-
* labeled alternative in `HamelinParser.command`.
|
|
470
|
-
* @param ctx the parse tree
|
|
471
|
-
* @return the visitor result
|
|
472
|
-
*/
|
|
473
|
-
visitExplodeCommand?: (ctx: ExplodeCommandContext) => Result;
|
|
474
|
-
/**
|
|
475
|
-
* Visit a parse tree produced by the `unnestCommand`
|
|
476
|
-
* labeled alternative in `HamelinParser.command`.
|
|
477
|
-
* @param ctx the parse tree
|
|
478
|
-
* @return the visitor result
|
|
479
|
-
*/
|
|
480
|
-
visitUnnestCommand?: (ctx: UnnestCommandContext) => Result;
|
|
481
|
-
/**
|
|
482
|
-
* Visit a parse tree produced by the `nestCommand`
|
|
483
|
-
* labeled alternative in `HamelinParser.command`.
|
|
484
|
-
* @param ctx the parse tree
|
|
485
|
-
* @return the visitor result
|
|
486
|
-
*/
|
|
487
|
-
visitNestCommand?: (ctx: NestCommandContext) => Result;
|
|
488
|
-
/**
|
|
489
|
-
* Visit a parse tree produced by the `matchCommand`
|
|
490
|
-
* labeled alternative in `HamelinParser.command`.
|
|
491
|
-
* @param ctx the parse tree
|
|
492
|
-
* @return the visitor result
|
|
493
|
-
*/
|
|
494
|
-
visitMatchCommand?: (ctx: MatchCommandContext) => Result;
|
|
495
|
-
/**
|
|
496
|
-
* Visit a parse tree produced by `HamelinParser.assignmentClause`.
|
|
497
|
-
* @param ctx the parse tree
|
|
498
|
-
* @return the visitor result
|
|
499
|
-
*/
|
|
500
|
-
visitAssignmentClause?: (ctx: AssignmentClauseContext) => Result;
|
|
501
|
-
/**
|
|
502
|
-
* Visit a parse tree produced by `HamelinParser.groupClause`.
|
|
503
|
-
* @param ctx the parse tree
|
|
504
|
-
* @return the visitor result
|
|
505
|
-
*/
|
|
506
|
-
visitGroupClause?: (ctx: GroupClauseContext) => Result;
|
|
507
|
-
/**
|
|
508
|
-
* Visit a parse tree produced by `HamelinParser.assignment`.
|
|
509
|
-
* @param ctx the parse tree
|
|
510
|
-
* @return the visitor result
|
|
511
|
-
*/
|
|
512
|
-
visitAssignment?: (ctx: AssignmentContext) => Result;
|
|
513
|
-
/**
|
|
514
|
-
* Visit a parse tree produced by `HamelinParser.matchDefine`.
|
|
515
|
-
* @param ctx the parse tree
|
|
516
|
-
* @return the visitor result
|
|
517
|
-
*/
|
|
518
|
-
visitMatchDefine?: (ctx: MatchDefineContext) => Result;
|
|
519
|
-
/**
|
|
520
|
-
* Visit a parse tree produced by `HamelinParser.selection`.
|
|
521
|
-
* @param ctx the parse tree
|
|
522
|
-
* @return the visitor result
|
|
523
|
-
*/
|
|
524
|
-
visitSelection?: (ctx: SelectionContext) => Result;
|
|
525
|
-
/**
|
|
526
|
-
* Visit a parse tree produced by `HamelinParser.sortExpression`.
|
|
527
|
-
* @param ctx the parse tree
|
|
528
|
-
* @return the visitor result
|
|
529
|
-
*/
|
|
530
|
-
visitSortExpression?: (ctx: SortExpressionContext) => Result;
|
|
531
|
-
/**
|
|
532
|
-
* Visit a parse tree produced by `HamelinParser.tableAlias`.
|
|
533
|
-
* @param ctx the parse tree
|
|
534
|
-
* @return the visitor result
|
|
535
|
-
*/
|
|
536
|
-
visitTableAlias?: (ctx: TableAliasContext) => Result;
|
|
537
|
-
/**
|
|
538
|
-
* Visit a parse tree produced by `HamelinParser.fromClause`.
|
|
539
|
-
* @param ctx the parse tree
|
|
540
|
-
* @return the visitor result
|
|
541
|
-
*/
|
|
542
|
-
visitFromClause?: (ctx: FromClauseContext) => Result;
|
|
543
|
-
/**
|
|
544
|
-
* Visit a parse tree produced by the `structLiteral`
|
|
545
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
546
|
-
* @param ctx the parse tree
|
|
547
|
-
* @return the visitor result
|
|
548
|
-
*/
|
|
549
|
-
visitStructLiteral?: (ctx: StructLiteralContext) => Result;
|
|
550
|
-
/**
|
|
551
|
-
* Visit a parse tree produced by the `columnReferenceAlt`
|
|
552
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
553
|
-
* @param ctx the parse tree
|
|
554
|
-
* @return the visitor result
|
|
555
|
-
*/
|
|
556
|
-
visitColumnReferenceAlt?: (ctx: ColumnReferenceAltContext) => Result;
|
|
557
|
-
/**
|
|
558
|
-
* Visit a parse tree produced by the `deref`
|
|
559
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
560
|
-
* @param ctx the parse tree
|
|
561
|
-
* @return the visitor result
|
|
562
|
-
*/
|
|
563
|
-
visitDeref?: (ctx: DerefContext) => Result;
|
|
564
|
-
/**
|
|
565
|
-
* Visit a parse tree produced by the `nullLiteral`
|
|
566
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
567
|
-
* @param ctx the parse tree
|
|
568
|
-
* @return the visitor result
|
|
569
|
-
*/
|
|
570
|
-
visitNullLiteral?: (ctx: NullLiteralContext) => Result;
|
|
571
|
-
/**
|
|
572
|
-
* Visit a parse tree produced by the `arrayLiteral`
|
|
573
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
574
|
-
* @param ctx the parse tree
|
|
575
|
-
* @return the visitor result
|
|
576
|
-
*/
|
|
577
|
-
visitArrayLiteral?: (ctx: ArrayLiteralContext) => Result;
|
|
578
|
-
/**
|
|
579
|
-
* Visit a parse tree produced by the `pairLiteral`
|
|
580
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
581
|
-
* @param ctx the parse tree
|
|
582
|
-
* @return the visitor result
|
|
583
|
-
*/
|
|
584
|
-
visitPairLiteral?: (ctx: PairLiteralContext) => Result;
|
|
585
|
-
/**
|
|
586
|
-
* Visit a parse tree produced by the `tsTrunc`
|
|
587
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
588
|
-
* @param ctx the parse tree
|
|
589
|
-
* @return the visitor result
|
|
590
|
-
*/
|
|
591
|
-
visitTsTrunc?: (ctx: TsTruncContext) => Result;
|
|
592
|
-
/**
|
|
593
|
-
* Visit a parse tree produced by the `rowsLiteral`
|
|
594
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
595
|
-
* @param ctx the parse tree
|
|
596
|
-
* @return the visitor result
|
|
597
|
-
*/
|
|
598
|
-
visitRowsLiteral?: (ctx: RowsLiteralContext) => Result;
|
|
599
|
-
/**
|
|
600
|
-
* Visit a parse tree produced by the `tsTruncTimestampLiteral`
|
|
601
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
602
|
-
* @param ctx the parse tree
|
|
603
|
-
* @return the visitor result
|
|
604
|
-
*/
|
|
605
|
-
visitTsTruncTimestampLiteral?: (ctx: TsTruncTimestampLiteralContext) => Result;
|
|
606
|
-
/**
|
|
607
|
-
* Visit a parse tree produced by the `unaryPrefixOperator`
|
|
608
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
609
|
-
* @param ctx the parse tree
|
|
610
|
-
* @return the visitor result
|
|
611
|
-
*/
|
|
612
|
-
visitUnaryPrefixOperator?: (ctx: UnaryPrefixOperatorContext) => Result;
|
|
613
|
-
/**
|
|
614
|
-
* Visit a parse tree produced by the `binaryLiteral`
|
|
615
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
616
|
-
* @param ctx the parse tree
|
|
617
|
-
* @return the visitor result
|
|
618
|
-
*/
|
|
619
|
-
visitBinaryLiteral?: (ctx: BinaryLiteralContext) => Result;
|
|
620
|
-
/**
|
|
621
|
-
* Visit a parse tree produced by the `indexAccess`
|
|
622
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
623
|
-
* @param ctx the parse tree
|
|
624
|
-
* @return the visitor result
|
|
625
|
-
*/
|
|
626
|
-
visitIndexAccess?: (ctx: IndexAccessContext) => Result;
|
|
627
|
-
/**
|
|
628
|
-
* Visit a parse tree produced by the `cast`
|
|
629
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
630
|
-
* @param ctx the parse tree
|
|
631
|
-
* @return the visitor result
|
|
632
|
-
*/
|
|
633
|
-
visitCast?: (ctx: CastContext) => Result;
|
|
634
|
-
/**
|
|
635
|
-
* Visit a parse tree produced by the `unaryPostfixOperator`
|
|
636
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
637
|
-
* @param ctx the parse tree
|
|
638
|
-
* @return the visitor result
|
|
639
|
-
*/
|
|
640
|
-
visitUnaryPostfixOperator?: (ctx: UnaryPostfixOperatorContext) => Result;
|
|
641
|
-
/**
|
|
642
|
-
* Visit a parse tree produced by the `tupleLiteral`
|
|
643
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
644
|
-
* @param ctx the parse tree
|
|
645
|
-
* @return the visitor result
|
|
646
|
-
*/
|
|
647
|
-
visitTupleLiteral?: (ctx: TupleLiteralContext) => Result;
|
|
648
|
-
/**
|
|
649
|
-
* Visit a parse tree produced by the `parenthesizedExpression`
|
|
650
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
651
|
-
* @param ctx the parse tree
|
|
652
|
-
* @return the visitor result
|
|
653
|
-
*/
|
|
654
|
-
visitParenthesizedExpression?: (ctx: ParenthesizedExpressionContext) => Result;
|
|
655
|
-
/**
|
|
656
|
-
* Visit a parse tree produced by the `stringLiteral`
|
|
657
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
658
|
-
* @param ctx the parse tree
|
|
659
|
-
* @return the visitor result
|
|
660
|
-
*/
|
|
661
|
-
visitStringLiteral?: (ctx: StringLiteralContext) => Result;
|
|
662
|
-
/**
|
|
663
|
-
* Visit a parse tree produced by the `binaryOperator`
|
|
664
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
665
|
-
* @param ctx the parse tree
|
|
666
|
-
* @return the visitor result
|
|
667
|
-
*/
|
|
668
|
-
visitBinaryOperator?: (ctx: BinaryOperatorContext) => Result;
|
|
669
|
-
/**
|
|
670
|
-
* Visit a parse tree produced by the `functionCall`
|
|
671
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
672
|
-
* @param ctx the parse tree
|
|
673
|
-
* @return the visitor result
|
|
674
|
-
*/
|
|
675
|
-
visitFunctionCall?: (ctx: FunctionCallContext) => Result;
|
|
676
|
-
/**
|
|
677
|
-
* Visit a parse tree produced by the `unboundRangeLiteral`
|
|
678
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
679
|
-
* @param ctx the parse tree
|
|
680
|
-
* @return the visitor result
|
|
681
|
-
*/
|
|
682
|
-
visitUnboundRangeLiteral?: (ctx: UnboundRangeLiteralContext) => Result;
|
|
683
|
-
/**
|
|
684
|
-
* Visit a parse tree produced by the `numericLiteral`
|
|
685
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
686
|
-
* @param ctx the parse tree
|
|
687
|
-
* @return the visitor result
|
|
688
|
-
*/
|
|
689
|
-
visitNumericLiteral?: (ctx: NumericLiteralContext) => Result;
|
|
690
|
-
/**
|
|
691
|
-
* Visit a parse tree produced by the `booleanLiteral`
|
|
692
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
693
|
-
* @param ctx the parse tree
|
|
694
|
-
* @return the visitor result
|
|
695
|
-
*/
|
|
696
|
-
visitBooleanLiteral?: (ctx: BooleanLiteralContext) => Result;
|
|
697
|
-
/**
|
|
698
|
-
* Visit a parse tree produced by the `intervalLiteral`
|
|
699
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
700
|
-
* @param ctx the parse tree
|
|
701
|
-
* @return the visitor result
|
|
702
|
-
*/
|
|
703
|
-
visitIntervalLiteral?: (ctx: IntervalLiteralContext) => Result;
|
|
704
|
-
/**
|
|
705
|
-
* Visit a parse tree produced by the `parameterizedType`
|
|
706
|
-
* labeled alternative in `HamelinParser.hamelintype`.
|
|
707
|
-
* @param ctx the parse tree
|
|
708
|
-
* @return the visitor result
|
|
709
|
-
*/
|
|
710
|
-
visitParameterizedType?: (ctx: ParameterizedTypeContext) => Result;
|
|
711
|
-
/**
|
|
712
|
-
* Visit a parse tree produced by the `typeWithArguments`
|
|
713
|
-
* labeled alternative in `HamelinParser.hamelintype`.
|
|
714
|
-
* @param ctx the parse tree
|
|
715
|
-
* @return the visitor result
|
|
716
|
-
*/
|
|
717
|
-
visitTypeWithArguments?: (ctx: TypeWithArgumentsContext) => Result;
|
|
718
|
-
/**
|
|
719
|
-
* Visit a parse tree produced by the `structType`
|
|
720
|
-
* labeled alternative in `HamelinParser.hamelintype`.
|
|
721
|
-
* @param ctx the parse tree
|
|
722
|
-
* @return the visitor result
|
|
723
|
-
*/
|
|
724
|
-
visitStructType?: (ctx: StructTypeContext) => Result;
|
|
725
|
-
/**
|
|
726
|
-
* Visit a parse tree produced by the `tupleType`
|
|
727
|
-
* labeled alternative in `HamelinParser.hamelintype`.
|
|
728
|
-
* @param ctx the parse tree
|
|
729
|
-
* @return the visitor result
|
|
730
|
-
*/
|
|
731
|
-
visitTupleType?: (ctx: TupleTypeContext) => Result;
|
|
732
|
-
/**
|
|
733
|
-
* Visit a parse tree produced by the `simpleType`
|
|
734
|
-
* labeled alternative in `HamelinParser.hamelintype`.
|
|
735
|
-
* @param ctx the parse tree
|
|
736
|
-
* @return the visitor result
|
|
737
|
-
*/
|
|
738
|
-
visitSimpleType?: (ctx: SimpleTypeContext) => Result;
|
|
739
|
-
/**
|
|
740
|
-
* Visit a parse tree produced by the `quantified`
|
|
741
|
-
* labeled alternative in `HamelinParser.pattern`.
|
|
742
|
-
* @param ctx the parse tree
|
|
743
|
-
* @return the visitor result
|
|
744
|
-
*/
|
|
745
|
-
visitQuantified?: (ctx: QuantifiedContext) => Result;
|
|
746
|
-
/**
|
|
747
|
-
* Visit a parse tree produced by the `nested`
|
|
748
|
-
* labeled alternative in `HamelinParser.pattern`.
|
|
749
|
-
* @param ctx the parse tree
|
|
750
|
-
* @return the visitor result
|
|
751
|
-
*/
|
|
752
|
-
visitNested?: (ctx: NestedContext) => Result;
|
|
753
|
-
/**
|
|
754
|
-
* Visit a parse tree produced by the `AnyNumber`
|
|
755
|
-
* labeled alternative in `HamelinParser.quantifier`.
|
|
756
|
-
* @param ctx the parse tree
|
|
757
|
-
* @return the visitor result
|
|
758
|
-
*/
|
|
759
|
-
visitAnyNumber?: (ctx: AnyNumberContext) => Result;
|
|
760
|
-
/**
|
|
761
|
-
* Visit a parse tree produced by the `AtLeastOne`
|
|
762
|
-
* labeled alternative in `HamelinParser.quantifier`.
|
|
763
|
-
* @param ctx the parse tree
|
|
764
|
-
* @return the visitor result
|
|
765
|
-
*/
|
|
766
|
-
visitAtLeastOne?: (ctx: AtLeastOneContext) => Result;
|
|
767
|
-
/**
|
|
768
|
-
* Visit a parse tree produced by the `ZeroOrOne`
|
|
769
|
-
* labeled alternative in `HamelinParser.quantifier`.
|
|
770
|
-
* @param ctx the parse tree
|
|
771
|
-
* @return the visitor result
|
|
772
|
-
*/
|
|
773
|
-
visitZeroOrOne?: (ctx: ZeroOrOneContext) => Result;
|
|
774
|
-
/**
|
|
775
|
-
* Visit a parse tree produced by the `Exactly`
|
|
776
|
-
* labeled alternative in `HamelinParser.quantifier`.
|
|
777
|
-
* @param ctx the parse tree
|
|
778
|
-
* @return the visitor result
|
|
779
|
-
*/
|
|
780
|
-
visitExactly?: (ctx: ExactlyContext) => Result;
|
|
781
|
-
/**
|
|
782
|
-
* Visit a parse tree produced by `HamelinParser.columnReference`.
|
|
783
|
-
* @param ctx the parse tree
|
|
784
|
-
* @return the visitor result
|
|
785
|
-
*/
|
|
786
|
-
visitColumnReference?: (ctx: ColumnReferenceContext) => Result;
|
|
787
|
-
/**
|
|
788
|
-
* Visit a parse tree produced by `HamelinParser.tableReference`.
|
|
789
|
-
* @param ctx the parse tree
|
|
790
|
-
* @return the visitor result
|
|
791
|
-
*/
|
|
792
|
-
visitTableReference?: (ctx: TableReferenceContext) => Result;
|
|
793
|
-
/**
|
|
794
|
-
* Visit a parse tree produced by `HamelinParser.identifier`.
|
|
795
|
-
* @param ctx the parse tree
|
|
796
|
-
* @return the visitor result
|
|
797
|
-
*/
|
|
798
|
-
visitIdentifier?: (ctx: IdentifierContext) => Result;
|
|
799
|
-
/**
|
|
800
|
-
* Visit a parse tree produced by the `unquotedIdentifier`
|
|
801
|
-
* labeled alternative in `HamelinParser.simpleIdentifier`.
|
|
802
|
-
* @param ctx the parse tree
|
|
803
|
-
* @return the visitor result
|
|
804
|
-
*/
|
|
805
|
-
visitUnquotedIdentifier?: (ctx: UnquotedIdentifierContext) => Result;
|
|
806
|
-
/**
|
|
807
|
-
* Visit a parse tree produced by the `backQuotedIdentifier`
|
|
808
|
-
* labeled alternative in `HamelinParser.simpleIdentifier`.
|
|
809
|
-
* @param ctx the parse tree
|
|
810
|
-
* @return the visitor result
|
|
811
|
-
*/
|
|
812
|
-
visitBackQuotedIdentifier?: (ctx: BackQuotedIdentifierContext) => Result;
|
|
813
|
-
/**
|
|
814
|
-
* Visit a parse tree produced by the `basicSingleQuotedStringLiteral`
|
|
815
|
-
* labeled alternative in `HamelinParser.string`.
|
|
816
|
-
* @param ctx the parse tree
|
|
817
|
-
* @return the visitor result
|
|
818
|
-
*/
|
|
819
|
-
visitBasicSingleQuotedStringLiteral?: (ctx: BasicSingleQuotedStringLiteralContext) => Result;
|
|
820
|
-
/**
|
|
821
|
-
* Visit a parse tree produced by the `basicDoubleQuotedStringLiteral`
|
|
822
|
-
* labeled alternative in `HamelinParser.string`.
|
|
823
|
-
* @param ctx the parse tree
|
|
824
|
-
* @return the visitor result
|
|
825
|
-
*/
|
|
826
|
-
visitBasicDoubleQuotedStringLiteral?: (ctx: BasicDoubleQuotedStringLiteralContext) => Result;
|
|
827
|
-
/**
|
|
828
|
-
* Visit a parse tree produced by the `unicodeSingleQuotedStringLiteral`
|
|
829
|
-
* labeled alternative in `HamelinParser.string`.
|
|
830
|
-
* @param ctx the parse tree
|
|
831
|
-
* @return the visitor result
|
|
832
|
-
*/
|
|
833
|
-
visitUnicodeSingleQuotedStringLiteral?: (ctx: UnicodeSingleQuotedStringLiteralContext) => Result;
|
|
834
|
-
/**
|
|
835
|
-
* Visit a parse tree produced by the `unicodeDoubleQuotedStringLiteral`
|
|
836
|
-
* labeled alternative in `HamelinParser.string`.
|
|
837
|
-
* @param ctx the parse tree
|
|
838
|
-
* @return the visitor result
|
|
839
|
-
*/
|
|
840
|
-
visitUnicodeDoubleQuotedStringLiteral?: (ctx: UnicodeDoubleQuotedStringLiteralContext) => Result;
|
|
841
|
-
/**
|
|
842
|
-
* Visit a parse tree produced by the `decimalLiteral`
|
|
843
|
-
* labeled alternative in `HamelinParser.number`.
|
|
844
|
-
* @param ctx the parse tree
|
|
845
|
-
* @return the visitor result
|
|
846
|
-
*/
|
|
847
|
-
visitDecimalLiteral?: (ctx: DecimalLiteralContext) => Result;
|
|
848
|
-
/**
|
|
849
|
-
* Visit a parse tree produced by the `scientificLiteral`
|
|
850
|
-
* labeled alternative in `HamelinParser.number`.
|
|
851
|
-
* @param ctx the parse tree
|
|
852
|
-
* @return the visitor result
|
|
853
|
-
*/
|
|
854
|
-
visitScientificLiteral?: (ctx: ScientificLiteralContext) => Result;
|
|
855
|
-
/**
|
|
856
|
-
* Visit a parse tree produced by the `integerLiteral`
|
|
857
|
-
* labeled alternative in `HamelinParser.number`.
|
|
858
|
-
* @param ctx the parse tree
|
|
859
|
-
* @return the visitor result
|
|
860
|
-
*/
|
|
861
|
-
visitIntegerLiteral?: (ctx: IntegerLiteralContext) => Result;
|
|
862
|
-
/**
|
|
863
|
-
* Visit a parse tree produced by `HamelinParser.positionalArgument`.
|
|
864
|
-
* @param ctx the parse tree
|
|
865
|
-
* @return the visitor result
|
|
866
|
-
*/
|
|
867
|
-
visitPositionalArgument?: (ctx: PositionalArgumentContext) => Result;
|
|
868
|
-
/**
|
|
869
|
-
* Visit a parse tree produced by `HamelinParser.namedArgument`.
|
|
870
|
-
* @param ctx the parse tree
|
|
871
|
-
* @return the visitor result
|
|
872
|
-
*/
|
|
873
|
-
visitNamedArgument?: (ctx: NamedArgumentContext) => Result;
|
|
874
|
-
}
|
|
875
|
-
|
|
876
|
-
declare class HamelinParser extends antlr.Parser {
|
|
877
|
-
static readonly LET_COMMAND = 1;
|
|
878
|
-
static readonly WHERE_COMMAND = 2;
|
|
879
|
-
static readonly SELECT_COMMAND = 3;
|
|
880
|
-
static readonly DROP_COMMAND = 4;
|
|
881
|
-
static readonly FROM_COMMAND = 5;
|
|
882
|
-
static readonly UNION_COMMAND = 6;
|
|
883
|
-
static readonly LIMIT_COMMAND = 7;
|
|
884
|
-
static readonly PARSE_COMMAND = 8;
|
|
885
|
-
static readonly WITHIN_COMMAND = 9;
|
|
886
|
-
static readonly AGG_COMMAND = 10;
|
|
887
|
-
static readonly WINDOW_COMMAND = 11;
|
|
888
|
-
static readonly APPEND_COMMAND = 12;
|
|
889
|
-
static readonly JOIN_COMMAND = 13;
|
|
890
|
-
static readonly LOOKUP_COMMAND = 14;
|
|
891
|
-
static readonly EXPLODE_COMMAND = 15;
|
|
892
|
-
static readonly UNNEST_COMMAND = 16;
|
|
893
|
-
static readonly NEST_COMMAND = 17;
|
|
894
|
-
static readonly ROWS_COMMAND = 18;
|
|
895
|
-
static readonly MATCH_COMMAND = 19;
|
|
896
|
-
static readonly AS = 20;
|
|
897
|
-
static readonly NODROP = 21;
|
|
898
|
-
static readonly PLUS = 22;
|
|
899
|
-
static readonly MINUS = 23;
|
|
900
|
-
static readonly ASTERISK = 24;
|
|
901
|
-
static readonly SLASH = 25;
|
|
902
|
-
static readonly PERCENT = 26;
|
|
903
|
-
static readonly LCURLY = 27;
|
|
904
|
-
static readonly RCURLY = 28;
|
|
905
|
-
static readonly COLON = 29;
|
|
906
|
-
static readonly QUESTIONMARK = 30;
|
|
907
|
-
static readonly EQ = 31;
|
|
908
|
-
static readonly NEQ = 32;
|
|
909
|
-
static readonly LT = 33;
|
|
910
|
-
static readonly LTE = 34;
|
|
911
|
-
static readonly GT = 35;
|
|
912
|
-
static readonly GTE = 36;
|
|
913
|
-
static readonly RANGE = 37;
|
|
914
|
-
static readonly ASSIGN = 38;
|
|
915
|
-
static readonly AND = 39;
|
|
916
|
-
static readonly FALSE = 40;
|
|
917
|
-
static readonly IS = 41;
|
|
918
|
-
static readonly NOT = 42;
|
|
919
|
-
static readonly ISNOT = 43;
|
|
920
|
-
static readonly IN = 44;
|
|
921
|
-
static readonly NOTIN = 45;
|
|
922
|
-
static readonly NULL = 46;
|
|
923
|
-
static readonly OR = 47;
|
|
924
|
-
static readonly TRUE = 48;
|
|
925
|
-
static readonly UESCAPE = 49;
|
|
926
|
-
static readonly WITH = 50;
|
|
927
|
-
static readonly BY = 51;
|
|
928
|
-
static readonly SORT = 52;
|
|
929
|
-
static readonly ASC = 53;
|
|
930
|
-
static readonly DESC = 54;
|
|
931
|
-
static readonly DISTINCT_BY = 55;
|
|
932
|
-
static readonly ON = 56;
|
|
933
|
-
static readonly WHEN = 57;
|
|
934
|
-
static readonly COMMA = 58;
|
|
935
|
-
static readonly PIPE = 59;
|
|
936
|
-
static readonly LPARENS = 60;
|
|
937
|
-
static readonly RPARENS = 61;
|
|
938
|
-
static readonly DOT = 62;
|
|
939
|
-
static readonly LBRACKET = 63;
|
|
940
|
-
static readonly RBRACKET = 64;
|
|
941
|
-
static readonly SINGLE_QUOTED_STRING = 65;
|
|
942
|
-
static readonly DOUBLE_QUOTED_STRING = 66;
|
|
943
|
-
static readonly SINGLE_QUOTED_UNICODE_STRING = 67;
|
|
944
|
-
static readonly DOUBLE_QUOTED_UNICODE_STRING = 68;
|
|
945
|
-
static readonly BINARY_LITERAL = 69;
|
|
946
|
-
static readonly NANOSECOND_INTERVAL = 70;
|
|
947
|
-
static readonly MICROSECOND_INTERVAL = 71;
|
|
948
|
-
static readonly MILLISECOND_INTERVAL = 72;
|
|
949
|
-
static readonly SECOND_INTERVAL = 73;
|
|
950
|
-
static readonly MINUTE_INTERVAL = 74;
|
|
951
|
-
static readonly HOUR_INTERVAL = 75;
|
|
952
|
-
static readonly DAY_INTERVAL = 76;
|
|
953
|
-
static readonly WEEK_INTERVAL = 77;
|
|
954
|
-
static readonly MONTH_INTERVAL = 78;
|
|
955
|
-
static readonly QUARTER_INTERVAL = 79;
|
|
956
|
-
static readonly YEAR_INTERVAL = 80;
|
|
957
|
-
static readonly ROWS_LITERAL = 81;
|
|
958
|
-
static readonly SECOND_TRUNC = 82;
|
|
959
|
-
static readonly MINUTE_TRUNC = 83;
|
|
960
|
-
static readonly HOUR_TRUNC = 84;
|
|
961
|
-
static readonly DAY_TRUNC = 85;
|
|
962
|
-
static readonly WEEK_TRUNC = 86;
|
|
963
|
-
static readonly MONTH_TRUNC = 87;
|
|
964
|
-
static readonly QUARTER_TRUNC = 88;
|
|
965
|
-
static readonly YEAR_TRUNC = 89;
|
|
966
|
-
static readonly INTEGER_VALUE = 90;
|
|
967
|
-
static readonly DECIMAL_VALUE = 91;
|
|
968
|
-
static readonly DOUBLE_VALUE = 92;
|
|
969
|
-
static readonly IDENTIFIER = 93;
|
|
970
|
-
static readonly BACKQUOTED_IDENTIFIER = 94;
|
|
971
|
-
static readonly SIMPLE_COMMENT = 95;
|
|
972
|
-
static readonly BRACKETED_COMMENT = 96;
|
|
973
|
-
static readonly WS = 97;
|
|
974
|
-
static readonly RULE_identifierEOF = 0;
|
|
975
|
-
static readonly RULE_queryEOF = 1;
|
|
976
|
-
static readonly RULE_commandEOF = 2;
|
|
977
|
-
static readonly RULE_expressionEOF = 3;
|
|
978
|
-
static readonly RULE_pipelineEOF = 4;
|
|
979
|
-
static readonly RULE_simpleIdentifierEOF = 5;
|
|
980
|
-
static readonly RULE_query = 6;
|
|
981
|
-
static readonly RULE_pipeline = 7;
|
|
982
|
-
static readonly RULE_command = 8;
|
|
983
|
-
static readonly RULE_assignmentClause = 9;
|
|
984
|
-
static readonly RULE_groupClause = 10;
|
|
985
|
-
static readonly RULE_assignment = 11;
|
|
986
|
-
static readonly RULE_matchDefine = 12;
|
|
987
|
-
static readonly RULE_selection = 13;
|
|
988
|
-
static readonly RULE_sortExpression = 14;
|
|
989
|
-
static readonly RULE_tableAlias = 15;
|
|
990
|
-
static readonly RULE_fromClause = 16;
|
|
991
|
-
static readonly RULE_expression = 17;
|
|
992
|
-
static readonly RULE_hamelintype = 18;
|
|
993
|
-
static readonly RULE_pattern = 19;
|
|
994
|
-
static readonly RULE_quantifier = 20;
|
|
995
|
-
static readonly RULE_columnReference = 21;
|
|
996
|
-
static readonly RULE_tableReference = 22;
|
|
997
|
-
static readonly RULE_identifier = 23;
|
|
998
|
-
static readonly RULE_simpleIdentifier = 24;
|
|
999
|
-
static readonly RULE_string = 25;
|
|
1000
|
-
static readonly RULE_number = 26;
|
|
1001
|
-
static readonly RULE_positionalArgument = 27;
|
|
1002
|
-
static readonly RULE_namedArgument = 28;
|
|
1003
|
-
static readonly literalNames: (string | null)[];
|
|
1004
|
-
static readonly symbolicNames: (string | null)[];
|
|
1005
|
-
static readonly ruleNames: string[];
|
|
1006
|
-
get grammarFileName(): string;
|
|
1007
|
-
get literalNames(): (string | null)[];
|
|
1008
|
-
get symbolicNames(): (string | null)[];
|
|
1009
|
-
get ruleNames(): string[];
|
|
1010
|
-
get serializedATN(): number[];
|
|
1011
|
-
protected createFailedPredicateException(predicate?: string, message?: string): antlr.FailedPredicateException;
|
|
1012
|
-
constructor(input: antlr.TokenStream);
|
|
1013
|
-
identifierEOF(): IdentifierEOFContext;
|
|
1014
|
-
queryEOF(): QueryEOFContext;
|
|
1015
|
-
commandEOF(): CommandEOFContext;
|
|
1016
|
-
expressionEOF(): ExpressionEOFContext;
|
|
1017
|
-
pipelineEOF(): PipelineEOFContext;
|
|
1018
|
-
simpleIdentifierEOF(): SimpleIdentifierEOFContext;
|
|
1019
|
-
query(): QueryContext;
|
|
1020
|
-
pipeline(): PipelineContext;
|
|
1021
|
-
command(): CommandContext;
|
|
1022
|
-
assignmentClause(): AssignmentClauseContext;
|
|
1023
|
-
groupClause(): GroupClauseContext;
|
|
1024
|
-
assignment(): AssignmentContext;
|
|
1025
|
-
matchDefine(): MatchDefineContext;
|
|
1026
|
-
selection(): SelectionContext;
|
|
1027
|
-
sortExpression(): SortExpressionContext;
|
|
1028
|
-
tableAlias(): TableAliasContext;
|
|
1029
|
-
fromClause(): FromClauseContext;
|
|
1030
|
-
expression(): ExpressionContext;
|
|
1031
|
-
expression(_p: number): ExpressionContext;
|
|
1032
|
-
hamelintype(): HamelintypeContext;
|
|
1033
|
-
pattern(): PatternContext;
|
|
1034
|
-
quantifier(): QuantifierContext;
|
|
1035
|
-
columnReference(): ColumnReferenceContext;
|
|
1036
|
-
tableReference(): TableReferenceContext;
|
|
1037
|
-
identifier(): IdentifierContext;
|
|
1038
|
-
simpleIdentifier(): SimpleIdentifierContext;
|
|
1039
|
-
string_(): StringContext;
|
|
1040
|
-
number_(): NumberContext;
|
|
1041
|
-
positionalArgument(): PositionalArgumentContext;
|
|
1042
|
-
namedArgument(): NamedArgumentContext;
|
|
1043
|
-
sempred(localContext: antlr.ParserRuleContext | null, ruleIndex: number, predIndex: number): boolean;
|
|
1044
|
-
private expression_sempred;
|
|
1045
|
-
static readonly _serializedATN: number[];
|
|
1046
|
-
private static __ATN;
|
|
1047
|
-
static get _ATN(): antlr.ATN;
|
|
1048
|
-
private static readonly vocabulary;
|
|
1049
|
-
get vocabulary(): antlr.Vocabulary;
|
|
1050
|
-
private static readonly decisionsToDFA;
|
|
1051
|
-
}
|
|
1052
|
-
declare class IdentifierEOFContext extends antlr.ParserRuleContext {
|
|
1053
|
-
constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
|
|
1054
|
-
identifier(): IdentifierContext;
|
|
1055
|
-
EOF(): antlr.TerminalNode;
|
|
1056
|
-
get ruleIndex(): number;
|
|
1057
|
-
enterRule(listener: HamelinListener): void;
|
|
1058
|
-
exitRule(listener: HamelinListener): void;
|
|
1059
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1060
|
-
}
|
|
1061
|
-
declare class QueryEOFContext extends antlr.ParserRuleContext {
|
|
1062
|
-
constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
|
|
1063
|
-
query(): QueryContext;
|
|
1064
|
-
EOF(): antlr.TerminalNode;
|
|
1065
|
-
get ruleIndex(): number;
|
|
1066
|
-
enterRule(listener: HamelinListener): void;
|
|
1067
|
-
exitRule(listener: HamelinListener): void;
|
|
1068
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1069
|
-
}
|
|
1070
|
-
declare class CommandEOFContext extends antlr.ParserRuleContext {
|
|
1071
|
-
constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
|
|
1072
|
-
command(): CommandContext;
|
|
1073
|
-
EOF(): antlr.TerminalNode;
|
|
1074
|
-
get ruleIndex(): number;
|
|
1075
|
-
enterRule(listener: HamelinListener): void;
|
|
1076
|
-
exitRule(listener: HamelinListener): void;
|
|
1077
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1078
|
-
}
|
|
1079
|
-
declare class ExpressionEOFContext extends antlr.ParserRuleContext {
|
|
1080
|
-
constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
|
|
1081
|
-
expression(): ExpressionContext;
|
|
1082
|
-
EOF(): antlr.TerminalNode;
|
|
1083
|
-
get ruleIndex(): number;
|
|
1084
|
-
enterRule(listener: HamelinListener): void;
|
|
1085
|
-
exitRule(listener: HamelinListener): void;
|
|
1086
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1087
|
-
}
|
|
1088
|
-
declare class PipelineEOFContext extends antlr.ParserRuleContext {
|
|
1089
|
-
constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
|
|
1090
|
-
pipeline(): PipelineContext;
|
|
1091
|
-
EOF(): antlr.TerminalNode;
|
|
1092
|
-
get ruleIndex(): number;
|
|
1093
|
-
enterRule(listener: HamelinListener): void;
|
|
1094
|
-
exitRule(listener: HamelinListener): void;
|
|
1095
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1096
|
-
}
|
|
1097
|
-
declare class SimpleIdentifierEOFContext extends antlr.ParserRuleContext {
|
|
1098
|
-
constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
|
|
1099
|
-
simpleIdentifier(): SimpleIdentifierContext;
|
|
1100
|
-
EOF(): antlr.TerminalNode;
|
|
1101
|
-
get ruleIndex(): number;
|
|
1102
|
-
enterRule(listener: HamelinListener): void;
|
|
1103
|
-
exitRule(listener: HamelinListener): void;
|
|
1104
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1105
|
-
}
|
|
1106
|
-
declare class QueryContext extends antlr.ParserRuleContext {
|
|
1107
|
-
constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
|
|
1108
|
-
get ruleIndex(): number;
|
|
1109
|
-
copyFrom(ctx: QueryContext): void;
|
|
1110
|
-
}
|
|
1111
|
-
declare class WithQueryContext extends QueryContext {
|
|
1112
|
-
constructor(ctx: QueryContext);
|
|
1113
|
-
pipeline(): PipelineContext[];
|
|
1114
|
-
pipeline(i: number): PipelineContext | null;
|
|
1115
|
-
WITH(): antlr.TerminalNode[];
|
|
1116
|
-
WITH(i: number): antlr.TerminalNode | null;
|
|
1117
|
-
simpleIdentifier(): SimpleIdentifierContext[];
|
|
1118
|
-
simpleIdentifier(i: number): SimpleIdentifierContext | null;
|
|
1119
|
-
ASSIGN(): antlr.TerminalNode[];
|
|
1120
|
-
ASSIGN(i: number): antlr.TerminalNode | null;
|
|
1121
|
-
enterRule(listener: HamelinListener): void;
|
|
1122
|
-
exitRule(listener: HamelinListener): void;
|
|
1123
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1124
|
-
}
|
|
1125
|
-
declare class StandaloneQueryContext extends QueryContext {
|
|
1126
|
-
constructor(ctx: QueryContext);
|
|
1127
|
-
pipeline(): PipelineContext;
|
|
1128
|
-
enterRule(listener: HamelinListener): void;
|
|
1129
|
-
exitRule(listener: HamelinListener): void;
|
|
1130
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1131
|
-
}
|
|
1132
|
-
declare class ExpressionQueryContext extends QueryContext {
|
|
1133
|
-
constructor(ctx: QueryContext);
|
|
1134
|
-
expression(): ExpressionContext;
|
|
1135
|
-
enterRule(listener: HamelinListener): void;
|
|
1136
|
-
exitRule(listener: HamelinListener): void;
|
|
1137
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1138
|
-
}
|
|
1139
|
-
declare class PipelineContext extends antlr.ParserRuleContext {
|
|
1140
|
-
constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
|
|
1141
|
-
get ruleIndex(): number;
|
|
1142
|
-
copyFrom(ctx: PipelineContext): void;
|
|
1143
|
-
}
|
|
1144
|
-
declare class PipelineAltContext extends PipelineContext {
|
|
1145
|
-
constructor(ctx: PipelineContext);
|
|
1146
|
-
command(): CommandContext[];
|
|
1147
|
-
command(i: number): CommandContext | null;
|
|
1148
|
-
PIPE(): antlr.TerminalNode[];
|
|
1149
|
-
PIPE(i: number): antlr.TerminalNode | null;
|
|
1150
|
-
enterRule(listener: HamelinListener): void;
|
|
1151
|
-
exitRule(listener: HamelinListener): void;
|
|
1152
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1153
|
-
}
|
|
1154
|
-
declare class CommandContext extends antlr.ParserRuleContext {
|
|
1155
|
-
constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
|
|
1156
|
-
get ruleIndex(): number;
|
|
1157
|
-
copyFrom(ctx: CommandContext): void;
|
|
1158
|
-
}
|
|
1159
|
-
declare class WhereCommandContext extends CommandContext {
|
|
1160
|
-
constructor(ctx: CommandContext);
|
|
1161
|
-
WHERE_COMMAND(): antlr.TerminalNode;
|
|
1162
|
-
expression(): ExpressionContext;
|
|
1163
|
-
enterRule(listener: HamelinListener): void;
|
|
1164
|
-
exitRule(listener: HamelinListener): void;
|
|
1165
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1166
|
-
}
|
|
1167
|
-
declare class UnnestCommandContext extends CommandContext {
|
|
1168
|
-
constructor(ctx: CommandContext);
|
|
1169
|
-
expression(): ExpressionContext;
|
|
1170
|
-
UNNEST_COMMAND(): antlr.TerminalNode | null;
|
|
1171
|
-
ROWS_COMMAND(): antlr.TerminalNode | null;
|
|
1172
|
-
enterRule(listener: HamelinListener): void;
|
|
1173
|
-
exitRule(listener: HamelinListener): void;
|
|
1174
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1175
|
-
}
|
|
1176
|
-
declare class DropCommandContext extends CommandContext {
|
|
1177
|
-
constructor(ctx: CommandContext);
|
|
1178
|
-
DROP_COMMAND(): antlr.TerminalNode;
|
|
1179
|
-
selection(): SelectionContext[];
|
|
1180
|
-
selection(i: number): SelectionContext | null;
|
|
1181
|
-
COMMA(): antlr.TerminalNode[];
|
|
1182
|
-
COMMA(i: number): antlr.TerminalNode | null;
|
|
1183
|
-
enterRule(listener: HamelinListener): void;
|
|
1184
|
-
exitRule(listener: HamelinListener): void;
|
|
1185
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1186
|
-
}
|
|
1187
|
-
declare class MatchCommandContext extends CommandContext {
|
|
1188
|
-
constructor(ctx: CommandContext);
|
|
1189
|
-
MATCH_COMMAND(): antlr.TerminalNode;
|
|
1190
|
-
pattern(): PatternContext[];
|
|
1191
|
-
pattern(i: number): PatternContext | null;
|
|
1192
|
-
WHEN(): antlr.TerminalNode | null;
|
|
1193
|
-
matchDefine(): MatchDefineContext[];
|
|
1194
|
-
matchDefine(i: number): MatchDefineContext | null;
|
|
1195
|
-
COMMA(): antlr.TerminalNode[];
|
|
1196
|
-
COMMA(i: number): antlr.TerminalNode | null;
|
|
1197
|
-
BY(): antlr.TerminalNode[];
|
|
1198
|
-
BY(i: number): antlr.TerminalNode | null;
|
|
1199
|
-
groupClause(): GroupClauseContext[];
|
|
1200
|
-
groupClause(i: number): GroupClauseContext | null;
|
|
1201
|
-
SORT(): antlr.TerminalNode | null;
|
|
1202
|
-
sortExpression(): SortExpressionContext[];
|
|
1203
|
-
sortExpression(i: number): SortExpressionContext | null;
|
|
1204
|
-
enterRule(listener: HamelinListener): void;
|
|
1205
|
-
exitRule(listener: HamelinListener): void;
|
|
1206
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1207
|
-
}
|
|
1208
|
-
declare class SelectCommandContext extends CommandContext {
|
|
1209
|
-
constructor(ctx: CommandContext);
|
|
1210
|
-
SELECT_COMMAND(): antlr.TerminalNode;
|
|
1211
|
-
assignmentClause(): AssignmentClauseContext[];
|
|
1212
|
-
assignmentClause(i: number): AssignmentClauseContext | null;
|
|
1213
|
-
COMMA(): antlr.TerminalNode[];
|
|
1214
|
-
COMMA(i: number): antlr.TerminalNode | null;
|
|
1215
|
-
enterRule(listener: HamelinListener): void;
|
|
1216
|
-
exitRule(listener: HamelinListener): void;
|
|
1217
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1218
|
-
}
|
|
1219
|
-
declare class WindowCommandContext extends CommandContext {
|
|
1220
|
-
_within?: ExpressionContext;
|
|
1221
|
-
constructor(ctx: CommandContext);
|
|
1222
|
-
WINDOW_COMMAND(): antlr.TerminalNode;
|
|
1223
|
-
assignmentClause(): AssignmentClauseContext[];
|
|
1224
|
-
assignmentClause(i: number): AssignmentClauseContext | null;
|
|
1225
|
-
COMMA(): antlr.TerminalNode[];
|
|
1226
|
-
COMMA(i: number): antlr.TerminalNode | null;
|
|
1227
|
-
BY(): antlr.TerminalNode[];
|
|
1228
|
-
BY(i: number): antlr.TerminalNode | null;
|
|
1229
|
-
groupClause(): GroupClauseContext[];
|
|
1230
|
-
groupClause(i: number): GroupClauseContext | null;
|
|
1231
|
-
SORT(): antlr.TerminalNode | null;
|
|
1232
|
-
sortExpression(): SortExpressionContext[];
|
|
1233
|
-
sortExpression(i: number): SortExpressionContext | null;
|
|
1234
|
-
WITHIN_COMMAND(): antlr.TerminalNode | null;
|
|
1235
|
-
expression(): ExpressionContext | null;
|
|
1236
|
-
enterRule(listener: HamelinListener): void;
|
|
1237
|
-
exitRule(listener: HamelinListener): void;
|
|
1238
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1239
|
-
}
|
|
1240
|
-
declare class LimitCommandContext extends CommandContext {
|
|
1241
|
-
constructor(ctx: CommandContext);
|
|
1242
|
-
LIMIT_COMMAND(): antlr.TerminalNode;
|
|
1243
|
-
expression(): ExpressionContext;
|
|
1244
|
-
enterRule(listener: HamelinListener): void;
|
|
1245
|
-
exitRule(listener: HamelinListener): void;
|
|
1246
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1247
|
-
}
|
|
1248
|
-
declare class WithinCommandContext extends CommandContext {
|
|
1249
|
-
constructor(ctx: CommandContext);
|
|
1250
|
-
WITHIN_COMMAND(): antlr.TerminalNode;
|
|
1251
|
-
expression(): ExpressionContext;
|
|
1252
|
-
enterRule(listener: HamelinListener): void;
|
|
1253
|
-
exitRule(listener: HamelinListener): void;
|
|
1254
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1255
|
-
}
|
|
1256
|
-
declare class ExplodeCommandContext extends CommandContext {
|
|
1257
|
-
constructor(ctx: CommandContext);
|
|
1258
|
-
EXPLODE_COMMAND(): antlr.TerminalNode;
|
|
1259
|
-
assignmentClause(): AssignmentClauseContext;
|
|
1260
|
-
enterRule(listener: HamelinListener): void;
|
|
1261
|
-
exitRule(listener: HamelinListener): void;
|
|
1262
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1263
|
-
}
|
|
1264
|
-
declare class AppendCommandContext extends CommandContext {
|
|
1265
|
-
constructor(ctx: CommandContext);
|
|
1266
|
-
APPEND_COMMAND(): antlr.TerminalNode;
|
|
1267
|
-
tableReference(): TableReferenceContext;
|
|
1268
|
-
DISTINCT_BY(): antlr.TerminalNode | null;
|
|
1269
|
-
selection(): SelectionContext[];
|
|
1270
|
-
selection(i: number): SelectionContext | null;
|
|
1271
|
-
COMMA(): antlr.TerminalNode[];
|
|
1272
|
-
COMMA(i: number): antlr.TerminalNode | null;
|
|
1273
|
-
enterRule(listener: HamelinListener): void;
|
|
1274
|
-
exitRule(listener: HamelinListener): void;
|
|
1275
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1276
|
-
}
|
|
1277
|
-
declare class NestCommandContext extends CommandContext {
|
|
1278
|
-
constructor(ctx: CommandContext);
|
|
1279
|
-
NEST_COMMAND(): antlr.TerminalNode;
|
|
1280
|
-
identifier(): IdentifierContext;
|
|
1281
|
-
enterRule(listener: HamelinListener): void;
|
|
1282
|
-
exitRule(listener: HamelinListener): void;
|
|
1283
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1284
|
-
}
|
|
1285
|
-
declare class LetCommandContext extends CommandContext {
|
|
1286
|
-
constructor(ctx: CommandContext);
|
|
1287
|
-
LET_COMMAND(): antlr.TerminalNode;
|
|
1288
|
-
assignment(): AssignmentContext[];
|
|
1289
|
-
assignment(i: number): AssignmentContext | null;
|
|
1290
|
-
COMMA(): antlr.TerminalNode[];
|
|
1291
|
-
COMMA(i: number): antlr.TerminalNode | null;
|
|
1292
|
-
enterRule(listener: HamelinListener): void;
|
|
1293
|
-
exitRule(listener: HamelinListener): void;
|
|
1294
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1295
|
-
}
|
|
1296
|
-
declare class SortCommandContext extends CommandContext {
|
|
1297
|
-
constructor(ctx: CommandContext);
|
|
1298
|
-
SORT(): antlr.TerminalNode;
|
|
1299
|
-
sortExpression(): SortExpressionContext[];
|
|
1300
|
-
sortExpression(i: number): SortExpressionContext | null;
|
|
1301
|
-
BY(): antlr.TerminalNode | null;
|
|
1302
|
-
COMMA(): antlr.TerminalNode[];
|
|
1303
|
-
COMMA(i: number): antlr.TerminalNode | null;
|
|
1304
|
-
enterRule(listener: HamelinListener): void;
|
|
1305
|
-
exitRule(listener: HamelinListener): void;
|
|
1306
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1307
|
-
}
|
|
1308
|
-
declare class JoinCommandContext extends CommandContext {
|
|
1309
|
-
_on?: ExpressionContext;
|
|
1310
|
-
constructor(ctx: CommandContext);
|
|
1311
|
-
fromClause(): FromClauseContext;
|
|
1312
|
-
JOIN_COMMAND(): antlr.TerminalNode | null;
|
|
1313
|
-
LOOKUP_COMMAND(): antlr.TerminalNode | null;
|
|
1314
|
-
ON(): antlr.TerminalNode | null;
|
|
1315
|
-
expression(): ExpressionContext | null;
|
|
1316
|
-
enterRule(listener: HamelinListener): void;
|
|
1317
|
-
exitRule(listener: HamelinListener): void;
|
|
1318
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1319
|
-
}
|
|
1320
|
-
declare class UnionCommandContext extends CommandContext {
|
|
1321
|
-
constructor(ctx: CommandContext);
|
|
1322
|
-
UNION_COMMAND(): antlr.TerminalNode;
|
|
1323
|
-
fromClause(): FromClauseContext[];
|
|
1324
|
-
fromClause(i: number): FromClauseContext | null;
|
|
1325
|
-
COMMA(): antlr.TerminalNode[];
|
|
1326
|
-
COMMA(i: number): antlr.TerminalNode | null;
|
|
1327
|
-
enterRule(listener: HamelinListener): void;
|
|
1328
|
-
exitRule(listener: HamelinListener): void;
|
|
1329
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1330
|
-
}
|
|
1331
|
-
declare class AggCommandContext extends CommandContext {
|
|
1332
|
-
constructor(ctx: CommandContext);
|
|
1333
|
-
AGG_COMMAND(): antlr.TerminalNode;
|
|
1334
|
-
assignmentClause(): AssignmentClauseContext[];
|
|
1335
|
-
assignmentClause(i: number): AssignmentClauseContext | null;
|
|
1336
|
-
COMMA(): antlr.TerminalNode[];
|
|
1337
|
-
COMMA(i: number): antlr.TerminalNode | null;
|
|
1338
|
-
BY(): antlr.TerminalNode[];
|
|
1339
|
-
BY(i: number): antlr.TerminalNode | null;
|
|
1340
|
-
groupClause(): GroupClauseContext[];
|
|
1341
|
-
groupClause(i: number): GroupClauseContext | null;
|
|
1342
|
-
SORT(): antlr.TerminalNode | null;
|
|
1343
|
-
sortExpression(): SortExpressionContext[];
|
|
1344
|
-
sortExpression(i: number): SortExpressionContext | null;
|
|
1345
|
-
enterRule(listener: HamelinListener): void;
|
|
1346
|
-
exitRule(listener: HamelinListener): void;
|
|
1347
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1348
|
-
}
|
|
1349
|
-
declare class FromCommandContext extends CommandContext {
|
|
1350
|
-
constructor(ctx: CommandContext);
|
|
1351
|
-
FROM_COMMAND(): antlr.TerminalNode;
|
|
1352
|
-
fromClause(): FromClauseContext[];
|
|
1353
|
-
fromClause(i: number): FromClauseContext | null;
|
|
1354
|
-
COMMA(): antlr.TerminalNode[];
|
|
1355
|
-
COMMA(i: number): antlr.TerminalNode | null;
|
|
1356
|
-
enterRule(listener: HamelinListener): void;
|
|
1357
|
-
exitRule(listener: HamelinListener): void;
|
|
1358
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1359
|
-
}
|
|
1360
|
-
declare class ParseCommandContext extends CommandContext {
|
|
1361
|
-
_src?: ExpressionContext;
|
|
1362
|
-
constructor(ctx: CommandContext);
|
|
1363
|
-
PARSE_COMMAND(): antlr.TerminalNode;
|
|
1364
|
-
string(): StringContext;
|
|
1365
|
-
identifier(): IdentifierContext[];
|
|
1366
|
-
identifier(i: number): IdentifierContext | null;
|
|
1367
|
-
AS(): antlr.TerminalNode | null;
|
|
1368
|
-
COMMA(): antlr.TerminalNode[];
|
|
1369
|
-
COMMA(i: number): antlr.TerminalNode | null;
|
|
1370
|
-
NODROP(): antlr.TerminalNode | null;
|
|
1371
|
-
expression(): ExpressionContext | null;
|
|
1372
|
-
enterRule(listener: HamelinListener): void;
|
|
1373
|
-
exitRule(listener: HamelinListener): void;
|
|
1374
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1375
|
-
}
|
|
1376
|
-
declare class AssignmentClauseContext extends antlr.ParserRuleContext {
|
|
1377
|
-
constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
|
|
1378
|
-
assignment(): AssignmentContext | null;
|
|
1379
|
-
expression(): ExpressionContext | null;
|
|
1380
|
-
get ruleIndex(): number;
|
|
1381
|
-
enterRule(listener: HamelinListener): void;
|
|
1382
|
-
exitRule(listener: HamelinListener): void;
|
|
1383
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1384
|
-
}
|
|
1385
|
-
declare class GroupClauseContext extends antlr.ParserRuleContext {
|
|
1386
|
-
constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
|
|
1387
|
-
assignmentClause(): AssignmentClauseContext;
|
|
1388
|
-
get ruleIndex(): number;
|
|
1389
|
-
enterRule(listener: HamelinListener): void;
|
|
1390
|
-
exitRule(listener: HamelinListener): void;
|
|
1391
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1392
|
-
}
|
|
1393
|
-
declare class AssignmentContext extends antlr.ParserRuleContext {
|
|
1394
|
-
constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
|
|
1395
|
-
identifier(): IdentifierContext;
|
|
1396
|
-
ASSIGN(): antlr.TerminalNode;
|
|
1397
|
-
expression(): ExpressionContext;
|
|
1398
|
-
get ruleIndex(): number;
|
|
1399
|
-
enterRule(listener: HamelinListener): void;
|
|
1400
|
-
exitRule(listener: HamelinListener): void;
|
|
1401
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1402
|
-
}
|
|
1403
|
-
declare class MatchDefineContext extends antlr.ParserRuleContext {
|
|
1404
|
-
constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
|
|
1405
|
-
simpleIdentifier(): SimpleIdentifierContext;
|
|
1406
|
-
ASSIGN(): antlr.TerminalNode;
|
|
1407
|
-
expression(): ExpressionContext;
|
|
1408
|
-
get ruleIndex(): number;
|
|
1409
|
-
enterRule(listener: HamelinListener): void;
|
|
1410
|
-
exitRule(listener: HamelinListener): void;
|
|
1411
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1412
|
-
}
|
|
1413
|
-
declare class SelectionContext extends antlr.ParserRuleContext {
|
|
1414
|
-
constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
|
|
1415
|
-
identifier(): IdentifierContext;
|
|
1416
|
-
get ruleIndex(): number;
|
|
1417
|
-
enterRule(listener: HamelinListener): void;
|
|
1418
|
-
exitRule(listener: HamelinListener): void;
|
|
1419
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1420
|
-
}
|
|
1421
|
-
declare class SortExpressionContext extends antlr.ParserRuleContext {
|
|
1422
|
-
constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
|
|
1423
|
-
expression(): ExpressionContext;
|
|
1424
|
-
ASC(): antlr.TerminalNode | null;
|
|
1425
|
-
DESC(): antlr.TerminalNode | null;
|
|
1426
|
-
get ruleIndex(): number;
|
|
1427
|
-
enterRule(listener: HamelinListener): void;
|
|
1428
|
-
exitRule(listener: HamelinListener): void;
|
|
1429
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1430
|
-
}
|
|
1431
|
-
declare class TableAliasContext extends antlr.ParserRuleContext {
|
|
1432
|
-
constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
|
|
1433
|
-
simpleIdentifier(): SimpleIdentifierContext;
|
|
1434
|
-
ASSIGN(): antlr.TerminalNode;
|
|
1435
|
-
tableReference(): TableReferenceContext;
|
|
1436
|
-
get ruleIndex(): number;
|
|
1437
|
-
enterRule(listener: HamelinListener): void;
|
|
1438
|
-
exitRule(listener: HamelinListener): void;
|
|
1439
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1440
|
-
}
|
|
1441
|
-
declare class FromClauseContext extends antlr.ParserRuleContext {
|
|
1442
|
-
constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
|
|
1443
|
-
tableAlias(): TableAliasContext | null;
|
|
1444
|
-
tableReference(): TableReferenceContext | null;
|
|
1445
|
-
get ruleIndex(): number;
|
|
1446
|
-
enterRule(listener: HamelinListener): void;
|
|
1447
|
-
exitRule(listener: HamelinListener): void;
|
|
1448
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1449
|
-
}
|
|
1450
|
-
declare class ExpressionContext extends antlr.ParserRuleContext {
|
|
1451
|
-
constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
|
|
1452
|
-
get ruleIndex(): number;
|
|
1453
|
-
copyFrom(ctx: ExpressionContext): void;
|
|
1454
|
-
}
|
|
1455
|
-
declare class StructLiteralContext extends ExpressionContext {
|
|
1456
|
-
constructor(ctx: ExpressionContext);
|
|
1457
|
-
LCURLY(): antlr.TerminalNode;
|
|
1458
|
-
simpleIdentifier(): SimpleIdentifierContext[];
|
|
1459
|
-
simpleIdentifier(i: number): SimpleIdentifierContext | null;
|
|
1460
|
-
COLON(): antlr.TerminalNode[];
|
|
1461
|
-
COLON(i: number): antlr.TerminalNode | null;
|
|
1462
|
-
expression(): ExpressionContext[];
|
|
1463
|
-
expression(i: number): ExpressionContext | null;
|
|
1464
|
-
RCURLY(): antlr.TerminalNode;
|
|
1465
|
-
COMMA(): antlr.TerminalNode[];
|
|
1466
|
-
COMMA(i: number): antlr.TerminalNode | null;
|
|
1467
|
-
enterRule(listener: HamelinListener): void;
|
|
1468
|
-
exitRule(listener: HamelinListener): void;
|
|
1469
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1470
|
-
}
|
|
1471
|
-
declare class ColumnReferenceAltContext extends ExpressionContext {
|
|
1472
|
-
constructor(ctx: ExpressionContext);
|
|
1473
|
-
columnReference(): ColumnReferenceContext;
|
|
1474
|
-
enterRule(listener: HamelinListener): void;
|
|
1475
|
-
exitRule(listener: HamelinListener): void;
|
|
1476
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1477
|
-
}
|
|
1478
|
-
declare class DerefContext extends ExpressionContext {
|
|
1479
|
-
_left?: ExpressionContext;
|
|
1480
|
-
_operator?: Token | null;
|
|
1481
|
-
_right?: SimpleIdentifierContext;
|
|
1482
|
-
constructor(ctx: ExpressionContext);
|
|
1483
|
-
expression(): ExpressionContext;
|
|
1484
|
-
DOT(): antlr.TerminalNode;
|
|
1485
|
-
simpleIdentifier(): SimpleIdentifierContext;
|
|
1486
|
-
enterRule(listener: HamelinListener): void;
|
|
1487
|
-
exitRule(listener: HamelinListener): void;
|
|
1488
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1489
|
-
}
|
|
1490
|
-
declare class NullLiteralContext extends ExpressionContext {
|
|
1491
|
-
constructor(ctx: ExpressionContext);
|
|
1492
|
-
NULL(): antlr.TerminalNode;
|
|
1493
|
-
enterRule(listener: HamelinListener): void;
|
|
1494
|
-
exitRule(listener: HamelinListener): void;
|
|
1495
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1496
|
-
}
|
|
1497
|
-
declare class ArrayLiteralContext extends ExpressionContext {
|
|
1498
|
-
constructor(ctx: ExpressionContext);
|
|
1499
|
-
LBRACKET(): antlr.TerminalNode;
|
|
1500
|
-
RBRACKET(): antlr.TerminalNode;
|
|
1501
|
-
expression(): ExpressionContext[];
|
|
1502
|
-
expression(i: number): ExpressionContext | null;
|
|
1503
|
-
COMMA(): antlr.TerminalNode[];
|
|
1504
|
-
COMMA(i: number): antlr.TerminalNode | null;
|
|
1505
|
-
enterRule(listener: HamelinListener): void;
|
|
1506
|
-
exitRule(listener: HamelinListener): void;
|
|
1507
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1508
|
-
}
|
|
1509
|
-
declare class PairLiteralContext extends ExpressionContext {
|
|
1510
|
-
_left?: ExpressionContext;
|
|
1511
|
-
_operator?: Token | null;
|
|
1512
|
-
_right?: ExpressionContext;
|
|
1513
|
-
constructor(ctx: ExpressionContext);
|
|
1514
|
-
expression(): ExpressionContext[];
|
|
1515
|
-
expression(i: number): ExpressionContext | null;
|
|
1516
|
-
COLON(): antlr.TerminalNode;
|
|
1517
|
-
enterRule(listener: HamelinListener): void;
|
|
1518
|
-
exitRule(listener: HamelinListener): void;
|
|
1519
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1520
|
-
}
|
|
1521
|
-
declare class TsTruncContext extends ExpressionContext {
|
|
1522
|
-
constructor(ctx: ExpressionContext);
|
|
1523
|
-
expression(): ExpressionContext;
|
|
1524
|
-
SECOND_TRUNC(): antlr.TerminalNode | null;
|
|
1525
|
-
MINUTE_TRUNC(): antlr.TerminalNode | null;
|
|
1526
|
-
HOUR_TRUNC(): antlr.TerminalNode | null;
|
|
1527
|
-
DAY_TRUNC(): antlr.TerminalNode | null;
|
|
1528
|
-
WEEK_TRUNC(): antlr.TerminalNode | null;
|
|
1529
|
-
MONTH_TRUNC(): antlr.TerminalNode | null;
|
|
1530
|
-
QUARTER_TRUNC(): antlr.TerminalNode | null;
|
|
1531
|
-
YEAR_TRUNC(): antlr.TerminalNode | null;
|
|
1532
|
-
enterRule(listener: HamelinListener): void;
|
|
1533
|
-
exitRule(listener: HamelinListener): void;
|
|
1534
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1535
|
-
}
|
|
1536
|
-
declare class RowsLiteralContext extends ExpressionContext {
|
|
1537
|
-
constructor(ctx: ExpressionContext);
|
|
1538
|
-
ROWS_LITERAL(): antlr.TerminalNode;
|
|
1539
|
-
enterRule(listener: HamelinListener): void;
|
|
1540
|
-
exitRule(listener: HamelinListener): void;
|
|
1541
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1542
|
-
}
|
|
1543
|
-
declare class TsTruncTimestampLiteralContext extends ExpressionContext {
|
|
1544
|
-
constructor(ctx: ExpressionContext);
|
|
1545
|
-
SECOND_TRUNC(): antlr.TerminalNode | null;
|
|
1546
|
-
MINUTE_TRUNC(): antlr.TerminalNode | null;
|
|
1547
|
-
HOUR_TRUNC(): antlr.TerminalNode | null;
|
|
1548
|
-
DAY_TRUNC(): antlr.TerminalNode | null;
|
|
1549
|
-
WEEK_TRUNC(): antlr.TerminalNode | null;
|
|
1550
|
-
MONTH_TRUNC(): antlr.TerminalNode | null;
|
|
1551
|
-
QUARTER_TRUNC(): antlr.TerminalNode | null;
|
|
1552
|
-
YEAR_TRUNC(): antlr.TerminalNode | null;
|
|
1553
|
-
enterRule(listener: HamelinListener): void;
|
|
1554
|
-
exitRule(listener: HamelinListener): void;
|
|
1555
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1556
|
-
}
|
|
1557
|
-
declare class UnaryPrefixOperatorContext extends ExpressionContext {
|
|
1558
|
-
_operator?: Token | null;
|
|
1559
|
-
constructor(ctx: ExpressionContext);
|
|
1560
|
-
expression(): ExpressionContext;
|
|
1561
|
-
MINUS(): antlr.TerminalNode | null;
|
|
1562
|
-
PLUS(): antlr.TerminalNode | null;
|
|
1563
|
-
RANGE(): antlr.TerminalNode | null;
|
|
1564
|
-
NOT(): antlr.TerminalNode | null;
|
|
1565
|
-
enterRule(listener: HamelinListener): void;
|
|
1566
|
-
exitRule(listener: HamelinListener): void;
|
|
1567
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1568
|
-
}
|
|
1569
|
-
declare class BinaryLiteralContext extends ExpressionContext {
|
|
1570
|
-
constructor(ctx: ExpressionContext);
|
|
1571
|
-
BINARY_LITERAL(): antlr.TerminalNode;
|
|
1572
|
-
enterRule(listener: HamelinListener): void;
|
|
1573
|
-
exitRule(listener: HamelinListener): void;
|
|
1574
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1575
|
-
}
|
|
1576
|
-
declare class IndexAccessContext extends ExpressionContext {
|
|
1577
|
-
_value?: ExpressionContext;
|
|
1578
|
-
_index?: ExpressionContext;
|
|
1579
|
-
constructor(ctx: ExpressionContext);
|
|
1580
|
-
LBRACKET(): antlr.TerminalNode;
|
|
1581
|
-
RBRACKET(): antlr.TerminalNode;
|
|
1582
|
-
expression(): ExpressionContext[];
|
|
1583
|
-
expression(i: number): ExpressionContext | null;
|
|
1584
|
-
enterRule(listener: HamelinListener): void;
|
|
1585
|
-
exitRule(listener: HamelinListener): void;
|
|
1586
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1587
|
-
}
|
|
1588
|
-
declare class CastContext extends ExpressionContext {
|
|
1589
|
-
_left?: ExpressionContext;
|
|
1590
|
-
_operator?: Token | null;
|
|
1591
|
-
_right?: HamelintypeContext;
|
|
1592
|
-
constructor(ctx: ExpressionContext);
|
|
1593
|
-
expression(): ExpressionContext;
|
|
1594
|
-
AS(): antlr.TerminalNode;
|
|
1595
|
-
hamelintype(): HamelintypeContext;
|
|
1596
|
-
enterRule(listener: HamelinListener): void;
|
|
1597
|
-
exitRule(listener: HamelinListener): void;
|
|
1598
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1599
|
-
}
|
|
1600
|
-
declare class UnaryPostfixOperatorContext extends ExpressionContext {
|
|
1601
|
-
_operator?: Token | null;
|
|
1602
|
-
constructor(ctx: ExpressionContext);
|
|
1603
|
-
expression(): ExpressionContext;
|
|
1604
|
-
RANGE(): antlr.TerminalNode;
|
|
1605
|
-
enterRule(listener: HamelinListener): void;
|
|
1606
|
-
exitRule(listener: HamelinListener): void;
|
|
1607
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1608
|
-
}
|
|
1609
|
-
declare class TupleLiteralContext extends ExpressionContext {
|
|
1610
|
-
constructor(ctx: ExpressionContext);
|
|
1611
|
-
LPARENS(): antlr.TerminalNode;
|
|
1612
|
-
RPARENS(): antlr.TerminalNode;
|
|
1613
|
-
expression(): ExpressionContext[];
|
|
1614
|
-
expression(i: number): ExpressionContext | null;
|
|
1615
|
-
COMMA(): antlr.TerminalNode[];
|
|
1616
|
-
COMMA(i: number): antlr.TerminalNode | null;
|
|
1617
|
-
enterRule(listener: HamelinListener): void;
|
|
1618
|
-
exitRule(listener: HamelinListener): void;
|
|
1619
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1620
|
-
}
|
|
1621
|
-
declare class ParenthesizedExpressionContext extends ExpressionContext {
|
|
1622
|
-
constructor(ctx: ExpressionContext);
|
|
1623
|
-
LPARENS(): antlr.TerminalNode;
|
|
1624
|
-
expression(): ExpressionContext;
|
|
1625
|
-
RPARENS(): antlr.TerminalNode;
|
|
1626
|
-
enterRule(listener: HamelinListener): void;
|
|
1627
|
-
exitRule(listener: HamelinListener): void;
|
|
1628
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1629
|
-
}
|
|
1630
|
-
declare class StringLiteralContext extends ExpressionContext {
|
|
1631
|
-
constructor(ctx: ExpressionContext);
|
|
1632
|
-
string(): StringContext;
|
|
1633
|
-
enterRule(listener: HamelinListener): void;
|
|
1634
|
-
exitRule(listener: HamelinListener): void;
|
|
1635
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1636
|
-
}
|
|
1637
|
-
declare class BinaryOperatorContext extends ExpressionContext {
|
|
1638
|
-
_left?: ExpressionContext;
|
|
1639
|
-
_operator?: Token | null;
|
|
1640
|
-
_right?: ExpressionContext;
|
|
1641
|
-
constructor(ctx: ExpressionContext);
|
|
1642
|
-
expression(): ExpressionContext[];
|
|
1643
|
-
expression(i: number): ExpressionContext | null;
|
|
1644
|
-
ASTERISK(): antlr.TerminalNode | null;
|
|
1645
|
-
SLASH(): antlr.TerminalNode | null;
|
|
1646
|
-
PERCENT(): antlr.TerminalNode | null;
|
|
1647
|
-
PLUS(): antlr.TerminalNode | null;
|
|
1648
|
-
MINUS(): antlr.TerminalNode | null;
|
|
1649
|
-
RANGE(): antlr.TerminalNode | null;
|
|
1650
|
-
EQ(): antlr.TerminalNode | null;
|
|
1651
|
-
NEQ(): antlr.TerminalNode | null;
|
|
1652
|
-
LT(): antlr.TerminalNode | null;
|
|
1653
|
-
LTE(): antlr.TerminalNode | null;
|
|
1654
|
-
GT(): antlr.TerminalNode | null;
|
|
1655
|
-
GTE(): antlr.TerminalNode | null;
|
|
1656
|
-
IS(): antlr.TerminalNode | null;
|
|
1657
|
-
ISNOT(): antlr.TerminalNode | null;
|
|
1658
|
-
IN(): antlr.TerminalNode | null;
|
|
1659
|
-
NOTIN(): antlr.TerminalNode | null;
|
|
1660
|
-
AND(): antlr.TerminalNode | null;
|
|
1661
|
-
OR(): antlr.TerminalNode | null;
|
|
1662
|
-
enterRule(listener: HamelinListener): void;
|
|
1663
|
-
exitRule(listener: HamelinListener): void;
|
|
1664
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1665
|
-
}
|
|
1666
|
-
declare class FunctionCallContext extends ExpressionContext {
|
|
1667
|
-
_functionName?: SimpleIdentifierContext;
|
|
1668
|
-
constructor(ctx: ExpressionContext);
|
|
1669
|
-
LPARENS(): antlr.TerminalNode;
|
|
1670
|
-
RPARENS(): antlr.TerminalNode;
|
|
1671
|
-
simpleIdentifier(): SimpleIdentifierContext;
|
|
1672
|
-
namedArgument(): NamedArgumentContext[];
|
|
1673
|
-
namedArgument(i: number): NamedArgumentContext | null;
|
|
1674
|
-
COMMA(): antlr.TerminalNode[];
|
|
1675
|
-
COMMA(i: number): antlr.TerminalNode | null;
|
|
1676
|
-
positionalArgument(): PositionalArgumentContext[];
|
|
1677
|
-
positionalArgument(i: number): PositionalArgumentContext | null;
|
|
1678
|
-
enterRule(listener: HamelinListener): void;
|
|
1679
|
-
exitRule(listener: HamelinListener): void;
|
|
1680
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1681
|
-
}
|
|
1682
|
-
declare class UnboundRangeLiteralContext extends ExpressionContext {
|
|
1683
|
-
constructor(ctx: ExpressionContext);
|
|
1684
|
-
RANGE(): antlr.TerminalNode;
|
|
1685
|
-
enterRule(listener: HamelinListener): void;
|
|
1686
|
-
exitRule(listener: HamelinListener): void;
|
|
1687
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1688
|
-
}
|
|
1689
|
-
declare class NumericLiteralContext extends ExpressionContext {
|
|
1690
|
-
constructor(ctx: ExpressionContext);
|
|
1691
|
-
number(): NumberContext;
|
|
1692
|
-
enterRule(listener: HamelinListener): void;
|
|
1693
|
-
exitRule(listener: HamelinListener): void;
|
|
1694
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1695
|
-
}
|
|
1696
|
-
declare class BooleanLiteralContext extends ExpressionContext {
|
|
1697
|
-
constructor(ctx: ExpressionContext);
|
|
1698
|
-
TRUE(): antlr.TerminalNode | null;
|
|
1699
|
-
FALSE(): antlr.TerminalNode | null;
|
|
1700
|
-
enterRule(listener: HamelinListener): void;
|
|
1701
|
-
exitRule(listener: HamelinListener): void;
|
|
1702
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1703
|
-
}
|
|
1704
|
-
declare class IntervalLiteralContext extends ExpressionContext {
|
|
1705
|
-
constructor(ctx: ExpressionContext);
|
|
1706
|
-
NANOSECOND_INTERVAL(): antlr.TerminalNode | null;
|
|
1707
|
-
MICROSECOND_INTERVAL(): antlr.TerminalNode | null;
|
|
1708
|
-
MILLISECOND_INTERVAL(): antlr.TerminalNode | null;
|
|
1709
|
-
SECOND_INTERVAL(): antlr.TerminalNode | null;
|
|
1710
|
-
MINUTE_INTERVAL(): antlr.TerminalNode | null;
|
|
1711
|
-
HOUR_INTERVAL(): antlr.TerminalNode | null;
|
|
1712
|
-
DAY_INTERVAL(): antlr.TerminalNode | null;
|
|
1713
|
-
WEEK_INTERVAL(): antlr.TerminalNode | null;
|
|
1714
|
-
MONTH_INTERVAL(): antlr.TerminalNode | null;
|
|
1715
|
-
QUARTER_INTERVAL(): antlr.TerminalNode | null;
|
|
1716
|
-
YEAR_INTERVAL(): antlr.TerminalNode | null;
|
|
1717
|
-
enterRule(listener: HamelinListener): void;
|
|
1718
|
-
exitRule(listener: HamelinListener): void;
|
|
1719
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1720
|
-
}
|
|
1721
|
-
declare class HamelintypeContext extends antlr.ParserRuleContext {
|
|
1722
|
-
constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
|
|
1723
|
-
get ruleIndex(): number;
|
|
1724
|
-
copyFrom(ctx: HamelintypeContext): void;
|
|
1725
|
-
}
|
|
1726
|
-
declare class SimpleTypeContext extends HamelintypeContext {
|
|
1727
|
-
constructor(ctx: HamelintypeContext);
|
|
1728
|
-
simpleIdentifier(): SimpleIdentifierContext;
|
|
1729
|
-
enterRule(listener: HamelinListener): void;
|
|
1730
|
-
exitRule(listener: HamelinListener): void;
|
|
1731
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1732
|
-
}
|
|
1733
|
-
declare class TypeWithArgumentsContext extends HamelintypeContext {
|
|
1734
|
-
constructor(ctx: HamelintypeContext);
|
|
1735
|
-
simpleIdentifier(): SimpleIdentifierContext;
|
|
1736
|
-
LPARENS(): antlr.TerminalNode;
|
|
1737
|
-
INTEGER_VALUE(): antlr.TerminalNode[];
|
|
1738
|
-
INTEGER_VALUE(i: number): antlr.TerminalNode | null;
|
|
1739
|
-
RPARENS(): antlr.TerminalNode;
|
|
1740
|
-
COMMA(): antlr.TerminalNode[];
|
|
1741
|
-
COMMA(i: number): antlr.TerminalNode | null;
|
|
1742
|
-
enterRule(listener: HamelinListener): void;
|
|
1743
|
-
exitRule(listener: HamelinListener): void;
|
|
1744
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1745
|
-
}
|
|
1746
|
-
declare class StructTypeContext extends HamelintypeContext {
|
|
1747
|
-
constructor(ctx: HamelintypeContext);
|
|
1748
|
-
LCURLY(): antlr.TerminalNode;
|
|
1749
|
-
simpleIdentifier(): SimpleIdentifierContext[];
|
|
1750
|
-
simpleIdentifier(i: number): SimpleIdentifierContext | null;
|
|
1751
|
-
COLON(): antlr.TerminalNode[];
|
|
1752
|
-
COLON(i: number): antlr.TerminalNode | null;
|
|
1753
|
-
hamelintype(): HamelintypeContext[];
|
|
1754
|
-
hamelintype(i: number): HamelintypeContext | null;
|
|
1755
|
-
RCURLY(): antlr.TerminalNode;
|
|
1756
|
-
COMMA(): antlr.TerminalNode[];
|
|
1757
|
-
COMMA(i: number): antlr.TerminalNode | null;
|
|
1758
|
-
enterRule(listener: HamelinListener): void;
|
|
1759
|
-
exitRule(listener: HamelinListener): void;
|
|
1760
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1761
|
-
}
|
|
1762
|
-
declare class TupleTypeContext extends HamelintypeContext {
|
|
1763
|
-
constructor(ctx: HamelintypeContext);
|
|
1764
|
-
LPARENS(): antlr.TerminalNode;
|
|
1765
|
-
hamelintype(): HamelintypeContext[];
|
|
1766
|
-
hamelintype(i: number): HamelintypeContext | null;
|
|
1767
|
-
RPARENS(): antlr.TerminalNode;
|
|
1768
|
-
COMMA(): antlr.TerminalNode[];
|
|
1769
|
-
COMMA(i: number): antlr.TerminalNode | null;
|
|
1770
|
-
enterRule(listener: HamelinListener): void;
|
|
1771
|
-
exitRule(listener: HamelinListener): void;
|
|
1772
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1773
|
-
}
|
|
1774
|
-
declare class ParameterizedTypeContext extends HamelintypeContext {
|
|
1775
|
-
constructor(ctx: HamelintypeContext);
|
|
1776
|
-
simpleIdentifier(): SimpleIdentifierContext;
|
|
1777
|
-
LPARENS(): antlr.TerminalNode;
|
|
1778
|
-
hamelintype(): HamelintypeContext[];
|
|
1779
|
-
hamelintype(i: number): HamelintypeContext | null;
|
|
1780
|
-
RPARENS(): antlr.TerminalNode;
|
|
1781
|
-
COMMA(): antlr.TerminalNode[];
|
|
1782
|
-
COMMA(i: number): antlr.TerminalNode | null;
|
|
1783
|
-
enterRule(listener: HamelinListener): void;
|
|
1784
|
-
exitRule(listener: HamelinListener): void;
|
|
1785
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1786
|
-
}
|
|
1787
|
-
declare class PatternContext extends antlr.ParserRuleContext {
|
|
1788
|
-
constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
|
|
1789
|
-
get ruleIndex(): number;
|
|
1790
|
-
copyFrom(ctx: PatternContext): void;
|
|
1791
|
-
}
|
|
1792
|
-
declare class QuantifiedContext extends PatternContext {
|
|
1793
|
-
constructor(ctx: PatternContext);
|
|
1794
|
-
fromClause(): FromClauseContext;
|
|
1795
|
-
quantifier(): QuantifierContext | null;
|
|
1796
|
-
enterRule(listener: HamelinListener): void;
|
|
1797
|
-
exitRule(listener: HamelinListener): void;
|
|
1798
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1799
|
-
}
|
|
1800
|
-
declare class NestedContext extends PatternContext {
|
|
1801
|
-
constructor(ctx: PatternContext);
|
|
1802
|
-
LPARENS(): antlr.TerminalNode;
|
|
1803
|
-
RPARENS(): antlr.TerminalNode;
|
|
1804
|
-
quantifier(): QuantifierContext;
|
|
1805
|
-
pattern(): PatternContext[];
|
|
1806
|
-
pattern(i: number): PatternContext | null;
|
|
1807
|
-
enterRule(listener: HamelinListener): void;
|
|
1808
|
-
exitRule(listener: HamelinListener): void;
|
|
1809
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1810
|
-
}
|
|
1811
|
-
declare class QuantifierContext extends antlr.ParserRuleContext {
|
|
1812
|
-
constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
|
|
1813
|
-
get ruleIndex(): number;
|
|
1814
|
-
copyFrom(ctx: QuantifierContext): void;
|
|
1815
|
-
}
|
|
1816
|
-
declare class AnyNumberContext extends QuantifierContext {
|
|
1817
|
-
constructor(ctx: QuantifierContext);
|
|
1818
|
-
ASTERISK(): antlr.TerminalNode;
|
|
1819
|
-
enterRule(listener: HamelinListener): void;
|
|
1820
|
-
exitRule(listener: HamelinListener): void;
|
|
1821
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1822
|
-
}
|
|
1823
|
-
declare class ExactlyContext extends QuantifierContext {
|
|
1824
|
-
constructor(ctx: QuantifierContext);
|
|
1825
|
-
LCURLY(): antlr.TerminalNode;
|
|
1826
|
-
INTEGER_VALUE(): antlr.TerminalNode;
|
|
1827
|
-
RCURLY(): antlr.TerminalNode;
|
|
1828
|
-
enterRule(listener: HamelinListener): void;
|
|
1829
|
-
exitRule(listener: HamelinListener): void;
|
|
1830
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1831
|
-
}
|
|
1832
|
-
declare class AtLeastOneContext extends QuantifierContext {
|
|
1833
|
-
constructor(ctx: QuantifierContext);
|
|
1834
|
-
PLUS(): antlr.TerminalNode;
|
|
1835
|
-
enterRule(listener: HamelinListener): void;
|
|
1836
|
-
exitRule(listener: HamelinListener): void;
|
|
1837
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1838
|
-
}
|
|
1839
|
-
declare class ZeroOrOneContext extends QuantifierContext {
|
|
1840
|
-
constructor(ctx: QuantifierContext);
|
|
1841
|
-
QUESTIONMARK(): antlr.TerminalNode;
|
|
1842
|
-
enterRule(listener: HamelinListener): void;
|
|
1843
|
-
exitRule(listener: HamelinListener): void;
|
|
1844
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1845
|
-
}
|
|
1846
|
-
declare class ColumnReferenceContext extends antlr.ParserRuleContext {
|
|
1847
|
-
constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
|
|
1848
|
-
simpleIdentifier(): SimpleIdentifierContext;
|
|
1849
|
-
get ruleIndex(): number;
|
|
1850
|
-
enterRule(listener: HamelinListener): void;
|
|
1851
|
-
exitRule(listener: HamelinListener): void;
|
|
1852
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1853
|
-
}
|
|
1854
|
-
declare class TableReferenceContext extends antlr.ParserRuleContext {
|
|
1855
|
-
constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
|
|
1856
|
-
identifier(): IdentifierContext;
|
|
1857
|
-
get ruleIndex(): number;
|
|
1858
|
-
enterRule(listener: HamelinListener): void;
|
|
1859
|
-
exitRule(listener: HamelinListener): void;
|
|
1860
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1861
|
-
}
|
|
1862
|
-
declare class IdentifierContext extends antlr.ParserRuleContext {
|
|
1863
|
-
constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
|
|
1864
|
-
simpleIdentifier(): SimpleIdentifierContext[];
|
|
1865
|
-
simpleIdentifier(i: number): SimpleIdentifierContext | null;
|
|
1866
|
-
DOT(): antlr.TerminalNode[];
|
|
1867
|
-
DOT(i: number): antlr.TerminalNode | null;
|
|
1868
|
-
get ruleIndex(): number;
|
|
1869
|
-
enterRule(listener: HamelinListener): void;
|
|
1870
|
-
exitRule(listener: HamelinListener): void;
|
|
1871
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1872
|
-
}
|
|
1873
|
-
declare class SimpleIdentifierContext extends antlr.ParserRuleContext {
|
|
1874
|
-
constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
|
|
1875
|
-
get ruleIndex(): number;
|
|
1876
|
-
copyFrom(ctx: SimpleIdentifierContext): void;
|
|
1877
|
-
}
|
|
1878
|
-
declare class BackQuotedIdentifierContext extends SimpleIdentifierContext {
|
|
1879
|
-
constructor(ctx: SimpleIdentifierContext);
|
|
1880
|
-
BACKQUOTED_IDENTIFIER(): antlr.TerminalNode;
|
|
1881
|
-
enterRule(listener: HamelinListener): void;
|
|
1882
|
-
exitRule(listener: HamelinListener): void;
|
|
1883
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1884
|
-
}
|
|
1885
|
-
declare class UnquotedIdentifierContext extends SimpleIdentifierContext {
|
|
1886
|
-
constructor(ctx: SimpleIdentifierContext);
|
|
1887
|
-
IDENTIFIER(): antlr.TerminalNode;
|
|
1888
|
-
enterRule(listener: HamelinListener): void;
|
|
1889
|
-
exitRule(listener: HamelinListener): void;
|
|
1890
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1891
|
-
}
|
|
1892
|
-
declare class StringContext extends antlr.ParserRuleContext {
|
|
1893
|
-
constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
|
|
1894
|
-
get ruleIndex(): number;
|
|
1895
|
-
copyFrom(ctx: StringContext): void;
|
|
1896
|
-
}
|
|
1897
|
-
declare class BasicDoubleQuotedStringLiteralContext extends StringContext {
|
|
1898
|
-
constructor(ctx: StringContext);
|
|
1899
|
-
DOUBLE_QUOTED_STRING(): antlr.TerminalNode;
|
|
1900
|
-
enterRule(listener: HamelinListener): void;
|
|
1901
|
-
exitRule(listener: HamelinListener): void;
|
|
1902
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1903
|
-
}
|
|
1904
|
-
declare class UnicodeSingleQuotedStringLiteralContext extends StringContext {
|
|
1905
|
-
_value?: Token | null;
|
|
1906
|
-
_uesc?: Token | null;
|
|
1907
|
-
constructor(ctx: StringContext);
|
|
1908
|
-
SINGLE_QUOTED_UNICODE_STRING(): antlr.TerminalNode;
|
|
1909
|
-
UESCAPE(): antlr.TerminalNode | null;
|
|
1910
|
-
SINGLE_QUOTED_STRING(): antlr.TerminalNode | null;
|
|
1911
|
-
enterRule(listener: HamelinListener): void;
|
|
1912
|
-
exitRule(listener: HamelinListener): void;
|
|
1913
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1914
|
-
}
|
|
1915
|
-
declare class BasicSingleQuotedStringLiteralContext extends StringContext {
|
|
1916
|
-
constructor(ctx: StringContext);
|
|
1917
|
-
SINGLE_QUOTED_STRING(): antlr.TerminalNode;
|
|
1918
|
-
enterRule(listener: HamelinListener): void;
|
|
1919
|
-
exitRule(listener: HamelinListener): void;
|
|
1920
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1921
|
-
}
|
|
1922
|
-
declare class UnicodeDoubleQuotedStringLiteralContext extends StringContext {
|
|
1923
|
-
_value?: Token | null;
|
|
1924
|
-
_uesc?: Token | null;
|
|
1925
|
-
constructor(ctx: StringContext);
|
|
1926
|
-
DOUBLE_QUOTED_UNICODE_STRING(): antlr.TerminalNode;
|
|
1927
|
-
UESCAPE(): antlr.TerminalNode | null;
|
|
1928
|
-
DOUBLE_QUOTED_STRING(): antlr.TerminalNode | null;
|
|
1929
|
-
enterRule(listener: HamelinListener): void;
|
|
1930
|
-
exitRule(listener: HamelinListener): void;
|
|
1931
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1932
|
-
}
|
|
1933
|
-
declare class NumberContext extends antlr.ParserRuleContext {
|
|
1934
|
-
constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
|
|
1935
|
-
get ruleIndex(): number;
|
|
1936
|
-
copyFrom(ctx: NumberContext): void;
|
|
1937
|
-
}
|
|
1938
|
-
declare class DecimalLiteralContext extends NumberContext {
|
|
1939
|
-
_value?: Token | null;
|
|
1940
|
-
constructor(ctx: NumberContext);
|
|
1941
|
-
DECIMAL_VALUE(): antlr.TerminalNode;
|
|
1942
|
-
enterRule(listener: HamelinListener): void;
|
|
1943
|
-
exitRule(listener: HamelinListener): void;
|
|
1944
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1945
|
-
}
|
|
1946
|
-
declare class ScientificLiteralContext extends NumberContext {
|
|
1947
|
-
_value?: Token | null;
|
|
1948
|
-
constructor(ctx: NumberContext);
|
|
1949
|
-
DOUBLE_VALUE(): antlr.TerminalNode;
|
|
1950
|
-
enterRule(listener: HamelinListener): void;
|
|
1951
|
-
exitRule(listener: HamelinListener): void;
|
|
1952
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1953
|
-
}
|
|
1954
|
-
declare class IntegerLiteralContext extends NumberContext {
|
|
1955
|
-
_value?: Token | null;
|
|
1956
|
-
constructor(ctx: NumberContext);
|
|
1957
|
-
INTEGER_VALUE(): antlr.TerminalNode;
|
|
1958
|
-
enterRule(listener: HamelinListener): void;
|
|
1959
|
-
exitRule(listener: HamelinListener): void;
|
|
1960
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1961
|
-
}
|
|
1962
|
-
declare class PositionalArgumentContext extends antlr.ParserRuleContext {
|
|
1963
|
-
constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
|
|
1964
|
-
expression(): ExpressionContext;
|
|
1965
|
-
get ruleIndex(): number;
|
|
1966
|
-
enterRule(listener: HamelinListener): void;
|
|
1967
|
-
exitRule(listener: HamelinListener): void;
|
|
1968
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1969
|
-
}
|
|
1970
|
-
declare class NamedArgumentContext extends antlr.ParserRuleContext {
|
|
1971
|
-
constructor(parent: antlr.ParserRuleContext | null, invokingState: number);
|
|
1972
|
-
simpleIdentifier(): SimpleIdentifierContext;
|
|
1973
|
-
ASSIGN(): antlr.TerminalNode;
|
|
1974
|
-
expression(): ExpressionContext;
|
|
1975
|
-
get ruleIndex(): number;
|
|
1976
|
-
enterRule(listener: HamelinListener): void;
|
|
1977
|
-
exitRule(listener: HamelinListener): void;
|
|
1978
|
-
accept<Result>(visitor: HamelinVisitor<Result>): Result | null;
|
|
1979
|
-
}
|
|
1980
|
-
|
|
1981
|
-
/**
|
|
1982
|
-
* This interface defines a complete listener for a parse tree produced by
|
|
1983
|
-
* `HamelinParser`.
|
|
1984
|
-
*/
|
|
1985
|
-
declare class HamelinListener implements ParseTreeListener {
|
|
1986
|
-
/**
|
|
1987
|
-
* Enter a parse tree produced by `HamelinParser.identifierEOF`.
|
|
1988
|
-
* @param ctx the parse tree
|
|
1989
|
-
*/
|
|
1990
|
-
enterIdentifierEOF?: (ctx: IdentifierEOFContext) => void;
|
|
1991
|
-
/**
|
|
1992
|
-
* Exit a parse tree produced by `HamelinParser.identifierEOF`.
|
|
1993
|
-
* @param ctx the parse tree
|
|
1994
|
-
*/
|
|
1995
|
-
exitIdentifierEOF?: (ctx: IdentifierEOFContext) => void;
|
|
1996
|
-
/**
|
|
1997
|
-
* Enter a parse tree produced by `HamelinParser.queryEOF`.
|
|
1998
|
-
* @param ctx the parse tree
|
|
1999
|
-
*/
|
|
2000
|
-
enterQueryEOF?: (ctx: QueryEOFContext) => void;
|
|
2001
|
-
/**
|
|
2002
|
-
* Exit a parse tree produced by `HamelinParser.queryEOF`.
|
|
2003
|
-
* @param ctx the parse tree
|
|
2004
|
-
*/
|
|
2005
|
-
exitQueryEOF?: (ctx: QueryEOFContext) => void;
|
|
2006
|
-
/**
|
|
2007
|
-
* Enter a parse tree produced by `HamelinParser.commandEOF`.
|
|
2008
|
-
* @param ctx the parse tree
|
|
2009
|
-
*/
|
|
2010
|
-
enterCommandEOF?: (ctx: CommandEOFContext) => void;
|
|
2011
|
-
/**
|
|
2012
|
-
* Exit a parse tree produced by `HamelinParser.commandEOF`.
|
|
2013
|
-
* @param ctx the parse tree
|
|
2014
|
-
*/
|
|
2015
|
-
exitCommandEOF?: (ctx: CommandEOFContext) => void;
|
|
2016
|
-
/**
|
|
2017
|
-
* Enter a parse tree produced by `HamelinParser.expressionEOF`.
|
|
2018
|
-
* @param ctx the parse tree
|
|
2019
|
-
*/
|
|
2020
|
-
enterExpressionEOF?: (ctx: ExpressionEOFContext) => void;
|
|
2021
|
-
/**
|
|
2022
|
-
* Exit a parse tree produced by `HamelinParser.expressionEOF`.
|
|
2023
|
-
* @param ctx the parse tree
|
|
2024
|
-
*/
|
|
2025
|
-
exitExpressionEOF?: (ctx: ExpressionEOFContext) => void;
|
|
2026
|
-
/**
|
|
2027
|
-
* Enter a parse tree produced by `HamelinParser.pipelineEOF`.
|
|
2028
|
-
* @param ctx the parse tree
|
|
2029
|
-
*/
|
|
2030
|
-
enterPipelineEOF?: (ctx: PipelineEOFContext) => void;
|
|
2031
|
-
/**
|
|
2032
|
-
* Exit a parse tree produced by `HamelinParser.pipelineEOF`.
|
|
2033
|
-
* @param ctx the parse tree
|
|
2034
|
-
*/
|
|
2035
|
-
exitPipelineEOF?: (ctx: PipelineEOFContext) => void;
|
|
2036
|
-
/**
|
|
2037
|
-
* Enter a parse tree produced by `HamelinParser.simpleIdentifierEOF`.
|
|
2038
|
-
* @param ctx the parse tree
|
|
2039
|
-
*/
|
|
2040
|
-
enterSimpleIdentifierEOF?: (ctx: SimpleIdentifierEOFContext) => void;
|
|
2041
|
-
/**
|
|
2042
|
-
* Exit a parse tree produced by `HamelinParser.simpleIdentifierEOF`.
|
|
2043
|
-
* @param ctx the parse tree
|
|
2044
|
-
*/
|
|
2045
|
-
exitSimpleIdentifierEOF?: (ctx: SimpleIdentifierEOFContext) => void;
|
|
2046
|
-
/**
|
|
2047
|
-
* Enter a parse tree produced by the `withQuery`
|
|
2048
|
-
* labeled alternative in `HamelinParser.query`.
|
|
2049
|
-
* @param ctx the parse tree
|
|
2050
|
-
*/
|
|
2051
|
-
enterWithQuery?: (ctx: WithQueryContext) => void;
|
|
2052
|
-
/**
|
|
2053
|
-
* Exit a parse tree produced by the `withQuery`
|
|
2054
|
-
* labeled alternative in `HamelinParser.query`.
|
|
2055
|
-
* @param ctx the parse tree
|
|
2056
|
-
*/
|
|
2057
|
-
exitWithQuery?: (ctx: WithQueryContext) => void;
|
|
2058
|
-
/**
|
|
2059
|
-
* Enter a parse tree produced by the `standaloneQuery`
|
|
2060
|
-
* labeled alternative in `HamelinParser.query`.
|
|
2061
|
-
* @param ctx the parse tree
|
|
2062
|
-
*/
|
|
2063
|
-
enterStandaloneQuery?: (ctx: StandaloneQueryContext) => void;
|
|
2064
|
-
/**
|
|
2065
|
-
* Exit a parse tree produced by the `standaloneQuery`
|
|
2066
|
-
* labeled alternative in `HamelinParser.query`.
|
|
2067
|
-
* @param ctx the parse tree
|
|
2068
|
-
*/
|
|
2069
|
-
exitStandaloneQuery?: (ctx: StandaloneQueryContext) => void;
|
|
2070
|
-
/**
|
|
2071
|
-
* Enter a parse tree produced by the `expressionQuery`
|
|
2072
|
-
* labeled alternative in `HamelinParser.query`.
|
|
2073
|
-
* @param ctx the parse tree
|
|
2074
|
-
*/
|
|
2075
|
-
enterExpressionQuery?: (ctx: ExpressionQueryContext) => void;
|
|
2076
|
-
/**
|
|
2077
|
-
* Exit a parse tree produced by the `expressionQuery`
|
|
2078
|
-
* labeled alternative in `HamelinParser.query`.
|
|
2079
|
-
* @param ctx the parse tree
|
|
2080
|
-
*/
|
|
2081
|
-
exitExpressionQuery?: (ctx: ExpressionQueryContext) => void;
|
|
2082
|
-
/**
|
|
2083
|
-
* Enter a parse tree produced by the `pipelineAlt`
|
|
2084
|
-
* labeled alternative in `HamelinParser.pipeline`.
|
|
2085
|
-
* @param ctx the parse tree
|
|
2086
|
-
*/
|
|
2087
|
-
enterPipelineAlt?: (ctx: PipelineAltContext) => void;
|
|
2088
|
-
/**
|
|
2089
|
-
* Exit a parse tree produced by the `pipelineAlt`
|
|
2090
|
-
* labeled alternative in `HamelinParser.pipeline`.
|
|
2091
|
-
* @param ctx the parse tree
|
|
2092
|
-
*/
|
|
2093
|
-
exitPipelineAlt?: (ctx: PipelineAltContext) => void;
|
|
2094
|
-
/**
|
|
2095
|
-
* Enter a parse tree produced by the `letCommand`
|
|
2096
|
-
* labeled alternative in `HamelinParser.command`.
|
|
2097
|
-
* @param ctx the parse tree
|
|
2098
|
-
*/
|
|
2099
|
-
enterLetCommand?: (ctx: LetCommandContext) => void;
|
|
2100
|
-
/**
|
|
2101
|
-
* Exit a parse tree produced by the `letCommand`
|
|
2102
|
-
* labeled alternative in `HamelinParser.command`.
|
|
2103
|
-
* @param ctx the parse tree
|
|
2104
|
-
*/
|
|
2105
|
-
exitLetCommand?: (ctx: LetCommandContext) => void;
|
|
2106
|
-
/**
|
|
2107
|
-
* Enter a parse tree produced by the `whereCommand`
|
|
2108
|
-
* labeled alternative in `HamelinParser.command`.
|
|
2109
|
-
* @param ctx the parse tree
|
|
2110
|
-
*/
|
|
2111
|
-
enterWhereCommand?: (ctx: WhereCommandContext) => void;
|
|
2112
|
-
/**
|
|
2113
|
-
* Exit a parse tree produced by the `whereCommand`
|
|
2114
|
-
* labeled alternative in `HamelinParser.command`.
|
|
2115
|
-
* @param ctx the parse tree
|
|
2116
|
-
*/
|
|
2117
|
-
exitWhereCommand?: (ctx: WhereCommandContext) => void;
|
|
2118
|
-
/**
|
|
2119
|
-
* Enter a parse tree produced by the `selectCommand`
|
|
2120
|
-
* labeled alternative in `HamelinParser.command`.
|
|
2121
|
-
* @param ctx the parse tree
|
|
2122
|
-
*/
|
|
2123
|
-
enterSelectCommand?: (ctx: SelectCommandContext) => void;
|
|
2124
|
-
/**
|
|
2125
|
-
* Exit a parse tree produced by the `selectCommand`
|
|
2126
|
-
* labeled alternative in `HamelinParser.command`.
|
|
2127
|
-
* @param ctx the parse tree
|
|
2128
|
-
*/
|
|
2129
|
-
exitSelectCommand?: (ctx: SelectCommandContext) => void;
|
|
2130
|
-
/**
|
|
2131
|
-
* Enter a parse tree produced by the `dropCommand`
|
|
2132
|
-
* labeled alternative in `HamelinParser.command`.
|
|
2133
|
-
* @param ctx the parse tree
|
|
2134
|
-
*/
|
|
2135
|
-
enterDropCommand?: (ctx: DropCommandContext) => void;
|
|
2136
|
-
/**
|
|
2137
|
-
* Exit a parse tree produced by the `dropCommand`
|
|
2138
|
-
* labeled alternative in `HamelinParser.command`.
|
|
2139
|
-
* @param ctx the parse tree
|
|
2140
|
-
*/
|
|
2141
|
-
exitDropCommand?: (ctx: DropCommandContext) => void;
|
|
2142
|
-
/**
|
|
2143
|
-
* Enter a parse tree produced by the `fromCommand`
|
|
2144
|
-
* labeled alternative in `HamelinParser.command`.
|
|
2145
|
-
* @param ctx the parse tree
|
|
2146
|
-
*/
|
|
2147
|
-
enterFromCommand?: (ctx: FromCommandContext) => void;
|
|
2148
|
-
/**
|
|
2149
|
-
* Exit a parse tree produced by the `fromCommand`
|
|
2150
|
-
* labeled alternative in `HamelinParser.command`.
|
|
2151
|
-
* @param ctx the parse tree
|
|
2152
|
-
*/
|
|
2153
|
-
exitFromCommand?: (ctx: FromCommandContext) => void;
|
|
2154
|
-
/**
|
|
2155
|
-
* Enter a parse tree produced by the `unionCommand`
|
|
2156
|
-
* labeled alternative in `HamelinParser.command`.
|
|
2157
|
-
* @param ctx the parse tree
|
|
2158
|
-
*/
|
|
2159
|
-
enterUnionCommand?: (ctx: UnionCommandContext) => void;
|
|
2160
|
-
/**
|
|
2161
|
-
* Exit a parse tree produced by the `unionCommand`
|
|
2162
|
-
* labeled alternative in `HamelinParser.command`.
|
|
2163
|
-
* @param ctx the parse tree
|
|
2164
|
-
*/
|
|
2165
|
-
exitUnionCommand?: (ctx: UnionCommandContext) => void;
|
|
2166
|
-
/**
|
|
2167
|
-
* Enter a parse tree produced by the `limitCommand`
|
|
2168
|
-
* labeled alternative in `HamelinParser.command`.
|
|
2169
|
-
* @param ctx the parse tree
|
|
2170
|
-
*/
|
|
2171
|
-
enterLimitCommand?: (ctx: LimitCommandContext) => void;
|
|
2172
|
-
/**
|
|
2173
|
-
* Exit a parse tree produced by the `limitCommand`
|
|
2174
|
-
* labeled alternative in `HamelinParser.command`.
|
|
2175
|
-
* @param ctx the parse tree
|
|
2176
|
-
*/
|
|
2177
|
-
exitLimitCommand?: (ctx: LimitCommandContext) => void;
|
|
2178
|
-
/**
|
|
2179
|
-
* Enter a parse tree produced by the `parseCommand`
|
|
2180
|
-
* labeled alternative in `HamelinParser.command`.
|
|
2181
|
-
* @param ctx the parse tree
|
|
2182
|
-
*/
|
|
2183
|
-
enterParseCommand?: (ctx: ParseCommandContext) => void;
|
|
2184
|
-
/**
|
|
2185
|
-
* Exit a parse tree produced by the `parseCommand`
|
|
2186
|
-
* labeled alternative in `HamelinParser.command`.
|
|
2187
|
-
* @param ctx the parse tree
|
|
2188
|
-
*/
|
|
2189
|
-
exitParseCommand?: (ctx: ParseCommandContext) => void;
|
|
2190
|
-
/**
|
|
2191
|
-
* Enter a parse tree produced by the `withinCommand`
|
|
2192
|
-
* labeled alternative in `HamelinParser.command`.
|
|
2193
|
-
* @param ctx the parse tree
|
|
2194
|
-
*/
|
|
2195
|
-
enterWithinCommand?: (ctx: WithinCommandContext) => void;
|
|
2196
|
-
/**
|
|
2197
|
-
* Exit a parse tree produced by the `withinCommand`
|
|
2198
|
-
* labeled alternative in `HamelinParser.command`.
|
|
2199
|
-
* @param ctx the parse tree
|
|
2200
|
-
*/
|
|
2201
|
-
exitWithinCommand?: (ctx: WithinCommandContext) => void;
|
|
2202
|
-
/**
|
|
2203
|
-
* Enter a parse tree produced by the `aggCommand`
|
|
2204
|
-
* labeled alternative in `HamelinParser.command`.
|
|
2205
|
-
* @param ctx the parse tree
|
|
2206
|
-
*/
|
|
2207
|
-
enterAggCommand?: (ctx: AggCommandContext) => void;
|
|
2208
|
-
/**
|
|
2209
|
-
* Exit a parse tree produced by the `aggCommand`
|
|
2210
|
-
* labeled alternative in `HamelinParser.command`.
|
|
2211
|
-
* @param ctx the parse tree
|
|
2212
|
-
*/
|
|
2213
|
-
exitAggCommand?: (ctx: AggCommandContext) => void;
|
|
2214
|
-
/**
|
|
2215
|
-
* Enter a parse tree produced by the `sortCommand`
|
|
2216
|
-
* labeled alternative in `HamelinParser.command`.
|
|
2217
|
-
* @param ctx the parse tree
|
|
2218
|
-
*/
|
|
2219
|
-
enterSortCommand?: (ctx: SortCommandContext) => void;
|
|
2220
|
-
/**
|
|
2221
|
-
* Exit a parse tree produced by the `sortCommand`
|
|
2222
|
-
* labeled alternative in `HamelinParser.command`.
|
|
2223
|
-
* @param ctx the parse tree
|
|
2224
|
-
*/
|
|
2225
|
-
exitSortCommand?: (ctx: SortCommandContext) => void;
|
|
2226
|
-
/**
|
|
2227
|
-
* Enter a parse tree produced by the `windowCommand`
|
|
2228
|
-
* labeled alternative in `HamelinParser.command`.
|
|
2229
|
-
* @param ctx the parse tree
|
|
2230
|
-
*/
|
|
2231
|
-
enterWindowCommand?: (ctx: WindowCommandContext) => void;
|
|
2232
|
-
/**
|
|
2233
|
-
* Exit a parse tree produced by the `windowCommand`
|
|
2234
|
-
* labeled alternative in `HamelinParser.command`.
|
|
2235
|
-
* @param ctx the parse tree
|
|
2236
|
-
*/
|
|
2237
|
-
exitWindowCommand?: (ctx: WindowCommandContext) => void;
|
|
2238
|
-
/**
|
|
2239
|
-
* Enter a parse tree produced by the `appendCommand`
|
|
2240
|
-
* labeled alternative in `HamelinParser.command`.
|
|
2241
|
-
* @param ctx the parse tree
|
|
2242
|
-
*/
|
|
2243
|
-
enterAppendCommand?: (ctx: AppendCommandContext) => void;
|
|
2244
|
-
/**
|
|
2245
|
-
* Exit a parse tree produced by the `appendCommand`
|
|
2246
|
-
* labeled alternative in `HamelinParser.command`.
|
|
2247
|
-
* @param ctx the parse tree
|
|
2248
|
-
*/
|
|
2249
|
-
exitAppendCommand?: (ctx: AppendCommandContext) => void;
|
|
2250
|
-
/**
|
|
2251
|
-
* Enter a parse tree produced by the `joinCommand`
|
|
2252
|
-
* labeled alternative in `HamelinParser.command`.
|
|
2253
|
-
* @param ctx the parse tree
|
|
2254
|
-
*/
|
|
2255
|
-
enterJoinCommand?: (ctx: JoinCommandContext) => void;
|
|
2256
|
-
/**
|
|
2257
|
-
* Exit a parse tree produced by the `joinCommand`
|
|
2258
|
-
* labeled alternative in `HamelinParser.command`.
|
|
2259
|
-
* @param ctx the parse tree
|
|
2260
|
-
*/
|
|
2261
|
-
exitJoinCommand?: (ctx: JoinCommandContext) => void;
|
|
2262
|
-
/**
|
|
2263
|
-
* Enter a parse tree produced by the `explodeCommand`
|
|
2264
|
-
* labeled alternative in `HamelinParser.command`.
|
|
2265
|
-
* @param ctx the parse tree
|
|
2266
|
-
*/
|
|
2267
|
-
enterExplodeCommand?: (ctx: ExplodeCommandContext) => void;
|
|
2268
|
-
/**
|
|
2269
|
-
* Exit a parse tree produced by the `explodeCommand`
|
|
2270
|
-
* labeled alternative in `HamelinParser.command`.
|
|
2271
|
-
* @param ctx the parse tree
|
|
2272
|
-
*/
|
|
2273
|
-
exitExplodeCommand?: (ctx: ExplodeCommandContext) => void;
|
|
2274
|
-
/**
|
|
2275
|
-
* Enter a parse tree produced by the `unnestCommand`
|
|
2276
|
-
* labeled alternative in `HamelinParser.command`.
|
|
2277
|
-
* @param ctx the parse tree
|
|
2278
|
-
*/
|
|
2279
|
-
enterUnnestCommand?: (ctx: UnnestCommandContext) => void;
|
|
2280
|
-
/**
|
|
2281
|
-
* Exit a parse tree produced by the `unnestCommand`
|
|
2282
|
-
* labeled alternative in `HamelinParser.command`.
|
|
2283
|
-
* @param ctx the parse tree
|
|
2284
|
-
*/
|
|
2285
|
-
exitUnnestCommand?: (ctx: UnnestCommandContext) => void;
|
|
2286
|
-
/**
|
|
2287
|
-
* Enter a parse tree produced by the `nestCommand`
|
|
2288
|
-
* labeled alternative in `HamelinParser.command`.
|
|
2289
|
-
* @param ctx the parse tree
|
|
2290
|
-
*/
|
|
2291
|
-
enterNestCommand?: (ctx: NestCommandContext) => void;
|
|
2292
|
-
/**
|
|
2293
|
-
* Exit a parse tree produced by the `nestCommand`
|
|
2294
|
-
* labeled alternative in `HamelinParser.command`.
|
|
2295
|
-
* @param ctx the parse tree
|
|
2296
|
-
*/
|
|
2297
|
-
exitNestCommand?: (ctx: NestCommandContext) => void;
|
|
2298
|
-
/**
|
|
2299
|
-
* Enter a parse tree produced by the `matchCommand`
|
|
2300
|
-
* labeled alternative in `HamelinParser.command`.
|
|
2301
|
-
* @param ctx the parse tree
|
|
2302
|
-
*/
|
|
2303
|
-
enterMatchCommand?: (ctx: MatchCommandContext) => void;
|
|
2304
|
-
/**
|
|
2305
|
-
* Exit a parse tree produced by the `matchCommand`
|
|
2306
|
-
* labeled alternative in `HamelinParser.command`.
|
|
2307
|
-
* @param ctx the parse tree
|
|
2308
|
-
*/
|
|
2309
|
-
exitMatchCommand?: (ctx: MatchCommandContext) => void;
|
|
2310
|
-
/**
|
|
2311
|
-
* Enter a parse tree produced by `HamelinParser.assignmentClause`.
|
|
2312
|
-
* @param ctx the parse tree
|
|
2313
|
-
*/
|
|
2314
|
-
enterAssignmentClause?: (ctx: AssignmentClauseContext) => void;
|
|
2315
|
-
/**
|
|
2316
|
-
* Exit a parse tree produced by `HamelinParser.assignmentClause`.
|
|
2317
|
-
* @param ctx the parse tree
|
|
2318
|
-
*/
|
|
2319
|
-
exitAssignmentClause?: (ctx: AssignmentClauseContext) => void;
|
|
2320
|
-
/**
|
|
2321
|
-
* Enter a parse tree produced by `HamelinParser.groupClause`.
|
|
2322
|
-
* @param ctx the parse tree
|
|
2323
|
-
*/
|
|
2324
|
-
enterGroupClause?: (ctx: GroupClauseContext) => void;
|
|
2325
|
-
/**
|
|
2326
|
-
* Exit a parse tree produced by `HamelinParser.groupClause`.
|
|
2327
|
-
* @param ctx the parse tree
|
|
2328
|
-
*/
|
|
2329
|
-
exitGroupClause?: (ctx: GroupClauseContext) => void;
|
|
2330
|
-
/**
|
|
2331
|
-
* Enter a parse tree produced by `HamelinParser.assignment`.
|
|
2332
|
-
* @param ctx the parse tree
|
|
2333
|
-
*/
|
|
2334
|
-
enterAssignment?: (ctx: AssignmentContext) => void;
|
|
2335
|
-
/**
|
|
2336
|
-
* Exit a parse tree produced by `HamelinParser.assignment`.
|
|
2337
|
-
* @param ctx the parse tree
|
|
2338
|
-
*/
|
|
2339
|
-
exitAssignment?: (ctx: AssignmentContext) => void;
|
|
2340
|
-
/**
|
|
2341
|
-
* Enter a parse tree produced by `HamelinParser.matchDefine`.
|
|
2342
|
-
* @param ctx the parse tree
|
|
2343
|
-
*/
|
|
2344
|
-
enterMatchDefine?: (ctx: MatchDefineContext) => void;
|
|
2345
|
-
/**
|
|
2346
|
-
* Exit a parse tree produced by `HamelinParser.matchDefine`.
|
|
2347
|
-
* @param ctx the parse tree
|
|
2348
|
-
*/
|
|
2349
|
-
exitMatchDefine?: (ctx: MatchDefineContext) => void;
|
|
2350
|
-
/**
|
|
2351
|
-
* Enter a parse tree produced by `HamelinParser.selection`.
|
|
2352
|
-
* @param ctx the parse tree
|
|
2353
|
-
*/
|
|
2354
|
-
enterSelection?: (ctx: SelectionContext) => void;
|
|
2355
|
-
/**
|
|
2356
|
-
* Exit a parse tree produced by `HamelinParser.selection`.
|
|
2357
|
-
* @param ctx the parse tree
|
|
2358
|
-
*/
|
|
2359
|
-
exitSelection?: (ctx: SelectionContext) => void;
|
|
2360
|
-
/**
|
|
2361
|
-
* Enter a parse tree produced by `HamelinParser.sortExpression`.
|
|
2362
|
-
* @param ctx the parse tree
|
|
2363
|
-
*/
|
|
2364
|
-
enterSortExpression?: (ctx: SortExpressionContext) => void;
|
|
2365
|
-
/**
|
|
2366
|
-
* Exit a parse tree produced by `HamelinParser.sortExpression`.
|
|
2367
|
-
* @param ctx the parse tree
|
|
2368
|
-
*/
|
|
2369
|
-
exitSortExpression?: (ctx: SortExpressionContext) => void;
|
|
2370
|
-
/**
|
|
2371
|
-
* Enter a parse tree produced by `HamelinParser.tableAlias`.
|
|
2372
|
-
* @param ctx the parse tree
|
|
2373
|
-
*/
|
|
2374
|
-
enterTableAlias?: (ctx: TableAliasContext) => void;
|
|
2375
|
-
/**
|
|
2376
|
-
* Exit a parse tree produced by `HamelinParser.tableAlias`.
|
|
2377
|
-
* @param ctx the parse tree
|
|
2378
|
-
*/
|
|
2379
|
-
exitTableAlias?: (ctx: TableAliasContext) => void;
|
|
2380
|
-
/**
|
|
2381
|
-
* Enter a parse tree produced by `HamelinParser.fromClause`.
|
|
2382
|
-
* @param ctx the parse tree
|
|
2383
|
-
*/
|
|
2384
|
-
enterFromClause?: (ctx: FromClauseContext) => void;
|
|
2385
|
-
/**
|
|
2386
|
-
* Exit a parse tree produced by `HamelinParser.fromClause`.
|
|
2387
|
-
* @param ctx the parse tree
|
|
2388
|
-
*/
|
|
2389
|
-
exitFromClause?: (ctx: FromClauseContext) => void;
|
|
2390
|
-
/**
|
|
2391
|
-
* Enter a parse tree produced by the `structLiteral`
|
|
2392
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2393
|
-
* @param ctx the parse tree
|
|
2394
|
-
*/
|
|
2395
|
-
enterStructLiteral?: (ctx: StructLiteralContext) => void;
|
|
2396
|
-
/**
|
|
2397
|
-
* Exit a parse tree produced by the `structLiteral`
|
|
2398
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2399
|
-
* @param ctx the parse tree
|
|
2400
|
-
*/
|
|
2401
|
-
exitStructLiteral?: (ctx: StructLiteralContext) => void;
|
|
2402
|
-
/**
|
|
2403
|
-
* Enter a parse tree produced by the `columnReferenceAlt`
|
|
2404
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2405
|
-
* @param ctx the parse tree
|
|
2406
|
-
*/
|
|
2407
|
-
enterColumnReferenceAlt?: (ctx: ColumnReferenceAltContext) => void;
|
|
2408
|
-
/**
|
|
2409
|
-
* Exit a parse tree produced by the `columnReferenceAlt`
|
|
2410
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2411
|
-
* @param ctx the parse tree
|
|
2412
|
-
*/
|
|
2413
|
-
exitColumnReferenceAlt?: (ctx: ColumnReferenceAltContext) => void;
|
|
2414
|
-
/**
|
|
2415
|
-
* Enter a parse tree produced by the `deref`
|
|
2416
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2417
|
-
* @param ctx the parse tree
|
|
2418
|
-
*/
|
|
2419
|
-
enterDeref?: (ctx: DerefContext) => void;
|
|
2420
|
-
/**
|
|
2421
|
-
* Exit a parse tree produced by the `deref`
|
|
2422
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2423
|
-
* @param ctx the parse tree
|
|
2424
|
-
*/
|
|
2425
|
-
exitDeref?: (ctx: DerefContext) => void;
|
|
2426
|
-
/**
|
|
2427
|
-
* Enter a parse tree produced by the `nullLiteral`
|
|
2428
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2429
|
-
* @param ctx the parse tree
|
|
2430
|
-
*/
|
|
2431
|
-
enterNullLiteral?: (ctx: NullLiteralContext) => void;
|
|
2432
|
-
/**
|
|
2433
|
-
* Exit a parse tree produced by the `nullLiteral`
|
|
2434
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2435
|
-
* @param ctx the parse tree
|
|
2436
|
-
*/
|
|
2437
|
-
exitNullLiteral?: (ctx: NullLiteralContext) => void;
|
|
2438
|
-
/**
|
|
2439
|
-
* Enter a parse tree produced by the `arrayLiteral`
|
|
2440
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2441
|
-
* @param ctx the parse tree
|
|
2442
|
-
*/
|
|
2443
|
-
enterArrayLiteral?: (ctx: ArrayLiteralContext) => void;
|
|
2444
|
-
/**
|
|
2445
|
-
* Exit a parse tree produced by the `arrayLiteral`
|
|
2446
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2447
|
-
* @param ctx the parse tree
|
|
2448
|
-
*/
|
|
2449
|
-
exitArrayLiteral?: (ctx: ArrayLiteralContext) => void;
|
|
2450
|
-
/**
|
|
2451
|
-
* Enter a parse tree produced by the `pairLiteral`
|
|
2452
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2453
|
-
* @param ctx the parse tree
|
|
2454
|
-
*/
|
|
2455
|
-
enterPairLiteral?: (ctx: PairLiteralContext) => void;
|
|
2456
|
-
/**
|
|
2457
|
-
* Exit a parse tree produced by the `pairLiteral`
|
|
2458
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2459
|
-
* @param ctx the parse tree
|
|
2460
|
-
*/
|
|
2461
|
-
exitPairLiteral?: (ctx: PairLiteralContext) => void;
|
|
2462
|
-
/**
|
|
2463
|
-
* Enter a parse tree produced by the `tsTrunc`
|
|
2464
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2465
|
-
* @param ctx the parse tree
|
|
2466
|
-
*/
|
|
2467
|
-
enterTsTrunc?: (ctx: TsTruncContext) => void;
|
|
2468
|
-
/**
|
|
2469
|
-
* Exit a parse tree produced by the `tsTrunc`
|
|
2470
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2471
|
-
* @param ctx the parse tree
|
|
2472
|
-
*/
|
|
2473
|
-
exitTsTrunc?: (ctx: TsTruncContext) => void;
|
|
2474
|
-
/**
|
|
2475
|
-
* Enter a parse tree produced by the `rowsLiteral`
|
|
2476
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2477
|
-
* @param ctx the parse tree
|
|
2478
|
-
*/
|
|
2479
|
-
enterRowsLiteral?: (ctx: RowsLiteralContext) => void;
|
|
2480
|
-
/**
|
|
2481
|
-
* Exit a parse tree produced by the `rowsLiteral`
|
|
2482
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2483
|
-
* @param ctx the parse tree
|
|
2484
|
-
*/
|
|
2485
|
-
exitRowsLiteral?: (ctx: RowsLiteralContext) => void;
|
|
2486
|
-
/**
|
|
2487
|
-
* Enter a parse tree produced by the `tsTruncTimestampLiteral`
|
|
2488
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2489
|
-
* @param ctx the parse tree
|
|
2490
|
-
*/
|
|
2491
|
-
enterTsTruncTimestampLiteral?: (ctx: TsTruncTimestampLiteralContext) => void;
|
|
2492
|
-
/**
|
|
2493
|
-
* Exit a parse tree produced by the `tsTruncTimestampLiteral`
|
|
2494
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2495
|
-
* @param ctx the parse tree
|
|
2496
|
-
*/
|
|
2497
|
-
exitTsTruncTimestampLiteral?: (ctx: TsTruncTimestampLiteralContext) => void;
|
|
2498
|
-
/**
|
|
2499
|
-
* Enter a parse tree produced by the `unaryPrefixOperator`
|
|
2500
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2501
|
-
* @param ctx the parse tree
|
|
2502
|
-
*/
|
|
2503
|
-
enterUnaryPrefixOperator?: (ctx: UnaryPrefixOperatorContext) => void;
|
|
2504
|
-
/**
|
|
2505
|
-
* Exit a parse tree produced by the `unaryPrefixOperator`
|
|
2506
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2507
|
-
* @param ctx the parse tree
|
|
2508
|
-
*/
|
|
2509
|
-
exitUnaryPrefixOperator?: (ctx: UnaryPrefixOperatorContext) => void;
|
|
2510
|
-
/**
|
|
2511
|
-
* Enter a parse tree produced by the `binaryLiteral`
|
|
2512
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2513
|
-
* @param ctx the parse tree
|
|
2514
|
-
*/
|
|
2515
|
-
enterBinaryLiteral?: (ctx: BinaryLiteralContext) => void;
|
|
2516
|
-
/**
|
|
2517
|
-
* Exit a parse tree produced by the `binaryLiteral`
|
|
2518
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2519
|
-
* @param ctx the parse tree
|
|
2520
|
-
*/
|
|
2521
|
-
exitBinaryLiteral?: (ctx: BinaryLiteralContext) => void;
|
|
2522
|
-
/**
|
|
2523
|
-
* Enter a parse tree produced by the `indexAccess`
|
|
2524
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2525
|
-
* @param ctx the parse tree
|
|
2526
|
-
*/
|
|
2527
|
-
enterIndexAccess?: (ctx: IndexAccessContext) => void;
|
|
2528
|
-
/**
|
|
2529
|
-
* Exit a parse tree produced by the `indexAccess`
|
|
2530
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2531
|
-
* @param ctx the parse tree
|
|
2532
|
-
*/
|
|
2533
|
-
exitIndexAccess?: (ctx: IndexAccessContext) => void;
|
|
2534
|
-
/**
|
|
2535
|
-
* Enter a parse tree produced by the `cast`
|
|
2536
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2537
|
-
* @param ctx the parse tree
|
|
2538
|
-
*/
|
|
2539
|
-
enterCast?: (ctx: CastContext) => void;
|
|
2540
|
-
/**
|
|
2541
|
-
* Exit a parse tree produced by the `cast`
|
|
2542
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2543
|
-
* @param ctx the parse tree
|
|
2544
|
-
*/
|
|
2545
|
-
exitCast?: (ctx: CastContext) => void;
|
|
2546
|
-
/**
|
|
2547
|
-
* Enter a parse tree produced by the `unaryPostfixOperator`
|
|
2548
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2549
|
-
* @param ctx the parse tree
|
|
2550
|
-
*/
|
|
2551
|
-
enterUnaryPostfixOperator?: (ctx: UnaryPostfixOperatorContext) => void;
|
|
2552
|
-
/**
|
|
2553
|
-
* Exit a parse tree produced by the `unaryPostfixOperator`
|
|
2554
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2555
|
-
* @param ctx the parse tree
|
|
2556
|
-
*/
|
|
2557
|
-
exitUnaryPostfixOperator?: (ctx: UnaryPostfixOperatorContext) => void;
|
|
2558
|
-
/**
|
|
2559
|
-
* Enter a parse tree produced by the `tupleLiteral`
|
|
2560
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2561
|
-
* @param ctx the parse tree
|
|
2562
|
-
*/
|
|
2563
|
-
enterTupleLiteral?: (ctx: TupleLiteralContext) => void;
|
|
2564
|
-
/**
|
|
2565
|
-
* Exit a parse tree produced by the `tupleLiteral`
|
|
2566
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2567
|
-
* @param ctx the parse tree
|
|
2568
|
-
*/
|
|
2569
|
-
exitTupleLiteral?: (ctx: TupleLiteralContext) => void;
|
|
2570
|
-
/**
|
|
2571
|
-
* Enter a parse tree produced by the `parenthesizedExpression`
|
|
2572
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2573
|
-
* @param ctx the parse tree
|
|
2574
|
-
*/
|
|
2575
|
-
enterParenthesizedExpression?: (ctx: ParenthesizedExpressionContext) => void;
|
|
2576
|
-
/**
|
|
2577
|
-
* Exit a parse tree produced by the `parenthesizedExpression`
|
|
2578
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2579
|
-
* @param ctx the parse tree
|
|
2580
|
-
*/
|
|
2581
|
-
exitParenthesizedExpression?: (ctx: ParenthesizedExpressionContext) => void;
|
|
2582
|
-
/**
|
|
2583
|
-
* Enter a parse tree produced by the `stringLiteral`
|
|
2584
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2585
|
-
* @param ctx the parse tree
|
|
2586
|
-
*/
|
|
2587
|
-
enterStringLiteral?: (ctx: StringLiteralContext) => void;
|
|
2588
|
-
/**
|
|
2589
|
-
* Exit a parse tree produced by the `stringLiteral`
|
|
2590
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2591
|
-
* @param ctx the parse tree
|
|
2592
|
-
*/
|
|
2593
|
-
exitStringLiteral?: (ctx: StringLiteralContext) => void;
|
|
2594
|
-
/**
|
|
2595
|
-
* Enter a parse tree produced by the `binaryOperator`
|
|
2596
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2597
|
-
* @param ctx the parse tree
|
|
2598
|
-
*/
|
|
2599
|
-
enterBinaryOperator?: (ctx: BinaryOperatorContext) => void;
|
|
2600
|
-
/**
|
|
2601
|
-
* Exit a parse tree produced by the `binaryOperator`
|
|
2602
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2603
|
-
* @param ctx the parse tree
|
|
2604
|
-
*/
|
|
2605
|
-
exitBinaryOperator?: (ctx: BinaryOperatorContext) => void;
|
|
2606
|
-
/**
|
|
2607
|
-
* Enter a parse tree produced by the `functionCall`
|
|
2608
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2609
|
-
* @param ctx the parse tree
|
|
2610
|
-
*/
|
|
2611
|
-
enterFunctionCall?: (ctx: FunctionCallContext) => void;
|
|
2612
|
-
/**
|
|
2613
|
-
* Exit a parse tree produced by the `functionCall`
|
|
2614
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2615
|
-
* @param ctx the parse tree
|
|
2616
|
-
*/
|
|
2617
|
-
exitFunctionCall?: (ctx: FunctionCallContext) => void;
|
|
2618
|
-
/**
|
|
2619
|
-
* Enter a parse tree produced by the `unboundRangeLiteral`
|
|
2620
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2621
|
-
* @param ctx the parse tree
|
|
2622
|
-
*/
|
|
2623
|
-
enterUnboundRangeLiteral?: (ctx: UnboundRangeLiteralContext) => void;
|
|
2624
|
-
/**
|
|
2625
|
-
* Exit a parse tree produced by the `unboundRangeLiteral`
|
|
2626
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2627
|
-
* @param ctx the parse tree
|
|
2628
|
-
*/
|
|
2629
|
-
exitUnboundRangeLiteral?: (ctx: UnboundRangeLiteralContext) => void;
|
|
2630
|
-
/**
|
|
2631
|
-
* Enter a parse tree produced by the `numericLiteral`
|
|
2632
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2633
|
-
* @param ctx the parse tree
|
|
2634
|
-
*/
|
|
2635
|
-
enterNumericLiteral?: (ctx: NumericLiteralContext) => void;
|
|
2636
|
-
/**
|
|
2637
|
-
* Exit a parse tree produced by the `numericLiteral`
|
|
2638
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2639
|
-
* @param ctx the parse tree
|
|
2640
|
-
*/
|
|
2641
|
-
exitNumericLiteral?: (ctx: NumericLiteralContext) => void;
|
|
2642
|
-
/**
|
|
2643
|
-
* Enter a parse tree produced by the `booleanLiteral`
|
|
2644
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2645
|
-
* @param ctx the parse tree
|
|
2646
|
-
*/
|
|
2647
|
-
enterBooleanLiteral?: (ctx: BooleanLiteralContext) => void;
|
|
2648
|
-
/**
|
|
2649
|
-
* Exit a parse tree produced by the `booleanLiteral`
|
|
2650
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2651
|
-
* @param ctx the parse tree
|
|
2652
|
-
*/
|
|
2653
|
-
exitBooleanLiteral?: (ctx: BooleanLiteralContext) => void;
|
|
2654
|
-
/**
|
|
2655
|
-
* Enter a parse tree produced by the `intervalLiteral`
|
|
2656
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2657
|
-
* @param ctx the parse tree
|
|
2658
|
-
*/
|
|
2659
|
-
enterIntervalLiteral?: (ctx: IntervalLiteralContext) => void;
|
|
2660
|
-
/**
|
|
2661
|
-
* Exit a parse tree produced by the `intervalLiteral`
|
|
2662
|
-
* labeled alternative in `HamelinParser.expression`.
|
|
2663
|
-
* @param ctx the parse tree
|
|
2664
|
-
*/
|
|
2665
|
-
exitIntervalLiteral?: (ctx: IntervalLiteralContext) => void;
|
|
2666
|
-
/**
|
|
2667
|
-
* Enter a parse tree produced by the `parameterizedType`
|
|
2668
|
-
* labeled alternative in `HamelinParser.hamelintype`.
|
|
2669
|
-
* @param ctx the parse tree
|
|
2670
|
-
*/
|
|
2671
|
-
enterParameterizedType?: (ctx: ParameterizedTypeContext) => void;
|
|
2672
|
-
/**
|
|
2673
|
-
* Exit a parse tree produced by the `parameterizedType`
|
|
2674
|
-
* labeled alternative in `HamelinParser.hamelintype`.
|
|
2675
|
-
* @param ctx the parse tree
|
|
2676
|
-
*/
|
|
2677
|
-
exitParameterizedType?: (ctx: ParameterizedTypeContext) => void;
|
|
2678
|
-
/**
|
|
2679
|
-
* Enter a parse tree produced by the `typeWithArguments`
|
|
2680
|
-
* labeled alternative in `HamelinParser.hamelintype`.
|
|
2681
|
-
* @param ctx the parse tree
|
|
2682
|
-
*/
|
|
2683
|
-
enterTypeWithArguments?: (ctx: TypeWithArgumentsContext) => void;
|
|
2684
|
-
/**
|
|
2685
|
-
* Exit a parse tree produced by the `typeWithArguments`
|
|
2686
|
-
* labeled alternative in `HamelinParser.hamelintype`.
|
|
2687
|
-
* @param ctx the parse tree
|
|
2688
|
-
*/
|
|
2689
|
-
exitTypeWithArguments?: (ctx: TypeWithArgumentsContext) => void;
|
|
2690
|
-
/**
|
|
2691
|
-
* Enter a parse tree produced by the `structType`
|
|
2692
|
-
* labeled alternative in `HamelinParser.hamelintype`.
|
|
2693
|
-
* @param ctx the parse tree
|
|
2694
|
-
*/
|
|
2695
|
-
enterStructType?: (ctx: StructTypeContext) => void;
|
|
2696
|
-
/**
|
|
2697
|
-
* Exit a parse tree produced by the `structType`
|
|
2698
|
-
* labeled alternative in `HamelinParser.hamelintype`.
|
|
2699
|
-
* @param ctx the parse tree
|
|
2700
|
-
*/
|
|
2701
|
-
exitStructType?: (ctx: StructTypeContext) => void;
|
|
2702
|
-
/**
|
|
2703
|
-
* Enter a parse tree produced by the `tupleType`
|
|
2704
|
-
* labeled alternative in `HamelinParser.hamelintype`.
|
|
2705
|
-
* @param ctx the parse tree
|
|
2706
|
-
*/
|
|
2707
|
-
enterTupleType?: (ctx: TupleTypeContext) => void;
|
|
2708
|
-
/**
|
|
2709
|
-
* Exit a parse tree produced by the `tupleType`
|
|
2710
|
-
* labeled alternative in `HamelinParser.hamelintype`.
|
|
2711
|
-
* @param ctx the parse tree
|
|
2712
|
-
*/
|
|
2713
|
-
exitTupleType?: (ctx: TupleTypeContext) => void;
|
|
2714
|
-
/**
|
|
2715
|
-
* Enter a parse tree produced by the `simpleType`
|
|
2716
|
-
* labeled alternative in `HamelinParser.hamelintype`.
|
|
2717
|
-
* @param ctx the parse tree
|
|
2718
|
-
*/
|
|
2719
|
-
enterSimpleType?: (ctx: SimpleTypeContext) => void;
|
|
2720
|
-
/**
|
|
2721
|
-
* Exit a parse tree produced by the `simpleType`
|
|
2722
|
-
* labeled alternative in `HamelinParser.hamelintype`.
|
|
2723
|
-
* @param ctx the parse tree
|
|
2724
|
-
*/
|
|
2725
|
-
exitSimpleType?: (ctx: SimpleTypeContext) => void;
|
|
2726
|
-
/**
|
|
2727
|
-
* Enter a parse tree produced by the `quantified`
|
|
2728
|
-
* labeled alternative in `HamelinParser.pattern`.
|
|
2729
|
-
* @param ctx the parse tree
|
|
2730
|
-
*/
|
|
2731
|
-
enterQuantified?: (ctx: QuantifiedContext) => void;
|
|
2732
|
-
/**
|
|
2733
|
-
* Exit a parse tree produced by the `quantified`
|
|
2734
|
-
* labeled alternative in `HamelinParser.pattern`.
|
|
2735
|
-
* @param ctx the parse tree
|
|
2736
|
-
*/
|
|
2737
|
-
exitQuantified?: (ctx: QuantifiedContext) => void;
|
|
2738
|
-
/**
|
|
2739
|
-
* Enter a parse tree produced by the `nested`
|
|
2740
|
-
* labeled alternative in `HamelinParser.pattern`.
|
|
2741
|
-
* @param ctx the parse tree
|
|
2742
|
-
*/
|
|
2743
|
-
enterNested?: (ctx: NestedContext) => void;
|
|
2744
|
-
/**
|
|
2745
|
-
* Exit a parse tree produced by the `nested`
|
|
2746
|
-
* labeled alternative in `HamelinParser.pattern`.
|
|
2747
|
-
* @param ctx the parse tree
|
|
2748
|
-
*/
|
|
2749
|
-
exitNested?: (ctx: NestedContext) => void;
|
|
2750
|
-
/**
|
|
2751
|
-
* Enter a parse tree produced by the `AnyNumber`
|
|
2752
|
-
* labeled alternative in `HamelinParser.quantifier`.
|
|
2753
|
-
* @param ctx the parse tree
|
|
2754
|
-
*/
|
|
2755
|
-
enterAnyNumber?: (ctx: AnyNumberContext) => void;
|
|
2756
|
-
/**
|
|
2757
|
-
* Exit a parse tree produced by the `AnyNumber`
|
|
2758
|
-
* labeled alternative in `HamelinParser.quantifier`.
|
|
2759
|
-
* @param ctx the parse tree
|
|
2760
|
-
*/
|
|
2761
|
-
exitAnyNumber?: (ctx: AnyNumberContext) => void;
|
|
2762
|
-
/**
|
|
2763
|
-
* Enter a parse tree produced by the `AtLeastOne`
|
|
2764
|
-
* labeled alternative in `HamelinParser.quantifier`.
|
|
2765
|
-
* @param ctx the parse tree
|
|
2766
|
-
*/
|
|
2767
|
-
enterAtLeastOne?: (ctx: AtLeastOneContext) => void;
|
|
2768
|
-
/**
|
|
2769
|
-
* Exit a parse tree produced by the `AtLeastOne`
|
|
2770
|
-
* labeled alternative in `HamelinParser.quantifier`.
|
|
2771
|
-
* @param ctx the parse tree
|
|
2772
|
-
*/
|
|
2773
|
-
exitAtLeastOne?: (ctx: AtLeastOneContext) => void;
|
|
2774
|
-
/**
|
|
2775
|
-
* Enter a parse tree produced by the `ZeroOrOne`
|
|
2776
|
-
* labeled alternative in `HamelinParser.quantifier`.
|
|
2777
|
-
* @param ctx the parse tree
|
|
2778
|
-
*/
|
|
2779
|
-
enterZeroOrOne?: (ctx: ZeroOrOneContext) => void;
|
|
2780
|
-
/**
|
|
2781
|
-
* Exit a parse tree produced by the `ZeroOrOne`
|
|
2782
|
-
* labeled alternative in `HamelinParser.quantifier`.
|
|
2783
|
-
* @param ctx the parse tree
|
|
2784
|
-
*/
|
|
2785
|
-
exitZeroOrOne?: (ctx: ZeroOrOneContext) => void;
|
|
2786
|
-
/**
|
|
2787
|
-
* Enter a parse tree produced by the `Exactly`
|
|
2788
|
-
* labeled alternative in `HamelinParser.quantifier`.
|
|
2789
|
-
* @param ctx the parse tree
|
|
2790
|
-
*/
|
|
2791
|
-
enterExactly?: (ctx: ExactlyContext) => void;
|
|
2792
|
-
/**
|
|
2793
|
-
* Exit a parse tree produced by the `Exactly`
|
|
2794
|
-
* labeled alternative in `HamelinParser.quantifier`.
|
|
2795
|
-
* @param ctx the parse tree
|
|
2796
|
-
*/
|
|
2797
|
-
exitExactly?: (ctx: ExactlyContext) => void;
|
|
2798
|
-
/**
|
|
2799
|
-
* Enter a parse tree produced by `HamelinParser.columnReference`.
|
|
2800
|
-
* @param ctx the parse tree
|
|
2801
|
-
*/
|
|
2802
|
-
enterColumnReference?: (ctx: ColumnReferenceContext) => void;
|
|
2803
|
-
/**
|
|
2804
|
-
* Exit a parse tree produced by `HamelinParser.columnReference`.
|
|
2805
|
-
* @param ctx the parse tree
|
|
2806
|
-
*/
|
|
2807
|
-
exitColumnReference?: (ctx: ColumnReferenceContext) => void;
|
|
2808
|
-
/**
|
|
2809
|
-
* Enter a parse tree produced by `HamelinParser.tableReference`.
|
|
2810
|
-
* @param ctx the parse tree
|
|
2811
|
-
*/
|
|
2812
|
-
enterTableReference?: (ctx: TableReferenceContext) => void;
|
|
2813
|
-
/**
|
|
2814
|
-
* Exit a parse tree produced by `HamelinParser.tableReference`.
|
|
2815
|
-
* @param ctx the parse tree
|
|
2816
|
-
*/
|
|
2817
|
-
exitTableReference?: (ctx: TableReferenceContext) => void;
|
|
2818
|
-
/**
|
|
2819
|
-
* Enter a parse tree produced by `HamelinParser.identifier`.
|
|
2820
|
-
* @param ctx the parse tree
|
|
2821
|
-
*/
|
|
2822
|
-
enterIdentifier?: (ctx: IdentifierContext) => void;
|
|
2823
|
-
/**
|
|
2824
|
-
* Exit a parse tree produced by `HamelinParser.identifier`.
|
|
2825
|
-
* @param ctx the parse tree
|
|
2826
|
-
*/
|
|
2827
|
-
exitIdentifier?: (ctx: IdentifierContext) => void;
|
|
2828
|
-
/**
|
|
2829
|
-
* Enter a parse tree produced by the `unquotedIdentifier`
|
|
2830
|
-
* labeled alternative in `HamelinParser.simpleIdentifier`.
|
|
2831
|
-
* @param ctx the parse tree
|
|
2832
|
-
*/
|
|
2833
|
-
enterUnquotedIdentifier?: (ctx: UnquotedIdentifierContext) => void;
|
|
2834
|
-
/**
|
|
2835
|
-
* Exit a parse tree produced by the `unquotedIdentifier`
|
|
2836
|
-
* labeled alternative in `HamelinParser.simpleIdentifier`.
|
|
2837
|
-
* @param ctx the parse tree
|
|
2838
|
-
*/
|
|
2839
|
-
exitUnquotedIdentifier?: (ctx: UnquotedIdentifierContext) => void;
|
|
2840
|
-
/**
|
|
2841
|
-
* Enter a parse tree produced by the `backQuotedIdentifier`
|
|
2842
|
-
* labeled alternative in `HamelinParser.simpleIdentifier`.
|
|
2843
|
-
* @param ctx the parse tree
|
|
2844
|
-
*/
|
|
2845
|
-
enterBackQuotedIdentifier?: (ctx: BackQuotedIdentifierContext) => void;
|
|
2846
|
-
/**
|
|
2847
|
-
* Exit a parse tree produced by the `backQuotedIdentifier`
|
|
2848
|
-
* labeled alternative in `HamelinParser.simpleIdentifier`.
|
|
2849
|
-
* @param ctx the parse tree
|
|
2850
|
-
*/
|
|
2851
|
-
exitBackQuotedIdentifier?: (ctx: BackQuotedIdentifierContext) => void;
|
|
2852
|
-
/**
|
|
2853
|
-
* Enter a parse tree produced by the `basicSingleQuotedStringLiteral`
|
|
2854
|
-
* labeled alternative in `HamelinParser.string`.
|
|
2855
|
-
* @param ctx the parse tree
|
|
2856
|
-
*/
|
|
2857
|
-
enterBasicSingleQuotedStringLiteral?: (ctx: BasicSingleQuotedStringLiteralContext) => void;
|
|
2858
|
-
/**
|
|
2859
|
-
* Exit a parse tree produced by the `basicSingleQuotedStringLiteral`
|
|
2860
|
-
* labeled alternative in `HamelinParser.string`.
|
|
2861
|
-
* @param ctx the parse tree
|
|
2862
|
-
*/
|
|
2863
|
-
exitBasicSingleQuotedStringLiteral?: (ctx: BasicSingleQuotedStringLiteralContext) => void;
|
|
2864
|
-
/**
|
|
2865
|
-
* Enter a parse tree produced by the `basicDoubleQuotedStringLiteral`
|
|
2866
|
-
* labeled alternative in `HamelinParser.string`.
|
|
2867
|
-
* @param ctx the parse tree
|
|
2868
|
-
*/
|
|
2869
|
-
enterBasicDoubleQuotedStringLiteral?: (ctx: BasicDoubleQuotedStringLiteralContext) => void;
|
|
2870
|
-
/**
|
|
2871
|
-
* Exit a parse tree produced by the `basicDoubleQuotedStringLiteral`
|
|
2872
|
-
* labeled alternative in `HamelinParser.string`.
|
|
2873
|
-
* @param ctx the parse tree
|
|
2874
|
-
*/
|
|
2875
|
-
exitBasicDoubleQuotedStringLiteral?: (ctx: BasicDoubleQuotedStringLiteralContext) => void;
|
|
2876
|
-
/**
|
|
2877
|
-
* Enter a parse tree produced by the `unicodeSingleQuotedStringLiteral`
|
|
2878
|
-
* labeled alternative in `HamelinParser.string`.
|
|
2879
|
-
* @param ctx the parse tree
|
|
2880
|
-
*/
|
|
2881
|
-
enterUnicodeSingleQuotedStringLiteral?: (ctx: UnicodeSingleQuotedStringLiteralContext) => void;
|
|
2882
|
-
/**
|
|
2883
|
-
* Exit a parse tree produced by the `unicodeSingleQuotedStringLiteral`
|
|
2884
|
-
* labeled alternative in `HamelinParser.string`.
|
|
2885
|
-
* @param ctx the parse tree
|
|
2886
|
-
*/
|
|
2887
|
-
exitUnicodeSingleQuotedStringLiteral?: (ctx: UnicodeSingleQuotedStringLiteralContext) => void;
|
|
2888
|
-
/**
|
|
2889
|
-
* Enter a parse tree produced by the `unicodeDoubleQuotedStringLiteral`
|
|
2890
|
-
* labeled alternative in `HamelinParser.string`.
|
|
2891
|
-
* @param ctx the parse tree
|
|
2892
|
-
*/
|
|
2893
|
-
enterUnicodeDoubleQuotedStringLiteral?: (ctx: UnicodeDoubleQuotedStringLiteralContext) => void;
|
|
2894
|
-
/**
|
|
2895
|
-
* Exit a parse tree produced by the `unicodeDoubleQuotedStringLiteral`
|
|
2896
|
-
* labeled alternative in `HamelinParser.string`.
|
|
2897
|
-
* @param ctx the parse tree
|
|
2898
|
-
*/
|
|
2899
|
-
exitUnicodeDoubleQuotedStringLiteral?: (ctx: UnicodeDoubleQuotedStringLiteralContext) => void;
|
|
2900
|
-
/**
|
|
2901
|
-
* Enter a parse tree produced by the `decimalLiteral`
|
|
2902
|
-
* labeled alternative in `HamelinParser.number`.
|
|
2903
|
-
* @param ctx the parse tree
|
|
2904
|
-
*/
|
|
2905
|
-
enterDecimalLiteral?: (ctx: DecimalLiteralContext) => void;
|
|
2906
|
-
/**
|
|
2907
|
-
* Exit a parse tree produced by the `decimalLiteral`
|
|
2908
|
-
* labeled alternative in `HamelinParser.number`.
|
|
2909
|
-
* @param ctx the parse tree
|
|
2910
|
-
*/
|
|
2911
|
-
exitDecimalLiteral?: (ctx: DecimalLiteralContext) => void;
|
|
2912
|
-
/**
|
|
2913
|
-
* Enter a parse tree produced by the `scientificLiteral`
|
|
2914
|
-
* labeled alternative in `HamelinParser.number`.
|
|
2915
|
-
* @param ctx the parse tree
|
|
2916
|
-
*/
|
|
2917
|
-
enterScientificLiteral?: (ctx: ScientificLiteralContext) => void;
|
|
2918
|
-
/**
|
|
2919
|
-
* Exit a parse tree produced by the `scientificLiteral`
|
|
2920
|
-
* labeled alternative in `HamelinParser.number`.
|
|
2921
|
-
* @param ctx the parse tree
|
|
2922
|
-
*/
|
|
2923
|
-
exitScientificLiteral?: (ctx: ScientificLiteralContext) => void;
|
|
2924
|
-
/**
|
|
2925
|
-
* Enter a parse tree produced by the `integerLiteral`
|
|
2926
|
-
* labeled alternative in `HamelinParser.number`.
|
|
2927
|
-
* @param ctx the parse tree
|
|
2928
|
-
*/
|
|
2929
|
-
enterIntegerLiteral?: (ctx: IntegerLiteralContext) => void;
|
|
2930
|
-
/**
|
|
2931
|
-
* Exit a parse tree produced by the `integerLiteral`
|
|
2932
|
-
* labeled alternative in `HamelinParser.number`.
|
|
2933
|
-
* @param ctx the parse tree
|
|
2934
|
-
*/
|
|
2935
|
-
exitIntegerLiteral?: (ctx: IntegerLiteralContext) => void;
|
|
2936
|
-
/**
|
|
2937
|
-
* Enter a parse tree produced by `HamelinParser.positionalArgument`.
|
|
2938
|
-
* @param ctx the parse tree
|
|
2939
|
-
*/
|
|
2940
|
-
enterPositionalArgument?: (ctx: PositionalArgumentContext) => void;
|
|
2941
|
-
/**
|
|
2942
|
-
* Exit a parse tree produced by `HamelinParser.positionalArgument`.
|
|
2943
|
-
* @param ctx the parse tree
|
|
2944
|
-
*/
|
|
2945
|
-
exitPositionalArgument?: (ctx: PositionalArgumentContext) => void;
|
|
2946
|
-
/**
|
|
2947
|
-
* Enter a parse tree produced by `HamelinParser.namedArgument`.
|
|
2948
|
-
* @param ctx the parse tree
|
|
2949
|
-
*/
|
|
2950
|
-
enterNamedArgument?: (ctx: NamedArgumentContext) => void;
|
|
2951
|
-
/**
|
|
2952
|
-
* Exit a parse tree produced by `HamelinParser.namedArgument`.
|
|
2953
|
-
* @param ctx the parse tree
|
|
2954
|
-
*/
|
|
2955
|
-
exitNamedArgument?: (ctx: NamedArgumentContext) => void;
|
|
2956
|
-
visitTerminal(node: TerminalNode): void;
|
|
2957
|
-
visitErrorNode(node: ErrorNode): void;
|
|
2958
|
-
enterEveryRule(node: ParserRuleContext): void;
|
|
2959
|
-
exitEveryRule(node: ParserRuleContext): void;
|
|
2960
|
-
}
|
|
2961
|
-
|
|
2962
|
-
declare const hamelinGrammar = "grammar Hamelin;\n\nidentifierEOF\n : identifier EOF\n ;\n\nqueryEOF\n : query EOF\n ;\n\ncommandEOF\n : command EOF\n ;\n\nexpressionEOF\n : expression EOF\n ;\n\npipelineEOF\n : pipeline EOF\n ;\n\nsimpleIdentifierEOF\n : simpleIdentifier EOF\n ;\n\nquery\n : (WITH simpleIdentifier ASSIGN pipeline)+ pipeline #withQuery\n | pipeline #standaloneQuery\n | expression #expressionQuery\n ;\n\npipeline\n : command ( PIPE command )* #pipelineAlt\n ;\n\ncommand\n : LET_COMMAND assignment (COMMA assignment)* COMMA? #letCommand\n | WHERE_COMMAND expression #whereCommand\n | SELECT_COMMAND assignmentClause (COMMA assignmentClause)* COMMA? #selectCommand\n | DROP_COMMAND selection (COMMA selection)* COMMA? #dropCommand\n | FROM_COMMAND fromClause (COMMA fromClause)* COMMA? #fromCommand\n | UNION_COMMAND fromClause (COMMA fromClause)* COMMA? #unionCommand\n | LIMIT_COMMAND expression #limitCommand\n | PARSE_COMMAND src=expression? string\n AS? identifier (COMMA identifier)* COMMA? NODROP? #parseCommand\n | WITHIN_COMMAND expression #withinCommand\n | AGG_COMMAND (assignmentClause (COMMA assignmentClause)*)? COMMA?\n (BY groupClause (COMMA groupClause)*)? COMMA?\n (SORT BY? sortExpression (COMMA sortExpression)*)? COMMA? #aggCommand\n | SORT BY? sortExpression (COMMA sortExpression)* COMMA? #sortCommand\n | WINDOW_COMMAND assignmentClause (COMMA assignmentClause)* COMMA?\n (BY groupClause (COMMA groupClause)*)? COMMA?\n (SORT BY? sortExpression (COMMA sortExpression)*)? COMMA?\n (WITHIN_COMMAND within=expression)? #windowCommand\n | APPEND_COMMAND tableReference (DISTINCT_BY selection (COMMA selection)*)? COMMA? #appendCommand\n | (JOIN_COMMAND | LOOKUP_COMMAND) fromClause (ON on=expression)? #joinCommand\n | EXPLODE_COMMAND assignmentClause #explodeCommand\n | (UNNEST_COMMAND | ROWS_COMMAND) expression #unnestCommand\n | NEST_COMMAND identifier #nestCommand\n | MATCH_COMMAND pattern+\n (WHEN matchDefine (COMMA matchDefine)*)? COMMA?\n (BY groupClause (COMMA groupClause)*)? COMMA?\n (SORT BY? sortExpression (COMMA sortExpression)*)? COMMA? #matchCommand\n ;\n\nassignmentClause: assignment | expression;\ngroupClause: assignmentClause;\nassignment: identifier ASSIGN expression;\nmatchDefine: simpleIdentifier ASSIGN expression;\nselection: identifier;\nsortExpression: expression (ASC | DESC)?;\ntableAlias: simpleIdentifier ASSIGN tableReference;\nfromClause: tableAlias | tableReference;\n\nexpression\n // Keep this list in precedence order (important!)\n : operator=(MINUS | PLUS) expression #unaryPrefixOperator\n | expression (SECOND_TRUNC | MINUTE_TRUNC | HOUR_TRUNC | DAY_TRUNC | WEEK_TRUNC |\n MONTH_TRUNC | QUARTER_TRUNC | YEAR_TRUNC) #tsTrunc\n | left=expression operator=DOT right=simpleIdentifier #deref\n | value=expression LBRACKET index=expression RBRACKET #indexAccess\n | left=expression operator=(ASTERISK | SLASH | PERCENT) right=expression #binaryOperator\n | left=expression operator=(PLUS | MINUS) right=expression #binaryOperator\n | operator=RANGE expression #unaryPrefixOperator\n | expression operator=RANGE #unaryPostfixOperator\n | left=expression operator=RANGE right=expression #binaryOperator\n | left=expression operator=AS right=hamelintype #cast\n | left=expression\n operator=(EQ | NEQ | LT | LTE | GT | GTE | IS | ISNOT | IN | NOTIN)\n right=expression #binaryOperator\n | operator=NOT expression #unaryPrefixOperator\n | left=expression operator=AND right=expression #binaryOperator\n | left=expression operator=OR right=expression #binaryOperator\n\n // Complex Literals\n | left=expression operator=COLON right=expression #pairLiteral\n | LCURLY simpleIdentifier COLON expression\n (COMMA simpleIdentifier COLON expression)* COMMA? RCURLY #structLiteral\n | LPARENS ((expression COMMA) |\n (expression COMMA expression (COMMA expression)* COMMA?)) RPARENS #tupleLiteral\n | LBRACKET (expression (COMMA expression)* COMMA?)? RBRACKET #arrayLiteral\n\n // Function Calls\n | functionName=simpleIdentifier\n LPARENS (namedArgument (COMMA namedArgument)* COMMA?)? RPARENS #functionCall\n | functionName=simpleIdentifier LPARENS\n positionalArgument (COMMA positionalArgument)*\n (COMMA namedArgument)* COMMA? RPARENS #functionCall\n\n // Primitive Literals\n | NULL #nullLiteral\n | number #numericLiteral\n | TRUE #booleanLiteral\n | FALSE #booleanLiteral\n | string #stringLiteral\n | BINARY_LITERAL #binaryLiteral\n | RANGE #unboundRangeLiteral\n | (NANOSECOND_INTERVAL | MICROSECOND_INTERVAL | MILLISECOND_INTERVAL |\n SECOND_INTERVAL | MINUTE_INTERVAL | HOUR_INTERVAL | DAY_INTERVAL |\n WEEK_INTERVAL | MONTH_INTERVAL | QUARTER_INTERVAL | YEAR_INTERVAL) #intervalLiteral\n | ROWS_LITERAL #rowsLiteral\n | (SECOND_TRUNC | MINUTE_TRUNC | HOUR_TRUNC | DAY_TRUNC | WEEK_TRUNC |\n MONTH_TRUNC | QUARTER_TRUNC | YEAR_TRUNC) #tsTruncTimestampLiteral\n\n // Environment references\n | columnReference #columnReferenceAlt\n\n // Keep this at the bottom to use it the mechanism that query authors have to specify precedence.\n | LPARENS expression RPARENS #parenthesizedExpression\n ;\n\nhamelintype\n : simpleIdentifier LPARENS hamelintype (COMMA hamelintype)* COMMA? RPARENS #parameterizedType\n | simpleIdentifier LPARENS INTEGER_VALUE (COMMA INTEGER_VALUE)* COMMA? RPARENS #typeWithArguments\n | LCURLY simpleIdentifier COLON hamelintype\n (COMMA simpleIdentifier COLON hamelintype)* COMMA? RCURLY #structType\n | LPARENS hamelintype (COMMA hamelintype )* COMMA? RPARENS #tupleType\n | simpleIdentifier #simpleType\n ;\n\npattern\n : fromClause quantifier? #quantified\n | LPARENS pattern+ RPARENS quantifier #nested\n ;\n\nquantifier\n : ASTERISK #AnyNumber\n | PLUS #AtLeastOne\n | QUESTIONMARK #ZeroOrOne\n | LCURLY INTEGER_VALUE RCURLY #Exactly\n ;\n\ncolumnReference\n : simpleIdentifier\n ;\n\ntableReference\n : identifier\n ;\n\nidentifier\n : simpleIdentifier\n | simpleIdentifier (DOT simpleIdentifier)+\n ;\n\nsimpleIdentifier\n : IDENTIFIER #unquotedIdentifier\n | BACKQUOTED_IDENTIFIER #backQuotedIdentifier\n ;\n\nstring\n : SINGLE_QUOTED_STRING #basicSingleQuotedStringLiteral\n | DOUBLE_QUOTED_STRING #basicDoubleQuotedStringLiteral\n | value=SINGLE_QUOTED_UNICODE_STRING (UESCAPE uesc=SINGLE_QUOTED_STRING)? #unicodeSingleQuotedStringLiteral\n | value=DOUBLE_QUOTED_UNICODE_STRING (UESCAPE uesc=DOUBLE_QUOTED_STRING)? #unicodeDoubleQuotedStringLiteral\n ;\n\nnumber\n : value=DECIMAL_VALUE #decimalLiteral\n | value=DOUBLE_VALUE #scientificLiteral\n | value=INTEGER_VALUE #integerLiteral\n ;\n\npositionalArgument\n : expression\n ;\n\nnamedArgument\n : simpleIdentifier ASSIGN expression\n ;\n\n//\n// COMMANDS\n//\n\nLET_COMMAND: 'LET' | 'let';\nWHERE_COMMAND: 'WHERE' | 'where';\nSELECT_COMMAND: 'SELECT' | 'select';\nDROP_COMMAND: 'DROP' | 'drop';\nFROM_COMMAND: 'FROM' | 'from';\nUNION_COMMAND: 'UNION' | 'union';\nLIMIT_COMMAND: 'LIMIT' | 'limit';\nPARSE_COMMAND: 'PARSE' | 'parse';\nWITHIN_COMMAND: 'WITHIN' | 'within';\nAGG_COMMAND: 'AGG' | 'agg';\nWINDOW_COMMAND: 'WINDOW' | 'window';\nAPPEND_COMMAND: 'APPEND' | 'append';\nJOIN_COMMAND: 'JOIN' | 'join';\nLOOKUP_COMMAND: 'LOOKUP' | 'lookup';\nEXPLODE_COMMAND: 'EXPLODE' | 'explode';\nUNNEST_COMMAND: 'UNNEST' | 'unnest';\nNEST_COMMAND: 'NEST' | 'nest';\nROWS_COMMAND: 'ROWS' | 'rows';\nMATCH_COMMAND: 'MATCH' | 'match';\n\nAS: 'AS' | 'as';\nNODROP: 'NODROP' | 'nodrop';\n\n//\n// Operators\n//\n\nPLUS: '+';\nMINUS: '-';\nASTERISK: '*';\nSLASH: '/';\nPERCENT: '%';\nLCURLY: '{';\nRCURLY: '}';\nCOLON: ':';\nQUESTIONMARK: '?';\n\nEQ: '==';\nNEQ: '!=';\nLT: '<';\nLTE: '<=';\nGT: '>';\nGTE: '>=';\nRANGE: '..';\n\nASSIGN: '=';\n\n//\n// Keywords\n//\n\nAND: 'AND' | 'and';\nFALSE: 'FALSE' | 'false';\nIS: 'IS' | 'is';\nNOT: 'NOT' | 'not';\nISNOT: 'IS NOT' | 'is not';\nIN: 'IN' | 'in';\nNOTIN: 'NOT IN' | 'not in';\nNULL: 'NULL' | 'null';\nOR: 'OR' | 'or';\nTRUE: 'TRUE' | 'true';\nUESCAPE: 'UESCAPE' | 'uescape';\nWITH: 'WITH' | 'with';\nBY: 'BY' | 'by';\nSORT: 'SORT' | 'sort';\nASC: 'ASC' | 'asc';\nDESC: 'DESC' | 'desc';\nDISTINCT_BY: 'DISTINCT BY' | 'distinct by';\nON: 'ON' | 'on';\nWHEN: 'WHEN' | 'when';\n\n//\n// Symbols\n//\n\nCOMMA: ',';\nPIPE: '|';\nLPARENS: '(';\nRPARENS: ')';\nDOT: '.';\nLBRACKET: '[';\nRBRACKET: ']';\n\n//\n// Literals\n//\n\nSINGLE_QUOTED_STRING\n : '\\'' ( ~'\\'' | '\\'\\'')* '\\''\n ;\nDOUBLE_QUOTED_STRING\n : '\"' ( ~'\"' | '\"\"')* '\"'\n ;\n\nSINGLE_QUOTED_UNICODE_STRING\n : 'U&\\'' ( ~'\\'' | '\\'\\'')* '\\'' // Unicode string with default escape character: U&'Hello winter \\2603 !'\n ;\n\nDOUBLE_QUOTED_UNICODE_STRING\n : 'U&\"' ( ~'\"' | '\"\"')* '\"' // Unicode string with custom escape character: U&'Hello winter #2603 !' UESCAPE '#'\n ;\n\n// Note: we allow any character inside the binary literal and validate\n// its a correct literal when the AST is being constructed. This\n// allows us to provide more meaningful error messages to the user\nBINARY_LITERAL\n : 'x\\'' (~'\\'')* '\\''\n ;\n\nNANOSECOND_INTERVAL\n : DECIMAL_INTEGER 'ns'\n ;\n\nMICROSECOND_INTERVAL\n : DECIMAL_INTEGER 'us'\n ;\n\nMILLISECOND_INTERVAL\n : DECIMAL_INTEGER 'ms'\n ;\n\nSECOND_INTERVAL\n : DECIMAL_INTEGER ('s' | 'sec' | 'secs' | 'second' | 'seconds')\n ;\n\nMINUTE_INTERVAL\n : DECIMAL_INTEGER ('m' | 'min' | 'mins' | 'minute' | 'minutes')\n ;\n\nHOUR_INTERVAL\n : DECIMAL_INTEGER ('h' | 'hr' | 'hrs' | 'hour' | 'hours')\n ;\n\nDAY_INTERVAL\n : DECIMAL_INTEGER ('d' | 'day' | 'days')\n ;\n\nWEEK_INTERVAL\n : DECIMAL_INTEGER ('w' | 'week' | 'weeks')\n ;\n\nMONTH_INTERVAL\n : DECIMAL_INTEGER ('mon' | 'month' | 'months')\n ;\n\nQUARTER_INTERVAL\n : DECIMAL_INTEGER ('q' | 'qtr' | 'qtrs' | 'quarter' | 'quarters')\n ;\n\nYEAR_INTERVAL\n : DECIMAL_INTEGER ('y' | 'yr' | 'yrs' | 'year' | 'years')\n ;\n\nROWS_LITERAL\n : DECIMAL_INTEGER ('r' | 'row' | 'rows')\n ;\n\nSECOND_TRUNC\n : '@' ('s' | 'sec' | 'secs' | 'second' | 'seconds')\n ;\n\nMINUTE_TRUNC\n : '@' ('m' | 'min' | 'mins' | 'minute' | 'minutes')\n ;\n\nHOUR_TRUNC\n : '@' ('h' | 'hr' | 'hrs' | 'hour' | 'hours')\n ;\n\nDAY_TRUNC\n : '@' ('d' | 'day' | 'days')\n ;\n\nWEEK_TRUNC\n : '@' ('w' | 'week' | 'weeks')\n ;\n\nMONTH_TRUNC\n : '@' ('mon' | 'month' | 'months')\n ;\n\nQUARTER_TRUNC\n : '@' ('q' | 'qtr' | 'qtrs' | 'quarter' | 'quarters')\n ;\n\nYEAR_TRUNC\n : '@' ('y' | 'yr' | 'yrs' | 'year' | 'years')\n ;\n\nINTEGER_VALUE\n : DECIMAL_INTEGER\n | HEXADECIMAL_INTEGER\n | OCTAL_INTEGER\n | BINARY_INTEGER\n ;\n\nDECIMAL_VALUE\n : DECIMAL_INTEGER '.' DECIMAL_INTEGER\n | '.' DECIMAL_INTEGER\n ;\n\nDOUBLE_VALUE\n : DIGIT+ ('.' DIGIT*)? EXPONENT\n | '.' DIGIT+ EXPONENT\n ;\n\nIDENTIFIER\n : [a-zA-Z_][a-zA-Z_0-9]*\n ;\n\nBACKQUOTED_IDENTIFIER\n : '`' ( ~'`' | '``' )* '`'\n ;\n\nfragment DECIMAL_INTEGER\n : DIGIT ('_'? DIGIT)*\n ;\n\nfragment HEXADECIMAL_INTEGER\n : '0x' ('_'? (DIGIT | [A-F]))+\n ;\n\nfragment OCTAL_INTEGER\n : '0o' ('_'? [0-7])+\n ;\n\nfragment BINARY_INTEGER\n : '0b' ('_'? [01])+\n ;\n\nfragment EXPONENT\n : 'e' [+-]? DIGIT+\n ;\n\nfragment DIGIT\n : [0-9]\n ;\n\n//\n// Comments and whitespace\n//\n\nSIMPLE_COMMENT\n : '//' ~[\\r\\n]* '\\r'? '\\n'? -> channel(HIDDEN)\n ;\n\nBRACKETED_COMMENT\n : '/*' .*? '*/' -> channel(HIDDEN)\n ;\n\nWS\n : [ \\r\\n\\t]+ -> skip\n ;\n";
|
|
2963
|
-
|
|
2964
|
-
declare const getDatasetsFromQuery: (catalog: Catalog, hamelinInput: string) => Promise<QueryDatasetsResult>;
|
|
2965
|
-
|
|
2966
|
-
declare const getFunctionDescriptions: () => Promise<FunctionDescription[]>;
|
|
2967
|
-
|
|
2968
|
-
/**
|
|
2969
|
-
* Returns the top level limit information from the provided Hamelin query.
|
|
2970
|
-
*/
|
|
2971
|
-
declare const getLimits: (hamelinQuery: string) => number[];
|
|
2972
|
-
|
|
2973
|
-
type QuerySort = {
|
|
2974
|
-
column: string;
|
|
2975
|
-
direction: "asc" | "desc" | null;
|
|
2976
|
-
};
|
|
2977
|
-
/**
|
|
2978
|
-
* Returns the top level sorting information from the provided Hamelin query.
|
|
2979
|
-
*/
|
|
2980
|
-
declare const getSorts: (hamelinQuery: string) => QuerySort[];
|
|
2981
|
-
|
|
2982
|
-
declare const sampleCatalog: Catalog;
|
|
179
|
+
declare function getSyntaxCompletions(input: string, pos: number): Completion | null;
|
|
2983
180
|
|
|
2984
|
-
export {
|
|
181
|
+
export { type Catalog, type Column, type Completion, type CompletionItem, type ContextualResult, type ContextualTranslationError, type ContextualTranslationErrors, type FunctionDescription, type HamelinType, type QuerySort, type QueryTranslation, type Translation, type TranslationError, compileHamelin, createCompiler, getAggregations, getDatasetsFromQuery, getFunctionDescriptions, getLimits, getSelectedFields, getSorts, getSyntaxCompletions, hamelinGrammar, hamelinPrompt, parseTokenValueClass, sampleCatalog };
|