@scinorandex/sparse 0.0.2 → 0.0.4
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/README.md +2 -2
- package/dist/cli.js +2 -2
- package/dist/cli.js.map +1 -1
- package/dist/generator.d.ts +4 -1
- package/dist/generator.js +47 -32
- package/dist/generator.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/meta/common.d.ts +57 -0
- package/dist/meta/common.js +62 -0
- package/dist/meta/common.js.map +1 -0
- package/dist/meta/handwritten.d.ts +12 -0
- package/dist/{grammarParser.js → meta/handwritten.js} +24 -24
- package/dist/meta/handwritten.js.map +1 -0
- package/dist/meta/selfhosted.d.ts +23 -0
- package/dist/meta/selfhosted.js +206 -0
- package/dist/meta/selfhosted.js.map +1 -0
- package/dist/meta/states.d.ts +1580 -0
- package/dist/meta/states.js +1493 -0
- package/dist/meta/states.js.map +1 -0
- package/dist/parser.d.ts +16 -5
- package/dist/parser.js +25 -7
- package/dist/parser.js.map +1 -1
- package/dist/{tableParser.d.ts → table/handwritten.d.ts} +1 -1
- package/dist/{tableParser.js → table/handwritten.js} +2 -2
- package/dist/table/handwritten.js.map +1 -0
- package/dist/table/selfhosted.d.ts +2 -0
- package/dist/table/selfhosted.js +65 -0
- package/dist/table/selfhosted.js.map +1 -0
- package/dist/table/states.d.ts +592 -0
- package/dist/table/states.js +593 -0
- package/dist/table/states.js.map +1 -0
- package/dist/utils/Result.d.ts +1 -1
- package/dist/utils/errorWindowBuilder.d.ts +1 -1
- package/example/LoLang/example.ts +14 -7
- package/example/complicated/grammar.txt +37 -0
- package/example/math/example.ts +1 -1
- package/example/selfhosted/01-meta-grammar.txt +10 -0
- package/example/selfhosted/02-table-grammar.txt +6 -0
- package/example/selfhosted/codegen-meta.ts +1489 -0
- package/example/selfhosted/codegen-table.ts +589 -0
- package/example/selfhosted/example.ts +39 -0
- package/example/sql/grammar.txt +50 -0
- package/example/sql/table.txt +238 -0
- package/package.json +3 -3
- package/src/cli.ts +1 -1
- package/src/generator.ts +52 -34
- package/src/index.ts +3 -2
- package/src/meta/common.ts +74 -0
- package/src/{grammarParser.ts → meta/handwritten.ts} +17 -21
- package/src/meta/selfhosted.ts +272 -0
- package/src/meta/states.ts +1489 -0
- package/src/parser.ts +53 -19
- package/src/{tableParser.ts → table/handwritten.ts} +5 -5
- package/src/table/selfhosted.ts +67 -0
- package/src/table/states.ts +589 -0
- package/src/utils/Result.ts +1 -1
- package/src/utils/errorWindowBuilder.ts +1 -1
- package/tsconfig.build.json +30 -0
- package/tsconfig.json +6 -6
- package/dist/grammarParser.d.ts +0 -27
- package/dist/grammarParser.js.map +0 -1
- package/dist/tableParser.js.map +0 -1
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
[EOF]=s5, [SELECT]=s6, <PROGRAM>=1, <STATEMENTS>=2, <STATEMENT>=3, <SELECT_STATEMENT>=4
|
|
2
|
+
[EOF]=r0
|
|
3
|
+
[EOF]=s7
|
|
4
|
+
[EOF]=r3, [SELECT]=s6, <STATEMENTS>=8, <STATEMENT>=3, <SELECT_STATEMENT>=4
|
|
5
|
+
[EOF]=r5, [SELECT]=r5
|
|
6
|
+
[EOF]=r1
|
|
7
|
+
[NOT]=s39, [TRUE]=s40, [FALSE]=s41, [UNKNOWN]=s42, [L_PAREN]=s43, [EQUALS]=s44, [NOT_EQUALS]=s45, [LESS_THAN]=s46, [GREATER_THAN]=s47, [LESS_THAN_OR_EQUALS]=s48, [GREATER_THAN_OR_EQUALS]=s49, [EXISTS]=s50, [SELECT]=s51, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, <TARGETS>=9, <TARGET>=10, <CONDITION>=11, <BOOLEAN_TERM>=12, <BOOLEAN_FACTOR>=13, <BOOLEAN_TEST>=14, <BOOLEAN_PRIMARY>=15, <PREDICATE>=16, <COMPARISON_PREDICATE>=17, <BETWEEN_PREDICATE>=18, <IN_PREDICATE>=19, <LIKE_PREDICATE>=20, <NULL_PREDICATE>=21, <EXISTS_PREDICATE>=22, <VALUE>=23, <VALUE_LIST>=24, <SELECT_STATEMENT>=25, <BITWISE_OR_EXPRESSION>=26, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
8
|
+
[EOF]=r2
|
|
9
|
+
[EOF]=r4
|
|
10
|
+
[FROM]=s64
|
|
11
|
+
[FROM]=r8, [COMMA]=s65
|
|
12
|
+
[FROM]=r10, [COMMA]=r10, [AS]=s66
|
|
13
|
+
[FROM]=r15, [COMMA]=r15, [AS]=r15, [OR]=s67
|
|
14
|
+
[FROM]=r17, [COMMA]=r17, [SEMICOLON]=r17, [AS]=r17, [R_PAREN]=r17, [OR]=r17, [AND]=s68
|
|
15
|
+
[FROM]=r19, [COMMA]=r19, [SEMICOLON]=r19, [AS]=r19, [R_PAREN]=r19, [OR]=r19, [AND]=r19
|
|
16
|
+
[FROM]=r21, [COMMA]=r21, [SEMICOLON]=r21, [AS]=r21, [R_PAREN]=r21, [OR]=r21, [AND]=r21
|
|
17
|
+
[FROM]=r28, [COMMA]=r28, [SEMICOLON]=r28, [AS]=r28, [R_PAREN]=r28, [OR]=r28, [AND]=r28
|
|
18
|
+
[FROM]=r30, [COMMA]=r30, [SEMICOLON]=r30, [AS]=r30, [R_PAREN]=r30, [OR]=r30, [AND]=r30
|
|
19
|
+
[FROM]=r31, [COMMA]=r31, [SEMICOLON]=r31, [AS]=r31, [R_PAREN]=r31, [OR]=r31, [AND]=r31
|
|
20
|
+
[FROM]=r32, [COMMA]=r32, [SEMICOLON]=r32, [AS]=r32, [R_PAREN]=r32, [OR]=r32, [AND]=r32
|
|
21
|
+
[FROM]=r33, [COMMA]=r33, [SEMICOLON]=r33, [AS]=r33, [R_PAREN]=r33, [OR]=r33, [AND]=r33
|
|
22
|
+
[FROM]=r34, [COMMA]=r34, [SEMICOLON]=r34, [AS]=r34, [R_PAREN]=r34, [OR]=r34, [AND]=r34
|
|
23
|
+
[FROM]=r35, [COMMA]=r35, [SEMICOLON]=r35, [AS]=r35, [R_PAREN]=r35, [OR]=r35, [AND]=r35
|
|
24
|
+
[FROM]=r36, [COMMA]=s73, [SEMICOLON]=r36, [AS]=r36, [R_PAREN]=r36, [OR]=r36, [AND]=r36, [L_PAREN]=r46, [BETWEEN]=s69, [LIKE]=s70, [NOT]=s71, [IS]=s72
|
|
25
|
+
[L_PAREN]=s74
|
|
26
|
+
[L_PAREN]=s75
|
|
27
|
+
[FROM]=r55, [COMMA]=r55, [SEMICOLON]=r55, [AS]=r55, [R_PAREN]=r55, [OR]=r55, [AND]=r55, [BETWEEN]=r55, [LIKE]=r55, [NOT]=r55, [IS]=r55, [L_PAREN]=r55
|
|
28
|
+
[L_PAREN]=r56, [FROM]=r56, [COMMA]=r56, [SEMICOLON]=r56, [AS]=r56, [R_PAREN]=r56, [OR]=r56, [AND]=r56, [BETWEEN]=r56, [LIKE]=r56, [NOT]=r56, [IS]=r56, [PIPE]=s76
|
|
29
|
+
[L_PAREN]=r58, [FROM]=r58, [COMMA]=r58, [SEMICOLON]=r58, [AS]=r58, [R_PAREN]=r58, [OR]=r58, [AND]=r58, [BETWEEN]=r58, [LIKE]=r58, [NOT]=r58, [IS]=r58, [PIPE]=r58, [AMPERSAND]=s77
|
|
30
|
+
[L_PAREN]=r60, [FROM]=r60, [COMMA]=r60, [SEMICOLON]=r60, [AS]=r60, [R_PAREN]=r60, [OR]=r60, [AND]=r60, [BETWEEN]=r60, [LIKE]=r60, [NOT]=r60, [IS]=r60, [PIPE]=r60, [AMPERSAND]=r60, [CARET]=s78
|
|
31
|
+
[L_PAREN]=r62, [FROM]=r62, [COMMA]=r62, [SEMICOLON]=r62, [AS]=r62, [R_PAREN]=r62, [OR]=r62, [AND]=r62, [BETWEEN]=r62, [LIKE]=r62, [NOT]=r62, [IS]=r62, [PIPE]=r62, [AMPERSAND]=r62, [CARET]=r62, [L_SHIFT]=s79
|
|
32
|
+
[L_PAREN]=r64, [FROM]=r64, [COMMA]=r64, [SEMICOLON]=r64, [AS]=r64, [R_PAREN]=r64, [OR]=r64, [AND]=r64, [BETWEEN]=r64, [LIKE]=r64, [NOT]=r64, [IS]=r64, [PIPE]=r64, [AMPERSAND]=r64, [CARET]=r64, [L_SHIFT]=r64, [R_SHIFT]=s80
|
|
33
|
+
[L_PAREN]=r66, [FROM]=r66, [COMMA]=r66, [SEMICOLON]=r66, [AS]=r66, [R_PAREN]=r66, [OR]=r66, [AND]=r66, [BETWEEN]=r66, [LIKE]=r66, [NOT]=r66, [IS]=r66, [PIPE]=r66, [AMPERSAND]=r66, [CARET]=r66, [L_SHIFT]=r66, [R_SHIFT]=r66
|
|
34
|
+
[L_PAREN]=r70, [FROM]=r70, [COMMA]=r70, [SEMICOLON]=r70, [AS]=r70, [R_PAREN]=r70, [OR]=r70, [AND]=r70, [BETWEEN]=r70, [LIKE]=r70, [NOT]=r70, [IS]=r70, [PIPE]=r70, [AMPERSAND]=r70, [CARET]=r70, [L_SHIFT]=r70, [R_SHIFT]=r70
|
|
35
|
+
[L_PAREN]=r74, [FROM]=r74, [COMMA]=r74, [SEMICOLON]=r74, [AS]=r74, [R_PAREN]=r74, [OR]=r74, [AND]=r74, [BETWEEN]=r74, [LIKE]=r74, [NOT]=r74, [IS]=r74, [PIPE]=r74, [AMPERSAND]=r74, [CARET]=r74, [L_SHIFT]=r74, [R_SHIFT]=r74
|
|
36
|
+
[L_PAREN]=r78, [FROM]=r78, [COMMA]=r78, [SEMICOLON]=r78, [AS]=r78, [R_PAREN]=r78, [OR]=r78, [AND]=r78, [BETWEEN]=r78, [LIKE]=r78, [NOT]=r78, [IS]=r78, [PIPE]=r78, [AMPERSAND]=r78, [CARET]=r78, [L_SHIFT]=r78, [R_SHIFT]=r78
|
|
37
|
+
[L_PAREN]=r79, [FROM]=r79, [COMMA]=r79, [SEMICOLON]=r79, [AS]=r79, [R_PAREN]=r79, [OR]=r79, [AND]=r79, [BETWEEN]=r79, [LIKE]=r79, [NOT]=r79, [IS]=r79, [PIPE]=r79, [AMPERSAND]=r79, [CARET]=r79, [L_SHIFT]=r79, [R_SHIFT]=r79
|
|
38
|
+
[L_PAREN]=r80, [FROM]=r80, [COMMA]=r80, [SEMICOLON]=r80, [AS]=r80, [R_PAREN]=r80, [OR]=r80, [AND]=r80, [BETWEEN]=r80, [LIKE]=r80, [NOT]=r80, [IS]=r80, [PIPE]=r80, [AMPERSAND]=r80, [CARET]=r80, [L_SHIFT]=r80, [R_SHIFT]=r80
|
|
39
|
+
[L_PAREN]=r81, [FROM]=r81, [COMMA]=r81, [SEMICOLON]=r81, [AS]=r81, [R_PAREN]=r81, [OR]=r81, [AND]=r81, [BETWEEN]=r81, [LIKE]=r81, [NOT]=r81, [IS]=r81, [PIPE]=r81, [AMPERSAND]=r81, [CARET]=r81, [L_SHIFT]=r81, [R_SHIFT]=r81
|
|
40
|
+
[TRUE]=s40, [FALSE]=s41, [UNKNOWN]=s42, [L_PAREN]=s43, [EQUALS]=s44, [NOT_EQUALS]=s45, [LESS_THAN]=s46, [GREATER_THAN]=s47, [LESS_THAN_OR_EQUALS]=s48, [GREATER_THAN_OR_EQUALS]=s49, [EXISTS]=s50, [SELECT]=s51, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, <BOOLEAN_TEST>=81, <BOOLEAN_PRIMARY>=15, <PREDICATE>=16, <COMPARISON_PREDICATE>=17, <BETWEEN_PREDICATE>=18, <IN_PREDICATE>=19, <LIKE_PREDICATE>=20, <NULL_PREDICATE>=21, <EXISTS_PREDICATE>=22, <VALUE>=23, <VALUE_LIST>=24, <SELECT_STATEMENT>=25, <BITWISE_OR_EXPRESSION>=26, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
41
|
+
[IS]=s82, [NOT]=s83
|
|
42
|
+
[IS]=s84, [NOT]=s85
|
|
43
|
+
[IS]=s86, [NOT]=s87
|
|
44
|
+
[SELECT]=s51, [NOT]=s39, [TRUE]=s40, [FALSE]=s41, [UNKNOWN]=s42, [L_PAREN]=s43, [EQUALS]=s44, [NOT_EQUALS]=s45, [LESS_THAN]=s46, [GREATER_THAN]=s47, [LESS_THAN_OR_EQUALS]=s48, [GREATER_THAN_OR_EQUALS]=s49, [EXISTS]=s50, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, <CONDITION>=88, <VALUE>=89, <BOOLEAN_TERM>=90, <VALUE_LIST>=91, <SELECT_STATEMENT>=92, <BITWISE_OR_EXPRESSION>=93, <BOOLEAN_FACTOR>=13, <BITWISE_AND_EXPRESSION>=27, <BOOLEAN_TEST>=14, <BITWISE_XOR_EXPRESSION>=28, <BOOLEAN_PRIMARY>=15, <SHIFT_LEFT_EXPRESSION>=29, <PREDICATE>=16, <SHIFT_RIGHT_EXPRESSION>=30, <COMPARISON_PREDICATE>=17, <BETWEEN_PREDICATE>=18, <IN_PREDICATE>=19, <LIKE_PREDICATE>=20, <NULL_PREDICATE>=21, <EXISTS_PREDICATE>=22, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
45
|
+
[SELECT]=s51, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, [L_PAREN]=s98, <VALUE>=94, <VALUE_LIST>=95, <SELECT_STATEMENT>=96, <BITWISE_OR_EXPRESSION>=97, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
46
|
+
[SELECT]=s51, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, [L_PAREN]=s98, <VALUE>=99, <VALUE_LIST>=95, <SELECT_STATEMENT>=96, <BITWISE_OR_EXPRESSION>=97, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
47
|
+
[SELECT]=s51, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, [L_PAREN]=s98, <VALUE>=100, <VALUE_LIST>=95, <SELECT_STATEMENT>=96, <BITWISE_OR_EXPRESSION>=97, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
48
|
+
[SELECT]=s51, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, [L_PAREN]=s98, <VALUE>=101, <VALUE_LIST>=95, <SELECT_STATEMENT>=96, <BITWISE_OR_EXPRESSION>=97, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
49
|
+
[SELECT]=s51, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, [L_PAREN]=s98, <VALUE>=102, <VALUE_LIST>=95, <SELECT_STATEMENT>=96, <BITWISE_OR_EXPRESSION>=97, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
50
|
+
[SELECT]=s51, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, [L_PAREN]=s98, <VALUE>=103, <VALUE_LIST>=95, <SELECT_STATEMENT>=96, <BITWISE_OR_EXPRESSION>=97, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
51
|
+
[L_PAREN]=s104
|
|
52
|
+
[NOT]=s39, [TRUE]=s40, [FALSE]=s41, [UNKNOWN]=s42, [L_PAREN]=s43, [EQUALS]=s44, [NOT_EQUALS]=s45, [LESS_THAN]=s46, [GREATER_THAN]=s47, [LESS_THAN_OR_EQUALS]=s48, [GREATER_THAN_OR_EQUALS]=s49, [EXISTS]=s50, [SELECT]=s51, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, <TARGETS>=105, <TARGET>=10, <CONDITION>=11, <BOOLEAN_TERM>=12, <BOOLEAN_FACTOR>=13, <BOOLEAN_TEST>=14, <BOOLEAN_PRIMARY>=15, <PREDICATE>=16, <COMPARISON_PREDICATE>=17, <BETWEEN_PREDICATE>=18, <IN_PREDICATE>=19, <LIKE_PREDICATE>=20, <NULL_PREDICATE>=21, <EXISTS_PREDICATE>=22, <VALUE>=23, <VALUE_LIST>=24, <SELECT_STATEMENT>=25, <BITWISE_OR_EXPRESSION>=26, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
53
|
+
[L_PAREN]=s98, [FROM]=r75, [COMMA]=r75, [SEMICOLON]=r75, [AS]=r75, [R_PAREN]=r75, [OR]=r75, [AND]=r75, [BETWEEN]=r75, [LIKE]=r75, [NOT]=r75, [IS]=r75, [PIPE]=r75, [AMPERSAND]=r75, [CARET]=r75, [L_SHIFT]=r75, [R_SHIFT]=r75, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [PLUS]=s107, [MINUS]=s108, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, <FACTOR_EXPRESSION>=106, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
54
|
+
[L_PAREN]=s98, [FROM]=r76, [COMMA]=r76, [SEMICOLON]=r76, [AS]=r76, [R_PAREN]=r76, [OR]=r76, [AND]=r76, [BETWEEN]=r76, [LIKE]=r76, [NOT]=r76, [IS]=r76, [PIPE]=r76, [AMPERSAND]=r76, [CARET]=r76, [L_SHIFT]=r76, [R_SHIFT]=r76, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [PLUS]=s107, [MINUS]=s108, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, <FACTOR_EXPRESSION>=109, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
55
|
+
[STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [PLUS]=s107, [MINUS]=s108, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, [L_PAREN]=s98, <FACTOR_EXPRESSION>=110, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
56
|
+
[PLUS]=s107, [MINUS]=s108, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, [L_PAREN]=s98, <UNARY_EXPRESSION>=111, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
57
|
+
[PLUS]=s107, [MINUS]=s108, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, [L_PAREN]=s98, <UNARY_EXPRESSION>=112, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
58
|
+
[PLUS]=s107, [MINUS]=s108, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, [L_PAREN]=s98, <UNARY_EXPRESSION>=113, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
59
|
+
[L_PAREN]=r77, [FROM]=r77, [COMMA]=r77, [SEMICOLON]=r77, [AS]=r77, [R_PAREN]=r77, [OR]=r77, [AND]=r77, [BETWEEN]=r77, [LIKE]=r77, [NOT]=r77, [IS]=r77, [PIPE]=r77, [AMPERSAND]=r77, [CARET]=r77, [L_SHIFT]=r77, [R_SHIFT]=r77
|
|
60
|
+
[L_PAREN]=r82, [FROM]=r82, [COMMA]=r82, [SEMICOLON]=r82, [AS]=r82, [R_PAREN]=r82, [OR]=r82, [AND]=r82, [BETWEEN]=r82, [LIKE]=r82, [NOT]=r82, [IS]=r82, [PIPE]=r82, [AMPERSAND]=r82, [CARET]=r82, [L_SHIFT]=r82, [R_SHIFT]=r82
|
|
61
|
+
[L_PAREN]=r83, [FROM]=r83, [COMMA]=r83, [SEMICOLON]=r83, [AS]=r83, [R_PAREN]=r83, [OR]=r83, [AND]=r83, [BETWEEN]=r83, [LIKE]=r83, [NOT]=r83, [IS]=r83, [PIPE]=r83, [AMPERSAND]=r83, [CARET]=r83, [L_SHIFT]=r83, [R_SHIFT]=r83
|
|
62
|
+
[L_PAREN]=r84, [FROM]=r84, [COMMA]=r84, [SEMICOLON]=r84, [AS]=r84, [R_PAREN]=r84, [OR]=r84, [AND]=r84, [BETWEEN]=r84, [LIKE]=r84, [NOT]=r84, [IS]=r84, [PIPE]=r84, [AMPERSAND]=r84, [CARET]=r84, [L_SHIFT]=r84, [R_SHIFT]=r84
|
|
63
|
+
[L_PAREN]=r85, [FROM]=r85, [COMMA]=r85, [SEMICOLON]=r85, [AS]=r85, [R_PAREN]=r85, [OR]=r85, [AND]=r85, [BETWEEN]=r85, [LIKE]=r85, [NOT]=r85, [IS]=r85, [PIPE]=r85, [AMPERSAND]=r85, [CARET]=r85, [L_SHIFT]=r85, [R_SHIFT]=r85
|
|
64
|
+
[L_PAREN]=s114, [FROM]=r90, [COMMA]=r90, [SEMICOLON]=r90, [AS]=r90, [R_PAREN]=r90, [OR]=r90, [AND]=r90, [BETWEEN]=r90, [LIKE]=r90, [NOT]=r90, [IS]=r90, [PIPE]=r90, [AMPERSAND]=r90, [CARET]=r90, [L_SHIFT]=r90, [R_SHIFT]=r90, [DOT]=s115
|
|
65
|
+
[IDENTIFIER]=s117, [L_PAREN]=s118, <SOURCE>=116
|
|
66
|
+
[NOT]=s39, [TRUE]=s40, [FALSE]=s41, [UNKNOWN]=s42, [L_PAREN]=s43, [EQUALS]=s44, [NOT_EQUALS]=s45, [LESS_THAN]=s46, [GREATER_THAN]=s47, [LESS_THAN_OR_EQUALS]=s48, [GREATER_THAN_OR_EQUALS]=s49, [EXISTS]=s50, [SELECT]=s51, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, <TARGETS>=119, <TARGET>=10, <CONDITION>=11, <BOOLEAN_TERM>=12, <BOOLEAN_FACTOR>=13, <BOOLEAN_TEST>=14, <BOOLEAN_PRIMARY>=15, <PREDICATE>=16, <COMPARISON_PREDICATE>=17, <BETWEEN_PREDICATE>=18, <IN_PREDICATE>=19, <LIKE_PREDICATE>=20, <NULL_PREDICATE>=21, <EXISTS_PREDICATE>=22, <VALUE>=23, <VALUE_LIST>=24, <SELECT_STATEMENT>=25, <BITWISE_OR_EXPRESSION>=26, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
67
|
+
[IDENTIFIER]=s120
|
|
68
|
+
[NOT]=s39, [TRUE]=s40, [FALSE]=s41, [UNKNOWN]=s42, [L_PAREN]=s43, [EQUALS]=s44, [NOT_EQUALS]=s45, [LESS_THAN]=s46, [GREATER_THAN]=s47, [LESS_THAN_OR_EQUALS]=s48, [GREATER_THAN_OR_EQUALS]=s49, [EXISTS]=s50, [SELECT]=s51, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, <CONDITION>=121, <BOOLEAN_TERM>=122, <BOOLEAN_FACTOR>=13, <BOOLEAN_TEST>=14, <BOOLEAN_PRIMARY>=15, <PREDICATE>=16, <COMPARISON_PREDICATE>=17, <BETWEEN_PREDICATE>=18, <IN_PREDICATE>=19, <LIKE_PREDICATE>=20, <NULL_PREDICATE>=21, <EXISTS_PREDICATE>=22, <VALUE>=23, <VALUE_LIST>=24, <SELECT_STATEMENT>=25, <BITWISE_OR_EXPRESSION>=26, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
69
|
+
[NOT]=s39, [TRUE]=s40, [FALSE]=s41, [UNKNOWN]=s42, [L_PAREN]=s43, [EQUALS]=s44, [NOT_EQUALS]=s45, [LESS_THAN]=s46, [GREATER_THAN]=s47, [LESS_THAN_OR_EQUALS]=s48, [GREATER_THAN_OR_EQUALS]=s49, [EXISTS]=s50, [SELECT]=s51, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, <BOOLEAN_TERM>=123, <BOOLEAN_FACTOR>=124, <BOOLEAN_TEST>=14, <BOOLEAN_PRIMARY>=15, <PREDICATE>=16, <COMPARISON_PREDICATE>=17, <BETWEEN_PREDICATE>=18, <IN_PREDICATE>=19, <LIKE_PREDICATE>=20, <NULL_PREDICATE>=21, <EXISTS_PREDICATE>=22, <VALUE>=23, <VALUE_LIST>=24, <SELECT_STATEMENT>=25, <BITWISE_OR_EXPRESSION>=26, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
70
|
+
[SELECT]=s51, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, [L_PAREN]=s98, <VALUE>=125, <VALUE_LIST>=126, <SELECT_STATEMENT>=127, <BITWISE_OR_EXPRESSION>=128, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
71
|
+
[SELECT]=s51, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, [L_PAREN]=s98, <VALUE>=129, <VALUE_LIST>=95, <SELECT_STATEMENT>=96, <BITWISE_OR_EXPRESSION>=97, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
72
|
+
[LIKE]=s130
|
|
73
|
+
[NULL]=s131, [NOT]=s132
|
|
74
|
+
[SELECT]=s51, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, [L_PAREN]=s98, <VALUE_LIST>=133, <VALUE>=134, <SELECT_STATEMENT>=135, <BITWISE_OR_EXPRESSION>=136, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
75
|
+
[FROM]=r53, [COMMA]=r53, [SEMICOLON]=r53, [AS]=r53, [R_PAREN]=r53, [OR]=r53, [AND]=r53, [BETWEEN]=r53, [LIKE]=r53, [NOT]=r53, [IS]=r53, [L_PAREN]=r53, [IN]=s137
|
|
76
|
+
[FROM]=r54, [COMMA]=r54, [SEMICOLON]=r54, [AS]=r54, [R_PAREN]=r54, [OR]=r54, [AND]=r54, [BETWEEN]=r54, [LIKE]=r54, [NOT]=r54, [IS]=r54, [L_PAREN]=r54, [IN]=s138
|
|
77
|
+
[PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, [L_PAREN]=s98, <BITWISE_OR_EXPRESSION>=139, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
78
|
+
[PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, [L_PAREN]=s98, <BITWISE_AND_EXPRESSION>=140, <BITWISE_XOR_EXPRESSION>=141, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
79
|
+
[PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, [L_PAREN]=s98, <BITWISE_XOR_EXPRESSION>=142, <SHIFT_LEFT_EXPRESSION>=143, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
80
|
+
[PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, [L_PAREN]=s98, <SHIFT_RIGHT_EXPRESSION>=144, <TERM_EXPRESSION>=145, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
81
|
+
[PLUS]=s148, [MINUS]=s149, [DOUBLE_PIPE]=s150, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, [L_PAREN]=s98, <TERM_EXPRESSION>=146, <FACTOR_EXPRESSION>=147, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
82
|
+
[FROM]=r20, [COMMA]=r20, [SEMICOLON]=r20, [AS]=r20, [R_PAREN]=r20, [OR]=r20, [AND]=r20
|
|
83
|
+
[L_PAREN]=s43, [EQUALS]=s44, [NOT_EQUALS]=s45, [LESS_THAN]=s46, [GREATER_THAN]=s47, [LESS_THAN_OR_EQUALS]=s48, [GREATER_THAN_OR_EQUALS]=s49, [EXISTS]=s50, [SELECT]=s51, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, <BOOLEAN_PRIMARY>=151, <PREDICATE>=16, <COMPARISON_PREDICATE>=17, <BETWEEN_PREDICATE>=18, <IN_PREDICATE>=19, <LIKE_PREDICATE>=20, <NULL_PREDICATE>=21, <EXISTS_PREDICATE>=22, <VALUE>=23, <VALUE_LIST>=24, <SELECT_STATEMENT>=25, <BITWISE_OR_EXPRESSION>=26, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
84
|
+
[IS]=s152
|
|
85
|
+
[L_PAREN]=s43, [EQUALS]=s44, [NOT_EQUALS]=s45, [LESS_THAN]=s46, [GREATER_THAN]=s47, [LESS_THAN_OR_EQUALS]=s48, [GREATER_THAN_OR_EQUALS]=s49, [EXISTS]=s50, [SELECT]=s51, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, <BOOLEAN_PRIMARY>=153, <PREDICATE>=16, <COMPARISON_PREDICATE>=17, <BETWEEN_PREDICATE>=18, <IN_PREDICATE>=19, <LIKE_PREDICATE>=20, <NULL_PREDICATE>=21, <EXISTS_PREDICATE>=22, <VALUE>=23, <VALUE_LIST>=24, <SELECT_STATEMENT>=25, <BITWISE_OR_EXPRESSION>=26, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
86
|
+
[IS]=s154
|
|
87
|
+
[L_PAREN]=s43, [EQUALS]=s44, [NOT_EQUALS]=s45, [LESS_THAN]=s46, [GREATER_THAN]=s47, [LESS_THAN_OR_EQUALS]=s48, [GREATER_THAN_OR_EQUALS]=s49, [EXISTS]=s50, [SELECT]=s51, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, <BOOLEAN_PRIMARY>=155, <PREDICATE>=16, <COMPARISON_PREDICATE>=17, <BETWEEN_PREDICATE>=18, <IN_PREDICATE>=19, <LIKE_PREDICATE>=20, <NULL_PREDICATE>=21, <EXISTS_PREDICATE>=22, <VALUE>=23, <VALUE_LIST>=24, <SELECT_STATEMENT>=25, <BITWISE_OR_EXPRESSION>=26, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
88
|
+
[IS]=s156
|
|
89
|
+
[R_PAREN]=s157
|
|
90
|
+
[L_PAREN]=r46, [FROM]=r36, [COMMA]=s73, [SEMICOLON]=r36, [AS]=r36, [R_PAREN]=s158, [OR]=r36, [AND]=r36, [BETWEEN]=s69, [LIKE]=s70, [NOT]=s71, [IS]=s72
|
|
91
|
+
[R_PAREN]=r15, [OR]=s159
|
|
92
|
+
[L_PAREN]=s160
|
|
93
|
+
[L_PAREN]=s161
|
|
94
|
+
[R_PAREN]=r55, [L_PAREN]=r55, [COMMA]=r55, [FROM]=r55, [SEMICOLON]=r55, [AS]=r55, [OR]=r55, [AND]=r55, [BETWEEN]=r55, [LIKE]=r55, [NOT]=r55, [IS]=r55
|
|
95
|
+
[FROM]=r37, [COMMA]=s73, [SEMICOLON]=r37, [AS]=r37, [R_PAREN]=r37, [OR]=r37, [AND]=r37, [L_PAREN]=r46
|
|
96
|
+
[L_PAREN]=s162
|
|
97
|
+
[L_PAREN]=s163
|
|
98
|
+
[FROM]=r55, [COMMA]=r55, [SEMICOLON]=r55, [AS]=r55, [R_PAREN]=r55, [OR]=r55, [AND]=r55, [L_PAREN]=r55
|
|
99
|
+
[SELECT]=s51, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, [L_PAREN]=s98, <VALUE>=164, <VALUE_LIST>=165, <SELECT_STATEMENT>=166, <BITWISE_OR_EXPRESSION>=167, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
100
|
+
[FROM]=r38, [COMMA]=s73, [SEMICOLON]=r38, [AS]=r38, [R_PAREN]=r38, [OR]=r38, [AND]=r38, [L_PAREN]=r46
|
|
101
|
+
[FROM]=r39, [COMMA]=s73, [SEMICOLON]=r39, [AS]=r39, [R_PAREN]=r39, [OR]=r39, [AND]=r39, [L_PAREN]=r46
|
|
102
|
+
[FROM]=r40, [COMMA]=s73, [SEMICOLON]=r40, [AS]=r40, [R_PAREN]=r40, [OR]=r40, [AND]=r40, [L_PAREN]=r46
|
|
103
|
+
[FROM]=r41, [COMMA]=s73, [SEMICOLON]=r41, [AS]=r41, [R_PAREN]=r41, [OR]=r41, [AND]=r41, [L_PAREN]=r46
|
|
104
|
+
[FROM]=r42, [COMMA]=s73, [SEMICOLON]=r42, [AS]=r42, [R_PAREN]=r42, [OR]=r42, [AND]=r42, [L_PAREN]=r46
|
|
105
|
+
[SELECT]=s169, <SELECT_STATEMENT>=168
|
|
106
|
+
[FROM]=s170
|
|
107
|
+
[L_PAREN]=r67, [FROM]=r67, [COMMA]=r67, [SEMICOLON]=r67, [AS]=r67, [R_PAREN]=r67, [OR]=r67, [AND]=r67, [BETWEEN]=r67, [LIKE]=r67, [NOT]=r67, [IS]=r67, [PIPE]=r67, [AMPERSAND]=r67, [CARET]=r67, [L_SHIFT]=r67, [R_SHIFT]=r67
|
|
108
|
+
[L_PAREN]=r75, [FROM]=r75, [COMMA]=r75, [SEMICOLON]=r75, [AS]=r75, [R_PAREN]=r75, [OR]=r75, [AND]=r75, [BETWEEN]=r75, [LIKE]=r75, [NOT]=r75, [IS]=r75, [PIPE]=r75, [AMPERSAND]=r75, [CARET]=r75, [L_SHIFT]=r75, [R_SHIFT]=r75
|
|
109
|
+
[L_PAREN]=r76, [FROM]=r76, [COMMA]=r76, [SEMICOLON]=r76, [AS]=r76, [R_PAREN]=r76, [OR]=r76, [AND]=r76, [BETWEEN]=r76, [LIKE]=r76, [NOT]=r76, [IS]=r76, [PIPE]=r76, [AMPERSAND]=r76, [CARET]=r76, [L_SHIFT]=r76, [R_SHIFT]=r76
|
|
110
|
+
[L_PAREN]=r68, [FROM]=r68, [COMMA]=r68, [SEMICOLON]=r68, [AS]=r68, [R_PAREN]=r68, [OR]=r68, [AND]=r68, [BETWEEN]=r68, [LIKE]=r68, [NOT]=r68, [IS]=r68, [PIPE]=r68, [AMPERSAND]=r68, [CARET]=r68, [L_SHIFT]=r68, [R_SHIFT]=r68
|
|
111
|
+
[L_PAREN]=r69, [FROM]=r69, [COMMA]=r69, [SEMICOLON]=r69, [AS]=r69, [R_PAREN]=r69, [OR]=r69, [AND]=r69, [BETWEEN]=r69, [LIKE]=r69, [NOT]=r69, [IS]=r69, [PIPE]=r69, [AMPERSAND]=r69, [CARET]=r69, [L_SHIFT]=r69, [R_SHIFT]=r69
|
|
112
|
+
[L_PAREN]=r71, [FROM]=r71, [COMMA]=r71, [SEMICOLON]=r71, [AS]=r71, [R_PAREN]=r71, [OR]=r71, [AND]=r71, [BETWEEN]=r71, [LIKE]=r71, [NOT]=r71, [IS]=r71, [PIPE]=r71, [AMPERSAND]=r71, [CARET]=r71, [L_SHIFT]=r71, [R_SHIFT]=r71
|
|
113
|
+
[L_PAREN]=r72, [FROM]=r72, [COMMA]=r72, [SEMICOLON]=r72, [AS]=r72, [R_PAREN]=r72, [OR]=r72, [AND]=r72, [BETWEEN]=r72, [LIKE]=r72, [NOT]=r72, [IS]=r72, [PIPE]=r72, [AMPERSAND]=r72, [CARET]=r72, [L_SHIFT]=r72, [R_SHIFT]=r72
|
|
114
|
+
[L_PAREN]=r73, [FROM]=r73, [COMMA]=r73, [SEMICOLON]=r73, [AS]=r73, [R_PAREN]=r73, [OR]=r73, [AND]=r73, [BETWEEN]=r73, [LIKE]=r73, [NOT]=r73, [IS]=r73, [PIPE]=r73, [AMPERSAND]=r73, [CARET]=r73, [L_SHIFT]=r73, [R_SHIFT]=r73
|
|
115
|
+
[SELECT]=s51, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, [L_PAREN]=s98, <ARGUMENT_LIST>=171, <VALUE>=172, <VALUE_LIST>=173, <SELECT_STATEMENT>=174, <BITWISE_OR_EXPRESSION>=175, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
116
|
+
[IDENTIFIER]=s176
|
|
117
|
+
[SEMICOLON]=s177, [WHERE]=s178
|
|
118
|
+
[SEMICOLON]=r12, [WHERE]=r12, [DOT]=s179
|
|
119
|
+
[SELECT]=s169, <SELECT_STATEMENT>=180
|
|
120
|
+
[FROM]=r9
|
|
121
|
+
[FROM]=r11, [COMMA]=r11
|
|
122
|
+
[FROM]=r16, [COMMA]=r16, [AS]=r16
|
|
123
|
+
[FROM]=r15, [COMMA]=r15, [SEMICOLON]=r15, [AS]=r15, [R_PAREN]=r15, [OR]=s181
|
|
124
|
+
[FROM]=r18, [COMMA]=r18, [SEMICOLON]=r18, [AS]=r18, [R_PAREN]=r18, [OR]=r18
|
|
125
|
+
[FROM]=r17, [COMMA]=r17, [SEMICOLON]=r17, [AS]=r17, [R_PAREN]=r17, [OR]=r17, [AND]=s182
|
|
126
|
+
[L_PAREN]=r46, [AND]=s183, [COMMA]=s73
|
|
127
|
+
[L_PAREN]=s184
|
|
128
|
+
[L_PAREN]=s185
|
|
129
|
+
[AND]=r55, [L_PAREN]=r55, [COMMA]=r55
|
|
130
|
+
[FROM]=r48, [COMMA]=s73, [SEMICOLON]=r48, [AS]=r48, [R_PAREN]=r48, [OR]=r48, [AND]=r48, [L_PAREN]=r46
|
|
131
|
+
[SELECT]=s51, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, [L_PAREN]=s98, <VALUE>=186, <VALUE_LIST>=95, <SELECT_STATEMENT>=96, <BITWISE_OR_EXPRESSION>=97, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
132
|
+
[FROM]=r50, [COMMA]=r50, [SEMICOLON]=r50, [AS]=r50, [R_PAREN]=r50, [OR]=r50, [AND]=r50
|
|
133
|
+
[NULL]=s187
|
|
134
|
+
[L_PAREN]=s188
|
|
135
|
+
[L_PAREN]=r46, [COMMA]=s73
|
|
136
|
+
[L_PAREN]=s189
|
|
137
|
+
[L_PAREN]=r55, [COMMA]=r55
|
|
138
|
+
[SELECT]=s51, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, [L_PAREN]=s98, <VALUE>=190, <VALUE_LIST>=95, <SELECT_STATEMENT>=96, <BITWISE_OR_EXPRESSION>=97, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
139
|
+
[SELECT]=s51, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, [L_PAREN]=s98, <VALUE>=191, <VALUE_LIST>=95, <SELECT_STATEMENT>=96, <BITWISE_OR_EXPRESSION>=97, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
140
|
+
[L_PAREN]=r57, [FROM]=r57, [COMMA]=r57, [SEMICOLON]=r57, [AS]=r57, [R_PAREN]=r57, [OR]=r57, [AND]=r57, [BETWEEN]=r57, [LIKE]=r57, [NOT]=r57, [IS]=r57
|
|
141
|
+
[L_PAREN]=r59, [FROM]=r59, [COMMA]=r59, [SEMICOLON]=r59, [AS]=r59, [R_PAREN]=r59, [OR]=r59, [AND]=r59, [BETWEEN]=r59, [LIKE]=r59, [NOT]=r59, [IS]=r59, [PIPE]=r59
|
|
142
|
+
[L_PAREN]=r58, [FROM]=r58, [COMMA]=r58, [SEMICOLON]=r58, [AS]=r58, [R_PAREN]=r58, [OR]=r58, [AND]=r58, [BETWEEN]=r58, [LIKE]=r58, [NOT]=r58, [IS]=r58, [PIPE]=r58, [AMPERSAND]=s192
|
|
143
|
+
[L_PAREN]=r61, [FROM]=r61, [COMMA]=r61, [SEMICOLON]=r61, [AS]=r61, [R_PAREN]=r61, [OR]=r61, [AND]=r61, [BETWEEN]=r61, [LIKE]=r61, [NOT]=r61, [IS]=r61, [PIPE]=r61, [AMPERSAND]=r61
|
|
144
|
+
[L_PAREN]=r60, [FROM]=r60, [COMMA]=r60, [SEMICOLON]=r60, [AS]=r60, [R_PAREN]=r60, [OR]=r60, [AND]=r60, [BETWEEN]=r60, [LIKE]=r60, [NOT]=r60, [IS]=r60, [PIPE]=r60, [AMPERSAND]=r60, [CARET]=s193
|
|
145
|
+
[L_PAREN]=r63, [FROM]=r63, [COMMA]=r63, [SEMICOLON]=r63, [AS]=r63, [R_PAREN]=r63, [OR]=r63, [AND]=r63, [BETWEEN]=r63, [LIKE]=r63, [NOT]=r63, [IS]=r63, [PIPE]=r63, [AMPERSAND]=r63, [CARET]=r63
|
|
146
|
+
[L_PAREN]=r64, [FROM]=r64, [COMMA]=r64, [SEMICOLON]=r64, [AS]=r64, [R_PAREN]=r64, [OR]=r64, [AND]=r64, [BETWEEN]=r64, [LIKE]=r64, [NOT]=r64, [IS]=r64, [PIPE]=r64, [AMPERSAND]=r64, [CARET]=r64, [R_SHIFT]=s194
|
|
147
|
+
[L_PAREN]=r65, [FROM]=r65, [COMMA]=r65, [SEMICOLON]=r65, [AS]=r65, [R_PAREN]=r65, [OR]=r65, [AND]=r65, [BETWEEN]=r65, [LIKE]=r65, [NOT]=r65, [IS]=r65, [PIPE]=r65, [AMPERSAND]=r65, [CARET]=r65, [L_SHIFT]=r65
|
|
148
|
+
[L_PAREN]=r66, [FROM]=r66, [COMMA]=r66, [SEMICOLON]=r66, [AS]=r66, [R_PAREN]=r66, [OR]=r66, [AND]=r66, [BETWEEN]=r66, [LIKE]=r66, [NOT]=r66, [IS]=r66, [PIPE]=r66, [AMPERSAND]=r66, [CARET]=r66, [L_SHIFT]=r66
|
|
149
|
+
[L_PAREN]=s98, [FROM]=r75, [COMMA]=r75, [SEMICOLON]=r75, [AS]=r75, [R_PAREN]=r75, [OR]=r75, [AND]=r75, [BETWEEN]=r75, [LIKE]=r75, [NOT]=r75, [IS]=r75, [PIPE]=r75, [AMPERSAND]=r75, [CARET]=r75, [L_SHIFT]=r75, [R_SHIFT]=r75, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [PLUS]=s107, [MINUS]=s108, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, <FACTOR_EXPRESSION>=195, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
150
|
+
[L_PAREN]=s98, [FROM]=r76, [COMMA]=r76, [SEMICOLON]=r76, [AS]=r76, [R_PAREN]=r76, [OR]=r76, [AND]=r76, [BETWEEN]=r76, [LIKE]=r76, [NOT]=r76, [IS]=r76, [PIPE]=r76, [AMPERSAND]=r76, [CARET]=r76, [L_SHIFT]=r76, [R_SHIFT]=r76, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [PLUS]=s107, [MINUS]=s108, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, <FACTOR_EXPRESSION>=196, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
151
|
+
[STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [PLUS]=s107, [MINUS]=s108, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, [L_PAREN]=s98, <FACTOR_EXPRESSION>=197, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
152
|
+
[FROM]=r22, [COMMA]=r22, [SEMICOLON]=r22, [AS]=r22, [R_PAREN]=r22, [OR]=r22, [AND]=r22
|
|
153
|
+
[L_PAREN]=s43, [EQUALS]=s44, [NOT_EQUALS]=s45, [LESS_THAN]=s46, [GREATER_THAN]=s47, [LESS_THAN_OR_EQUALS]=s48, [GREATER_THAN_OR_EQUALS]=s49, [EXISTS]=s50, [SELECT]=s51, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, <BOOLEAN_PRIMARY>=198, <PREDICATE>=16, <COMPARISON_PREDICATE>=17, <BETWEEN_PREDICATE>=18, <IN_PREDICATE>=19, <LIKE_PREDICATE>=20, <NULL_PREDICATE>=21, <EXISTS_PREDICATE>=22, <VALUE>=23, <VALUE_LIST>=24, <SELECT_STATEMENT>=25, <BITWISE_OR_EXPRESSION>=26, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
154
|
+
[FROM]=r23, [COMMA]=r23, [SEMICOLON]=r23, [AS]=r23, [R_PAREN]=r23, [OR]=r23, [AND]=r23
|
|
155
|
+
[L_PAREN]=s43, [EQUALS]=s44, [NOT_EQUALS]=s45, [LESS_THAN]=s46, [GREATER_THAN]=s47, [LESS_THAN_OR_EQUALS]=s48, [GREATER_THAN_OR_EQUALS]=s49, [EXISTS]=s50, [SELECT]=s51, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, <BOOLEAN_PRIMARY>=199, <PREDICATE>=16, <COMPARISON_PREDICATE>=17, <BETWEEN_PREDICATE>=18, <IN_PREDICATE>=19, <LIKE_PREDICATE>=20, <NULL_PREDICATE>=21, <EXISTS_PREDICATE>=22, <VALUE>=23, <VALUE_LIST>=24, <SELECT_STATEMENT>=25, <BITWISE_OR_EXPRESSION>=26, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
156
|
+
[FROM]=r24, [COMMA]=r24, [SEMICOLON]=r24, [AS]=r24, [R_PAREN]=r24, [OR]=r24, [AND]=r24
|
|
157
|
+
[L_PAREN]=s43, [EQUALS]=s44, [NOT_EQUALS]=s45, [LESS_THAN]=s46, [GREATER_THAN]=s47, [LESS_THAN_OR_EQUALS]=s48, [GREATER_THAN_OR_EQUALS]=s49, [EXISTS]=s50, [SELECT]=s51, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, <BOOLEAN_PRIMARY>=200, <PREDICATE>=16, <COMPARISON_PREDICATE>=17, <BETWEEN_PREDICATE>=18, <IN_PREDICATE>=19, <LIKE_PREDICATE>=20, <NULL_PREDICATE>=21, <EXISTS_PREDICATE>=22, <VALUE>=23, <VALUE_LIST>=24, <SELECT_STATEMENT>=25, <BITWISE_OR_EXPRESSION>=26, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
158
|
+
[FROM]=r29, [COMMA]=r29, [SEMICOLON]=r29, [AS]=r29, [R_PAREN]=r29, [OR]=r29, [AND]=r29
|
|
159
|
+
[L_PAREN]=r86, [FROM]=r86, [COMMA]=r86, [SEMICOLON]=r86, [AS]=r86, [R_PAREN]=r86, [OR]=r86, [AND]=r86, [BETWEEN]=r86, [LIKE]=r86, [NOT]=r86, [IS]=r86, [PIPE]=r86, [AMPERSAND]=r86, [CARET]=r86, [L_SHIFT]=r86, [R_SHIFT]=r86
|
|
160
|
+
[NOT]=s39, [TRUE]=s40, [FALSE]=s41, [UNKNOWN]=s42, [L_PAREN]=s43, [EQUALS]=s44, [NOT_EQUALS]=s45, [LESS_THAN]=s46, [GREATER_THAN]=s47, [LESS_THAN_OR_EQUALS]=s48, [GREATER_THAN_OR_EQUALS]=s49, [EXISTS]=s50, [SELECT]=s51, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, <CONDITION>=201, <BOOLEAN_TERM>=122, <BOOLEAN_FACTOR>=13, <BOOLEAN_TEST>=14, <BOOLEAN_PRIMARY>=15, <PREDICATE>=16, <COMPARISON_PREDICATE>=17, <BETWEEN_PREDICATE>=18, <IN_PREDICATE>=19, <LIKE_PREDICATE>=20, <NULL_PREDICATE>=21, <EXISTS_PREDICATE>=22, <VALUE>=23, <VALUE_LIST>=24, <SELECT_STATEMENT>=25, <BITWISE_OR_EXPRESSION>=26, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
161
|
+
[R_PAREN]=r53, [L_PAREN]=r53, [COMMA]=r53, [FROM]=r53, [SEMICOLON]=r53, [AS]=r53, [OR]=r53, [AND]=r53, [BETWEEN]=r53, [LIKE]=r53, [NOT]=r53, [IS]=r53, [IN]=s137
|
|
162
|
+
[R_PAREN]=r54, [L_PAREN]=r54, [COMMA]=r54, [FROM]=r54, [SEMICOLON]=r54, [AS]=r54, [OR]=r54, [AND]=r54, [BETWEEN]=r54, [LIKE]=r54, [NOT]=r54, [IS]=r54, [IN]=s138
|
|
163
|
+
[FROM]=r53, [COMMA]=r53, [SEMICOLON]=r53, [AS]=r53, [R_PAREN]=r53, [OR]=r53, [AND]=r53, [L_PAREN]=r53
|
|
164
|
+
[FROM]=r54, [COMMA]=r54, [SEMICOLON]=r54, [AS]=r54, [R_PAREN]=r54, [OR]=r54, [AND]=r54, [L_PAREN]=r54
|
|
165
|
+
[L_PAREN]=r46, [R_PAREN]=s158, [COMMA]=s73
|
|
166
|
+
[L_PAREN]=s202
|
|
167
|
+
[L_PAREN]=s203
|
|
168
|
+
[R_PAREN]=r55, [L_PAREN]=r55, [COMMA]=r55
|
|
169
|
+
[R_PAREN]=s204
|
|
170
|
+
[NOT]=s39, [TRUE]=s40, [FALSE]=s41, [UNKNOWN]=s42, [L_PAREN]=s43, [EQUALS]=s44, [NOT_EQUALS]=s45, [LESS_THAN]=s46, [GREATER_THAN]=s47, [LESS_THAN_OR_EQUALS]=s48, [GREATER_THAN_OR_EQUALS]=s49, [EXISTS]=s50, [SELECT]=s51, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, <TARGETS>=205, <TARGET>=10, <CONDITION>=11, <BOOLEAN_TERM>=12, <BOOLEAN_FACTOR>=13, <BOOLEAN_TEST>=14, <BOOLEAN_PRIMARY>=15, <PREDICATE>=16, <COMPARISON_PREDICATE>=17, <BETWEEN_PREDICATE>=18, <IN_PREDICATE>=19, <LIKE_PREDICATE>=20, <NULL_PREDICATE>=21, <EXISTS_PREDICATE>=22, <VALUE>=23, <VALUE_LIST>=24, <SELECT_STATEMENT>=25, <BITWISE_OR_EXPRESSION>=26, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
171
|
+
[IDENTIFIER]=s117, [L_PAREN]=s118, <SOURCE>=206
|
|
172
|
+
[R_PAREN]=s207
|
|
173
|
+
[R_PAREN]=r88, [L_PAREN]=r46, [COMMA]=s208
|
|
174
|
+
[L_PAREN]=s209
|
|
175
|
+
[L_PAREN]=s210
|
|
176
|
+
[R_PAREN]=r55, [COMMA]=r55, [L_PAREN]=r55
|
|
177
|
+
[L_PAREN]=r91, [FROM]=r91, [COMMA]=r91, [SEMICOLON]=r91, [AS]=r91, [R_PAREN]=r91, [OR]=r91, [AND]=r91, [BETWEEN]=r91, [LIKE]=r91, [NOT]=r91, [IS]=r91, [PIPE]=r91, [AMPERSAND]=r91, [CARET]=r91, [L_SHIFT]=r91, [R_SHIFT]=r91, [DOT]=s211
|
|
178
|
+
[EOF]=r6, [SELECT]=r6
|
|
179
|
+
[NOT]=s39, [TRUE]=s40, [FALSE]=s41, [UNKNOWN]=s42, [L_PAREN]=s43, [EQUALS]=s44, [NOT_EQUALS]=s45, [LESS_THAN]=s46, [GREATER_THAN]=s47, [LESS_THAN_OR_EQUALS]=s48, [GREATER_THAN_OR_EQUALS]=s49, [EXISTS]=s50, [SELECT]=s51, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, <CONDITION>=212, <BOOLEAN_TERM>=213, <BOOLEAN_FACTOR>=13, <BOOLEAN_TEST>=14, <BOOLEAN_PRIMARY>=15, <PREDICATE>=16, <COMPARISON_PREDICATE>=17, <BETWEEN_PREDICATE>=18, <IN_PREDICATE>=19, <LIKE_PREDICATE>=20, <NULL_PREDICATE>=21, <EXISTS_PREDICATE>=22, <VALUE>=23, <VALUE_LIST>=24, <SELECT_STATEMENT>=25, <BITWISE_OR_EXPRESSION>=26, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
180
|
+
[IDENTIFIER]=s214
|
|
181
|
+
[R_PAREN]=s215
|
|
182
|
+
[NOT]=s39, [TRUE]=s40, [FALSE]=s41, [UNKNOWN]=s42, [L_PAREN]=s43, [EQUALS]=s44, [NOT_EQUALS]=s45, [LESS_THAN]=s46, [GREATER_THAN]=s47, [LESS_THAN_OR_EQUALS]=s48, [GREATER_THAN_OR_EQUALS]=s49, [EXISTS]=s50, [SELECT]=s51, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, <CONDITION>=216, <BOOLEAN_TERM>=122, <BOOLEAN_FACTOR>=13, <BOOLEAN_TEST>=14, <BOOLEAN_PRIMARY>=15, <PREDICATE>=16, <COMPARISON_PREDICATE>=17, <BETWEEN_PREDICATE>=18, <IN_PREDICATE>=19, <LIKE_PREDICATE>=20, <NULL_PREDICATE>=21, <EXISTS_PREDICATE>=22, <VALUE>=23, <VALUE_LIST>=24, <SELECT_STATEMENT>=25, <BITWISE_OR_EXPRESSION>=26, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
183
|
+
[NOT]=s39, [TRUE]=s40, [FALSE]=s41, [UNKNOWN]=s42, [L_PAREN]=s43, [EQUALS]=s44, [NOT_EQUALS]=s45, [LESS_THAN]=s46, [GREATER_THAN]=s47, [LESS_THAN_OR_EQUALS]=s48, [GREATER_THAN_OR_EQUALS]=s49, [EXISTS]=s50, [SELECT]=s51, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, <BOOLEAN_TERM>=217, <BOOLEAN_FACTOR>=124, <BOOLEAN_TEST>=14, <BOOLEAN_PRIMARY>=15, <PREDICATE>=16, <COMPARISON_PREDICATE>=17, <BETWEEN_PREDICATE>=18, <IN_PREDICATE>=19, <LIKE_PREDICATE>=20, <NULL_PREDICATE>=21, <EXISTS_PREDICATE>=22, <VALUE>=23, <VALUE_LIST>=24, <SELECT_STATEMENT>=25, <BITWISE_OR_EXPRESSION>=26, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
184
|
+
[SELECT]=s51, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, [L_PAREN]=s98, <VALUE>=218, <VALUE_LIST>=95, <SELECT_STATEMENT>=96, <BITWISE_OR_EXPRESSION>=97, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
185
|
+
[AND]=r53, [L_PAREN]=r53, [COMMA]=r53
|
|
186
|
+
[AND]=r54, [L_PAREN]=r54, [COMMA]=r54
|
|
187
|
+
[FROM]=r49, [COMMA]=s73, [SEMICOLON]=r49, [AS]=r49, [R_PAREN]=r49, [OR]=r49, [AND]=r49, [L_PAREN]=r46
|
|
188
|
+
[FROM]=r51, [COMMA]=r51, [SEMICOLON]=r51, [AS]=r51, [R_PAREN]=r51, [OR]=r51, [AND]=r51
|
|
189
|
+
[L_PAREN]=r53, [COMMA]=r53
|
|
190
|
+
[L_PAREN]=r54, [COMMA]=r54
|
|
191
|
+
[FROM]=r44, [COMMA]=s73, [SEMICOLON]=r44, [AS]=r44, [R_PAREN]=r44, [OR]=r44, [AND]=r44, [L_PAREN]=r46
|
|
192
|
+
[FROM]=r45, [COMMA]=s73, [SEMICOLON]=r45, [AS]=r45, [R_PAREN]=r45, [OR]=r45, [AND]=r45, [L_PAREN]=r46
|
|
193
|
+
[PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, [L_PAREN]=s98, <BITWISE_AND_EXPRESSION>=219, <BITWISE_XOR_EXPRESSION>=141, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
194
|
+
[PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, [L_PAREN]=s98, <BITWISE_XOR_EXPRESSION>=220, <SHIFT_LEFT_EXPRESSION>=143, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
195
|
+
[PLUS]=s148, [MINUS]=s149, [DOUBLE_PIPE]=s150, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, [L_PAREN]=s98, <TERM_EXPRESSION>=221, <FACTOR_EXPRESSION>=147, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
196
|
+
[L_PAREN]=r67, [FROM]=r67, [COMMA]=r67, [SEMICOLON]=r67, [AS]=r67, [R_PAREN]=r67, [OR]=r67, [AND]=r67, [BETWEEN]=r67, [LIKE]=r67, [NOT]=r67, [IS]=r67, [PIPE]=r67, [AMPERSAND]=r67, [CARET]=r67, [L_SHIFT]=r67
|
|
197
|
+
[L_PAREN]=r68, [FROM]=r68, [COMMA]=r68, [SEMICOLON]=r68, [AS]=r68, [R_PAREN]=r68, [OR]=r68, [AND]=r68, [BETWEEN]=r68, [LIKE]=r68, [NOT]=r68, [IS]=r68, [PIPE]=r68, [AMPERSAND]=r68, [CARET]=r68, [L_SHIFT]=r68
|
|
198
|
+
[L_PAREN]=r69, [FROM]=r69, [COMMA]=r69, [SEMICOLON]=r69, [AS]=r69, [R_PAREN]=r69, [OR]=r69, [AND]=r69, [BETWEEN]=r69, [LIKE]=r69, [NOT]=r69, [IS]=r69, [PIPE]=r69, [AMPERSAND]=r69, [CARET]=r69, [L_SHIFT]=r69
|
|
199
|
+
[FROM]=r25, [COMMA]=r25, [SEMICOLON]=r25, [AS]=r25, [R_PAREN]=r25, [OR]=r25, [AND]=r25
|
|
200
|
+
[FROM]=r26, [COMMA]=r26, [SEMICOLON]=r26, [AS]=r26, [R_PAREN]=r26, [OR]=r26, [AND]=r26
|
|
201
|
+
[FROM]=r27, [COMMA]=r27, [SEMICOLON]=r27, [AS]=r27, [R_PAREN]=r27, [OR]=r27, [AND]=r27
|
|
202
|
+
[R_PAREN]=r16
|
|
203
|
+
[R_PAREN]=r53, [L_PAREN]=r53, [COMMA]=r53
|
|
204
|
+
[R_PAREN]=r54, [L_PAREN]=r54, [COMMA]=r54
|
|
205
|
+
[FROM]=r52, [COMMA]=r52, [SEMICOLON]=r52, [AS]=r52, [R_PAREN]=r52, [OR]=r52, [AND]=r52
|
|
206
|
+
[FROM]=s222
|
|
207
|
+
[SEMICOLON]=s223, [WHERE]=s224
|
|
208
|
+
[L_PAREN]=r87, [FROM]=r87, [COMMA]=r87, [SEMICOLON]=r87, [AS]=r87, [R_PAREN]=r87, [OR]=r87, [AND]=r87, [BETWEEN]=r87, [LIKE]=r87, [NOT]=r87, [IS]=r87, [PIPE]=r87, [AMPERSAND]=r87, [CARET]=r87, [L_SHIFT]=r87, [R_SHIFT]=r87
|
|
209
|
+
[SELECT]=s51, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, [L_PAREN]=s98, <ARGUMENT_LIST>=225, <VALUE_LIST>=226, <VALUE>=172, <SELECT_STATEMENT>=174, <BITWISE_OR_EXPRESSION>=175, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
210
|
+
[R_PAREN]=r53, [COMMA]=r53, [L_PAREN]=r53
|
|
211
|
+
[R_PAREN]=r54, [COMMA]=r54, [L_PAREN]=r54
|
|
212
|
+
[IDENTIFIER]=s227
|
|
213
|
+
[SEMICOLON]=s228
|
|
214
|
+
[SEMICOLON]=r15, [OR]=s229
|
|
215
|
+
[SEMICOLON]=r13, [WHERE]=r13
|
|
216
|
+
[SEMICOLON]=r14, [WHERE]=r14
|
|
217
|
+
[FROM]=r16, [COMMA]=r16, [SEMICOLON]=r16, [AS]=r16, [R_PAREN]=r16
|
|
218
|
+
[FROM]=r18, [COMMA]=r18, [SEMICOLON]=r18, [AS]=r18, [R_PAREN]=r18, [OR]=r18
|
|
219
|
+
[FROM]=r43, [COMMA]=s73, [SEMICOLON]=r43, [AS]=r43, [R_PAREN]=r43, [OR]=r43, [AND]=r43, [L_PAREN]=r46
|
|
220
|
+
[L_PAREN]=r59, [FROM]=r59, [COMMA]=r59, [SEMICOLON]=r59, [AS]=r59, [R_PAREN]=r59, [OR]=r59, [AND]=r59, [BETWEEN]=r59, [LIKE]=r59, [NOT]=r59, [IS]=r59, [PIPE]=r59
|
|
221
|
+
[L_PAREN]=r61, [FROM]=r61, [COMMA]=r61, [SEMICOLON]=r61, [AS]=r61, [R_PAREN]=r61, [OR]=r61, [AND]=r61, [BETWEEN]=r61, [LIKE]=r61, [NOT]=r61, [IS]=r61, [PIPE]=r61, [AMPERSAND]=r61
|
|
222
|
+
[L_PAREN]=r65, [FROM]=r65, [COMMA]=r65, [SEMICOLON]=r65, [AS]=r65, [R_PAREN]=r65, [OR]=r65, [AND]=r65, [BETWEEN]=r65, [LIKE]=r65, [NOT]=r65, [IS]=r65, [PIPE]=r65, [AMPERSAND]=r65, [CARET]=r65
|
|
223
|
+
[IDENTIFIER]=s117, [L_PAREN]=s118, <SOURCE>=230
|
|
224
|
+
[L_PAREN]=r6
|
|
225
|
+
[NOT]=s39, [TRUE]=s40, [FALSE]=s41, [UNKNOWN]=s42, [L_PAREN]=s43, [EQUALS]=s44, [NOT_EQUALS]=s45, [LESS_THAN]=s46, [GREATER_THAN]=s47, [LESS_THAN_OR_EQUALS]=s48, [GREATER_THAN_OR_EQUALS]=s49, [EXISTS]=s50, [SELECT]=s51, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, <CONDITION>=231, <BOOLEAN_TERM>=213, <BOOLEAN_FACTOR>=13, <BOOLEAN_TEST>=14, <BOOLEAN_PRIMARY>=15, <PREDICATE>=16, <COMPARISON_PREDICATE>=17, <BETWEEN_PREDICATE>=18, <IN_PREDICATE>=19, <LIKE_PREDICATE>=20, <NULL_PREDICATE>=21, <EXISTS_PREDICATE>=22, <VALUE>=23, <VALUE_LIST>=24, <SELECT_STATEMENT>=25, <BITWISE_OR_EXPRESSION>=26, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
226
|
+
[R_PAREN]=r89
|
|
227
|
+
[L_PAREN]=s209
|
|
228
|
+
[L_PAREN]=r92, [FROM]=r92, [COMMA]=r92, [SEMICOLON]=r92, [AS]=r92, [R_PAREN]=r92, [OR]=r92, [AND]=r92, [BETWEEN]=r92, [LIKE]=r92, [NOT]=r92, [IS]=r92, [PIPE]=r92, [AMPERSAND]=r92, [CARET]=r92, [L_SHIFT]=r92, [R_SHIFT]=r92
|
|
229
|
+
[EOF]=r7, [SELECT]=r7
|
|
230
|
+
[NOT]=s39, [TRUE]=s40, [FALSE]=s41, [UNKNOWN]=s42, [L_PAREN]=s43, [EQUALS]=s44, [NOT_EQUALS]=s45, [LESS_THAN]=s46, [GREATER_THAN]=s47, [LESS_THAN_OR_EQUALS]=s48, [GREATER_THAN_OR_EQUALS]=s49, [EXISTS]=s50, [SELECT]=s51, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, <CONDITION>=232, <BOOLEAN_TERM>=122, <BOOLEAN_FACTOR>=13, <BOOLEAN_TEST>=14, <BOOLEAN_PRIMARY>=15, <PREDICATE>=16, <COMPARISON_PREDICATE>=17, <BETWEEN_PREDICATE>=18, <IN_PREDICATE>=19, <LIKE_PREDICATE>=20, <NULL_PREDICATE>=21, <EXISTS_PREDICATE>=22, <VALUE>=23, <VALUE_LIST>=24, <SELECT_STATEMENT>=25, <BITWISE_OR_EXPRESSION>=26, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
231
|
+
[SEMICOLON]=s233, [WHERE]=s234
|
|
232
|
+
[SEMICOLON]=s235
|
|
233
|
+
[SEMICOLON]=r16
|
|
234
|
+
[R_PAREN]=r6
|
|
235
|
+
[NOT]=s39, [TRUE]=s40, [FALSE]=s41, [UNKNOWN]=s42, [L_PAREN]=s43, [EQUALS]=s44, [NOT_EQUALS]=s45, [LESS_THAN]=s46, [GREATER_THAN]=s47, [LESS_THAN_OR_EQUALS]=s48, [GREATER_THAN_OR_EQUALS]=s49, [EXISTS]=s50, [SELECT]=s51, [PLUS]=s52, [MINUS]=s53, [DOUBLE_PIPE]=s54, [STAR]=s55, [SLASH]=s56, [PERCENT]=s57, [TILDE]=s58, [NUMBER_LITERAL]=s59, [STRING_LITERAL]=s60, [NULL_LITERAL]=s61, [BOOLEAN_LITERAL]=s62, [IDENTIFIER]=s63, <CONDITION>=236, <BOOLEAN_TERM>=213, <BOOLEAN_FACTOR>=13, <BOOLEAN_TEST>=14, <BOOLEAN_PRIMARY>=15, <PREDICATE>=16, <COMPARISON_PREDICATE>=17, <BETWEEN_PREDICATE>=18, <IN_PREDICATE>=19, <LIKE_PREDICATE>=20, <NULL_PREDICATE>=21, <EXISTS_PREDICATE>=22, <VALUE>=23, <VALUE_LIST>=24, <SELECT_STATEMENT>=25, <BITWISE_OR_EXPRESSION>=26, <BITWISE_AND_EXPRESSION>=27, <BITWISE_XOR_EXPRESSION>=28, <SHIFT_LEFT_EXPRESSION>=29, <SHIFT_RIGHT_EXPRESSION>=30, <TERM_EXPRESSION>=31, <FACTOR_EXPRESSION>=32, <UNARY_EXPRESSION>=33, <PRIMARY_EXPRESSION>=34, <ENDPOINT_EXPRESSION>=35, <FUNCTION_CALL_EXPRESSION>=36, <GROUPING_EXPRESSION>=37, <COLUMN_REFERENCE>=38
|
|
236
|
+
[L_PAREN]=r7
|
|
237
|
+
[SEMICOLON]=s237
|
|
238
|
+
[R_PAREN]=r7
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scinorandex/sparse",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4",
|
|
4
4
|
"description": "Yet another parser generator",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|
|
7
|
-
"build": "tsc",
|
|
7
|
+
"build": "tsc -p tsconfig.build.json",
|
|
8
8
|
"watch": "tsc -w"
|
|
9
9
|
},
|
|
10
10
|
"bin": {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"license": "MIT",
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@types/minimist": "^1.2.5",
|
|
29
|
-
"@types/node": "^
|
|
29
|
+
"@types/node": "^26.0.0"
|
|
30
30
|
},
|
|
31
31
|
"resolutions": {},
|
|
32
32
|
"dependencies": {
|
package/src/cli.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#! /usr/bin/env node
|
|
2
2
|
import fs from "fs/promises";
|
|
3
|
-
import {
|
|
3
|
+
import { tryBuildProductions } from "./index";
|
|
4
4
|
import { generateStates } from "./generator";
|
|
5
5
|
import minimist from "minimist";
|
|
6
6
|
import path from "path";
|
package/src/generator.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { GrammarToken, Production } from "./grammarParser";
|
|
2
1
|
import { TableState } from "./parser";
|
|
2
|
+
import { GrammarToken, Production } from "./meta/common";
|
|
3
3
|
import { Result } from "./utils/Result";
|
|
4
4
|
|
|
5
5
|
const xContainsAllOfY = <T>(xs: Set<T>, ys: Set<T>) => [...ys].every((x) => xs.has(x));
|
|
@@ -9,7 +9,7 @@ const EOF_STRING = "[EOF]";
|
|
|
9
9
|
function computeFirstSets(allProductions: Production[]): Result<Map<string, Set<string>>> {
|
|
10
10
|
// Initialize the hashmap
|
|
11
11
|
const ret = new Map<string, Set<string>>();
|
|
12
|
-
for (const production of allProductions) ret.set(production.
|
|
12
|
+
for (const production of allProductions) ret.set(production.identifier, new Set());
|
|
13
13
|
|
|
14
14
|
// Keep iterating through all productions until no edits are made
|
|
15
15
|
let wasEdited = true;
|
|
@@ -17,16 +17,16 @@ function computeFirstSets(allProductions: Production[]): Result<Map<string, Set<
|
|
|
17
17
|
wasEdited = false;
|
|
18
18
|
|
|
19
19
|
for (const production of allProductions) {
|
|
20
|
-
const toBeModified = ret.get(production.
|
|
20
|
+
const toBeModified = ret.get(production.identifier)!;
|
|
21
21
|
|
|
22
22
|
const firstRhsToken = production.rhs[0];
|
|
23
23
|
if (firstRhsToken.type === "variable") {
|
|
24
|
-
const add = ret.get(firstRhsToken.
|
|
24
|
+
const add = ret.get(firstRhsToken.identifier);
|
|
25
25
|
|
|
26
26
|
if (add == null) {
|
|
27
27
|
return {
|
|
28
28
|
success: false,
|
|
29
|
-
reason: `Variable "${firstRhsToken.
|
|
29
|
+
reason: `Variable "${firstRhsToken.identifier}" doesn't have a corresponding left hand side`,
|
|
30
30
|
token: firstRhsToken.token,
|
|
31
31
|
};
|
|
32
32
|
}
|
|
@@ -35,13 +35,13 @@ function computeFirstSets(allProductions: Production[]): Result<Map<string, Set<
|
|
|
35
35
|
// if not then add them and set wasEdited to true so we iterate one more time
|
|
36
36
|
if (!xContainsAllOfY(toBeModified, add)) {
|
|
37
37
|
wasEdited = true;
|
|
38
|
-
ret.set(production.
|
|
38
|
+
ret.set(production.identifier, new Set([...toBeModified, ...add]));
|
|
39
39
|
}
|
|
40
40
|
} else if (firstRhsToken.type === "terminal") {
|
|
41
41
|
// add terminal to toBeModified and set wasEdited to true
|
|
42
|
-
if (toBeModified.has(firstRhsToken.
|
|
42
|
+
if (toBeModified.has(firstRhsToken.identifier) == false) {
|
|
43
43
|
wasEdited = true;
|
|
44
|
-
ret.set(production.
|
|
44
|
+
ret.set(production.identifier, new Set([...toBeModified, firstRhsToken.identifier]));
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
}
|
|
@@ -51,7 +51,7 @@ function computeFirstSets(allProductions: Production[]): Result<Map<string, Set<
|
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
function computeFollowSets(
|
|
54
|
-
allProductions: Production[]
|
|
54
|
+
allProductions: Production[],
|
|
55
55
|
): Result<{ firstSets: Map<string, Set<string>>; followSets: Map<string, Set<string>> }> {
|
|
56
56
|
const firstSetsResult = computeFirstSets(allProductions);
|
|
57
57
|
if (firstSetsResult.success === false) return firstSetsResult;
|
|
@@ -60,8 +60,8 @@ function computeFollowSets(
|
|
|
60
60
|
|
|
61
61
|
// create a list of follow sets and add EOF to the initial production
|
|
62
62
|
const ret = new Map<string, Set<string>>();
|
|
63
|
-
for (const production of allProductions) ret.set(production.
|
|
64
|
-
ret.get(allProductions[0].
|
|
63
|
+
for (const production of allProductions) ret.set(production.identifier, new Set());
|
|
64
|
+
ret.get(allProductions[0].identifier)!.add(EOF_STRING);
|
|
65
65
|
|
|
66
66
|
let wasEdited = true;
|
|
67
67
|
while (wasEdited) {
|
|
@@ -75,11 +75,11 @@ function computeFollowSets(
|
|
|
75
75
|
for (let i = 0; i < rhs.length; i++) {
|
|
76
76
|
const currentRhsToken = rhs[i];
|
|
77
77
|
|
|
78
|
-
if (currentRhsToken.type === "variable" && currentRhsToken.
|
|
78
|
+
if (currentRhsToken.type === "variable" && currentRhsToken.identifier === variable) {
|
|
79
79
|
if (i === rhs.length - 1) {
|
|
80
80
|
// we are at the end of rhs, so whatever is in currentProduction
|
|
81
81
|
// we need to also need to add to variable
|
|
82
|
-
const toBeAdded = ret.get(currentProduction.
|
|
82
|
+
const toBeAdded = ret.get(currentProduction.identifier)!;
|
|
83
83
|
const receiver = ret.get(variable)!;
|
|
84
84
|
if (!xContainsAllOfY(receiver, toBeAdded)) {
|
|
85
85
|
wasEdited = true;
|
|
@@ -91,18 +91,18 @@ function computeFollowSets(
|
|
|
91
91
|
if (nextRhsToken.type === "terminal") {
|
|
92
92
|
// next token is a terminal, check if its in existng follow set and add if it doesn't exist
|
|
93
93
|
const existing = ret.get(variable)!;
|
|
94
|
-
if (!existing.has(nextRhsToken.
|
|
94
|
+
if (!existing.has(nextRhsToken.identifier)) {
|
|
95
95
|
wasEdited = true;
|
|
96
|
-
ret.set(variable, new Set([...existing, nextRhsToken.
|
|
96
|
+
ret.set(variable, new Set([...existing, nextRhsToken.identifier]));
|
|
97
97
|
}
|
|
98
98
|
} else if (nextRhsToken.type === "variable") {
|
|
99
99
|
// next token is a variable, get the first set of the variable
|
|
100
100
|
// check if it's not in the followset and add if not
|
|
101
|
-
const firstSet = firstSets.get(nextRhsToken.
|
|
101
|
+
const firstSet = firstSets.get(nextRhsToken.identifier);
|
|
102
102
|
if (firstSet == null)
|
|
103
103
|
return {
|
|
104
104
|
success: false,
|
|
105
|
-
reason: `Variable "${nextRhsToken.
|
|
105
|
+
reason: `Variable "${nextRhsToken.identifier}" doesn't have a corresponding left hand side`,
|
|
106
106
|
token: nextRhsToken.token,
|
|
107
107
|
};
|
|
108
108
|
|
|
@@ -134,27 +134,28 @@ export const generateStates = (productions: Production[]): Result<GeneratorResul
|
|
|
134
134
|
// The implementation of this function ensures that the table is an LR(1) parsing table
|
|
135
135
|
const determineNextLookAhead = (
|
|
136
136
|
lhs: GrammarToken,
|
|
137
|
-
|
|
137
|
+
identifier: string,
|
|
138
|
+
array: { type: "terminal" | "variable"; token: GrammarToken; identifier: string }[],
|
|
138
139
|
): Result<string[]> => {
|
|
139
140
|
if (array.length === 0) {
|
|
140
|
-
const followSet = followSets.get(
|
|
141
|
+
const followSet = followSets.get(identifier);
|
|
141
142
|
if (followSet != undefined) return { success: true, value: [...followSet] };
|
|
142
143
|
|
|
143
144
|
return {
|
|
144
145
|
success: false,
|
|
145
|
-
reason: `Variable ${
|
|
146
|
+
reason: `Variable ${identifier} not present in computed follow sets`,
|
|
146
147
|
token: lhs,
|
|
147
148
|
};
|
|
148
149
|
} else {
|
|
149
150
|
const next = array[0];
|
|
150
151
|
|
|
151
|
-
if (next.type === "terminal") return { success: true, value: [next.
|
|
152
|
-
const testing = firstSets.get(next.
|
|
152
|
+
if (next.type === "terminal") return { success: true, value: [next.identifier] };
|
|
153
|
+
const testing = firstSets.get(next.identifier);
|
|
153
154
|
if (testing !== undefined) return { success: true, value: [...testing] };
|
|
154
155
|
|
|
155
156
|
return {
|
|
156
157
|
success: false,
|
|
157
|
-
reason: `Variable ${next.
|
|
158
|
+
reason: `Variable ${next.identifier} not present in computed first sets`,
|
|
158
159
|
token: next.token,
|
|
159
160
|
};
|
|
160
161
|
}
|
|
@@ -163,7 +164,14 @@ export const generateStates = (productions: Production[]): Result<GeneratorResul
|
|
|
163
164
|
// This fnuction creates the initial item set based on the
|
|
164
165
|
// production provided. It creating the initial item and expands it
|
|
165
166
|
function generateInitialItemSet(production: Production) {
|
|
166
|
-
const initialItem = {
|
|
167
|
+
const initialItem = {
|
|
168
|
+
lhs: production.lhs,
|
|
169
|
+
identifier: production.identifier,
|
|
170
|
+
rhs: production.rhs,
|
|
171
|
+
dot: 0,
|
|
172
|
+
lookahead: [EOF_STRING],
|
|
173
|
+
} as Item;
|
|
174
|
+
|
|
167
175
|
return expandItemSet([initialItem]);
|
|
168
176
|
}
|
|
169
177
|
|
|
@@ -182,19 +190,25 @@ export const generateStates = (productions: Production[]): Result<GeneratorResul
|
|
|
182
190
|
|
|
183
191
|
if (after.type === "variable") {
|
|
184
192
|
// Find prodctions whose left hand side is the symbol after the dot
|
|
185
|
-
const newProductions = productions.filter((p) => p.
|
|
193
|
+
const newProductions = productions.filter((p) => p.identifier === after.identifier);
|
|
186
194
|
|
|
187
195
|
// Compute the lookahead for the new productions to be added to the item set
|
|
188
196
|
const rest = currentItem.rhs.slice(currentItem.dot + 1);
|
|
189
197
|
|
|
190
|
-
const lookaheadResult = determineNextLookAhead(currentItem.lhs, rest);
|
|
198
|
+
const lookaheadResult = determineNextLookAhead(currentItem.lhs, currentItem.identifier, rest);
|
|
191
199
|
if (lookaheadResult.success === false) return lookaheadResult;
|
|
192
200
|
const lookahead = lookaheadResult.value;
|
|
193
201
|
|
|
194
202
|
for (const newProduction of newProductions) {
|
|
195
203
|
// Create the new item and check if it already exists in the item set
|
|
196
204
|
// If it doesn't exist, add it to the item set and the queue of unprocessed items
|
|
197
|
-
const newItem = {
|
|
205
|
+
const newItem = {
|
|
206
|
+
lhs: newProduction.lhs,
|
|
207
|
+
identifier: newProduction.identifier,
|
|
208
|
+
rhs: newProduction.rhs,
|
|
209
|
+
dot: 0,
|
|
210
|
+
lookahead,
|
|
211
|
+
} as Item;
|
|
198
212
|
const encoding = JSON.stringify(newItem);
|
|
199
213
|
|
|
200
214
|
if (itemSet.some((i) => JSON.stringify(i) === encoding) == false) {
|
|
@@ -247,7 +261,7 @@ export const generateStates = (productions: Production[]): Result<GeneratorResul
|
|
|
247
261
|
const productionToReduceTo = productions
|
|
248
262
|
.map((p, i) => [p, i] as const)
|
|
249
263
|
.find(
|
|
250
|
-
([p, _]) => JSON.stringify(p.rhs) === JSON.stringify(item.rhs) && p.
|
|
264
|
+
([p, _]) => JSON.stringify(p.rhs) === JSON.stringify(item.rhs) && p.identifier === item.identifier,
|
|
251
265
|
)![1];
|
|
252
266
|
|
|
253
267
|
// for each lookahead in the item, create a new entry in the action table to reduce to the production found
|
|
@@ -266,14 +280,13 @@ export const generateStates = (productions: Production[]): Result<GeneratorResul
|
|
|
266
280
|
if (nextSymbol.type === "variable") {
|
|
267
281
|
// Next symbol is a variable so we need to add it to the GOTO table
|
|
268
282
|
// Check if the GOTO table already has an entry for the next symbola and either push or create the array
|
|
269
|
-
if (nextStates_Goto.has(nextSymbol.
|
|
270
|
-
else nextStates_Goto.set(nextSymbol.
|
|
283
|
+
if (nextStates_Goto.has(nextSymbol.identifier)) nextStates_Goto.get(nextSymbol.identifier)!.push(newItem);
|
|
284
|
+
else nextStates_Goto.set(nextSymbol.identifier, [newItem]);
|
|
271
285
|
} else if (nextSymbol.type === "terminal") {
|
|
272
286
|
// Next symbol is a terminal so we need to add it to the SHIFT table
|
|
273
287
|
// Check if the SHIFT table already has an entry for the next symbola and either push or create the array
|
|
274
|
-
if (nextStates_Shift.has(nextSymbol.
|
|
275
|
-
|
|
276
|
-
else nextStates_Shift.set(nextSymbol.token.lexeme, [newItem]);
|
|
288
|
+
if (nextStates_Shift.has(nextSymbol.identifier)) nextStates_Shift.get(nextSymbol.identifier)!.push(newItem);
|
|
289
|
+
else nextStates_Shift.set(nextSymbol.identifier, [newItem]);
|
|
277
290
|
}
|
|
278
291
|
}
|
|
279
292
|
|
|
@@ -367,7 +380,7 @@ export class GeneratorResult {
|
|
|
367
380
|
constructor(
|
|
368
381
|
public readonly states: State[],
|
|
369
382
|
public readonly ActionTable: Map<string, { action: "shift" | "reduce"; value: number }>[],
|
|
370
|
-
public readonly GotoTable: Map<string, number>[]
|
|
383
|
+
public readonly GotoTable: Map<string, number>[],
|
|
371
384
|
) {}
|
|
372
385
|
|
|
373
386
|
toTable(): string {
|
|
@@ -382,6 +395,7 @@ export class GeneratorResult {
|
|
|
382
395
|
toStates(): TableState[] {
|
|
383
396
|
return this.ActionTable.map((actions, idx) => {
|
|
384
397
|
const tableState = new TableState();
|
|
398
|
+
|
|
385
399
|
for (const [k, { action, value }] of actions.entries())
|
|
386
400
|
tableState.actions.set(k, { type: action === "reduce" ? "reduce" : "shift", value });
|
|
387
401
|
|
|
@@ -391,4 +405,8 @@ export class GeneratorResult {
|
|
|
391
405
|
return tableState;
|
|
392
406
|
});
|
|
393
407
|
}
|
|
408
|
+
|
|
409
|
+
toJSObject() {
|
|
410
|
+
return this.toStates().map((tableState) => tableState.toJSObject());
|
|
411
|
+
}
|
|
394
412
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { GeneratorResult, generateStates } from "./generator";
|
|
2
|
-
export {
|
|
2
|
+
export { buildProductions, tryBuildProductions } from "./meta/selfhosted";
|
|
3
3
|
export { Result } from "./utils/Result";
|
|
4
4
|
export {
|
|
5
5
|
ParserRecoveryFunction,
|
|
@@ -9,4 +9,5 @@ export {
|
|
|
9
9
|
ParserResult,
|
|
10
10
|
ParserError,
|
|
11
11
|
} from "./parser";
|
|
12
|
-
export { buildStates } from "./
|
|
12
|
+
export { buildStates } from "./table/selfhosted";
|
|
13
|
+
export { Production } from "./meta/common";
|