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

@ -9,20 +9,23 @@ x;
---
(source
(statement
(expression
(value
(integer)))
(close))
(statement
(expression
(value
(string)))
(close))
(statement
(expression
(identifier))
(close)))
(statement
(closed_statement
(expression
(value
(integer)))
(close)))
(statement
(closed_statement
(expression
(value
(string)))
(close)))
(statement
(closed_statement
(expression
(identifier))
(close))))
==================
Simple Assignment
@ -34,20 +37,29 @@ y = "one";
---
(source
(statement
(expression
(identifier)
(operator)
(value
(integer)))
(close))
(statement
(expression
(identifier)
(operator)
(value
(string)))
(close)))
(statement
(closed_statement
(expression
(operation
(expression
(identifier))
(operator)
(expression
(value
(integer)))))
(close)))
(statement
(closed_statement
(expression
(operation
(expression
(identifier))
(operator)
(expression
(value
(string)))))
(close))))
==================
Complex Assignment
@ -58,14 +70,22 @@ x = 1 + 1;
---
(source
(statement
(expression
(identifier)
(operator)
(expression
(value
(integer))
(operator)
(value
(integer))))
(close)))
(statement
(closed_statement
(expression
(operation
(expression
(operation
(expression
(identifier))
(operator)
(expression
(value
(integer)))))
(operator)
(expression
(value
(integer)))))
(close))))

View File

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

View File

@ -18,17 +18,33 @@
}
},
"comment": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "#"
},
{
"type": "PATTERN",
"value": ".*"
}
]
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "#"
},
{
"type": "PATTERN",
"value": ".*"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "#"
},
{
"type": "BLANK"
}
]
}
]
}
},
"statement": {
"type": "CHOICE",

View File

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