diff --git a/bindings/dust b/bindings/dust index b308c18..ad429b3 160000 --- a/bindings/dust +++ b/bindings/dust @@ -1 +1 @@ -Subproject commit b308c1852f76d21ca52c69620975590fd4871818 +Subproject commit ad429b35634097c1f81a7ce01f5890fb4594a128 diff --git a/grammar.js b/grammar.js index 21df40b..bcd0e2d 100644 --- a/grammar.js +++ b/grammar.js @@ -1,6 +1,8 @@ module.exports = grammar({ name: 'dust', + word: $ => $.identifier, + rules: { root: $ => repeat1($.item), @@ -23,8 +25,8 @@ module.exports = grammar({ expression: $ => choice( $.value, $.identifier, - prec(0, $.control_flow), - prec(1, $.operation), + $.operation, + $.control_flow, ), close: $ => ";", @@ -66,6 +68,7 @@ module.exports = grammar({ '+', '-', '=', + '==', ), operation: $ => prec.left(seq( diff --git a/src/grammar.json b/src/grammar.json index cd4d559..0d556d8 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -1,5 +1,6 @@ { "name": "dust", + "word": "identifier", "rules": { "root": { "type": "REPEAT1", @@ -83,14 +84,6 @@ "expression": { "type": "CHOICE", "members": [ - { - "type": "PREC", - "value": 0, - "content": { - "type": "SYMBOL", - "name": "control_flow" - } - }, { "type": "SYMBOL", "name": "value" @@ -100,12 +93,12 @@ "name": "identifier" }, { - "type": "PREC", - "value": 3, - "content": { - "type": "SYMBOL", - "name": "operation" - } + "type": "SYMBOL", + "name": "operation" + }, + { + "type": "SYMBOL", + "name": "control_flow" } ] }, @@ -234,6 +227,10 @@ { "type": "STRING", "value": "=" + }, + { + "type": "STRING", + "value": "==" } ] }, diff --git a/src/node-types.json b/src/node-types.json index d12b225..310d846 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -248,6 +248,10 @@ "type": "=", "named": false }, + { + "type": "==", + "named": false + }, { "type": "close", "named": true diff --git a/src/parser.c b/src/parser.c index 30a0b23..5e4e5e5 100644 --- a/src/parser.c +++ b/src/parser.c @@ -6,21 +6,21 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 77 -#define LARGE_STATE_COUNT 12 -#define SYMBOL_COUNT 36 +#define STATE_COUNT 38 +#define LARGE_STATE_COUNT 18 +#define SYMBOL_COUNT 37 #define ALIAS_COUNT 0 -#define TOKEN_COUNT 21 +#define TOKEN_COUNT 22 #define EXTERNAL_TOKEN_COUNT 0 #define FIELD_COUNT 0 #define MAX_ALIAS_SEQUENCE_LENGTH 6 #define PRODUCTION_ID_COUNT 1 enum { - anon_sym_POUND = 1, - aux_sym_comment_token1 = 2, - sym_close = 3, - sym_identifier = 4, + sym_identifier = 1, + anon_sym_POUND = 2, + aux_sym_comment_token1 = 3, + sym_close = 4, sym_float = 5, sym_integer = 6, sym_string = 7, @@ -34,32 +34,33 @@ enum { anon_sym_PLUS = 15, anon_sym_DASH = 16, anon_sym_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_closed_statement = 25, - sym_open_statement = 26, - sym_expression = 27, - sym_value = 28, - sym_boolean = 29, - sym_list = 30, - sym_operator = 31, - sym_operation = 32, - sym_control_flow = 33, - aux_sym_root_repeat1 = 34, - aux_sym_list_repeat1 = 35, + anon_sym_EQ_EQ = 18, + anon_sym_if = 19, + anon_sym_then = 20, + anon_sym_else = 21, + sym_root = 22, + sym_item = 23, + sym_comment = 24, + sym_statement = 25, + sym_closed_statement = 26, + sym_open_statement = 27, + sym_expression = 28, + sym_value = 29, + sym_boolean = 30, + sym_list = 31, + sym_operator = 32, + sym_operation = 33, + sym_control_flow = 34, + aux_sym_root_repeat1 = 35, + aux_sym_list_repeat1 = 36, }; static const char * const ts_symbol_names[] = { [ts_builtin_sym_end] = "end", + [sym_identifier] = "identifier", [anon_sym_POUND] = "#", [aux_sym_comment_token1] = "comment_token1", [sym_close] = "close", - [sym_identifier] = "identifier", [sym_float] = "float", [sym_integer] = "integer", [sym_string] = "string", @@ -73,6 +74,7 @@ static const char * const ts_symbol_names[] = { [anon_sym_PLUS] = "+", [anon_sym_DASH] = "-", [anon_sym_EQ] = "=", + [anon_sym_EQ_EQ] = "==", [anon_sym_if] = "if", [anon_sym_then] = "then", [anon_sym_else] = "else", @@ -95,10 +97,10 @@ static const char * const ts_symbol_names[] = { static const TSSymbol ts_symbol_map[] = { [ts_builtin_sym_end] = ts_builtin_sym_end, + [sym_identifier] = sym_identifier, [anon_sym_POUND] = anon_sym_POUND, [aux_sym_comment_token1] = aux_sym_comment_token1, [sym_close] = sym_close, - [sym_identifier] = sym_identifier, [sym_float] = sym_float, [sym_integer] = sym_integer, [sym_string] = sym_string, @@ -112,6 +114,7 @@ static const TSSymbol ts_symbol_map[] = { [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, [anon_sym_else] = anon_sym_else, @@ -137,6 +140,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = true, }, + [sym_identifier] = { + .visible = true, + .named = true, + }, [anon_sym_POUND] = { .visible = true, .named = false, @@ -149,10 +156,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, - [sym_identifier] = { - .visible = true, - .named = true, - }, [sym_float] = { .visible = true, .named = true, @@ -205,6 +208,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_EQ_EQ] = { + .visible = true, + .named = false, + }, [anon_sym_if] = { .visible = true, .named = false, @@ -293,78 +300,39 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [2] = 2, [3] = 3, [4] = 4, - [5] = 4, + [5] = 5, [6] = 6, - [7] = 4, - [8] = 4, - [9] = 6, - [10] = 6, - [11] = 6, + [7] = 7, + [8] = 8, + [9] = 9, + [10] = 9, + [11] = 11, [12] = 12, [13] = 13, [14] = 14, [15] = 15, - [16] = 16, + [16] = 12, [17] = 17, - [18] = 18, + [18] = 8, [19] = 19, - [20] = 20, - [21] = 12, - [22] = 13, - [23] = 19, + [20] = 19, + [21] = 21, + [22] = 21, + [23] = 23, [24] = 24, [25] = 25, - [26] = 13, - [27] = 14, - [28] = 17, - [29] = 14, + [26] = 26, + [27] = 27, + [28] = 28, + [29] = 29, [30] = 30, - [31] = 24, + [31] = 8, [32] = 32, - [33] = 17, - [34] = 16, - [35] = 32, - [36] = 32, - [37] = 18, - [38] = 30, - [39] = 30, - [40] = 16, - [41] = 32, - [42] = 25, - [43] = 15, - [44] = 44, - [45] = 20, - [46] = 30, - [47] = 47, - [48] = 47, - [49] = 49, - [50] = 47, - [51] = 51, - [52] = 52, - [53] = 53, - [54] = 52, - [55] = 52, - [56] = 56, - [57] = 57, - [58] = 58, - [59] = 13, - [60] = 12, - [61] = 13, - [62] = 24, - [63] = 44, - [64] = 20, - [65] = 19, - [66] = 15, - [67] = 18, - [68] = 25, - [69] = 12, - [70] = 19, - [71] = 71, - [72] = 71, - [73] = 71, - [74] = 71, - [75] = 75, - [76] = 76, + [33] = 32, + [34] = 15, + [35] = 7, + [36] = 36, + [37] = 37, }; static bool ts_lex(TSLexer *lexer, TSStateId state) { @@ -372,358 +340,200 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { eof = lexer->eof(lexer); switch (state) { case 0: - if (eof) ADVANCE(18); + if (eof) ADVANCE(3); if (lookahead == '"' || lookahead == '\'' || - lookahead == '`') ADVANCE(15); - if (lookahead == '#') ADVANCE(19); - if (lookahead == '(') ADVANCE(45); - if (lookahead == ')') ADVANCE(47); - if (lookahead == '+') ADVANCE(48); - if (lookahead == ',') ADVANCE(46); - if (lookahead == '-') ADVANCE(49); - if (lookahead == ';') ADVANCE(22); - if (lookahead == '=') ADVANCE(50); - if (lookahead == 'e') ADVANCE(8); - if (lookahead == 'f') ADVANCE(1); - if (lookahead == 'i') ADVANCE(6); - if (lookahead == 't') ADVANCE(7); - if (lookahead == '{') ADVANCE(14); + lookahead == '`') ADVANCE(2); + if (lookahead == '#') ADVANCE(4); + if (lookahead == '(') ADVANCE(15); + if (lookahead == ')') ADVANCE(17); + if (lookahead == '+') ADVANCE(18); + if (lookahead == ',') ADVANCE(16); + if (lookahead == '-') ADVANCE(19); + if (lookahead == ';') ADVANCE(7); + if (lookahead == '=') ADVANCE(20); + if (lookahead == '{') ADVANCE(1); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(0) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(37); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(11); + if (lookahead == '.' || + ('A' <= lookahead && lookahead <= 'Z') || + ('_' <= lookahead && lookahead <= '|')) ADVANCE(9); END_STATE(); case 1: - if (lookahead == 'a') ADVANCE(9); + if (lookahead == '}') ADVANCE(13); + if (lookahead != 0 && + lookahead != '\n') ADVANCE(1); END_STATE(); case 2: - if (lookahead == 'e') ADVANCE(10); + if (lookahead == '"' || + lookahead == '\'' || + lookahead == '`') ADVANCE(12); + if (lookahead != 0 && + lookahead != '\n') ADVANCE(2); END_STATE(); case 3: - if (lookahead == 'e') ADVANCE(54); - END_STATE(); - case 4: - if (lookahead == 'e') ADVANCE(41); - END_STATE(); - case 5: - if (lookahead == 'e') ADVANCE(43); - END_STATE(); - case 6: - if (lookahead == 'f') ADVANCE(51); - END_STATE(); - case 7: - if (lookahead == 'h') ADVANCE(2); - if (lookahead == 'r') ADVANCE(13); - END_STATE(); - case 8: - if (lookahead == 'l') ADVANCE(11); - END_STATE(); - case 9: - if (lookahead == 'l') ADVANCE(12); - END_STATE(); - case 10: - if (lookahead == 'n') ADVANCE(53); - END_STATE(); - case 11: - if (lookahead == 's') ADVANCE(3); - END_STATE(); - case 12: - if (lookahead == 's') ADVANCE(5); - END_STATE(); - case 13: - if (lookahead == 'u') ADVANCE(4); - END_STATE(); - case 14: - if (lookahead == '}') ADVANCE(39); - if (lookahead != 0 && - lookahead != '\n') ADVANCE(14); - END_STATE(); - case 15: - if (lookahead == '"' || - lookahead == '\'' || - lookahead == '`') ADVANCE(38); - if (lookahead != 0 && - lookahead != '\n') ADVANCE(15); - END_STATE(); - case 16: - if (eof) ADVANCE(18); - if (lookahead == '"' || - lookahead == '\'' || - lookahead == '`') ADVANCE(15); - if (lookahead == '#') ADVANCE(19); - if (lookahead == '(') ADVANCE(45); - if (lookahead == '+') ADVANCE(48); - if (lookahead == '-') ADVANCE(49); - if (lookahead == ';') ADVANCE(22); - if (lookahead == '=') ADVANCE(50); - if (lookahead == 'e') ADVANCE(29); - if (lookahead == 'f') ADVANCE(23); - if (lookahead == 'i') ADVANCE(27); - if (lookahead == 't') ADVANCE(30); - if (lookahead == '{') ADVANCE(14); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(16) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(37); - if (lookahead == '.' || - ('A' <= lookahead && lookahead <= 'Z') || - ('_' <= lookahead && lookahead <= '|')) ADVANCE(35); - END_STATE(); - case 17: - if (eof) ADVANCE(18); - if (lookahead == '"' || - lookahead == '\'' || - lookahead == '`') ADVANCE(15); - if (lookahead == '#') ADVANCE(19); - if (lookahead == '(') ADVANCE(45); - if (lookahead == '+') ADVANCE(48); - if (lookahead == '-') ADVANCE(49); - if (lookahead == ';') ADVANCE(22); - if (lookahead == '=') ADVANCE(50); - if (lookahead == 'f') ADVANCE(23); - if (lookahead == 'i') ADVANCE(27); - if (lookahead == 't') ADVANCE(30); - if (lookahead == '{') ADVANCE(14); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(17) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(37); - if (lookahead == '.' || - ('A' <= lookahead && lookahead <= 'Z') || - ('_' <= lookahead && lookahead <= '|')) ADVANCE(35); - END_STATE(); - case 18: ACCEPT_TOKEN(ts_builtin_sym_end); END_STATE(); - case 19: + case 4: ACCEPT_TOKEN(anon_sym_POUND); END_STATE(); - case 20: + case 5: ACCEPT_TOKEN(aux_sym_comment_token1); if (lookahead == '\t' || lookahead == '\r' || - lookahead == ' ') ADVANCE(20); + lookahead == ' ') ADVANCE(5); if (lookahead != 0 && - lookahead != '\n') ADVANCE(21); + lookahead != '\n') ADVANCE(6); END_STATE(); - case 21: + case 6: ACCEPT_TOKEN(aux_sym_comment_token1); if (lookahead != 0 && - lookahead != '\n') ADVANCE(21); + lookahead != '\n') ADVANCE(6); END_STATE(); - case 22: + case 7: ACCEPT_TOKEN(sym_close); END_STATE(); - case 23: + case 8: ACCEPT_TOKEN(sym_identifier); - if (lookahead == '_') ADVANCE(34); - if (lookahead == 'a') ADVANCE(28); + if (lookahead == '_') ADVANCE(8); if (lookahead == '.' || - ('A' <= lookahead && lookahead <= 'Z') || - ('b' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(35); - END_STATE(); - case 24: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == '_') ADVANCE(34); - if (lookahead == 'e') ADVANCE(42); - if (lookahead == '.' || - ('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(35); - END_STATE(); - case 25: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == '_') ADVANCE(34); - if (lookahead == 'e') ADVANCE(44); - if (lookahead == '.' || - ('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(35); - END_STATE(); - case 26: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == '_') ADVANCE(34); - if (lookahead == 'e') ADVANCE(55); - if (lookahead == '.' || - ('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(35); - END_STATE(); - case 27: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == '_') ADVANCE(34); - if (lookahead == 'f') ADVANCE(52); - if (lookahead == '.' || - ('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(35); - END_STATE(); - case 28: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == '_') ADVANCE(34); - if (lookahead == 'l') ADVANCE(31); - if (lookahead == '.' || - ('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(35); - END_STATE(); - case 29: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == '_') ADVANCE(34); - if (lookahead == 'l') ADVANCE(32); - if (lookahead == '.' || - ('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(35); - END_STATE(); - case 30: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == '_') ADVANCE(34); - if (lookahead == 'r') ADVANCE(33); - if (lookahead == '.' || - ('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(35); - END_STATE(); - case 31: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == '_') ADVANCE(34); - if (lookahead == 's') ADVANCE(25); - if (lookahead == '.' || - ('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(35); - END_STATE(); - case 32: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == '_') ADVANCE(34); - if (lookahead == 's') ADVANCE(26); - if (lookahead == '.' || - ('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(35); - END_STATE(); - case 33: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == '_') ADVANCE(34); - if (lookahead == 'u') ADVANCE(24); - if (lookahead == '.' || - ('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(35); - END_STATE(); - case 34: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == '_') ADVANCE(34); - if (lookahead == '.' || - lookahead == '|') ADVANCE(35); + lookahead == '|') ADVANCE(9); if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(34); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(8); END_STATE(); - case 35: + case 9: ACCEPT_TOKEN(sym_identifier); - if (lookahead == '_') ADVANCE(34); + if (lookahead == '_') ADVANCE(8); if (lookahead == '.' || ('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(35); + lookahead == '|') ADVANCE(9); END_STATE(); - case 36: + case 10: ACCEPT_TOKEN(sym_float); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(36); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(10); END_STATE(); - case 37: + case 11: ACCEPT_TOKEN(sym_integer); - if (lookahead == '.') ADVANCE(36); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(37); + if (lookahead == '.') ADVANCE(10); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(11); END_STATE(); - case 38: + case 12: ACCEPT_TOKEN(sym_string); if (lookahead == '"' || lookahead == '\'' || - lookahead == '`') ADVANCE(38); + lookahead == '`') ADVANCE(12); if (lookahead != 0 && - lookahead != '\n') ADVANCE(15); + lookahead != '\n') ADVANCE(2); END_STATE(); - case 39: + case 13: ACCEPT_TOKEN(sym_function); - if (lookahead == '}') ADVANCE(39); + if (lookahead == '}') ADVANCE(13); if (lookahead != 0 && - lookahead != '\n') ADVANCE(14); + lookahead != '\n') ADVANCE(1); END_STATE(); - case 40: + case 14: ACCEPT_TOKEN(sym_empty); END_STATE(); - case 41: - ACCEPT_TOKEN(anon_sym_true); - END_STATE(); - case 42: - ACCEPT_TOKEN(anon_sym_true); - if (lookahead == '_') ADVANCE(34); - if (lookahead == '.' || - ('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(35); - END_STATE(); - case 43: - ACCEPT_TOKEN(anon_sym_false); - END_STATE(); - case 44: - ACCEPT_TOKEN(anon_sym_false); - if (lookahead == '_') ADVANCE(34); - if (lookahead == '.' || - ('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(35); - END_STATE(); - case 45: + case 15: ACCEPT_TOKEN(anon_sym_LPAREN); - if (lookahead == ')') ADVANCE(40); + if (lookahead == ')') ADVANCE(14); END_STATE(); - case 46: + case 16: ACCEPT_TOKEN(anon_sym_COMMA); END_STATE(); - case 47: + case 17: ACCEPT_TOKEN(anon_sym_RPAREN); END_STATE(); - case 48: + case 18: ACCEPT_TOKEN(anon_sym_PLUS); END_STATE(); - case 49: + case 19: ACCEPT_TOKEN(anon_sym_DASH); END_STATE(); - case 50: + case 20: ACCEPT_TOKEN(anon_sym_EQ); + if (lookahead == '=') ADVANCE(21); END_STATE(); - case 51: + case 21: + ACCEPT_TOKEN(anon_sym_EQ_EQ); + END_STATE(); + default: + return false; + } +} + +static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { + START_LEXER(); + eof = lexer->eof(lexer); + switch (state) { + case 0: + if (lookahead == 'e') ADVANCE(1); + if (lookahead == 'f') ADVANCE(2); + if (lookahead == 'i') ADVANCE(3); + if (lookahead == 't') ADVANCE(4); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(0) + END_STATE(); + case 1: + if (lookahead == 'l') ADVANCE(5); + END_STATE(); + case 2: + if (lookahead == 'a') ADVANCE(6); + END_STATE(); + case 3: + if (lookahead == 'f') ADVANCE(7); + END_STATE(); + case 4: + if (lookahead == 'h') ADVANCE(8); + if (lookahead == 'r') ADVANCE(9); + END_STATE(); + case 5: + if (lookahead == 's') ADVANCE(10); + END_STATE(); + case 6: + if (lookahead == 'l') ADVANCE(11); + END_STATE(); + case 7: ACCEPT_TOKEN(anon_sym_if); END_STATE(); - case 52: - ACCEPT_TOKEN(anon_sym_if); - if (lookahead == '_') ADVANCE(34); - if (lookahead == '.' || - ('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(35); + case 8: + if (lookahead == 'e') ADVANCE(12); END_STATE(); - case 53: + 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 13: + if (lookahead == 'e') ADVANCE(17); + END_STATE(); + case 14: + ACCEPT_TOKEN(anon_sym_else); + END_STATE(); + case 15: + if (lookahead == 'e') ADVANCE(18); + END_STATE(); + case 16: ACCEPT_TOKEN(anon_sym_then); END_STATE(); - case 54: - ACCEPT_TOKEN(anon_sym_else); + case 17: + ACCEPT_TOKEN(anon_sym_true); END_STATE(); - case 55: - ACCEPT_TOKEN(anon_sym_else); - if (lookahead == '_') ADVANCE(34); - if (lookahead == '.' || - ('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z') || - lookahead == '|') ADVANCE(35); + case 18: + ACCEPT_TOKEN(anon_sym_false); END_STATE(); default: return false; @@ -732,87 +542,49 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { static const TSLexMode ts_lex_modes[STATE_COUNT] = { [0] = {.lex_state = 0}, - [1] = {.lex_state = 17}, - [2] = {.lex_state = 17}, - [3] = {.lex_state = 17}, - [4] = {.lex_state = 17}, - [5] = {.lex_state = 17}, - [6] = {.lex_state = 17}, - [7] = {.lex_state = 17}, - [8] = {.lex_state = 17}, - [9] = {.lex_state = 17}, - [10] = {.lex_state = 17}, - [11] = {.lex_state = 17}, - [12] = {.lex_state = 16}, - [13] = {.lex_state = 16}, - [14] = {.lex_state = 16}, - [15] = {.lex_state = 16}, - [16] = {.lex_state = 16}, - [17] = {.lex_state = 16}, - [18] = {.lex_state = 16}, - [19] = {.lex_state = 16}, - [20] = {.lex_state = 16}, - [21] = {.lex_state = 17}, - [22] = {.lex_state = 17}, - [23] = {.lex_state = 16}, - [24] = {.lex_state = 16}, - [25] = {.lex_state = 16}, - [26] = {.lex_state = 17}, + [1] = {.lex_state = 0}, + [2] = {.lex_state = 0}, + [3] = {.lex_state = 0}, + [4] = {.lex_state = 0}, + [5] = {.lex_state = 0}, + [6] = {.lex_state = 0}, + [7] = {.lex_state = 0}, + [8] = {.lex_state = 0}, + [9] = {.lex_state = 0}, + [10] = {.lex_state = 0}, + [11] = {.lex_state = 0}, + [12] = {.lex_state = 0}, + [13] = {.lex_state = 0}, + [14] = {.lex_state = 0}, + [15] = {.lex_state = 0}, + [16] = {.lex_state = 0}, + [17] = {.lex_state = 0}, + [18] = {.lex_state = 0}, + [19] = {.lex_state = 0}, + [20] = {.lex_state = 0}, + [21] = {.lex_state = 0}, + [22] = {.lex_state = 0}, + [23] = {.lex_state = 0}, + [24] = {.lex_state = 0}, + [25] = {.lex_state = 0}, + [26] = {.lex_state = 0}, [27] = {.lex_state = 0}, - [28] = {.lex_state = 17}, - [29] = {.lex_state = 17}, - [30] = {.lex_state = 17}, - [31] = {.lex_state = 17}, - [32] = {.lex_state = 17}, + [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 = 17}, - [36] = {.lex_state = 17}, - [37] = {.lex_state = 17}, - [38] = {.lex_state = 17}, - [39] = {.lex_state = 17}, - [40] = {.lex_state = 17}, - [41] = {.lex_state = 17}, - [42] = {.lex_state = 17}, - [43] = {.lex_state = 17}, - [44] = {.lex_state = 17}, - [45] = {.lex_state = 17}, - [46] = {.lex_state = 17}, - [47] = {.lex_state = 0}, - [48] = {.lex_state = 0}, - [49] = {.lex_state = 0}, - [50] = {.lex_state = 0}, - [51] = {.lex_state = 17}, - [52] = {.lex_state = 0}, - [53] = {.lex_state = 17}, - [54] = {.lex_state = 0}, - [55] = {.lex_state = 0}, - [56] = {.lex_state = 0}, - [57] = {.lex_state = 17}, - [58] = {.lex_state = 0}, - [59] = {.lex_state = 0}, - [60] = {.lex_state = 0}, - [61] = {.lex_state = 0}, - [62] = {.lex_state = 0}, - [63] = {.lex_state = 0}, - [64] = {.lex_state = 0}, - [65] = {.lex_state = 0}, - [66] = {.lex_state = 0}, - [67] = {.lex_state = 0}, - [68] = {.lex_state = 0}, - [69] = {.lex_state = 0}, - [70] = {.lex_state = 0}, - [71] = {.lex_state = 0}, - [72] = {.lex_state = 0}, - [73] = {.lex_state = 0}, - [74] = {.lex_state = 0}, - [75] = {.lex_state = 0}, - [76] = {.lex_state = 20}, + [35] = {.lex_state = 0}, + [36] = {.lex_state = 5}, + [37] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [0] = { [ts_builtin_sym_end] = ACTIONS(1), + [sym_identifier] = ACTIONS(1), [anon_sym_POUND] = ACTIONS(1), [sym_close] = ACTIONS(1), [sym_float] = ACTIONS(1), @@ -828,26 +600,27 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [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), [anon_sym_else] = ACTIONS(1), }, [1] = { - [sym_root] = STATE(75), - [sym_item] = STATE(2), - [sym_comment] = STATE(53), - [sym_statement] = STATE(53), - [sym_closed_statement] = STATE(42), - [sym_open_statement] = STATE(42), - [sym_expression] = STATE(22), - [sym_value] = STATE(37), - [sym_boolean] = STATE(28), - [sym_list] = STATE(28), - [sym_operation] = STATE(43), - [sym_control_flow] = STATE(45), - [aux_sym_root_repeat1] = STATE(2), - [anon_sym_POUND] = ACTIONS(3), - [sym_identifier] = ACTIONS(5), + [sym_root] = STATE(37), + [sym_item] = STATE(3), + [sym_comment] = STATE(25), + [sym_statement] = STATE(25), + [sym_closed_statement] = STATE(11), + [sym_open_statement] = STATE(11), + [sym_expression] = STATE(18), + [sym_value] = STATE(17), + [sym_boolean] = STATE(5), + [sym_list] = STATE(5), + [sym_operation] = STATE(17), + [sym_control_flow] = STATE(17), + [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), @@ -859,21 +632,47 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_if] = ACTIONS(15), }, [2] = { - [sym_item] = STATE(3), - [sym_comment] = STATE(53), - [sym_statement] = STATE(53), - [sym_closed_statement] = STATE(42), - [sym_open_statement] = STATE(42), - [sym_expression] = STATE(22), - [sym_value] = STATE(37), - [sym_boolean] = STATE(28), - [sym_list] = STATE(28), - [sym_operation] = STATE(43), - [sym_control_flow] = STATE(45), - [aux_sym_root_repeat1] = STATE(3), + [sym_item] = STATE(2), + [sym_comment] = STATE(25), + [sym_statement] = STATE(25), + [sym_closed_statement] = STATE(11), + [sym_open_statement] = STATE(11), + [sym_expression] = STATE(18), + [sym_value] = STATE(17), + [sym_boolean] = STATE(5), + [sym_list] = STATE(5), + [sym_operation] = STATE(17), + [sym_control_flow] = STATE(17), + [aux_sym_root_repeat1] = STATE(2), [ts_builtin_sym_end] = ACTIONS(17), - [anon_sym_POUND] = ACTIONS(3), - [sym_identifier] = ACTIONS(5), + [sym_identifier] = ACTIONS(19), + [anon_sym_POUND] = ACTIONS(22), + [sym_float] = ACTIONS(25), + [sym_integer] = ACTIONS(28), + [sym_string] = ACTIONS(25), + [sym_function] = ACTIONS(25), + [sym_empty] = ACTIONS(25), + [anon_sym_true] = ACTIONS(31), + [anon_sym_false] = ACTIONS(31), + [anon_sym_LPAREN] = ACTIONS(34), + [anon_sym_if] = ACTIONS(37), + }, + [3] = { + [sym_item] = STATE(2), + [sym_comment] = STATE(25), + [sym_statement] = STATE(25), + [sym_closed_statement] = STATE(11), + [sym_open_statement] = STATE(11), + [sym_expression] = STATE(18), + [sym_value] = STATE(17), + [sym_boolean] = STATE(5), + [sym_list] = STATE(5), + [sym_operation] = STATE(17), + [sym_control_flow] = STATE(17), + [aux_sym_root_repeat1] = STATE(2), + [ts_builtin_sym_end] = ACTIONS(40), + [sym_identifier] = ACTIONS(3), + [anon_sym_POUND] = ACTIONS(5), [sym_float] = ACTIONS(7), [sym_integer] = ACTIONS(9), [sym_string] = ACTIONS(7), @@ -884,148 +683,130 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_LPAREN] = ACTIONS(13), [anon_sym_if] = ACTIONS(15), }, - [3] = { - [sym_item] = STATE(3), - [sym_comment] = STATE(53), - [sym_statement] = STATE(53), - [sym_closed_statement] = STATE(42), - [sym_open_statement] = STATE(42), - [sym_expression] = STATE(22), - [sym_value] = STATE(37), - [sym_boolean] = STATE(28), - [sym_list] = STATE(28), - [sym_operation] = STATE(43), - [sym_control_flow] = STATE(45), - [aux_sym_root_repeat1] = STATE(3), - [ts_builtin_sym_end] = ACTIONS(19), - [anon_sym_POUND] = ACTIONS(21), - [sym_identifier] = 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), - }, [4] = { - [sym_statement] = STATE(19), - [sym_closed_statement] = STATE(25), - [sym_open_statement] = STATE(25), - [sym_expression] = STATE(13), - [sym_value] = STATE(18), - [sym_boolean] = STATE(17), - [sym_list] = STATE(17), - [sym_operation] = STATE(15), - [sym_control_flow] = STATE(20), - [sym_identifier] = ACTIONS(42), - [sym_float] = ACTIONS(44), - [sym_integer] = ACTIONS(46), - [sym_string] = ACTIONS(44), - [sym_function] = ACTIONS(44), - [sym_empty] = ACTIONS(44), - [anon_sym_true] = ACTIONS(48), - [anon_sym_false] = ACTIONS(48), - [anon_sym_LPAREN] = ACTIONS(50), - [anon_sym_if] = ACTIONS(52), + [ts_builtin_sym_end] = ACTIONS(42), + [sym_identifier] = ACTIONS(44), + [anon_sym_POUND] = ACTIONS(42), + [sym_close] = 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), }, [5] = { - [sym_statement] = STATE(65), - [sym_closed_statement] = STATE(68), - [sym_open_statement] = STATE(68), - [sym_expression] = STATE(61), - [sym_value] = STATE(67), - [sym_boolean] = STATE(33), - [sym_list] = STATE(33), - [sym_operation] = STATE(66), - [sym_control_flow] = STATE(64), - [sym_identifier] = ACTIONS(54), - [sym_float] = ACTIONS(56), - [sym_integer] = ACTIONS(58), - [sym_string] = ACTIONS(56), - [sym_function] = ACTIONS(56), - [sym_empty] = ACTIONS(56), - [anon_sym_true] = ACTIONS(60), - [anon_sym_false] = ACTIONS(60), - [anon_sym_LPAREN] = ACTIONS(62), - [anon_sym_if] = ACTIONS(64), - }, - [6] = { - [sym_statement] = STATE(62), - [sym_closed_statement] = STATE(68), - [sym_open_statement] = STATE(68), - [sym_expression] = STATE(61), - [sym_value] = STATE(67), - [sym_boolean] = STATE(33), - [sym_list] = STATE(33), - [sym_operation] = STATE(66), - [sym_control_flow] = STATE(64), - [sym_identifier] = ACTIONS(54), - [sym_float] = ACTIONS(56), - [sym_integer] = ACTIONS(58), - [sym_string] = ACTIONS(56), - [sym_function] = ACTIONS(56), - [sym_empty] = ACTIONS(56), - [anon_sym_true] = ACTIONS(60), - [anon_sym_false] = ACTIONS(60), - [anon_sym_LPAREN] = ACTIONS(62), - [anon_sym_if] = ACTIONS(64), - }, - [7] = { - [sym_statement] = STATE(23), - [sym_closed_statement] = STATE(25), - [sym_open_statement] = STATE(25), - [sym_expression] = STATE(13), - [sym_value] = STATE(18), - [sym_boolean] = STATE(17), - [sym_list] = STATE(17), - [sym_operation] = STATE(15), - [sym_control_flow] = STATE(20), - [sym_identifier] = ACTIONS(42), - [sym_float] = ACTIONS(44), - [sym_integer] = ACTIONS(46), - [sym_string] = ACTIONS(44), - [sym_function] = ACTIONS(44), - [sym_empty] = ACTIONS(44), + [ts_builtin_sym_end] = ACTIONS(46), + [sym_identifier] = ACTIONS(48), + [anon_sym_POUND] = ACTIONS(46), + [sym_close] = 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(50), + [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), + }, + [6] = { + [ts_builtin_sym_end] = ACTIONS(50), + [sym_identifier] = ACTIONS(52), + [anon_sym_POUND] = ACTIONS(50), + [sym_close] = 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), + }, + [7] = { + [sym_operator] = STATE(20), + [ts_builtin_sym_end] = ACTIONS(54), + [sym_identifier] = ACTIONS(56), + [anon_sym_POUND] = ACTIONS(54), + [sym_close] = 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), }, [8] = { - [sym_statement] = STATE(70), - [sym_closed_statement] = STATE(68), - [sym_open_statement] = STATE(68), - [sym_expression] = STATE(59), - [sym_value] = STATE(67), - [sym_boolean] = STATE(33), - [sym_list] = STATE(33), - [sym_operation] = STATE(66), - [sym_control_flow] = STATE(64), - [sym_identifier] = ACTIONS(54), - [sym_float] = ACTIONS(56), - [sym_integer] = ACTIONS(58), - [sym_string] = ACTIONS(56), - [sym_function] = ACTIONS(56), - [sym_empty] = ACTIONS(56), + [sym_operator] = STATE(20), + [ts_builtin_sym_end] = ACTIONS(58), + [sym_identifier] = ACTIONS(60), + [anon_sym_POUND] = ACTIONS(58), + [sym_close] = 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(62), - [anon_sym_if] = ACTIONS(64), + [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), }, [9] = { - [sym_statement] = STATE(31), - [sym_closed_statement] = STATE(42), - [sym_open_statement] = STATE(42), - [sym_expression] = STATE(26), - [sym_value] = STATE(37), - [sym_boolean] = STATE(28), - [sym_list] = STATE(28), - [sym_operation] = STATE(43), - [sym_control_flow] = STATE(45), - [sym_identifier] = ACTIONS(5), + [sym_statement] = STATE(13), + [sym_closed_statement] = STATE(11), + [sym_open_statement] = STATE(11), + [sym_expression] = STATE(8), + [sym_value] = STATE(17), + [sym_boolean] = STATE(5), + [sym_list] = STATE(5), + [sym_operation] = STATE(17), + [sym_control_flow] = STATE(17), + [sym_identifier] = ACTIONS(3), [sym_float] = ACTIONS(7), [sym_integer] = ACTIONS(9), [sym_string] = ACTIONS(7), @@ -1037,636 +818,229 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_if] = ACTIONS(15), }, [10] = { - [sym_statement] = STATE(24), - [sym_closed_statement] = STATE(25), - [sym_open_statement] = STATE(25), - [sym_expression] = STATE(13), - [sym_value] = STATE(18), - [sym_boolean] = STATE(17), - [sym_list] = STATE(17), - [sym_operation] = STATE(15), - [sym_control_flow] = STATE(20), - [sym_identifier] = ACTIONS(42), - [sym_float] = ACTIONS(44), - [sym_integer] = ACTIONS(46), - [sym_string] = ACTIONS(44), - [sym_function] = ACTIONS(44), - [sym_empty] = ACTIONS(44), - [anon_sym_true] = ACTIONS(48), - [anon_sym_false] = ACTIONS(48), - [anon_sym_LPAREN] = ACTIONS(50), - [anon_sym_if] = ACTIONS(52), + [sym_statement] = STATE(13), + [sym_closed_statement] = STATE(11), + [sym_open_statement] = STATE(11), + [sym_expression] = STATE(31), + [sym_value] = STATE(17), + [sym_boolean] = STATE(5), + [sym_list] = STATE(5), + [sym_operation] = STATE(17), + [sym_control_flow] = STATE(17), + [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), }, [11] = { - [sym_statement] = STATE(62), - [sym_closed_statement] = STATE(68), - [sym_open_statement] = STATE(68), - [sym_expression] = STATE(59), - [sym_value] = STATE(67), - [sym_boolean] = STATE(33), - [sym_list] = STATE(33), - [sym_operation] = STATE(66), - [sym_control_flow] = STATE(64), - [sym_identifier] = ACTIONS(54), - [sym_float] = ACTIONS(56), - [sym_integer] = ACTIONS(58), - [sym_string] = ACTIONS(56), - [sym_function] = ACTIONS(56), - [sym_empty] = ACTIONS(56), - [anon_sym_true] = ACTIONS(60), - [anon_sym_false] = ACTIONS(60), - [anon_sym_LPAREN] = ACTIONS(62), + [ts_builtin_sym_end] = ACTIONS(62), + [sym_identifier] = ACTIONS(64), + [anon_sym_POUND] = ACTIONS(62), + [sym_close] = 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), + }, + [12] = { + [sym_statement] = STATE(34), + [sym_closed_statement] = STATE(11), + [sym_open_statement] = STATE(11), + [sym_expression] = STATE(31), + [sym_value] = STATE(17), + [sym_boolean] = STATE(5), + [sym_list] = STATE(5), + [sym_operation] = STATE(17), + [sym_control_flow] = STATE(17), + [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), + }, + [13] = { + [ts_builtin_sym_end] = ACTIONS(66), + [sym_identifier] = ACTIONS(68), + [anon_sym_POUND] = ACTIONS(66), + [sym_close] = 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), + }, + [14] = { + [ts_builtin_sym_end] = ACTIONS(70), + [sym_identifier] = ACTIONS(72), + [anon_sym_POUND] = ACTIONS(70), + [sym_close] = 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(72), + }, + [15] = { + [ts_builtin_sym_end] = ACTIONS(74), + [sym_identifier] = ACTIONS(76), + [anon_sym_POUND] = ACTIONS(74), + [sym_close] = ACTIONS(74), + [sym_float] = ACTIONS(74), + [sym_integer] = ACTIONS(76), + [sym_string] = ACTIONS(74), + [sym_function] = ACTIONS(74), + [sym_empty] = ACTIONS(74), + [anon_sym_true] = ACTIONS(76), + [anon_sym_false] = ACTIONS(76), + [anon_sym_LPAREN] = ACTIONS(76), + [anon_sym_PLUS] = ACTIONS(74), + [anon_sym_DASH] = ACTIONS(74), + [anon_sym_EQ] = ACTIONS(76), + [anon_sym_EQ_EQ] = ACTIONS(74), + [anon_sym_if] = ACTIONS(76), + [anon_sym_then] = ACTIONS(76), + [anon_sym_else] = ACTIONS(78), + }, + [16] = { + [sym_statement] = STATE(15), + [sym_closed_statement] = STATE(11), + [sym_open_statement] = STATE(11), + [sym_expression] = STATE(8), + [sym_value] = STATE(17), + [sym_boolean] = STATE(5), + [sym_list] = STATE(5), + [sym_operation] = STATE(17), + [sym_control_flow] = STATE(17), + [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), + }, + [17] = { + [ts_builtin_sym_end] = ACTIONS(80), + [sym_identifier] = ACTIONS(82), + [anon_sym_POUND] = ACTIONS(80), + [sym_close] = ACTIONS(80), + [sym_float] = ACTIONS(80), + [sym_integer] = ACTIONS(82), + [sym_string] = ACTIONS(80), + [sym_function] = ACTIONS(80), + [sym_empty] = ACTIONS(80), + [anon_sym_true] = ACTIONS(82), + [anon_sym_false] = ACTIONS(82), + [anon_sym_LPAREN] = ACTIONS(82), + [anon_sym_PLUS] = ACTIONS(80), + [anon_sym_DASH] = ACTIONS(80), + [anon_sym_EQ] = ACTIONS(82), + [anon_sym_EQ_EQ] = ACTIONS(80), + [anon_sym_if] = ACTIONS(82), + [anon_sym_then] = ACTIONS(82), + [anon_sym_else] = ACTIONS(82), }, }; static const uint16_t ts_small_parse_table[] = { - [0] = 3, - STATE(46), 1, + [0] = 6, + ACTIONS(84), 1, + sym_close, + ACTIONS(88), 1, + anon_sym_EQ, + STATE(20), 1, sym_operator, - ACTIONS(68), 7, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_else, - ACTIONS(66), 10, - ts_builtin_sym_end, - anon_sym_POUND, - sym_close, - sym_float, - sym_string, - sym_function, - sym_empty, + ACTIONS(86), 3, anon_sym_PLUS, anon_sym_DASH, - anon_sym_EQ, - [25] = 3, - STATE(46), 1, - sym_operator, - ACTIONS(72), 7, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_else, - ACTIONS(70), 10, - ts_builtin_sym_end, - anon_sym_POUND, - sym_close, - sym_float, - sym_string, - sym_function, - sym_empty, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - [50] = 2, - ACTIONS(76), 7, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_else, - ACTIONS(74), 10, - ts_builtin_sym_end, - anon_sym_POUND, - sym_close, - sym_float, - sym_string, - sym_function, - sym_empty, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - [72] = 2, - ACTIONS(80), 7, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_else, - ACTIONS(78), 10, - ts_builtin_sym_end, - anon_sym_POUND, - sym_close, - sym_float, - sym_string, - sym_function, - sym_empty, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - [94] = 2, - ACTIONS(84), 7, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_else, - ACTIONS(82), 10, - ts_builtin_sym_end, - anon_sym_POUND, - sym_close, - sym_float, - sym_string, - sym_function, - sym_empty, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - [116] = 2, - ACTIONS(88), 7, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_else, - ACTIONS(86), 10, - ts_builtin_sym_end, - anon_sym_POUND, - sym_close, - sym_float, - sym_string, - sym_function, - sym_empty, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - [138] = 2, - ACTIONS(80), 7, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_else, - ACTIONS(78), 10, - ts_builtin_sym_end, - anon_sym_POUND, - sym_close, - sym_float, - sym_string, - sym_function, - sym_empty, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - [160] = 3, - ACTIONS(94), 1, - anon_sym_else, - ACTIONS(92), 6, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_LPAREN, - anon_sym_if, - ACTIONS(90), 10, - ts_builtin_sym_end, - anon_sym_POUND, - sym_close, - sym_float, - sym_string, - sym_function, - sym_empty, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - [184] = 2, - ACTIONS(80), 7, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_else, - ACTIONS(78), 10, - ts_builtin_sym_end, - anon_sym_POUND, - sym_close, - sym_float, - sym_string, - sym_function, - sym_empty, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - [206] = 3, - STATE(39), 1, - sym_operator, - ACTIONS(68), 6, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_LPAREN, - anon_sym_if, - ACTIONS(66), 10, - ts_builtin_sym_end, - anon_sym_POUND, - sym_close, - sym_float, - sym_string, - sym_function, - sym_empty, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - [230] = 5, - ACTIONS(96), 1, - sym_close, - STATE(39), 1, - sym_operator, - ACTIONS(98), 3, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - ACTIONS(70), 6, + anon_sym_EQ_EQ, + ACTIONS(58), 6, ts_builtin_sym_end, anon_sym_POUND, sym_float, sym_string, sym_function, sym_empty, - ACTIONS(72), 6, + ACTIONS(60), 6, sym_identifier, sym_integer, anon_sym_true, anon_sym_false, anon_sym_LPAREN, anon_sym_if, - [258] = 3, - ACTIONS(100), 1, - anon_sym_else, - ACTIONS(92), 6, + [31] = 9, + ACTIONS(3), 1, sym_identifier, + ACTIONS(9), 1, sym_integer, - anon_sym_true, - anon_sym_false, + ACTIONS(13), 1, anon_sym_LPAREN, + ACTIONS(90), 1, anon_sym_if, - ACTIONS(90), 10, - ts_builtin_sym_end, - anon_sym_POUND, - sym_close, - sym_float, - sym_string, - sym_function, - sym_empty, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - [282] = 2, - ACTIONS(104), 7, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_else, - ACTIONS(102), 10, - ts_builtin_sym_end, - anon_sym_POUND, - sym_close, - sym_float, - sym_string, - sym_function, - sym_empty, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - [304] = 2, - ACTIONS(108), 7, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_else, - ACTIONS(106), 10, - ts_builtin_sym_end, - anon_sym_POUND, - sym_close, - sym_float, - sym_string, - sym_function, - sym_empty, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - [326] = 3, - STATE(39), 1, - sym_operator, - ACTIONS(72), 6, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_LPAREN, - anon_sym_if, - ACTIONS(70), 10, - ts_builtin_sym_end, - anon_sym_POUND, - sym_close, - sym_float, - sym_string, - sym_function, - sym_empty, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - [350] = 2, - ACTIONS(76), 2, - sym_integer, - anon_sym_LPAREN, - ACTIONS(74), 14, - sym_close, - sym_float, - sym_string, - sym_function, - sym_empty, - anon_sym_true, - anon_sym_false, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - anon_sym_then, - anon_sym_else, - [371] = 2, - ACTIONS(88), 6, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_LPAREN, - anon_sym_if, - ACTIONS(86), 10, - ts_builtin_sym_end, - anon_sym_POUND, - sym_close, - sym_float, - sym_string, - sym_function, - sym_empty, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - [392] = 2, - ACTIONS(76), 6, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_LPAREN, - anon_sym_if, - ACTIONS(74), 10, - ts_builtin_sym_end, - anon_sym_POUND, - sym_close, - sym_float, - sym_string, - sym_function, - sym_empty, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - [413] = 11, - ACTIONS(54), 1, - sym_identifier, - ACTIONS(58), 1, - sym_integer, - ACTIONS(62), 1, - anon_sym_LPAREN, - ACTIONS(64), 1, - anon_sym_if, - STATE(60), 1, + STATE(35), 1, sym_expression, - STATE(64), 1, - sym_control_flow, - STATE(66), 1, - sym_operation, - STATE(67), 1, - sym_value, - ACTIONS(60), 2, + ACTIONS(11), 2, anon_sym_true, anon_sym_false, - STATE(33), 2, + STATE(5), 2, sym_boolean, sym_list, - ACTIONS(56), 4, - sym_float, - sym_string, - sym_function, - sym_empty, - [452] = 2, - ACTIONS(104), 6, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_LPAREN, - anon_sym_if, - ACTIONS(102), 10, - ts_builtin_sym_end, - anon_sym_POUND, - sym_close, - sym_float, - sym_string, - sym_function, - sym_empty, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - [473] = 11, - ACTIONS(54), 1, - sym_identifier, - ACTIONS(58), 1, - sym_integer, - ACTIONS(62), 1, - anon_sym_LPAREN, - ACTIONS(110), 1, - anon_sym_if, - STATE(64), 1, - sym_control_flow, - STATE(66), 1, - sym_operation, - STATE(67), 1, + STATE(17), 3, sym_value, - STATE(73), 1, - sym_expression, - ACTIONS(60), 2, - anon_sym_true, - anon_sym_false, - STATE(33), 2, - sym_boolean, - sym_list, - ACTIONS(56), 4, - sym_float, - sym_string, - sym_function, - sym_empty, - [512] = 2, - ACTIONS(88), 2, - sym_integer, - anon_sym_LPAREN, - ACTIONS(86), 14, - sym_close, - sym_float, - sym_string, - sym_function, - sym_empty, - anon_sym_true, - anon_sym_false, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - anon_sym_then, - anon_sym_else, - [533] = 2, - ACTIONS(84), 2, - sym_integer, - anon_sym_LPAREN, - ACTIONS(82), 14, - sym_close, - sym_float, - sym_string, - sym_function, - sym_empty, - anon_sym_true, - anon_sym_false, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - anon_sym_then, - anon_sym_else, - [554] = 11, - ACTIONS(54), 1, - sym_identifier, - ACTIONS(58), 1, - sym_integer, - ACTIONS(62), 1, - anon_sym_LPAREN, - ACTIONS(110), 1, - anon_sym_if, - STATE(64), 1, - sym_control_flow, - STATE(66), 1, sym_operation, - STATE(67), 1, - sym_value, - STATE(72), 1, - sym_expression, - ACTIONS(60), 2, - anon_sym_true, - anon_sym_false, - STATE(33), 2, - sym_boolean, - sym_list, - ACTIONS(56), 4, - sym_float, - sym_string, - sym_function, - sym_empty, - [593] = 11, - ACTIONS(54), 1, - sym_identifier, - ACTIONS(58), 1, - sym_integer, - ACTIONS(62), 1, - anon_sym_LPAREN, - ACTIONS(110), 1, - anon_sym_if, - STATE(64), 1, sym_control_flow, - STATE(66), 1, - sym_operation, - STATE(67), 1, - sym_value, - STATE(71), 1, - sym_expression, - ACTIONS(60), 2, - anon_sym_true, - anon_sym_false, - STATE(33), 2, - sym_boolean, - sym_list, - ACTIONS(56), 4, + ACTIONS(7), 4, sym_float, sym_string, sym_function, sym_empty, - [632] = 2, - ACTIONS(80), 6, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_LPAREN, - anon_sym_if, - ACTIONS(78), 10, - ts_builtin_sym_end, - anon_sym_POUND, - sym_close, - sym_float, - sym_string, - sym_function, - sym_empty, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - [653] = 11, - ACTIONS(54), 1, - sym_identifier, - ACTIONS(58), 1, - sym_integer, - ACTIONS(62), 1, - anon_sym_LPAREN, - ACTIONS(110), 1, - anon_sym_if, - STATE(64), 1, - sym_control_flow, - STATE(66), 1, - sym_operation, - STATE(67), 1, - sym_value, - STATE(69), 1, - sym_expression, - ACTIONS(60), 2, - anon_sym_true, - anon_sym_false, - STATE(33), 2, - sym_boolean, - sym_list, - ACTIONS(56), 4, - sym_float, - sym_string, - sym_function, - sym_empty, - [692] = 11, - ACTIONS(5), 1, + [66] = 9, + ACTIONS(3), 1, sym_identifier, ACTIONS(9), 1, sym_integer, @@ -1674,18 +1048,90 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(15), 1, anon_sym_if, - STATE(21), 1, + STATE(7), 1, sym_expression, - STATE(37), 1, - sym_value, - STATE(43), 1, - sym_operation, - STATE(45), 1, - sym_control_flow, ACTIONS(11), 2, anon_sym_true, anon_sym_false, - STATE(28), 2, + STATE(5), 2, + sym_boolean, + sym_list, + STATE(17), 3, + sym_value, + sym_operation, + sym_control_flow, + ACTIONS(7), 4, + sym_float, + sym_string, + sym_function, + sym_empty, + [101] = 9, + ACTIONS(3), 1, + sym_identifier, + ACTIONS(9), 1, + sym_integer, + ACTIONS(13), 1, + anon_sym_LPAREN, + ACTIONS(90), 1, + anon_sym_if, + STATE(32), 1, + sym_expression, + ACTIONS(11), 2, + anon_sym_true, + anon_sym_false, + STATE(5), 2, + sym_boolean, + sym_list, + STATE(17), 3, + sym_value, + sym_operation, + sym_control_flow, + ACTIONS(7), 4, + sym_float, + sym_string, + sym_function, + sym_empty, + [136] = 9, + ACTIONS(3), 1, + sym_identifier, + ACTIONS(9), 1, + sym_integer, + ACTIONS(13), 1, + anon_sym_LPAREN, + ACTIONS(90), 1, + anon_sym_if, + STATE(33), 1, + sym_expression, + ACTIONS(11), 2, + anon_sym_true, + anon_sym_false, + STATE(5), 2, + sym_boolean, + sym_list, + STATE(17), 3, + sym_value, + sym_operation, + sym_control_flow, + ACTIONS(7), 4, + sym_float, + sym_string, + sym_function, + sym_empty, + [171] = 8, + ACTIONS(9), 1, + sym_integer, + ACTIONS(13), 1, + anon_sym_LPAREN, + ACTIONS(94), 1, + anon_sym_RPAREN, + STATE(24), 1, + aux_sym_list_repeat1, + STATE(29), 1, + sym_value, + ACTIONS(92), 2, + anon_sym_true, + anon_sym_false, + STATE(5), 2, sym_boolean, sym_list, ACTIONS(7), 4, @@ -1693,674 +1139,269 @@ static const uint16_t ts_small_parse_table[] = { sym_string, sym_function, sym_empty, - [731] = 2, - ACTIONS(84), 6, - sym_identifier, + [201] = 8, + ACTIONS(99), 1, sym_integer, - anon_sym_true, - anon_sym_false, + ACTIONS(105), 1, anon_sym_LPAREN, - anon_sym_if, - ACTIONS(82), 10, - ts_builtin_sym_end, - anon_sym_POUND, - sym_close, - sym_float, - sym_string, - sym_function, - sym_empty, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - [752] = 11, - ACTIONS(54), 1, - sym_identifier, - ACTIONS(58), 1, - sym_integer, - ACTIONS(62), 1, - anon_sym_LPAREN, - ACTIONS(110), 1, - anon_sym_if, - STATE(64), 1, - sym_control_flow, - STATE(66), 1, - sym_operation, - STATE(67), 1, - sym_value, - STATE(74), 1, - sym_expression, - ACTIONS(60), 2, - anon_sym_true, - anon_sym_false, - STATE(33), 2, - sym_boolean, - sym_list, - ACTIONS(56), 4, - sym_float, - sym_string, - sym_function, - sym_empty, - [791] = 2, - ACTIONS(108), 6, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_LPAREN, - anon_sym_if, - ACTIONS(106), 10, - ts_builtin_sym_end, - anon_sym_POUND, - sym_close, - sym_float, - sym_string, - sym_function, - sym_empty, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - [812] = 2, - ACTIONS(80), 6, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_LPAREN, - anon_sym_if, - ACTIONS(78), 10, - ts_builtin_sym_end, - anon_sym_POUND, - sym_close, - sym_float, - sym_string, - sym_function, - sym_empty, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - [833] = 2, - ACTIONS(114), 6, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_LPAREN, - anon_sym_if, - ACTIONS(112), 10, - ts_builtin_sym_end, - anon_sym_POUND, - sym_close, - sym_float, - sym_string, - sym_function, - sym_empty, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - [854] = 2, - ACTIONS(80), 6, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_LPAREN, - anon_sym_if, - ACTIONS(78), 10, - ts_builtin_sym_end, - anon_sym_POUND, - sym_close, - sym_float, - sym_string, - sym_function, - sym_empty, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - [875] = 11, - ACTIONS(42), 1, - sym_identifier, - ACTIONS(46), 1, - sym_integer, - ACTIONS(50), 1, - anon_sym_LPAREN, - ACTIONS(52), 1, - anon_sym_if, - STATE(12), 1, - sym_expression, - STATE(15), 1, - sym_operation, - STATE(18), 1, - sym_value, - STATE(20), 1, - sym_control_flow, - ACTIONS(48), 2, - anon_sym_true, - anon_sym_false, - STATE(17), 2, - sym_boolean, - sym_list, - ACTIONS(44), 4, - sym_float, - sym_string, - sym_function, - sym_empty, - [914] = 8, - ACTIONS(58), 1, - sym_integer, - ACTIONS(62), 1, - anon_sym_LPAREN, - ACTIONS(118), 1, + ACTIONS(108), 1, anon_sym_RPAREN, - STATE(49), 1, + STATE(24), 1, aux_sym_list_repeat1, - STATE(56), 1, + STATE(29), 1, sym_value, - ACTIONS(116), 2, + ACTIONS(102), 2, anon_sym_true, anon_sym_false, - STATE(33), 2, + STATE(5), 2, sym_boolean, sym_list, - ACTIONS(56), 4, + ACTIONS(96), 4, sym_float, sym_string, sym_function, sym_empty, - [944] = 8, - ACTIONS(58), 1, - sym_integer, - ACTIONS(62), 1, - anon_sym_LPAREN, - ACTIONS(120), 1, - anon_sym_RPAREN, - STATE(49), 1, - aux_sym_list_repeat1, - STATE(56), 1, - sym_value, - ACTIONS(116), 2, - anon_sym_true, - anon_sym_false, - STATE(33), 2, - sym_boolean, - sym_list, - ACTIONS(56), 4, - sym_float, - sym_string, - sym_function, - sym_empty, - [974] = 8, - ACTIONS(125), 1, - sym_integer, - ACTIONS(131), 1, - anon_sym_LPAREN, - ACTIONS(134), 1, - anon_sym_RPAREN, - STATE(49), 1, - aux_sym_list_repeat1, - STATE(56), 1, - sym_value, - ACTIONS(128), 2, - anon_sym_true, - anon_sym_false, - STATE(33), 2, - sym_boolean, - sym_list, - ACTIONS(122), 4, - sym_float, - sym_string, - sym_function, - sym_empty, - [1004] = 8, - ACTIONS(58), 1, - sym_integer, - ACTIONS(62), 1, - anon_sym_LPAREN, - ACTIONS(136), 1, - anon_sym_RPAREN, - STATE(49), 1, - aux_sym_list_repeat1, - STATE(56), 1, - sym_value, - ACTIONS(116), 2, - anon_sym_true, - anon_sym_false, - STATE(33), 2, - sym_boolean, - sym_list, - ACTIONS(56), 4, - sym_float, - sym_string, - sym_function, - sym_empty, - [1034] = 2, - ACTIONS(138), 6, + [231] = 2, + ACTIONS(110), 6, ts_builtin_sym_end, anon_sym_POUND, sym_float, sym_string, sym_function, sym_empty, - ACTIONS(140), 6, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_LPAREN, - anon_sym_if, - [1051] = 7, - ACTIONS(58), 1, - sym_integer, - ACTIONS(62), 1, - anon_sym_LPAREN, - STATE(47), 1, - aux_sym_list_repeat1, - STATE(56), 1, - sym_value, - ACTIONS(116), 2, - anon_sym_true, - anon_sym_false, - STATE(33), 2, - sym_boolean, - sym_list, - ACTIONS(56), 4, - sym_float, - sym_string, - sym_function, - sym_empty, - [1078] = 2, - ACTIONS(142), 6, - ts_builtin_sym_end, - anon_sym_POUND, - sym_float, - sym_string, - sym_function, - sym_empty, - ACTIONS(144), 6, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_LPAREN, - anon_sym_if, - [1095] = 7, - ACTIONS(58), 1, - sym_integer, - ACTIONS(62), 1, - anon_sym_LPAREN, - STATE(50), 1, - aux_sym_list_repeat1, - STATE(56), 1, - sym_value, - ACTIONS(116), 2, - anon_sym_true, - anon_sym_false, - STATE(33), 2, - sym_boolean, - sym_list, - ACTIONS(56), 4, - sym_float, - sym_string, - sym_function, - sym_empty, - [1122] = 7, - ACTIONS(58), 1, - sym_integer, - ACTIONS(62), 1, - anon_sym_LPAREN, - STATE(48), 1, - aux_sym_list_repeat1, - STATE(56), 1, - sym_value, - ACTIONS(116), 2, - anon_sym_true, - anon_sym_false, - STATE(33), 2, - sym_boolean, - sym_list, - ACTIONS(56), 4, - sym_float, - sym_string, - sym_function, - sym_empty, - [1149] = 3, - ACTIONS(150), 1, - anon_sym_COMMA, - ACTIONS(148), 2, - sym_integer, - anon_sym_LPAREN, - ACTIONS(146), 7, - sym_float, - sym_string, - sym_function, - sym_empty, - anon_sym_true, - anon_sym_false, - anon_sym_RPAREN, - [1166] = 2, - ACTIONS(154), 4, - sym_float, - sym_string, - sym_function, - sym_empty, - ACTIONS(152), 6, - sym_identifier, - sym_integer, - anon_sym_true, - anon_sym_false, - anon_sym_LPAREN, - anon_sym_if, - [1181] = 2, - ACTIONS(156), 2, - sym_integer, - anon_sym_LPAREN, - ACTIONS(134), 7, - sym_float, - sym_string, - sym_function, - sym_empty, - anon_sym_true, - anon_sym_false, - anon_sym_RPAREN, - [1195] = 3, - ACTIONS(158), 1, - sym_close, - STATE(30), 1, - sym_operator, - ACTIONS(70), 5, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - anon_sym_then, - anon_sym_else, - [1209] = 2, - STATE(30), 1, - sym_operator, - ACTIONS(66), 6, - sym_close, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - anon_sym_then, - anon_sym_else, - [1221] = 2, - STATE(30), 1, - sym_operator, - ACTIONS(70), 6, - sym_close, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - anon_sym_then, - anon_sym_else, - [1233] = 1, - ACTIONS(102), 6, - sym_close, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - anon_sym_then, - anon_sym_else, - [1242] = 1, ACTIONS(112), 6, - sym_close, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - anon_sym_then, - anon_sym_else, - [1251] = 1, - ACTIONS(78), 6, - sym_close, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - anon_sym_then, - anon_sym_else, - [1260] = 2, - ACTIONS(160), 1, - anon_sym_else, - ACTIONS(90), 5, - sym_close, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - anon_sym_then, - [1271] = 1, - ACTIONS(78), 6, - sym_close, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - anon_sym_then, - anon_sym_else, - [1280] = 1, - ACTIONS(78), 6, - sym_close, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - anon_sym_then, - anon_sym_else, - [1289] = 1, - ACTIONS(106), 6, - sym_close, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - anon_sym_then, - anon_sym_else, - [1298] = 2, - STATE(38), 1, - sym_operator, - ACTIONS(66), 4, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - anon_sym_then, - [1308] = 2, - ACTIONS(162), 1, - anon_sym_else, - ACTIONS(90), 4, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - anon_sym_then, - [1318] = 3, - ACTIONS(164), 1, - anon_sym_then, - STATE(38), 1, - sym_operator, - ACTIONS(98), 3, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - [1330] = 3, - ACTIONS(166), 1, - anon_sym_then, - STATE(38), 1, - sym_operator, - ACTIONS(98), 3, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - [1342] = 3, - ACTIONS(168), 1, - anon_sym_then, - STATE(38), 1, - sym_operator, - ACTIONS(98), 3, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - [1354] = 3, - ACTIONS(170), 1, - anon_sym_then, - STATE(38), 1, - sym_operator, - ACTIONS(98), 3, - anon_sym_PLUS, - anon_sym_DASH, - anon_sym_EQ, - [1366] = 1, - ACTIONS(172), 1, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_LPAREN, + anon_sym_if, + [248] = 2, + ACTIONS(114), 6, ts_builtin_sym_end, - [1370] = 1, - ACTIONS(174), 1, + anon_sym_POUND, + sym_float, + sym_string, + sym_function, + sym_empty, + ACTIONS(116), 6, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_LPAREN, + anon_sym_if, + [265] = 7, + ACTIONS(9), 1, + sym_integer, + ACTIONS(13), 1, + anon_sym_LPAREN, + STATE(23), 1, + aux_sym_list_repeat1, + STATE(29), 1, + sym_value, + ACTIONS(92), 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, + [292] = 2, + ACTIONS(120), 4, + sym_float, + sym_string, + sym_function, + sym_empty, + ACTIONS(118), 6, + sym_identifier, + sym_integer, + anon_sym_true, + anon_sym_false, + anon_sym_LPAREN, + anon_sym_if, + [307] = 3, + ACTIONS(126), 1, + anon_sym_COMMA, + ACTIONS(124), 2, + sym_integer, + anon_sym_LPAREN, + ACTIONS(122), 7, + sym_float, + sym_string, + sym_function, + sym_empty, + anon_sym_true, + anon_sym_false, + anon_sym_RPAREN, + [324] = 2, + ACTIONS(128), 2, + sym_integer, + anon_sym_LPAREN, + ACTIONS(108), 7, + sym_float, + sym_string, + sym_function, + sym_empty, + anon_sym_true, + anon_sym_false, + anon_sym_RPAREN, + [338] = 4, + ACTIONS(60), 1, + anon_sym_EQ, + ACTIONS(84), 1, + sym_close, + STATE(20), 1, + sym_operator, + ACTIONS(58), 5, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_EQ_EQ, + anon_sym_then, + anon_sym_else, + [355] = 4, + ACTIONS(88), 1, + anon_sym_EQ, + ACTIONS(130), 1, + anon_sym_then, + STATE(19), 1, + sym_operator, + ACTIONS(86), 3, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_EQ_EQ, + [370] = 4, + ACTIONS(88), 1, + anon_sym_EQ, + ACTIONS(132), 1, + anon_sym_then, + STATE(19), 1, + sym_operator, + ACTIONS(86), 3, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_EQ_EQ, + [385] = 3, + ACTIONS(76), 1, + anon_sym_EQ, + ACTIONS(134), 1, + anon_sym_else, + ACTIONS(74), 4, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_EQ_EQ, + anon_sym_then, + [398] = 3, + ACTIONS(56), 1, + anon_sym_EQ, + STATE(19), 1, + sym_operator, + ACTIONS(54), 4, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_EQ_EQ, + anon_sym_then, + [411] = 1, + ACTIONS(136), 1, aux_sym_comment_token1, + [415] = 1, + ACTIONS(138), 1, + ts_builtin_sym_end, }; static const uint32_t ts_small_parse_table_map[] = { - [SMALL_STATE(12)] = 0, - [SMALL_STATE(13)] = 25, - [SMALL_STATE(14)] = 50, - [SMALL_STATE(15)] = 72, - [SMALL_STATE(16)] = 94, - [SMALL_STATE(17)] = 116, - [SMALL_STATE(18)] = 138, - [SMALL_STATE(19)] = 160, - [SMALL_STATE(20)] = 184, - [SMALL_STATE(21)] = 206, - [SMALL_STATE(22)] = 230, - [SMALL_STATE(23)] = 258, - [SMALL_STATE(24)] = 282, - [SMALL_STATE(25)] = 304, - [SMALL_STATE(26)] = 326, - [SMALL_STATE(27)] = 350, - [SMALL_STATE(28)] = 371, - [SMALL_STATE(29)] = 392, - [SMALL_STATE(30)] = 413, - [SMALL_STATE(31)] = 452, - [SMALL_STATE(32)] = 473, - [SMALL_STATE(33)] = 512, - [SMALL_STATE(34)] = 533, - [SMALL_STATE(35)] = 554, - [SMALL_STATE(36)] = 593, - [SMALL_STATE(37)] = 632, - [SMALL_STATE(38)] = 653, - [SMALL_STATE(39)] = 692, - [SMALL_STATE(40)] = 731, - [SMALL_STATE(41)] = 752, - [SMALL_STATE(42)] = 791, - [SMALL_STATE(43)] = 812, - [SMALL_STATE(44)] = 833, - [SMALL_STATE(45)] = 854, - [SMALL_STATE(46)] = 875, - [SMALL_STATE(47)] = 914, - [SMALL_STATE(48)] = 944, - [SMALL_STATE(49)] = 974, - [SMALL_STATE(50)] = 1004, - [SMALL_STATE(51)] = 1034, - [SMALL_STATE(52)] = 1051, - [SMALL_STATE(53)] = 1078, - [SMALL_STATE(54)] = 1095, - [SMALL_STATE(55)] = 1122, - [SMALL_STATE(56)] = 1149, - [SMALL_STATE(57)] = 1166, - [SMALL_STATE(58)] = 1181, - [SMALL_STATE(59)] = 1195, - [SMALL_STATE(60)] = 1209, - [SMALL_STATE(61)] = 1221, - [SMALL_STATE(62)] = 1233, - [SMALL_STATE(63)] = 1242, - [SMALL_STATE(64)] = 1251, - [SMALL_STATE(65)] = 1260, - [SMALL_STATE(66)] = 1271, - [SMALL_STATE(67)] = 1280, - [SMALL_STATE(68)] = 1289, - [SMALL_STATE(69)] = 1298, - [SMALL_STATE(70)] = 1308, - [SMALL_STATE(71)] = 1318, - [SMALL_STATE(72)] = 1330, - [SMALL_STATE(73)] = 1342, - [SMALL_STATE(74)] = 1354, - [SMALL_STATE(75)] = 1366, - [SMALL_STATE(76)] = 1370, + [SMALL_STATE(18)] = 0, + [SMALL_STATE(19)] = 31, + [SMALL_STATE(20)] = 66, + [SMALL_STATE(21)] = 101, + [SMALL_STATE(22)] = 136, + [SMALL_STATE(23)] = 171, + [SMALL_STATE(24)] = 201, + [SMALL_STATE(25)] = 231, + [SMALL_STATE(26)] = 248, + [SMALL_STATE(27)] = 265, + [SMALL_STATE(28)] = 292, + [SMALL_STATE(29)] = 307, + [SMALL_STATE(30)] = 324, + [SMALL_STATE(31)] = 338, + [SMALL_STATE(32)] = 355, + [SMALL_STATE(33)] = 370, + [SMALL_STATE(34)] = 385, + [SMALL_STATE(35)] = 398, + [SMALL_STATE(36)] = 411, + [SMALL_STATE(37)] = 415, }; static const TSParseActionEntry ts_parse_actions[] = { [0] = {.entry = {.count = 0, .reusable = false}}, [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(), - [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), - [5] = {.entry = {.count = 1, .reusable = false}}, SHIFT(37), - [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(28), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(40), - [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), - [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(41), - [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 = true}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(76), - [24] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(37), - [27] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(28), - [30] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(28), - [33] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(40), - [36] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(55), - [39] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(41), - [42] = {.entry = {.count = 1, .reusable = false}}, SHIFT(18), - [44] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [46] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17), - [48] = {.entry = {.count = 1, .reusable = false}}, SHIFT(16), - [50] = {.entry = {.count = 1, .reusable = false}}, SHIFT(52), - [52] = {.entry = {.count = 1, .reusable = false}}, SHIFT(32), - [54] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67), - [56] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [58] = {.entry = {.count = 1, .reusable = false}}, SHIFT(33), - [60] = {.entry = {.count = 1, .reusable = false}}, SHIFT(34), - [62] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54), - [64] = {.entry = {.count = 1, .reusable = false}}, SHIFT(35), - [66] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_operation, 3), - [68] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_operation, 3), - [70] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_open_statement, 1), - [72] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_open_statement, 1), - [74] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3), - [76] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 3), - [78] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1), - [80] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1), - [82] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean, 1), - [84] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_boolean, 1), - [86] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_value, 1), - [88] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_value, 1), - [90] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_control_flow, 4), - [92] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_control_flow, 4), - [94] = {.entry = {.count = 1, .reusable = false}}, SHIFT(10), - [96] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [100] = {.entry = {.count = 1, .reusable = false}}, SHIFT(9), - [102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_control_flow, 6), - [104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_control_flow, 6), - [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_statement, 1), - [108] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_statement, 1), - [110] = {.entry = {.count = 1, .reusable = false}}, SHIFT(36), - [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_closed_statement, 2), - [114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_closed_statement, 2), - [116] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [120] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [122] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(33), - [125] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(33), - [128] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(34), - [131] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(54), - [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), - [136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 2), - [140] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comment, 2), - [142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_item, 1), - [144] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_item, 1), - [146] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 1), - [148] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 1), - [150] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [152] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_operator, 1), - [154] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_operator, 1), - [156] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), - [158] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), - [160] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [162] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), - [164] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [168] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [172] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [3] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17), + [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [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(27), + [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(21), + [17] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_root_repeat1, 2), + [19] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(17), + [22] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(36), + [25] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(5), + [28] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(5), + [31] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(6), + [34] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(27), + [37] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_root_repeat1, 2), SHIFT_REPEAT(21), + [40] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_root, 1), + [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_operation, 3), + [56] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_operation, 3), + [58] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_open_statement, 1), + [60] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_open_statement, 1), + [62] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_statement, 1), + [64] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_statement, 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_closed_statement, 2), + [72] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_closed_statement, 2), + [74] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_control_flow, 4), + [76] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_control_flow, 4), + [78] = {.entry = {.count = 1, .reusable = false}}, SHIFT(9), + [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1), + [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1), + [84] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [86] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [88] = {.entry = {.count = 1, .reusable = false}}, SHIFT(28), + [90] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22), + [92] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [94] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [96] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(5), + [99] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(5), + [102] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(6), + [105] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(27), + [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), + [110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_item, 1), + [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_item, 1), + [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 2), + [116] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comment, 2), + [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_operator, 1), + [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_operator, 1), + [122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 1), + [124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 1), + [126] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [128] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_list_repeat1, 2), + [130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [132] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [134] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), + [136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [138] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), }; #ifdef __cplusplus @@ -2393,6 +1434,8 @@ extern const TSLanguage *tree_sitter_dust(void) { .alias_sequences = &ts_alias_sequences[0][0], .lex_modes = ts_lex_modes, .lex_fn = ts_lex, + .keyword_lex_fn = ts_lex_keywords, + .keyword_capture_token = sym_identifier, .primary_state_ids = ts_primary_state_ids, }; return &language;