From 73b72b410fbd37448861b6a186fca329e3beda3c Mon Sep 17 00:00:00 2001 From: Quentin Boyer Date: Wed, 22 Apr 2026 22:19:21 +0200 Subject: [PATCH] Update grammar --- grammar.js | 9 + src/grammar.json | 52 ++ src/node-types.json | 18 +- src/parser.c | 1487 +++++++++++++++++++++++++------------------ 4 files changed, 941 insertions(+), 625 deletions(-) diff --git a/grammar.js b/grammar.js index 366b643..36877ff 100644 --- a/grammar.js +++ b/grammar.js @@ -31,6 +31,15 @@ module.exports = grammar({ ), expression: $ => choice( + $._field_expression, + seq($._field_expression, '+', $.expression), + ), + + _field_expression: $ => choice( + seq($._base_expression, '.', $.identifier), + $._base_expression, + ), + _base_expression: $ => choice( $.item_path, $.string_literal, $.array, diff --git a/src/grammar.json b/src/grammar.json index e1eea12..1cfc7a9 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -86,6 +86,58 @@ ] }, "expression": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_field_expression" + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_field_expression" + }, + { + "type": "STRING", + "value": "+" + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + } + ] + }, + "_field_expression": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_base_expression" + }, + { + "type": "STRING", + "value": "." + }, + { + "type": "SYMBOL", + "name": "identifier" + } + ] + }, + { + "type": "SYMBOL", + "name": "_base_expression" + } + ] + }, + "_base_expression": { "type": "CHOICE", "members": [ { diff --git a/src/node-types.json b/src/node-types.json index 05901bf..ea84a3b 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -71,13 +71,21 @@ "named": true, "fields": {}, "children": { - "multiple": false, + "multiple": true, "required": true, "types": [ { "type": "array", "named": true }, + { + "type": "expression", + "named": true + }, + { + "type": "identifier", + "named": true + }, { "type": "item_path", "named": true @@ -200,10 +208,18 @@ "type": "'", "named": false }, + { + "type": "+", + "named": false + }, { "type": ",", "named": false }, + { + "type": ".", + "named": false + }, { "type": ":", "named": false diff --git a/src/parser.c b/src/parser.c index a2fe81e..08e6ced 100644 --- a/src/parser.c +++ b/src/parser.c @@ -7,11 +7,11 @@ #endif #define LANGUAGE_VERSION 15 -#define STATE_COUNT 54 +#define STATE_COUNT 61 #define LARGE_STATE_COUNT 4 -#define SYMBOL_COUNT 36 +#define SYMBOL_COUNT 40 #define ALIAS_COUNT 0 -#define TOKEN_COUNT 17 +#define TOKEN_COUNT 19 #define EXTERNAL_TOKEN_COUNT 0 #define FIELD_COUNT 2 #define MAX_ALIAS_SEQUENCE_LENGTH 5 @@ -23,38 +23,42 @@ enum ts_symbol_identifiers { anon_sym_mod = 1, anon_sym_SEMI = 2, anon_sym_EQ = 3, - anon_sym_COLON_COLON = 4, - anon_sym_LBRACK = 5, - anon_sym_COMMA = 6, - anon_sym_RBRACK = 7, - anon_sym_COLON = 8, - anon_sym_LBRACE = 9, - anon_sym_RBRACE = 10, - anon_sym_SQUOTE = 11, - aux_sym_string_literal_token1 = 12, - sym_escape_sequence = 13, - sym_identifier = 14, - sym_directive = 15, - sym_comment = 16, - sym_source_file = 17, - sym__statement = 18, - sym__directive_statement = 19, - sym_mod_statement = 20, - sym_assign_statement = 21, - sym_expression = 22, - sym__item_path = 23, - sym_item_path = 24, - sym_array = 25, - sym_target = 26, - sym_argument = 27, - sym__arguments = 28, - sym_string_literal = 29, - aux_sym_source_file_repeat1 = 30, - aux_sym__directive_statement_repeat1 = 31, - aux_sym__item_path_repeat1 = 32, - aux_sym_array_repeat1 = 33, - aux_sym__arguments_repeat1 = 34, - aux_sym_string_literal_repeat1 = 35, + anon_sym_PLUS = 4, + anon_sym_DOT = 5, + anon_sym_COLON_COLON = 6, + anon_sym_LBRACK = 7, + anon_sym_COMMA = 8, + anon_sym_RBRACK = 9, + anon_sym_COLON = 10, + anon_sym_LBRACE = 11, + anon_sym_RBRACE = 12, + anon_sym_SQUOTE = 13, + aux_sym_string_literal_token1 = 14, + sym_escape_sequence = 15, + sym_identifier = 16, + sym_directive = 17, + sym_comment = 18, + sym_source_file = 19, + sym__statement = 20, + sym__directive_statement = 21, + sym_mod_statement = 22, + sym_assign_statement = 23, + sym_expression = 24, + sym__field_expression = 25, + sym__base_expression = 26, + sym__item_path = 27, + sym_item_path = 28, + sym_array = 29, + sym_target = 30, + sym_argument = 31, + sym__arguments = 32, + sym_string_literal = 33, + aux_sym_source_file_repeat1 = 34, + aux_sym__directive_statement_repeat1 = 35, + aux_sym__item_path_repeat1 = 36, + aux_sym_array_repeat1 = 37, + aux_sym__arguments_repeat1 = 38, + aux_sym_string_literal_repeat1 = 39, }; static const char * const ts_symbol_names[] = { @@ -62,6 +66,8 @@ static const char * const ts_symbol_names[] = { [anon_sym_mod] = "mod", [anon_sym_SEMI] = ";", [anon_sym_EQ] = "=", + [anon_sym_PLUS] = "+", + [anon_sym_DOT] = ".", [anon_sym_COLON_COLON] = "::", [anon_sym_LBRACK] = "[", [anon_sym_COMMA] = ",", @@ -81,6 +87,8 @@ static const char * const ts_symbol_names[] = { [sym_mod_statement] = "mod_statement", [sym_assign_statement] = "assign_statement", [sym_expression] = "expression", + [sym__field_expression] = "_field_expression", + [sym__base_expression] = "_base_expression", [sym__item_path] = "_item_path", [sym_item_path] = "item_path", [sym_array] = "array", @@ -101,6 +109,8 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_mod] = anon_sym_mod, [anon_sym_SEMI] = anon_sym_SEMI, [anon_sym_EQ] = anon_sym_EQ, + [anon_sym_PLUS] = anon_sym_PLUS, + [anon_sym_DOT] = anon_sym_DOT, [anon_sym_COLON_COLON] = anon_sym_COLON_COLON, [anon_sym_LBRACK] = anon_sym_LBRACK, [anon_sym_COMMA] = anon_sym_COMMA, @@ -120,6 +130,8 @@ static const TSSymbol ts_symbol_map[] = { [sym_mod_statement] = sym_mod_statement, [sym_assign_statement] = sym_assign_statement, [sym_expression] = sym_expression, + [sym__field_expression] = sym__field_expression, + [sym__base_expression] = sym__base_expression, [sym__item_path] = sym__item_path, [sym_item_path] = sym_item_path, [sym_array] = sym_array, @@ -152,6 +164,14 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_PLUS] = { + .visible = true, + .named = false, + }, + [anon_sym_DOT] = { + .visible = true, + .named = false, + }, [anon_sym_COLON_COLON] = { .visible = true, .named = false, @@ -228,6 +248,14 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym__field_expression] = { + .visible = false, + .named = true, + }, + [sym__base_expression] = { + .visible = false, + .named = true, + }, [sym__item_path] = { .visible = false, .named = true, @@ -326,7 +354,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [8] = 8, [9] = 9, [10] = 10, - [11] = 11, + [11] = 9, [12] = 12, [13] = 13, [14] = 14, @@ -354,7 +382,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [36] = 36, [37] = 37, [38] = 38, - [39] = 39, + [39] = 30, [40] = 40, [41] = 41, [42] = 42, @@ -369,6 +397,13 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [51] = 51, [52] = 52, [53] = 53, + [54] = 54, + [55] = 55, + [56] = 56, + [57] = 57, + [58] = 58, + [59] = 59, + [60] = 60, }; static bool ts_lex(TSLexer *lexer, TSStateId state) { @@ -378,81 +413,85 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { case 0: if (eof) ADVANCE(8); ADVANCE_MAP( - '#', 27, - '\'', 19, - ',', 14, - ':', 16, + '#', 29, + '\'', 21, + '+', 12, + ',', 16, + '.', 13, + ':', 18, ';', 10, '=', 11, '@', 5, - '[', 13, + '[', 15, '\\', 6, - ']', 15, - 'm', 24, - '{', 17, - '}', 18, + ']', 17, + 'm', 26, + '{', 19, + '}', 20, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(0); if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(25); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(27); END_STATE(); case 1: if (lookahead == '\n') SKIP(3); - if (lookahead == '#') ADVANCE(21); - if (lookahead == '\'') ADVANCE(19); + if (lookahead == '#') ADVANCE(23); + if (lookahead == '\'') ADVANCE(21); if (lookahead == '\\') ADVANCE(6); if (('\t' <= lookahead && lookahead <= '\r') || - lookahead == ' ') ADVANCE(20); - if (lookahead != 0) ADVANCE(21); + lookahead == ' ') ADVANCE(22); + if (lookahead != 0) ADVANCE(23); END_STATE(); case 2: - if (lookahead == '#') ADVANCE(27); - if (lookahead == '\'') ADVANCE(19); + if (lookahead == '#') ADVANCE(29); + if (lookahead == '\'') ADVANCE(21); if (lookahead == ':') ADVANCE(4); if (lookahead == '@') ADVANCE(5); - if (lookahead == '[') ADVANCE(13); - if (lookahead == ']') ADVANCE(15); - if (lookahead == '}') ADVANCE(18); + if (lookahead == '[') ADVANCE(15); + if (lookahead == ']') ADVANCE(17); + if (lookahead == '}') ADVANCE(20); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(2); if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(25); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(27); END_STATE(); case 3: - if (lookahead == '#') ADVANCE(27); - if (lookahead == '\'') ADVANCE(19); + if (lookahead == '#') ADVANCE(29); + if (lookahead == '\'') ADVANCE(21); if (lookahead == '\\') ADVANCE(6); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(3); END_STATE(); case 4: - if (lookahead == ':') ADVANCE(12); + if (lookahead == ':') ADVANCE(14); END_STATE(); case 5: - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(26); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(28); END_STATE(); case 6: if (lookahead != 0 && - lookahead != '\n') ADVANCE(22); + lookahead != '\n') ADVANCE(24); END_STATE(); case 7: if (eof) ADVANCE(8); ADVANCE_MAP( - '#', 27, - '\'', 19, - ',', 14, + '#', 29, + '\'', 21, + '+', 12, + ',', 16, + '.', 13, ':', 4, '@', 5, - '[', 13, - ']', 15, - 'm', 24, - '}', 18, + '[', 15, + ']', 17, + 'm', 26, + '}', 20, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(7); if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(25); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(27); END_STATE(); case 8: ACCEPT_TOKEN(ts_builtin_sym_end); @@ -463,7 +502,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(25); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(27); END_STATE(); case 10: ACCEPT_TOKEN(anon_sym_SEMI); @@ -472,84 +511,90 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { ACCEPT_TOKEN(anon_sym_EQ); END_STATE(); case 12: - ACCEPT_TOKEN(anon_sym_COLON_COLON); + ACCEPT_TOKEN(anon_sym_PLUS); END_STATE(); case 13: - ACCEPT_TOKEN(anon_sym_LBRACK); + ACCEPT_TOKEN(anon_sym_DOT); END_STATE(); case 14: - ACCEPT_TOKEN(anon_sym_COMMA); + ACCEPT_TOKEN(anon_sym_COLON_COLON); END_STATE(); case 15: - ACCEPT_TOKEN(anon_sym_RBRACK); + ACCEPT_TOKEN(anon_sym_LBRACK); END_STATE(); case 16: - ACCEPT_TOKEN(anon_sym_COLON); + ACCEPT_TOKEN(anon_sym_COMMA); END_STATE(); case 17: - ACCEPT_TOKEN(anon_sym_LBRACE); + ACCEPT_TOKEN(anon_sym_RBRACK); END_STATE(); case 18: - ACCEPT_TOKEN(anon_sym_RBRACE); + ACCEPT_TOKEN(anon_sym_COLON); END_STATE(); case 19: - ACCEPT_TOKEN(anon_sym_SQUOTE); + ACCEPT_TOKEN(anon_sym_LBRACE); END_STATE(); case 20: + ACCEPT_TOKEN(anon_sym_RBRACE); + END_STATE(); + case 21: + ACCEPT_TOKEN(anon_sym_SQUOTE); + END_STATE(); + case 22: ACCEPT_TOKEN(aux_sym_string_literal_token1); - if (lookahead == '#') ADVANCE(21); + if (lookahead == '#') ADVANCE(23); if (lookahead == '\t' || (0x0b <= lookahead && lookahead <= '\r') || - lookahead == ' ') ADVANCE(20); + lookahead == ' ') ADVANCE(22); if (lookahead != 0 && (lookahead < '\t' || '\r' < lookahead) && lookahead != '\'' && - lookahead != '\\') ADVANCE(21); + lookahead != '\\') ADVANCE(23); END_STATE(); - case 21: + case 23: ACCEPT_TOKEN(aux_sym_string_literal_token1); if (lookahead != 0 && lookahead != '\n' && lookahead != '\'' && - lookahead != '\\') ADVANCE(21); + lookahead != '\\') ADVANCE(23); END_STATE(); - case 22: + case 24: ACCEPT_TOKEN(sym_escape_sequence); END_STATE(); - case 23: + case 25: ACCEPT_TOKEN(sym_identifier); if (lookahead == 'd') ADVANCE(9); if (lookahead == '-' || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(25); - END_STATE(); - case 24: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'o') ADVANCE(23); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(25); - END_STATE(); - case 25: - ACCEPT_TOKEN(sym_identifier); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(25); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(27); END_STATE(); case 26: - ACCEPT_TOKEN(sym_directive); - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(26); + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'o') ADVANCE(25); + if (lookahead == '-' || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(27); END_STATE(); case 27: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == '-' || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(27); + END_STATE(); + case 28: + ACCEPT_TOKEN(sym_directive); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(28); + END_STATE(); + case 29: ACCEPT_TOKEN(sym_comment); if (lookahead != 0 && - lookahead != '\n') ADVANCE(27); + lookahead != '\n') ADVANCE(29); END_STATE(); default: return false; @@ -569,8 +614,8 @@ static const TSLexerMode ts_lex_modes[STATE_COUNT] = { [9] = {.lex_state = 2}, [10] = {.lex_state = 2}, [11] = {.lex_state = 2}, - [12] = {.lex_state = 7}, - [13] = {.lex_state = 7}, + [12] = {.lex_state = 2}, + [13] = {.lex_state = 2}, [14] = {.lex_state = 7}, [15] = {.lex_state = 7}, [16] = {.lex_state = 7}, @@ -586,31 +631,38 @@ static const TSLexerMode ts_lex_modes[STATE_COUNT] = { [26] = {.lex_state = 7}, [27] = {.lex_state = 7}, [28] = {.lex_state = 7}, - [29] = {.lex_state = 2}, + [29] = {.lex_state = 7}, [30] = {.lex_state = 7}, - [31] = {.lex_state = 1}, - [32] = {.lex_state = 1}, - [33] = {.lex_state = 1}, - [34] = {.lex_state = 0}, - [35] = {.lex_state = 0}, - [36] = {.lex_state = 2}, - [37] = {.lex_state = 0}, - [38] = {.lex_state = 0}, + [31] = {.lex_state = 7}, + [32] = {.lex_state = 7}, + [33] = {.lex_state = 7}, + [34] = {.lex_state = 7}, + [35] = {.lex_state = 2}, + [36] = {.lex_state = 1}, + [37] = {.lex_state = 1}, + [38] = {.lex_state = 1}, [39] = {.lex_state = 0}, - [40] = {.lex_state = 2}, - [41] = {.lex_state = 2}, + [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}, + [44] = {.lex_state = 2}, + [45] = {.lex_state = 2}, + [46] = {.lex_state = 2}, [47] = {.lex_state = 0}, - [48] = {.lex_state = 2}, + [48] = {.lex_state = 0}, [49] = {.lex_state = 0}, [50] = {.lex_state = 0}, - [51] = {.lex_state = 2}, - [52] = {.lex_state = 0}, - [53] = {.lex_state = 2}, + [51] = {.lex_state = 0}, + [52] = {.lex_state = 2}, + [53] = {.lex_state = 0}, + [54] = {.lex_state = 0}, + [55] = {.lex_state = 2}, + [56] = {.lex_state = 0}, + [57] = {.lex_state = 2}, + [58] = {.lex_state = 0}, + [59] = {.lex_state = 2}, + [60] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -619,6 +671,8 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_mod] = ACTIONS(1), [anon_sym_SEMI] = ACTIONS(1), [anon_sym_EQ] = ACTIONS(1), + [anon_sym_PLUS] = ACTIONS(1), + [anon_sym_DOT] = ACTIONS(1), [anon_sym_LBRACK] = ACTIONS(1), [anon_sym_COMMA] = ACTIONS(1), [anon_sym_RBRACK] = ACTIONS(1), @@ -632,20 +686,22 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_comment] = ACTIONS(3), }, [STATE(1)] = { - [sym_source_file] = STATE(52), - [sym__statement] = STATE(3), - [sym__directive_statement] = STATE(3), - [sym_mod_statement] = STATE(3), - [sym_assign_statement] = STATE(3), - [sym_expression] = STATE(3), - [sym__item_path] = STATE(16), - [sym_item_path] = STATE(21), - [sym_array] = STATE(21), - [sym_target] = STATE(21), - [sym_string_literal] = STATE(21), - [aux_sym_source_file_repeat1] = STATE(3), + [sym_source_file] = STATE(60), + [sym__statement] = STATE(2), + [sym__directive_statement] = STATE(2), + [sym_mod_statement] = STATE(2), + [sym_assign_statement] = STATE(2), + [sym_expression] = STATE(2), + [sym__field_expression] = STATE(30), + [sym__base_expression] = STATE(14), + [sym__item_path] = STATE(27), + [sym_item_path] = STATE(14), + [sym_array] = STATE(14), + [sym_target] = STATE(14), + [sym_string_literal] = STATE(14), + [aux_sym_source_file_repeat1] = STATE(2), [aux_sym__directive_statement_repeat1] = STATE(4), - [aux_sym__item_path_repeat1] = STATE(16), + [aux_sym__item_path_repeat1] = STATE(27), [ts_builtin_sym_end] = ACTIONS(5), [anon_sym_mod] = ACTIONS(7), [anon_sym_COLON_COLON] = ACTIONS(9), @@ -656,43 +712,22 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_comment] = ACTIONS(3), }, [STATE(2)] = { - [sym__statement] = STATE(2), - [sym__directive_statement] = STATE(2), - [sym_mod_statement] = STATE(2), - [sym_assign_statement] = STATE(2), - [sym_expression] = STATE(2), - [sym__item_path] = STATE(16), - [sym_item_path] = STATE(21), - [sym_array] = STATE(21), - [sym_target] = STATE(21), - [sym_string_literal] = STATE(21), - [aux_sym_source_file_repeat1] = STATE(2), + [sym__statement] = STATE(3), + [sym__directive_statement] = STATE(3), + [sym_mod_statement] = STATE(3), + [sym_assign_statement] = STATE(3), + [sym_expression] = STATE(3), + [sym__field_expression] = STATE(30), + [sym__base_expression] = STATE(14), + [sym__item_path] = STATE(27), + [sym_item_path] = STATE(14), + [sym_array] = STATE(14), + [sym_target] = STATE(14), + [sym_string_literal] = STATE(14), + [aux_sym_source_file_repeat1] = STATE(3), [aux_sym__directive_statement_repeat1] = STATE(4), - [aux_sym__item_path_repeat1] = STATE(16), + [aux_sym__item_path_repeat1] = STATE(27), [ts_builtin_sym_end] = ACTIONS(19), - [anon_sym_mod] = ACTIONS(21), - [anon_sym_COLON_COLON] = ACTIONS(24), - [anon_sym_LBRACK] = ACTIONS(27), - [anon_sym_SQUOTE] = ACTIONS(30), - [sym_identifier] = ACTIONS(33), - [sym_directive] = ACTIONS(36), - [sym_comment] = ACTIONS(3), - }, - [STATE(3)] = { - [sym__statement] = STATE(2), - [sym__directive_statement] = STATE(2), - [sym_mod_statement] = STATE(2), - [sym_assign_statement] = STATE(2), - [sym_expression] = STATE(2), - [sym__item_path] = STATE(16), - [sym_item_path] = STATE(21), - [sym_array] = STATE(21), - [sym_target] = STATE(21), - [sym_string_literal] = STATE(21), - [aux_sym_source_file_repeat1] = STATE(2), - [aux_sym__directive_statement_repeat1] = STATE(4), - [aux_sym__item_path_repeat1] = STATE(16), - [ts_builtin_sym_end] = ACTIONS(39), [anon_sym_mod] = ACTIONS(7), [anon_sym_COLON_COLON] = ACTIONS(9), [anon_sym_LBRACK] = ACTIONS(11), @@ -701,10 +736,35 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_directive] = ACTIONS(17), [sym_comment] = ACTIONS(3), }, + [STATE(3)] = { + [sym__statement] = STATE(3), + [sym__directive_statement] = STATE(3), + [sym_mod_statement] = STATE(3), + [sym_assign_statement] = STATE(3), + [sym_expression] = STATE(3), + [sym__field_expression] = STATE(30), + [sym__base_expression] = STATE(14), + [sym__item_path] = STATE(27), + [sym_item_path] = STATE(14), + [sym_array] = STATE(14), + [sym_target] = STATE(14), + [sym_string_literal] = STATE(14), + [aux_sym_source_file_repeat1] = STATE(3), + [aux_sym__directive_statement_repeat1] = STATE(4), + [aux_sym__item_path_repeat1] = STATE(27), + [ts_builtin_sym_end] = ACTIONS(21), + [anon_sym_mod] = ACTIONS(23), + [anon_sym_COLON_COLON] = ACTIONS(26), + [anon_sym_LBRACK] = ACTIONS(29), + [anon_sym_SQUOTE] = ACTIONS(32), + [sym_identifier] = ACTIONS(35), + [sym_directive] = ACTIONS(38), + [sym_comment] = ACTIONS(3), + }, }; static const uint16_t ts_small_parse_table[] = { - [0] = 10, + [0] = 11, ACTIONS(3), 1, sym_comment, ACTIONS(9), 1, @@ -717,20 +777,23 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, ACTIONS(43), 1, sym_directive, - STATE(29), 1, + STATE(30), 1, + sym__field_expression, + STATE(35), 1, aux_sym__directive_statement_repeat1, - STATE(16), 2, + STATE(27), 2, sym__item_path, aux_sym__item_path_repeat1, - STATE(28), 2, + STATE(33), 2, sym_assign_statement, sym_expression, - STATE(21), 4, + STATE(14), 5, + sym__base_expression, sym_item_path, sym_array, sym_target, sym_string_literal, - [36] = 10, + [40] = 11, ACTIONS(3), 1, sym_comment, ACTIONS(9), 1, @@ -743,18 +806,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, ACTIONS(47), 1, sym_identifier, - STATE(16), 1, + STATE(27), 1, sym__item_path, - STATE(30), 1, + STATE(34), 1, aux_sym__item_path_repeat1, - STATE(35), 1, + STATE(39), 1, + sym__field_expression, + STATE(41), 1, sym_expression, - STATE(21), 4, + STATE(14), 5, + sym__base_expression, sym_item_path, sym_array, sym_target, sym_string_literal, - [70] = 10, + [78] = 11, ACTIONS(3), 1, sym_comment, ACTIONS(9), 1, @@ -767,18 +833,21 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, ACTIONS(49), 1, anon_sym_RBRACK, - STATE(16), 1, + STATE(27), 1, sym__item_path, - STATE(30), 1, + STATE(34), 1, aux_sym__item_path_repeat1, - STATE(44), 1, + STATE(39), 1, + sym__field_expression, + STATE(51), 1, sym_expression, - STATE(21), 4, + STATE(14), 5, + sym__base_expression, sym_item_path, sym_array, sym_target, sym_string_literal, - [104] = 10, + [116] = 11, ACTIONS(3), 1, sym_comment, ACTIONS(9), 1, @@ -791,18 +860,21 @@ static const uint16_t ts_small_parse_table[] = { sym_identifier, ACTIONS(51), 1, anon_sym_RBRACK, - STATE(16), 1, + STATE(27), 1, sym__item_path, - STATE(30), 1, + STATE(34), 1, aux_sym__item_path_repeat1, - STATE(44), 1, + STATE(39), 1, + sym__field_expression, + STATE(51), 1, sym_expression, - STATE(21), 4, + STATE(14), 5, + sym__base_expression, sym_item_path, sym_array, sym_target, sym_string_literal, - [138] = 5, + [154] = 5, ACTIONS(3), 1, sym_comment, ACTIONS(57), 1, @@ -812,15 +884,17 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(55), 2, anon_sym_mod, sym_identifier, - ACTIONS(53), 7, + ACTIONS(53), 9, ts_builtin_sym_end, + anon_sym_PLUS, + anon_sym_DOT, anon_sym_LBRACK, anon_sym_COMMA, anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_SQUOTE, sym_directive, - [161] = 8, + [179] = 10, ACTIONS(3), 1, sym_comment, ACTIONS(9), 1, @@ -832,16 +906,20 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(47), 1, sym_identifier, STATE(27), 1, - sym_expression, - STATE(16), 2, sym__item_path, + STATE(29), 1, + sym_expression, + STATE(34), 1, aux_sym__item_path_repeat1, - STATE(21), 4, + STATE(39), 1, + sym__field_expression, + STATE(14), 5, + sym__base_expression, sym_item_path, sym_array, sym_target, sym_string_literal, - [190] = 9, + [214] = 9, ACTIONS(3), 1, sym_comment, ACTIONS(9), 1, @@ -852,18 +930,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SQUOTE, ACTIONS(47), 1, sym_identifier, - STATE(16), 1, - sym__item_path, STATE(30), 1, - aux_sym__item_path_repeat1, - STATE(46), 1, + sym__field_expression, + STATE(32), 1, sym_expression, - STATE(21), 4, + STATE(27), 2, + sym__item_path, + aux_sym__item_path_repeat1, + STATE(14), 5, + sym__base_expression, sym_item_path, sym_array, sym_target, sym_string_literal, - [221] = 9, + [247] = 9, ACTIONS(3), 1, sym_comment, ACTIONS(9), 1, @@ -874,25 +954,80 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_SQUOTE, ACTIONS(47), 1, sym_identifier, - STATE(16), 1, - sym__item_path, - STATE(30), 1, - aux_sym__item_path_repeat1, - STATE(44), 1, + STATE(29), 1, sym_expression, - STATE(21), 4, + STATE(30), 1, + sym__field_expression, + STATE(27), 2, + sym__item_path, + aux_sym__item_path_repeat1, + STATE(14), 5, + sym__base_expression, sym_item_path, sym_array, sym_target, sym_string_literal, - [252] = 3, + [280] = 10, ACTIONS(3), 1, sym_comment, + ACTIONS(9), 1, + anon_sym_COLON_COLON, + ACTIONS(11), 1, + anon_sym_LBRACK, + ACTIONS(13), 1, + anon_sym_SQUOTE, + ACTIONS(47), 1, + sym_identifier, + STATE(27), 1, + sym__item_path, + STATE(34), 1, + aux_sym__item_path_repeat1, + STATE(39), 1, + sym__field_expression, + STATE(54), 1, + sym_expression, + STATE(14), 5, + sym__base_expression, + sym_item_path, + sym_array, + sym_target, + sym_string_literal, + [315] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(9), 1, + anon_sym_COLON_COLON, + ACTIONS(11), 1, + anon_sym_LBRACK, + ACTIONS(13), 1, + anon_sym_SQUOTE, + ACTIONS(47), 1, + sym_identifier, + STATE(27), 1, + sym__item_path, + STATE(34), 1, + aux_sym__item_path_repeat1, + STATE(39), 1, + sym__field_expression, + STATE(51), 1, + sym_expression, + STATE(14), 5, + sym__base_expression, + sym_item_path, + sym_array, + sym_target, + sym_string_literal, + [350] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(64), 1, + anon_sym_DOT, ACTIONS(62), 2, anon_sym_mod, sym_identifier, - ACTIONS(60), 8, + ACTIONS(60), 9, ts_builtin_sym_end, + anon_sym_PLUS, anon_sym_COLON_COLON, anon_sym_LBRACK, anon_sym_COMMA, @@ -900,14 +1035,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_SQUOTE, sym_directive, - [270] = 3, + [372] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(66), 2, + ACTIONS(68), 2, anon_sym_mod, sym_identifier, - ACTIONS(64), 8, + ACTIONS(66), 10, ts_builtin_sym_end, + anon_sym_PLUS, + anon_sym_DOT, anon_sym_COLON_COLON, anon_sym_LBRACK, anon_sym_COMMA, @@ -915,14 +1052,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_SQUOTE, sym_directive, - [288] = 3, + [392] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(70), 2, + ACTIONS(72), 2, anon_sym_mod, sym_identifier, - ACTIONS(68), 8, + ACTIONS(70), 10, ts_builtin_sym_end, + anon_sym_PLUS, + anon_sym_DOT, anon_sym_COLON_COLON, anon_sym_LBRACK, anon_sym_COMMA, @@ -930,104 +1069,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_SQUOTE, sym_directive, - [306] = 3, + [412] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(74), 2, + ACTIONS(76), 2, anon_sym_mod, sym_identifier, - ACTIONS(72), 8, - ts_builtin_sym_end, - anon_sym_COLON_COLON, - anon_sym_LBRACK, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_SQUOTE, - sym_directive, - [324] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(78), 2, - anon_sym_mod, - sym_identifier, - ACTIONS(76), 8, - ts_builtin_sym_end, - anon_sym_COLON_COLON, - anon_sym_LBRACK, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_SQUOTE, - sym_directive, - [342] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(82), 2, - anon_sym_mod, - sym_identifier, - ACTIONS(80), 8, - ts_builtin_sym_end, - anon_sym_COLON_COLON, - anon_sym_LBRACK, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_SQUOTE, - sym_directive, - [360] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(86), 2, - anon_sym_mod, - sym_identifier, - ACTIONS(84), 8, - ts_builtin_sym_end, - anon_sym_COLON_COLON, - anon_sym_LBRACK, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_SQUOTE, - sym_directive, - [378] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(90), 2, - anon_sym_mod, - sym_identifier, - ACTIONS(88), 8, - ts_builtin_sym_end, - anon_sym_COLON_COLON, - anon_sym_LBRACK, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_SQUOTE, - sym_directive, - [396] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(94), 2, - anon_sym_mod, - sym_identifier, - ACTIONS(92), 8, - ts_builtin_sym_end, - anon_sym_COLON_COLON, - anon_sym_LBRACK, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_SQUOTE, - sym_directive, - [414] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(98), 2, - anon_sym_mod, - sym_identifier, - ACTIONS(96), 8, + ACTIONS(74), 10, ts_builtin_sym_end, + anon_sym_PLUS, + anon_sym_DOT, anon_sym_COLON_COLON, anon_sym_LBRACK, anon_sym_COMMA, @@ -1038,11 +1089,13 @@ static const uint16_t ts_small_parse_table[] = { [432] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(102), 2, + ACTIONS(80), 2, anon_sym_mod, sym_identifier, - ACTIONS(100), 8, + ACTIONS(78), 10, ts_builtin_sym_end, + anon_sym_PLUS, + anon_sym_DOT, anon_sym_COLON_COLON, anon_sym_LBRACK, anon_sym_COMMA, @@ -1050,14 +1103,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_SQUOTE, sym_directive, - [450] = 3, + [452] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(106), 2, + ACTIONS(84), 2, anon_sym_mod, sym_identifier, - ACTIONS(104), 8, + ACTIONS(82), 10, ts_builtin_sym_end, + anon_sym_PLUS, + anon_sym_DOT, anon_sym_COLON_COLON, anon_sym_LBRACK, anon_sym_COMMA, @@ -1065,14 +1120,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_SQUOTE, sym_directive, - [468] = 3, + [472] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(110), 2, + ACTIONS(88), 2, anon_sym_mod, sym_identifier, - ACTIONS(108), 8, + ACTIONS(86), 10, ts_builtin_sym_end, + anon_sym_PLUS, + anon_sym_DOT, anon_sym_COLON_COLON, anon_sym_LBRACK, anon_sym_COMMA, @@ -1080,13 +1137,148 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_SQUOTE, sym_directive, - [486] = 3, + [492] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(92), 2, + anon_sym_mod, + sym_identifier, + ACTIONS(90), 10, + ts_builtin_sym_end, + anon_sym_PLUS, + anon_sym_DOT, + anon_sym_COLON_COLON, + anon_sym_LBRACK, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_SQUOTE, + sym_directive, + [512] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(96), 2, + anon_sym_mod, + sym_identifier, + ACTIONS(94), 10, + ts_builtin_sym_end, + anon_sym_PLUS, + anon_sym_DOT, + anon_sym_COLON_COLON, + anon_sym_LBRACK, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_SQUOTE, + sym_directive, + [532] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(100), 2, + anon_sym_mod, + sym_identifier, + ACTIONS(98), 10, + ts_builtin_sym_end, + anon_sym_PLUS, + anon_sym_DOT, + anon_sym_COLON_COLON, + anon_sym_LBRACK, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_SQUOTE, + sym_directive, + [552] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(55), 2, anon_sym_mod, sym_identifier, - ACTIONS(53), 8, + ACTIONS(53), 10, + ts_builtin_sym_end, + anon_sym_PLUS, + anon_sym_DOT, + anon_sym_COLON_COLON, + anon_sym_LBRACK, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_SQUOTE, + sym_directive, + [572] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(104), 2, + anon_sym_mod, + sym_identifier, + ACTIONS(102), 10, + ts_builtin_sym_end, + anon_sym_PLUS, + anon_sym_DOT, + anon_sym_COLON_COLON, + anon_sym_LBRACK, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_SQUOTE, + sym_directive, + [592] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(108), 2, + anon_sym_mod, + sym_identifier, + ACTIONS(106), 10, + ts_builtin_sym_end, + anon_sym_PLUS, + anon_sym_DOT, + anon_sym_COLON_COLON, + anon_sym_LBRACK, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_SQUOTE, + sym_directive, + [612] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(112), 2, + anon_sym_mod, + sym_identifier, + ACTIONS(110), 10, + ts_builtin_sym_end, + anon_sym_PLUS, + anon_sym_DOT, + anon_sym_COLON_COLON, + anon_sym_LBRACK, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_SQUOTE, + sym_directive, + [632] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(116), 2, + anon_sym_mod, + sym_identifier, + ACTIONS(114), 9, + ts_builtin_sym_end, + anon_sym_PLUS, + anon_sym_COLON_COLON, + anon_sym_LBRACK, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_SQUOTE, + sym_directive, + [651] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(120), 2, + anon_sym_mod, + sym_identifier, + ACTIONS(118), 8, ts_builtin_sym_end, anon_sym_COLON_COLON, anon_sym_LBRACK, @@ -1095,298 +1287,335 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_SQUOTE, sym_directive, - [504] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(114), 2, - anon_sym_mod, - sym_identifier, - ACTIONS(112), 5, - ts_builtin_sym_end, - anon_sym_COLON_COLON, - anon_sym_LBRACK, - anon_sym_SQUOTE, - sym_directive, - [519] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(118), 2, - anon_sym_mod, - sym_identifier, - ACTIONS(116), 5, - ts_builtin_sym_end, - anon_sym_COLON_COLON, - anon_sym_LBRACK, - anon_sym_SQUOTE, - sym_directive, - [534] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(122), 2, - anon_sym_mod, - sym_identifier, - ACTIONS(120), 5, - ts_builtin_sym_end, - anon_sym_COLON_COLON, - anon_sym_LBRACK, - anon_sym_SQUOTE, - sym_directive, - [549] = 4, + [669] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(126), 1, - sym_directive, - STATE(29), 1, - aux_sym__directive_statement_repeat1, - ACTIONS(124), 4, + anon_sym_PLUS, + ACTIONS(124), 2, + anon_sym_mod, + sym_identifier, + ACTIONS(122), 5, + ts_builtin_sym_end, anon_sym_COLON_COLON, anon_sym_LBRACK, anon_sym_SQUOTE, + sym_directive, + [687] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(130), 2, + anon_sym_mod, sym_identifier, - [565] = 4, + ACTIONS(128), 5, + ts_builtin_sym_end, + anon_sym_COLON_COLON, + anon_sym_LBRACK, + anon_sym_SQUOTE, + sym_directive, + [702] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(134), 2, + anon_sym_mod, + sym_identifier, + ACTIONS(132), 5, + ts_builtin_sym_end, + anon_sym_COLON_COLON, + anon_sym_LBRACK, + anon_sym_SQUOTE, + sym_directive, + [717] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(138), 2, + anon_sym_mod, + sym_identifier, + ACTIONS(136), 5, + ts_builtin_sym_end, + anon_sym_COLON_COLON, + anon_sym_LBRACK, + anon_sym_SQUOTE, + sym_directive, + [732] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(9), 1, anon_sym_COLON_COLON, STATE(8), 1, aux_sym__item_path_repeat1, - ACTIONS(129), 3, + ACTIONS(140), 5, + anon_sym_PLUS, + anon_sym_DOT, anon_sym_COMMA, anon_sym_RBRACK, anon_sym_RBRACE, - [580] = 5, - ACTIONS(131), 1, - anon_sym_SQUOTE, - ACTIONS(133), 1, - aux_sym_string_literal_token1, - ACTIONS(135), 1, - sym_escape_sequence, - ACTIONS(137), 1, + [749] = 4, + ACTIONS(3), 1, sym_comment, - STATE(33), 1, - aux_sym_string_literal_repeat1, - [596] = 5, - ACTIONS(137), 1, - sym_comment, - ACTIONS(139), 1, - anon_sym_SQUOTE, - ACTIONS(141), 1, - aux_sym_string_literal_token1, - ACTIONS(143), 1, - sym_escape_sequence, - STATE(31), 1, - aux_sym_string_literal_repeat1, - [612] = 5, - ACTIONS(137), 1, - sym_comment, - ACTIONS(145), 1, + ACTIONS(144), 1, + sym_directive, + STATE(35), 1, + aux_sym__directive_statement_repeat1, + ACTIONS(142), 4, + anon_sym_COLON_COLON, + anon_sym_LBRACK, anon_sym_SQUOTE, + sym_identifier, + [765] = 5, ACTIONS(147), 1, + anon_sym_SQUOTE, + ACTIONS(149), 1, aux_sym_string_literal_token1, - ACTIONS(150), 1, + ACTIONS(151), 1, sym_escape_sequence, - STATE(33), 1, - aux_sym_string_literal_repeat1, - [628] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_RBRACK, ACTIONS(153), 1, - anon_sym_COMMA, - STATE(39), 1, - aux_sym_array_repeat1, - [641] = 4, - ACTIONS(3), 1, + sym_comment, + STATE(37), 1, + aux_sym_string_literal_repeat1, + [781] = 5, + ACTIONS(153), 1, sym_comment, ACTIONS(155), 1, - anon_sym_COMMA, + anon_sym_SQUOTE, ACTIONS(157), 1, - anon_sym_RBRACK, - STATE(34), 1, - aux_sym_array_repeat1, - [654] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(159), 1, - anon_sym_RBRACE, - ACTIONS(161), 1, - sym_identifier, - STATE(38), 1, - sym_argument, - [667] = 4, - ACTIONS(3), 1, + aux_sym_string_literal_token1, + ACTIONS(160), 1, + sym_escape_sequence, + STATE(37), 1, + aux_sym_string_literal_repeat1, + [797] = 5, + ACTIONS(153), 1, sym_comment, ACTIONS(163), 1, - anon_sym_EQ, + anon_sym_SQUOTE, ACTIONS(165), 1, - anon_sym_LBRACE, - STATE(15), 1, - sym__arguments, - [680] = 4, + aux_sym_string_literal_token1, + ACTIONS(167), 1, + sym_escape_sequence, + STATE(36), 1, + aux_sym_string_literal_repeat1, + [813] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(167), 1, - anon_sym_COMMA, ACTIONS(169), 1, + anon_sym_PLUS, + ACTIONS(122), 3, + anon_sym_COMMA, + anon_sym_RBRACK, anon_sym_RBRACE, - STATE(42), 1, - aux_sym__arguments_repeat1, - [693] = 4, + [825] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(171), 1, anon_sym_COMMA, ACTIONS(174), 1, anon_sym_RBRACK, - STATE(39), 1, + STATE(40), 1, aux_sym_array_repeat1, - [706] = 4, + [838] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(161), 1, - sym_identifier, ACTIONS(176), 1, - anon_sym_RBRACE, - STATE(47), 1, - sym_argument, - [719] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(161), 1, - sym_identifier, + anon_sym_COMMA, ACTIONS(178), 1, - anon_sym_RBRACE, - STATE(47), 1, - sym_argument, - [732] = 4, + anon_sym_RBRACK, + STATE(43), 1, + aux_sym_array_repeat1, + [851] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(176), 1, - anon_sym_RBRACE, ACTIONS(180), 1, anon_sym_COMMA, - STATE(43), 1, + ACTIONS(182), 1, + anon_sym_RBRACE, + STATE(49), 1, aux_sym__arguments_repeat1, - [745] = 4, + [864] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(49), 1, + anon_sym_RBRACK, + ACTIONS(184), 1, + anon_sym_COMMA, + STATE(40), 1, + aux_sym_array_repeat1, + [877] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(182), 1, - anon_sym_COMMA, - ACTIONS(185), 1, anon_sym_RBRACE, - STATE(43), 1, + ACTIONS(186), 1, + sym_identifier, + STATE(53), 1, + sym_argument, + [890] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(186), 1, + sym_identifier, + ACTIONS(188), 1, + anon_sym_RBRACE, + STATE(48), 1, + sym_argument, + [903] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(186), 1, + sym_identifier, + ACTIONS(190), 1, + anon_sym_RBRACE, + STATE(53), 1, + sym_argument, + [916] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(192), 1, + anon_sym_EQ, + ACTIONS(194), 1, + anon_sym_LBRACE, + STATE(17), 1, + sym__arguments, + [929] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(196), 1, + anon_sym_COMMA, + ACTIONS(198), 1, + anon_sym_RBRACE, + STATE(42), 1, aux_sym__arguments_repeat1, - [758] = 2, + [942] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(200), 1, + anon_sym_COMMA, + ACTIONS(203), 1, + anon_sym_RBRACE, + STATE(49), 1, + aux_sym__arguments_repeat1, + [955] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(194), 1, + anon_sym_LBRACE, + STATE(17), 1, + sym__arguments, + [965] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(174), 2, anon_sym_COMMA, anon_sym_RBRACK, - [766] = 3, + [973] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(165), 1, - anon_sym_LBRACE, - STATE(15), 1, - sym__arguments, - [776] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(187), 2, - anon_sym_COMMA, - anon_sym_RBRACE, - [784] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(185), 2, - anon_sym_COMMA, - anon_sym_RBRACE, - [792] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(161), 1, + ACTIONS(186), 1, sym_identifier, - STATE(47), 1, + STATE(53), 1, sym_argument, - [802] = 2, + [983] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(189), 1, - anon_sym_COLON, - [809] = 2, + ACTIONS(203), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [991] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(191), 1, + ACTIONS(205), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [999] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(207), 1, + sym_identifier, + [1006] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(209), 1, anon_sym_SEMI, - [816] = 2, + [1013] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(193), 1, + ACTIONS(211), 1, sym_identifier, - [823] = 2, + [1020] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(195), 1, + ACTIONS(213), 1, + anon_sym_COLON, + [1027] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(215), 1, + sym_identifier, + [1034] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(217), 1, ts_builtin_sym_end, - [830] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(197), 1, - sym_identifier, }; static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(4)] = 0, - [SMALL_STATE(5)] = 36, - [SMALL_STATE(6)] = 70, - [SMALL_STATE(7)] = 104, - [SMALL_STATE(8)] = 138, - [SMALL_STATE(9)] = 161, - [SMALL_STATE(10)] = 190, - [SMALL_STATE(11)] = 221, - [SMALL_STATE(12)] = 252, - [SMALL_STATE(13)] = 270, - [SMALL_STATE(14)] = 288, - [SMALL_STATE(15)] = 306, - [SMALL_STATE(16)] = 324, - [SMALL_STATE(17)] = 342, - [SMALL_STATE(18)] = 360, - [SMALL_STATE(19)] = 378, - [SMALL_STATE(20)] = 396, - [SMALL_STATE(21)] = 414, - [SMALL_STATE(22)] = 432, - [SMALL_STATE(23)] = 450, - [SMALL_STATE(24)] = 468, - [SMALL_STATE(25)] = 486, - [SMALL_STATE(26)] = 504, - [SMALL_STATE(27)] = 519, - [SMALL_STATE(28)] = 534, - [SMALL_STATE(29)] = 549, - [SMALL_STATE(30)] = 565, - [SMALL_STATE(31)] = 580, - [SMALL_STATE(32)] = 596, - [SMALL_STATE(33)] = 612, - [SMALL_STATE(34)] = 628, - [SMALL_STATE(35)] = 641, - [SMALL_STATE(36)] = 654, - [SMALL_STATE(37)] = 667, - [SMALL_STATE(38)] = 680, - [SMALL_STATE(39)] = 693, - [SMALL_STATE(40)] = 706, - [SMALL_STATE(41)] = 719, - [SMALL_STATE(42)] = 732, - [SMALL_STATE(43)] = 745, - [SMALL_STATE(44)] = 758, - [SMALL_STATE(45)] = 766, - [SMALL_STATE(46)] = 776, - [SMALL_STATE(47)] = 784, - [SMALL_STATE(48)] = 792, - [SMALL_STATE(49)] = 802, - [SMALL_STATE(50)] = 809, - [SMALL_STATE(51)] = 816, - [SMALL_STATE(52)] = 823, - [SMALL_STATE(53)] = 830, + [SMALL_STATE(5)] = 40, + [SMALL_STATE(6)] = 78, + [SMALL_STATE(7)] = 116, + [SMALL_STATE(8)] = 154, + [SMALL_STATE(9)] = 179, + [SMALL_STATE(10)] = 214, + [SMALL_STATE(11)] = 247, + [SMALL_STATE(12)] = 280, + [SMALL_STATE(13)] = 315, + [SMALL_STATE(14)] = 350, + [SMALL_STATE(15)] = 372, + [SMALL_STATE(16)] = 392, + [SMALL_STATE(17)] = 412, + [SMALL_STATE(18)] = 432, + [SMALL_STATE(19)] = 452, + [SMALL_STATE(20)] = 472, + [SMALL_STATE(21)] = 492, + [SMALL_STATE(22)] = 512, + [SMALL_STATE(23)] = 532, + [SMALL_STATE(24)] = 552, + [SMALL_STATE(25)] = 572, + [SMALL_STATE(26)] = 592, + [SMALL_STATE(27)] = 612, + [SMALL_STATE(28)] = 632, + [SMALL_STATE(29)] = 651, + [SMALL_STATE(30)] = 669, + [SMALL_STATE(31)] = 687, + [SMALL_STATE(32)] = 702, + [SMALL_STATE(33)] = 717, + [SMALL_STATE(34)] = 732, + [SMALL_STATE(35)] = 749, + [SMALL_STATE(36)] = 765, + [SMALL_STATE(37)] = 781, + [SMALL_STATE(38)] = 797, + [SMALL_STATE(39)] = 813, + [SMALL_STATE(40)] = 825, + [SMALL_STATE(41)] = 838, + [SMALL_STATE(42)] = 851, + [SMALL_STATE(43)] = 864, + [SMALL_STATE(44)] = 877, + [SMALL_STATE(45)] = 890, + [SMALL_STATE(46)] = 903, + [SMALL_STATE(47)] = 916, + [SMALL_STATE(48)] = 929, + [SMALL_STATE(49)] = 942, + [SMALL_STATE(50)] = 955, + [SMALL_STATE(51)] = 965, + [SMALL_STATE(52)] = 973, + [SMALL_STATE(53)] = 983, + [SMALL_STATE(54)] = 991, + [SMALL_STATE(55)] = 999, + [SMALL_STATE(56)] = 1006, + [SMALL_STATE(57)] = 1013, + [SMALL_STATE(58)] = 1020, + [SMALL_STATE(59)] = 1027, + [SMALL_STATE(60)] = 1034, }; static const TSParseActionEntry ts_parse_actions[] = { @@ -1394,96 +1623,106 @@ static const TSParseActionEntry ts_parse_actions[] = { [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(), [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(), [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 0, 0, 0), - [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(51), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(37), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(47), [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [19] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), - [21] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(51), - [24] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(53), - [27] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(5), - [30] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(32), - [33] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(37), - [36] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(4), - [39] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, 0, 0), - [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [19] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, 0, 0), + [21] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), + [23] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(55), + [26] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(59), + [29] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(5), + [32] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(38), + [35] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(47), + [38] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(4), + [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), [53] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__item_path_repeat1, 2, 0, 0), [55] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__item_path_repeat1, 2, 0, 0), - [57] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__item_path_repeat1, 2, 0, 0), SHIFT_REPEAT(53), - [60] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__arguments, 3, 0, 0), - [62] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__arguments, 3, 0, 0), - [64] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array, 2, 0, 0), - [66] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array, 2, 0, 0), - [68] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_literal, 2, 0, 0), - [70] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_literal, 2, 0, 0), - [72] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_target, 2, 0, 1), - [74] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_target, 2, 0, 1), - [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_item_path, 1, 0, 0), - [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_item_path, 1, 0, 0), - [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array, 3, 0, 0), - [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array, 3, 0, 0), - [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_literal, 3, 0, 0), - [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_literal, 3, 0, 0), - [88] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__arguments, 2, 0, 0), - [90] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__arguments, 2, 0, 0), - [92] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array, 4, 0, 0), - [94] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array, 4, 0, 0), - [96] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1, 0, 0), - [98] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1, 0, 0), - [100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array, 5, 0, 0), - [102] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array, 5, 0, 0), - [104] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__arguments, 4, 0, 0), - [106] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__arguments, 4, 0, 0), - [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__arguments, 5, 0, 0), - [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__arguments, 5, 0, 0), - [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_mod_statement, 3, 0, 0), - [114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_mod_statement, 3, 0, 0), - [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_statement, 3, 0, 1), - [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_statement, 3, 0, 1), - [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__directive_statement, 2, 0, 0), - [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__directive_statement, 2, 0, 0), - [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__directive_statement_repeat1, 2, 0, 0), - [126] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__directive_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(29), - [129] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__item_path, 1, 0, 0), - [131] = {.entry = {.count = 1, .reusable = false}}, SHIFT(18), - [133] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [135] = {.entry = {.count = 1, .reusable = false}}, SHIFT(33), - [137] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), - [139] = {.entry = {.count = 1, .reusable = false}}, SHIFT(14), - [141] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [143] = {.entry = {.count = 1, .reusable = false}}, SHIFT(31), - [145] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_literal_repeat1, 2, 0, 0), - [147] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_string_literal_repeat1, 2, 0, 0), SHIFT_REPEAT(33), - [150] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_literal_repeat1, 2, 0, 0), SHIFT_REPEAT(33), - [153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [155] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [157] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [159] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [161] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [163] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [57] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__item_path_repeat1, 2, 0, 0), SHIFT_REPEAT(59), + [60] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_expression, 1, 0, 0), + [62] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__field_expression, 1, 0, 0), + [64] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [66] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array, 2, 0, 0), + [68] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array, 2, 0, 0), + [70] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_literal, 2, 0, 0), + [72] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_literal, 2, 0, 0), + [74] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_target, 2, 0, 1), + [76] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_target, 2, 0, 1), + [78] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array, 3, 0, 0), + [80] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array, 3, 0, 0), + [82] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_literal, 3, 0, 0), + [84] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_literal, 3, 0, 0), + [86] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__arguments, 2, 0, 0), + [88] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__arguments, 2, 0, 0), + [90] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array, 4, 0, 0), + [92] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array, 4, 0, 0), + [94] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__arguments, 3, 0, 0), + [96] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__arguments, 3, 0, 0), + [98] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array, 5, 0, 0), + [100] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array, 5, 0, 0), + [102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__arguments, 4, 0, 0), + [104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__arguments, 4, 0, 0), + [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__arguments, 5, 0, 0), + [108] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__arguments, 5, 0, 0), + [110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_item_path, 1, 0, 0), + [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_item_path, 1, 0, 0), + [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_expression, 3, 0, 0), + [116] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__field_expression, 3, 0, 0), + [118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 3, 0, 0), + [120] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 3, 0, 0), + [122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1, 0, 0), + [124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1, 0, 0), + [126] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), + [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_mod_statement, 3, 0, 0), + [130] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_mod_statement, 3, 0, 0), + [132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_statement, 3, 0, 1), + [134] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_statement, 3, 0, 1), + [136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__directive_statement, 2, 0, 0), + [138] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__directive_statement, 2, 0, 0), + [140] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__item_path, 1, 0, 0), + [142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__directive_statement_repeat1, 2, 0, 0), + [144] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__directive_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(35), + [147] = {.entry = {.count = 1, .reusable = false}}, SHIFT(19), + [149] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [151] = {.entry = {.count = 1, .reusable = false}}, SHIFT(37), + [153] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), + [155] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_literal_repeat1, 2, 0, 0), + [157] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_string_literal_repeat1, 2, 0, 0), SHIFT_REPEAT(37), + [160] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_literal_repeat1, 2, 0, 0), SHIFT_REPEAT(37), + [163] = {.entry = {.count = 1, .reusable = false}}, SHIFT(16), [165] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [167] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [169] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [171] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_array_repeat1, 2, 0, 0), SHIFT_REPEAT(11), + [167] = {.entry = {.count = 1, .reusable = false}}, SHIFT(36), + [169] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [171] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_array_repeat1, 2, 0, 0), SHIFT_REPEAT(13), [174] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_array_repeat1, 2, 0, 0), - [176] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [182] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__arguments_repeat1, 2, 0, 0), SHIFT_REPEAT(48), - [185] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__arguments_repeat1, 2, 0, 0), - [187] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument, 3, 0, 2), - [189] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), - [191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [195] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [197] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [176] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), + [194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [200] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__arguments_repeat1, 2, 0, 0), SHIFT_REPEAT(52), + [203] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__arguments_repeat1, 2, 0, 0), + [205] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument, 3, 0, 2), + [207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [209] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [217] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), }; #ifdef __cplusplus