Add comment tests; Rewrite statment tests

This commit is contained in:
Jeff 2023-09-29 03:10:14 -04:00
parent b8384b936b
commit 4b0c658a2b
5 changed files with 312 additions and 220 deletions

35
corpus/comments.txt Normal file
View File

@ -0,0 +1,35 @@
==================
Full Line Comments
==================
# comment
#comment
# also a comment!
---
(source
(comment)
(comment)
(comment))
==================
Partial Line Comments
==================
# comment # 1;
#comment# "one";
---
(source
(comment)
(statement
(closed_statment
(value
(integer))))
(comment)
(statement
(closed_statment
(value
(string)))))

View File

@ -10,19 +10,22 @@ x;
(source (source
(statement (statement
(closed_statement
(expression (expression
(value (value
(integer))) (integer)))
(close)) (close)))
(statement (statement
(closed_statement
(expression (expression
(value (value
(string))) (string)))
(close)) (close)))
(statement (statement
(closed_statement
(expression (expression
(identifier)) (identifier))
(close))) (close))))
================== ==================
Simple Assignment Simple Assignment
@ -35,19 +38,28 @@ y = "one";
(source (source
(statement (statement
(closed_statement
(expression (expression
(identifier) (operation
(operator)
(value
(integer)))
(close))
(statement
(expression (expression
(identifier) (identifier))
(operator) (operator)
(expression
(value (value
(string))) (integer)))))
(close))) (close)))
(statement
(closed_statement
(expression
(operation
(expression
(identifier))
(operator)
(expression
(value
(string)))))
(close))))
================== ==================
Complex Assignment Complex Assignment
@ -59,13 +71,21 @@ x = 1 + 1;
(source (source
(statement (statement
(closed_statement
(expression (expression
(identifier) (operation
(expression
(operation
(expression
(identifier))
(operator) (operator)
(expression (expression
(value (value
(integer)) (integer)))))
(operator) (operator)
(expression
(value (value
(integer)))) (integer)))))
(close))) (close))))

View File

