@scinorandex/sparse 0.0.3 → 0.0.5

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.
@@ -51,7 +51,9 @@ export declare enum GrammarTokenType {
51
51
  EQUALS = 12,
52
52
  COMMA = 13,
53
53
  EOF = 14,
54
- PRODUCTION_NAME = 15,
55
- TOKEN_NAME = 16
54
+ SINGLE_LINE_COMMENT = 15,
55
+ MULTI_LINE_COMMENT = 16,
56
+ PRODUCTION_NAME = 17,
57
+ TOKEN_NAME = 18
56
58
  }
57
59
  export type GrammarToken = Token<GrammarTokenType, GrammarTokenMetadata>;
@@ -56,7 +56,9 @@ var GrammarTokenType;
56
56
  GrammarTokenType[GrammarTokenType["EQUALS"] = 12] = "EQUALS";
57
57
  GrammarTokenType[GrammarTokenType["COMMA"] = 13] = "COMMA";
58
58
  GrammarTokenType[GrammarTokenType["EOF"] = 14] = "EOF";
59
- GrammarTokenType[GrammarTokenType["PRODUCTION_NAME"] = 15] = "PRODUCTION_NAME";
60
- GrammarTokenType[GrammarTokenType["TOKEN_NAME"] = 16] = "TOKEN_NAME";
59
+ GrammarTokenType[GrammarTokenType["SINGLE_LINE_COMMENT"] = 15] = "SINGLE_LINE_COMMENT";
60
+ GrammarTokenType[GrammarTokenType["MULTI_LINE_COMMENT"] = 16] = "MULTI_LINE_COMMENT";
61
+ GrammarTokenType[GrammarTokenType["PRODUCTION_NAME"] = 17] = "PRODUCTION_NAME";
62
+ GrammarTokenType[GrammarTokenType["TOKEN_NAME"] = 18] = "TOKEN_NAME";
61
63
  })(GrammarTokenType || (exports.GrammarTokenType = GrammarTokenType = {}));
62
64
  //# sourceMappingURL=common.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/meta/common.ts"],"names":[],"mappings":";;;AAAA,4CAAwD;AAUxD,MAAM,oBAAoB,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAgB,EAAE,EAAE;IAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxC,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAC1B,KAA8C,EACC,EAAE;IACjD,OAAO,IAAI,YAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,mBAAY,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;AAC7F,CAAC,CAAC;AAEK,MAAM,kBAAkB,GAAG,CAAC,IAAgB,EAAE,EAAE;IACrD,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,uBAAuB,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IACrE,OAAO;QACL,GAAG,EAAE,oBAAoB,CAAC,GAAG,CAAC;QAC9B,UAAU;QACV,IAAI;QACJ,uBAAuB;QACvB,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACnD,IAAI;YACJ,KAAK,EAAE,oBAAoB,CAAC,KAAK,CAAC;YAClC,UAAU;YACV,IAAI;SACL,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC,CAAC;AAdW,QAAA,kBAAkB,sBAc7B;AAEK,MAAM,iBAAiB,GAAG,CAAC,UAAiD,EAAc,EAAE;IACjG,OAAO;QACL,GAAG,EAAE,mBAAmB,CAAC,UAAU,CAAC,GAAG,CAAC;QACxC,UAAU,EAAE,UAAU,CAAC,UAAU;QACjC,uBAAuB,EAAE,UAAU,CAAC,uBAAuB;QAC3D,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YAClD,IAAI;YACJ,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC;YACjC,UAAU,EAAE,KAAK,CAAC,MAAM;YACxB,IAAI;SACL,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC,CAAC;AAbW,QAAA,iBAAiB,qBAa5B;AAGF,IAAY,gBAmBX;AAnBD,WAAY,gBAAgB;IAC1B,mEAAU,CAAA;IACV,6DAAO,CAAA;IACP,6DAAO,CAAA;IACP,iEAAS,CAAA;IACT,iEAAS,CAAA;IACT,6DAAO,CAAA;IACP,6DAAO,CAAA;IACP,uDAAI,CAAA;IACJ,yEAAa,CAAA;IACb,yDAAK,CAAA;IACL,kEAAS,CAAA;IACT,4DAAM,CAAA;IACN,4DAAM,CAAA;IACN,0DAAK,CAAA;IACL,sDAAG,CAAA;IAEH,8EAAe,CAAA;IACf,oEAAU,CAAA;AACZ,CAAC,EAnBW,gBAAgB,gCAAhB,gBAAgB,QAmB3B"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/meta/common.ts"],"names":[],"mappings":";;;AAAA,4CAAwD;AAUxD,MAAM,oBAAoB,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAgB,EAAE,EAAE;IAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxC,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAC1B,KAA8C,EACC,EAAE;IACjD,OAAO,IAAI,YAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,mBAAY,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;AAC7F,CAAC,CAAC;AAEK,MAAM,kBAAkB,GAAG,CAAC,IAAgB,EAAE,EAAE;IACrD,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,uBAAuB,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IACrE,OAAO;QACL,GAAG,EAAE,oBAAoB,CAAC,GAAG,CAAC;QAC9B,UAAU;QACV,IAAI;QACJ,uBAAuB;QACvB,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACnD,IAAI;YACJ,KAAK,EAAE,oBAAoB,CAAC,KAAK,CAAC;YAClC,UAAU;YACV,IAAI;SACL,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC,CAAC;AAdW,QAAA,kBAAkB,sBAc7B;AAEK,MAAM,iBAAiB,GAAG,CAAC,UAAiD,EAAc,EAAE;IACjG,OAAO;QACL,GAAG,EAAE,mBAAmB,CAAC,UAAU,CAAC,GAAG,CAAC;QACxC,UAAU,EAAE,UAAU,CAAC,UAAU;QACjC,uBAAuB,EAAE,UAAU,CAAC,uBAAuB;QAC3D,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YAClD,IAAI;YACJ,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC;YACjC,UAAU,EAAE,KAAK,CAAC,MAAM;YACxB,IAAI;SACL,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC,CAAC;AAbW,QAAA,iBAAiB,qBAa5B;AAGF,IAAY,gBAqBX;AArBD,WAAY,gBAAgB;IAC1B,mEAAU,CAAA;IACV,6DAAO,CAAA;IACP,6DAAO,CAAA;IACP,iEAAS,CAAA;IACT,iEAAS,CAAA;IACT,6DAAO,CAAA;IACP,6DAAO,CAAA;IACP,uDAAI,CAAA;IACJ,yEAAa,CAAA;IACb,yDAAK,CAAA;IACL,kEAAS,CAAA;IACT,4DAAM,CAAA;IACN,4DAAM,CAAA;IACN,0DAAK,CAAA;IACL,sDAAG,CAAA;IACH,sFAAmB,CAAA;IACnB,oFAAkB,CAAA;IAElB,8EAAe,CAAA;IACf,oEAAU,CAAA;AACZ,CAAC,EArBW,gBAAgB,gCAAhB,gBAAgB,QAqB3B"}
