@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.
Files changed (64) hide show
  1. package/README.md +2 -2
  2. package/dist/cli.js +2 -2
  3. package/dist/cli.js.map +1 -1
  4. package/dist/generator.d.ts +4 -1
  5. package/dist/generator.js +47 -32
  6. package/dist/generator.js.map +1 -1
  7. package/dist/index.d.ts +3 -2
  8. package/dist/index.js +5 -5
  9. package/dist/index.js.map +1 -1
  10. package/dist/meta/common.d.ts +57 -0
  11. package/dist/meta/common.js +62 -0
  12. package/dist/meta/common.js.map +1 -0
  13. package/dist/meta/handwritten.d.ts +12 -0
  14. package/dist/{grammarParser.js → meta/handwritten.js} +24 -24
  15. package/dist/meta/handwritten.js.map +1 -0
  16. package/dist/meta/selfhosted.d.ts +23 -0
  17. package/dist/meta/selfhosted.js +206 -0
  18. package/dist/meta/selfhosted.js.map +1 -0
  19. package/dist/meta/states.d.ts +1580 -0
  20. package/dist/meta/states.js +1493 -0
  21. package/dist/meta/states.js.map +1 -0
  22. package/dist/parser.d.ts +16 -5
  23. package/dist/parser.js +25 -7
  24. package/dist/parser.js.map +1 -1
  25. package/dist/{tableParser.d.ts → table/handwritten.d.ts} +1 -1
  26. package/dist/{tableParser.js → table/handwritten.js} +2 -2
  27. package/dist/table/handwritten.js.map +1 -0
  28. package/dist/table/selfhosted.d.ts +2 -0
  29. package/dist/table/selfhosted.js +65 -0
  30. package/dist/table/selfhosted.js.map +1 -0
  31. package/dist/table/states.d.ts +592 -0
  32. package/dist/table/states.js +593 -0
  33. package/dist/table/states.js.map +1 -0
  34. package/dist/utils/Result.d.ts +1 -1
  35. package/dist/utils/errorWindowBuilder.d.ts +1 -1
  36. package/example/LoLang/example.ts +14 -7
  37. package/example/complicated/grammar.txt +37 -0
  38. package/example/math/example.ts +1 -1
  39. package/example/selfhosted/01-meta-grammar.txt +10 -0
  40. package/example/selfhosted/02-table-grammar.txt +6 -0
  41. package/example/selfhosted/codegen-meta.ts +1489 -0
  42. package/example/selfhosted/codegen-table.ts +589 -0
  43. package/example/selfhosted/example.ts +39 -0
  44. package/example/sql/grammar.txt +50 -0
  45. package/example/sql/table.txt +238 -0
  46. package/package.json +3 -3
  47. package/src/cli.ts +1 -1
  48. package/src/generator.ts +52 -34
  49. package/src/index.ts +3 -2
  50. package/src/meta/common.ts +74 -0
  51. package/src/{grammarParser.ts → meta/handwritten.ts} +17 -21
  52. package/src/meta/selfhosted.ts +272 -0
  53. package/src/meta/states.ts +1489 -0
  54. package/src/parser.ts +53 -19
  55. package/src/{tableParser.ts → table/handwritten.ts} +5 -5
  56. package/src/table/selfhosted.ts +67 -0
  57. package/src/table/states.ts +589 -0
  58. package/src/utils/Result.ts +1 -1
  59. package/src/utils/errorWindowBuilder.ts +1 -1
  60. package/tsconfig.build.json +30 -0
  61. package/tsconfig.json +6 -6
  62. package/dist/grammarParser.d.ts +0 -27
  63. package/dist/grammarParser.js.map +0 -1
  64. 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.2",
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": "^22.15.19"
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 { GrammarToken, tryBuildProductions } from "./grammarParser";
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.lhs.lexeme, new Set());
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.lhs.lexeme)!;
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.token.lexeme);
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.token.lexeme}" doesn't have a corresponding left hand side`,
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.lhs.lexeme, new Set([...toBeModified, ...add]));
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.token.lexeme) == false) {
42
+ if (toBeModified.has(firstRhsToken.identifier) == false) {
43
43
  wasEdited = true;
44
- ret.set(production.lhs.lexeme, new Set([...toBeModified, firstRhsToken.token.lexeme]));
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.lhs.lexeme, new Set());
64
- ret.get(allProductions[0].lhs.lexeme)!.add(EOF_STRING);
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.token.lexeme === variable) {
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.lhs.lexeme)!;
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.token.lexeme)) {
94
+ if (!existing.has(nextRhsToken.identifier)) {
95
95
  wasEdited = true;
96
- ret.set(variable, new Set([...existing, nextRhsToken.token.lexeme]));
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.token.lexeme);
101
+ const firstSet = firstSets.get(nextRhsToken.identifier);
102
102
  if (firstSet == null)
103
103
  return {
104
104
  success: false,
105
- reason: `Variable "${nextRhsToken.token.lexeme}" doesn't have a corresponding left hand side`,
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
- array: { type: "terminal" | "variable"; token: GrammarToken }[]
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(lhs.lexeme);
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 ${lhs.lexeme} not present in computed follow sets`,
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.token.lexeme] };
152
- const testing = firstSets.get(next.token.lexeme);
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.token.lexeme} not present in computed first sets`,
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 = { lhs: production.lhs, rhs: production.rhs, dot: 0, lookahead: [EOF_STRING] } as Item;
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.lhs.lexeme === after.token.lexeme);
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 = { lhs: newProduction.lhs, rhs: newProduction.rhs, dot: 0, lookahead } as Item;
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.lhs.lexeme === item.lhs.lexeme
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.token.lexeme)) nextStates_Goto.get(nextSymbol.token.lexeme)!.push(newItem);
270
- else nextStates_Goto.set(nextSymbol.token.lexeme, [newItem]);
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.token.lexeme))
275
- nextStates_Shift.get(nextSymbol.token.lexeme)!.push(newItem);
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 { Production, buildProductions, tryBuildProductions } from "./grammarParser";
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 "./tableParser";
12
+ export { buildStates } from "./table/selfhosted";
13
+ export { Production } from "./meta/common";