diff --git a/corpus/functions.txt b/corpus/functions.txt new file mode 100644 index 0000000..5cb9d01 --- /dev/null +++ b/corpus/functions.txt @@ -0,0 +1,62 @@ +================== +Simple Function +================== + +function { output "Hiya" } + +--- + + +(root + (item + (statement + (open_statement + (expression + (value + (function + (statement + (open_statement + (expression + (tool)))) + (statement + (open_statement + (expression + (value + (string)))))))))))) + +================== +Complex Function +================== + +function { + output message + output number +} + +--- + +(root + (item + (statement + (open_statement + (expression + (value + (function + (identifier) + (identifier) + (statement + (open_statement + (expression + (tool)))) + (statement + (open_statement + (expression + (identifier)))) + (statement + (open_statement + (expression + (tool)))) + (statement + (open_statement + (expression + (identifier))))))))))) diff --git a/corpus/tables.txt b/corpus/tables.txt new file mode 100644 index 0000000..88779e5 --- /dev/null +++ b/corpus/tables.txt @@ -0,0 +1,24 @@ +================== +Table Declarations +================== + +table { + ("answer", 42) +} + +--- + +(root + (item + (statement + (open_statement + (expression + (value + (table + (identifier) + (identifier) + (list + (value + (string)) + (value + (integer)))))))))) diff --git a/grammar.js b/grammar.js index 4c6eed7..147ffef 100644 --- a/grammar.js +++ b/grammar.js @@ -24,6 +24,7 @@ module.exports = grammar({ $.identifier, $.operation, $.control_flow, + $.tool, ), identifier: $ => /[a-z|_|.]+/, @@ -36,16 +37,15 @@ module.exports = grammar({ $.empty, $.boolean, $.function, + $.table, ), float: $ => /\d+\.\d*/, - + integer: $ => /\d+/, string: $ => /("|'|`)(.*?)("|'|`)/, - function: $ => /{(.*?)}/, - empty: $ => '()', boolean: $ => choice( @@ -59,6 +59,22 @@ module.exports = grammar({ ')' ), + function: $ => seq( + 'function', + optional(seq('<', repeat(seq($.identifier, optional(','))), '>')), + '{', + repeat($.statement), + '}', + ), + + table: $ => seq( + 'table', + seq('<', repeat(seq($.identifier, optional(','))), '>'), + '{', + optional(repeat($.list)), + '}', + ), + operator: $ => choice( '+', '-', @@ -80,10 +96,8 @@ module.exports = grammar({ optional(seq('else', $.statement)) )), - _keywords: $ => choice( - 'if', - 'then', - 'else', + tool: $ => choice( + "output", ), } }); diff --git a/src/grammar.json b/src/grammar.json index 1717e1b..4ce9471 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -82,6 +82,10 @@ { "type": "SYMBOL", "name": "control_flow" + }, + { + "type": "SYMBOL", + "name": "tool" } ] }, @@ -119,6 +123,10 @@ { "type": "SYMBOL", "name": "function" + }, + { + "type": "SYMBOL", + "name": "table" } ] }, @@ -134,10 +142,6 @@ "type": "PATTERN", "value": "(\"|'|`)(.*?)(\"|'|`)" }, - "function": { - "type": "PATTERN", - "value": "{(.*?)}" - }, "empty": { "type": "STRING", "value": "()" @@ -192,6 +196,144 @@ } ] }, + "function": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "function" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "<" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] + } + ] + } + }, + { + "type": "STRING", + "value": ">" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "{" + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "statement" + } + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "table": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "table" + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "<" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] + } + ] + } + }, + { + "type": "STRING", + "value": ">" + } + ] + }, + { + "type": "STRING", + "value": "{" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "list" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "}" + } + ] + }, "operator": { "type": "CHOICE", "members": [ @@ -280,20 +422,12 @@ ] } }, - "_keywords": { + "tool": { "type": "CHOICE", "members": [ { "type": "STRING", - "value": "if" - }, - { - "type": "STRING", - "value": "then" - }, - { - "type": "STRING", - "value": "else" + "value": "output" } ] } diff --git a/src/node-types.json b/src/node-types.json index efed956..d33ccc7 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -48,6 +48,10 @@ "type": "operation", "named": true }, + { + "type": "tool", + "named": true + }, { "type": "value", "named": true @@ -55,6 +59,25 @@ ] } }, + { + "type": "function", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "identifier", + "named": true + }, + { + "type": "statement", + "named": true + } + ] + } + }, { "type": "item", "named": true, @@ -158,6 +181,30 @@ ] } }, + { + "type": "table", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "identifier", + "named": true + }, + { + "type": "list", + "named": true + } + ] + } + }, + { + "type": "tool", + "named": true, + "fields": {} + }, { "type": "value", "named": true, @@ -193,6 +240,10 @@ { "type": "string", "named": true + }, + { + "type": "table", + "named": true } ] } @@ -221,6 +272,10 @@ "type": "-", "named": false }, + { + "type": "<", + "named": false + }, { "type": "=", "named": false @@ -229,6 +284,10 @@ "type": "==", "named": false }, + { + "type": ">", + "named": false + }, { "type": "else", "named": false @@ -247,7 +306,7 @@ }, { "type": "function", - "named": true + "named": false }, { "type": "identifier", @@ -261,10 +320,18 @@ "type": "integer", "named": true }, + { + "type": "output", + "named": false + }, { "type": "string", "named": true }, + { + "type": "table", + "named": false + }, { "type": "then", "named": false @@ -272,5 +339,13 @@ { "type": "true", "named": false + }, + { + "type": "{", + "named": false + }, + { + "type": "}", + "named": false } ] \ No newline at end of file diff --git a/src/parser.c b/src/parser.c index 65c15f6..59b440b 100644 --- a/src/parser.c +++ b/src/parser.c @@ -6,14 +6,14 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 29 -#define LARGE_STATE_COUNT 15 -#define SYMBOL_COUNT 35 +#define STATE_COUNT 63 +#define LARGE_STATE_COUNT 11 +#define SYMBOL_COUNT 47 #define ALIAS_COUNT 0 -#define TOKEN_COUNT 21 +#define TOKEN_COUNT 27 #define EXTERNAL_TOKEN_COUNT 0 #define FIELD_COUNT 0 -#define MAX_ALIAS_SEQUENCE_LENGTH 6 +#define MAX_ALIAS_SEQUENCE_LENGTH 7 #define PRODUCTION_ID_COUNT 1 enum { @@ -23,34 +23,46 @@ enum { sym_float = 4, sym_integer = 5, sym_string = 6, - sym_function = 7, - sym_empty = 8, - anon_sym_true = 9, - anon_sym_false = 10, - anon_sym_LPAREN = 11, - anon_sym_COMMA = 12, - anon_sym_RPAREN = 13, - anon_sym_PLUS = 14, - anon_sym_DASH = 15, - anon_sym_EQ = 16, - anon_sym_EQ_EQ = 17, - anon_sym_if = 18, - anon_sym_then = 19, - anon_sym_else = 20, - sym_root = 21, - sym_item = 22, - sym_comment = 23, - sym_statement = 24, - sym_open_statement = 25, - sym_expression = 26, - sym_value = 27, - sym_boolean = 28, - sym_list = 29, - sym_operator = 30, - sym_operation = 31, - sym_control_flow = 32, - aux_sym_root_repeat1 = 33, - aux_sym_list_repeat1 = 34, + sym_empty = 7, + anon_sym_true = 8, + anon_sym_false = 9, + anon_sym_LPAREN = 10, + anon_sym_COMMA = 11, + anon_sym_RPAREN = 12, + anon_sym_function = 13, + anon_sym_LT = 14, + anon_sym_GT = 15, + 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, }; static const char * const ts_symbol_names[] = { @@ -61,13 +73,18 @@ static const char * const ts_symbol_names[] = { [sym_float] = "float", [sym_integer] = "integer", [sym_string] = "string", - [sym_function] = "function", [sym_empty] = "empty", [anon_sym_true] = "true", [anon_sym_false] = "false", [anon_sym_LPAREN] = "(", [anon_sym_COMMA] = ",", [anon_sym_RPAREN] = ")", + [anon_sym_function] = "function", + [anon_sym_LT] = "<", + [anon_sym_GT] = ">", + [anon_sym_LBRACE] = "{", + [anon_sym_RBRACE] = "}", + [anon_sym_table] = "table", [anon_sym_PLUS] = "+", [anon_sym_DASH] = "-", [anon_sym_EQ] = "=", @@ -75,6 +92,7 @@ static const char * const ts_symbol_names[] = { [anon_sym_if] = "if", [anon_sym_then] = "then", [anon_sym_else] = "else", + [anon_sym_output] = "output", [sym_root] = "root", [sym_item] = "item", [sym_comment] = "comment", @@ -84,11 +102,17 @@ static const char * const ts_symbol_names[] = { [sym_value] = "value", [sym_boolean] = "boolean", [sym_list] = "list", + [sym_function] = "function", + [sym_table] = "table", [sym_operator] = "operator", [sym_operation] = "operation", [sym_control_flow] = "control_flow", + [sym_tool] = "tool", [aux_sym_root_repeat1] = "root_repeat1", [aux_sym_list_repeat1] = "list_repeat1", + [aux_sym_function_repeat1] = "function_repeat1", + [aux_sym_function_repeat2] = "function_repeat2", + [aux_sym_table_repeat1] = "table_repeat1", }; static const TSSymbol ts_symbol_map[] = { @@ -99,13 +123,18 @@ static const TSSymbol ts_symbol_map[] = { [sym_float] = sym_float, [sym_integer] = sym_integer, [sym_string] = sym_string, - [sym_function] = sym_function, [sym_empty] = sym_empty, [anon_sym_true] = anon_sym_true, [anon_sym_false] = anon_sym_false, [anon_sym_LPAREN] = anon_sym_LPAREN, [anon_sym_COMMA] = anon_sym_COMMA, [anon_sym_RPAREN] = anon_sym_RPAREN, + [anon_sym_function] = anon_sym_function, + [anon_sym_LT] = anon_sym_LT, + [anon_sym_GT] = anon_sym_GT, + [anon_sym_LBRACE] = anon_sym_LBRACE, + [anon_sym_RBRACE] = anon_sym_RBRACE, + [anon_sym_table] = anon_sym_table, [anon_sym_PLUS] = anon_sym_PLUS, [anon_sym_DASH] = anon_sym_DASH, [anon_sym_EQ] = anon_sym_EQ, @@ -113,6 +142,7 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_if] = anon_sym_if, [anon_sym_then] = anon_sym_then, [anon_sym_else] = anon_sym_else, + [anon_sym_output] = anon_sym_output, [sym_root] = sym_root, [sym_item] = sym_item, [sym_comment] = sym_comment, @@ -122,11 +152,17 @@ static const TSSymbol ts_symbol_map[] = { [sym_value] = sym_value, [sym_boolean] = sym_boolean, [sym_list] = sym_list, + [sym_function] = sym_function, + [sym_table] = sym_table, [sym_operator] = sym_operator, [sym_operation] = sym_operation, [sym_control_flow] = sym_control_flow, + [sym_tool] = sym_tool, [aux_sym_root_repeat1] = aux_sym_root_repeat1, [aux_sym_list_repeat1] = aux_sym_list_repeat1, + [aux_sym_function_repeat1] = aux_sym_function_repeat1, + [aux_sym_function_repeat2] = aux_sym_function_repeat2, + [aux_sym_table_repeat1] = aux_sym_table_repeat1, }; static const TSSymbolMetadata ts_symbol_metadata[] = { @@ -158,10 +194,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym_function] = { - .visible = true, - .named = true, - }, [sym_empty] = { .visible = true, .named = true, @@ -186,6 +218,30 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_function] = { + .visible = true, + .named = false, + }, + [anon_sym_LT] = { + .visible = true, + .named = false, + }, + [anon_sym_GT] = { + .visible = true, + .named = false, + }, + [anon_sym_LBRACE] = { + .visible = true, + .named = false, + }, + [anon_sym_RBRACE] = { + .visible = true, + .named = false, + }, + [anon_sym_table] = { + .visible = true, + .named = false, + }, [anon_sym_PLUS] = { .visible = true, .named = false, @@ -214,6 +270,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_output] = { + .visible = true, + .named = false, + }, [sym_root] = { .visible = true, .named = true, @@ -250,6 +310,14 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym_function] = { + .visible = true, + .named = true, + }, + [sym_table] = { + .visible = true, + .named = true, + }, [sym_operator] = { .visible = true, .named = true, @@ -262,6 +330,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym_tool] = { + .visible = true, + .named = true, + }, [aux_sym_root_repeat1] = { .visible = false, .named = false, @@ -270,6 +342,18 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, + [aux_sym_function_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_function_repeat2] = { + .visible = false, + .named = false, + }, + [aux_sym_table_repeat1] = { + .visible = false, + .named = false, + }, }; static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = { @@ -296,7 +380,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [12] = 12, [13] = 13, [14] = 14, - [15] = 7, + [15] = 15, [16] = 16, [17] = 17, [18] = 18, @@ -310,6 +394,40 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [26] = 26, [27] = 27, [28] = 28, + [29] = 29, + [30] = 30, + [31] = 31, + [32] = 32, + [33] = 24, + [34] = 34, + [35] = 35, + [36] = 36, + [37] = 37, + [38] = 38, + [39] = 39, + [40] = 40, + [41] = 41, + [42] = 42, + [43] = 43, + [44] = 44, + [45] = 45, + [46] = 46, + [47] = 47, + [48] = 48, + [49] = 49, + [50] = 50, + [51] = 51, + [52] = 52, + [53] = 53, + [54] = 54, + [55] = 55, + [56] = 56, + [57] = 57, + [58] = 58, + [59] = 59, + [60] = 60, + [61] = 61, + [62] = 62, }; static bool ts_lex(TSLexer *lexer, TSStateId state) { @@ -317,111 +435,115 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { eof = lexer->eof(lexer); switch (state) { case 0: - if (eof) ADVANCE(3); + if (eof) ADVANCE(2); if (lookahead == '"' || lookahead == '\'' || - lookahead == '`') ADVANCE(2); - if (lookahead == '#') ADVANCE(4); - if (lookahead == '(') ADVANCE(13); - if (lookahead == ')') ADVANCE(15); - if (lookahead == '+') ADVANCE(16); - if (lookahead == ',') ADVANCE(14); - if (lookahead == '-') ADVANCE(17); - if (lookahead == '=') ADVANCE(18); - if (lookahead == '{') ADVANCE(1); + lookahead == '`') ADVANCE(1); + if (lookahead == '#') ADVANCE(3); + if (lookahead == '(') ADVANCE(11); + if (lookahead == ')') ADVANCE(13); + if (lookahead == '+') ADVANCE(18); + if (lookahead == ',') ADVANCE(12); + if (lookahead == '-') ADVANCE(19); + if (lookahead == '<') ADVANCE(14); + if (lookahead == '=') ADVANCE(20); + if (lookahead == '>') ADVANCE(15); + if (lookahead == '{') ADVANCE(16); + if (lookahead == '}') ADVANCE(17); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(0) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(9); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(8); if (lookahead == '.' || - ('_' <= lookahead && lookahead <= '|')) ADVANCE(7); + ('_' <= lookahead && lookahead <= '|')) ADVANCE(6); END_STATE(); case 1: - if (lookahead == '}') ADVANCE(11); + if (lookahead == '"' || + lookahead == '\'' || + lookahead == '`') ADVANCE(9); if (lookahead != 0 && lookahead != '\n') ADVANCE(1); END_STATE(); case 2: - if (lookahead == '"' || - lookahead == '\'' || - lookahead == '`') ADVANCE(10); - if (lookahead != 0 && - lookahead != '\n') ADVANCE(2); - END_STATE(); - case 3: ACCEPT_TOKEN(ts_builtin_sym_end); END_STATE(); - case 4: + case 3: ACCEPT_TOKEN(anon_sym_POUND); END_STATE(); - case 5: + case 4: ACCEPT_TOKEN(aux_sym_comment_token1); if (lookahead == '\t' || lookahead == '\r' || - lookahead == ' ') ADVANCE(5); + lookahead == ' ') ADVANCE(4); if (lookahead != 0 && - lookahead != '\n') ADVANCE(6); + lookahead != '\n') ADVANCE(5); END_STATE(); - case 6: + case 5: ACCEPT_TOKEN(aux_sym_comment_token1); if (lookahead != 0 && - lookahead != '\n') ADVANCE(6); + lookahead != '\n') ADVANCE(5); END_STATE(); - case 7: + case 6: ACCEPT_TOKEN(sym_identifier); if (lookahead == '.' || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(7); + lookahead == '|') ADVANCE(6); + END_STATE(); + case 7: + ACCEPT_TOKEN(sym_float); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(7); END_STATE(); case 8: - ACCEPT_TOKEN(sym_float); + ACCEPT_TOKEN(sym_integer); + if (lookahead == '.') ADVANCE(7); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(8); END_STATE(); case 9: - ACCEPT_TOKEN(sym_integer); - if (lookahead == '.') ADVANCE(8); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(9); - END_STATE(); - case 10: ACCEPT_TOKEN(sym_string); if (lookahead == '"' || lookahead == '\'' || - lookahead == '`') ADVANCE(10); - if (lookahead != 0 && - lookahead != '\n') ADVANCE(2); - END_STATE(); - case 11: - ACCEPT_TOKEN(sym_function); - if (lookahead == '}') ADVANCE(11); + lookahead == '`') ADVANCE(9); if (lookahead != 0 && lookahead != '\n') ADVANCE(1); END_STATE(); - case 12: + case 10: ACCEPT_TOKEN(sym_empty); END_STATE(); - case 13: + case 11: ACCEPT_TOKEN(anon_sym_LPAREN); - if (lookahead == ')') ADVANCE(12); + if (lookahead == ')') ADVANCE(10); END_STATE(); - case 14: + case 12: ACCEPT_TOKEN(anon_sym_COMMA); END_STATE(); - case 15: + case 13: ACCEPT_TOKEN(anon_sym_RPAREN); END_STATE(); + case 14: + ACCEPT_TOKEN(anon_sym_LT); + END_STATE(); + case 15: + ACCEPT_TOKEN(anon_sym_GT); + END_STATE(); case 16: - ACCEPT_TOKEN(anon_sym_PLUS); + ACCEPT_TOKEN(anon_sym_LBRACE); END_STATE(); case 17: - ACCEPT_TOKEN(anon_sym_DASH); + ACCEPT_TOKEN(anon_sym_RBRACE); END_STATE(); case 18: - ACCEPT_TOKEN(anon_sym_EQ); - if (lookahead == '=') ADVANCE(19); + 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 21: ACCEPT_TOKEN(anon_sym_EQ_EQ); END_STATE(); default: @@ -437,67 +559,121 @@ 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 == 't') ADVANCE(4); + if (lookahead == 'o') ADVANCE(4); + if (lookahead == 't') ADVANCE(5); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(0) END_STATE(); case 1: - if (lookahead == 'l') ADVANCE(5); + if (lookahead == 'l') ADVANCE(6); END_STATE(); case 2: - if (lookahead == 'a') ADVANCE(6); + if (lookahead == 'a') ADVANCE(7); + if (lookahead == 'u') ADVANCE(8); END_STATE(); case 3: - if (lookahead == 'f') ADVANCE(7); + if (lookahead == 'f') ADVANCE(9); END_STATE(); case 4: - if (lookahead == 'h') ADVANCE(8); - if (lookahead == 'r') ADVANCE(9); + if (lookahead == 'u') ADVANCE(10); END_STATE(); case 5: - if (lookahead == 's') ADVANCE(10); + if (lookahead == 'a') ADVANCE(11); + if (lookahead == 'h') ADVANCE(12); + if (lookahead == 'r') ADVANCE(13); END_STATE(); case 6: - if (lookahead == 'l') ADVANCE(11); + if (lookahead == 's') ADVANCE(14); END_STATE(); case 7: - ACCEPT_TOKEN(anon_sym_if); + if (lookahead == 'l') ADVANCE(15); END_STATE(); case 8: - if (lookahead == 'e') ADVANCE(12); - END_STATE(); - case 9: - if (lookahead == 'u') ADVANCE(13); - END_STATE(); - case 10: - if (lookahead == 'e') ADVANCE(14); - END_STATE(); - case 11: - if (lookahead == 's') ADVANCE(15); - END_STATE(); - case 12: if (lookahead == 'n') ADVANCE(16); END_STATE(); + case 9: + ACCEPT_TOKEN(anon_sym_if); + END_STATE(); + case 10: + if (lookahead == 't') ADVANCE(17); + END_STATE(); + case 11: + if (lookahead == 'b') ADVANCE(18); + END_STATE(); + case 12: + if (lookahead == 'e') ADVANCE(19); + END_STATE(); case 13: - if (lookahead == 'e') ADVANCE(17); + if (lookahead == 'u') ADVANCE(20); END_STATE(); case 14: - ACCEPT_TOKEN(anon_sym_else); + if (lookahead == 'e') ADVANCE(21); END_STATE(); case 15: - if (lookahead == 'e') ADVANCE(18); + if (lookahead == 's') ADVANCE(22); END_STATE(); case 16: - ACCEPT_TOKEN(anon_sym_then); + if (lookahead == 'c') ADVANCE(23); END_STATE(); case 17: - ACCEPT_TOKEN(anon_sym_true); + if (lookahead == 'p') ADVANCE(24); END_STATE(); case 18: + if (lookahead == 'l') ADVANCE(25); + END_STATE(); + case 19: + if (lookahead == 'n') ADVANCE(26); + END_STATE(); + case 20: + if (lookahead == 'e') ADVANCE(27); + END_STATE(); + case 21: + ACCEPT_TOKEN(anon_sym_else); + END_STATE(); + case 22: + if (lookahead == 'e') ADVANCE(28); + END_STATE(); + case 23: + if (lookahead == 't') ADVANCE(29); + END_STATE(); + case 24: + if (lookahead == 'u') ADVANCE(30); + END_STATE(); + case 25: + if (lookahead == 'e') ADVANCE(31); + END_STATE(); + case 26: + ACCEPT_TOKEN(anon_sym_then); + END_STATE(); + case 27: + ACCEPT_TOKEN(anon_sym_true); + END_STATE(); + case 28: ACCEPT_TOKEN(anon_sym_false); END_STATE(); + case 29: + if (lookahead == 'i') ADVANCE(32); + END_STATE(); + case 30: + if (lookahead == 't') ADVANCE(33); + END_STATE(); + case 31: + ACCEPT_TOKEN(anon_sym_table); + END_STATE(); + case 32: + if (lookahead == 'o') ADVANCE(34); + END_STATE(); + case 33: + ACCEPT_TOKEN(anon_sym_output); + END_STATE(); + case 34: + if (lookahead == 'n') ADVANCE(35); + END_STATE(); + case 35: + ACCEPT_TOKEN(anon_sym_function); + END_STATE(); default: return false; } @@ -531,8 +707,42 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [24] = {.lex_state = 0}, [25] = {.lex_state = 0}, [26] = {.lex_state = 0}, - [27] = {.lex_state = 5}, + [27] = {.lex_state = 0}, [28] = {.lex_state = 0}, + [29] = {.lex_state = 0}, + [30] = {.lex_state = 0}, + [31] = {.lex_state = 0}, + [32] = {.lex_state = 0}, + [33] = {.lex_state = 0}, + [34] = {.lex_state = 0}, + [35] = {.lex_state = 0}, + [36] = {.lex_state = 0}, + [37] = {.lex_state = 0}, + [38] = {.lex_state = 0}, + [39] = {.lex_state = 0}, + [40] = {.lex_state = 0}, + [41] = {.lex_state = 0}, + [42] = {.lex_state = 0}, + [43] = {.lex_state = 0}, + [44] = {.lex_state = 0}, + [45] = {.lex_state = 0}, + [46] = {.lex_state = 0}, + [47] = {.lex_state = 0}, + [48] = {.lex_state = 0}, + [49] = {.lex_state = 0}, + [50] = {.lex_state = 0}, + [51] = {.lex_state = 0}, + [52] = {.lex_state = 0}, + [53] = {.lex_state = 0}, + [54] = {.lex_state = 0}, + [55] = {.lex_state = 0}, + [56] = {.lex_state = 0}, + [57] = {.lex_state = 0}, + [58] = {.lex_state = 0}, + [59] = {.lex_state = 4}, + [60] = {.lex_state = 0}, + [61] = {.lex_state = 0}, + [62] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -543,13 +753,18 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_float] = ACTIONS(1), [sym_integer] = ACTIONS(1), [sym_string] = ACTIONS(1), - [sym_function] = ACTIONS(1), [sym_empty] = ACTIONS(1), [anon_sym_true] = ACTIONS(1), [anon_sym_false] = ACTIONS(1), [anon_sym_LPAREN] = ACTIONS(1), [anon_sym_COMMA] = ACTIONS(1), [anon_sym_RPAREN] = ACTIONS(1), + [anon_sym_function] = ACTIONS(1), + [anon_sym_LT] = ACTIONS(1), + [anon_sym_GT] = ACTIONS(1), + [anon_sym_LBRACE] = ACTIONS(1), + [anon_sym_RBRACE] = ACTIONS(1), + [anon_sym_table] = ACTIONS(1), [anon_sym_PLUS] = ACTIONS(1), [anon_sym_DASH] = ACTIONS(1), [anon_sym_EQ] = ACTIONS(1), @@ -557,337 +772,291 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_if] = ACTIONS(1), [anon_sym_then] = ACTIONS(1), [anon_sym_else] = ACTIONS(1), + [anon_sym_output] = ACTIONS(1), }, [1] = { - [sym_root] = STATE(28), - [sym_item] = STATE(2), - [sym_comment] = STATE(21), - [sym_statement] = STATE(21), - [sym_open_statement] = STATE(13), - [sym_expression] = STATE(15), - [sym_value] = STATE(9), - [sym_boolean] = STATE(5), - [sym_list] = STATE(5), - [sym_operation] = STATE(9), - [sym_control_flow] = STATE(9), - [aux_sym_root_repeat1] = STATE(2), + [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), + [aux_sym_root_repeat1] = STATE(3), [sym_identifier] = ACTIONS(3), [anon_sym_POUND] = ACTIONS(5), [sym_float] = ACTIONS(7), [sym_integer] = ACTIONS(9), [sym_string] = ACTIONS(7), - [sym_function] = ACTIONS(7), [sym_empty] = ACTIONS(7), [anon_sym_true] = ACTIONS(11), [anon_sym_false] = ACTIONS(11), [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_if] = ACTIONS(15), + [anon_sym_function] = ACTIONS(15), + [anon_sym_table] = ACTIONS(17), + [anon_sym_if] = ACTIONS(19), + [anon_sym_output] = ACTIONS(21), }, [2] = { - [sym_item] = STATE(3), - [sym_comment] = STATE(21), - [sym_statement] = STATE(21), - [sym_open_statement] = STATE(13), - [sym_expression] = STATE(15), - [sym_value] = STATE(9), - [sym_boolean] = STATE(5), - [sym_list] = STATE(5), - [sym_operation] = STATE(9), - [sym_control_flow] = STATE(9), - [aux_sym_root_repeat1] = STATE(3), - [ts_builtin_sym_end] = ACTIONS(17), + [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), + [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), + }, + [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), + [aux_sym_root_repeat1] = STATE(2), + [ts_builtin_sym_end] = ACTIONS(55), [sym_identifier] = ACTIONS(3), [anon_sym_POUND] = ACTIONS(5), [sym_float] = ACTIONS(7), [sym_integer] = ACTIONS(9), [sym_string] = ACTIONS(7), - [sym_function] = ACTIONS(7), [sym_empty] = ACTIONS(7), [anon_sym_true] = ACTIONS(11), [anon_sym_false] = ACTIONS(11), [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_if] = ACTIONS(15), - }, - [3] = { - [sym_item] = STATE(3), - [sym_comment] = STATE(21), - [sym_statement] = STATE(21), - [sym_open_statement] = STATE(13), - [sym_expression] = STATE(15), - [sym_value] = STATE(9), - [sym_boolean] = STATE(5), - [sym_list] = STATE(5), - [sym_operation] = STATE(9), - [sym_control_flow] = STATE(9), - [aux_sym_root_repeat1] = STATE(3), - [ts_builtin_sym_end] = ACTIONS(19), - [sym_identifier] = ACTIONS(21), - [anon_sym_POUND] = ACTIONS(24), - [sym_float] = ACTIONS(27), - [sym_integer] = ACTIONS(30), - [sym_string] = ACTIONS(27), - [sym_function] = ACTIONS(27), - [sym_empty] = ACTIONS(27), - [anon_sym_true] = ACTIONS(33), - [anon_sym_false] = ACTIONS(33), - [anon_sym_LPAREN] = ACTIONS(36), - [anon_sym_if] = ACTIONS(39), + [anon_sym_function] = ACTIONS(15), + [anon_sym_table] = ACTIONS(17), + [anon_sym_if] = ACTIONS(19), + [anon_sym_output] = ACTIONS(21), }, [4] = { - [ts_builtin_sym_end] = ACTIONS(42), - [sym_identifier] = ACTIONS(44), - [anon_sym_POUND] = ACTIONS(42), - [sym_float] = ACTIONS(42), - [sym_integer] = ACTIONS(44), - [sym_string] = ACTIONS(42), - [sym_function] = ACTIONS(42), - [sym_empty] = ACTIONS(42), - [anon_sym_true] = ACTIONS(44), - [anon_sym_false] = ACTIONS(44), - [anon_sym_LPAREN] = ACTIONS(44), - [anon_sym_COMMA] = ACTIONS(42), - [anon_sym_RPAREN] = ACTIONS(42), - [anon_sym_PLUS] = ACTIONS(42), - [anon_sym_DASH] = ACTIONS(42), - [anon_sym_EQ] = ACTIONS(44), - [anon_sym_EQ_EQ] = ACTIONS(42), - [anon_sym_if] = ACTIONS(44), - [anon_sym_then] = ACTIONS(44), - [anon_sym_else] = ACTIONS(44), + [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(57), + [anon_sym_table] = ACTIONS(17), + [anon_sym_if] = ACTIONS(19), + [anon_sym_output] = ACTIONS(21), }, [5] = { - [ts_builtin_sym_end] = ACTIONS(46), - [sym_identifier] = ACTIONS(48), - [anon_sym_POUND] = ACTIONS(46), - [sym_float] = ACTIONS(46), - [sym_integer] = ACTIONS(48), - [sym_string] = ACTIONS(46), - [sym_function] = ACTIONS(46), - [sym_empty] = ACTIONS(46), - [anon_sym_true] = ACTIONS(48), - [anon_sym_false] = ACTIONS(48), - [anon_sym_LPAREN] = ACTIONS(48), - [anon_sym_COMMA] = ACTIONS(46), - [anon_sym_RPAREN] = ACTIONS(46), - [anon_sym_PLUS] = ACTIONS(46), - [anon_sym_DASH] = ACTIONS(46), - [anon_sym_EQ] = ACTIONS(48), - [anon_sym_EQ_EQ] = ACTIONS(46), - [anon_sym_if] = ACTIONS(48), - [anon_sym_then] = ACTIONS(48), - [anon_sym_else] = ACTIONS(48), + [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(59), + [anon_sym_table] = ACTIONS(17), + [anon_sym_if] = ACTIONS(19), + [anon_sym_output] = ACTIONS(21), }, [6] = { - [ts_builtin_sym_end] = ACTIONS(50), - [sym_identifier] = ACTIONS(52), - [anon_sym_POUND] = ACTIONS(50), - [sym_float] = ACTIONS(50), - [sym_integer] = ACTIONS(52), - [sym_string] = ACTIONS(50), - [sym_function] = ACTIONS(50), - [sym_empty] = ACTIONS(50), - [anon_sym_true] = ACTIONS(52), - [anon_sym_false] = ACTIONS(52), - [anon_sym_LPAREN] = ACTIONS(52), - [anon_sym_COMMA] = ACTIONS(50), - [anon_sym_RPAREN] = ACTIONS(50), - [anon_sym_PLUS] = ACTIONS(50), - [anon_sym_DASH] = ACTIONS(50), - [anon_sym_EQ] = ACTIONS(52), - [anon_sym_EQ_EQ] = ACTIONS(50), - [anon_sym_if] = ACTIONS(52), - [anon_sym_then] = ACTIONS(52), - [anon_sym_else] = ACTIONS(52), + [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(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), }, [7] = { - [sym_operator] = STATE(17), - [ts_builtin_sym_end] = ACTIONS(54), - [sym_identifier] = ACTIONS(56), - [anon_sym_POUND] = ACTIONS(54), - [sym_float] = ACTIONS(54), - [sym_integer] = ACTIONS(56), - [sym_string] = ACTIONS(54), - [sym_function] = ACTIONS(54), - [sym_empty] = ACTIONS(54), - [anon_sym_true] = ACTIONS(56), - [anon_sym_false] = ACTIONS(56), - [anon_sym_LPAREN] = ACTIONS(56), - [anon_sym_PLUS] = ACTIONS(54), - [anon_sym_DASH] = ACTIONS(54), - [anon_sym_EQ] = ACTIONS(56), - [anon_sym_EQ_EQ] = ACTIONS(54), - [anon_sym_if] = ACTIONS(56), - [anon_sym_then] = ACTIONS(56), - [anon_sym_else] = ACTIONS(56), + [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), + [aux_sym_function_repeat2] = STATE(5), + [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(90), + [anon_sym_table] = ACTIONS(17), + [anon_sym_if] = ACTIONS(19), + [anon_sym_output] = ACTIONS(21), }, [8] = { - [sym_operator] = STATE(17), - [ts_builtin_sym_end] = ACTIONS(58), - [sym_identifier] = ACTIONS(60), - [anon_sym_POUND] = ACTIONS(58), - [sym_float] = ACTIONS(58), - [sym_integer] = ACTIONS(60), - [sym_string] = ACTIONS(58), - [sym_function] = ACTIONS(58), - [sym_empty] = ACTIONS(58), - [anon_sym_true] = ACTIONS(60), - [anon_sym_false] = ACTIONS(60), - [anon_sym_LPAREN] = ACTIONS(60), - [anon_sym_PLUS] = ACTIONS(58), - [anon_sym_DASH] = ACTIONS(58), - [anon_sym_EQ] = ACTIONS(60), - [anon_sym_EQ_EQ] = ACTIONS(58), - [anon_sym_if] = ACTIONS(60), - [anon_sym_then] = ACTIONS(60), - [anon_sym_else] = ACTIONS(60), + [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] = { - [ts_builtin_sym_end] = ACTIONS(62), - [sym_identifier] = ACTIONS(64), - [anon_sym_POUND] = ACTIONS(62), - [sym_float] = ACTIONS(62), - [sym_integer] = ACTIONS(64), - [sym_string] = ACTIONS(62), - [sym_function] = ACTIONS(62), - [sym_empty] = ACTIONS(62), - [anon_sym_true] = ACTIONS(64), - [anon_sym_false] = ACTIONS(64), - [anon_sym_LPAREN] = ACTIONS(64), - [anon_sym_PLUS] = ACTIONS(62), - [anon_sym_DASH] = ACTIONS(62), - [anon_sym_EQ] = ACTIONS(64), - [anon_sym_EQ_EQ] = ACTIONS(62), - [anon_sym_if] = ACTIONS(64), - [anon_sym_then] = ACTIONS(64), - [anon_sym_else] = ACTIONS(64), + [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), + [aux_sym_function_repeat2] = STATE(4), + [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(59), + [anon_sym_table] = ACTIONS(17), + [anon_sym_if] = ACTIONS(19), + [anon_sym_output] = ACTIONS(21), }, [10] = { - [ts_builtin_sym_end] = ACTIONS(66), - [sym_identifier] = ACTIONS(68), - [anon_sym_POUND] = ACTIONS(66), - [sym_float] = ACTIONS(66), - [sym_integer] = ACTIONS(68), - [sym_string] = ACTIONS(66), - [sym_function] = ACTIONS(66), - [sym_empty] = ACTIONS(66), - [anon_sym_true] = ACTIONS(68), - [anon_sym_false] = ACTIONS(68), - [anon_sym_LPAREN] = ACTIONS(68), - [anon_sym_PLUS] = ACTIONS(66), - [anon_sym_DASH] = ACTIONS(66), - [anon_sym_EQ] = ACTIONS(68), - [anon_sym_EQ_EQ] = ACTIONS(66), - [anon_sym_if] = ACTIONS(68), - [anon_sym_then] = ACTIONS(68), - [anon_sym_else] = ACTIONS(68), - }, - [11] = { - [sym_statement] = STATE(10), - [sym_open_statement] = STATE(13), - [sym_expression] = STATE(7), - [sym_value] = STATE(9), - [sym_boolean] = STATE(5), - [sym_list] = STATE(5), - [sym_operation] = STATE(9), - [sym_control_flow] = STATE(9), + [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_function] = ACTIONS(7), [sym_empty] = ACTIONS(7), [anon_sym_true] = ACTIONS(11), [anon_sym_false] = ACTIONS(11), [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_if] = ACTIONS(15), - }, - [12] = { - [ts_builtin_sym_end] = ACTIONS(70), - [sym_identifier] = ACTIONS(72), - [anon_sym_POUND] = ACTIONS(70), - [sym_float] = ACTIONS(70), - [sym_integer] = ACTIONS(72), - [sym_string] = ACTIONS(70), - [sym_function] = ACTIONS(70), - [sym_empty] = ACTIONS(70), - [anon_sym_true] = ACTIONS(72), - [anon_sym_false] = ACTIONS(72), - [anon_sym_LPAREN] = ACTIONS(72), - [anon_sym_PLUS] = ACTIONS(70), - [anon_sym_DASH] = ACTIONS(70), - [anon_sym_EQ] = ACTIONS(72), - [anon_sym_EQ_EQ] = ACTIONS(70), - [anon_sym_if] = ACTIONS(72), - [anon_sym_then] = ACTIONS(72), - [anon_sym_else] = ACTIONS(74), - }, - [13] = { - [ts_builtin_sym_end] = ACTIONS(76), - [sym_identifier] = ACTIONS(78), - [anon_sym_POUND] = ACTIONS(76), - [sym_float] = ACTIONS(76), - [sym_integer] = ACTIONS(78), - [sym_string] = ACTIONS(76), - [sym_function] = ACTIONS(76), - [sym_empty] = ACTIONS(76), - [anon_sym_true] = ACTIONS(78), - [anon_sym_false] = ACTIONS(78), - [anon_sym_LPAREN] = ACTIONS(78), - [anon_sym_PLUS] = ACTIONS(76), - [anon_sym_DASH] = ACTIONS(76), - [anon_sym_EQ] = ACTIONS(78), - [anon_sym_EQ_EQ] = ACTIONS(76), - [anon_sym_if] = ACTIONS(78), - [anon_sym_then] = ACTIONS(78), - [anon_sym_else] = ACTIONS(78), - }, - [14] = { - [sym_statement] = STATE(12), - [sym_open_statement] = STATE(13), - [sym_expression] = STATE(7), - [sym_value] = STATE(9), - [sym_boolean] = STATE(5), - [sym_list] = STATE(5), - [sym_operation] = STATE(9), - [sym_control_flow] = STATE(9), - [sym_identifier] = ACTIONS(3), - [sym_float] = ACTIONS(7), - [sym_integer] = ACTIONS(9), - [sym_string] = ACTIONS(7), - [sym_function] = ACTIONS(7), - [sym_empty] = ACTIONS(7), - [anon_sym_true] = ACTIONS(11), - [anon_sym_false] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_if] = ACTIONS(15), + [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), }, }; static const uint16_t ts_small_parse_table[] = { - [0] = 5, - ACTIONS(82), 1, - anon_sym_EQ, - STATE(17), 1, - sym_operator, - ACTIONS(80), 3, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ_EQ, - ACTIONS(54), 6, - ts_builtin_sym_end, - anon_sym_POUND, - sym_float, - sym_string, - sym_function, - sym_empty, - ACTIONS(56), 6, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_LPAREN, - anon_sym_if, - [28] = 9, + [0] = 14, ACTIONS(3), 1, sym_identifier, ACTIONS(9), 1, @@ -895,279 +1064,1087 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(15), 1, + anon_sym_function, + ACTIONS(17), 1, + anon_sym_table, + ACTIONS(19), 1, anon_sym_if, - STATE(26), 1, + ACTIONS(21), 1, + anon_sym_output, + STATE(24), 1, sym_expression, + STATE(30), 1, + sym_open_statement, + STATE(31), 1, + sym_statement, ACTIONS(11), 2, anon_sym_true, anon_sym_false, - STATE(5), 2, + ACTIONS(7), 3, + sym_float, + sym_string, + sym_empty, + STATE(13), 4, sym_boolean, sym_list, - STATE(9), 3, + sym_function, + sym_table, + STATE(27), 4, sym_value, sym_operation, sym_control_flow, - ACTIONS(7), 4, - sym_float, - sym_string, - sym_function, - sym_empty, - [63] = 9, - ACTIONS(3), 1, - sym_identifier, - ACTIONS(9), 1, - sym_integer, - ACTIONS(13), 1, - anon_sym_LPAREN, - ACTIONS(15), 1, - anon_sym_if, - STATE(8), 1, - sym_expression, - ACTIONS(11), 2, - anon_sym_true, - anon_sym_false, - STATE(5), 2, - sym_boolean, - sym_list, - STATE(9), 3, - sym_value, - sym_operation, - sym_control_flow, - ACTIONS(7), 4, - sym_float, - sym_string, - sym_function, - sym_empty, - [98] = 8, - ACTIONS(9), 1, - sym_integer, - ACTIONS(13), 1, - anon_sym_LPAREN, - ACTIONS(86), 1, - anon_sym_RPAREN, - STATE(19), 1, - aux_sym_list_repeat1, - STATE(24), 1, - sym_value, - ACTIONS(84), 2, - anon_sym_true, - anon_sym_false, - STATE(5), 2, - sym_boolean, - sym_list, - ACTIONS(7), 4, - sym_float, - sym_string, - sym_function, - sym_empty, - [128] = 8, - ACTIONS(91), 1, - sym_integer, - ACTIONS(97), 1, - anon_sym_LPAREN, - ACTIONS(100), 1, - anon_sym_RPAREN, - STATE(19), 1, - aux_sym_list_repeat1, - STATE(24), 1, - sym_value, - ACTIONS(94), 2, - anon_sym_true, - anon_sym_false, - STATE(5), 2, - sym_boolean, - sym_list, - ACTIONS(88), 4, - sym_float, - sym_string, - sym_function, - sym_empty, - [158] = 2, - ACTIONS(102), 6, + sym_tool, + [52] = 2, + ACTIONS(96), 11, ts_builtin_sym_end, anon_sym_POUND, sym_float, sym_string, - sym_function, sym_empty, - ACTIONS(104), 6, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_LPAREN, - anon_sym_if, - [175] = 2, - ACTIONS(106), 6, - ts_builtin_sym_end, - anon_sym_POUND, - sym_float, - sym_string, - sym_function, - sym_empty, - ACTIONS(108), 6, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_LPAREN, - anon_sym_if, - [192] = 7, - ACTIONS(9), 1, - sym_integer, - ACTIONS(13), 1, - anon_sym_LPAREN, - STATE(18), 1, - aux_sym_list_repeat1, - STATE(24), 1, - sym_value, - ACTIONS(84), 2, - anon_sym_true, - anon_sym_false, - STATE(5), 2, - sym_boolean, - sym_list, - ACTIONS(7), 4, - sym_float, - sym_string, - sym_function, - sym_empty, - [219] = 2, - ACTIONS(112), 4, - sym_float, - sym_string, - sym_function, - sym_empty, - ACTIONS(110), 6, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_LPAREN, - anon_sym_if, - [234] = 3, - ACTIONS(118), 1, anon_sym_COMMA, - ACTIONS(116), 2, - sym_integer, - anon_sym_LPAREN, - ACTIONS(114), 7, - sym_float, - sym_string, - sym_function, - sym_empty, - anon_sym_true, - anon_sym_false, anon_sym_RPAREN, - [251] = 2, - ACTIONS(120), 2, - sym_integer, - anon_sym_LPAREN, - ACTIONS(100), 7, - sym_float, - sym_string, - sym_function, - sym_empty, - anon_sym_true, - anon_sym_false, - anon_sym_RPAREN, - [265] = 4, - ACTIONS(82), 1, - anon_sym_EQ, - ACTIONS(122), 1, - anon_sym_then, - STATE(17), 1, - sym_operator, - ACTIONS(80), 3, + anon_sym_RBRACE, anon_sym_PLUS, anon_sym_DASH, anon_sym_EQ_EQ, - [280] = 1, - ACTIONS(124), 1, - aux_sym_comment_token1, - [284] = 1, - ACTIONS(126), 1, + 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, + ACTIONS(100), 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(102), 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, + [108] = 2, + ACTIONS(104), 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(106), 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, + [136] = 2, + ACTIONS(108), 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(110), 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, + [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, + ACTIONS(112), 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(114), 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, + [244] = 2, + ACTIONS(116), 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(118), 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, + [272] = 2, + ACTIONS(120), 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(122), 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, + [300] = 2, + ACTIONS(124), 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(126), 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, + [328] = 2, + ACTIONS(128), 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(130), 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, + [356] = 2, + ACTIONS(132), 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(134), 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, + [384] = 2, + ACTIONS(136), 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(138), 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, + [412] = 3, + STATE(26), 1, + sym_operator, + ACTIONS(140), 9, + ts_builtin_sym_end, + anon_sym_POUND, + sym_float, + sym_string, + sym_empty, + anon_sym_RBRACE, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_EQ_EQ, + ACTIONS(142), 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, + [441] = 3, + STATE(26), 1, + sym_operator, + ACTIONS(144), 9, + ts_builtin_sym_end, + anon_sym_POUND, + sym_float, + sym_string, + sym_empty, + anon_sym_RBRACE, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_EQ_EQ, + ACTIONS(146), 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, + [470] = 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(25), 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, + [516] = 2, + ACTIONS(148), 9, + ts_builtin_sym_end, + anon_sym_POUND, + sym_float, + sym_string, + sym_empty, + anon_sym_RBRACE, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_EQ_EQ, + ACTIONS(150), 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, + [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, + ACTIONS(152), 9, + ts_builtin_sym_end, + anon_sym_POUND, + sym_float, + sym_string, + sym_empty, + anon_sym_RBRACE, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_EQ_EQ, + ACTIONS(154), 11, + 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_output, + [616] = 2, + ACTIONS(158), 9, + ts_builtin_sym_end, + anon_sym_POUND, + sym_float, + sym_string, + sym_empty, + anon_sym_RBRACE, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_EQ_EQ, + ACTIONS(160), 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, + [642] = 2, + ACTIONS(162), 9, + ts_builtin_sym_end, + anon_sym_POUND, + sym_float, + sym_string, + sym_empty, + anon_sym_RBRACE, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_EQ_EQ, + ACTIONS(164), 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, + [668] = 2, + ACTIONS(166), 9, + ts_builtin_sym_end, + anon_sym_POUND, + sym_float, + sym_string, + sym_empty, + anon_sym_RBRACE, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_EQ_EQ, + ACTIONS(168), 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, + [694] = 5, + ACTIONS(172), 1, + anon_sym_EQ, + STATE(26), 1, + sym_operator, + ACTIONS(170), 3, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_EQ_EQ, + ACTIONS(140), 6, + ts_builtin_sym_end, + anon_sym_POUND, + sym_float, + sym_string, + sym_empty, + anon_sym_RBRACE, + ACTIONS(142), 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, + [725] = 10, + ACTIONS(177), 1, + sym_integer, + ACTIONS(183), 1, + anon_sym_LPAREN, + ACTIONS(186), 1, + anon_sym_RPAREN, + ACTIONS(188), 1, + anon_sym_function, + ACTIONS(191), 1, + anon_sym_table, + STATE(34), 1, + aux_sym_list_repeat1, + STATE(40), 1, + sym_value, + ACTIONS(180), 2, + anon_sym_true, + anon_sym_false, + ACTIONS(174), 3, + sym_float, + sym_string, + sym_empty, + STATE(13), 4, + sym_boolean, + sym_list, + sym_function, + sym_table, + [762] = 10, + ACTIONS(9), 1, + sym_integer, + ACTIONS(13), 1, + anon_sym_LPAREN, + ACTIONS(196), 1, + anon_sym_RPAREN, + ACTIONS(198), 1, + anon_sym_function, + ACTIONS(200), 1, + anon_sym_table, + STATE(34), 1, + aux_sym_list_repeat1, + STATE(40), 1, + sym_value, + ACTIONS(194), 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, + [799] = 9, + ACTIONS(9), 1, + sym_integer, + ACTIONS(13), 1, + anon_sym_LPAREN, + ACTIONS(198), 1, + anon_sym_function, + ACTIONS(200), 1, + anon_sym_table, + STATE(35), 1, + aux_sym_list_repeat1, + STATE(40), 1, + sym_value, + ACTIONS(194), 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, + [833] = 2, + ACTIONS(202), 5, + ts_builtin_sym_end, + anon_sym_POUND, + sym_float, + sym_string, + sym_empty, + ACTIONS(204), 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, + [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, + sym_integer, + anon_sym_LPAREN, + ACTIONS(186), 8, + sym_float, + sym_string, + sym_empty, + anon_sym_true, + anon_sym_false, + anon_sym_RPAREN, + anon_sym_function, + anon_sym_table, + [921] = 4, + ACTIONS(172), 1, + anon_sym_EQ, + ACTIONS(222), 1, + anon_sym_then, + STATE(26), 1, + sym_operator, + ACTIONS(170), 3, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_EQ_EQ, + [936] = 3, + ACTIONS(224), 1, + anon_sym_LPAREN, + ACTIONS(226), 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, + 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, + anon_sym_RBRACE, + STATE(46), 2, + sym_list, + aux_sym_table_repeat1, + [991] = 3, + ACTIONS(237), 1, + sym_identifier, + ACTIONS(240), 1, + anon_sym_GT, + STATE(48), 1, + aux_sym_function_repeat1, + [1001] = 3, + ACTIONS(242), 1, + sym_identifier, + ACTIONS(244), 1, + anon_sym_GT, + STATE(48), 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, + anon_sym_COMMA, + ACTIONS(248), 2, + sym_identifier, + anon_sym_GT, + [1029] = 3, + ACTIONS(242), 1, + sym_identifier, + ACTIONS(252), 1, + anon_sym_GT, + STATE(49), 1, + aux_sym_function_repeat1, + [1039] = 3, + ACTIONS(242), 1, + sym_identifier, + ACTIONS(254), 1, + anon_sym_GT, + STATE(50), 1, + aux_sym_function_repeat1, + [1049] = 1, + ACTIONS(240), 2, + sym_identifier, + anon_sym_GT, + [1054] = 2, + ACTIONS(256), 1, + anon_sym_LT, + ACTIONS(258), 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, + aux_sym_comment_token1, + [1077] = 1, + ACTIONS(268), 1, + anon_sym_LBRACE, + [1081] = 1, + ACTIONS(270), 1, + ts_builtin_sym_end, + [1085] = 1, + ACTIONS(272), 1, + anon_sym_LT, }; static const uint32_t ts_small_parse_table_map[] = { - [SMALL_STATE(15)] = 0, - [SMALL_STATE(16)] = 28, - [SMALL_STATE(17)] = 63, - [SMALL_STATE(18)] = 98, - [SMALL_STATE(19)] = 128, - [SMALL_STATE(20)] = 158, - [SMALL_STATE(21)] = 175, - [SMALL_STATE(22)] = 192, - [SMALL_STATE(23)] = 219, - [SMALL_STATE(24)] = 234, - [SMALL_STATE(25)] = 251, - [SMALL_STATE(26)] = 265, - [SMALL_STATE(27)] = 280, - [SMALL_STATE(28)] = 284, + [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, }; 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(9), - [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6), - [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22), - [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(16), - [17] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_root, 1), - [19] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_root_repeat1, 2), - [21] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(9), - [24] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(27), - [27] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(5), - [30] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(5), - [33] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(6), - [36] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(22), - [39] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(16), - [42] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3), - [44] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 3), - [46] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value, 1), - [48] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_value, 1), - [50] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean, 1), - [52] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_boolean, 1), - [54] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_open_statement, 1), - [56] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_open_statement, 1), - [58] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_operation, 3), - [60] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_operation, 3), - [62] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1), - [64] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1), - [66] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_control_flow, 6), - [68] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_control_flow, 6), - [70] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_control_flow, 4), - [72] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_control_flow, 4), - [74] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11), - [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_statement, 1), - [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_statement, 1), - [80] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [82] = {.entry = {.count = 1, .reusable = false}}, SHIFT(23), - [84] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [86] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [88] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(5), - [91] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(5), - [94] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(6), - [97] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(22), - [100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), - [102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 2), - [104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comment, 2), - [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_item, 1), - [108] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_item, 1), - [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_operator, 1), - [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_operator, 1), - [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 1), - [116] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 1), - [118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [120] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), - [122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [124] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [126] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [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), + [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), + [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), + [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), + [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), }; #ifdef __cplusplus