@@ -9,6 +9,7 @@ const common_1 = require("./common");
9
9
  exports.grammarLexerGenerator = new slex_1.Slex({
10
10
  EOF_TYPE: common_1.GrammarTokenType.EOF,
11
11
  isHigherPrecedence: () => false,
12
+ ignoreTokens: [common_1.GrammarTokenType.SINGLE_LINE_COMMENT, common_1.GrammarTokenType.MULTI_LINE_COMMENT],
12
13
  });
13
14
  exports.grammarLexerGenerator.addRule("lowercase", "a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z");
14
15
  exports.grammarLexerGenerator.addRule("uppercase", "A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z");
@@ -29,6 +30,8 @@ exports.grammarLexerGenerator.addRule("equals", "$=", common_1.GrammarTokenType.
29
30
  exports.grammarLexerGenerator.addRule("comma", "$,", common_1.GrammarTokenType.COMMA);
30
31
  exports.grammarLexerGenerator.addRule("question_mark", "$?", common_1.GrammarTokenType.QUESTION_MARK);
31
32
  exports.grammarLexerGenerator.addRule("number", "(${digit})+", common_1.GrammarTokenType.NUMBER);
33
+ exports.grammarLexerGenerator.addRule("single_line_comment", "$/$/(($\n)!)*", common_1.GrammarTokenType.SINGLE_LINE_COMMENT);
34
+ exports.grammarLexerGenerator.addRule("multi_line_comment", "$/$*(($*)!|($*($/)!))*$*$/", common_1.GrammarTokenType.MULTI_LINE_COMMENT);
32
35
  class BaseNode {
33
36
  }
34
37
  exports.BaseNode = BaseNode;
@@ -97,7 +100,7 @@ function expandProduction(production) {
97
100
  const newProductions = variables.map((variable) => {
98
101
  return new ProductionNode(production.lhs, new ListNode([
99
102
  ...beforeItems,
100
- new TokenNode("variable", new ListNode([variable]), item.name),
103
+ new TokenNode(item.type, new ListNode([variable]), item.name),
101
104
  ]), production.originalProductionIndex, production.name);
102
105
  });
103
106
  return newProductions.flatMap((prod) => expandProduction(prod));
@@ -1 +1 @@
1
- {"version":3,"file":"selfhosted.js","sourceRoot":"","sources":["../../src/meta/selfhosted.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"selfhosted.js","sourceRoot":"","sources":["../../src/meta/selfhosted.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  <S>: <PROGRAM>;
2
2
  <PROGRAM>: <EXPRESSION> [EOF];
3
3
  <PROGRAM>: [EOF];
4
+
5
+ // Begin parsing arithmetic expressions
4
6
  <EXPRESSION>: <TERM_EXPRESSION>;
5
7
  <TERM_EXPRESSION>: <FACTOR_EXPRESSION> [PLUS] <TERM_EXPRESSION>;
6
8
  <TERM_EXPRESSION>: <FACTOR_EXPRESSION> [MINUS] <TERM_EXPRESSION>;
@@ -8,4 +10,11 @@
8
10
  <FACTOR_EXPRESSION>: <ENDPOINT> [STAR] <FACTOR_EXPRESSION>;
9
11
  <FACTOR_EXPRESSION>: <ENDPOINT> [SLASH] <FACTOR_EXPRESSION>;
10
12
  <FACTOR_EXPRESSION>: <ENDPOINT>;
11
- <ENDPOINT>: [NUMBER];
13
+
14
+ /**
15
+ * Right now it only supports a single type of number,
16
+ * but this can be implemented in many ways by the lexer.
17
+ * For example, the lexer could return both a hex constant
18
+ * or decimal constant using the same token type.
19
+ */
20
+ <ENDPOINT>: [NUMBER];
@@ -0,0 +1,50 @@
1
+ <S>: <PROGRAM: program>;
2
+ <PROGRAM: program>: (<STATEMENTS: statements>)? [EOF];
3
+ <STATEMENTS: statements>: <STATEMENT: stmt> (<STATEMENTS: rest>)?;
4
+
5
+ <STATEMENT: statement>: <SELECT_STATEMENT: stmt>;
6
+
7
+ <SELECT_STATEMENT: select_statement>: [SELECT] <TARGETS: targets> [FROM] <SOURCE: source> ([WHERE] <CONDITION: where_clause>)? [SEMICOLON];
8
+ <TARGETS: targets>: <TARGET: target> ([COMMA] <TARGETS: rest>)?;
9
+ <TARGET: target>: <CONDITION: expr> ([AS] [IDENTIFIER: alias])?;
10
+ <SOURCE: table_source_direct>: [IDENTIFIER: one] ([DOT] [IDENTIFIER: two])?;
11
+ <SOURCE: table_source_subquery>: [L_PAREN] <SELECT_STATEMENT: select_statement> [R_PAREN];
12
+
13
+ <CONDITION: boolean_binary>: <BOOLEAN_TERM: term> ([OR] <CONDITION: rest>)?;
14
+ <BOOLEAN_TERM: boolean_binary>: <BOOLEAN_FACTOR: factor> ([AND] <BOOLEAN_TERM: rest>)?;
15
+ <BOOLEAN_FACTOR: boolean_unary>: ([NOT: not])? <BOOLEAN_TEST: test>;
16
+ <BOOLEAN_TEST: boolean_test>: <BOOLEAN_PRIMARY: primary> ([IS] ([NOT: not])? [TRUE | FALSE | UNKNOWN: value])?;
17
+ <BOOLEAN_PRIMARY: boolean_primary>: <PREDICATE: predicate>;
18
+ <BOOLEAN_PRIMARY: boolean_grouped>: [L_PAREN] <CONDITION: condition> [R_PAREN];
19
+
20
+ <PREDICATE: predicate>: <COMPARISON_PREDICATE | BETWEEN_PREDICATE | IN_PREDICATE | LIKE_PREDICATE | NULL_PREDICATE | EXISTS_PREDICATE: predicate>;
21
+ <COMPARISON_PREDICATE: comparison_predicate>:
22
+ <VALUE: left> ([EQUALS | NOT_EQUALS | LESS_THAN | GREATER_THAN | LESS_THAN_OR_EQUALS | GREATER_THAN_OR_EQUALS: op] <VALUE: right>)?;
23
+ <BETWEEN_PREDICATE: between_predicate>: <VALUE: left> [BETWEEN] <VALUE: lower> [AND] <VALUE: upper>;
24
+
25
+ <IN_PREDICATE: in_predicate>: <VALUE: left> [IN] [L_PAREN] <VALUE_LIST | SELECT_STATEMENT: values> [R_PAREN];
26
+ <VALUE_LIST: value_list>: <VALUE: value> ([COMMA] <VALUE_LIST: rest>)?;
27
+
28
+ <LIKE_PREDICATE: like_predicate>: <VALUE: left> ([NOT: not])? [LIKE] <VALUE: right>;
29
+ <NULL_PREDICATE: null_predicate>: <VALUE: left> [IS] ([NOT: not])? [NULL];
30
+ <EXISTS_PREDICATE: exists_predicate>: [EXISTS] [L_PAREN] <SELECT_STATEMENT: select_statement> [R_PAREN];
31
+
32
+ <VALUE: value_vector>: [L_PAREN] <VALUE_LIST | SELECT_STATEMENT: values> [R_PAREN];
33
+ <VALUE: value_expression>: <BITWISE_OR_EXPRESSION: left>;
34
+
35
+ <BITWISE_OR_EXPRESSION: binary_expr>: <BITWISE_AND_EXPRESSION: left> ([PIPE: op] <BITWISE_OR_EXPRESSION: right>)?;
36
+ <BITWISE_AND_EXPRESSION: binary_expr>: <BITWISE_XOR_EXPRESSION: left> ([AMPERSAND: op] <BITWISE_AND_EXPRESSION: right>)?;
37
+ <BITWISE_XOR_EXPRESSION: binary_expr>: <SHIFT_LEFT_EXPRESSION: left> ([CARET: op] <BITWISE_XOR_EXPRESSION: right>)?;
38
+ <SHIFT_LEFT_EXPRESSION: binary_expr>: <SHIFT_RIGHT_EXPRESSION: left> ([L_SHIFT: op] <SHIFT_RIGHT_EXPRESSION: right>)?;
39
+ <SHIFT_RIGHT_EXPRESSION: binary_expr>: <TERM_EXPRESSION: left> ([R_SHIFT: op] <TERM_EXPRESSION: right>)?;
40
+ <TERM_EXPRESSION: binary_expr>: <FACTOR_EXPRESSION: left> ([PLUS | MINUS | DOUBLE_PIPE: op] <TERM_EXPRESSION: right>)?;
41
+ <FACTOR_EXPRESSION: binary_expr>: <UNARY_EXPRESSION: left> ([STAR | SLASH | PERCENT: op] <FACTOR_EXPRESSION: right>)?;
42
+ <UNARY_EXPRESSION: unary_expr>: ([PLUS | MINUS | TILDE: op])? <PRIMARY_EXPRESSION: primary_expr>;
43
+ <PRIMARY_EXPRESSION: primary_expr>: <ENDPOINT_EXPRESSION | FUNCTION_CALL_EXPRESSION | GROUPING_EXPRESSION: expr>;
44
+ <ENDPOINT_EXPRESSION: column_reference_expression>: <COLUMN_REFERENCE: column_ref>;
45
+ <ENDPOINT_EXPRESSION: literal_expression>: [NUMBER_LITERAL | STRING_LITERAL | NULL_LITERAL | BOOLEAN_LITERAL: literal];
46
+ <GROUPING_EXPRESSION: grouping_expr>: [L_PAREN] <VALUE: value> [R_PAREN];
47
+ <FUNCTION_CALL_EXPRESSION: function_call_expression>: [IDENTIFIER: function_name] [L_PAREN] <ARGUMENT_LIST: arguments> [R_PAREN];
48
+ <ARGUMENT_LIST: arguments>: <VALUE: argument> ([COMMA] <ARGUMENT_LIST: rest>)?;
49
+
50
+ <COLUMN_REFERENCE: column_ref>: [IDENTIFIER: one] ([DOT] [IDENTIFIER: two] ([DOT] [IDENTIFIER: three])?)?;
@@ -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,6 +1,6 @@
1
1
  {
2
2
  "name": "@scinorandex/sparse",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "description": "Yet another parser generator",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -66,6 +66,8 @@ export enum GrammarTokenType {
66
66
  EQUALS,
67
67
  COMMA,
68
68
  EOF,
69
+ SINGLE_LINE_COMMENT,
70
+ MULTI_LINE_COMMENT,
69
71
 
70
72
  PRODUCTION_NAME,
71
73
  TOKEN_NAME,
@@ -7,6 +7,7 @@ import { GrammarToken, GrammarTokenMetadata, GrammarTokenType, hydrateProduction
7
7
  export const grammarLexerGenerator = new Slex<GrammarTokenType, GrammarTokenMetadata>({
8
8
  EOF_TYPE: GrammarTokenType.EOF,
9
9
  isHigherPrecedence: () => false,
10
+ ignoreTokens: [GrammarTokenType.SINGLE_LINE_COMMENT, GrammarTokenType.MULTI_LINE_COMMENT],
10
11
  });
11
12
 
12
13
  grammarLexerGenerator.addRule(
@@ -39,6 +40,9 @@ grammarLexerGenerator.addRule("comma", "$,", GrammarTokenType.COMMA);
39
40
  grammarLexerGenerator.addRule("question_mark", "$?", GrammarTokenType.QUESTION_MARK);
40
41
  grammarLexerGenerator.addRule("number", "(${digit})+", GrammarTokenType.NUMBER);
41
42
 
43
+ grammarLexerGenerator.addRule("single_line_comment", "$/$/(($\n)!)*", GrammarTokenType.SINGLE_LINE_COMMENT);
44
+ grammarLexerGenerator.addRule("multi_line_comment", "$/$*(($*)!|($*($/)!))*$*$/", GrammarTokenType.MULTI_LINE_COMMENT);
45
+
42
46
  export abstract class BaseNode {}
43
47
 
44
48
  export class ListNode<T> extends BaseNode {
@@ -136,7 +140,7 @@ function expandProduction(production: ProductionNode): ProductionNode[] {
136
140
  production.lhs,
137
141
  new ListNode<TokenNode | GroupedTokenNode>([
138
142
  ...beforeItems,
139
- new TokenNode("variable", new ListNode<GrammarToken>([variable]), item.name),
143
+ new TokenNode(item.type, new ListNode<GrammarToken>([variable]), item.name),
140
144
  ]),
141
145
  production.originalProductionIndex,
142
146
  production.name,
@@ -1,12 +0,0 @@
1
- import { Slex } from "@scinorandex/slex";
2
- import { Result } from "../utils/Result";
3
- import { GrammarToken, GrammarTokenMetadata, GrammarTokenType, Production } from "./common";
4
- export declare const grammarLexerGenerator: Slex<GrammarTokenType, GrammarTokenMetadata>;
5
- interface LexerInterface {
6
- peekNextToken(): GrammarToken;
7
- getNextToken(): GrammarToken;
8
- hasNextToken(): boolean;
9
- }
10
- export declare const tryBuildProductions: (lexer: LexerInterface | string) => Result<Production[]>;
11
- export declare const buildProductions: (lexer: LexerInterface | string) => Production[];
12
- export {};
@@ -1,73 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildProductions = exports.tryBuildProductions = exports.grammarLexerGenerator = void 0;
4
- const slex_1 = require("@scinorandex/slex");
5
- const common_1 = require("./common");
6
- exports.grammarLexerGenerator = new slex_1.Slex({
7
- EOF_TYPE: common_1.GrammarTokenType.EOF,
8
- isHigherPrecedence: () => false,
9
- });
10
- exports.grammarLexerGenerator.addRule("lowercase", "a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z");
11
- exports.grammarLexerGenerator.addRule("uppercase", "A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z");
12
- exports.grammarLexerGenerator.addRule("letter", "${lowercase} | ${uppercase}");
13
- exports.grammarLexerGenerator.addRule("digit", "0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9");
14
- exports.grammarLexerGenerator.addRule("alphanumeric", "${letter} | ${digit}");
15
- exports.grammarLexerGenerator.addRule("identifier", "(${letter} | ${digit} | $_)*");
16
- exports.grammarLexerGenerator.addRule("colon", "$:", common_1.GrammarTokenType.COLON);
17
- exports.grammarLexerGenerator.addRule("semicolon", "$;", common_1.GrammarTokenType.SEMICOLON);
18
- exports.grammarLexerGenerator.addRule("production_name", "$< ${identifier} $>", common_1.GrammarTokenType.PRODUCTION_NAME);
19
- exports.grammarLexerGenerator.addRule("token_name", "$[ ${identifier} $]", common_1.GrammarTokenType.TOKEN_NAME);
20
- const tryBuildProductions = (lexer) => {
21
- if (typeof lexer === "string")
22
- lexer = exports.grammarLexerGenerator.generate(lexer, () => ({}));
23
- const productions = [];
24
- const expect = (type) => {
25
- const token = lexer.peekNextToken();
26
- if (token.type !== type)
27
- throw new Error(`Expected ${type}, got ${token.type}`);
28
- lexer.getNextToken();
29
- };
30
- let productionIndex = 0;
31
- const buildProduction = () => {
32
- const productionLHS = lexer.getNextToken();
33
- expect(common_1.GrammarTokenType.COLON);
34
- const production = {
35
- lhs: productionLHS,
36
- identifier: productionLHS.lexeme,
37
- rhs: [],
38
- name: null,
39
- originalProductionIndex: productionIndex++,
40
- };
41
- while (lexer.peekNextToken().type != common_1.GrammarTokenType.SEMICOLON) {
42
- const productionRHS = lexer.getNextToken();
43
- if (productionRHS.type == common_1.GrammarTokenType.PRODUCTION_NAME)
44
- production.rhs.push({ type: "variable", token: productionRHS, identifier: productionRHS.lexeme, name: null });
45
- else if (productionRHS.type == common_1.GrammarTokenType.TOKEN_NAME)
46
- production.rhs.push({ type: "terminal", token: productionRHS, identifier: productionRHS.lexeme, name: null });
47
- else
48
- return {
49
- success: false,
50
- reason: `Unexpected token type: ${common_1.GrammarTokenType[productionRHS.type]}`,
51
- token: productionRHS,
52
- };
53
- }
54
- expect(common_1.GrammarTokenType.SEMICOLON);
55
- return { success: true, value: production };
56
- };
57
- while (lexer.hasNextToken()) {
58
- const result = buildProduction();
59
- if (result.success === false)
60
- return result;
61
- productions.push(result.value);
62
- }
63
- return { success: true, value: productions };
64
- };
65
- exports.tryBuildProductions = tryBuildProductions;
66
- const buildProductions = (lexer) => {
67
- const result = (0, exports.tryBuildProductions)(lexer);
68
- if (result.success === false)
69
- throw new Error(`Encountered error "${result.reason}" while parsing grammar at ${result.token.line}:${result.token.column}`);
70
- return result.value;
71
- };
72
- exports.buildProductions = buildProductions;
73
- //# sourceMappingURL=handwritten.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handwritten.js","sourceRoot":"","sources":["../../src/meta/handwritten.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- import { Slex } from "@scinorandex/slex";
2
- import { TableState } from "../parser";
3
- type TableTokenMetadata = {};
4
- export declare enum TableTokenType {
5
- PRODUCTION_NAME = 0,
6
- TOKEN_NAME = 1,
7
- COMMA = 2,
8
- EQUALS = 3,
9
- SHIFT_ACTION = 4,
10
- REDUCE_ACTION = 5,
11
- GOTO_ACTION = 6,
12
- EOF = 7
13
- }
14
- export declare const tableLexerGenerator: Slex<TableTokenType, TableTokenMetadata>;
15
- export declare const buildStates: (grammar: string) => TableState[];
16
- export {};
@@ -1,59 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildStates = exports.tableLexerGenerator = exports.TableTokenType = void 0;
4
- const slex_1 = require("@scinorandex/slex");
5
- const parser_1 = require("../parser");
6
- var TableTokenType;
7
- (function (TableTokenType) {
8
- TableTokenType[TableTokenType["PRODUCTION_NAME"] = 0] = "PRODUCTION_NAME";
9
- TableTokenType[TableTokenType["TOKEN_NAME"] = 1] = "TOKEN_NAME";
10
- TableTokenType[TableTokenType["COMMA"] = 2] = "COMMA";
11
- TableTokenType[TableTokenType["EQUALS"] = 3] = "EQUALS";
12
- TableTokenType[TableTokenType["SHIFT_ACTION"] = 4] = "SHIFT_ACTION";
13
- TableTokenType[TableTokenType["REDUCE_ACTION"] = 5] = "REDUCE_ACTION";
14
- TableTokenType[TableTokenType["GOTO_ACTION"] = 6] = "GOTO_ACTION";
15
- TableTokenType[TableTokenType["EOF"] = 7] = "EOF";
16
- })(TableTokenType || (exports.TableTokenType = TableTokenType = {}));
17
- exports.tableLexerGenerator = new slex_1.Slex({
18
- EOF_TYPE: TableTokenType.EOF,
19
- isHigherPrecedence: () => false,
20
- });
21
- exports.tableLexerGenerator.addRule("lowercase", "a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z");
22
- exports.tableLexerGenerator.addRule("uppercase", "A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z");
23
- exports.tableLexerGenerator.addRule("letter", "${lowercase} | ${uppercase}");
24
- exports.tableLexerGenerator.addRule("digit", "0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9");
25
- exports.tableLexerGenerator.addRule("alphanumeric", "${letter} | ${digit}");
26
- exports.tableLexerGenerator.addRule("identifier", "(${letter} | ${digit} | $_)*");
27
- exports.tableLexerGenerator.addRule("comma", "$,", TableTokenType.COMMA);
28
- exports.tableLexerGenerator.addRule("equals", "$=", TableTokenType.EQUALS);
29
- exports.tableLexerGenerator.addRule("production_name", "$< ${identifier} $>", TableTokenType.PRODUCTION_NAME);
30
- exports.tableLexerGenerator.addRule("token_name", "$[ ${identifier} $]", TableTokenType.TOKEN_NAME);
31
- exports.tableLexerGenerator.addRule("shift_action", "s(${digit})*", TableTokenType.SHIFT_ACTION);
32
- exports.tableLexerGenerator.addRule("reduce_action", "r(${digit})*", TableTokenType.REDUCE_ACTION);
33
- exports.tableLexerGenerator.addRule("goto_action", "${digit}(${digit})*", TableTokenType.GOTO_ACTION);
34
- const buildStates = (grammar) => grammar.split("\n").map((line) => {
35
- const lexer = exports.tableLexerGenerator.generate(line, () => ({}));
36
- const state = new parser_1.TableState();
37
- const expect = (type) => {
38
- const token = lexer.peekNextToken();
39
- if (token.type !== type)
40
- throw new Error(`Expected ${TableTokenType[type]}, got ${TableTokenType[token.type]}`);
41
- lexer.getNextToken();
42
- };
43
- while (lexer.hasNextToken()) {
44
- const token = lexer.getNextToken();
45
- expect(TableTokenType.EQUALS);
46
- const value = lexer.getNextToken();
47
- const setting = token.type === TableTokenType.PRODUCTION_NAME
48
- ? { type: "goto", value: parseInt(value.lexeme) }
49
- : value.type === TableTokenType.REDUCE_ACTION
50
- ? { type: "reduce", value: parseInt(value.lexeme.substring(1)) }
51
- : { type: "shift", value: parseInt(value.lexeme.substring(1)) };
52
- state.actions.set(token.lexeme, setting);
53
- if (lexer.peekNextToken().type == TableTokenType.COMMA)
54
- lexer.getNextToken();
55
- }
56
- return state;
57
- });
58
- exports.buildStates = buildStates;
59
- //# sourceMappingURL=handwritten.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handwritten.js","sourceRoot":"","sources":["../../src/table/handwritten.ts"],"names":[],"mappings":"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"}
@@ -1,93 +0,0 @@
1
- import { Slex } from "@scinorandex/slex";
2
- import { Result } from "../utils/Result";
3
- import { GrammarToken, GrammarTokenMetadata, GrammarTokenType, Production } from "./common";
4
-
5
- export const grammarLexerGenerator = new Slex<GrammarTokenType, GrammarTokenMetadata>({
6
- EOF_TYPE: GrammarTokenType.EOF,
7
- isHigherPrecedence: () => false,
8
- });
9
-
10
- grammarLexerGenerator.addRule(
11
- "lowercase",
12
- "a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z",
13
- );
14
- grammarLexerGenerator.addRule(
15
- "uppercase",
16
- "A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z",
17
- );
18
- grammarLexerGenerator.addRule("letter", "${lowercase} | ${uppercase}");
19
- grammarLexerGenerator.addRule("digit", "0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9");
20
- grammarLexerGenerator.addRule("alphanumeric", "${letter} | ${digit}");
21
- grammarLexerGenerator.addRule("identifier", "(${letter} | ${digit} | $_)*");
22
- grammarLexerGenerator.addRule("colon", "$:", GrammarTokenType.COLON);
23
- grammarLexerGenerator.addRule("semicolon", "$;", GrammarTokenType.SEMICOLON);
24
- grammarLexerGenerator.addRule("production_name", "$< ${identifier} $>", GrammarTokenType.PRODUCTION_NAME);
25
- grammarLexerGenerator.addRule("token_name", "$[ ${identifier} $]", GrammarTokenType.TOKEN_NAME);
26
-
27
- interface LexerInterface {
28
- peekNextToken(): GrammarToken;
29
- getNextToken(): GrammarToken;
30
- hasNextToken(): boolean;
31
- }
32
-
33
- export const tryBuildProductions = (lexer: LexerInterface | string): Result<Production[]> => {
34
- if (typeof lexer === "string") lexer = grammarLexerGenerator.generate(lexer, () => ({}));
35
-
36
- const productions: Production[] = [];
37
-
38
- const expect = (type: GrammarTokenType) => {
39
- const token = lexer.peekNextToken();
40
- if (token.type !== type) throw new Error(`Expected ${type}, got ${token.type}`);
41
- lexer.getNextToken();
42
- };
43
-
44
- let productionIndex = 0;
45
-
46
- const buildProduction = (): Result<Production> => {
47
- const productionLHS = lexer.getNextToken();
48
- expect(GrammarTokenType.COLON);
49
-
50
- const production: Production = {
51
- lhs: productionLHS,
52
- identifier: productionLHS.lexeme,
53
- rhs: [],
54
- name: null,
55
- originalProductionIndex: productionIndex++,
56
- };
57
-
58
- while (lexer.peekNextToken().type != GrammarTokenType.SEMICOLON) {
59
- const productionRHS = lexer.getNextToken();
60
-
61
- if (productionRHS.type == GrammarTokenType.PRODUCTION_NAME)
62
- production.rhs.push({ type: "variable", token: productionRHS, identifier: productionRHS.lexeme, name: null });
63
- else if (productionRHS.type == GrammarTokenType.TOKEN_NAME)
64
- production.rhs.push({ type: "terminal", token: productionRHS, identifier: productionRHS.lexeme, name: null });
65
- else
66
- return {
67
- success: false,
68
- reason: `Unexpected token type: ${GrammarTokenType[productionRHS.type]}`,
69
- token: productionRHS,
70
- };
71
- }
72
-
73
- expect(GrammarTokenType.SEMICOLON);
74
- return { success: true, value: production };
75
- };
76
-
77
- while (lexer.hasNextToken()) {
78
- const result = buildProduction();
79
- if (result.success === false) return result;
80
- productions.push(result.value);
81
- }
82
-
83
- return { success: true, value: productions };
84
- };
85
-
86
- export const buildProductions = (lexer: LexerInterface | string): Production[] => {
87
- const result = tryBuildProductions(lexer);
88
- if (result.success === false)
89
- throw new Error(
90
- `Encountered error "${result.reason}" while parsing grammar at ${result.token.line}:${result.token.column}`,
91
- );
92
- return result.value;
93
- };
@@ -1,69 +0,0 @@
1
- import { Slex } from "@scinorandex/slex";
2
- import { TableAction, TableState } from "../parser";
3
-
4
- type TableTokenMetadata = {};
5
- export enum TableTokenType {
6
- PRODUCTION_NAME,
7
- TOKEN_NAME,
8
- COMMA,
9
- EQUALS,
10
- SHIFT_ACTION,
11
- REDUCE_ACTION,
12
- GOTO_ACTION,
13
- EOF,
14
- }
15
-
16
- export const tableLexerGenerator = new Slex<TableTokenType, TableTokenMetadata>({
17
- EOF_TYPE: TableTokenType.EOF,
18
- isHigherPrecedence: () => false,
19
- });
20
-
21
- tableLexerGenerator.addRule(
22
- "lowercase",
23
- "a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z",
24
- );
25
- tableLexerGenerator.addRule(
26
- "uppercase",
27
- "A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z",
28
- );
29
- tableLexerGenerator.addRule("letter", "${lowercase} | ${uppercase}");
30
- tableLexerGenerator.addRule("digit", "0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9");
31
- tableLexerGenerator.addRule("alphanumeric", "${letter} | ${digit}");
32
- tableLexerGenerator.addRule("identifier", "(${letter} | ${digit} | $_)*");
33
- tableLexerGenerator.addRule("comma", "$,", TableTokenType.COMMA);
34
- tableLexerGenerator.addRule("equals", "$=", TableTokenType.EQUALS);
35
- tableLexerGenerator.addRule("production_name", "$< ${identifier} $>", TableTokenType.PRODUCTION_NAME);
36
- tableLexerGenerator.addRule("token_name", "$[ ${identifier} $]", TableTokenType.TOKEN_NAME);
37
- tableLexerGenerator.addRule("shift_action", "s(${digit})*", TableTokenType.SHIFT_ACTION);
38
- tableLexerGenerator.addRule("reduce_action", "r(${digit})*", TableTokenType.REDUCE_ACTION);
39
- tableLexerGenerator.addRule("goto_action", "${digit}(${digit})*", TableTokenType.GOTO_ACTION);
40
-
41
- export const buildStates = (grammar: string) =>
42
- grammar.split("\n").map((line) => {
43
- const lexer = tableLexerGenerator.generate(line, () => ({}));
44
- const state = new TableState();
45
-
46
- const expect = (type: TableTokenType) => {
47
- const token = lexer.peekNextToken();
48
- if (token.type !== type) throw new Error(`Expected ${TableTokenType[type]}, got ${TableTokenType[token.type]}`);
49
- lexer.getNextToken();
50
- };
51
-
52
- while (lexer.hasNextToken()) {
53
- const token = lexer.getNextToken();
54
- expect(TableTokenType.EQUALS);
55
- const value = lexer.getNextToken();
56
-
57
- const setting: TableAction =
58
- token.type === TableTokenType.PRODUCTION_NAME
59
- ? { type: "goto", value: parseInt(value.lexeme) }
60
- : value.type === TableTokenType.REDUCE_ACTION
61
- ? { type: "reduce", value: parseInt(value.lexeme.substring(1)) }
62
- : { type: "shift", value: parseInt(value.lexeme.substring(1)) };
63
-
64
- state.actions.set(token.lexeme, setting);
65
- if (lexer.peekNextToken().type == TableTokenType.COMMA) lexer.getNextToken();
66
- }
67
-
68
- return state;
69
- });