@ -7,7 +7,7 @@ module.exports = grammar({
$.statement, $.statement,
)), )),
comment: $ => seq('#', /.*/), comment: $ => prec.right(seq('#', /.*/, optional('#'))),
statement: $ => choice( statement: $ => choice(
$.closed_statement, $.closed_statement,

View File

@ -18,6 +18,9 @@
} }
}, },
"comment": { "comment": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ", "type": "SEQ",
"members": [ "members": [
{ {
@ -27,8 +30,21 @@
{ {
"type": "PATTERN", "type": "PATTERN",
"value": ".*" "value": ".*"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "#"
},
{
"type": "BLANK"
} }
] ]
}
]
}
}, },
"statement": { "statement": {
"type": "CHOICE", "type": "CHOICE",

View File

@ -6,7 +6,7 @@
#endif #endif
#define LANGUAGE_VERSION 14 #define LANGUAGE_VERSION 14
#define STATE_COUNT 29 #define STATE_COUNT 30
#define LARGE_STATE_COUNT 6 #define LARGE_STATE_COUNT 6
#define SYMBOL_COUNT 31 #define SYMBOL_COUNT 31
#define ALIAS_COUNT 0 #define ALIAS_COUNT 0
@ -267,21 +267,22 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = {
[11] = 11, [11] = 11,
[12] = 12, [12] = 12,
[13] = 13, [13] = 13,
[14] = 13, [14] = 14,
[15] = 15, [15] = 13,
[16] = 16, [16] = 16,
[17] = 16, [17] = 16,
[18] = 18, [18] = 18,
[19] = 19, [19] = 19,
[20] = 20, [20] = 20,
[21] = 21, [21] = 21,
[22] = 9, [22] = 22,
[23] = 8, [23] = 6,
[24] = 11, [24] = 7,
[25] = 25, [25] = 8,
[26] = 26, [26] = 26,
[27] = 27, [27] = 27,
[28] = 28, [28] = 28,
[29] = 29,
}; };
static bool ts_lex(TSLexer *lexer, TSStateId state) { static bool ts_lex(TSLexer *lexer, TSStateId state) {
@ -557,14 +558,15 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
[18] = {.lex_state = 0}, [18] = {.lex_state = 0},
[19] = {.lex_state = 0}, [19] = {.lex_state = 0},
[20] = {.lex_state = 0}, [20] = {.lex_state = 0},
[21] = {.lex_state = 9}, [21] = {.lex_state = 0},
[22] = {.lex_state = 9}, [22] = {.lex_state = 9},
[23] = {.lex_state = 9}, [23] = {.lex_state = 9},
[24] = {.lex_state = 9}, [24] = {.lex_state = 9},
[25] = {.lex_state = 9}, [25] = {.lex_state = 9},
[26] = {.lex_state = 0}, [26] = {.lex_state = 9},
[27] = {.lex_state = 13}, [27] = {.lex_state = 0},
[28] = {.lex_state = 0}, [28] = {.lex_state = 13},
[29] = {.lex_state = 0},
}; };
static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
@ -588,16 +590,16 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
[anon_sym_EQ] = ACTIONS(1), [anon_sym_EQ] = ACTIONS(1),
}, },
[1] = { [1] = {
[sym_source] = STATE(28), [sym_source] = STATE(29),
[sym_comment] = STATE(3), [sym_comment] = STATE(3),
[sym_statement] = STATE(3), [sym_statement] = STATE(3),
[sym_closed_statement] = STATE(18), [sym_closed_statement] = STATE(18),
[sym_open_statement] = STATE(18), [sym_open_statement] = STATE(18),
[sym_expression] = STATE(4), [sym_expression] = STATE(5),
[sym_value] = STATE(6), [sym_value] = STATE(9),
[sym_boolean] = STATE(9), [sym_boolean] = STATE(7),
[sym_list] = STATE(9), [sym_list] = STATE(7),
[sym_operation] = STATE(7), [sym_operation] = STATE(10),
[aux_sym_source_repeat1] = STATE(3), [aux_sym_source_repeat1] = STATE(3),
[ts_builtin_sym_end] = ACTIONS(3), [ts_builtin_sym_end] = ACTIONS(3),
[anon_sym_POUND] = ACTIONS(5), [anon_sym_POUND] = ACTIONS(5),
@ -616,11 +618,11 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
[sym_statement] = STATE(2), [sym_statement] = STATE(2),
[sym_closed_statement] = STATE(18), [sym_closed_statement] = STATE(18),
[sym_open_statement] = STATE(18), [sym_open_statement] = STATE(18),
[sym_expression] = STATE(4), [sym_expression] = STATE(5),
[sym_value] = STATE(6), [sym_value] = STATE(9),
[sym_boolean] = STATE(9), [sym_boolean] = STATE(7),
[sym_list] = STATE(9), [sym_list] = STATE(7),
[sym_operation] = STATE(7), [sym_operation] = STATE(10),
[aux_sym_source_repeat1] = STATE(2), [aux_sym_source_repeat1] = STATE(2),
[ts_builtin_sym_end] = ACTIONS(17), [ts_builtin_sym_end] = ACTIONS(17),
[anon_sym_POUND] = ACTIONS(19), [anon_sym_POUND] = ACTIONS(19),
@ -639,11 +641,11 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
[sym_statement] = STATE(2), [sym_statement] = STATE(2),
[sym_closed_statement] = STATE(18), [sym_closed_statement] = STATE(18),
[sym_open_statement] = STATE(18), [sym_open_statement] = STATE(18),
[sym_expression] = STATE(4), [sym_expression] = STATE(5),
[sym_value] = STATE(6), [sym_value] = STATE(9),
[sym_boolean] = STATE(9), [sym_boolean] = STATE(7),
[sym_list] = STATE(9), [sym_list] = STATE(7),
[sym_operation] = STATE(7), [sym_operation] = STATE(10),
[aux_sym_source_repeat1] = STATE(2), [aux_sym_source_repeat1] = STATE(2),
[ts_builtin_sym_end] = ACTIONS(37), [ts_builtin_sym_end] = ACTIONS(37),
[anon_sym_POUND] = ACTIONS(5), [anon_sym_POUND] = ACTIONS(5),
@ -661,37 +663,37 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
[sym_operator] = STATE(12), [sym_operator] = STATE(12),
[ts_builtin_sym_end] = ACTIONS(39), [ts_builtin_sym_end] = ACTIONS(39),
[anon_sym_POUND] = ACTIONS(39), [anon_sym_POUND] = ACTIONS(39),
[sym_close] = ACTIONS(41), [sym_close] = ACTIONS(39),
[sym_identifier] = ACTIONS(43), [sym_identifier] = ACTIONS(41),
[sym_float] = ACTIONS(39), [sym_float] = ACTIONS(39),
[sym_integer] = ACTIONS(43), [sym_integer] = ACTIONS(41),
[sym_string] = ACTIONS(39), [sym_string] = ACTIONS(39),
[sym_function] = ACTIONS(39), [sym_function] = ACTIONS(39),
[sym_empty] = ACTIONS(39), [sym_empty] = ACTIONS(39),
[anon_sym_true] = ACTIONS(43), [anon_sym_true] = ACTIONS(41),
[anon_sym_false] = ACTIONS(43), [anon_sym_false] = ACTIONS(41),
[anon_sym_LPAREN] = ACTIONS(43), [anon_sym_LPAREN] = ACTIONS(41),
[anon_sym_PLUS] = ACTIONS(45), [anon_sym_PLUS] = ACTIONS(39),
[anon_sym_DASH] = ACTIONS(45), [anon_sym_DASH] = ACTIONS(39),
[anon_sym_EQ] = ACTIONS(45), [anon_sym_EQ] = ACTIONS(39),
}, },
[5] = { [5] = {
[sym_operator] = STATE(12), [sym_operator] = STATE(12),
[ts_builtin_sym_end] = ACTIONS(47), [ts_builtin_sym_end] = ACTIONS(43),
[anon_sym_POUND] = ACTIONS(47), [anon_sym_POUND] = ACTIONS(43),
[sym_close] = ACTIONS(47), [sym_close] = ACTIONS(45),
[sym_identifier] = ACTIONS(49), [sym_identifier] = ACTIONS(47),
[sym_float] = ACTIONS(47), [sym_float] = ACTIONS(43),
[sym_integer] = ACTIONS(49), [sym_integer] = ACTIONS(47),
[sym_string] = ACTIONS(47), [sym_string] = ACTIONS(43),
[sym_function] = ACTIONS(47), [sym_function] = ACTIONS(43),
[sym_empty] = ACTIONS(47), [sym_empty] = ACTIONS(43),
[anon_sym_true] = ACTIONS(49), [anon_sym_true] = ACTIONS(47),
[anon_sym_false] = ACTIONS(49), [anon_sym_false] = ACTIONS(47),
[anon_sym_LPAREN] = ACTIONS(49), [anon_sym_LPAREN] = ACTIONS(47),
[anon_sym_PLUS] = ACTIONS(47), [anon_sym_PLUS] = ACTIONS(49),
[anon_sym_DASH] = ACTIONS(47), [anon_sym_DASH] = ACTIONS(49),
[anon_sym_EQ] = ACTIONS(47), [anon_sym_EQ] = ACTIONS(49),
}, },
}; };
@ -715,24 +717,6 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_DASH, anon_sym_DASH,
anon_sym_EQ, anon_sym_EQ,
[20] = 2, [20] = 2,
ACTIONS(53), 5,
sym_identifier,
sym_integer,
anon_sym_true,
anon_sym_false,
anon_sym_LPAREN,
ACTIONS(51), 10,
ts_builtin_sym_end,
anon_sym_POUND,
sym_close,
sym_float,
sym_string,
sym_function,
sym_empty,
anon_sym_PLUS,
anon_sym_DASH,
anon_sym_EQ,
[40] = 2,
ACTIONS(57), 5, ACTIONS(57), 5,
sym_identifier, sym_identifier,
sym_integer, sym_integer,
@ -750,7 +734,7 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_PLUS, anon_sym_PLUS,
anon_sym_DASH, anon_sym_DASH,
anon_sym_EQ, anon_sym_EQ,
[60] = 2, [40] = 2,
ACTIONS(61), 5, ACTIONS(61), 5,
sym_identifier, sym_identifier,
sym_integer, sym_integer,
@ -768,14 +752,32 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_PLUS, anon_sym_PLUS,
anon_sym_DASH, anon_sym_DASH,
anon_sym_EQ, anon_sym_EQ,
[80] = 2, [60] = 2,
ACTIONS(53), 5, ACTIONS(65), 5,
sym_identifier, sym_identifier,
sym_integer, sym_integer,
anon_sym_true, anon_sym_true,
anon_sym_false, anon_sym_false,
anon_sym_LPAREN, anon_sym_LPAREN,
ACTIONS(51), 10, ACTIONS(63), 10,
ts_builtin_sym_end,
anon_sym_POUND,
sym_close,
sym_float,
sym_string,
sym_function,
sym_empty,
anon_sym_PLUS,
anon_sym_DASH,
anon_sym_EQ,
[80] = 2,
ACTIONS(65), 5,
sym_identifier,
sym_integer,
anon_sym_true,
anon_sym_false,
anon_sym_LPAREN,
ACTIONS(63), 10,
ts_builtin_sym_end, ts_builtin_sym_end,
anon_sym_POUND, anon_sym_POUND,
sym_close, sym_close,
@ -811,16 +813,16 @@ static const uint16_t ts_small_parse_table[] = {
sym_integer, sym_integer,
ACTIONS(15), 1, ACTIONS(15), 1,
anon_sym_LPAREN, anon_sym_LPAREN,
STATE(5), 1, STATE(4), 1,
sym_expression, sym_expression,
STATE(6), 1, STATE(9), 1,
sym_value, sym_value,
STATE(7), 1, STATE(10), 1,
sym_operation, sym_operation,
ACTIONS(13), 2, ACTIONS(13), 2,
anon_sym_true, anon_sym_true,
anon_sym_false, anon_sym_false,
STATE(9), 2, STATE(7), 2,
sym_boolean, sym_boolean,
sym_list, sym_list,
ACTIONS(9), 4, ACTIONS(9), 4,
@ -835,14 +837,14 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_LPAREN, anon_sym_LPAREN,
ACTIONS(75), 1, ACTIONS(75), 1,
anon_sym_RPAREN, anon_sym_RPAREN,
STATE(15), 1, STATE(14), 1,
aux_sym_list_repeat1, aux_sym_list_repeat1,
STATE(21), 1, STATE(22), 1,
sym_value, sym_value,
ACTIONS(71), 2, ACTIONS(71), 2,
anon_sym_true, anon_sym_true,
anon_sym_false, anon_sym_false,
STATE(22), 2, STATE(24), 2,
sym_boolean, sym_boolean,
sym_list, sym_list,
ACTIONS(67), 4, ACTIONS(67), 4,
@ -851,45 +853,45 @@ static const uint16_t ts_small_parse_table[] = {
sym_function, sym_function,
sym_empty, sym_empty,
[183] = 8, [183] = 8,
ACTIONS(69), 1, ACTIONS(80), 1,
sym_integer, sym_integer,
ACTIONS(73), 1, ACTIONS(86), 1,
anon_sym_LPAREN, anon_sym_LPAREN,
ACTIONS(77), 1, ACTIONS(89), 1,
anon_sym_RPAREN, anon_sym_RPAREN,
STATE(15), 1, STATE(14), 1,
aux_sym_list_repeat1, aux_sym_list_repeat1,
STATE(21), 1, STATE(22), 1,
sym_value, sym_value,
ACTIONS(71), 2, ACTIONS(83), 2,
anon_sym_true, anon_sym_true,
anon_sym_false, anon_sym_false,
STATE(22), 2, STATE(24), 2,
sym_boolean, sym_boolean,
sym_list, sym_list,
ACTIONS(67), 4, ACTIONS(77), 4,
sym_float, sym_float,
sym_string, sym_string,
sym_function, sym_function,
sym_empty, sym_empty,
[213] = 8, [213] = 8,
ACTIONS(82), 1, ACTIONS(69), 1,
sym_integer, sym_integer,
ACTIONS(88), 1, ACTIONS(73), 1,
anon_sym_LPAREN, anon_sym_LPAREN,
ACTIONS(91), 1, ACTIONS(91), 1,
anon_sym_RPAREN, anon_sym_RPAREN,
STATE(15), 1, STATE(14), 1,
aux_sym_list_repeat1, aux_sym_list_repeat1,
STATE(21), 1, STATE(22), 1,
sym_value, sym_value,
ACTIONS(85), 2, ACTIONS(71), 2,
anon_sym_true, anon_sym_true,
anon_sym_false, anon_sym_false,
STATE(22), 2, STATE(24), 2,
sym_boolean, sym_boolean,
sym_list, sym_list,
ACTIONS(79), 4, ACTIONS(67), 4,
sym_float, sym_float,
sym_string, sym_string,
sym_function, sym_function,
@ -899,14 +901,14 @@ static const uint16_t ts_small_parse_table[] = {
sym_integer, sym_integer,
ACTIONS(73), 1, ACTIONS(73), 1,
anon_sym_LPAREN, anon_sym_LPAREN,
STATE(14), 1, STATE(15), 1,
aux_sym_list_repeat1, aux_sym_list_repeat1,
STATE(21), 1, STATE(22), 1,
sym_value, sym_value,
ACTIONS(71), 2, ACTIONS(71), 2,
anon_sym_true, anon_sym_true,
anon_sym_false, anon_sym_false,
STATE(22), 2, STATE(24), 2,
sym_boolean, sym_boolean,
sym_list, sym_list,
ACTIONS(67), 4, ACTIONS(67), 4,
@ -921,12 +923,12 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_LPAREN, anon_sym_LPAREN,
STATE(13), 1, STATE(13), 1,
aux_sym_list_repeat1, aux_sym_list_repeat1,
STATE(21), 1, STATE(22), 1,
sym_value, sym_value,
ACTIONS(71), 2, ACTIONS(71), 2,
anon_sym_true, anon_sym_true,
anon_sym_false, anon_sym_false,
STATE(22), 2, STATE(24), 2,
sym_boolean, sym_boolean,
sym_list, sym_list,
ACTIONS(67), 4, ACTIONS(67), 4,
@ -977,12 +979,27 @@ static const uint16_t ts_small_parse_table[] = {
sym_function, sym_function,
sym_empty, sym_empty,
[345] = 3, [345] = 3,
ACTIONS(109), 1, ACTIONS(107), 1,
anon_sym_POUND,
ACTIONS(105), 5,
ts_builtin_sym_end,
sym_float,
sym_string,
sym_function,
sym_empty,
ACTIONS(109), 5,
sym_identifier,
sym_integer,
anon_sym_true,
anon_sym_false,
anon_sym_LPAREN,
[363] = 3,
ACTIONS(115), 1,
anon_sym_COMMA, anon_sym_COMMA,
ACTIONS(107), 2, ACTIONS(113), 2,
sym_integer, sym_integer,
anon_sym_LPAREN, anon_sym_LPAREN,
ACTIONS(105), 7, ACTIONS(111), 7,
sym_float, sym_float,
sym_string, sym_string,
sym_function, sym_function,
@ -990,11 +1007,11 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_true, anon_sym_true,
anon_sym_false, anon_sym_false,
anon_sym_RPAREN, anon_sym_RPAREN,
[362] = 2, [380] = 2,
ACTIONS(61), 2, ACTIONS(53), 2,
sym_integer, sym_integer,
anon_sym_LPAREN, anon_sym_LPAREN,
ACTIONS(59), 8, ACTIONS(51), 8,
sym_float, sym_float,
sym_string, sym_string,
sym_function, sym_function,
@ -1003,7 +1020,7 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_false, anon_sym_false,
anon_sym_COMMA, anon_sym_COMMA,
anon_sym_RPAREN, anon_sym_RPAREN,
[377] = 2, [395] = 2,
ACTIONS(57), 2, ACTIONS(57), 2,
sym_integer, sym_integer,
anon_sym_LPAREN, anon_sym_LPAREN,
@ -1016,11 +1033,11 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_false, anon_sym_false,
anon_sym_COMMA, anon_sym_COMMA,
anon_sym_RPAREN, anon_sym_RPAREN,
[392] = 2, [410] = 2,
ACTIONS(65), 2, ACTIONS(61), 2,
sym_integer, sym_integer,
anon_sym_LPAREN, anon_sym_LPAREN,
ACTIONS(63), 8, ACTIONS(59), 8,
sym_float, sym_float,
sym_string, sym_string,
sym_function, sym_function,
@ -1029,11 +1046,11 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_false, anon_sym_false,
anon_sym_COMMA, anon_sym_COMMA,
anon_sym_RPAREN, anon_sym_RPAREN,
[407] = 2, [425] = 2,
ACTIONS(111), 2, ACTIONS(117), 2,
sym_integer, sym_integer,
anon_sym_LPAREN, anon_sym_LPAREN,
ACTIONS(91), 7, ACTIONS(89), 7,
sym_float, sym_float,
sym_string, sym_string,
sym_function, sym_function,
@ -1041,23 +1058,23 @@ static const uint16_t ts_small_parse_table[] = {
anon_sym_true, anon_sym_true,
anon_sym_false, anon_sym_false,
anon_sym_RPAREN, anon_sym_RPAREN,
[421] = 2, [439] = 2,
ACTIONS(115), 4, ACTIONS(121), 4,
sym_float, sym_float,
sym_string, sym_string,
sym_function, sym_function,
sym_empty, sym_empty,
ACTIONS(113), 5, ACTIONS(119), 5,
sym_identifier, sym_identifier,
sym_integer, sym_integer,
anon_sym_true, anon_sym_true,
anon_sym_false, anon_sym_false,
anon_sym_LPAREN, anon_sym_LPAREN,
[435] = 1, [453] = 1,
ACTIONS(117), 1, ACTIONS(123), 1,
aux_sym_comment_token1, aux_sym_comment_token1,
[439] = 1, [457] = 1,
ACTIONS(119), 1, ACTIONS(125), 1,
ts_builtin_sym_end, ts_builtin_sym_end,
}; };
@ -1078,72 +1095,76 @@ static const uint32_t ts_small_parse_table_map[] = {
[SMALL_STATE(19)] = 313, [SMALL_STATE(19)] = 313,
[SMALL_STATE(20)] = 329, [SMALL_STATE(20)] = 329,
[SMALL_STATE(21)] = 345, [SMALL_STATE(21)] = 345,
[SMALL_STATE(22)] = 362, [SMALL_STATE(22)] = 363,
[SMALL_STATE(23)] = 377, [SMALL_STATE(23)] = 380,
[SMALL_STATE(24)] = 392, [SMALL_STATE(24)] = 395,
[SMALL_STATE(25)] = 407, [SMALL_STATE(25)] = 410,
[SMALL_STATE(26)] = 421, [SMALL_STATE(26)] = 425,
[SMALL_STATE(27)] = 435, [SMALL_STATE(27)] = 439,
[SMALL_STATE(28)] = 439, [SMALL_STATE(28)] = 453,
[SMALL_STATE(29)] = 457,
}; };
static const TSParseActionEntry ts_parse_actions[] = { static const TSParseActionEntry ts_parse_actions[] = {
[0] = {.entry = {.count = 0, .reusable = false}}, [0] = {.entry = {.count = 0, .reusable = false}},
[1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(), [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(),
[3] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source, 0), [3] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source, 0),
[5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28),
[7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(10), [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11),
[9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7),
[11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(9), [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7),
[13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8), [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8),
[15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(16), [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(16),
[17] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), [17] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2),
[19] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(27), [19] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(28),
[22] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(10), [22] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(11),
[25] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(9), [25] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(7),
[28] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(9), [28] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(7),
[31] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(8), [31] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(8),
[34] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(16), [34] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(16),
[37] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source, 1), [37] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source, 1),
[39] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_open_statement, 1), [39] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_operation, 3),
[41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), [41] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_operation, 3),
[43] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_open_statement, 1), [43] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_open_statement, 1),
[45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20),
[47] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_operation, 3), [47] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_open_statement, 1),
[49] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_operation, 3), [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27),
[51] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1), [51] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3),
[53] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1), [53] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 3),
[55] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean, 1), [55] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value, 1),
[57] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_boolean, 1), [57] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_value, 1),
[59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value, 1), [59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean, 1),
[61] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_value, 1), [61] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_boolean, 1),
[63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3), [63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1),
[65] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 3), [65] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1),
[67] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), [67] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24),
[69] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22), [69] = {.entry = {.count = 1, .reusable = false}}, SHIFT(24),
[71] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), [71] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25),
[73] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17), [73] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17),
[75] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), [75] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23),
[77] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), [77] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(24),
[79] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(22), [80] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(24),
[82] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(22), [83] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(25),
[85] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(23), [86] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(17),
[88] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(17), [89] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2),
[91] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), [91] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6),
[93] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_statement, 1), [93] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_statement, 1),
[95] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_statement, 1), [95] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_statement, 1),
[97] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 2), [97] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 3),
[99] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comment, 2), [99] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comment, 3),
[101] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_closed_statement, 2), [101] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_closed_statement, 2),
[103] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_closed_statement, 2), [103] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_closed_statement, 2),
[105] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 1), [105] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 2),
[107] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 1), [107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19),
[109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), [109] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comment, 2),
[111] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), [111] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 1),
[113] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_operator, 1), [113] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 1),
[115] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_operator, 1), [115] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26),
[117] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), [117] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2),
[119] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), [119] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_operator, 1),
[121] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_operator, 1),
[123] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21),
[125] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(),
}; };
#ifdef __cplusplus #ifdef __cplusplus