diff --git a/corpus/maps.txt b/corpus/maps.txt new file mode 100644 index 0000000..77e8c65 --- /dev/null +++ b/corpus/maps.txt @@ -0,0 +1,79 @@ +================== +Simple Maps +================== + +map { + answer = 42 +} + +--- + +(root + (item + (statement + (open_statement + (expression + (value + (map + (identifier) + (value + (integer))))))))) + +================== +Map Assignment +================== + +x = map { + answer = 42 +} + +--- + +(root + (item + (statement + (open_statement + (expression + (operation + (expression + (identifier)) + (operator) + (expression + (value + (map + (identifier) + (value + (integer))))))))))) + +================== +Map Access +================== + +x = map { + answer = 42 +} + +x.answer + +--- + +(root + (item + (statement + (open_statement + (expression + (operation + (expression + (identifier)) + (operator) + (expression + (value + (map + (identifier) + (value + (integer)))))))))) + (item + (statement + (open_statement + (expression + (identifier)))))) \ No newline at end of file diff --git a/grammar.js b/grammar.js index 147ffef..1e08475 100644 --- a/grammar.js +++ b/grammar.js @@ -38,6 +38,7 @@ module.exports = grammar({ $.boolean, $.function, $.table, + $.map, ), float: $ => /\d+\.\d*/, @@ -63,15 +64,22 @@ module.exports = grammar({ 'function', optional(seq('<', repeat(seq($.identifier, optional(','))), '>')), '{', - repeat($.statement), + repeat1($.statement), '}', ), table: $ => seq( 'table', - seq('<', repeat(seq($.identifier, optional(','))), '>'), + seq('<', repeat1(seq($.identifier, optional(','))), '>'), '{', - optional(repeat($.list)), + repeat($.list), + '}', + ), + + map: $ => seq( + 'map', + '{', + repeat(seq($.identifier, "=", $.value)), '}', ), diff --git a/src/grammar.json b/src/grammar.json index 4ce9471..01fde10 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -127,6 +127,10 @@ { "type": "SYMBOL", "name": "table" + }, + { + "type": "SYMBOL", + "name": "map" } ] }, @@ -253,7 +257,7 @@ "value": "{" }, { - "type": "REPEAT", + "type": "REPEAT1", "content": { "type": "SYMBOL", "name": "statement" @@ -280,7 +284,7 @@ "value": "<" }, { - "type": "REPEAT", + "type": "REPEAT1", "content": { "type": "SEQ", "members": [ @@ -314,19 +318,48 @@ "value": "{" }, { - "type": "CHOICE", - "members": [ - { - "type": "REPEAT", - "content": { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "list" + } + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "map": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "map" + }, + { + "type": "STRING", + "value": "{" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { "type": "SYMBOL", - "name": "list" + "name": "identifier" + }, + { + "type": "STRING", + "value": "=" + }, + { + "type": "SYMBOL", + "name": "value" } - }, - { - "type": "BLANK" - } - ] + ] + } }, { "type": "STRING", diff --git a/src/node-types.json b/src/node-types.json index d33ccc7..ff3ceb9 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -65,7 +65,7 @@ "fields": {}, "children": { "multiple": true, - "required": false, + "required": true, "types": [ { "type": "identifier", @@ -112,6 +112,25 @@ ] } }, + { + "type": "map", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "identifier", + "named": true + }, + { + "type": "value", + "named": true + } + ] + } + }, { "type": "open_statement", "named": true, @@ -187,7 +206,7 @@ "fields": {}, "children": { "multiple": true, - "required": false, + "required": true, "types": [ { "type": "identifier", @@ -237,6 +256,10 @@ "type": "list", "named": true }, + { + "type": "map", + "named": true + }, { "type": "string", "named": true @@ -320,6 +343,10 @@ "type": "integer", "named": true }, + { + "type": "map", + "named": false + }, { "type": "output", "named": false diff --git a/src/parser.c b/src/parser.c index 59b440b..89b78ac 100644 --- a/src/parser.c +++ b/src/parser.c @@ -6,11 +6,11 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 63 +#define STATE_COUNT 66 #define LARGE_STATE_COUNT 11 -#define SYMBOL_COUNT 47 +#define SYMBOL_COUNT 50 #define ALIAS_COUNT 0 -#define TOKEN_COUNT 27 +#define TOKEN_COUNT 28 #define EXTERNAL_TOKEN_COUNT 0 #define FIELD_COUNT 0 #define MAX_ALIAS_SEQUENCE_LENGTH 7 @@ -35,34 +35,37 @@ enum { anon_sym_LBRACE = 16, anon_sym_RBRACE = 17, anon_sym_table = 18, - anon_sym_PLUS = 19, - anon_sym_DASH = 20, - anon_sym_EQ = 21, - anon_sym_EQ_EQ = 22, - anon_sym_if = 23, - anon_sym_then = 24, - anon_sym_else = 25, - anon_sym_output = 26, - sym_root = 27, - sym_item = 28, - sym_comment = 29, - sym_statement = 30, - sym_open_statement = 31, - sym_expression = 32, - sym_value = 33, - sym_boolean = 34, - sym_list = 35, - sym_function = 36, - sym_table = 37, - sym_operator = 38, - sym_operation = 39, - sym_control_flow = 40, - sym_tool = 41, - aux_sym_root_repeat1 = 42, - aux_sym_list_repeat1 = 43, - aux_sym_function_repeat1 = 44, - aux_sym_function_repeat2 = 45, - aux_sym_table_repeat1 = 46, + anon_sym_map = 19, + anon_sym_EQ = 20, + anon_sym_PLUS = 21, + anon_sym_DASH = 22, + anon_sym_EQ_EQ = 23, + anon_sym_if = 24, + anon_sym_then = 25, + anon_sym_else = 26, + anon_sym_output = 27, + sym_root = 28, + sym_item = 29, + sym_comment = 30, + sym_statement = 31, + sym_open_statement = 32, + sym_expression = 33, + sym_value = 34, + sym_boolean = 35, + sym_list = 36, + sym_function = 37, + sym_table = 38, + sym_map = 39, + sym_operator = 40, + sym_operation = 41, + sym_control_flow = 42, + sym_tool = 43, + aux_sym_root_repeat1 = 44, + aux_sym_list_repeat1 = 45, + aux_sym_function_repeat1 = 46, + aux_sym_function_repeat2 = 47, + aux_sym_table_repeat1 = 48, + aux_sym_map_repeat1 = 49, }; static const char * const ts_symbol_names[] = { @@ -85,9 +88,10 @@ static const char * const ts_symbol_names[] = { [anon_sym_LBRACE] = "{", [anon_sym_RBRACE] = "}", [anon_sym_table] = "table", + [anon_sym_map] = "map", + [anon_sym_EQ] = "=", [anon_sym_PLUS] = "+", [anon_sym_DASH] = "-", - [anon_sym_EQ] = "=", [anon_sym_EQ_EQ] = "==", [anon_sym_if] = "if", [anon_sym_then] = "then", @@ -104,6 +108,7 @@ static const char * const ts_symbol_names[] = { [sym_list] = "list", [sym_function] = "function", [sym_table] = "table", + [sym_map] = "map", [sym_operator] = "operator", [sym_operation] = "operation", [sym_control_flow] = "control_flow", @@ -113,6 +118,7 @@ static const char * const ts_symbol_names[] = { [aux_sym_function_repeat1] = "function_repeat1", [aux_sym_function_repeat2] = "function_repeat2", [aux_sym_table_repeat1] = "table_repeat1", + [aux_sym_map_repeat1] = "map_repeat1", }; static const TSSymbol ts_symbol_map[] = { @@ -135,9 +141,10 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_LBRACE] = anon_sym_LBRACE, [anon_sym_RBRACE] = anon_sym_RBRACE, [anon_sym_table] = anon_sym_table, + [anon_sym_map] = anon_sym_map, + [anon_sym_EQ] = anon_sym_EQ, [anon_sym_PLUS] = anon_sym_PLUS, [anon_sym_DASH] = anon_sym_DASH, - [anon_sym_EQ] = anon_sym_EQ, [anon_sym_EQ_EQ] = anon_sym_EQ_EQ, [anon_sym_if] = anon_sym_if, [anon_sym_then] = anon_sym_then, @@ -154,6 +161,7 @@ static const TSSymbol ts_symbol_map[] = { [sym_list] = sym_list, [sym_function] = sym_function, [sym_table] = sym_table, + [sym_map] = sym_map, [sym_operator] = sym_operator, [sym_operation] = sym_operation, [sym_control_flow] = sym_control_flow, @@ -163,6 +171,7 @@ static const TSSymbol ts_symbol_map[] = { [aux_sym_function_repeat1] = aux_sym_function_repeat1, [aux_sym_function_repeat2] = aux_sym_function_repeat2, [aux_sym_table_repeat1] = aux_sym_table_repeat1, + [aux_sym_map_repeat1] = aux_sym_map_repeat1, }; static const TSSymbolMetadata ts_symbol_metadata[] = { @@ -242,6 +251,14 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_map] = { + .visible = true, + .named = false, + }, + [anon_sym_EQ] = { + .visible = true, + .named = false, + }, [anon_sym_PLUS] = { .visible = true, .named = false, @@ -250,10 +267,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [anon_sym_EQ] = { - .visible = true, - .named = false, - }, [anon_sym_EQ_EQ] = { .visible = true, .named = false, @@ -318,6 +331,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym_map] = { + .visible = true, + .named = true, + }, [sym_operator] = { .visible = true, .named = true, @@ -354,6 +371,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, + [aux_sym_map_repeat1] = { + .visible = false, + .named = false, + }, }; static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = { @@ -397,8 +418,8 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [29] = 29, [30] = 30, [31] = 31, - [32] = 32, - [33] = 24, + [32] = 25, + [33] = 33, [34] = 34, [35] = 35, [36] = 36, @@ -428,6 +449,9 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [60] = 60, [61] = 61, [62] = 62, + [63] = 63, + [64] = 64, + [65] = 65, }; static bool ts_lex(TSLexer *lexer, TSStateId state) { @@ -442,11 +466,11 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == '#') ADVANCE(3); if (lookahead == '(') ADVANCE(11); if (lookahead == ')') ADVANCE(13); - if (lookahead == '+') ADVANCE(18); + if (lookahead == '+') ADVANCE(19); if (lookahead == ',') ADVANCE(12); - if (lookahead == '-') ADVANCE(19); + if (lookahead == '-') ADVANCE(20); if (lookahead == '<') ADVANCE(14); - if (lookahead == '=') ADVANCE(20); + if (lookahead == '=') ADVANCE(18); if (lookahead == '>') ADVANCE(15); if (lookahead == '{') ADVANCE(16); if (lookahead == '}') ADVANCE(17); @@ -534,15 +558,15 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { ACCEPT_TOKEN(anon_sym_RBRACE); END_STATE(); case 18: - ACCEPT_TOKEN(anon_sym_PLUS); - END_STATE(); - case 19: - ACCEPT_TOKEN(anon_sym_DASH); - END_STATE(); - case 20: ACCEPT_TOKEN(anon_sym_EQ); if (lookahead == '=') ADVANCE(21); END_STATE(); + case 19: + ACCEPT_TOKEN(anon_sym_PLUS); + END_STATE(); + case 20: + ACCEPT_TOKEN(anon_sym_DASH); + END_STATE(); case 21: ACCEPT_TOKEN(anon_sym_EQ_EQ); END_STATE(); @@ -559,119 +583,129 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { if (lookahead == 'e') ADVANCE(1); if (lookahead == 'f') ADVANCE(2); if (lookahead == 'i') ADVANCE(3); - if (lookahead == 'o') ADVANCE(4); - if (lookahead == 't') ADVANCE(5); + if (lookahead == 'm') ADVANCE(4); + if (lookahead == 'o') ADVANCE(5); + if (lookahead == 't') ADVANCE(6); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(0) END_STATE(); case 1: - if (lookahead == 'l') ADVANCE(6); + if (lookahead == 'l') ADVANCE(7); END_STATE(); case 2: - if (lookahead == 'a') ADVANCE(7); - if (lookahead == 'u') ADVANCE(8); + if (lookahead == 'a') ADVANCE(8); + if (lookahead == 'u') ADVANCE(9); END_STATE(); case 3: - if (lookahead == 'f') ADVANCE(9); + if (lookahead == 'f') ADVANCE(10); END_STATE(); case 4: - if (lookahead == 'u') ADVANCE(10); + if (lookahead == 'a') ADVANCE(11); END_STATE(); case 5: - if (lookahead == 'a') ADVANCE(11); - if (lookahead == 'h') ADVANCE(12); - if (lookahead == 'r') ADVANCE(13); + if (lookahead == 'u') ADVANCE(12); END_STATE(); case 6: - if (lookahead == 's') ADVANCE(14); + if (lookahead == 'a') ADVANCE(13); + if (lookahead == 'h') ADVANCE(14); + if (lookahead == 'r') ADVANCE(15); END_STATE(); case 7: - if (lookahead == 'l') ADVANCE(15); + if (lookahead == 's') ADVANCE(16); END_STATE(); case 8: - if (lookahead == 'n') ADVANCE(16); + if (lookahead == 'l') ADVANCE(17); END_STATE(); case 9: - ACCEPT_TOKEN(anon_sym_if); + if (lookahead == 'n') ADVANCE(18); END_STATE(); case 10: - if (lookahead == 't') ADVANCE(17); + ACCEPT_TOKEN(anon_sym_if); END_STATE(); case 11: - if (lookahead == 'b') ADVANCE(18); + if (lookahead == 'p') ADVANCE(19); END_STATE(); case 12: - if (lookahead == 'e') ADVANCE(19); + if (lookahead == 't') ADVANCE(20); END_STATE(); case 13: - if (lookahead == 'u') ADVANCE(20); + if (lookahead == 'b') ADVANCE(21); END_STATE(); case 14: - if (lookahead == 'e') ADVANCE(21); + if (lookahead == 'e') ADVANCE(22); END_STATE(); case 15: - if (lookahead == 's') ADVANCE(22); + if (lookahead == 'u') ADVANCE(23); END_STATE(); case 16: - if (lookahead == 'c') ADVANCE(23); + if (lookahead == 'e') ADVANCE(24); END_STATE(); case 17: - if (lookahead == 'p') ADVANCE(24); + if (lookahead == 's') ADVANCE(25); END_STATE(); case 18: - if (lookahead == 'l') ADVANCE(25); + if (lookahead == 'c') ADVANCE(26); END_STATE(); case 19: - if (lookahead == 'n') ADVANCE(26); + ACCEPT_TOKEN(anon_sym_map); END_STATE(); case 20: - if (lookahead == 'e') ADVANCE(27); + if (lookahead == 'p') ADVANCE(27); END_STATE(); case 21: - ACCEPT_TOKEN(anon_sym_else); + if (lookahead == 'l') ADVANCE(28); END_STATE(); case 22: - if (lookahead == 'e') ADVANCE(28); + if (lookahead == 'n') ADVANCE(29); END_STATE(); case 23: - if (lookahead == 't') ADVANCE(29); + if (lookahead == 'e') ADVANCE(30); END_STATE(); case 24: - if (lookahead == 'u') ADVANCE(30); + ACCEPT_TOKEN(anon_sym_else); END_STATE(); case 25: if (lookahead == 'e') ADVANCE(31); END_STATE(); case 26: - ACCEPT_TOKEN(anon_sym_then); + if (lookahead == 't') ADVANCE(32); END_STATE(); case 27: - ACCEPT_TOKEN(anon_sym_true); + if (lookahead == 'u') ADVANCE(33); END_STATE(); case 28: - ACCEPT_TOKEN(anon_sym_false); + if (lookahead == 'e') ADVANCE(34); END_STATE(); case 29: - if (lookahead == 'i') ADVANCE(32); + ACCEPT_TOKEN(anon_sym_then); END_STATE(); case 30: - if (lookahead == 't') ADVANCE(33); + ACCEPT_TOKEN(anon_sym_true); END_STATE(); case 31: - ACCEPT_TOKEN(anon_sym_table); + ACCEPT_TOKEN(anon_sym_false); END_STATE(); case 32: - if (lookahead == 'o') ADVANCE(34); + if (lookahead == 'i') ADVANCE(35); END_STATE(); case 33: - ACCEPT_TOKEN(anon_sym_output); + if (lookahead == 't') ADVANCE(36); END_STATE(); case 34: - if (lookahead == 'n') ADVANCE(35); + ACCEPT_TOKEN(anon_sym_table); END_STATE(); case 35: + if (lookahead == 'o') ADVANCE(37); + END_STATE(); + case 36: + ACCEPT_TOKEN(anon_sym_output); + END_STATE(); + case 37: + if (lookahead == 'n') ADVANCE(38); + END_STATE(); + case 38: ACCEPT_TOKEN(anon_sym_function); END_STATE(); default: @@ -739,10 +773,13 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [56] = {.lex_state = 0}, [57] = {.lex_state = 0}, [58] = {.lex_state = 0}, - [59] = {.lex_state = 4}, - [60] = {.lex_state = 0}, + [59] = {.lex_state = 0}, + [60] = {.lex_state = 4}, [61] = {.lex_state = 0}, [62] = {.lex_state = 0}, + [63] = {.lex_state = 0}, + [64] = {.lex_state = 0}, + [65] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -765,9 +802,10 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_LBRACE] = ACTIONS(1), [anon_sym_RBRACE] = ACTIONS(1), [anon_sym_table] = ACTIONS(1), + [anon_sym_map] = ACTIONS(1), + [anon_sym_EQ] = ACTIONS(1), [anon_sym_PLUS] = ACTIONS(1), [anon_sym_DASH] = ACTIONS(1), - [anon_sym_EQ] = ACTIONS(1), [anon_sym_EQ_EQ] = ACTIONS(1), [anon_sym_if] = ACTIONS(1), [anon_sym_then] = ACTIONS(1), @@ -777,18 +815,19 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [1] = { [sym_root] = STATE(61), [sym_item] = STATE(3), - [sym_comment] = STATE(38), - [sym_statement] = STATE(38), - [sym_open_statement] = STATE(30), - [sym_expression] = STATE(33), - [sym_value] = STATE(27), - [sym_boolean] = STATE(13), - [sym_list] = STATE(13), - [sym_function] = STATE(13), - [sym_table] = STATE(13), - [sym_operation] = STATE(27), - [sym_control_flow] = STATE(27), - [sym_tool] = STATE(27), + [sym_comment] = STATE(37), + [sym_statement] = STATE(37), + [sym_open_statement] = STATE(28), + [sym_expression] = STATE(32), + [sym_value] = STATE(31), + [sym_boolean] = STATE(17), + [sym_list] = STATE(17), + [sym_function] = STATE(17), + [sym_table] = STATE(17), + [sym_map] = STATE(17), + [sym_operation] = STATE(31), + [sym_control_flow] = STATE(31), + [sym_tool] = STATE(31), [aux_sym_root_repeat1] = STATE(3), [sym_identifier] = ACTIONS(3), [anon_sym_POUND] = ACTIONS(5), @@ -801,55 +840,59 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_LPAREN] = ACTIONS(13), [anon_sym_function] = ACTIONS(15), [anon_sym_table] = ACTIONS(17), - [anon_sym_if] = ACTIONS(19), - [anon_sym_output] = ACTIONS(21), + [anon_sym_map] = ACTIONS(19), + [anon_sym_if] = ACTIONS(21), + [anon_sym_output] = ACTIONS(23), }, [2] = { [sym_item] = STATE(2), - [sym_comment] = STATE(38), - [sym_statement] = STATE(38), - [sym_open_statement] = STATE(30), - [sym_expression] = STATE(33), - [sym_value] = STATE(27), - [sym_boolean] = STATE(13), - [sym_list] = STATE(13), - [sym_function] = STATE(13), - [sym_table] = STATE(13), - [sym_operation] = STATE(27), - [sym_control_flow] = STATE(27), - [sym_tool] = STATE(27), + [sym_comment] = STATE(37), + [sym_statement] = STATE(37), + [sym_open_statement] = STATE(28), + [sym_expression] = STATE(32), + [sym_value] = STATE(31), + [sym_boolean] = STATE(17), + [sym_list] = STATE(17), + [sym_function] = STATE(17), + [sym_table] = STATE(17), + [sym_map] = STATE(17), + [sym_operation] = STATE(31), + [sym_control_flow] = STATE(31), + [sym_tool] = STATE(31), [aux_sym_root_repeat1] = STATE(2), - [ts_builtin_sym_end] = ACTIONS(23), - [sym_identifier] = ACTIONS(25), - [anon_sym_POUND] = ACTIONS(28), - [sym_float] = ACTIONS(31), - [sym_integer] = ACTIONS(34), - [sym_string] = ACTIONS(31), - [sym_empty] = ACTIONS(31), - [anon_sym_true] = ACTIONS(37), - [anon_sym_false] = ACTIONS(37), - [anon_sym_LPAREN] = ACTIONS(40), - [anon_sym_function] = ACTIONS(43), - [anon_sym_table] = ACTIONS(46), - [anon_sym_if] = ACTIONS(49), - [anon_sym_output] = ACTIONS(52), + [ts_builtin_sym_end] = ACTIONS(25), + [sym_identifier] = ACTIONS(27), + [anon_sym_POUND] = ACTIONS(30), + [sym_float] = ACTIONS(33), + [sym_integer] = ACTIONS(36), + [sym_string] = ACTIONS(33), + [sym_empty] = ACTIONS(33), + [anon_sym_true] = ACTIONS(39), + [anon_sym_false] = ACTIONS(39), + [anon_sym_LPAREN] = ACTIONS(42), + [anon_sym_function] = ACTIONS(45), + [anon_sym_table] = ACTIONS(48), + [anon_sym_map] = ACTIONS(51), + [anon_sym_if] = ACTIONS(54), + [anon_sym_output] = ACTIONS(57), }, [3] = { [sym_item] = STATE(2), - [sym_comment] = STATE(38), - [sym_statement] = STATE(38), - [sym_open_statement] = STATE(30), - [sym_expression] = STATE(33), - [sym_value] = STATE(27), - [sym_boolean] = STATE(13), - [sym_list] = STATE(13), - [sym_function] = STATE(13), - [sym_table] = STATE(13), - [sym_operation] = STATE(27), - [sym_control_flow] = STATE(27), - [sym_tool] = STATE(27), + [sym_comment] = STATE(37), + [sym_statement] = STATE(37), + [sym_open_statement] = STATE(28), + [sym_expression] = STATE(32), + [sym_value] = STATE(31), + [sym_boolean] = STATE(17), + [sym_list] = STATE(17), + [sym_function] = STATE(17), + [sym_table] = STATE(17), + [sym_map] = STATE(17), + [sym_operation] = STATE(31), + [sym_control_flow] = STATE(31), + [sym_tool] = STATE(31), [aux_sym_root_repeat1] = STATE(2), - [ts_builtin_sym_end] = ACTIONS(55), + [ts_builtin_sym_end] = ACTIONS(60), [sym_identifier] = ACTIONS(3), [anon_sym_POUND] = ACTIONS(5), [sym_float] = ACTIONS(7), @@ -861,21 +904,23 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_LPAREN] = ACTIONS(13), [anon_sym_function] = ACTIONS(15), [anon_sym_table] = ACTIONS(17), - [anon_sym_if] = ACTIONS(19), - [anon_sym_output] = ACTIONS(21), + [anon_sym_map] = ACTIONS(19), + [anon_sym_if] = ACTIONS(21), + [anon_sym_output] = ACTIONS(23), }, [4] = { [sym_statement] = STATE(6), - [sym_open_statement] = STATE(30), - [sym_expression] = STATE(33), - [sym_value] = STATE(27), - [sym_boolean] = STATE(13), - [sym_list] = STATE(13), - [sym_function] = STATE(13), - [sym_table] = STATE(13), - [sym_operation] = STATE(27), - [sym_control_flow] = STATE(27), - [sym_tool] = STATE(27), + [sym_open_statement] = STATE(28), + [sym_expression] = STATE(32), + [sym_value] = STATE(31), + [sym_boolean] = STATE(17), + [sym_list] = STATE(17), + [sym_function] = STATE(17), + [sym_table] = STATE(17), + [sym_map] = STATE(17), + [sym_operation] = STATE(31), + [sym_control_flow] = STATE(31), + [sym_tool] = STATE(31), [aux_sym_function_repeat2] = STATE(6), [sym_identifier] = ACTIONS(3), [sym_float] = ACTIONS(7), @@ -886,23 +931,25 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_false] = ACTIONS(11), [anon_sym_LPAREN] = ACTIONS(13), [anon_sym_function] = ACTIONS(15), - [anon_sym_RBRACE] = ACTIONS(57), + [anon_sym_RBRACE] = ACTIONS(62), [anon_sym_table] = ACTIONS(17), - [anon_sym_if] = ACTIONS(19), - [anon_sym_output] = ACTIONS(21), + [anon_sym_map] = ACTIONS(19), + [anon_sym_if] = ACTIONS(21), + [anon_sym_output] = ACTIONS(23), }, [5] = { [sym_statement] = STATE(6), - [sym_open_statement] = STATE(30), - [sym_expression] = STATE(33), - [sym_value] = STATE(27), - [sym_boolean] = STATE(13), - [sym_list] = STATE(13), - [sym_function] = STATE(13), - [sym_table] = STATE(13), - [sym_operation] = STATE(27), - [sym_control_flow] = STATE(27), - [sym_tool] = STATE(27), + [sym_open_statement] = STATE(28), + [sym_expression] = STATE(32), + [sym_value] = STATE(31), + [sym_boolean] = STATE(17), + [sym_list] = STATE(17), + [sym_function] = STATE(17), + [sym_table] = STATE(17), + [sym_map] = STATE(17), + [sym_operation] = STATE(31), + [sym_control_flow] = STATE(31), + [sym_tool] = STATE(31), [aux_sym_function_repeat2] = STATE(6), [sym_identifier] = ACTIONS(3), [sym_float] = ACTIONS(7), @@ -913,50 +960,111 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_false] = ACTIONS(11), [anon_sym_LPAREN] = ACTIONS(13), [anon_sym_function] = ACTIONS(15), - [anon_sym_RBRACE] = ACTIONS(59), + [anon_sym_RBRACE] = ACTIONS(64), [anon_sym_table] = ACTIONS(17), - [anon_sym_if] = ACTIONS(19), - [anon_sym_output] = ACTIONS(21), + [anon_sym_map] = ACTIONS(19), + [anon_sym_if] = ACTIONS(21), + [anon_sym_output] = ACTIONS(23), }, [6] = { [sym_statement] = STATE(6), - [sym_open_statement] = STATE(30), - [sym_expression] = STATE(33), - [sym_value] = STATE(27), - [sym_boolean] = STATE(13), - [sym_list] = STATE(13), - [sym_function] = STATE(13), - [sym_table] = STATE(13), - [sym_operation] = STATE(27), - [sym_control_flow] = STATE(27), - [sym_tool] = STATE(27), + [sym_open_statement] = STATE(28), + [sym_expression] = STATE(32), + [sym_value] = STATE(31), + [sym_boolean] = STATE(17), + [sym_list] = STATE(17), + [sym_function] = STATE(17), + [sym_table] = STATE(17), + [sym_map] = STATE(17), + [sym_operation] = STATE(31), + [sym_control_flow] = STATE(31), + [sym_tool] = STATE(31), [aux_sym_function_repeat2] = STATE(6), - [sym_identifier] = ACTIONS(61), - [sym_float] = ACTIONS(64), - [sym_integer] = ACTIONS(67), - [sym_string] = ACTIONS(64), - [sym_empty] = ACTIONS(64), - [anon_sym_true] = ACTIONS(70), - [anon_sym_false] = ACTIONS(70), - [anon_sym_LPAREN] = ACTIONS(73), - [anon_sym_function] = ACTIONS(76), - [anon_sym_RBRACE] = ACTIONS(79), - [anon_sym_table] = ACTIONS(81), - [anon_sym_if] = ACTIONS(84), - [anon_sym_output] = ACTIONS(87), + [sym_identifier] = ACTIONS(66), + [sym_float] = ACTIONS(69), + [sym_integer] = ACTIONS(72), + [sym_string] = ACTIONS(69), + [sym_empty] = ACTIONS(69), + [anon_sym_true] = ACTIONS(75), + [anon_sym_false] = ACTIONS(75), + [anon_sym_LPAREN] = ACTIONS(78), + [anon_sym_function] = ACTIONS(81), + [anon_sym_RBRACE] = ACTIONS(84), + [anon_sym_table] = ACTIONS(86), + [anon_sym_map] = ACTIONS(89), + [anon_sym_if] = ACTIONS(92), + [anon_sym_output] = ACTIONS(95), }, [7] = { + [sym_statement] = STATE(6), + [sym_open_statement] = STATE(28), + [sym_expression] = STATE(32), + [sym_value] = STATE(31), + [sym_boolean] = STATE(17), + [sym_list] = STATE(17), + [sym_function] = STATE(17), + [sym_table] = STATE(17), + [sym_map] = STATE(17), + [sym_operation] = STATE(31), + [sym_control_flow] = STATE(31), + [sym_tool] = STATE(31), + [aux_sym_function_repeat2] = STATE(6), + [sym_identifier] = ACTIONS(3), + [sym_float] = ACTIONS(7), + [sym_integer] = ACTIONS(9), + [sym_string] = ACTIONS(7), + [sym_empty] = ACTIONS(7), + [anon_sym_true] = ACTIONS(11), + [anon_sym_false] = ACTIONS(11), + [anon_sym_LPAREN] = ACTIONS(13), + [anon_sym_function] = ACTIONS(15), + [anon_sym_RBRACE] = ACTIONS(98), + [anon_sym_table] = ACTIONS(17), + [anon_sym_map] = ACTIONS(19), + [anon_sym_if] = ACTIONS(21), + [anon_sym_output] = ACTIONS(23), + }, + [8] = { + [sym_statement] = STATE(7), + [sym_open_statement] = STATE(28), + [sym_expression] = STATE(32), + [sym_value] = STATE(31), + [sym_boolean] = STATE(17), + [sym_list] = STATE(17), + [sym_function] = STATE(17), + [sym_table] = STATE(17), + [sym_map] = STATE(17), + [sym_operation] = STATE(31), + [sym_control_flow] = STATE(31), + [sym_tool] = STATE(31), + [aux_sym_function_repeat2] = STATE(7), + [sym_identifier] = ACTIONS(3), + [sym_float] = ACTIONS(7), + [sym_integer] = ACTIONS(9), + [sym_string] = ACTIONS(7), + [sym_empty] = ACTIONS(7), + [anon_sym_true] = ACTIONS(11), + [anon_sym_false] = ACTIONS(11), + [anon_sym_LPAREN] = ACTIONS(13), + [anon_sym_function] = ACTIONS(15), + [anon_sym_table] = ACTIONS(17), + [anon_sym_map] = ACTIONS(19), + [anon_sym_if] = ACTIONS(21), + [anon_sym_output] = ACTIONS(23), + }, + [9] = { [sym_statement] = STATE(5), - [sym_open_statement] = STATE(30), - [sym_expression] = STATE(33), - [sym_value] = STATE(27), - [sym_boolean] = STATE(13), - [sym_list] = STATE(13), - [sym_function] = STATE(13), - [sym_table] = STATE(13), - [sym_operation] = STATE(27), - [sym_control_flow] = STATE(27), - [sym_tool] = STATE(27), + [sym_open_statement] = STATE(28), + [sym_expression] = STATE(32), + [sym_value] = STATE(31), + [sym_boolean] = STATE(17), + [sym_list] = STATE(17), + [sym_function] = STATE(17), + [sym_table] = STATE(17), + [sym_map] = STATE(17), + [sym_operation] = STATE(31), + [sym_control_flow] = STATE(31), + [sym_tool] = STATE(31), [aux_sym_function_repeat2] = STATE(5), [sym_identifier] = ACTIONS(3), [sym_float] = ACTIONS(7), @@ -967,50 +1075,24 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_false] = ACTIONS(11), [anon_sym_LPAREN] = ACTIONS(13), [anon_sym_function] = ACTIONS(15), - [anon_sym_RBRACE] = ACTIONS(90), [anon_sym_table] = ACTIONS(17), - [anon_sym_if] = ACTIONS(19), - [anon_sym_output] = ACTIONS(21), + [anon_sym_map] = ACTIONS(19), + [anon_sym_if] = ACTIONS(21), + [anon_sym_output] = ACTIONS(23), }, - [8] = { - [sym_statement] = STATE(6), - [sym_open_statement] = STATE(30), - [sym_expression] = STATE(33), - [sym_value] = STATE(27), - [sym_boolean] = STATE(13), - [sym_list] = STATE(13), - [sym_function] = STATE(13), - [sym_table] = STATE(13), - [sym_operation] = STATE(27), - [sym_control_flow] = STATE(27), - [sym_tool] = STATE(27), - [aux_sym_function_repeat2] = STATE(6), - [sym_identifier] = ACTIONS(3), - [sym_float] = ACTIONS(7), - [sym_integer] = ACTIONS(9), - [sym_string] = ACTIONS(7), - [sym_empty] = ACTIONS(7), - [anon_sym_true] = ACTIONS(11), - [anon_sym_false] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_function] = ACTIONS(15), - [anon_sym_RBRACE] = ACTIONS(92), - [anon_sym_table] = ACTIONS(17), - [anon_sym_if] = ACTIONS(19), - [anon_sym_output] = ACTIONS(21), - }, - [9] = { + [10] = { [sym_statement] = STATE(4), - [sym_open_statement] = STATE(30), - [sym_expression] = STATE(33), - [sym_value] = STATE(27), - [sym_boolean] = STATE(13), - [sym_list] = STATE(13), - [sym_function] = STATE(13), - [sym_table] = STATE(13), - [sym_operation] = STATE(27), - [sym_control_flow] = STATE(27), - [sym_tool] = STATE(27), + [sym_open_statement] = STATE(28), + [sym_expression] = STATE(32), + [sym_value] = STATE(31), + [sym_boolean] = STATE(17), + [sym_list] = STATE(17), + [sym_function] = STATE(17), + [sym_table] = STATE(17), + [sym_map] = STATE(17), + [sym_operation] = STATE(31), + [sym_control_flow] = STATE(31), + [sym_tool] = STATE(31), [aux_sym_function_repeat2] = STATE(4), [sym_identifier] = ACTIONS(3), [sym_float] = ACTIONS(7), @@ -1021,42 +1103,15 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_false] = ACTIONS(11), [anon_sym_LPAREN] = ACTIONS(13), [anon_sym_function] = ACTIONS(15), - [anon_sym_RBRACE] = ACTIONS(59), [anon_sym_table] = ACTIONS(17), - [anon_sym_if] = ACTIONS(19), - [anon_sym_output] = ACTIONS(21), - }, - [10] = { - [sym_statement] = STATE(8), - [sym_open_statement] = STATE(30), - [sym_expression] = STATE(33), - [sym_value] = STATE(27), - [sym_boolean] = STATE(13), - [sym_list] = STATE(13), - [sym_function] = STATE(13), - [sym_table] = STATE(13), - [sym_operation] = STATE(27), - [sym_control_flow] = STATE(27), - [sym_tool] = STATE(27), - [aux_sym_function_repeat2] = STATE(8), - [sym_identifier] = ACTIONS(3), - [sym_float] = ACTIONS(7), - [sym_integer] = ACTIONS(9), - [sym_string] = ACTIONS(7), - [sym_empty] = ACTIONS(7), - [anon_sym_true] = ACTIONS(11), - [anon_sym_false] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_function] = ACTIONS(15), - [anon_sym_RBRACE] = ACTIONS(94), - [anon_sym_table] = ACTIONS(17), - [anon_sym_if] = ACTIONS(19), - [anon_sym_output] = ACTIONS(21), + [anon_sym_map] = ACTIONS(19), + [anon_sym_if] = ACTIONS(21), + [anon_sym_output] = ACTIONS(23), }, }; static const uint16_t ts_small_parse_table[] = { - [0] = 14, + [0] = 15, ACTIONS(3), 1, sym_identifier, ACTIONS(9), 1, @@ -1068,14 +1123,57 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(17), 1, anon_sym_table, ACTIONS(19), 1, - anon_sym_if, + anon_sym_map, ACTIONS(21), 1, + anon_sym_if, + ACTIONS(23), 1, anon_sym_output, - STATE(24), 1, + STATE(25), 1, sym_expression, - STATE(30), 1, + STATE(27), 1, + sym_statement, + STATE(28), 1, sym_open_statement, - STATE(31), 1, + ACTIONS(11), 2, + anon_sym_true, + anon_sym_false, + ACTIONS(7), 3, + sym_float, + sym_string, + sym_empty, + STATE(31), 4, + sym_value, + sym_operation, + sym_control_flow, + sym_tool, + STATE(17), 5, + sym_boolean, + sym_list, + sym_function, + sym_table, + sym_map, + [56] = 15, + ACTIONS(3), 1, + sym_identifier, + ACTIONS(9), 1, + sym_integer, + ACTIONS(13), 1, + anon_sym_LPAREN, + ACTIONS(15), 1, + anon_sym_function, + ACTIONS(17), 1, + anon_sym_table, + ACTIONS(19), 1, + anon_sym_map, + ACTIONS(21), 1, + anon_sym_if, + ACTIONS(23), 1, + anon_sym_output, + STATE(25), 1, + sym_expression, + STATE(28), 1, + sym_open_statement, + STATE(29), 1, sym_statement, ACTIONS(11), 2, anon_sym_true, @@ -1084,43 +1182,18 @@ static const uint16_t ts_small_parse_table[] = { sym_float, sym_string, sym_empty, - STATE(13), 4, - sym_boolean, - sym_list, - sym_function, - sym_table, - STATE(27), 4, + STATE(31), 4, sym_value, sym_operation, sym_control_flow, sym_tool, - [52] = 2, - ACTIONS(96), 11, - ts_builtin_sym_end, - anon_sym_POUND, - sym_float, - sym_string, - sym_empty, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_RBRACE, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ_EQ, - ACTIONS(98), 12, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_LPAREN, - anon_sym_function, - anon_sym_table, - anon_sym_EQ, - anon_sym_if, - anon_sym_then, - anon_sym_else, - anon_sym_output, - [80] = 2, + STATE(17), 5, + sym_boolean, + sym_list, + sym_function, + sym_table, + sym_map, + [112] = 2, ACTIONS(100), 11, ts_builtin_sym_end, anon_sym_POUND, @@ -1133,7 +1206,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, anon_sym_DASH, anon_sym_EQ_EQ, - ACTIONS(102), 12, + ACTIONS(102), 13, sym_identifier, sym_integer, anon_sym_true, @@ -1141,12 +1214,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_function, anon_sym_table, + anon_sym_map, anon_sym_EQ, anon_sym_if, anon_sym_then, anon_sym_else, anon_sym_output, - [108] = 2, + [141] = 2, ACTIONS(104), 11, ts_builtin_sym_end, anon_sym_POUND, @@ -1159,7 +1233,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, anon_sym_DASH, anon_sym_EQ_EQ, - ACTIONS(106), 12, + ACTIONS(106), 13, sym_identifier, sym_integer, anon_sym_true, @@ -1167,12 +1241,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_function, anon_sym_table, + anon_sym_map, anon_sym_EQ, anon_sym_if, anon_sym_then, anon_sym_else, anon_sym_output, - [136] = 2, + [170] = 2, ACTIONS(108), 11, ts_builtin_sym_end, anon_sym_POUND, @@ -1185,7 +1260,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, anon_sym_DASH, anon_sym_EQ_EQ, - ACTIONS(110), 12, + ACTIONS(110), 13, sym_identifier, sym_integer, anon_sym_true, @@ -1193,50 +1268,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_function, anon_sym_table, + anon_sym_map, anon_sym_EQ, anon_sym_if, anon_sym_then, anon_sym_else, anon_sym_output, - [164] = 14, - ACTIONS(3), 1, - sym_identifier, - ACTIONS(9), 1, - sym_integer, - ACTIONS(13), 1, - anon_sym_LPAREN, - ACTIONS(15), 1, - anon_sym_function, - ACTIONS(17), 1, - anon_sym_table, - ACTIONS(19), 1, - anon_sym_if, - ACTIONS(21), 1, - anon_sym_output, - STATE(24), 1, - sym_expression, - STATE(29), 1, - sym_statement, - STATE(30), 1, - sym_open_statement, - ACTIONS(11), 2, - anon_sym_true, - anon_sym_false, - ACTIONS(7), 3, - sym_float, - sym_string, - sym_empty, - STATE(13), 4, - sym_boolean, - sym_list, - sym_function, - sym_table, - STATE(27), 4, - sym_value, - sym_operation, - sym_control_flow, - sym_tool, - [216] = 2, + [199] = 2, ACTIONS(112), 11, ts_builtin_sym_end, anon_sym_POUND, @@ -1249,7 +1287,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, anon_sym_DASH, anon_sym_EQ_EQ, - ACTIONS(114), 12, + ACTIONS(114), 13, sym_identifier, sym_integer, anon_sym_true, @@ -1257,12 +1295,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_function, anon_sym_table, + anon_sym_map, anon_sym_EQ, anon_sym_if, anon_sym_then, anon_sym_else, anon_sym_output, - [244] = 2, + [228] = 2, ACTIONS(116), 11, ts_builtin_sym_end, anon_sym_POUND, @@ -1275,7 +1314,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, anon_sym_DASH, anon_sym_EQ_EQ, - ACTIONS(118), 12, + ACTIONS(118), 13, sym_identifier, sym_integer, anon_sym_true, @@ -1283,12 +1322,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_function, anon_sym_table, + anon_sym_map, anon_sym_EQ, anon_sym_if, anon_sym_then, anon_sym_else, anon_sym_output, - [272] = 2, + [257] = 2, ACTIONS(120), 11, ts_builtin_sym_end, anon_sym_POUND, @@ -1301,7 +1341,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, anon_sym_DASH, anon_sym_EQ_EQ, - ACTIONS(122), 12, + ACTIONS(122), 13, sym_identifier, sym_integer, anon_sym_true, @@ -1309,12 +1349,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_function, anon_sym_table, + anon_sym_map, anon_sym_EQ, anon_sym_if, anon_sym_then, anon_sym_else, anon_sym_output, - [300] = 2, + [286] = 2, ACTIONS(124), 11, ts_builtin_sym_end, anon_sym_POUND, @@ -1327,7 +1368,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, anon_sym_DASH, anon_sym_EQ_EQ, - ACTIONS(126), 12, + ACTIONS(126), 13, sym_identifier, sym_integer, anon_sym_true, @@ -1335,12 +1376,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_function, anon_sym_table, + anon_sym_map, anon_sym_EQ, anon_sym_if, anon_sym_then, anon_sym_else, anon_sym_output, - [328] = 2, + [315] = 2, ACTIONS(128), 11, ts_builtin_sym_end, anon_sym_POUND, @@ -1353,7 +1395,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, anon_sym_DASH, anon_sym_EQ_EQ, - ACTIONS(130), 12, + ACTIONS(130), 13, sym_identifier, sym_integer, anon_sym_true, @@ -1361,12 +1403,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_function, anon_sym_table, + anon_sym_map, anon_sym_EQ, anon_sym_if, anon_sym_then, anon_sym_else, anon_sym_output, - [356] = 2, + [344] = 2, ACTIONS(132), 11, ts_builtin_sym_end, anon_sym_POUND, @@ -1379,7 +1422,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, anon_sym_DASH, anon_sym_EQ_EQ, - ACTIONS(134), 12, + ACTIONS(134), 13, sym_identifier, sym_integer, anon_sym_true, @@ -1387,12 +1430,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_function, anon_sym_table, + anon_sym_map, anon_sym_EQ, anon_sym_if, anon_sym_then, anon_sym_else, anon_sym_output, - [384] = 2, + [373] = 2, ACTIONS(136), 11, ts_builtin_sym_end, anon_sym_POUND, @@ -1405,7 +1449,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, anon_sym_DASH, anon_sym_EQ_EQ, - ACTIONS(138), 12, + ACTIONS(138), 13, sym_identifier, sym_integer, anon_sym_true, @@ -1413,12 +1457,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_function, anon_sym_table, + anon_sym_map, anon_sym_EQ, anon_sym_if, anon_sym_then, anon_sym_else, anon_sym_output, - [412] = 3, + [402] = 3, STATE(26), 1, sym_operator, ACTIONS(140), 9, @@ -1431,7 +1476,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, anon_sym_DASH, anon_sym_EQ_EQ, - ACTIONS(142), 12, + ACTIONS(142), 13, sym_identifier, sym_integer, anon_sym_true, @@ -1439,12 +1484,50 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_function, anon_sym_table, + anon_sym_map, anon_sym_EQ, anon_sym_if, anon_sym_then, anon_sym_else, anon_sym_output, - [441] = 3, + [432] = 13, + ACTIONS(3), 1, + sym_identifier, + ACTIONS(9), 1, + sym_integer, + ACTIONS(13), 1, + anon_sym_LPAREN, + ACTIONS(15), 1, + anon_sym_function, + ACTIONS(17), 1, + anon_sym_table, + ACTIONS(19), 1, + anon_sym_map, + ACTIONS(21), 1, + anon_sym_if, + ACTIONS(23), 1, + anon_sym_output, + STATE(42), 1, + sym_expression, + ACTIONS(11), 2, + anon_sym_true, + anon_sym_false, + ACTIONS(7), 3, + sym_float, + sym_string, + sym_empty, + STATE(31), 4, + sym_value, + sym_operation, + sym_control_flow, + sym_tool, + STATE(17), 5, + sym_boolean, + sym_list, + sym_function, + sym_table, + sym_map, + [482] = 3, STATE(26), 1, sym_operator, ACTIONS(144), 9, @@ -1457,7 +1540,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, anon_sym_DASH, anon_sym_EQ_EQ, - ACTIONS(146), 12, + ACTIONS(146), 13, sym_identifier, sym_integer, anon_sym_true, @@ -1465,12 +1548,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_function, anon_sym_table, + anon_sym_map, anon_sym_EQ, anon_sym_if, anon_sym_then, anon_sym_else, anon_sym_output, - [470] = 12, + [512] = 13, ACTIONS(3), 1, sym_identifier, ACTIONS(9), 1, @@ -1482,10 +1566,12 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(17), 1, anon_sym_table, ACTIONS(19), 1, - anon_sym_if, + anon_sym_map, ACTIONS(21), 1, + anon_sym_if, + ACTIONS(23), 1, anon_sym_output, - STATE(25), 1, + STATE(23), 1, sym_expression, ACTIONS(11), 2, anon_sym_true, @@ -1494,17 +1580,18 @@ static const uint16_t ts_small_parse_table[] = { sym_float, sym_string, sym_empty, - STATE(13), 4, - sym_boolean, - sym_list, - sym_function, - sym_table, - STATE(27), 4, + STATE(31), 4, sym_value, sym_operation, sym_control_flow, sym_tool, - [516] = 2, + STATE(17), 5, + sym_boolean, + sym_list, + sym_function, + sym_table, + sym_map, + [562] = 2, ACTIONS(148), 9, ts_builtin_sym_end, anon_sym_POUND, @@ -1515,7 +1602,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, anon_sym_DASH, anon_sym_EQ_EQ, - ACTIONS(150), 12, + ACTIONS(150), 13, sym_identifier, sym_integer, anon_sym_true, @@ -1523,48 +1610,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_function, anon_sym_table, + anon_sym_map, anon_sym_EQ, anon_sym_if, anon_sym_then, anon_sym_else, anon_sym_output, - [542] = 12, - ACTIONS(3), 1, - sym_identifier, - ACTIONS(9), 1, - sym_integer, - ACTIONS(13), 1, - anon_sym_LPAREN, - ACTIONS(15), 1, - anon_sym_function, - ACTIONS(17), 1, - anon_sym_table, - ACTIONS(19), 1, - anon_sym_if, - ACTIONS(21), 1, - anon_sym_output, - STATE(42), 1, - sym_expression, - ACTIONS(11), 2, - anon_sym_true, - anon_sym_false, - ACTIONS(7), 3, - sym_float, - sym_string, - sym_empty, - STATE(13), 4, - sym_boolean, - sym_list, - sym_function, - sym_table, - STATE(27), 4, - sym_value, - sym_operation, - sym_control_flow, - sym_tool, - [588] = 3, - ACTIONS(156), 1, - anon_sym_else, + [589] = 2, ACTIONS(152), 9, ts_builtin_sym_end, anon_sym_POUND, @@ -1575,7 +1627,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, anon_sym_DASH, anon_sym_EQ_EQ, - ACTIONS(154), 11, + ACTIONS(154), 13, sym_identifier, sym_integer, anon_sym_true, @@ -1583,12 +1635,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_function, anon_sym_table, + anon_sym_map, anon_sym_EQ, anon_sym_if, anon_sym_then, + anon_sym_else, anon_sym_output, - [616] = 2, - ACTIONS(158), 9, + [616] = 3, + ACTIONS(160), 1, + anon_sym_else, + ACTIONS(156), 9, ts_builtin_sym_end, anon_sym_POUND, sym_float, @@ -1598,7 +1654,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, anon_sym_DASH, anon_sym_EQ_EQ, - ACTIONS(160), 12, + ACTIONS(158), 12, sym_identifier, sym_integer, anon_sym_true, @@ -1606,12 +1662,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_function, anon_sym_table, + anon_sym_map, anon_sym_EQ, anon_sym_if, anon_sym_then, - anon_sym_else, anon_sym_output, - [642] = 2, + [645] = 2, ACTIONS(162), 9, ts_builtin_sym_end, anon_sym_POUND, @@ -1622,7 +1678,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, anon_sym_DASH, anon_sym_EQ_EQ, - ACTIONS(164), 12, + ACTIONS(164), 13, sym_identifier, sym_integer, anon_sym_true, @@ -1630,12 +1686,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_function, anon_sym_table, + anon_sym_map, anon_sym_EQ, anon_sym_if, anon_sym_then, anon_sym_else, anon_sym_output, - [668] = 2, + [672] = 2, ACTIONS(166), 9, ts_builtin_sym_end, anon_sym_POUND, @@ -1646,7 +1703,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS, anon_sym_DASH, anon_sym_EQ_EQ, - ACTIONS(168), 12, + ACTIONS(168), 13, sym_identifier, sym_integer, anon_sym_true, @@ -1654,28 +1711,29 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_function, anon_sym_table, + anon_sym_map, anon_sym_EQ, anon_sym_if, anon_sym_then, anon_sym_else, anon_sym_output, - [694] = 5, - ACTIONS(172), 1, + [699] = 5, + ACTIONS(170), 1, anon_sym_EQ, STATE(26), 1, sym_operator, - ACTIONS(170), 3, + ACTIONS(172), 3, anon_sym_PLUS, anon_sym_DASH, anon_sym_EQ_EQ, - ACTIONS(140), 6, + ACTIONS(144), 6, ts_builtin_sym_end, anon_sym_POUND, sym_float, sym_string, sym_empty, anon_sym_RBRACE, - ACTIONS(142), 9, + ACTIONS(146), 10, sym_identifier, sym_integer, anon_sym_true, @@ -1683,9 +1741,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_function, anon_sym_table, + anon_sym_map, anon_sym_if, anon_sym_output, - [725] = 10, + [731] = 11, ACTIONS(177), 1, sym_integer, ACTIONS(183), 1, @@ -1696,7 +1755,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_function, ACTIONS(191), 1, anon_sym_table, - STATE(34), 1, + ACTIONS(194), 1, + anon_sym_map, + STATE(33), 1, aux_sym_list_repeat1, STATE(40), 1, sym_value, @@ -1707,71 +1768,104 @@ static const uint16_t ts_small_parse_table[] = { sym_float, sym_string, sym_empty, - STATE(13), 4, + STATE(17), 5, sym_boolean, sym_list, sym_function, sym_table, - [762] = 10, + sym_map, + [772] = 11, ACTIONS(9), 1, sym_integer, ACTIONS(13), 1, anon_sym_LPAREN, - ACTIONS(196), 1, + ACTIONS(199), 1, anon_sym_RPAREN, - ACTIONS(198), 1, + ACTIONS(201), 1, anon_sym_function, - ACTIONS(200), 1, + ACTIONS(203), 1, anon_sym_table, + ACTIONS(205), 1, + anon_sym_map, + STATE(33), 1, + aux_sym_list_repeat1, + STATE(40), 1, + sym_value, + ACTIONS(197), 2, + anon_sym_true, + anon_sym_false, + ACTIONS(7), 3, + sym_float, + sym_string, + sym_empty, + STATE(17), 5, + sym_boolean, + sym_list, + sym_function, + sym_table, + sym_map, + [813] = 10, + ACTIONS(9), 1, + sym_integer, + ACTIONS(13), 1, + anon_sym_LPAREN, + ACTIONS(201), 1, + anon_sym_function, + ACTIONS(203), 1, + anon_sym_table, + ACTIONS(205), 1, + anon_sym_map, STATE(34), 1, aux_sym_list_repeat1, STATE(40), 1, sym_value, - ACTIONS(194), 2, + ACTIONS(197), 2, anon_sym_true, anon_sym_false, ACTIONS(7), 3, sym_float, sym_string, sym_empty, - STATE(13), 4, + STATE(17), 5, sym_boolean, sym_list, sym_function, sym_table, - [799] = 9, + sym_map, + [851] = 9, ACTIONS(9), 1, sym_integer, ACTIONS(13), 1, anon_sym_LPAREN, - ACTIONS(198), 1, + ACTIONS(201), 1, anon_sym_function, - ACTIONS(200), 1, + ACTIONS(203), 1, anon_sym_table, - STATE(35), 1, - aux_sym_list_repeat1, - STATE(40), 1, + ACTIONS(205), 1, + anon_sym_map, + STATE(56), 1, sym_value, - ACTIONS(194), 2, + ACTIONS(197), 2, anon_sym_true, anon_sym_false, ACTIONS(7), 3, sym_float, sym_string, sym_empty, - STATE(13), 4, + STATE(17), 5, sym_boolean, sym_list, sym_function, sym_table, - [833] = 2, - ACTIONS(202), 5, + sym_map, + [886] = 2, + ACTIONS(207), 5, ts_builtin_sym_end, anon_sym_POUND, sym_float, sym_string, sym_empty, - ACTIONS(204), 9, + ACTIONS(209), 10, sym_identifier, sym_integer, anon_sym_true, @@ -1779,60 +1873,50 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, anon_sym_function, anon_sym_table, + anon_sym_map, anon_sym_if, anon_sym_output, - [852] = 2, - ACTIONS(206), 5, - ts_builtin_sym_end, - anon_sym_POUND, - sym_float, - sym_string, - sym_empty, - ACTIONS(208), 9, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_LPAREN, - anon_sym_function, - anon_sym_table, - anon_sym_if, - anon_sym_output, - [871] = 2, - ACTIONS(212), 3, - sym_float, - sym_string, - sym_empty, - ACTIONS(210), 9, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_LPAREN, - anon_sym_function, - anon_sym_table, - anon_sym_if, - anon_sym_output, - [888] = 3, - ACTIONS(218), 1, - anon_sym_COMMA, - ACTIONS(216), 2, - sym_integer, - anon_sym_LPAREN, - ACTIONS(214), 8, - sym_float, - sym_string, - sym_empty, - anon_sym_true, - anon_sym_false, - anon_sym_RPAREN, - anon_sym_function, - anon_sym_table, [906] = 2, - ACTIONS(220), 2, + ACTIONS(211), 5, + ts_builtin_sym_end, + anon_sym_POUND, + sym_float, + sym_string, + sym_empty, + ACTIONS(213), 10, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_LPAREN, + anon_sym_function, + anon_sym_table, + anon_sym_map, + anon_sym_if, + anon_sym_output, + [926] = 2, + ACTIONS(217), 3, + sym_float, + sym_string, + sym_empty, + ACTIONS(215), 10, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_LPAREN, + anon_sym_function, + anon_sym_table, + anon_sym_map, + anon_sym_if, + anon_sym_output, + [944] = 3, + ACTIONS(223), 1, + anon_sym_COMMA, + ACTIONS(221), 2, sym_integer, anon_sym_LPAREN, - ACTIONS(186), 8, + ACTIONS(219), 9, sym_float, sym_string, sym_empty, @@ -1841,310 +1925,344 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, anon_sym_function, anon_sym_table, - [921] = 4, - ACTIONS(172), 1, + anon_sym_map, + [963] = 2, + ACTIONS(225), 2, + sym_integer, + anon_sym_LPAREN, + ACTIONS(186), 9, + sym_float, + sym_string, + sym_empty, + anon_sym_true, + anon_sym_false, + anon_sym_RPAREN, + anon_sym_function, + anon_sym_table, + anon_sym_map, + [979] = 4, + ACTIONS(170), 1, anon_sym_EQ, - ACTIONS(222), 1, + ACTIONS(227), 1, anon_sym_then, STATE(26), 1, sym_operator, - ACTIONS(170), 3, + ACTIONS(172), 3, anon_sym_PLUS, anon_sym_DASH, anon_sym_EQ_EQ, - [936] = 3, - ACTIONS(224), 1, + [994] = 3, + ACTIONS(229), 1, anon_sym_LPAREN, - ACTIONS(226), 1, + ACTIONS(231), 1, anon_sym_RBRACE, STATE(44), 2, sym_list, aux_sym_table_repeat1, - [947] = 3, - ACTIONS(224), 1, - anon_sym_LPAREN, - ACTIONS(228), 1, - anon_sym_RBRACE, - STATE(46), 2, - sym_list, - aux_sym_table_repeat1, - [958] = 3, - ACTIONS(224), 1, - anon_sym_LPAREN, - ACTIONS(228), 1, - anon_sym_RBRACE, - STATE(47), 2, - sym_list, - aux_sym_table_repeat1, - [969] = 3, - ACTIONS(230), 1, - anon_sym_LPAREN, + [1005] = 3, ACTIONS(233), 1, - anon_sym_RBRACE, - STATE(46), 2, - sym_list, - aux_sym_table_repeat1, - [980] = 3, - ACTIONS(224), 1, anon_sym_LPAREN, - ACTIONS(235), 1, + ACTIONS(236), 1, anon_sym_RBRACE, - STATE(46), 2, + STATE(44), 2, sym_list, aux_sym_table_repeat1, - [991] = 3, - ACTIONS(237), 1, - sym_identifier, + [1016] = 3, + ACTIONS(229), 1, + anon_sym_LPAREN, + ACTIONS(238), 1, + anon_sym_RBRACE, + STATE(43), 2, + sym_list, + aux_sym_table_repeat1, + [1027] = 3, ACTIONS(240), 1, - anon_sym_GT, - STATE(48), 1, - aux_sym_function_repeat1, - [1001] = 3, - ACTIONS(242), 1, sym_identifier, - ACTIONS(244), 1, + ACTIONS(243), 1, anon_sym_GT, - STATE(48), 1, + STATE(46), 1, aux_sym_function_repeat1, - [1011] = 3, - ACTIONS(242), 1, - sym_identifier, - ACTIONS(246), 1, - anon_sym_GT, - STATE(48), 1, - aux_sym_function_repeat1, - [1021] = 2, - ACTIONS(250), 1, + [1037] = 2, + ACTIONS(247), 1, anon_sym_COMMA, - ACTIONS(248), 2, + ACTIONS(245), 2, sym_identifier, anon_sym_GT, - [1029] = 3, - ACTIONS(242), 1, + [1045] = 3, + ACTIONS(249), 1, sym_identifier, - ACTIONS(252), 1, + ACTIONS(251), 1, anon_sym_GT, - STATE(49), 1, + STATE(46), 1, aux_sym_function_repeat1, - [1039] = 3, - ACTIONS(242), 1, + [1055] = 3, + ACTIONS(253), 1, sym_identifier, - ACTIONS(254), 1, - anon_sym_GT, + ACTIONS(255), 1, + anon_sym_RBRACE, STATE(50), 1, + aux_sym_map_repeat1, + [1065] = 3, + ACTIONS(257), 1, + sym_identifier, + ACTIONS(260), 1, + anon_sym_RBRACE, + STATE(50), 1, + aux_sym_map_repeat1, + [1075] = 3, + ACTIONS(249), 1, + sym_identifier, + ACTIONS(262), 1, + anon_sym_GT, + STATE(46), 1, aux_sym_function_repeat1, - [1049] = 1, - ACTIONS(240), 2, + [1085] = 3, + ACTIONS(253), 1, + sym_identifier, + ACTIONS(264), 1, + anon_sym_RBRACE, + STATE(49), 1, + aux_sym_map_repeat1, + [1095] = 3, + ACTIONS(249), 1, + sym_identifier, + ACTIONS(266), 1, + anon_sym_GT, + STATE(48), 1, + aux_sym_function_repeat1, + [1105] = 2, + ACTIONS(268), 1, + anon_sym_LT, + ACTIONS(270), 1, + anon_sym_LBRACE, + [1112] = 2, + ACTIONS(249), 1, + sym_identifier, + STATE(51), 1, + aux_sym_function_repeat1, + [1119] = 1, + ACTIONS(272), 2, + sym_identifier, + anon_sym_RBRACE, + [1124] = 1, + ACTIONS(243), 2, sym_identifier, anon_sym_GT, - [1054] = 2, - ACTIONS(256), 1, - anon_sym_LT, - ACTIONS(258), 1, + [1129] = 1, + ACTIONS(274), 1, anon_sym_LBRACE, - [1061] = 1, - ACTIONS(260), 1, - anon_sym_LBRACE, - [1065] = 1, - ACTIONS(262), 1, - anon_sym_LBRACE, - [1069] = 1, - ACTIONS(264), 1, - anon_sym_LBRACE, - [1073] = 1, - ACTIONS(266), 1, + [1133] = 1, + ACTIONS(276), 1, + anon_sym_EQ, + [1137] = 1, + ACTIONS(278), 1, aux_sym_comment_token1, - [1077] = 1, - ACTIONS(268), 1, - anon_sym_LBRACE, - [1081] = 1, - ACTIONS(270), 1, + [1141] = 1, + ACTIONS(280), 1, ts_builtin_sym_end, - [1085] = 1, - ACTIONS(272), 1, + [1145] = 1, + ACTIONS(282), 1, + anon_sym_LBRACE, + [1149] = 1, + ACTIONS(284), 1, anon_sym_LT, + [1153] = 1, + ACTIONS(286), 1, + anon_sym_LBRACE, + [1157] = 1, + ACTIONS(288), 1, + anon_sym_LBRACE, }; static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(11)] = 0, - [SMALL_STATE(12)] = 52, - [SMALL_STATE(13)] = 80, - [SMALL_STATE(14)] = 108, - [SMALL_STATE(15)] = 136, - [SMALL_STATE(16)] = 164, - [SMALL_STATE(17)] = 216, - [SMALL_STATE(18)] = 244, - [SMALL_STATE(19)] = 272, - [SMALL_STATE(20)] = 300, - [SMALL_STATE(21)] = 328, - [SMALL_STATE(22)] = 356, - [SMALL_STATE(23)] = 384, - [SMALL_STATE(24)] = 412, - [SMALL_STATE(25)] = 441, - [SMALL_STATE(26)] = 470, - [SMALL_STATE(27)] = 516, - [SMALL_STATE(28)] = 542, - [SMALL_STATE(29)] = 588, - [SMALL_STATE(30)] = 616, - [SMALL_STATE(31)] = 642, - [SMALL_STATE(32)] = 668, - [SMALL_STATE(33)] = 694, - [SMALL_STATE(34)] = 725, - [SMALL_STATE(35)] = 762, - [SMALL_STATE(36)] = 799, - [SMALL_STATE(37)] = 833, - [SMALL_STATE(38)] = 852, - [SMALL_STATE(39)] = 871, - [SMALL_STATE(40)] = 888, - [SMALL_STATE(41)] = 906, - [SMALL_STATE(42)] = 921, - [SMALL_STATE(43)] = 936, - [SMALL_STATE(44)] = 947, - [SMALL_STATE(45)] = 958, - [SMALL_STATE(46)] = 969, - [SMALL_STATE(47)] = 980, - [SMALL_STATE(48)] = 991, - [SMALL_STATE(49)] = 1001, - [SMALL_STATE(50)] = 1011, - [SMALL_STATE(51)] = 1021, - [SMALL_STATE(52)] = 1029, - [SMALL_STATE(53)] = 1039, - [SMALL_STATE(54)] = 1049, - [SMALL_STATE(55)] = 1054, - [SMALL_STATE(56)] = 1061, - [SMALL_STATE(57)] = 1065, - [SMALL_STATE(58)] = 1069, - [SMALL_STATE(59)] = 1073, - [SMALL_STATE(60)] = 1077, - [SMALL_STATE(61)] = 1081, - [SMALL_STATE(62)] = 1085, + [SMALL_STATE(12)] = 56, + [SMALL_STATE(13)] = 112, + [SMALL_STATE(14)] = 141, + [SMALL_STATE(15)] = 170, + [SMALL_STATE(16)] = 199, + [SMALL_STATE(17)] = 228, + [SMALL_STATE(18)] = 257, + [SMALL_STATE(19)] = 286, + [SMALL_STATE(20)] = 315, + [SMALL_STATE(21)] = 344, + [SMALL_STATE(22)] = 373, + [SMALL_STATE(23)] = 402, + [SMALL_STATE(24)] = 432, + [SMALL_STATE(25)] = 482, + [SMALL_STATE(26)] = 512, + [SMALL_STATE(27)] = 562, + [SMALL_STATE(28)] = 589, + [SMALL_STATE(29)] = 616, + [SMALL_STATE(30)] = 645, + [SMALL_STATE(31)] = 672, + [SMALL_STATE(32)] = 699, + [SMALL_STATE(33)] = 731, + [SMALL_STATE(34)] = 772, + [SMALL_STATE(35)] = 813, + [SMALL_STATE(36)] = 851, + [SMALL_STATE(37)] = 886, + [SMALL_STATE(38)] = 906, + [SMALL_STATE(39)] = 926, + [SMALL_STATE(40)] = 944, + [SMALL_STATE(41)] = 963, + [SMALL_STATE(42)] = 979, + [SMALL_STATE(43)] = 994, + [SMALL_STATE(44)] = 1005, + [SMALL_STATE(45)] = 1016, + [SMALL_STATE(46)] = 1027, + [SMALL_STATE(47)] = 1037, + [SMALL_STATE(48)] = 1045, + [SMALL_STATE(49)] = 1055, + [SMALL_STATE(50)] = 1065, + [SMALL_STATE(51)] = 1075, + [SMALL_STATE(52)] = 1085, + [SMALL_STATE(53)] = 1095, + [SMALL_STATE(54)] = 1105, + [SMALL_STATE(55)] = 1112, + [SMALL_STATE(56)] = 1119, + [SMALL_STATE(57)] = 1124, + [SMALL_STATE(58)] = 1129, + [SMALL_STATE(59)] = 1133, + [SMALL_STATE(60)] = 1137, + [SMALL_STATE(61)] = 1141, + [SMALL_STATE(62)] = 1145, + [SMALL_STATE(63)] = 1149, + [SMALL_STATE(64)] = 1153, + [SMALL_STATE(65)] = 1157, }; static const TSParseActionEntry ts_parse_actions[] = { [0] = {.entry = {.count = 0, .reusable = false}}, [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(), - [3] = {.entry = {.count = 1, .reusable = false}}, SHIFT(27), - [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(13), + [3] = {.entry = {.count = 1, .reusable = false}}, SHIFT(31), + [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17), [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(14), - [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(36), - [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), - [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62), - [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(28), - [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(32), - [23] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_root_repeat1, 2), - [25] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(27), - [28] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(59), - [31] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(13), - [34] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(13), - [37] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(14), - [40] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(36), - [43] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(55), - [46] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(62), - [49] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(28), - [52] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(32), - [55] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_root, 1), - [57] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [61] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_repeat2, 2), SHIFT_REPEAT(27), - [64] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_repeat2, 2), SHIFT_REPEAT(13), - [67] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_repeat2, 2), SHIFT_REPEAT(13), - [70] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_repeat2, 2), SHIFT_REPEAT(14), - [73] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_repeat2, 2), SHIFT_REPEAT(36), - [76] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_repeat2, 2), SHIFT_REPEAT(55), - [79] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_repeat2, 2), - [81] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_repeat2, 2), SHIFT_REPEAT(62), - [84] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_repeat2, 2), SHIFT_REPEAT(28), - [87] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_repeat2, 2), SHIFT_REPEAT(32), - [90] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [92] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [94] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [96] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table, 7), - [98] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table, 7), - [100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value, 1), - [102] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_value, 1), + [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(35), + [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54), + [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63), + [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62), + [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(24), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(30), + [25] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_root_repeat1, 2), + [27] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(31), + [30] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(60), + [33] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(17), + [36] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(17), + [39] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(14), + [42] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(35), + [45] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(54), + [48] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(63), + [51] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(62), + [54] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(24), + [57] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(30), + [60] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_root, 1), + [62] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [64] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [66] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_repeat2, 2), SHIFT_REPEAT(31), + [69] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_repeat2, 2), SHIFT_REPEAT(17), + [72] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_repeat2, 2), SHIFT_REPEAT(17), + [75] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_repeat2, 2), SHIFT_REPEAT(14), + [78] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_repeat2, 2), SHIFT_REPEAT(35), + [81] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_repeat2, 2), SHIFT_REPEAT(54), + [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_repeat2, 2), + [86] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_repeat2, 2), SHIFT_REPEAT(63), + [89] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_repeat2, 2), SHIFT_REPEAT(62), + [92] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_repeat2, 2), SHIFT_REPEAT(24), + [95] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_repeat2, 2), SHIFT_REPEAT(30), + [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_map, 4), + [102] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_map, 4), [104] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean, 1), [106] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_boolean, 1), - [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 4), - [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function, 4), - [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 3), - [114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function, 3), - [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table, 5), - [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table, 5), - [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 7), - [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function, 7), - [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 6), - [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function, 6), - [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table, 6), - [130] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table, 6), - [132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3), - [134] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 3), - [136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 5), - [138] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function, 5), - [140] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_open_statement, 1), - [142] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_open_statement, 1), - [144] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_operation, 3), - [146] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_operation, 3), - [148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1), - [150] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1), - [152] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_control_flow, 4), - [154] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_control_flow, 4), - [156] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11), - [158] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_statement, 1), - [160] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_statement, 1), - [162] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_control_flow, 6), - [164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_control_flow, 6), - [166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tool, 1), - [168] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tool, 1), - [170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [172] = {.entry = {.count = 1, .reusable = false}}, SHIFT(39), - [174] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(13), - [177] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(13), + [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_map, 3), + [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_map, 3), + [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 6), + [114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function, 6), + [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value, 1), + [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_value, 1), + [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 4), + [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function, 4), + [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table, 7), + [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table, 7), + [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 7), + [130] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function, 7), + [132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table, 6), + [134] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table, 6), + [136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3), + [138] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 3), + [140] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_operation, 3), + [142] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_operation, 3), + [144] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_open_statement, 1), + [146] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_open_statement, 1), + [148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_control_flow, 6), + [150] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_control_flow, 6), + [152] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_statement, 1), + [154] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_statement, 1), + [156] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_control_flow, 4), + [158] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_control_flow, 4), + [160] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11), + [162] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tool, 1), + [164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tool, 1), + [166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1), + [168] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1), + [170] = {.entry = {.count = 1, .reusable = false}}, SHIFT(39), + [172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [174] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(17), + [177] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(17), [180] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(14), - [183] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(36), + [183] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(35), [186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), - [188] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(55), - [191] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(62), - [194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), - [202] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 2), - [204] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comment, 2), - [206] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_item, 1), - [208] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_item, 1), - [210] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_operator, 1), - [212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_operator, 1), - [214] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 1), - [216] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 1), - [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [220] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), - [222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [230] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_table_repeat1, 2), SHIFT_REPEAT(36), - [233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_table_repeat1, 2), - [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [237] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_repeat1, 2), SHIFT_REPEAT(51), - [240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_repeat1, 2), - [242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [248] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_repeat1, 1), - [250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), - [260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), - [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [270] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [188] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(54), + [191] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(63), + [194] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(62), + [197] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [207] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_item, 1), + [209] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_item, 1), + [211] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 2), + [213] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comment, 2), + [215] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_operator, 1), + [217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_operator, 1), + [219] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 1), + [221] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 1), + [223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [225] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), + [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [233] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_table_repeat1, 2), SHIFT_REPEAT(35), + [236] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_table_repeat1, 2), + [238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [240] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_repeat1, 2), SHIFT_REPEAT(47), + [243] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_repeat1, 2), + [245] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_repeat1, 1), + [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), + [257] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_map_repeat1, 2), SHIFT_REPEAT(59), + [260] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_map_repeat1, 2), + [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_map_repeat1, 3), + [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [280] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), + [288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), }; #ifdef __cplusplus