mirror of
https://github.com/SigNoz/signoz.git
synced 2025-12-17 23:47:12 +00:00
chore: added grammer parity for frontend grammer with main grammer
This commit is contained in:
parent
c783c5c7ee
commit
bb8f6b9eb1
@ -32,7 +32,7 @@ import { getQueryContextAtCursor } from 'utils/queryContextUtils';
|
||||
2. Context-aware autocompletion
|
||||
3. Support for various query operators (=, !=, IN, LIKE, etc.)
|
||||
4. Support for complex conditions with AND/OR operators
|
||||
5. Support for functions (HAS, HASANY, HASALL, HASNONE)
|
||||
5. Support for functions (HAS, HASANY, HASALL)
|
||||
6. Support for parentheses and nested conditions
|
||||
7. Query examples for common use cases
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -11,31 +11,24 @@ LE=10
|
||||
GT=11
|
||||
GE=12
|
||||
LIKE=13
|
||||
NOT_LIKE=14
|
||||
ILIKE=15
|
||||
NOT_ILIKE=16
|
||||
BETWEEN=17
|
||||
NOT_BETWEEN=18
|
||||
EXISTS=19
|
||||
NOT_EXISTS=20
|
||||
REGEXP=21
|
||||
NOT_REGEXP=22
|
||||
CONTAINS=23
|
||||
NOT_CONTAINS=24
|
||||
IN=25
|
||||
NOT_IN=26
|
||||
NOT=27
|
||||
AND=28
|
||||
OR=29
|
||||
HAS=30
|
||||
HASANY=31
|
||||
HASALL=32
|
||||
HASNONE=33
|
||||
BOOL=34
|
||||
NUMBER=35
|
||||
QUOTED_TEXT=36
|
||||
KEY=37
|
||||
WS=38
|
||||
ILIKE=14
|
||||
BETWEEN=15
|
||||
EXISTS=16
|
||||
REGEXP=17
|
||||
CONTAINS=18
|
||||
IN=19
|
||||
NOT=20
|
||||
AND=21
|
||||
OR=22
|
||||
HAS=23
|
||||
HASANY=24
|
||||
HASALL=25
|
||||
BOOL=26
|
||||
NUMBER=27
|
||||
QUOTED_TEXT=28
|
||||
KEY=29
|
||||
WS=30
|
||||
FREETEXT=31
|
||||
'('=1
|
||||
')'=2
|
||||
'['=3
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -11,31 +11,24 @@ LE=10
|
||||
GT=11
|
||||
GE=12
|
||||
LIKE=13
|
||||
NOT_LIKE=14
|
||||
ILIKE=15
|
||||
NOT_ILIKE=16
|
||||
BETWEEN=17
|
||||
NOT_BETWEEN=18
|
||||
EXISTS=19
|
||||
NOT_EXISTS=20
|
||||
REGEXP=21
|
||||
NOT_REGEXP=22
|
||||
CONTAINS=23
|
||||
NOT_CONTAINS=24
|
||||
IN=25
|
||||
NOT_IN=26
|
||||
NOT=27
|
||||
AND=28
|
||||
OR=29
|
||||
HAS=30
|
||||
HASANY=31
|
||||
HASALL=32
|
||||
HASNONE=33
|
||||
BOOL=34
|
||||
NUMBER=35
|
||||
QUOTED_TEXT=36
|
||||
KEY=37
|
||||
WS=38
|
||||
ILIKE=14
|
||||
BETWEEN=15
|
||||
EXISTS=16
|
||||
REGEXP=17
|
||||
CONTAINS=18
|
||||
IN=19
|
||||
NOT=20
|
||||
AND=21
|
||||
OR=22
|
||||
HAS=23
|
||||
HASANY=24
|
||||
HASALL=25
|
||||
BOOL=26
|
||||
NUMBER=27
|
||||
QUOTED_TEXT=28
|
||||
KEY=29
|
||||
WS=30
|
||||
FREETEXT=31
|
||||
'('=1
|
||||
')'=2
|
||||
'['=3
|
||||
|
||||
@ -25,31 +25,24 @@ export default class FilterQueryLexer extends Lexer {
|
||||
public static readonly GT = 11;
|
||||
public static readonly GE = 12;
|
||||
public static readonly LIKE = 13;
|
||||
public static readonly NOT_LIKE = 14;
|
||||
public static readonly ILIKE = 15;
|
||||
public static readonly NOT_ILIKE = 16;
|
||||
public static readonly BETWEEN = 17;
|
||||
public static readonly NOT_BETWEEN = 18;
|
||||
public static readonly EXISTS = 19;
|
||||
public static readonly NOT_EXISTS = 20;
|
||||
public static readonly REGEXP = 21;
|
||||
public static readonly NOT_REGEXP = 22;
|
||||
public static readonly CONTAINS = 23;
|
||||
public static readonly NOT_CONTAINS = 24;
|
||||
public static readonly IN = 25;
|
||||
public static readonly NOT_IN = 26;
|
||||
public static readonly NOT = 27;
|
||||
public static readonly AND = 28;
|
||||
public static readonly OR = 29;
|
||||
public static readonly HAS = 30;
|
||||
public static readonly HASANY = 31;
|
||||
public static readonly HASALL = 32;
|
||||
public static readonly HASNONE = 33;
|
||||
public static readonly BOOL = 34;
|
||||
public static readonly NUMBER = 35;
|
||||
public static readonly QUOTED_TEXT = 36;
|
||||
public static readonly KEY = 37;
|
||||
public static readonly WS = 38;
|
||||
public static readonly ILIKE = 14;
|
||||
public static readonly BETWEEN = 15;
|
||||
public static readonly EXISTS = 16;
|
||||
public static readonly REGEXP = 17;
|
||||
public static readonly CONTAINS = 18;
|
||||
public static readonly IN = 19;
|
||||
public static readonly NOT = 20;
|
||||
public static readonly AND = 21;
|
||||
public static readonly OR = 22;
|
||||
public static readonly HAS = 23;
|
||||
public static readonly HASANY = 24;
|
||||
public static readonly HASALL = 25;
|
||||
public static readonly BOOL = 26;
|
||||
public static readonly NUMBER = 27;
|
||||
public static readonly QUOTED_TEXT = 28;
|
||||
public static readonly KEY = 29;
|
||||
public static readonly WS = 30;
|
||||
public static readonly FREETEXT = 31;
|
||||
public static readonly EOF = Token.EOF;
|
||||
|
||||
public static readonly channelNames: string[] = [ "DEFAULT_TOKEN_CHANNEL", "HIDDEN" ];
|
||||
@ -67,31 +60,24 @@ export default class FilterQueryLexer extends Lexer {
|
||||
"NEQ", "LT",
|
||||
"LE", "GT",
|
||||
"GE", "LIKE",
|
||||
"NOT_LIKE",
|
||||
"ILIKE", "NOT_ILIKE",
|
||||
"BETWEEN",
|
||||
"NOT_BETWEEN",
|
||||
"EXISTS", "NOT_EXISTS",
|
||||
"REGEXP", "NOT_REGEXP",
|
||||
"ILIKE", "BETWEEN",
|
||||
"EXISTS", "REGEXP",
|
||||
"CONTAINS",
|
||||
"NOT_CONTAINS",
|
||||
"IN", "NOT_IN",
|
||||
"NOT", "AND",
|
||||
"OR", "HAS",
|
||||
"HASANY", "HASALL",
|
||||
"HASNONE",
|
||||
"BOOL", "NUMBER",
|
||||
"QUOTED_TEXT",
|
||||
"KEY", "WS" ];
|
||||
"IN", "NOT",
|
||||
"AND", "OR",
|
||||
"HAS", "HASANY",
|
||||
"HASALL", "BOOL",
|
||||
"NUMBER", "QUOTED_TEXT",
|
||||
"KEY", "WS",
|
||||
"FREETEXT" ];
|
||||
public static readonly modeNames: string[] = [ "DEFAULT_MODE", ];
|
||||
|
||||
public static readonly ruleNames: string[] = [
|
||||
"LPAREN", "RPAREN", "LBRACK", "RBRACK", "COMMA", "EQUALS", "NOT_EQUALS",
|
||||
"NEQ", "LT", "LE", "GT", "GE", "LIKE", "NOT_LIKE", "ILIKE", "NOT_ILIKE",
|
||||
"BETWEEN", "NOT_BETWEEN", "EXISTS", "NOT_EXISTS", "REGEXP", "NOT_REGEXP",
|
||||
"CONTAINS", "NOT_CONTAINS", "IN", "NOT_IN", "NOT", "AND", "OR", "HAS",
|
||||
"HASANY", "HASALL", "HASNONE", "BOOL", "NUMBER", "QUOTED_TEXT", "KEY",
|
||||
"WS", "DIGIT",
|
||||
"NEQ", "LT", "LE", "GT", "GE", "LIKE", "ILIKE", "BETWEEN", "EXISTS", "REGEXP",
|
||||
"CONTAINS", "IN", "NOT", "AND", "OR", "HAS", "HASANY", "HASALL", "BOOL",
|
||||
"SIGN", "NUMBER", "QUOTED_TEXT", "SEGMENT", "EMPTY_BRACKS", "OLD_JSON_BRACKS",
|
||||
"KEY", "WS", "DIGIT", "FREETEXT",
|
||||
];
|
||||
|
||||
|
||||
@ -112,117 +98,113 @@ export default class FilterQueryLexer extends Lexer {
|
||||
|
||||
public get modeNames(): string[] { return FilterQueryLexer.modeNames; }
|
||||
|
||||
public static readonly _serializedATN: number[] = [4,0,38,331,6,-1,2,0,
|
||||
public static readonly _serializedATN: number[] = [4,0,31,303,6,-1,2,0,
|
||||
7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,
|
||||
7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,
|
||||
16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,
|
||||
2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,
|
||||
31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2,35,7,35,2,36,7,36,2,37,7,37,2,38,
|
||||
7,38,1,0,1,0,1,1,1,1,1,2,1,2,1,3,1,3,1,4,1,4,1,5,1,5,1,5,3,5,93,8,5,1,6,
|
||||
1,6,1,6,1,7,1,7,1,7,1,8,1,8,1,9,1,9,1,9,1,10,1,10,1,11,1,11,1,11,1,12,1,
|
||||
12,1,12,1,12,1,12,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,14,1,14,
|
||||
1,14,1,14,1,14,1,14,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,
|
||||
16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,17,1,17,1,17,1,17,1,17,1,17,1,17,
|
||||
1,17,1,17,1,17,1,17,1,17,1,18,1,18,1,18,1,18,1,18,1,18,3,18,167,8,18,1,
|
||||
19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,3,19,179,8,19,1,20,1,20,
|
||||
1,20,1,20,1,20,1,20,1,20,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,
|
||||
21,1,21,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,3,22,207,8,22,1,23,1,23,
|
||||
1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,3,23,221,8,23,1,24,1,
|
||||
24,1,24,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,26,1,26,1,26,1,26,1,27,1,27,
|
||||
1,27,1,27,1,28,1,28,1,28,1,29,1,29,1,29,1,29,1,30,1,30,1,30,1,30,1,30,1,
|
||||
30,1,30,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,32,1,32,1,32,1,32,1,32,1,32,
|
||||
1,32,1,32,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,3,33,279,8,33,1,
|
||||
34,4,34,282,8,34,11,34,12,34,283,1,34,1,34,4,34,288,8,34,11,34,12,34,289,
|
||||
3,34,292,8,34,1,35,1,35,1,35,1,35,5,35,298,8,35,10,35,12,35,301,9,35,1,
|
||||
35,1,35,1,35,1,35,1,35,5,35,308,8,35,10,35,12,35,311,9,35,1,35,3,35,314,
|
||||
8,35,1,36,1,36,5,36,318,8,36,10,36,12,36,321,9,36,1,37,4,37,324,8,37,11,
|
||||
37,12,37,325,1,37,1,37,1,38,1,38,0,0,39,1,1,3,2,5,3,7,4,9,5,11,6,13,7,15,
|
||||
8,17,9,19,10,21,11,23,12,25,13,27,14,29,15,31,16,33,17,35,18,37,19,39,20,
|
||||
41,21,43,22,45,23,47,24,49,25,51,26,53,27,55,28,57,29,59,30,61,31,63,32,
|
||||
65,33,67,34,69,35,71,36,73,37,75,38,77,0,1,0,27,2,0,76,76,108,108,2,0,73,
|
||||
73,105,105,2,0,75,75,107,107,2,0,69,69,101,101,2,0,78,78,110,110,2,0,79,
|
||||
79,111,111,2,0,84,84,116,116,2,0,66,66,98,98,2,0,87,87,119,119,2,0,88,88,
|
||||
120,120,2,0,83,83,115,115,2,0,82,82,114,114,2,0,71,71,103,103,2,0,80,80,
|
||||
112,112,2,0,67,67,99,99,2,0,65,65,97,97,2,0,68,68,100,100,2,0,72,72,104,
|
||||
104,2,0,89,89,121,121,2,0,85,85,117,117,2,0,70,70,102,102,2,0,34,34,92,
|
||||
92,2,0,39,39,92,92,4,0,48,57,65,90,95,95,97,122,6,0,46,46,48,57,65,91,93,
|
||||
93,95,95,97,122,3,0,9,10,13,13,32,32,1,0,48,57,345,0,1,1,0,0,0,0,3,1,0,
|
||||
0,0,0,5,1,0,0,0,0,7,1,0,0,0,0,9,1,0,0,0,0,11,1,0,0,0,0,13,1,0,0,0,0,15,
|
||||
1,0,0,0,0,17,1,0,0,0,0,19,1,0,0,0,0,21,1,0,0,0,0,23,1,0,0,0,0,25,1,0,0,
|
||||
0,0,27,1,0,0,0,0,29,1,0,0,0,0,31,1,0,0,0,0,33,1,0,0,0,0,35,1,0,0,0,0,37,
|
||||
1,0,0,0,0,39,1,0,0,0,0,41,1,0,0,0,0,43,1,0,0,0,0,45,1,0,0,0,0,47,1,0,0,
|
||||
0,0,49,1,0,0,0,0,51,1,0,0,0,0,53,1,0,0,0,0,55,1,0,0,0,0,57,1,0,0,0,0,59,
|
||||
1,0,0,0,0,61,1,0,0,0,0,63,1,0,0,0,0,65,1,0,0,0,0,67,1,0,0,0,0,69,1,0,0,
|
||||
0,0,71,1,0,0,0,0,73,1,0,0,0,0,75,1,0,0,0,1,79,1,0,0,0,3,81,1,0,0,0,5,83,
|
||||
1,0,0,0,7,85,1,0,0,0,9,87,1,0,0,0,11,92,1,0,0,0,13,94,1,0,0,0,15,97,1,0,
|
||||
0,0,17,100,1,0,0,0,19,102,1,0,0,0,21,105,1,0,0,0,23,107,1,0,0,0,25,110,
|
||||
1,0,0,0,27,115,1,0,0,0,29,124,1,0,0,0,31,130,1,0,0,0,33,140,1,0,0,0,35,
|
||||
148,1,0,0,0,37,160,1,0,0,0,39,168,1,0,0,0,41,180,1,0,0,0,43,187,1,0,0,0,
|
||||
45,198,1,0,0,0,47,208,1,0,0,0,49,222,1,0,0,0,51,225,1,0,0,0,53,232,1,0,
|
||||
0,0,55,236,1,0,0,0,57,240,1,0,0,0,59,243,1,0,0,0,61,247,1,0,0,0,63,254,
|
||||
1,0,0,0,65,261,1,0,0,0,67,278,1,0,0,0,69,281,1,0,0,0,71,313,1,0,0,0,73,
|
||||
315,1,0,0,0,75,323,1,0,0,0,77,329,1,0,0,0,79,80,5,40,0,0,80,2,1,0,0,0,81,
|
||||
82,5,41,0,0,82,4,1,0,0,0,83,84,5,91,0,0,84,6,1,0,0,0,85,86,5,93,0,0,86,
|
||||
8,1,0,0,0,87,88,5,44,0,0,88,10,1,0,0,0,89,93,5,61,0,0,90,91,5,61,0,0,91,
|
||||
93,5,61,0,0,92,89,1,0,0,0,92,90,1,0,0,0,93,12,1,0,0,0,94,95,5,33,0,0,95,
|
||||
96,5,61,0,0,96,14,1,0,0,0,97,98,5,60,0,0,98,99,5,62,0,0,99,16,1,0,0,0,100,
|
||||
101,5,60,0,0,101,18,1,0,0,0,102,103,5,60,0,0,103,104,5,61,0,0,104,20,1,
|
||||
0,0,0,105,106,5,62,0,0,106,22,1,0,0,0,107,108,5,62,0,0,108,109,5,61,0,0,
|
||||
109,24,1,0,0,0,110,111,7,0,0,0,111,112,7,1,0,0,112,113,7,2,0,0,113,114,
|
||||
7,3,0,0,114,26,1,0,0,0,115,116,7,4,0,0,116,117,7,5,0,0,117,118,7,6,0,0,
|
||||
118,119,5,95,0,0,119,120,7,0,0,0,120,121,7,1,0,0,121,122,7,2,0,0,122,123,
|
||||
7,3,0,0,123,28,1,0,0,0,124,125,7,1,0,0,125,126,7,0,0,0,126,127,7,1,0,0,
|
||||
127,128,7,2,0,0,128,129,7,3,0,0,129,30,1,0,0,0,130,131,7,4,0,0,131,132,
|
||||
7,5,0,0,132,133,7,6,0,0,133,134,5,95,0,0,134,135,7,1,0,0,135,136,7,0,0,
|
||||
0,136,137,7,1,0,0,137,138,7,2,0,0,138,139,7,3,0,0,139,32,1,0,0,0,140,141,
|
||||
7,7,0,0,141,142,7,3,0,0,142,143,7,6,0,0,143,144,7,8,0,0,144,145,7,3,0,0,
|
||||
145,146,7,3,0,0,146,147,7,4,0,0,147,34,1,0,0,0,148,149,7,4,0,0,149,150,
|
||||
7,5,0,0,150,151,7,6,0,0,151,152,5,95,0,0,152,153,7,7,0,0,153,154,7,3,0,
|
||||
0,154,155,7,6,0,0,155,156,7,8,0,0,156,157,7,3,0,0,157,158,7,3,0,0,158,159,
|
||||
7,4,0,0,159,36,1,0,0,0,160,161,7,3,0,0,161,162,7,9,0,0,162,163,7,1,0,0,
|
||||
163,164,7,10,0,0,164,166,7,6,0,0,165,167,7,10,0,0,166,165,1,0,0,0,166,167,
|
||||
1,0,0,0,167,38,1,0,0,0,168,169,7,4,0,0,169,170,7,5,0,0,170,171,7,6,0,0,
|
||||
171,172,5,45,0,0,172,173,7,3,0,0,173,174,7,9,0,0,174,175,7,1,0,0,175,176,
|
||||
7,10,0,0,176,178,7,6,0,0,177,179,7,10,0,0,178,177,1,0,0,0,178,179,1,0,0,
|
||||
0,179,40,1,0,0,0,180,181,7,11,0,0,181,182,7,3,0,0,182,183,7,12,0,0,183,
|
||||
184,7,3,0,0,184,185,7,9,0,0,185,186,7,13,0,0,186,42,1,0,0,0,187,188,7,4,
|
||||
0,0,188,189,7,5,0,0,189,190,7,6,0,0,190,191,5,95,0,0,191,192,7,11,0,0,192,
|
||||
193,7,3,0,0,193,194,7,12,0,0,194,195,7,3,0,0,195,196,7,9,0,0,196,197,7,
|
||||
13,0,0,197,44,1,0,0,0,198,199,7,14,0,0,199,200,7,5,0,0,200,201,7,4,0,0,
|
||||
201,202,7,6,0,0,202,203,7,15,0,0,203,204,7,1,0,0,204,206,7,4,0,0,205,207,
|
||||
7,10,0,0,206,205,1,0,0,0,206,207,1,0,0,0,207,46,1,0,0,0,208,209,7,4,0,0,
|
||||
209,210,7,5,0,0,210,211,7,6,0,0,211,212,5,95,0,0,212,213,7,14,0,0,213,214,
|
||||
7,5,0,0,214,215,7,4,0,0,215,216,7,6,0,0,216,217,7,15,0,0,217,218,7,1,0,
|
||||
0,218,220,7,4,0,0,219,221,7,10,0,0,220,219,1,0,0,0,220,221,1,0,0,0,221,
|
||||
48,1,0,0,0,222,223,7,1,0,0,223,224,7,4,0,0,224,50,1,0,0,0,225,226,7,4,0,
|
||||
0,226,227,7,5,0,0,227,228,7,6,0,0,228,229,5,95,0,0,229,230,7,1,0,0,230,
|
||||
231,7,4,0,0,231,52,1,0,0,0,232,233,7,4,0,0,233,234,7,5,0,0,234,235,7,6,
|
||||
0,0,235,54,1,0,0,0,236,237,7,15,0,0,237,238,7,4,0,0,238,239,7,16,0,0,239,
|
||||
56,1,0,0,0,240,241,7,5,0,0,241,242,7,11,0,0,242,58,1,0,0,0,243,244,7,17,
|
||||
0,0,244,245,7,15,0,0,245,246,7,10,0,0,246,60,1,0,0,0,247,248,7,17,0,0,248,
|
||||
249,7,15,0,0,249,250,7,10,0,0,250,251,7,15,0,0,251,252,7,4,0,0,252,253,
|
||||
7,18,0,0,253,62,1,0,0,0,254,255,7,17,0,0,255,256,7,15,0,0,256,257,7,10,
|
||||
0,0,257,258,7,15,0,0,258,259,7,0,0,0,259,260,7,0,0,0,260,64,1,0,0,0,261,
|
||||
262,7,17,0,0,262,263,7,15,0,0,263,264,7,10,0,0,264,265,7,4,0,0,265,266,
|
||||
7,5,0,0,266,267,7,4,0,0,267,268,7,3,0,0,268,66,1,0,0,0,269,270,7,6,0,0,
|
||||
270,271,7,11,0,0,271,272,7,19,0,0,272,279,7,3,0,0,273,274,7,20,0,0,274,
|
||||
275,7,15,0,0,275,276,7,0,0,0,276,277,7,10,0,0,277,279,7,3,0,0,278,269,1,
|
||||
0,0,0,278,273,1,0,0,0,279,68,1,0,0,0,280,282,3,77,38,0,281,280,1,0,0,0,
|
||||
282,283,1,0,0,0,283,281,1,0,0,0,283,284,1,0,0,0,284,291,1,0,0,0,285,287,
|
||||
5,46,0,0,286,288,3,77,38,0,287,286,1,0,0,0,288,289,1,0,0,0,289,287,1,0,
|
||||
0,0,289,290,1,0,0,0,290,292,1,0,0,0,291,285,1,0,0,0,291,292,1,0,0,0,292,
|
||||
70,1,0,0,0,293,299,5,34,0,0,294,298,8,21,0,0,295,296,5,92,0,0,296,298,9,
|
||||
0,0,0,297,294,1,0,0,0,297,295,1,0,0,0,298,301,1,0,0,0,299,297,1,0,0,0,299,
|
||||
300,1,0,0,0,300,302,1,0,0,0,301,299,1,0,0,0,302,314,5,34,0,0,303,309,5,
|
||||
39,0,0,304,308,8,22,0,0,305,306,5,92,0,0,306,308,9,0,0,0,307,304,1,0,0,
|
||||
0,307,305,1,0,0,0,308,311,1,0,0,0,309,307,1,0,0,0,309,310,1,0,0,0,310,312,
|
||||
1,0,0,0,311,309,1,0,0,0,312,314,5,39,0,0,313,293,1,0,0,0,313,303,1,0,0,
|
||||
0,314,72,1,0,0,0,315,319,7,23,0,0,316,318,7,24,0,0,317,316,1,0,0,0,318,
|
||||
321,1,0,0,0,319,317,1,0,0,0,319,320,1,0,0,0,320,74,1,0,0,0,321,319,1,0,
|
||||
0,0,322,324,7,25,0,0,323,322,1,0,0,0,324,325,1,0,0,0,325,323,1,0,0,0,325,
|
||||
326,1,0,0,0,326,327,1,0,0,0,327,328,6,37,0,0,328,76,1,0,0,0,329,330,7,26,
|
||||
0,0,330,78,1,0,0,0,17,0,92,166,178,206,220,278,283,289,291,297,299,307,
|
||||
309,313,319,325,1,6,0,0];
|
||||
31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2,35,7,35,1,0,1,0,1,1,1,1,1,2,1,2,
|
||||
1,3,1,3,1,4,1,4,1,5,1,5,1,5,3,5,87,8,5,1,6,1,6,1,6,1,7,1,7,1,7,1,8,1,8,
|
||||
1,9,1,9,1,9,1,10,1,10,1,11,1,11,1,11,1,12,1,12,1,12,1,12,1,12,1,13,1,13,
|
||||
1,13,1,13,1,13,1,13,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,15,1,15,1,
|
||||
15,1,15,1,15,1,15,3,15,130,8,15,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,17,
|
||||
1,17,1,17,1,17,1,17,1,17,1,17,1,17,3,17,147,8,17,1,18,1,18,1,18,1,19,1,
|
||||
19,1,19,1,19,1,20,1,20,1,20,1,20,1,21,1,21,1,21,1,22,1,22,1,22,1,22,1,23,
|
||||
1,23,1,23,1,23,1,23,1,23,1,23,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,25,1,
|
||||
25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,3,25,190,8,25,1,26,1,26,1,27,3,27,
|
||||
195,8,27,1,27,4,27,198,8,27,11,27,12,27,199,1,27,1,27,5,27,204,8,27,10,
|
||||
27,12,27,207,9,27,3,27,209,8,27,1,27,1,27,3,27,213,8,27,1,27,4,27,216,8,
|
||||
27,11,27,12,27,217,3,27,220,8,27,1,27,3,27,223,8,27,1,27,1,27,4,27,227,
|
||||
8,27,11,27,12,27,228,1,27,1,27,3,27,233,8,27,1,27,4,27,236,8,27,11,27,12,
|
||||
27,237,3,27,240,8,27,3,27,242,8,27,1,28,1,28,1,28,1,28,5,28,248,8,28,10,
|
||||
28,12,28,251,9,28,1,28,1,28,1,28,1,28,1,28,5,28,258,8,28,10,28,12,28,261,
|
||||
9,28,1,28,3,28,264,8,28,1,29,1,29,5,29,268,8,29,10,29,12,29,271,9,29,1,
|
||||
30,1,30,1,30,1,31,1,31,1,31,1,31,1,32,1,32,1,32,1,32,1,32,5,32,285,8,32,
|
||||
10,32,12,32,288,9,32,1,33,4,33,291,8,33,11,33,12,33,292,1,33,1,33,1,34,
|
||||
1,34,1,35,4,35,300,8,35,11,35,12,35,301,0,0,36,1,1,3,2,5,3,7,4,9,5,11,6,
|
||||
13,7,15,8,17,9,19,10,21,11,23,12,25,13,27,14,29,15,31,16,33,17,35,18,37,
|
||||
19,39,20,41,21,43,22,45,23,47,24,49,25,51,26,53,0,55,27,57,28,59,0,61,0,
|
||||
63,0,65,29,67,30,69,0,71,31,1,0,29,2,0,76,76,108,108,2,0,73,73,105,105,
|
||||
2,0,75,75,107,107,2,0,69,69,101,101,2,0,66,66,98,98,2,0,84,84,116,116,2,
|
||||
0,87,87,119,119,2,0,78,78,110,110,2,0,88,88,120,120,2,0,83,83,115,115,2,
|
||||
0,82,82,114,114,2,0,71,71,103,103,2,0,80,80,112,112,2,0,67,67,99,99,2,0,
|
||||
79,79,111,111,2,0,65,65,97,97,2,0,68,68,100,100,2,0,72,72,104,104,2,0,89,
|
||||
89,121,121,2,0,85,85,117,117,2,0,70,70,102,102,2,0,43,43,45,45,2,0,34,34,
|
||||
92,92,2,0,39,39,92,92,3,0,36,36,65,90,97,122,6,0,36,36,45,45,48,58,65,90,
|
||||
95,95,97,122,3,0,9,10,13,13,32,32,1,0,48,57,8,0,9,10,13,13,32,34,39,41,
|
||||
44,44,60,62,91,91,93,93,325,0,1,1,0,0,0,0,3,1,0,0,0,0,5,1,0,0,0,0,7,1,0,
|
||||
0,0,0,9,1,0,0,0,0,11,1,0,0,0,0,13,1,0,0,0,0,15,1,0,0,0,0,17,1,0,0,0,0,19,
|
||||
1,0,0,0,0,21,1,0,0,0,0,23,1,0,0,0,0,25,1,0,0,0,0,27,1,0,0,0,0,29,1,0,0,
|
||||
0,0,31,1,0,0,0,0,33,1,0,0,0,0,35,1,0,0,0,0,37,1,0,0,0,0,39,1,0,0,0,0,41,
|
||||
1,0,0,0,0,43,1,0,0,0,0,45,1,0,0,0,0,47,1,0,0,0,0,49,1,0,0,0,0,51,1,0,0,
|
||||
0,0,55,1,0,0,0,0,57,1,0,0,0,0,65,1,0,0,0,0,67,1,0,0,0,0,71,1,0,0,0,1,73,
|
||||
1,0,0,0,3,75,1,0,0,0,5,77,1,0,0,0,7,79,1,0,0,0,9,81,1,0,0,0,11,86,1,0,0,
|
||||
0,13,88,1,0,0,0,15,91,1,0,0,0,17,94,1,0,0,0,19,96,1,0,0,0,21,99,1,0,0,0,
|
||||
23,101,1,0,0,0,25,104,1,0,0,0,27,109,1,0,0,0,29,115,1,0,0,0,31,123,1,0,
|
||||
0,0,33,131,1,0,0,0,35,138,1,0,0,0,37,148,1,0,0,0,39,151,1,0,0,0,41,155,
|
||||
1,0,0,0,43,159,1,0,0,0,45,162,1,0,0,0,47,166,1,0,0,0,49,173,1,0,0,0,51,
|
||||
189,1,0,0,0,53,191,1,0,0,0,55,241,1,0,0,0,57,263,1,0,0,0,59,265,1,0,0,0,
|
||||
61,272,1,0,0,0,63,275,1,0,0,0,65,279,1,0,0,0,67,290,1,0,0,0,69,296,1,0,
|
||||
0,0,71,299,1,0,0,0,73,74,5,40,0,0,74,2,1,0,0,0,75,76,5,41,0,0,76,4,1,0,
|
||||
0,0,77,78,5,91,0,0,78,6,1,0,0,0,79,80,5,93,0,0,80,8,1,0,0,0,81,82,5,44,
|
||||
0,0,82,10,1,0,0,0,83,87,5,61,0,0,84,85,5,61,0,0,85,87,5,61,0,0,86,83,1,
|
||||
0,0,0,86,84,1,0,0,0,87,12,1,0,0,0,88,89,5,33,0,0,89,90,5,61,0,0,90,14,1,
|
||||
0,0,0,91,92,5,60,0,0,92,93,5,62,0,0,93,16,1,0,0,0,94,95,5,60,0,0,95,18,
|
||||
1,0,0,0,96,97,5,60,0,0,97,98,5,61,0,0,98,20,1,0,0,0,99,100,5,62,0,0,100,
|
||||
22,1,0,0,0,101,102,5,62,0,0,102,103,5,61,0,0,103,24,1,0,0,0,104,105,7,0,
|
||||
0,0,105,106,7,1,0,0,106,107,7,2,0,0,107,108,7,3,0,0,108,26,1,0,0,0,109,
|
||||
110,7,1,0,0,110,111,7,0,0,0,111,112,7,1,0,0,112,113,7,2,0,0,113,114,7,3,
|
||||
0,0,114,28,1,0,0,0,115,116,7,4,0,0,116,117,7,3,0,0,117,118,7,5,0,0,118,
|
||||
119,7,6,0,0,119,120,7,3,0,0,120,121,7,3,0,0,121,122,7,7,0,0,122,30,1,0,
|
||||
0,0,123,124,7,3,0,0,124,125,7,8,0,0,125,126,7,1,0,0,126,127,7,9,0,0,127,
|
||||
129,7,5,0,0,128,130,7,9,0,0,129,128,1,0,0,0,129,130,1,0,0,0,130,32,1,0,
|
||||
0,0,131,132,7,10,0,0,132,133,7,3,0,0,133,134,7,11,0,0,134,135,7,3,0,0,135,
|
||||
136,7,8,0,0,136,137,7,12,0,0,137,34,1,0,0,0,138,139,7,13,0,0,139,140,7,
|
||||
14,0,0,140,141,7,7,0,0,141,142,7,5,0,0,142,143,7,15,0,0,143,144,7,1,0,0,
|
||||
144,146,7,7,0,0,145,147,7,9,0,0,146,145,1,0,0,0,146,147,1,0,0,0,147,36,
|
||||
1,0,0,0,148,149,7,1,0,0,149,150,7,7,0,0,150,38,1,0,0,0,151,152,7,7,0,0,
|
||||
152,153,7,14,0,0,153,154,7,5,0,0,154,40,1,0,0,0,155,156,7,15,0,0,156,157,
|
||||
7,7,0,0,157,158,7,16,0,0,158,42,1,0,0,0,159,160,7,14,0,0,160,161,7,10,0,
|
||||
0,161,44,1,0,0,0,162,163,7,17,0,0,163,164,7,15,0,0,164,165,7,9,0,0,165,
|
||||
46,1,0,0,0,166,167,7,17,0,0,167,168,7,15,0,0,168,169,7,9,0,0,169,170,7,
|
||||
15,0,0,170,171,7,7,0,0,171,172,7,18,0,0,172,48,1,0,0,0,173,174,7,17,0,0,
|
||||
174,175,7,15,0,0,175,176,7,9,0,0,176,177,7,15,0,0,177,178,7,0,0,0,178,179,
|
||||
7,0,0,0,179,50,1,0,0,0,180,181,7,5,0,0,181,182,7,10,0,0,182,183,7,19,0,
|
||||
0,183,190,7,3,0,0,184,185,7,20,0,0,185,186,7,15,0,0,186,187,7,0,0,0,187,
|
||||
188,7,9,0,0,188,190,7,3,0,0,189,180,1,0,0,0,189,184,1,0,0,0,190,52,1,0,
|
||||
0,0,191,192,7,21,0,0,192,54,1,0,0,0,193,195,3,53,26,0,194,193,1,0,0,0,194,
|
||||
195,1,0,0,0,195,197,1,0,0,0,196,198,3,69,34,0,197,196,1,0,0,0,198,199,1,
|
||||
0,0,0,199,197,1,0,0,0,199,200,1,0,0,0,200,208,1,0,0,0,201,205,5,46,0,0,
|
||||
202,204,3,69,34,0,203,202,1,0,0,0,204,207,1,0,0,0,205,203,1,0,0,0,205,206,
|
||||
1,0,0,0,206,209,1,0,0,0,207,205,1,0,0,0,208,201,1,0,0,0,208,209,1,0,0,0,
|
||||
209,219,1,0,0,0,210,212,7,3,0,0,211,213,3,53,26,0,212,211,1,0,0,0,212,213,
|
||||
1,0,0,0,213,215,1,0,0,0,214,216,3,69,34,0,215,214,1,0,0,0,216,217,1,0,0,
|
||||
0,217,215,1,0,0,0,217,218,1,0,0,0,218,220,1,0,0,0,219,210,1,0,0,0,219,220,
|
||||
1,0,0,0,220,242,1,0,0,0,221,223,3,53,26,0,222,221,1,0,0,0,222,223,1,0,0,
|
||||
0,223,224,1,0,0,0,224,226,5,46,0,0,225,227,3,69,34,0,226,225,1,0,0,0,227,
|
||||
228,1,0,0,0,228,226,1,0,0,0,228,229,1,0,0,0,229,239,1,0,0,0,230,232,7,3,
|
||||
0,0,231,233,3,53,26,0,232,231,1,0,0,0,232,233,1,0,0,0,233,235,1,0,0,0,234,
|
||||
236,3,69,34,0,235,234,1,0,0,0,236,237,1,0,0,0,237,235,1,0,0,0,237,238,1,
|
||||
0,0,0,238,240,1,0,0,0,239,230,1,0,0,0,239,240,1,0,0,0,240,242,1,0,0,0,241,
|
||||
194,1,0,0,0,241,222,1,0,0,0,242,56,1,0,0,0,243,249,5,34,0,0,244,248,8,22,
|
||||
0,0,245,246,5,92,0,0,246,248,9,0,0,0,247,244,1,0,0,0,247,245,1,0,0,0,248,
|
||||
251,1,0,0,0,249,247,1,0,0,0,249,250,1,0,0,0,250,252,1,0,0,0,251,249,1,0,
|
||||
0,0,252,264,5,34,0,0,253,259,5,39,0,0,254,258,8,23,0,0,255,256,5,92,0,0,
|
||||
256,258,9,0,0,0,257,254,1,0,0,0,257,255,1,0,0,0,258,261,1,0,0,0,259,257,
|
||||
1,0,0,0,259,260,1,0,0,0,260,262,1,0,0,0,261,259,1,0,0,0,262,264,5,39,0,
|
||||
0,263,243,1,0,0,0,263,253,1,0,0,0,264,58,1,0,0,0,265,269,7,24,0,0,266,268,
|
||||
7,25,0,0,267,266,1,0,0,0,268,271,1,0,0,0,269,267,1,0,0,0,269,270,1,0,0,
|
||||
0,270,60,1,0,0,0,271,269,1,0,0,0,272,273,5,91,0,0,273,274,5,93,0,0,274,
|
||||
62,1,0,0,0,275,276,5,91,0,0,276,277,5,42,0,0,277,278,5,93,0,0,278,64,1,
|
||||
0,0,0,279,286,3,59,29,0,280,281,5,46,0,0,281,285,3,59,29,0,282,285,3,61,
|
||||
30,0,283,285,3,63,31,0,284,280,1,0,0,0,284,282,1,0,0,0,284,283,1,0,0,0,
|
||||
285,288,1,0,0,0,286,284,1,0,0,0,286,287,1,0,0,0,287,66,1,0,0,0,288,286,
|
||||
1,0,0,0,289,291,7,26,0,0,290,289,1,0,0,0,291,292,1,0,0,0,292,290,1,0,0,
|
||||
0,292,293,1,0,0,0,293,294,1,0,0,0,294,295,6,33,0,0,295,68,1,0,0,0,296,297,
|
||||
7,27,0,0,297,70,1,0,0,0,298,300,8,28,0,0,299,298,1,0,0,0,300,301,1,0,0,
|
||||
0,301,299,1,0,0,0,301,302,1,0,0,0,302,72,1,0,0,0,28,0,86,129,146,189,194,
|
||||
199,205,208,212,217,219,222,228,232,237,239,241,247,249,257,259,263,269,
|
||||
284,286,292,301,1,6,0,0];
|
||||
|
||||
private static __ATN: ATN;
|
||||
public static get _ATN(): ATN {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@ -11,31 +11,24 @@ LE=10
|
||||
GT=11
|
||||
GE=12
|
||||
LIKE=13
|
||||
NOT_LIKE=14
|
||||
ILIKE=15
|
||||
NOT_ILIKE=16
|
||||
BETWEEN=17
|
||||
NOT_BETWEEN=18
|
||||
EXISTS=19
|
||||
NOT_EXISTS=20
|
||||
REGEXP=21
|
||||
NOT_REGEXP=22
|
||||
CONTAINS=23
|
||||
NOT_CONTAINS=24
|
||||
IN=25
|
||||
NOT_IN=26
|
||||
NOT=27
|
||||
AND=28
|
||||
OR=29
|
||||
HAS=30
|
||||
HASANY=31
|
||||
HASALL=32
|
||||
HASNONE=33
|
||||
BOOL=34
|
||||
NUMBER=35
|
||||
QUOTED_TEXT=36
|
||||
KEY=37
|
||||
WS=38
|
||||
ILIKE=14
|
||||
BETWEEN=15
|
||||
EXISTS=16
|
||||
REGEXP=17
|
||||
CONTAINS=18
|
||||
IN=19
|
||||
NOT=20
|
||||
AND=21
|
||||
OR=22
|
||||
HAS=23
|
||||
HASANY=24
|
||||
HASALL=25
|
||||
BOOL=26
|
||||
NUMBER=27
|
||||
QUOTED_TEXT=28
|
||||
KEY=29
|
||||
WS=30
|
||||
FREETEXT=31
|
||||
'('=1
|
||||
')'=2
|
||||
'['=3
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -17,11 +17,9 @@ public class FilterQueryLexer extends Lexer {
|
||||
new PredictionContextCache();
|
||||
public static final int
|
||||
LPAREN=1, RPAREN=2, LBRACK=3, RBRACK=4, COMMA=5, EQUALS=6, NOT_EQUALS=7,
|
||||
NEQ=8, LT=9, LE=10, GT=11, GE=12, LIKE=13, NOT_LIKE=14, ILIKE=15, NOT_ILIKE=16,
|
||||
BETWEEN=17, NOT_BETWEEN=18, EXISTS=19, NOT_EXISTS=20, REGEXP=21, NOT_REGEXP=22,
|
||||
CONTAINS=23, NOT_CONTAINS=24, IN=25, NOT_IN=26, NOT=27, AND=28, OR=29,
|
||||
HAS=30, HASANY=31, HASALL=32, HASNONE=33, BOOL=34, NUMBER=35, QUOTED_TEXT=36,
|
||||
KEY=37, WS=38;
|
||||
NEQ=8, LT=9, LE=10, GT=11, GE=12, LIKE=13, ILIKE=14, BETWEEN=15, EXISTS=16,
|
||||
REGEXP=17, CONTAINS=18, IN=19, NOT=20, AND=21, OR=22, HAS=23, HASANY=24,
|
||||
HASALL=25, BOOL=26, NUMBER=27, QUOTED_TEXT=28, KEY=29, WS=30, FREETEXT=31;
|
||||
public static String[] channelNames = {
|
||||
"DEFAULT_TOKEN_CHANNEL", "HIDDEN"
|
||||
};
|
||||
@ -33,11 +31,10 @@ public class FilterQueryLexer extends Lexer {
|
||||
private static String[] makeRuleNames() {
|
||||
return new String[] {
|
||||
"LPAREN", "RPAREN", "LBRACK", "RBRACK", "COMMA", "EQUALS", "NOT_EQUALS",
|
||||
"NEQ", "LT", "LE", "GT", "GE", "LIKE", "NOT_LIKE", "ILIKE", "NOT_ILIKE",
|
||||
"BETWEEN", "NOT_BETWEEN", "EXISTS", "NOT_EXISTS", "REGEXP", "NOT_REGEXP",
|
||||
"CONTAINS", "NOT_CONTAINS", "IN", "NOT_IN", "NOT", "AND", "OR", "HAS",
|
||||
"HASANY", "HASALL", "HASNONE", "BOOL", "NUMBER", "QUOTED_TEXT", "KEY",
|
||||
"WS", "DIGIT"
|
||||
"NEQ", "LT", "LE", "GT", "GE", "LIKE", "ILIKE", "BETWEEN", "EXISTS",
|
||||
"REGEXP", "CONTAINS", "IN", "NOT", "AND", "OR", "HAS", "HASANY", "HASALL",
|
||||
"BOOL", "SIGN", "NUMBER", "QUOTED_TEXT", "SEGMENT", "EMPTY_BRACKS", "OLD_JSON_BRACKS",
|
||||
"KEY", "WS", "DIGIT", "FREETEXT"
|
||||
};
|
||||
}
|
||||
public static final String[] ruleNames = makeRuleNames();
|
||||
@ -52,11 +49,9 @@ public class FilterQueryLexer extends Lexer {
|
||||
private static String[] makeSymbolicNames() {
|
||||
return new String[] {
|
||||
null, "LPAREN", "RPAREN", "LBRACK", "RBRACK", "COMMA", "EQUALS", "NOT_EQUALS",
|
||||
"NEQ", "LT", "LE", "GT", "GE", "LIKE", "NOT_LIKE", "ILIKE", "NOT_ILIKE",
|
||||
"BETWEEN", "NOT_BETWEEN", "EXISTS", "NOT_EXISTS", "REGEXP", "NOT_REGEXP",
|
||||
"CONTAINS", "NOT_CONTAINS", "IN", "NOT_IN", "NOT", "AND", "OR", "HAS",
|
||||
"HASANY", "HASALL", "HASNONE", "BOOL", "NUMBER", "QUOTED_TEXT", "KEY",
|
||||
"WS"
|
||||
"NEQ", "LT", "LE", "GT", "GE", "LIKE", "ILIKE", "BETWEEN", "EXISTS",
|
||||
"REGEXP", "CONTAINS", "IN", "NOT", "AND", "OR", "HAS", "HASANY", "HASALL",
|
||||
"BOOL", "NUMBER", "QUOTED_TEXT", "KEY", "WS", "FREETEXT"
|
||||
};
|
||||
}
|
||||
private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
|
||||
@ -118,223 +113,215 @@ public class FilterQueryLexer extends Lexer {
|
||||
public ATN getATN() { return _ATN; }
|
||||
|
||||
public static final String _serializedATN =
|
||||
"\u0004\u0000&\u014b\u0006\uffff\uffff\u0002\u0000\u0007\u0000\u0002\u0001"+
|
||||
"\u0007\u0001\u0002\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002\u0004"+
|
||||
"\u0007\u0004\u0002\u0005\u0007\u0005\u0002\u0006\u0007\u0006\u0002\u0007"+
|
||||
"\u0007\u0007\u0002\b\u0007\b\u0002\t\u0007\t\u0002\n\u0007\n\u0002\u000b"+
|
||||
"\u0007\u000b\u0002\f\u0007\f\u0002\r\u0007\r\u0002\u000e\u0007\u000e\u0002"+
|
||||
"\u000f\u0007\u000f\u0002\u0010\u0007\u0010\u0002\u0011\u0007\u0011\u0002"+
|
||||
"\u0012\u0007\u0012\u0002\u0013\u0007\u0013\u0002\u0014\u0007\u0014\u0002"+
|
||||
"\u0015\u0007\u0015\u0002\u0016\u0007\u0016\u0002\u0017\u0007\u0017\u0002"+
|
||||
"\u0018\u0007\u0018\u0002\u0019\u0007\u0019\u0002\u001a\u0007\u001a\u0002"+
|
||||
"\u001b\u0007\u001b\u0002\u001c\u0007\u001c\u0002\u001d\u0007\u001d\u0002"+
|
||||
"\u001e\u0007\u001e\u0002\u001f\u0007\u001f\u0002 \u0007 \u0002!\u0007"+
|
||||
"!\u0002\"\u0007\"\u0002#\u0007#\u0002$\u0007$\u0002%\u0007%\u0002&\u0007"+
|
||||
"&\u0001\u0000\u0001\u0000\u0001\u0001\u0001\u0001\u0001\u0002\u0001\u0002"+
|
||||
"\u0001\u0003\u0001\u0003\u0001\u0004\u0001\u0004\u0001\u0005\u0001\u0005"+
|
||||
"\u0001\u0005\u0003\u0005]\b\u0005\u0001\u0006\u0001\u0006\u0001\u0006"+
|
||||
"\u0001\u0007\u0001\u0007\u0001\u0007\u0001\b\u0001\b\u0001\t\u0001\t\u0001"+
|
||||
"\t\u0001\n\u0001\n\u0001\u000b\u0001\u000b\u0001\u000b\u0001\f\u0001\f"+
|
||||
"\u0001\f\u0001\f\u0001\f\u0001\r\u0001\r\u0001\r\u0001\r\u0001\r\u0001"+
|
||||
"\r\u0001\r\u0001\r\u0001\r\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000e"+
|
||||
"\u0001\u000e\u0001\u000e\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f"+
|
||||
"\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f"+
|
||||
"\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0010"+
|
||||
"\u0004\u0000\u001f\u012f\u0006\uffff\uffff\u0002\u0000\u0007\u0000\u0002"+
|
||||
"\u0001\u0007\u0001\u0002\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002"+
|
||||
"\u0004\u0007\u0004\u0002\u0005\u0007\u0005\u0002\u0006\u0007\u0006\u0002"+
|
||||
"\u0007\u0007\u0007\u0002\b\u0007\b\u0002\t\u0007\t\u0002\n\u0007\n\u0002"+
|
||||
"\u000b\u0007\u000b\u0002\f\u0007\f\u0002\r\u0007\r\u0002\u000e\u0007\u000e"+
|
||||
"\u0002\u000f\u0007\u000f\u0002\u0010\u0007\u0010\u0002\u0011\u0007\u0011"+
|
||||
"\u0002\u0012\u0007\u0012\u0002\u0013\u0007\u0013\u0002\u0014\u0007\u0014"+
|
||||
"\u0002\u0015\u0007\u0015\u0002\u0016\u0007\u0016\u0002\u0017\u0007\u0017"+
|
||||
"\u0002\u0018\u0007\u0018\u0002\u0019\u0007\u0019\u0002\u001a\u0007\u001a"+
|
||||
"\u0002\u001b\u0007\u001b\u0002\u001c\u0007\u001c\u0002\u001d\u0007\u001d"+
|
||||
"\u0002\u001e\u0007\u001e\u0002\u001f\u0007\u001f\u0002 \u0007 \u0002!"+
|
||||
"\u0007!\u0002\"\u0007\"\u0002#\u0007#\u0001\u0000\u0001\u0000\u0001\u0001"+
|
||||
"\u0001\u0001\u0001\u0002\u0001\u0002\u0001\u0003\u0001\u0003\u0001\u0004"+
|
||||
"\u0001\u0004\u0001\u0005\u0001\u0005\u0001\u0005\u0003\u0005W\b\u0005"+
|
||||
"\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0007\u0001\u0007\u0001\u0007"+
|
||||
"\u0001\b\u0001\b\u0001\t\u0001\t\u0001\t\u0001\n\u0001\n\u0001\u000b\u0001"+
|
||||
"\u000b\u0001\u000b\u0001\f\u0001\f\u0001\f\u0001\f\u0001\f\u0001\r\u0001"+
|
||||
"\r\u0001\r\u0001\r\u0001\r\u0001\r\u0001\u000e\u0001\u000e\u0001\u000e"+
|
||||
"\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000f"+
|
||||
"\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0003\u000f"+
|
||||
"\u0082\b\u000f\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0010"+
|
||||
"\u0001\u0010\u0001\u0010\u0001\u0011\u0001\u0011\u0001\u0011\u0001\u0011"+
|
||||
"\u0001\u0011\u0001\u0011\u0001\u0011\u0001\u0011\u0001\u0011\u0001\u0011"+
|
||||
"\u0001\u0011\u0001\u0011\u0001\u0012\u0001\u0012\u0001\u0012\u0001\u0012"+
|
||||
"\u0001\u0012\u0001\u0012\u0003\u0012\u00a7\b\u0012\u0001\u0013\u0001\u0013"+
|
||||
"\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0013"+
|
||||
"\u0001\u0013\u0001\u0013\u0003\u0013\u00b3\b\u0013\u0001\u0014\u0001\u0014"+
|
||||
"\u0001\u0014\u0001\u0014\u0001\u0014\u0001\u0014\u0001\u0014\u0001\u0015"+
|
||||
"\u0001\u0015\u0001\u0015\u0001\u0015\u0001\u0015\u0001\u0015\u0001\u0015"+
|
||||
"\u0001\u0015\u0001\u0015\u0001\u0015\u0001\u0015\u0001\u0016\u0001\u0016"+
|
||||
"\u0001\u0016\u0001\u0016\u0001\u0016\u0001\u0016\u0001\u0016\u0001\u0016"+
|
||||
"\u0003\u0016\u00cf\b\u0016\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0017"+
|
||||
"\u0001\u0011\u0001\u0011\u0001\u0011\u0001\u0011\u0003\u0011\u0093\b\u0011"+
|
||||
"\u0001\u0012\u0001\u0012\u0001\u0012\u0001\u0013\u0001\u0013\u0001\u0013"+
|
||||
"\u0001\u0013\u0001\u0014\u0001\u0014\u0001\u0014\u0001\u0014\u0001\u0015"+
|
||||
"\u0001\u0015\u0001\u0015\u0001\u0016\u0001\u0016\u0001\u0016\u0001\u0016"+
|
||||
"\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0017"+
|
||||
"\u0001\u0017\u0001\u0017\u0003\u0017\u00dd\b\u0017\u0001\u0018\u0001\u0018"+
|
||||
"\u0001\u0018\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019"+
|
||||
"\u0001\u0019\u0001\u0019\u0001\u001a\u0001\u001a\u0001\u001a\u0001\u001a"+
|
||||
"\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001c\u0001\u001c"+
|
||||
"\u0001\u001c\u0001\u001d\u0001\u001d\u0001\u001d\u0001\u001d\u0001\u001e"+
|
||||
"\u0001\u001e\u0001\u001e\u0001\u001e\u0001\u001e\u0001\u001e\u0001\u001e"+
|
||||
"\u0001\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0001\u001f"+
|
||||
"\u0001\u001f\u0001 \u0001 \u0001 \u0001 \u0001 \u0001 \u0001 \u0001 \u0001"+
|
||||
"!\u0001!\u0001!\u0001!\u0001!\u0001!\u0001!\u0001!\u0001!\u0003!\u0117"+
|
||||
"\b!\u0001\"\u0004\"\u011a\b\"\u000b\"\f\"\u011b\u0001\"\u0001\"\u0004"+
|
||||
"\"\u0120\b\"\u000b\"\f\"\u0121\u0003\"\u0124\b\"\u0001#\u0001#\u0001#"+
|
||||
"\u0001#\u0005#\u012a\b#\n#\f#\u012d\t#\u0001#\u0001#\u0001#\u0001#\u0001"+
|
||||
"#\u0005#\u0134\b#\n#\f#\u0137\t#\u0001#\u0003#\u013a\b#\u0001$\u0001$"+
|
||||
"\u0005$\u013e\b$\n$\f$\u0141\t$\u0001%\u0004%\u0144\b%\u000b%\f%\u0145"+
|
||||
"\u0001%\u0001%\u0001&\u0001&\u0000\u0000\'\u0001\u0001\u0003\u0002\u0005"+
|
||||
"\u0003\u0007\u0004\t\u0005\u000b\u0006\r\u0007\u000f\b\u0011\t\u0013\n"+
|
||||
"\u0015\u000b\u0017\f\u0019\r\u001b\u000e\u001d\u000f\u001f\u0010!\u0011"+
|
||||
"#\u0012%\u0013\'\u0014)\u0015+\u0016-\u0017/\u00181\u00193\u001a5\u001b"+
|
||||
"7\u001c9\u001d;\u001e=\u001f? A!C\"E#G$I%K&M\u0000\u0001\u0000\u001b\u0002"+
|
||||
"\u0000LLll\u0002\u0000IIii\u0002\u0000KKkk\u0002\u0000EEee\u0002\u0000"+
|
||||
"NNnn\u0002\u0000OOoo\u0002\u0000TTtt\u0002\u0000BBbb\u0002\u0000WWww\u0002"+
|
||||
"\u0000XXxx\u0002\u0000SSss\u0002\u0000RRrr\u0002\u0000GGgg\u0002\u0000"+
|
||||
"PPpp\u0002\u0000CCcc\u0002\u0000AAaa\u0002\u0000DDdd\u0002\u0000HHhh\u0002"+
|
||||
"\u0000YYyy\u0002\u0000UUuu\u0002\u0000FFff\u0002\u0000\"\"\\\\\u0002\u0000"+
|
||||
"\'\'\\\\\u0004\u000009AZ__az\u0006\u0000..09A[]]__az\u0003\u0000\t\n\r"+
|
||||
"\r \u0001\u000009\u0159\u0000\u0001\u0001\u0000\u0000\u0000\u0000\u0003"+
|
||||
"\u0001\u0000\u0000\u0000\u0000\u0005\u0001\u0000\u0000\u0000\u0000\u0007"+
|
||||
"\u0001\u0000\u0000\u0000\u0000\t\u0001\u0000\u0000\u0000\u0000\u000b\u0001"+
|
||||
"\u0000\u0000\u0000\u0000\r\u0001\u0000\u0000\u0000\u0000\u000f\u0001\u0000"+
|
||||
"\u0000\u0000\u0000\u0011\u0001\u0000\u0000\u0000\u0000\u0013\u0001\u0000"+
|
||||
"\u0000\u0000\u0000\u0015\u0001\u0000\u0000\u0000\u0000\u0017\u0001\u0000"+
|
||||
"\u0000\u0000\u0000\u0019\u0001\u0000\u0000\u0000\u0000\u001b\u0001\u0000"+
|
||||
"\u0000\u0000\u0000\u001d\u0001\u0000\u0000\u0000\u0000\u001f\u0001\u0000"+
|
||||
"\u0000\u0000\u0000!\u0001\u0000\u0000\u0000\u0000#\u0001\u0000\u0000\u0000"+
|
||||
"\u0000%\u0001\u0000\u0000\u0000\u0000\'\u0001\u0000\u0000\u0000\u0000"+
|
||||
")\u0001\u0000\u0000\u0000\u0000+\u0001\u0000\u0000\u0000\u0000-\u0001"+
|
||||
"\u0000\u0000\u0000\u0000/\u0001\u0000\u0000\u0000\u00001\u0001\u0000\u0000"+
|
||||
"\u0000\u00003\u0001\u0000\u0000\u0000\u00005\u0001\u0000\u0000\u0000\u0000"+
|
||||
"7\u0001\u0000\u0000\u0000\u00009\u0001\u0000\u0000\u0000\u0000;\u0001"+
|
||||
"\u0000\u0000\u0000\u0000=\u0001\u0000\u0000\u0000\u0000?\u0001\u0000\u0000"+
|
||||
"\u0000\u0000A\u0001\u0000\u0000\u0000\u0000C\u0001\u0000\u0000\u0000\u0000"+
|
||||
"E\u0001\u0000\u0000\u0000\u0000G\u0001\u0000\u0000\u0000\u0000I\u0001"+
|
||||
"\u0000\u0000\u0000\u0000K\u0001\u0000\u0000\u0000\u0001O\u0001\u0000\u0000"+
|
||||
"\u0000\u0003Q\u0001\u0000\u0000\u0000\u0005S\u0001\u0000\u0000\u0000\u0007"+
|
||||
"U\u0001\u0000\u0000\u0000\tW\u0001\u0000\u0000\u0000\u000b\\\u0001\u0000"+
|
||||
"\u0000\u0000\r^\u0001\u0000\u0000\u0000\u000fa\u0001\u0000\u0000\u0000"+
|
||||
"\u0011d\u0001\u0000\u0000\u0000\u0013f\u0001\u0000\u0000\u0000\u0015i"+
|
||||
"\u0001\u0000\u0000\u0000\u0017k\u0001\u0000\u0000\u0000\u0019n\u0001\u0000"+
|
||||
"\u0000\u0000\u001bs\u0001\u0000\u0000\u0000\u001d|\u0001\u0000\u0000\u0000"+
|
||||
"\u001f\u0082\u0001\u0000\u0000\u0000!\u008c\u0001\u0000\u0000\u0000#\u0094"+
|
||||
"\u0001\u0000\u0000\u0000%\u00a0\u0001\u0000\u0000\u0000\'\u00a8\u0001"+
|
||||
"\u0000\u0000\u0000)\u00b4\u0001\u0000\u0000\u0000+\u00bb\u0001\u0000\u0000"+
|
||||
"\u0000-\u00c6\u0001\u0000\u0000\u0000/\u00d0\u0001\u0000\u0000\u00001"+
|
||||
"\u00de\u0001\u0000\u0000\u00003\u00e1\u0001\u0000\u0000\u00005\u00e8\u0001"+
|
||||
"\u0000\u0000\u00007\u00ec\u0001\u0000\u0000\u00009\u00f0\u0001\u0000\u0000"+
|
||||
"\u0000;\u00f3\u0001\u0000\u0000\u0000=\u00f7\u0001\u0000\u0000\u0000?"+
|
||||
"\u00fe\u0001\u0000\u0000\u0000A\u0105\u0001\u0000\u0000\u0000C\u0116\u0001"+
|
||||
"\u0000\u0000\u0000E\u0119\u0001\u0000\u0000\u0000G\u0139\u0001\u0000\u0000"+
|
||||
"\u0000I\u013b\u0001\u0000\u0000\u0000K\u0143\u0001\u0000\u0000\u0000M"+
|
||||
"\u0149\u0001\u0000\u0000\u0000OP\u0005(\u0000\u0000P\u0002\u0001\u0000"+
|
||||
"\u0000\u0000QR\u0005)\u0000\u0000R\u0004\u0001\u0000\u0000\u0000ST\u0005"+
|
||||
"[\u0000\u0000T\u0006\u0001\u0000\u0000\u0000UV\u0005]\u0000\u0000V\b\u0001"+
|
||||
"\u0000\u0000\u0000WX\u0005,\u0000\u0000X\n\u0001\u0000\u0000\u0000Y]\u0005"+
|
||||
"=\u0000\u0000Z[\u0005=\u0000\u0000[]\u0005=\u0000\u0000\\Y\u0001\u0000"+
|
||||
"\u0000\u0000\\Z\u0001\u0000\u0000\u0000]\f\u0001\u0000\u0000\u0000^_\u0005"+
|
||||
"!\u0000\u0000_`\u0005=\u0000\u0000`\u000e\u0001\u0000\u0000\u0000ab\u0005"+
|
||||
"<\u0000\u0000bc\u0005>\u0000\u0000c\u0010\u0001\u0000\u0000\u0000de\u0005"+
|
||||
"<\u0000\u0000e\u0012\u0001\u0000\u0000\u0000fg\u0005<\u0000\u0000gh\u0005"+
|
||||
"=\u0000\u0000h\u0014\u0001\u0000\u0000\u0000ij\u0005>\u0000\u0000j\u0016"+
|
||||
"\u0001\u0000\u0000\u0000kl\u0005>\u0000\u0000lm\u0005=\u0000\u0000m\u0018"+
|
||||
"\u0001\u0000\u0000\u0000no\u0007\u0000\u0000\u0000op\u0007\u0001\u0000"+
|
||||
"\u0000pq\u0007\u0002\u0000\u0000qr\u0007\u0003\u0000\u0000r\u001a\u0001"+
|
||||
"\u0000\u0000\u0000st\u0007\u0004\u0000\u0000tu\u0007\u0005\u0000\u0000"+
|
||||
"uv\u0007\u0006\u0000\u0000vw\u0005_\u0000\u0000wx\u0007\u0000\u0000\u0000"+
|
||||
"xy\u0007\u0001\u0000\u0000yz\u0007\u0002\u0000\u0000z{\u0007\u0003\u0000"+
|
||||
"\u0000{\u001c\u0001\u0000\u0000\u0000|}\u0007\u0001\u0000\u0000}~\u0007"+
|
||||
"\u0000\u0000\u0000~\u007f\u0007\u0001\u0000\u0000\u007f\u0080\u0007\u0002"+
|
||||
"\u0000\u0000\u0080\u0081\u0007\u0003\u0000\u0000\u0081\u001e\u0001\u0000"+
|
||||
"\u0000\u0000\u0082\u0083\u0007\u0004\u0000\u0000\u0083\u0084\u0007\u0005"+
|
||||
"\u0000\u0000\u0084\u0085\u0007\u0006\u0000\u0000\u0085\u0086\u0005_\u0000"+
|
||||
"\u0000\u0086\u0087\u0007\u0001\u0000\u0000\u0087\u0088\u0007\u0000\u0000"+
|
||||
"\u0000\u0088\u0089\u0007\u0001\u0000\u0000\u0089\u008a\u0007\u0002\u0000"+
|
||||
"\u0000\u008a\u008b\u0007\u0003\u0000\u0000\u008b \u0001\u0000\u0000\u0000"+
|
||||
"\u008c\u008d\u0007\u0007\u0000\u0000\u008d\u008e\u0007\u0003\u0000\u0000"+
|
||||
"\u008e\u008f\u0007\u0006\u0000\u0000\u008f\u0090\u0007\b\u0000\u0000\u0090"+
|
||||
"\u0091\u0007\u0003\u0000\u0000\u0091\u0092\u0007\u0003\u0000\u0000\u0092"+
|
||||
"\u0093\u0007\u0004\u0000\u0000\u0093\"\u0001\u0000\u0000\u0000\u0094\u0095"+
|
||||
"\u0007\u0004\u0000\u0000\u0095\u0096\u0007\u0005\u0000\u0000\u0096\u0097"+
|
||||
"\u0007\u0006\u0000\u0000\u0097\u0098\u0005_\u0000\u0000\u0098\u0099\u0007"+
|
||||
"\u0007\u0000\u0000\u0099\u009a\u0007\u0003\u0000\u0000\u009a\u009b\u0007"+
|
||||
"\u0006\u0000\u0000\u009b\u009c\u0007\b\u0000\u0000\u009c\u009d\u0007\u0003"+
|
||||
"\u0000\u0000\u009d\u009e\u0007\u0003\u0000\u0000\u009e\u009f\u0007\u0004"+
|
||||
"\u0000\u0000\u009f$\u0001\u0000\u0000\u0000\u00a0\u00a1\u0007\u0003\u0000"+
|
||||
"\u0000\u00a1\u00a2\u0007\t\u0000\u0000\u00a2\u00a3\u0007\u0001\u0000\u0000"+
|
||||
"\u00a3\u00a4\u0007\n\u0000\u0000\u00a4\u00a6\u0007\u0006\u0000\u0000\u00a5"+
|
||||
"\u00a7\u0007\n\u0000\u0000\u00a6\u00a5\u0001\u0000\u0000\u0000\u00a6\u00a7"+
|
||||
"\u0001\u0000\u0000\u0000\u00a7&\u0001\u0000\u0000\u0000\u00a8\u00a9\u0007"+
|
||||
"\u0004\u0000\u0000\u00a9\u00aa\u0007\u0005\u0000\u0000\u00aa\u00ab\u0007"+
|
||||
"\u0006\u0000\u0000\u00ab\u00ac\u0005-\u0000\u0000\u00ac\u00ad\u0007\u0003"+
|
||||
"\u0000\u0000\u00ad\u00ae\u0007\t\u0000\u0000\u00ae\u00af\u0007\u0001\u0000"+
|
||||
"\u0000\u00af\u00b0\u0007\n\u0000\u0000\u00b0\u00b2\u0007\u0006\u0000\u0000"+
|
||||
"\u00b1\u00b3\u0007\n\u0000\u0000\u00b2\u00b1\u0001\u0000\u0000\u0000\u00b2"+
|
||||
"\u00b3\u0001\u0000\u0000\u0000\u00b3(\u0001\u0000\u0000\u0000\u00b4\u00b5"+
|
||||
"\u0007\u000b\u0000\u0000\u00b5\u00b6\u0007\u0003\u0000\u0000\u00b6\u00b7"+
|
||||
"\u0007\f\u0000\u0000\u00b7\u00b8\u0007\u0003\u0000\u0000\u00b8\u00b9\u0007"+
|
||||
"\t\u0000\u0000\u00b9\u00ba\u0007\r\u0000\u0000\u00ba*\u0001\u0000\u0000"+
|
||||
"\u0000\u00bb\u00bc\u0007\u0004\u0000\u0000\u00bc\u00bd\u0007\u0005\u0000"+
|
||||
"\u0000\u00bd\u00be\u0007\u0006\u0000\u0000\u00be\u00bf\u0005_\u0000\u0000"+
|
||||
"\u00bf\u00c0\u0007\u000b\u0000\u0000\u00c0\u00c1\u0007\u0003\u0000\u0000"+
|
||||
"\u00c1\u00c2\u0007\f\u0000\u0000\u00c2\u00c3\u0007\u0003\u0000\u0000\u00c3"+
|
||||
"\u00c4\u0007\t\u0000\u0000\u00c4\u00c5\u0007\r\u0000\u0000\u00c5,\u0001"+
|
||||
"\u0000\u0000\u0000\u00c6\u00c7\u0007\u000e\u0000\u0000\u00c7\u00c8\u0007"+
|
||||
"\u0005\u0000\u0000\u00c8\u00c9\u0007\u0004\u0000\u0000\u00c9\u00ca\u0007"+
|
||||
"\u0006\u0000\u0000\u00ca\u00cb\u0007\u000f\u0000\u0000\u00cb\u00cc\u0007"+
|
||||
"\u0001\u0000\u0000\u00cc\u00ce\u0007\u0004\u0000\u0000\u00cd\u00cf\u0007"+
|
||||
"\n\u0000\u0000\u00ce\u00cd\u0001\u0000\u0000\u0000\u00ce\u00cf\u0001\u0000"+
|
||||
"\u0000\u0000\u00cf.\u0001\u0000\u0000\u0000\u00d0\u00d1\u0007\u0004\u0000"+
|
||||
"\u0000\u00d1\u00d2\u0007\u0005\u0000\u0000\u00d2\u00d3\u0007\u0006\u0000"+
|
||||
"\u0000\u00d3\u00d4\u0005_\u0000\u0000\u00d4\u00d5\u0007\u000e\u0000\u0000"+
|
||||
"\u00d5\u00d6\u0007\u0005\u0000\u0000\u00d6\u00d7\u0007\u0004\u0000\u0000"+
|
||||
"\u00d7\u00d8\u0007\u0006\u0000\u0000\u00d8\u00d9\u0007\u000f\u0000\u0000"+
|
||||
"\u00d9\u00da\u0007\u0001\u0000\u0000\u00da\u00dc\u0007\u0004\u0000\u0000"+
|
||||
"\u00db\u00dd\u0007\n\u0000\u0000\u00dc\u00db\u0001\u0000\u0000\u0000\u00dc"+
|
||||
"\u00dd\u0001\u0000\u0000\u0000\u00dd0\u0001\u0000\u0000\u0000\u00de\u00df"+
|
||||
"\u0007\u0001\u0000\u0000\u00df\u00e0\u0007\u0004\u0000\u0000\u00e02\u0001"+
|
||||
"\u0000\u0000\u0000\u00e1\u00e2\u0007\u0004\u0000\u0000\u00e2\u00e3\u0007"+
|
||||
"\u0005\u0000\u0000\u00e3\u00e4\u0007\u0006\u0000\u0000\u00e4\u00e5\u0005"+
|
||||
"_\u0000\u0000\u00e5\u00e6\u0007\u0001\u0000\u0000\u00e6\u00e7\u0007\u0004"+
|
||||
"\u0000\u0000\u00e74\u0001\u0000\u0000\u0000\u00e8\u00e9\u0007\u0004\u0000"+
|
||||
"\u0000\u00e9\u00ea\u0007\u0005\u0000\u0000\u00ea\u00eb\u0007\u0006\u0000"+
|
||||
"\u0000\u00eb6\u0001\u0000\u0000\u0000\u00ec\u00ed\u0007\u000f\u0000\u0000"+
|
||||
"\u00ed\u00ee\u0007\u0004\u0000\u0000\u00ee\u00ef\u0007\u0010\u0000\u0000"+
|
||||
"\u00ef8\u0001\u0000\u0000\u0000\u00f0\u00f1\u0007\u0005\u0000\u0000\u00f1"+
|
||||
"\u00f2\u0007\u000b\u0000\u0000\u00f2:\u0001\u0000\u0000\u0000\u00f3\u00f4"+
|
||||
"\u0007\u0011\u0000\u0000\u00f4\u00f5\u0007\u000f\u0000\u0000\u00f5\u00f6"+
|
||||
"\u0007\n\u0000\u0000\u00f6<\u0001\u0000\u0000\u0000\u00f7\u00f8\u0007"+
|
||||
"\u0011\u0000\u0000\u00f8\u00f9\u0007\u000f\u0000\u0000\u00f9\u00fa\u0007"+
|
||||
"\n\u0000\u0000\u00fa\u00fb\u0007\u000f\u0000\u0000\u00fb\u00fc\u0007\u0004"+
|
||||
"\u0000\u0000\u00fc\u00fd\u0007\u0012\u0000\u0000\u00fd>\u0001\u0000\u0000"+
|
||||
"\u0000\u00fe\u00ff\u0007\u0011\u0000\u0000\u00ff\u0100\u0007\u000f\u0000"+
|
||||
"\u0000\u0100\u0101\u0007\n\u0000\u0000\u0101\u0102\u0007\u000f\u0000\u0000"+
|
||||
"\u0102\u0103\u0007\u0000\u0000\u0000\u0103\u0104\u0007\u0000\u0000\u0000"+
|
||||
"\u0104@\u0001\u0000\u0000\u0000\u0105\u0106\u0007\u0011\u0000\u0000\u0106"+
|
||||
"\u0107\u0007\u000f\u0000\u0000\u0107\u0108\u0007\n\u0000\u0000\u0108\u0109"+
|
||||
"\u0007\u0004\u0000\u0000\u0109\u010a\u0007\u0005\u0000\u0000\u010a\u010b"+
|
||||
"\u0007\u0004\u0000\u0000\u010b\u010c\u0007\u0003\u0000\u0000\u010cB\u0001"+
|
||||
"\u0000\u0000\u0000\u010d\u010e\u0007\u0006\u0000\u0000\u010e\u010f\u0007"+
|
||||
"\u000b\u0000\u0000\u010f\u0110\u0007\u0013\u0000\u0000\u0110\u0117\u0007"+
|
||||
"\u0003\u0000\u0000\u0111\u0112\u0007\u0014\u0000\u0000\u0112\u0113\u0007"+
|
||||
"\u000f\u0000\u0000\u0113\u0114\u0007\u0000\u0000\u0000\u0114\u0115\u0007"+
|
||||
"\n\u0000\u0000\u0115\u0117\u0007\u0003\u0000\u0000\u0116\u010d\u0001\u0000"+
|
||||
"\u0000\u0000\u0116\u0111\u0001\u0000\u0000\u0000\u0117D\u0001\u0000\u0000"+
|
||||
"\u0000\u0118\u011a\u0003M&\u0000\u0119\u0118\u0001\u0000\u0000\u0000\u011a"+
|
||||
"\u011b\u0001\u0000\u0000\u0000\u011b\u0119\u0001\u0000\u0000\u0000\u011b"+
|
||||
"\u011c\u0001\u0000\u0000\u0000\u011c\u0123\u0001\u0000\u0000\u0000\u011d"+
|
||||
"\u011f\u0005.\u0000\u0000\u011e\u0120\u0003M&\u0000\u011f\u011e\u0001"+
|
||||
"\u0000\u0000\u0000\u0120\u0121\u0001\u0000\u0000\u0000\u0121\u011f\u0001"+
|
||||
"\u0000\u0000\u0000\u0121\u0122\u0001\u0000\u0000\u0000\u0122\u0124\u0001"+
|
||||
"\u0000\u0000\u0000\u0123\u011d\u0001\u0000\u0000\u0000\u0123\u0124\u0001"+
|
||||
"\u0000\u0000\u0000\u0124F\u0001\u0000\u0000\u0000\u0125\u012b\u0005\""+
|
||||
"\u0000\u0000\u0126\u012a\b\u0015\u0000\u0000\u0127\u0128\u0005\\\u0000"+
|
||||
"\u0000\u0128\u012a\t\u0000\u0000\u0000\u0129\u0126\u0001\u0000\u0000\u0000"+
|
||||
"\u0129\u0127\u0001\u0000\u0000\u0000\u012a\u012d\u0001\u0000\u0000\u0000"+
|
||||
"\u012b\u0129\u0001\u0000\u0000\u0000\u012b\u012c\u0001\u0000\u0000\u0000"+
|
||||
"\u012c\u012e\u0001\u0000\u0000\u0000\u012d\u012b\u0001\u0000\u0000\u0000"+
|
||||
"\u012e\u013a\u0005\"\u0000\u0000\u012f\u0135\u0005\'\u0000\u0000\u0130"+
|
||||
"\u0134\b\u0016\u0000\u0000\u0131\u0132\u0005\\\u0000\u0000\u0132\u0134"+
|
||||
"\t\u0000\u0000\u0000\u0133\u0130\u0001\u0000\u0000\u0000\u0133\u0131\u0001"+
|
||||
"\u0000\u0000\u0000\u0134\u0137\u0001\u0000\u0000\u0000\u0135\u0133\u0001"+
|
||||
"\u0000\u0000\u0000\u0135\u0136\u0001\u0000\u0000\u0000\u0136\u0138\u0001"+
|
||||
"\u0000\u0000\u0000\u0137\u0135\u0001\u0000\u0000\u0000\u0138\u013a\u0005"+
|
||||
"\'\u0000\u0000\u0139\u0125\u0001\u0000\u0000\u0000\u0139\u012f\u0001\u0000"+
|
||||
"\u0000\u0000\u013aH\u0001\u0000\u0000\u0000\u013b\u013f\u0007\u0017\u0000"+
|
||||
"\u0000\u013c\u013e\u0007\u0018\u0000\u0000\u013d\u013c\u0001\u0000\u0000"+
|
||||
"\u0000\u013e\u0141\u0001\u0000\u0000\u0000\u013f\u013d\u0001\u0000\u0000"+
|
||||
"\u0000\u013f\u0140\u0001\u0000\u0000\u0000\u0140J\u0001\u0000\u0000\u0000"+
|
||||
"\u0141\u013f\u0001\u0000\u0000\u0000\u0142\u0144\u0007\u0019\u0000\u0000"+
|
||||
"\u0143\u0142\u0001\u0000\u0000\u0000\u0144\u0145\u0001\u0000\u0000\u0000"+
|
||||
"\u0145\u0143\u0001\u0000\u0000\u0000\u0145\u0146\u0001\u0000\u0000\u0000"+
|
||||
"\u0146\u0147\u0001\u0000\u0000\u0000\u0147\u0148\u0006%\u0000\u0000\u0148"+
|
||||
"L\u0001\u0000\u0000\u0000\u0149\u014a\u0007\u001a\u0000\u0000\u014aN\u0001"+
|
||||
"\u0000\u0000\u0000\u0011\u0000\\\u00a6\u00b2\u00ce\u00dc\u0116\u011b\u0121"+
|
||||
"\u0123\u0129\u012b\u0133\u0135\u0139\u013f\u0145\u0001\u0006\u0000\u0000";
|
||||
"\u0001\u0017\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0018"+
|
||||
"\u0001\u0018\u0001\u0018\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019"+
|
||||
"\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0003\u0019"+
|
||||
"\u00be\b\u0019\u0001\u001a\u0001\u001a\u0001\u001b\u0003\u001b\u00c3\b"+
|
||||
"\u001b\u0001\u001b\u0004\u001b\u00c6\b\u001b\u000b\u001b\f\u001b\u00c7"+
|
||||
"\u0001\u001b\u0001\u001b\u0005\u001b\u00cc\b\u001b\n\u001b\f\u001b\u00cf"+
|
||||
"\t\u001b\u0003\u001b\u00d1\b\u001b\u0001\u001b\u0001\u001b\u0003\u001b"+
|
||||
"\u00d5\b\u001b\u0001\u001b\u0004\u001b\u00d8\b\u001b\u000b\u001b\f\u001b"+
|
||||
"\u00d9\u0003\u001b\u00dc\b\u001b\u0001\u001b\u0003\u001b\u00df\b\u001b"+
|
||||
"\u0001\u001b\u0001\u001b\u0004\u001b\u00e3\b\u001b\u000b\u001b\f\u001b"+
|
||||
"\u00e4\u0001\u001b\u0001\u001b\u0003\u001b\u00e9\b\u001b\u0001\u001b\u0004"+
|
||||
"\u001b\u00ec\b\u001b\u000b\u001b\f\u001b\u00ed\u0003\u001b\u00f0\b\u001b"+
|
||||
"\u0003\u001b\u00f2\b\u001b\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001c"+
|
||||
"\u0005\u001c\u00f8\b\u001c\n\u001c\f\u001c\u00fb\t\u001c\u0001\u001c\u0001"+
|
||||
"\u001c\u0001\u001c\u0001\u001c\u0001\u001c\u0005\u001c\u0102\b\u001c\n"+
|
||||
"\u001c\f\u001c\u0105\t\u001c\u0001\u001c\u0003\u001c\u0108\b\u001c\u0001"+
|
||||
"\u001d\u0001\u001d\u0005\u001d\u010c\b\u001d\n\u001d\f\u001d\u010f\t\u001d"+
|
||||
"\u0001\u001e\u0001\u001e\u0001\u001e\u0001\u001f\u0001\u001f\u0001\u001f"+
|
||||
"\u0001\u001f\u0001 \u0001 \u0001 \u0001 \u0001 \u0005 \u011d\b \n \f "+
|
||||
"\u0120\t \u0001!\u0004!\u0123\b!\u000b!\f!\u0124\u0001!\u0001!\u0001\""+
|
||||
"\u0001\"\u0001#\u0004#\u012c\b#\u000b#\f#\u012d\u0000\u0000$\u0001\u0001"+
|
||||
"\u0003\u0002\u0005\u0003\u0007\u0004\t\u0005\u000b\u0006\r\u0007\u000f"+
|
||||
"\b\u0011\t\u0013\n\u0015\u000b\u0017\f\u0019\r\u001b\u000e\u001d\u000f"+
|
||||
"\u001f\u0010!\u0011#\u0012%\u0013\'\u0014)\u0015+\u0016-\u0017/\u0018"+
|
||||
"1\u00193\u001a5\u00007\u001b9\u001c;\u0000=\u0000?\u0000A\u001dC\u001e"+
|
||||
"E\u0000G\u001f\u0001\u0000\u001d\u0002\u0000LLll\u0002\u0000IIii\u0002"+
|
||||
"\u0000KKkk\u0002\u0000EEee\u0002\u0000BBbb\u0002\u0000TTtt\u0002\u0000"+
|
||||
"WWww\u0002\u0000NNnn\u0002\u0000XXxx\u0002\u0000SSss\u0002\u0000RRrr\u0002"+
|
||||
"\u0000GGgg\u0002\u0000PPpp\u0002\u0000CCcc\u0002\u0000OOoo\u0002\u0000"+
|
||||
"AAaa\u0002\u0000DDdd\u0002\u0000HHhh\u0002\u0000YYyy\u0002\u0000UUuu\u0002"+
|
||||
"\u0000FFff\u0002\u0000++--\u0002\u0000\"\"\\\\\u0002\u0000\'\'\\\\\u0003"+
|
||||
"\u0000$$AZaz\u0006\u0000$$--0:AZ__az\u0003\u0000\t\n\r\r \u0001\u0000"+
|
||||
"09\b\u0000\t\n\r\r \"\'),,<>[[]]\u0145\u0000\u0001\u0001\u0000\u0000\u0000"+
|
||||
"\u0000\u0003\u0001\u0000\u0000\u0000\u0000\u0005\u0001\u0000\u0000\u0000"+
|
||||
"\u0000\u0007\u0001\u0000\u0000\u0000\u0000\t\u0001\u0000\u0000\u0000\u0000"+
|
||||
"\u000b\u0001\u0000\u0000\u0000\u0000\r\u0001\u0000\u0000\u0000\u0000\u000f"+
|
||||
"\u0001\u0000\u0000\u0000\u0000\u0011\u0001\u0000\u0000\u0000\u0000\u0013"+
|
||||
"\u0001\u0000\u0000\u0000\u0000\u0015\u0001\u0000\u0000\u0000\u0000\u0017"+
|
||||
"\u0001\u0000\u0000\u0000\u0000\u0019\u0001\u0000\u0000\u0000\u0000\u001b"+
|
||||
"\u0001\u0000\u0000\u0000\u0000\u001d\u0001\u0000\u0000\u0000\u0000\u001f"+
|
||||
"\u0001\u0000\u0000\u0000\u0000!\u0001\u0000\u0000\u0000\u0000#\u0001\u0000"+
|
||||
"\u0000\u0000\u0000%\u0001\u0000\u0000\u0000\u0000\'\u0001\u0000\u0000"+
|
||||
"\u0000\u0000)\u0001\u0000\u0000\u0000\u0000+\u0001\u0000\u0000\u0000\u0000"+
|
||||
"-\u0001\u0000\u0000\u0000\u0000/\u0001\u0000\u0000\u0000\u00001\u0001"+
|
||||
"\u0000\u0000\u0000\u00003\u0001\u0000\u0000\u0000\u00007\u0001\u0000\u0000"+
|
||||
"\u0000\u00009\u0001\u0000\u0000\u0000\u0000A\u0001\u0000\u0000\u0000\u0000"+
|
||||
"C\u0001\u0000\u0000\u0000\u0000G\u0001\u0000\u0000\u0000\u0001I\u0001"+
|
||||
"\u0000\u0000\u0000\u0003K\u0001\u0000\u0000\u0000\u0005M\u0001\u0000\u0000"+
|
||||
"\u0000\u0007O\u0001\u0000\u0000\u0000\tQ\u0001\u0000\u0000\u0000\u000b"+
|
||||
"V\u0001\u0000\u0000\u0000\rX\u0001\u0000\u0000\u0000\u000f[\u0001\u0000"+
|
||||
"\u0000\u0000\u0011^\u0001\u0000\u0000\u0000\u0013`\u0001\u0000\u0000\u0000"+
|
||||
"\u0015c\u0001\u0000\u0000\u0000\u0017e\u0001\u0000\u0000\u0000\u0019h"+
|
||||
"\u0001\u0000\u0000\u0000\u001bm\u0001\u0000\u0000\u0000\u001ds\u0001\u0000"+
|
||||
"\u0000\u0000\u001f{\u0001\u0000\u0000\u0000!\u0083\u0001\u0000\u0000\u0000"+
|
||||
"#\u008a\u0001\u0000\u0000\u0000%\u0094\u0001\u0000\u0000\u0000\'\u0097"+
|
||||
"\u0001\u0000\u0000\u0000)\u009b\u0001\u0000\u0000\u0000+\u009f\u0001\u0000"+
|
||||
"\u0000\u0000-\u00a2\u0001\u0000\u0000\u0000/\u00a6\u0001\u0000\u0000\u0000"+
|
||||
"1\u00ad\u0001\u0000\u0000\u00003\u00bd\u0001\u0000\u0000\u00005\u00bf"+
|
||||
"\u0001\u0000\u0000\u00007\u00f1\u0001\u0000\u0000\u00009\u0107\u0001\u0000"+
|
||||
"\u0000\u0000;\u0109\u0001\u0000\u0000\u0000=\u0110\u0001\u0000\u0000\u0000"+
|
||||
"?\u0113\u0001\u0000\u0000\u0000A\u0117\u0001\u0000\u0000\u0000C\u0122"+
|
||||
"\u0001\u0000\u0000\u0000E\u0128\u0001\u0000\u0000\u0000G\u012b\u0001\u0000"+
|
||||
"\u0000\u0000IJ\u0005(\u0000\u0000J\u0002\u0001\u0000\u0000\u0000KL\u0005"+
|
||||
")\u0000\u0000L\u0004\u0001\u0000\u0000\u0000MN\u0005[\u0000\u0000N\u0006"+
|
||||
"\u0001\u0000\u0000\u0000OP\u0005]\u0000\u0000P\b\u0001\u0000\u0000\u0000"+
|
||||
"QR\u0005,\u0000\u0000R\n\u0001\u0000\u0000\u0000SW\u0005=\u0000\u0000"+
|
||||
"TU\u0005=\u0000\u0000UW\u0005=\u0000\u0000VS\u0001\u0000\u0000\u0000V"+
|
||||
"T\u0001\u0000\u0000\u0000W\f\u0001\u0000\u0000\u0000XY\u0005!\u0000\u0000"+
|
||||
"YZ\u0005=\u0000\u0000Z\u000e\u0001\u0000\u0000\u0000[\\\u0005<\u0000\u0000"+
|
||||
"\\]\u0005>\u0000\u0000]\u0010\u0001\u0000\u0000\u0000^_\u0005<\u0000\u0000"+
|
||||
"_\u0012\u0001\u0000\u0000\u0000`a\u0005<\u0000\u0000ab\u0005=\u0000\u0000"+
|
||||
"b\u0014\u0001\u0000\u0000\u0000cd\u0005>\u0000\u0000d\u0016\u0001\u0000"+
|
||||
"\u0000\u0000ef\u0005>\u0000\u0000fg\u0005=\u0000\u0000g\u0018\u0001\u0000"+
|
||||
"\u0000\u0000hi\u0007\u0000\u0000\u0000ij\u0007\u0001\u0000\u0000jk\u0007"+
|
||||
"\u0002\u0000\u0000kl\u0007\u0003\u0000\u0000l\u001a\u0001\u0000\u0000"+
|
||||
"\u0000mn\u0007\u0001\u0000\u0000no\u0007\u0000\u0000\u0000op\u0007\u0001"+
|
||||
"\u0000\u0000pq\u0007\u0002\u0000\u0000qr\u0007\u0003\u0000\u0000r\u001c"+
|
||||
"\u0001\u0000\u0000\u0000st\u0007\u0004\u0000\u0000tu\u0007\u0003\u0000"+
|
||||
"\u0000uv\u0007\u0005\u0000\u0000vw\u0007\u0006\u0000\u0000wx\u0007\u0003"+
|
||||
"\u0000\u0000xy\u0007\u0003\u0000\u0000yz\u0007\u0007\u0000\u0000z\u001e"+
|
||||
"\u0001\u0000\u0000\u0000{|\u0007\u0003\u0000\u0000|}\u0007\b\u0000\u0000"+
|
||||
"}~\u0007\u0001\u0000\u0000~\u007f\u0007\t\u0000\u0000\u007f\u0081\u0007"+
|
||||
"\u0005\u0000\u0000\u0080\u0082\u0007\t\u0000\u0000\u0081\u0080\u0001\u0000"+
|
||||
"\u0000\u0000\u0081\u0082\u0001\u0000\u0000\u0000\u0082 \u0001\u0000\u0000"+
|
||||
"\u0000\u0083\u0084\u0007\n\u0000\u0000\u0084\u0085\u0007\u0003\u0000\u0000"+
|
||||
"\u0085\u0086\u0007\u000b\u0000\u0000\u0086\u0087\u0007\u0003\u0000\u0000"+
|
||||
"\u0087\u0088\u0007\b\u0000\u0000\u0088\u0089\u0007\f\u0000\u0000\u0089"+
|
||||
"\"\u0001\u0000\u0000\u0000\u008a\u008b\u0007\r\u0000\u0000\u008b\u008c"+
|
||||
"\u0007\u000e\u0000\u0000\u008c\u008d\u0007\u0007\u0000\u0000\u008d\u008e"+
|
||||
"\u0007\u0005\u0000\u0000\u008e\u008f\u0007\u000f\u0000\u0000\u008f\u0090"+
|
||||
"\u0007\u0001\u0000\u0000\u0090\u0092\u0007\u0007\u0000\u0000\u0091\u0093"+
|
||||
"\u0007\t\u0000\u0000\u0092\u0091\u0001\u0000\u0000\u0000\u0092\u0093\u0001"+
|
||||
"\u0000\u0000\u0000\u0093$\u0001\u0000\u0000\u0000\u0094\u0095\u0007\u0001"+
|
||||
"\u0000\u0000\u0095\u0096\u0007\u0007\u0000\u0000\u0096&\u0001\u0000\u0000"+
|
||||
"\u0000\u0097\u0098\u0007\u0007\u0000\u0000\u0098\u0099\u0007\u000e\u0000"+
|
||||
"\u0000\u0099\u009a\u0007\u0005\u0000\u0000\u009a(\u0001\u0000\u0000\u0000"+
|
||||
"\u009b\u009c\u0007\u000f\u0000\u0000\u009c\u009d\u0007\u0007\u0000\u0000"+
|
||||
"\u009d\u009e\u0007\u0010\u0000\u0000\u009e*\u0001\u0000\u0000\u0000\u009f"+
|
||||
"\u00a0\u0007\u000e\u0000\u0000\u00a0\u00a1\u0007\n\u0000\u0000\u00a1,"+
|
||||
"\u0001\u0000\u0000\u0000\u00a2\u00a3\u0007\u0011\u0000\u0000\u00a3\u00a4"+
|
||||
"\u0007\u000f\u0000\u0000\u00a4\u00a5\u0007\t\u0000\u0000\u00a5.\u0001"+
|
||||
"\u0000\u0000\u0000\u00a6\u00a7\u0007\u0011\u0000\u0000\u00a7\u00a8\u0007"+
|
||||
"\u000f\u0000\u0000\u00a8\u00a9\u0007\t\u0000\u0000\u00a9\u00aa\u0007\u000f"+
|
||||
"\u0000\u0000\u00aa\u00ab\u0007\u0007\u0000\u0000\u00ab\u00ac\u0007\u0012"+
|
||||
"\u0000\u0000\u00ac0\u0001\u0000\u0000\u0000\u00ad\u00ae\u0007\u0011\u0000"+
|
||||
"\u0000\u00ae\u00af\u0007\u000f\u0000\u0000\u00af\u00b0\u0007\t\u0000\u0000"+
|
||||
"\u00b0\u00b1\u0007\u000f\u0000\u0000\u00b1\u00b2\u0007\u0000\u0000\u0000"+
|
||||
"\u00b2\u00b3\u0007\u0000\u0000\u0000\u00b32\u0001\u0000\u0000\u0000\u00b4"+
|
||||
"\u00b5\u0007\u0005\u0000\u0000\u00b5\u00b6\u0007\n\u0000\u0000\u00b6\u00b7"+
|
||||
"\u0007\u0013\u0000\u0000\u00b7\u00be\u0007\u0003\u0000\u0000\u00b8\u00b9"+
|
||||
"\u0007\u0014\u0000\u0000\u00b9\u00ba\u0007\u000f\u0000\u0000\u00ba\u00bb"+
|
||||
"\u0007\u0000\u0000\u0000\u00bb\u00bc\u0007\t\u0000\u0000\u00bc\u00be\u0007"+
|
||||
"\u0003\u0000\u0000\u00bd\u00b4\u0001\u0000\u0000\u0000\u00bd\u00b8\u0001"+
|
||||
"\u0000\u0000\u0000\u00be4\u0001\u0000\u0000\u0000\u00bf\u00c0\u0007\u0015"+
|
||||
"\u0000\u0000\u00c06\u0001\u0000\u0000\u0000\u00c1\u00c3\u00035\u001a\u0000"+
|
||||
"\u00c2\u00c1\u0001\u0000\u0000\u0000\u00c2\u00c3\u0001\u0000\u0000\u0000"+
|
||||
"\u00c3\u00c5\u0001\u0000\u0000\u0000\u00c4\u00c6\u0003E\"\u0000\u00c5"+
|
||||
"\u00c4\u0001\u0000\u0000\u0000\u00c6\u00c7\u0001\u0000\u0000\u0000\u00c7"+
|
||||
"\u00c5\u0001\u0000\u0000\u0000\u00c7\u00c8\u0001\u0000\u0000\u0000\u00c8"+
|
||||
"\u00d0\u0001\u0000\u0000\u0000\u00c9\u00cd\u0005.\u0000\u0000\u00ca\u00cc"+
|
||||
"\u0003E\"\u0000\u00cb\u00ca\u0001\u0000\u0000\u0000\u00cc\u00cf\u0001"+
|
||||
"\u0000\u0000\u0000\u00cd\u00cb\u0001\u0000\u0000\u0000\u00cd\u00ce\u0001"+
|
||||
"\u0000\u0000\u0000\u00ce\u00d1\u0001\u0000\u0000\u0000\u00cf\u00cd\u0001"+
|
||||
"\u0000\u0000\u0000\u00d0\u00c9\u0001\u0000\u0000\u0000\u00d0\u00d1\u0001"+
|
||||
"\u0000\u0000\u0000\u00d1\u00db\u0001\u0000\u0000\u0000\u00d2\u00d4\u0007"+
|
||||
"\u0003\u0000\u0000\u00d3\u00d5\u00035\u001a\u0000\u00d4\u00d3\u0001\u0000"+
|
||||
"\u0000\u0000\u00d4\u00d5\u0001\u0000\u0000\u0000\u00d5\u00d7\u0001\u0000"+
|
||||
"\u0000\u0000\u00d6\u00d8\u0003E\"\u0000\u00d7\u00d6\u0001\u0000\u0000"+
|
||||
"\u0000\u00d8\u00d9\u0001\u0000\u0000\u0000\u00d9\u00d7\u0001\u0000\u0000"+
|
||||
"\u0000\u00d9\u00da\u0001\u0000\u0000\u0000\u00da\u00dc\u0001\u0000\u0000"+
|
||||
"\u0000\u00db\u00d2\u0001\u0000\u0000\u0000\u00db\u00dc\u0001\u0000\u0000"+
|
||||
"\u0000\u00dc\u00f2\u0001\u0000\u0000\u0000\u00dd\u00df\u00035\u001a\u0000"+
|
||||
"\u00de\u00dd\u0001\u0000\u0000\u0000\u00de\u00df\u0001\u0000\u0000\u0000"+
|
||||
"\u00df\u00e0\u0001\u0000\u0000\u0000\u00e0\u00e2\u0005.\u0000\u0000\u00e1"+
|
||||
"\u00e3\u0003E\"\u0000\u00e2\u00e1\u0001\u0000\u0000\u0000\u00e3\u00e4"+
|
||||
"\u0001\u0000\u0000\u0000\u00e4\u00e2\u0001\u0000\u0000\u0000\u00e4\u00e5"+
|
||||
"\u0001\u0000\u0000\u0000\u00e5\u00ef\u0001\u0000\u0000\u0000\u00e6\u00e8"+
|
||||
"\u0007\u0003\u0000\u0000\u00e7\u00e9\u00035\u001a\u0000\u00e8\u00e7\u0001"+
|
||||
"\u0000\u0000\u0000\u00e8\u00e9\u0001\u0000\u0000\u0000\u00e9\u00eb\u0001"+
|
||||
"\u0000\u0000\u0000\u00ea\u00ec\u0003E\"\u0000\u00eb\u00ea\u0001\u0000"+
|
||||
"\u0000\u0000\u00ec\u00ed\u0001\u0000\u0000\u0000\u00ed\u00eb\u0001\u0000"+
|
||||
"\u0000\u0000\u00ed\u00ee\u0001\u0000\u0000\u0000\u00ee\u00f0\u0001\u0000"+
|
||||
"\u0000\u0000\u00ef\u00e6\u0001\u0000\u0000\u0000\u00ef\u00f0\u0001\u0000"+
|
||||
"\u0000\u0000\u00f0\u00f2\u0001\u0000\u0000\u0000\u00f1\u00c2\u0001\u0000"+
|
||||
"\u0000\u0000\u00f1\u00de\u0001\u0000\u0000\u0000\u00f28\u0001\u0000\u0000"+
|
||||
"\u0000\u00f3\u00f9\u0005\"\u0000\u0000\u00f4\u00f8\b\u0016\u0000\u0000"+
|
||||
"\u00f5\u00f6\u0005\\\u0000\u0000\u00f6\u00f8\t\u0000\u0000\u0000\u00f7"+
|
||||
"\u00f4\u0001\u0000\u0000\u0000\u00f7\u00f5\u0001\u0000\u0000\u0000\u00f8"+
|
||||
"\u00fb\u0001\u0000\u0000\u0000\u00f9\u00f7\u0001\u0000\u0000\u0000\u00f9"+
|
||||
"\u00fa\u0001\u0000\u0000\u0000\u00fa\u00fc\u0001\u0000\u0000\u0000\u00fb"+
|
||||
"\u00f9\u0001\u0000\u0000\u0000\u00fc\u0108\u0005\"\u0000\u0000\u00fd\u0103"+
|
||||
"\u0005\'\u0000\u0000\u00fe\u0102\b\u0017\u0000\u0000\u00ff\u0100\u0005"+
|
||||
"\\\u0000\u0000\u0100\u0102\t\u0000\u0000\u0000\u0101\u00fe\u0001\u0000"+
|
||||
"\u0000\u0000\u0101\u00ff\u0001\u0000\u0000\u0000\u0102\u0105\u0001\u0000"+
|
||||
"\u0000\u0000\u0103\u0101\u0001\u0000\u0000\u0000\u0103\u0104\u0001\u0000"+
|
||||
"\u0000\u0000\u0104\u0106\u0001\u0000\u0000\u0000\u0105\u0103\u0001\u0000"+
|
||||
"\u0000\u0000\u0106\u0108\u0005\'\u0000\u0000\u0107\u00f3\u0001\u0000\u0000"+
|
||||
"\u0000\u0107\u00fd\u0001\u0000\u0000\u0000\u0108:\u0001\u0000\u0000\u0000"+
|
||||
"\u0109\u010d\u0007\u0018\u0000\u0000\u010a\u010c\u0007\u0019\u0000\u0000"+
|
||||
"\u010b\u010a\u0001\u0000\u0000\u0000\u010c\u010f\u0001\u0000\u0000\u0000"+
|
||||
"\u010d\u010b\u0001\u0000\u0000\u0000\u010d\u010e\u0001\u0000\u0000\u0000"+
|
||||
"\u010e<\u0001\u0000\u0000\u0000\u010f\u010d\u0001\u0000\u0000\u0000\u0110"+
|
||||
"\u0111\u0005[\u0000\u0000\u0111\u0112\u0005]\u0000\u0000\u0112>\u0001"+
|
||||
"\u0000\u0000\u0000\u0113\u0114\u0005[\u0000\u0000\u0114\u0115\u0005*\u0000"+
|
||||
"\u0000\u0115\u0116\u0005]\u0000\u0000\u0116@\u0001\u0000\u0000\u0000\u0117"+
|
||||
"\u011e\u0003;\u001d\u0000\u0118\u0119\u0005.\u0000\u0000\u0119\u011d\u0003"+
|
||||
";\u001d\u0000\u011a\u011d\u0003=\u001e\u0000\u011b\u011d\u0003?\u001f"+
|
||||
"\u0000\u011c\u0118\u0001\u0000\u0000\u0000\u011c\u011a\u0001\u0000\u0000"+
|
||||
"\u0000\u011c\u011b\u0001\u0000\u0000\u0000\u011d\u0120\u0001\u0000\u0000"+
|
||||
"\u0000\u011e\u011c\u0001\u0000\u0000\u0000\u011e\u011f\u0001\u0000\u0000"+
|
||||
"\u0000\u011fB\u0001\u0000\u0000\u0000\u0120\u011e\u0001\u0000\u0000\u0000"+
|
||||
"\u0121\u0123\u0007\u001a\u0000\u0000\u0122\u0121\u0001\u0000\u0000\u0000"+
|
||||
"\u0123\u0124\u0001\u0000\u0000\u0000\u0124\u0122\u0001\u0000\u0000\u0000"+
|
||||
"\u0124\u0125\u0001\u0000\u0000\u0000\u0125\u0126\u0001\u0000\u0000\u0000"+
|
||||
"\u0126\u0127\u0006!\u0000\u0000\u0127D\u0001\u0000\u0000\u0000\u0128\u0129"+
|
||||
"\u0007\u001b\u0000\u0000\u0129F\u0001\u0000\u0000\u0000\u012a\u012c\b"+
|
||||
"\u001c\u0000\u0000\u012b\u012a\u0001\u0000\u0000\u0000\u012c\u012d\u0001"+
|
||||
"\u0000\u0000\u0000\u012d\u012b\u0001\u0000\u0000\u0000\u012d\u012e\u0001"+
|
||||
"\u0000\u0000\u0000\u012eH\u0001\u0000\u0000\u0000\u001c\u0000V\u0081\u0092"+
|
||||
"\u00bd\u00c2\u00c7\u00cd\u00d0\u00d4\u00d9\u00db\u00de\u00e4\u00e8\u00ed"+
|
||||
"\u00ef\u00f1\u00f7\u00f9\u0101\u0103\u0107\u010d\u011c\u011e\u0124\u012d"+
|
||||
"\u0001\u0006\u0000\u0000";
|
||||
public static final ATN _ATN =
|
||||
new ATNDeserializer().deserialize(_serializedATN.toCharArray());
|
||||
static {
|
||||
|
||||
@ -11,31 +11,24 @@ LE=10
|
||||
GT=11
|
||||
GE=12
|
||||
LIKE=13
|
||||
NOT_LIKE=14
|
||||
ILIKE=15
|
||||
NOT_ILIKE=16
|
||||
BETWEEN=17
|
||||
NOT_BETWEEN=18
|
||||
EXISTS=19
|
||||
NOT_EXISTS=20
|
||||
REGEXP=21
|
||||
NOT_REGEXP=22
|
||||
CONTAINS=23
|
||||
NOT_CONTAINS=24
|
||||
IN=25
|
||||
NOT_IN=26
|
||||
NOT=27
|
||||
AND=28
|
||||
OR=29
|
||||
HAS=30
|
||||
HASANY=31
|
||||
HASALL=32
|
||||
HASNONE=33
|
||||
BOOL=34
|
||||
NUMBER=35
|
||||
QUOTED_TEXT=36
|
||||
KEY=37
|
||||
WS=38
|
||||
ILIKE=14
|
||||
BETWEEN=15
|
||||
EXISTS=16
|
||||
REGEXP=17
|
||||
CONTAINS=18
|
||||
IN=19
|
||||
NOT=20
|
||||
AND=21
|
||||
OR=22
|
||||
HAS=23
|
||||
HASANY=24
|
||||
HASALL=25
|
||||
BOOL=26
|
||||
NUMBER=27
|
||||
QUOTED_TEXT=28
|
||||
KEY=29
|
||||
WS=30
|
||||
FREETEXT=31
|
||||
'('=1
|
||||
')'=2
|
||||
'['=3
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -5,33 +5,49 @@ grammar FilterQuery;
|
||||
*/
|
||||
|
||||
query
|
||||
: expression ( (AND | OR) expression | expression )*
|
||||
: expression
|
||||
EOF
|
||||
;
|
||||
|
||||
// Expression with standard boolean precedence:
|
||||
// - parentheses > NOT > AND > OR
|
||||
// - consecutive expressions with no AND/OR => implicit AND
|
||||
expression
|
||||
: orExpression
|
||||
;
|
||||
|
||||
// OR expressions
|
||||
orExpression
|
||||
: andExpression ( OR andExpression )*
|
||||
;
|
||||
|
||||
// AND expressions + optional chaining with implicit AND if no OR is present
|
||||
andExpression
|
||||
: unaryExpression ( AND unaryExpression | unaryExpression )*
|
||||
;
|
||||
|
||||
// A unary expression handles optional NOT
|
||||
unaryExpression
|
||||
: NOT? primary
|
||||
;
|
||||
|
||||
// Primary constructs: grouped expressions, a comparison (key op value),
|
||||
// a function call, or a full-text string
|
||||
primary
|
||||
: LPAREN orExpression RPAREN
|
||||
| comparison
|
||||
| functionCall
|
||||
| fullText
|
||||
| key
|
||||
| value
|
||||
;
|
||||
|
||||
/*
|
||||
* Comparison-like filters
|
||||
*
|
||||
* Includes all operators: =, !=, <>, <, <=, >, >=, [NOT] LIKE, [NOT] ILIKE,
|
||||
* [NOT] BETWEEN, [NOT] IN, [NOT] EXISTS, [NOT] REGEXP, [NOT] CONTAINS, etc.
|
||||
*/
|
||||
comparison
|
||||
: key EQUALS value
|
||||
| key (NOT_EQUALS | NEQ) value
|
||||
@ -39,42 +55,62 @@ comparison
|
||||
| key LE value
|
||||
| key GT value
|
||||
| key GE value
|
||||
|
||||
| key (LIKE | ILIKE) value
|
||||
| key (NOT_LIKE | NOT_ILIKE) value
|
||||
| key NOT (LIKE | ILIKE) value
|
||||
|
||||
| key BETWEEN value AND value
|
||||
| key NOT_BETWEEN value AND value
|
||||
| key NOT BETWEEN value AND value
|
||||
|
||||
| key inClause
|
||||
| key notInClause
|
||||
|
||||
| key EXISTS
|
||||
| key NOT_EXISTS
|
||||
| key NOT EXISTS
|
||||
|
||||
| key REGEXP value
|
||||
| key NOT_REGEXP value
|
||||
| key NOT REGEXP value
|
||||
|
||||
| key CONTAINS value
|
||||
| key NOT_CONTAINS value
|
||||
| key NOT CONTAINS value
|
||||
;
|
||||
|
||||
// in(...) or in[...]
|
||||
inClause
|
||||
: IN LPAREN valueList RPAREN
|
||||
| IN LBRACK valueList RBRACK
|
||||
| IN value
|
||||
;
|
||||
|
||||
notInClause
|
||||
: NOT_IN LPAREN valueList RPAREN
|
||||
| NOT_IN LBRACK valueList RBRACK
|
||||
: NOT IN LPAREN valueList RPAREN
|
||||
| NOT IN LBRACK valueList RBRACK
|
||||
| NOT IN value
|
||||
;
|
||||
|
||||
// List of values for in(...) or in[...]
|
||||
valueList
|
||||
: value ( COMMA value )*
|
||||
;
|
||||
|
||||
// Full-text search: a standalone quoted string is allowed as a "primary"
|
||||
// e.g. `"Waiting for response" http.status_code=200`
|
||||
fullText
|
||||
: QUOTED_TEXT
|
||||
| FREETEXT
|
||||
;
|
||||
|
||||
/*
|
||||
* Function calls like:
|
||||
* has(payload.user_ids, 123)
|
||||
* hasAny(payload.user_ids, [123, 456])
|
||||
* ...
|
||||
*/
|
||||
functionCall
|
||||
: (HAS | HASANY | HASALL | HASNONE) LPAREN functionParamList RPAREN
|
||||
: (HAS | HASANY | HASALL) LPAREN functionParamList RPAREN
|
||||
;
|
||||
|
||||
// Function parameters can be keys, single scalar values, or arrays
|
||||
functionParamList
|
||||
: functionParam ( COMMA functionParam )*
|
||||
;
|
||||
@ -85,10 +121,15 @@ functionParam
|
||||
| array
|
||||
;
|
||||
|
||||
// An array: [ item1, item2, item3 ]
|
||||
array
|
||||
: LBRACK valueList RBRACK
|
||||
;
|
||||
|
||||
/*
|
||||
* A 'value' can be a string literal (double or single-quoted),
|
||||
// a numeric literal, boolean, or a "bare" token as needed.
|
||||
*/
|
||||
value
|
||||
: QUOTED_TEXT
|
||||
| NUMBER
|
||||
@ -96,10 +137,15 @@ value
|
||||
| KEY
|
||||
;
|
||||
|
||||
/*
|
||||
* A key can include letters, digits, underscores, dots, brackets
|
||||
* E.g. service.name, query_log.query_duration_ms, proto.user_objects[].name
|
||||
*/
|
||||
key
|
||||
: KEY
|
||||
;
|
||||
|
||||
|
||||
/*
|
||||
* Lexer Rules
|
||||
*/
|
||||
@ -113,72 +159,69 @@ COMMA : ',' ;
|
||||
|
||||
EQUALS : '=' | '==' ;
|
||||
NOT_EQUALS : '!=' ;
|
||||
NEQ : '<>' ;
|
||||
LT : '<' ;
|
||||
NEQ : '<>' ; // alternate not-equals operator
|
||||
LT : '<' ;
|
||||
LE : '<=' ;
|
||||
GT : '>' ;
|
||||
GE : '>=' ;
|
||||
GT : '>' ;
|
||||
GE : '>=' ;
|
||||
|
||||
// Multi-keyword operators
|
||||
// Operators that are made of multiple keywords
|
||||
LIKE : [Ll][Ii][Kk][Ee] ;
|
||||
NOT_LIKE : [Nn][Oo][Tt] '_' [Ll][Ii][Kk][Ee] ;
|
||||
ILIKE : [Ii][Ll][Ii][Kk][Ee] ;
|
||||
NOT_ILIKE : [Nn][Oo][Tt] '_' [Ii][Ll][Ii][Kk][Ee] ;
|
||||
BETWEEN : [Bb][Ee][Tt][Ww][Ee][Ee][Nn] ;
|
||||
NOT_BETWEEN : [Nn][Oo][Tt] '_' [Bb][Ee][Tt][Ww][Ee][Ee][Nn] ;
|
||||
|
||||
EXISTS : [Ee][Xx][Ii][Ss][Tt][Ss]? ;
|
||||
NOT_EXISTS : [Nn][Oo][Tt] '-' [Ee][Xx][Ii][Ss][Tt][Ss]? ;
|
||||
|
||||
REGEXP : [Rr][Ee][Gg][Ee][Xx][Pp] ;
|
||||
NOT_REGEXP : [Nn][Oo][Tt] '_' [Rr][Ee][Gg][Ee][Xx][Pp] ;
|
||||
|
||||
CONTAINS : [Cc][Oo][Nn][Tt][Aa][Ii][Nn][Ss]? ;
|
||||
NOT_CONTAINS: [Nn][Oo][Tt] '_' [Cc][Oo][Nn][Tt][Aa][Ii][Nn][Ss]? ;
|
||||
|
||||
IN : [Ii][Nn] ;
|
||||
NOT_IN : [Nn][Oo][Tt] '_' [Ii][Nn] ;
|
||||
|
||||
// Boolean logic
|
||||
NOT : [Nn][Oo][Tt] ;
|
||||
AND : [Aa][Nn][Dd] ;
|
||||
OR : [Oo][Rr] ;
|
||||
|
||||
// Functions
|
||||
// For easy referencing in function calls
|
||||
HAS : [Hh][Aa][Ss] ;
|
||||
HASANY : [Hh][Aa][Ss][Aa][Nn][Yy] ;
|
||||
HASALL : [Hh][Aa][Ss][Aa][Ll][Ll] ;
|
||||
HASNONE : [Hh][Aa][Ss][Nn][Oo][Nn][Ee] ;
|
||||
|
||||
// Boolean values
|
||||
// Potential boolean constants
|
||||
BOOL
|
||||
: [Tt][Rr][Uu][Ee]
|
||||
| [Ff][Aa][Ll][Ss][Ee]
|
||||
;
|
||||
|
||||
// Numbers
|
||||
fragment SIGN : [+-] ;
|
||||
|
||||
// Numbers: optional sign, then digits, optional fractional part,
|
||||
// optional scientific notation (handy for future use)
|
||||
NUMBER
|
||||
: DIGIT+ ( '.' DIGIT+ )?
|
||||
: SIGN? DIGIT+ ('.' DIGIT*)? ([eE] SIGN? DIGIT+)? // -10.25 42 +3.14 6.02e23
|
||||
| SIGN? '.' DIGIT+ ([eE] SIGN? DIGIT+)? // -.75 .5 -.5e-3
|
||||
;
|
||||
|
||||
// Quoted text
|
||||
// Double/single-quoted text, capturing full text search strings, values, etc.
|
||||
QUOTED_TEXT
|
||||
: ( '"' ( ~["\\] | '\\' . )* '"' // double-quoted
|
||||
| '\'' ( ~['\\] | '\\' . )* '\'' // single-quoted
|
||||
)
|
||||
: ( '"' ( ~["\\] | '\\' . )* '"' // double-quoted
|
||||
| '\'' ( ~['\\] | '\\' . )* '\'' // single-quoted
|
||||
)
|
||||
;
|
||||
|
||||
// Keys
|
||||
fragment SEGMENT : [a-zA-Z$] [a-zA-Z0-9$_:\-]* ;
|
||||
fragment EMPTY_BRACKS : '[' ']' ;
|
||||
fragment OLD_JSON_BRACKS: '[' '*' ']';
|
||||
|
||||
KEY
|
||||
: [a-zA-Z0-9_] [a-zA-Z0-9_.[\]]*
|
||||
: SEGMENT ( '.' SEGMENT | EMPTY_BRACKS | OLD_JSON_BRACKS)*
|
||||
;
|
||||
|
||||
// Whitespace
|
||||
// Ignore whitespace
|
||||
WS
|
||||
: [ \t\r\n]+ -> skip
|
||||
;
|
||||
|
||||
// Digits fragment
|
||||
// Digits used by NUMBER
|
||||
fragment DIGIT
|
||||
: [0-9]
|
||||
;
|
||||
|
||||
FREETEXT : (~[ \t\r\n=()'"<>!,[\]])+ ;
|
||||
|
||||
@ -16,6 +16,7 @@ export interface IQueryPair {
|
||||
key: string;
|
||||
operator: string;
|
||||
value?: string;
|
||||
hasNegation?: boolean;
|
||||
position: {
|
||||
keyStart: number;
|
||||
keyEnd: number;
|
||||
@ -23,6 +24,8 @@ export interface IQueryPair {
|
||||
operatorEnd: number;
|
||||
valueStart?: number;
|
||||
valueEnd?: number;
|
||||
negationStart?: number;
|
||||
negationEnd?: number;
|
||||
};
|
||||
isComplete: boolean; // true if the pair has all three components
|
||||
}
|
||||
@ -35,6 +38,7 @@ export interface IQueryContext {
|
||||
currentToken: string;
|
||||
isInValue: boolean;
|
||||
isInKey: boolean;
|
||||
isInNegation: boolean;
|
||||
isInOperator: boolean;
|
||||
isInFunction: boolean;
|
||||
isInConjunction?: boolean;
|
||||
|
||||
@ -15,9 +15,7 @@ export function isOperatorToken(tokenType: number): boolean {
|
||||
FilterQueryLexer.GT,
|
||||
FilterQueryLexer.GE,
|
||||
FilterQueryLexer.LIKE,
|
||||
FilterQueryLexer.NOT_LIKE,
|
||||
FilterQueryLexer.ILIKE,
|
||||
FilterQueryLexer.NOT_ILIKE,
|
||||
FilterQueryLexer.BETWEEN,
|
||||
FilterQueryLexer.EXISTS,
|
||||
FilterQueryLexer.REGEXP,
|
||||
@ -29,9 +27,7 @@ export function isOperatorToken(tokenType: number): boolean {
|
||||
|
||||
// Helper function to check if a token is an operator which doesn't require a value
|
||||
export function isNonValueOperatorToken(tokenType: number): boolean {
|
||||
return [FilterQueryLexer.NOT_EXISTS, FilterQueryLexer.EXISTS].includes(
|
||||
tokenType,
|
||||
);
|
||||
return [FilterQueryLexer.EXISTS].includes(tokenType);
|
||||
}
|
||||
|
||||
// Helper function to check if a token is a value
|
||||
@ -72,7 +68,6 @@ export function isFunctionToken(tokenType: number): boolean {
|
||||
FilterQueryLexer.HAS,
|
||||
FilterQueryLexer.HASANY,
|
||||
FilterQueryLexer.HASALL,
|
||||
FilterQueryLexer.HASNONE,
|
||||
].includes(tokenType);
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user