aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2023-10-28 15:25:34 +0200
committerThomas Voss <mail@thomasvoss.com> 2023-10-28 15:25:34 +0200
commit4ed241343f6babdb0b954c683c1408345bbeed30 (patch)
treea8ca0308ae3d261f6a2de678de6c476c5315af9f
parent2483cbddd9e7a02296bb928462ba7eb22551752d (diff)
Support unicode whitespacev1.0.2
-rw-r--r--grammar.js8
-rw-r--r--src/grammar.json12
-rw-r--r--src/parser.c1381
3 files changed, 911 insertions, 490 deletions
diff --git a/grammar.js b/grammar.js
index 5849132..8d0e5a5 100644
--- a/grammar.js
+++ b/grammar.js
@@ -1,6 +1,6 @@
module.exports = grammar({
name: 'gsp',
-
+ extras: $ => [$._S],
rules: {
source_file: $ => repeat($.node),
@@ -43,10 +43,12 @@ module.exports = grammar({
),
),
- class_shorthand: $ => /\.[^\s]+/,
- id_shorthand: $ => /#[^\s]+/,
+ class_shorthand: $ => /\.[^\p{White_Space}]+/u,
+ id_shorthand: $ => /#[^\p{White_Space}]+/u,
attribute_name: $ => /[a-zA-Z0-9_-]+/,
attribute_value: $ => /"(\\.|[^"\\])*"/,
+
+ _S: $ => /\p{White_Space}*/u,
},
})
diff --git a/src/grammar.json b/src/grammar.json
index 150b1a5..ae2f4ab 100644
--- a/src/grammar.json
+++ b/src/grammar.json
@@ -180,11 +180,11 @@
},
"class_shorthand": {
"type": "PATTERN",
- "value": "\\.[^\\s]+"
+ "value": "\\.[^\\p{White_Space}]+"
},
"id_shorthand": {
"type": "PATTERN",
- "value": "#[^\\s]+"
+ "value": "#[^\\p{White_Space}]+"
},
"attribute_name": {
"type": "PATTERN",
@@ -193,12 +193,16 @@
"attribute_value": {
"type": "PATTERN",
"value": "\"(\\\\.|[^\"\\\\])*\""
+ },
+ "_S": {
+ "type": "PATTERN",
+ "value": "\\p{White_Space}*"
}
},
"extras": [
{
- "type": "PATTERN",
- "value": "\\s"
+ "type": "SYMBOL",
+ "name": "_S"
}
],
"conflicts": [],
diff --git a/src/parser.c b/src/parser.c
index 97761e6..f644014 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -6,11 +6,11 @@
#endif
#define LANGUAGE_VERSION 14
-#define STATE_COUNT 48
+#define STATE_COUNT 64
#define LARGE_STATE_COUNT 2
-#define SYMBOL_COUNT 22
+#define SYMBOL_COUNT 23
#define ALIAS_COUNT 0
-#define TOKEN_COUNT 13
+#define TOKEN_COUNT 14
#define EXTERNAL_TOKEN_COUNT 0
#define FIELD_COUNT 0
#define MAX_ALIAS_SEQUENCE_LENGTH 6
@@ -29,15 +29,16 @@ enum {
sym_id_shorthand = 10,
sym_attribute_name = 11,
sym_attribute_value = 12,
- sym_source_file = 13,
- sym_node = 14,
- sym_node_body = 15,
- sym_text_node = 16,
- sym_attribute_list = 17,
- sym_attribute = 18,
- aux_sym_source_file_repeat1 = 19,
- aux_sym_text_node_repeat1 = 20,
- aux_sym_attribute_list_repeat1 = 21,
+ sym__S = 13,
+ sym_source_file = 14,
+ sym_node = 15,
+ sym_node_body = 16,
+ sym_text_node = 17,
+ sym_attribute_list = 18,
+ sym_attribute = 19,
+ aux_sym_source_file_repeat1 = 20,
+ aux_sym_text_node_repeat1 = 21,
+ aux_sym_attribute_list_repeat1 = 22,
};
static const char * const ts_symbol_names[] = {
@@ -54,6 +55,7 @@ static const char * const ts_symbol_names[] = {
[sym_id_shorthand] = "id_shorthand",
[sym_attribute_name] = "attribute_name",
[sym_attribute_value] = "attribute_value",
+ [sym__S] = "_S",
[sym_source_file] = "source_file",
[sym_node] = "node",
[sym_node_body] = "node_body",
@@ -79,6 +81,7 @@ static const TSSymbol ts_symbol_map[] = {
[sym_id_shorthand] = sym_id_shorthand,
[sym_attribute_name] = sym_attribute_name,
[sym_attribute_value] = sym_attribute_value,
+ [sym__S] = sym__S,
[sym_source_file] = sym_source_file,
[sym_node] = sym_node,
[sym_node_body] = sym_node_body,
@@ -143,6 +146,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
.visible = true,
.named = true,
},
+ [sym__S] = {
+ .visible = false,
+ .named = true,
+ },
[sym_source_file] = {
.visible = true,
.named = true,
@@ -194,50 +201,66 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = {
[1] = 1,
[2] = 2,
[3] = 3,
- [4] = 4,
- [5] = 3,
- [6] = 2,
- [7] = 4,
- [8] = 8,
- [9] = 9,
- [10] = 9,
- [11] = 8,
- [12] = 12,
+ [4] = 2,
+ [5] = 5,
+ [6] = 5,
+ [7] = 3,
+ [8] = 3,
+ [9] = 2,
+ [10] = 5,
+ [11] = 11,
+ [12] = 11,
[13] = 13,
- [14] = 14,
- [15] = 15,
- [16] = 16,
+ [14] = 11,
+ [15] = 13,
+ [16] = 13,
[17] = 17,
[18] = 18,
[19] = 19,
[20] = 20,
[21] = 21,
[22] = 22,
- [23] = 23,
+ [23] = 19,
[24] = 24,
[25] = 25,
[26] = 26,
- [27] = 18,
- [28] = 26,
- [29] = 24,
- [30] = 21,
+ [27] = 27,
+ [28] = 28,
+ [29] = 29,
+ [30] = 30,
[31] = 31,
[32] = 32,
[33] = 33,
- [34] = 34,
+ [34] = 29,
[35] = 35,
- [36] = 36,
- [37] = 37,
- [38] = 38,
- [39] = 39,
- [40] = 36,
- [41] = 41,
- [42] = 33,
- [43] = 39,
+ [36] = 33,
+ [37] = 32,
+ [38] = 29,
+ [39] = 35,
+ [40] = 33,
+ [41] = 32,
+ [42] = 35,
+ [43] = 43,
[44] = 44,
- [45] = 37,
- [46] = 34,
- [47] = 35,
+ [45] = 45,
+ [46] = 46,
+ [47] = 47,
+ [48] = 44,
+ [49] = 49,
+ [50] = 44,
+ [51] = 45,
+ [52] = 45,
+ [53] = 47,
+ [54] = 54,
+ [55] = 55,
+ [56] = 55,
+ [57] = 54,
+ [58] = 47,
+ [59] = 59,
+ [60] = 55,
+ [61] = 54,
+ [62] = 49,
+ [63] = 49,
};
static inline bool sym_node_name_character_set_1(int32_t c) {
@@ -284,150 +307,248 @@ static inline bool sym_node_name_character_set_2(int32_t c) {
: (c <= 65533 || (c >= 65536 && c <= 983039)))))));
}
+static inline bool sym_literal_text_character_set_1(int32_t c) {
+ return (c < 8192
+ ? (c < 133
+ ? (c < ' '
+ ? (c >= '\t' && c <= '\r')
+ : c <= ' ')
+ : (c <= 133 || (c < 5760
+ ? c == 160
+ : c <= 5760)))
+ : (c <= 8202 || (c < 8287
+ ? (c < 8239
+ ? (c >= 8232 && c <= 8233)
+ : c <= 8239)
+ : (c <= 8287 || c == 12288))));
+}
+
+static inline bool sym_id_shorthand_character_set_1(int32_t c) {
+ return (c < 5760
+ ? (c < ' '
+ ? (c < '\t'
+ ? c == 0
+ : c <= '\r')
+ : (c <= ' ' || (c < 160
+ ? c == 133
+ : c <= 160)))
+ : (c <= 5760 || (c < 8239
+ ? (c < 8232
+ ? (c >= 8192 && c <= 8202)
+ : c <= 8233)
+ : (c <= 8239 || (c < 12288
+ ? c == 8287
+ : c <= 12288)))));
+}
+
+static inline bool sym__S_character_set_1(int32_t c) {
+ return (c < 8192
+ ? (c < 133
+ ? (c < ' '
+ ? (c >= '\t' && c <= '\r')
+ : c <= ' ')
+ : (c <= 133 || c == 160))
+ : (c <= 8202 || (c < 8287
+ ? (c < 8239
+ ? (c >= 8232 && c <= 8233)
+ : c <= 8239)
+ : (c <= 8287 || c == 12288))));
+}
+
static bool ts_lex(TSLexer *lexer, TSStateId state) {
START_LEXER();
eof = lexer->eof(lexer);
switch (state) {
case 0:
- if (eof) ADVANCE(7);
+ ACCEPT_TOKEN(sym__S);
+ if (eof) ADVANCE(5);
if (lookahead == '"') ADVANCE(1);
- if (lookahead == '#') ADVANCE(4);
- if (lookahead == '-') ADVANCE(12);
- if (lookahead == '.') ADVANCE(5);
- if (lookahead == '=') ADVANCE(13);
- if (lookahead == '>') ADVANCE(8);
- if (lookahead == '@') ADVANCE(14);
- if (lookahead == '{') ADVANCE(9);
- if (lookahead == '}') ADVANCE(10);
- if (lookahead == '\t' ||
- lookahead == '\n' ||
- lookahead == '\r' ||
- lookahead == ' ') SKIP(0)
- if (sym_node_name_character_set_1(lookahead)) ADVANCE(11);
+ if (lookahead == '#') ADVANCE(2);
+ if (lookahead == '-') ADVANCE(11);
+ if (lookahead == '.') ADVANCE(3);
+ if (lookahead == '=') ADVANCE(12);
+ if (lookahead == '>') ADVANCE(6);
+ if (lookahead == '@') ADVANCE(13);
+ if (lookahead == '{') ADVANCE(7);
+ if (lookahead == '}') ADVANCE(8);
+ if (lookahead == 5760) ADVANCE(9);
+ if (sym__S_character_set_1(lookahead)) ADVANCE(30);
+ if (sym_node_name_character_set_1(lookahead)) ADVANCE(10);
END_STATE();
case 1:
- if (lookahead == '"') ADVANCE(21);
- if (lookahead == '\\') ADVANCE(6);
+ if (lookahead == '"') ADVANCE(20);
+ if (lookahead == '\\') ADVANCE(4);
if (lookahead != 0) ADVANCE(1);
END_STATE();
case 2:
- if (lookahead == '#') ADVANCE(4);
- if (lookahead == '.') ADVANCE(5);
- if (lookahead == '=') ADVANCE(13);
- if (lookahead == '{') ADVANCE(9);
- if (lookahead == '\t' ||
- lookahead == '\n' ||
- lookahead == '\r' ||
- lookahead == ' ') SKIP(2)
- if (lookahead == '-' ||
- ('0' <= lookahead && lookahead <= '9') ||
- ('A' <= lookahead && lookahead <= 'Z') ||
- lookahead == '_' ||
- ('a' <= lookahead && lookahead <= 'z')) ADVANCE(20);
+ if (!sym_id_shorthand_character_set_1(lookahead)) ADVANCE(18);
END_STATE();
case 3:
- if (lookahead == '@') ADVANCE(14);
- if (lookahead == '\\') ADVANCE(17);
- if (lookahead == '}') ADVANCE(10);
- if (lookahead == '\t' ||
- lookahead == '\n' ||
- lookahead == '\r' ||
- lookahead == ' ') ADVANCE(15);
- if (lookahead != 0) ADVANCE(16);
+ if (!sym_id_shorthand_character_set_1(lookahead)) ADVANCE(17);
END_STATE();
case 4:
if (lookahead != 0 &&
- lookahead != '\t' &&
- lookahead != '\n' &&
- lookahead != '\r' &&
- lookahead != ' ') ADVANCE(19);
+ lookahead != '\n') ADVANCE(1);
END_STATE();
case 5:
- if (lookahead != 0 &&
- lookahead != '\t' &&
- lookahead != '\n' &&
- lookahead != '\r' &&
- lookahead != ' ') ADVANCE(18);
+ ACCEPT_TOKEN(ts_builtin_sym_end);
END_STATE();
case 6:
- if (lookahead != 0 &&
- lookahead != '\n') ADVANCE(1);
+ ACCEPT_TOKEN(anon_sym_GT);
END_STATE();
case 7:
- ACCEPT_TOKEN(ts_builtin_sym_end);
+ ACCEPT_TOKEN(anon_sym_LBRACE);
END_STATE();
case 8:
- ACCEPT_TOKEN(anon_sym_GT);
+ ACCEPT_TOKEN(anon_sym_RBRACE);
END_STATE();
case 9:
- ACCEPT_TOKEN(anon_sym_LBRACE);
+ ACCEPT_TOKEN(sym_node_name);
+ if (lookahead == 5760) ADVANCE(9);
+ if (sym__S_character_set_1(lookahead)) ADVANCE(30);
+ if (sym_node_name_character_set_2(lookahead)) ADVANCE(10);
END_STATE();
case 10:
- ACCEPT_TOKEN(anon_sym_RBRACE);
- END_STATE();
- case 11:
ACCEPT_TOKEN(sym_node_name);
- if (sym_node_name_character_set_2(lookahead)) ADVANCE(11);
+ if (sym_node_name_character_set_2(lookahead)) ADVANCE(10);
END_STATE();
- case 12:
+ case 11:
ACCEPT_TOKEN(anon_sym_DASH);
END_STATE();
- case 13:
+ case 12:
ACCEPT_TOKEN(anon_sym_EQ);
END_STATE();
- case 14:
+ case 13:
ACCEPT_TOKEN(anon_sym_AT);
END_STATE();
- case 15:
+ case 14:
ACCEPT_TOKEN(sym_literal_text);
- if (lookahead == '\\') ADVANCE(17);
- if (lookahead == '\t' ||
- lookahead == '\n' ||
- lookahead == '\r' ||
- lookahead == ' ') ADVANCE(15);
+ if (lookahead == '\\') ADVANCE(16);
+ if (sym_literal_text_character_set_1(lookahead)) ADVANCE(14);
if (lookahead != 0 &&
lookahead != '@' &&
- lookahead != '}') ADVANCE(16);
+ lookahead != '}') ADVANCE(15);
END_STATE();
- case 16:
+ case 15:
ACCEPT_TOKEN(sym_literal_text);
- if (lookahead == '\\') ADVANCE(17);
+ if (lookahead == '\\') ADVANCE(16);
if (lookahead != 0 &&
lookahead != '@' &&
- lookahead != '}') ADVANCE(16);
+ lookahead != '}') ADVANCE(15);
END_STATE();
- case 17:
+ case 16:
ACCEPT_TOKEN(sym_literal_text);
- if (lookahead == '\\') ADVANCE(17);
- if (lookahead != 0) ADVANCE(16);
+ if (lookahead == '\\') ADVANCE(16);
+ if (lookahead != 0) ADVANCE(15);
END_STATE();
- case 18:
+ case 17:
ACCEPT_TOKEN(sym_class_shorthand);
- if (lookahead != 0 &&
- lookahead != '\t' &&
- lookahead != '\n' &&
- lookahead != '\r' &&
- lookahead != ' ') ADVANCE(18);
+ if (!sym_id_shorthand_character_set_1(lookahead)) ADVANCE(17);
END_STATE();
- case 19:
+ case 18:
ACCEPT_TOKEN(sym_id_shorthand);
- if (lookahead != 0 &&
- lookahead != '\t' &&
- lookahead != '\n' &&
- lookahead != '\r' &&
- lookahead != ' ') ADVANCE(19);
+ if (!sym_id_shorthand_character_set_1(lookahead)) ADVANCE(18);
END_STATE();
- case 20:
+ case 19:
ACCEPT_TOKEN(sym_attribute_name);
if (lookahead == '-' ||
('0' <= lookahead && lookahead <= '9') ||
('A' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
- ('a' <= lookahead && lookahead <= 'z')) ADVANCE(20);
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(19);
END_STATE();
- case 21:
+ case 20:
ACCEPT_TOKEN(sym_attribute_value);
END_STATE();
+ case 21:
+ ACCEPT_TOKEN(sym__S);
+ if (lookahead == '"') ADVANCE(1);
+ if (sym_literal_text_character_set_1(lookahead)) ADVANCE(30);
+ END_STATE();
+ case 22:
+ ACCEPT_TOKEN(sym__S);
+ if (lookahead == '#') ADVANCE(2);
+ if (lookahead == '.') ADVANCE(3);
+ if (lookahead == '=') ADVANCE(12);
+ if (lookahead == '{') ADVANCE(7);
+ if (sym_literal_text_character_set_1(lookahead)) ADVANCE(30);
+ if (lookahead == '-' ||
+ ('0' <= lookahead && lookahead <= '9') ||
+ ('A' <= lookahead && lookahead <= 'Z') ||
+ lookahead == '_' ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(19);
+ END_STATE();
+ case 23:
+ ACCEPT_TOKEN(sym__S);
+ if (lookahead == '#') ADVANCE(2);
+ if (lookahead == '.') ADVANCE(3);
+ if (lookahead == '{') ADVANCE(7);
+ if (sym_literal_text_character_set_1(lookahead)) ADVANCE(30);
+ if (lookahead == '-' ||
+ ('0' <= lookahead && lookahead <= '9') ||
+ ('A' <= lookahead && lookahead <= 'Z') ||
+ lookahead == '_' ||
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(19);
+ END_STATE();
+ case 24:
+ ACCEPT_TOKEN(sym__S);
+ if (lookahead == '-') ADVANCE(11);
+ if (lookahead == '=') ADVANCE(12);
+ if (lookahead == '>') ADVANCE(6);
+ if (lookahead == '}') ADVANCE(8);
+ if (lookahead == 5760) ADVANCE(9);
+ if (sym__S_character_set_1(lookahead)) ADVANCE(30);
+ if (sym_node_name_character_set_1(lookahead)) ADVANCE(10);
+ END_STATE();
+ case 25:
+ ACCEPT_TOKEN(sym__S);
+ if (lookahead == '>') ADVANCE(6);
+ if (lookahead == '}') ADVANCE(8);
+ if (lookahead == 5760) ADVANCE(9);
+ if (sym__S_character_set_1(lookahead)) ADVANCE(30);
+ if (sym_node_name_character_set_1(lookahead)) ADVANCE(10);
+ END_STATE();
+ case 26:
+ ACCEPT_TOKEN(sym__S);
+ if (lookahead == '@') ADVANCE(13);
+ if (lookahead == '\\') ADVANCE(16);
+ if (lookahead == '}') ADVANCE(8);
+ if (sym_literal_text_character_set_1(lookahead)) ADVANCE(14);
+ if (lookahead != 0) ADVANCE(15);
+ END_STATE();
+ case 27:
+ ACCEPT_TOKEN(sym__S);
+ if (lookahead == '{') ADVANCE(7);
+ if (sym_literal_text_character_set_1(lookahead)) ADVANCE(30);
+ END_STATE();
+ case 28:
+ ACCEPT_TOKEN(sym__S);
+ if (lookahead == '}') ADVANCE(8);
+ if (sym_literal_text_character_set_1(lookahead)) ADVANCE(30);
+ END_STATE();
+ case 29:
+ ACCEPT_TOKEN(sym__S);
+ if (lookahead == 5760) ADVANCE(9);
+ if (sym__S_character_set_1(lookahead)) ADVANCE(30);
+ if (sym_node_name_character_set_1(lookahead)) ADVANCE(10);
+ END_STATE();
+ case 30:
+ ACCEPT_TOKEN(sym__S);
+ if (sym_literal_text_character_set_1(lookahead)) ADVANCE(30);
+ END_STATE();
+ case 31:
+ ACCEPT_TOKEN(sym__S);
+ if (eof) ADVANCE(5);
+ if (lookahead == '>') ADVANCE(6);
+ if (lookahead == 5760) ADVANCE(9);
+ if (sym__S_character_set_1(lookahead)) ADVANCE(30);
+ if (sym_node_name_character_set_1(lookahead)) ADVANCE(10);
+ END_STATE();
+ case 32:
+ ACCEPT_TOKEN(sym__S);
+ if (eof) ADVANCE(5);
+ if (sym_literal_text_character_set_1(lookahead)) ADVANCE(30);
+ END_STATE();
default:
return false;
}
@@ -435,53 +556,69 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
static const TSLexMode ts_lex_modes[STATE_COUNT] = {
[0] = {.lex_state = 0},
- [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 = 2},
- [9] = {.lex_state = 2},
- [10] = {.lex_state = 2},
- [11] = {.lex_state = 2},
- [12] = {.lex_state = 0},
- [13] = {.lex_state = 2},
- [14] = {.lex_state = 2},
- [15] = {.lex_state = 0},
- [16] = {.lex_state = 2},
- [17] = {.lex_state = 0},
- [18] = {.lex_state = 0},
- [19] = {.lex_state = 3},
- [20] = {.lex_state = 2},
- [21] = {.lex_state = 0},
- [22] = {.lex_state = 3},
- [23] = {.lex_state = 2},
- [24] = {.lex_state = 0},
- [25] = {.lex_state = 3},
- [26] = {.lex_state = 0},
- [27] = {.lex_state = 3},
- [28] = {.lex_state = 3},
- [29] = {.lex_state = 3},
- [30] = {.lex_state = 3},
- [31] = {.lex_state = 0},
- [32] = {.lex_state = 3},
- [33] = {.lex_state = 0},
- [34] = {.lex_state = 0},
- [35] = {.lex_state = 0},
- [36] = {.lex_state = 0},
- [37] = {.lex_state = 0},
- [38] = {.lex_state = 0},
- [39] = {.lex_state = 0},
- [40] = {.lex_state = 0},
- [41] = {.lex_state = 0},
- [42] = {.lex_state = 0},
- [43] = {.lex_state = 0},
- [44] = {.lex_state = 0},
- [45] = {.lex_state = 0},
- [46] = {.lex_state = 0},
- [47] = {.lex_state = 0},
+ [1] = {.lex_state = 31},
+ [2] = {.lex_state = 24},
+ [3] = {.lex_state = 24},
+ [4] = {.lex_state = 24},
+ [5] = {.lex_state = 24},
+ [6] = {.lex_state = 24},
+ [7] = {.lex_state = 24},
+ [8] = {.lex_state = 24},
+ [9] = {.lex_state = 24},
+ [10] = {.lex_state = 24},
+ [11] = {.lex_state = 23},
+ [12] = {.lex_state = 23},
+ [13] = {.lex_state = 23},
+ [14] = {.lex_state = 23},
+ [15] = {.lex_state = 23},
+ [16] = {.lex_state = 23},
+ [17] = {.lex_state = 23},
+ [18] = {.lex_state = 23},
+ [19] = {.lex_state = 31},
+ [20] = {.lex_state = 22},
+ [21] = {.lex_state = 31},
+ [22] = {.lex_state = 25},
+ [23] = {.lex_state = 25},
+ [24] = {.lex_state = 26},
+ [25] = {.lex_state = 26},
+ [26] = {.lex_state = 26},
+ [27] = {.lex_state = 23},
+ [28] = {.lex_state = 23},
+ [29] = {.lex_state = 31},
+ [30] = {.lex_state = 26},
+ [31] = {.lex_state = 31},
+ [32] = {.lex_state = 31},
+ [33] = {.lex_state = 31},
+ [34] = {.lex_state = 25},
+ [35] = {.lex_state = 25},
+ [36] = {.lex_state = 25},
+ [37] = {.lex_state = 25},
+ [38] = {.lex_state = 26},
+ [39] = {.lex_state = 26},
+ [40] = {.lex_state = 26},
+ [41] = {.lex_state = 26},
+ [42] = {.lex_state = 31},
+ [43] = {.lex_state = 28},
+ [44] = {.lex_state = 28},
+ [45] = {.lex_state = 28},
+ [46] = {.lex_state = 21},
+ [47] = {.lex_state = 28},
+ [48] = {.lex_state = 28},
+ [49] = {.lex_state = 29},
+ [50] = {.lex_state = 28},
+ [51] = {.lex_state = 28},
+ [52] = {.lex_state = 28},
+ [53] = {.lex_state = 28},
+ [54] = {.lex_state = 27},
+ [55] = {.lex_state = 27},
+ [56] = {.lex_state = 27},
+ [57] = {.lex_state = 27},
+ [58] = {.lex_state = 28},
+ [59] = {.lex_state = 32},
+ [60] = {.lex_state = 27},
+ [61] = {.lex_state = 27},
+ [62] = {.lex_state = 29},
+ [63] = {.lex_state = 29},
};
static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
@@ -497,487 +634,765 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
[sym_class_shorthand] = ACTIONS(1),
[sym_id_shorthand] = ACTIONS(1),
[sym_attribute_value] = ACTIONS(1),
+ [sym__S] = ACTIONS(3),
},
[1] = {
- [sym_source_file] = STATE(44),
- [sym_node] = STATE(15),
- [aux_sym_source_file_repeat1] = STATE(15),
- [ts_builtin_sym_end] = ACTIONS(3),
- [anon_sym_GT] = ACTIONS(5),
- [sym_node_name] = ACTIONS(7),
+ [sym_source_file] = STATE(59),
+ [sym_node] = STATE(21),
+ [aux_sym_source_file_repeat1] = STATE(21),
+ [ts_builtin_sym_end] = ACTIONS(5),
+ [anon_sym_GT] = ACTIONS(7),
+ [sym_node_name] = ACTIONS(9),
+ [sym__S] = ACTIONS(3),
},
};
static const uint16_t ts_small_parse_table[] = {
- [0] = 7,
- ACTIONS(5), 1,
+ [0] = 8,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(11), 1,
anon_sym_GT,
- ACTIONS(7), 1,
- sym_node_name,
- ACTIONS(9), 1,
+ ACTIONS(13), 1,
anon_sym_RBRACE,
- STATE(41), 1,
+ ACTIONS(15), 1,
+ sym_node_name,
+ STATE(43), 1,
sym_text_node,
- STATE(42), 1,
+ STATE(52), 1,
sym_node_body,
- ACTIONS(11), 2,
+ ACTIONS(17), 2,
anon_sym_DASH,
anon_sym_EQ,
- STATE(17), 2,
+ STATE(22), 2,
sym_node,
aux_sym_source_file_repeat1,
- [24] = 7,
- ACTIONS(5), 1,
+ [27] = 8,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(11), 1,
anon_sym_GT,
- ACTIONS(7), 1,
+ ACTIONS(15), 1,
sym_node_name,
- ACTIONS(13), 1,
+ ACTIONS(19), 1,
anon_sym_RBRACE,
- STATE(41), 1,
- sym_text_node,
STATE(43), 1,
+ sym_text_node,
+ STATE(44), 1,
sym_node_body,
- ACTIONS(11), 2,
+ ACTIONS(17), 2,
anon_sym_DASH,
anon_sym_EQ,
- STATE(17), 2,
+ STATE(22), 2,
sym_node,
aux_sym_source_file_repeat1,
- [48] = 7,
- ACTIONS(5), 1,
+ [54] = 8,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(11), 1,
anon_sym_GT,
- ACTIONS(7), 1,
- sym_node_name,
ACTIONS(15), 1,
+ sym_node_name,
+ ACTIONS(21), 1,
anon_sym_RBRACE,
- STATE(40), 1,
- sym_node_body,
- STATE(41), 1,
+ STATE(43), 1,
sym_text_node,
- ACTIONS(11), 2,
+ STATE(45), 1,
+ sym_node_body,
+ ACTIONS(17), 2,
anon_sym_DASH,
anon_sym_EQ,
- STATE(17), 2,
+ STATE(22), 2,
sym_node,
aux_sym_source_file_repeat1,
- [72] = 7,
- ACTIONS(5), 1,
+ [81] = 8,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(11), 1,
anon_sym_GT,
- ACTIONS(7), 1,
+ ACTIONS(15), 1,
sym_node_name,
- ACTIONS(17), 1,
+ ACTIONS(23), 1,
anon_sym_RBRACE,
- STATE(39), 1,
+ STATE(43), 1,
+ sym_text_node,
+ STATE(47), 1,
sym_node_body,
- STATE(41), 1,
+ ACTIONS(17), 2,
+ anon_sym_DASH,
+ anon_sym_EQ,
+ STATE(22), 2,
+ sym_node,
+ aux_sym_source_file_repeat1,
+ [108] = 8,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(11), 1,
+ anon_sym_GT,
+ ACTIONS(15), 1,
+ sym_node_name,
+ ACTIONS(25), 1,
+ anon_sym_RBRACE,
+ STATE(43), 1,
sym_text_node,
- ACTIONS(11), 2,
+ STATE(58), 1,
+ sym_node_body,
+ ACTIONS(17), 2,
anon_sym_DASH,
anon_sym_EQ,
- STATE(17), 2,
+ STATE(22), 2,
sym_node,
aux_sym_source_file_repeat1,
- [96] = 7,
- ACTIONS(5), 1,
+ [135] = 8,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(11), 1,
anon_sym_GT,
- ACTIONS(7), 1,
+ ACTIONS(15), 1,
sym_node_name,
- ACTIONS(19), 1,
+ ACTIONS(27), 1,
anon_sym_RBRACE,
- STATE(33), 1,
+ STATE(43), 1,
+ sym_text_node,
+ STATE(48), 1,
sym_node_body,
- STATE(41), 1,
+ ACTIONS(17), 2,
+ anon_sym_DASH,
+ anon_sym_EQ,
+ STATE(22), 2,
+ sym_node,
+ aux_sym_source_file_repeat1,
+ [162] = 8,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(11), 1,
+ anon_sym_GT,
+ ACTIONS(15), 1,
+ sym_node_name,
+ ACTIONS(29), 1,
+ anon_sym_RBRACE,
+ STATE(43), 1,
sym_text_node,
- ACTIONS(11), 2,
+ STATE(50), 1,
+ sym_node_body,
+ ACTIONS(17), 2,
anon_sym_DASH,
anon_sym_EQ,
- STATE(17), 2,
+ STATE(22), 2,
sym_node,
aux_sym_source_file_repeat1,
- [120] = 7,
- ACTIONS(5), 1,
+ [189] = 8,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(11), 1,
anon_sym_GT,
- ACTIONS(7), 1,
+ ACTIONS(15), 1,
sym_node_name,
- ACTIONS(21), 1,
+ ACTIONS(31), 1,
anon_sym_RBRACE,
- STATE(36), 1,
+ STATE(43), 1,
+ sym_text_node,
+ STATE(51), 1,
sym_node_body,
- STATE(41), 1,
+ ACTIONS(17), 2,
+ anon_sym_DASH,
+ anon_sym_EQ,
+ STATE(22), 2,
+ sym_node,
+ aux_sym_source_file_repeat1,
+ [216] = 8,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(11), 1,
+ anon_sym_GT,
+ ACTIONS(15), 1,
+ sym_node_name,
+ ACTIONS(33), 1,
+ anon_sym_RBRACE,
+ STATE(43), 1,
sym_text_node,
- ACTIONS(11), 2,
+ STATE(53), 1,
+ sym_node_body,
+ ACTIONS(17), 2,
anon_sym_DASH,
anon_sym_EQ,
- STATE(17), 2,
+ STATE(22), 2,
sym_node,
aux_sym_source_file_repeat1,
- [144] = 5,
- ACTIONS(23), 1,
+ [243] = 6,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(35), 1,
anon_sym_LBRACE,
- ACTIONS(27), 1,
+ ACTIONS(39), 1,
sym_attribute_name,
- STATE(46), 1,
+ STATE(54), 1,
sym_attribute_list,
- ACTIONS(25), 2,
+ ACTIONS(37), 2,
sym_class_shorthand,
sym_id_shorthand,
- STATE(14), 2,
+ STATE(17), 2,
sym_attribute,
aux_sym_attribute_list_repeat1,
- [162] = 5,
- ACTIONS(27), 1,
+ [264] = 6,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(39), 1,
sym_attribute_name,
- ACTIONS(29), 1,
+ ACTIONS(41), 1,
anon_sym_LBRACE,
- STATE(37), 1,
+ STATE(61), 1,
sym_attribute_list,
- ACTIONS(25), 2,
+ ACTIONS(37), 2,
sym_class_shorthand,
sym_id_shorthand,
- STATE(14), 2,
+ STATE(17), 2,
sym_attribute,
aux_sym_attribute_list_repeat1,
- [180] = 5,
- ACTIONS(27), 1,
+ [285] = 6,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(39), 1,
sym_attribute_name,
- ACTIONS(31), 1,
+ ACTIONS(43), 1,
anon_sym_LBRACE,
- STATE(45), 1,
+ STATE(56), 1,
sym_attribute_list,
- ACTIONS(25), 2,
+ ACTIONS(37), 2,
sym_class_shorthand,
sym_id_shorthand,
- STATE(14), 2,
+ STATE(17), 2,
sym_attribute,
aux_sym_attribute_list_repeat1,
- [198] = 5,
- ACTIONS(27), 1,
+ [306] = 6,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(39), 1,
sym_attribute_name,
- ACTIONS(33), 1,
+ ACTIONS(45), 1,
anon_sym_LBRACE,
- STATE(34), 1,
+ STATE(57), 1,
sym_attribute_list,
- ACTIONS(25), 2,
+ ACTIONS(37), 2,
sym_class_shorthand,
sym_id_shorthand,
- STATE(14), 2,
+ STATE(17), 2,
sym_attribute,
aux_sym_attribute_list_repeat1,
- [216] = 4,
- ACTIONS(37), 1,
- anon_sym_GT,
- ACTIONS(40), 1,
- sym_node_name,
- ACTIONS(35), 2,
- ts_builtin_sym_end,
- anon_sym_RBRACE,
- STATE(12), 2,
- sym_node,
- aux_sym_source_file_repeat1,
- [231] = 4,
- ACTIONS(43), 1,
+ [327] = 6,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(39), 1,
+ sym_attribute_name,
+ ACTIONS(47), 1,
anon_sym_LBRACE,
- ACTIONS(48), 1,
+ STATE(60), 1,
+ sym_attribute_list,
+ ACTIONS(37), 2,
+ sym_class_shorthand,
+ sym_id_shorthand,
+ STATE(17), 2,
+ sym_attribute,
+ aux_sym_attribute_list_repeat1,
+ [348] = 6,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(39), 1,
sym_attribute_name,
- ACTIONS(45), 2,
+ ACTIONS(49), 1,
+ anon_sym_LBRACE,
+ STATE(55), 1,
+ sym_attribute_list,
+ ACTIONS(37), 2,
sym_class_shorthand,
sym_id_shorthand,
- STATE(13), 2,
+ STATE(17), 2,
sym_attribute,
aux_sym_attribute_list_repeat1,
- [246] = 4,
- ACTIONS(27), 1,
+ [369] = 5,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(39), 1,
sym_attribute_name,
ACTIONS(51), 1,
anon_sym_LBRACE,
- ACTIONS(25), 2,
+ ACTIONS(37), 2,
sym_class_shorthand,
sym_id_shorthand,
- STATE(13), 2,
+ STATE(18), 2,
sym_attribute,
aux_sym_attribute_list_repeat1,
- [261] = 4,
- ACTIONS(5), 1,
- anon_sym_GT,
- ACTIONS(7), 1,
- sym_node_name,
+ [387] = 5,
+ ACTIONS(3), 1,
+ sym__S,
ACTIONS(53), 1,
+ anon_sym_LBRACE,
+ ACTIONS(58), 1,
+ sym_attribute_name,
+ ACTIONS(55), 2,
+ sym_class_shorthand,
+ sym_id_shorthand,
+ STATE(18), 2,
+ sym_attribute,
+ aux_sym_attribute_list_repeat1,
+ [405] = 5,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(61), 1,
ts_builtin_sym_end,
- STATE(12), 2,
+ ACTIONS(63), 1,
+ anon_sym_GT,
+ ACTIONS(66), 1,
+ sym_node_name,
+ STATE(19), 2,
sym_node,
aux_sym_source_file_repeat1,
- [275] = 2,
- ACTIONS(57), 1,
+ [422] = 3,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(71), 1,
anon_sym_EQ,
- ACTIONS(55), 4,
+ ACTIONS(69), 4,
anon_sym_LBRACE,
sym_class_shorthand,
sym_id_shorthand,
sym_attribute_name,
- [285] = 4,
- ACTIONS(5), 1,
- anon_sym_GT,
+ [435] = 5,
+ ACTIONS(3), 1,
+ sym__S,
ACTIONS(7), 1,
+ anon_sym_GT,
+ ACTIONS(9), 1,
sym_node_name,
- ACTIONS(59), 1,
- anon_sym_RBRACE,
- STATE(12), 2,
+ ACTIONS(73), 1,
+ ts_builtin_sym_end,
+ STATE(19), 2,
sym_node,
aux_sym_source_file_repeat1,
- [299] = 1,
- ACTIONS(61), 4,
- ts_builtin_sym_end,
+ [452] = 5,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(11), 1,
anon_sym_GT,
+ ACTIONS(15), 1,
+ sym_node_name,
+ ACTIONS(75), 1,
+ anon_sym_RBRACE,
+ STATE(23), 2,
+ sym_node,
+ aux_sym_source_file_repeat1,
+ [469] = 5,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(61), 1,
anon_sym_RBRACE,
+ ACTIONS(77), 1,
+ anon_sym_GT,
+ ACTIONS(80), 1,
sym_node_name,
- [306] = 4,
- ACTIONS(63), 1,
+ STATE(23), 2,
+ sym_node,
+ aux_sym_source_file_repeat1,
+ [486] = 5,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(83), 1,
anon_sym_RBRACE,
- ACTIONS(65), 1,
+ ACTIONS(85), 1,
anon_sym_AT,
- ACTIONS(67), 1,
+ ACTIONS(88), 1,
sym_literal_text,
- STATE(22), 1,
+ STATE(24), 1,
aux_sym_text_node_repeat1,
- [319] = 1,
- ACTIONS(55), 4,
- anon_sym_LBRACE,
- sym_class_shorthand,
- sym_id_shorthand,
- sym_attribute_name,
- [326] = 1,
- ACTIONS(69), 4,
- ts_builtin_sym_end,
- anon_sym_GT,
+ [502] = 5,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(91), 1,
anon_sym_RBRACE,
- sym_node_name,
- [333] = 4,
- ACTIONS(65), 1,
+ ACTIONS(93), 1,
anon_sym_AT,
- ACTIONS(71), 1,
+ ACTIONS(95), 1,
+ sym_literal_text,
+ STATE(26), 1,
+ aux_sym_text_node_repeat1,
+ [518] = 5,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(93), 1,
+ anon_sym_AT,
+ ACTIONS(97), 1,
anon_sym_RBRACE,
- ACTIONS(73), 1,
+ ACTIONS(99), 1,
sym_literal_text,
- STATE(25), 1,
+ STATE(24), 1,
aux_sym_text_node_repeat1,
- [346] = 1,
- ACTIONS(75), 4,
+ [534] = 2,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(101), 4,
+ anon_sym_LBRACE,
+ sym_class_shorthand,
+ sym_id_shorthand,
+ sym_attribute_name,
+ [544] = 2,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(69), 4,
anon_sym_LBRACE,
sym_class_shorthand,
sym_id_shorthand,
sym_attribute_name,
- [353] = 1,
- ACTIONS(77), 4,
+ [554] = 3,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(105), 1,
+ sym_node_name,
+ ACTIONS(103), 2,
ts_builtin_sym_end,
anon_sym_GT,
+ [565] = 2,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(83), 3,
anon_sym_RBRACE,
- sym_node_name,
- [360] = 4,
- ACTIONS(79), 1,
- anon_sym_RBRACE,
- ACTIONS(81), 1,
anon_sym_AT,
- ACTIONS(84), 1,
sym_literal_text,
- STATE(25), 1,
- aux_sym_text_node_repeat1,
- [373] = 1,
- ACTIONS(87), 4,
+ [574] = 4,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(107), 1,
+ anon_sym_GT,
+ ACTIONS(109), 1,
+ sym_node_name,
+ STATE(30), 1,
+ sym_node,
+ [587] = 3,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(113), 1,
+ sym_node_name,
+ ACTIONS(111), 2,
ts_builtin_sym_end,
anon_sym_GT,
+ [598] = 3,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(117), 1,
+ sym_node_name,
+ ACTIONS(115), 2,
+ ts_builtin_sym_end,
+ anon_sym_GT,
+ [609] = 3,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(105), 1,
+ sym_node_name,
+ ACTIONS(103), 2,
+ anon_sym_GT,
anon_sym_RBRACE,
+ [620] = 3,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(121), 1,
sym_node_name,
- [380] = 2,
- ACTIONS(61), 1,
- sym_literal_text,
- ACTIONS(89), 2,
+ ACTIONS(119), 2,
+ anon_sym_GT,
+ anon_sym_RBRACE,
+ [631] = 3,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(117), 1,
+ sym_node_name,
+ ACTIONS(115), 2,
+ anon_sym_GT,
+ anon_sym_RBRACE,
+ [642] = 3,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(113), 1,
+ sym_node_name,
+ ACTIONS(111), 2,
+ anon_sym_GT,
+ anon_sym_RBRACE,
+ [653] = 2,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(103), 3,
anon_sym_RBRACE,
anon_sym_AT,
- [388] = 2,
- ACTIONS(87), 1,
sym_literal_text,
- ACTIONS(91), 2,
+ [662] = 2,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(119), 3,
anon_sym_RBRACE,
anon_sym_AT,
- [396] = 2,
- ACTIONS(77), 1,
sym_literal_text,
- ACTIONS(93), 2,
+ [671] = 2,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(115), 3,
anon_sym_RBRACE,
anon_sym_AT,
- [404] = 2,
- ACTIONS(69), 1,
sym_literal_text,
- ACTIONS(95), 2,
+ [680] = 2,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(111), 3,
anon_sym_RBRACE,
anon_sym_AT,
- [412] = 3,
- ACTIONS(97), 1,
- anon_sym_GT,
- ACTIONS(99), 1,
- sym_node_name,
- STATE(32), 1,
- sym_node,
- [422] = 2,
- ACTIONS(101), 1,
sym_literal_text,
- ACTIONS(79), 2,
+ [689] = 3,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(121), 1,
+ sym_node_name,
+ ACTIONS(119), 2,
+ ts_builtin_sym_end,
+ anon_sym_GT,
+ [700] = 2,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(75), 1,
anon_sym_RBRACE,
- anon_sym_AT,
- [430] = 1,
- ACTIONS(103), 1,
+ [707] = 2,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(21), 1,
anon_sym_RBRACE,
- [434] = 1,
- ACTIONS(105), 1,
- anon_sym_LBRACE,
- [438] = 1,
- ACTIONS(107), 1,
- sym_node_name,
- [442] = 1,
- ACTIONS(19), 1,
+ [714] = 2,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(23), 1,
anon_sym_RBRACE,
- [446] = 1,
- ACTIONS(33), 1,
- anon_sym_LBRACE,
- [450] = 1,
- ACTIONS(109), 1,
+ [721] = 2,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(123), 1,
sym_attribute_value,
- [454] = 1,
- ACTIONS(15), 1,
+ [728] = 2,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(125), 1,
anon_sym_RBRACE,
- [458] = 1,
- ACTIONS(9), 1,
+ [735] = 2,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(13), 1,
anon_sym_RBRACE,
- [462] = 1,
- ACTIONS(59), 1,
+ [742] = 2,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(127), 1,
+ sym_node_name,
+ [749] = 2,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(31), 1,
anon_sym_RBRACE,
- [466] = 1,
- ACTIONS(111), 1,
+ [756] = 2,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(33), 1,
anon_sym_RBRACE,
- [470] = 1,
- ACTIONS(21), 1,
+ [763] = 2,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(25), 1,
anon_sym_RBRACE,
- [474] = 1,
- ACTIONS(113), 1,
+ [770] = 2,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(129), 1,
+ anon_sym_RBRACE,
+ [777] = 2,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(131), 1,
+ anon_sym_LBRACE,
+ [784] = 2,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(35), 1,
+ anon_sym_LBRACE,
+ [791] = 2,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(45), 1,
+ anon_sym_LBRACE,
+ [798] = 2,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(133), 1,
+ anon_sym_LBRACE,
+ [805] = 2,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(135), 1,
+ anon_sym_RBRACE,
+ [812] = 2,
+ ACTIONS(137), 1,
ts_builtin_sym_end,
- [478] = 1,
- ACTIONS(23), 1,
+ ACTIONS(139), 1,
+ sym__S,
+ [819] = 2,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(41), 1,
anon_sym_LBRACE,
- [482] = 1,
- ACTIONS(115), 1,
+ [826] = 2,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(141), 1,
anon_sym_LBRACE,
- [486] = 1,
- ACTIONS(117), 1,
+ [833] = 2,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(143), 1,
+ sym_node_name,
+ [840] = 2,
+ ACTIONS(3), 1,
+ sym__S,
+ ACTIONS(145), 1,
sym_node_name,
};
static const uint32_t ts_small_parse_table_map[] = {
[SMALL_STATE(2)] = 0,
- [SMALL_STATE(3)] = 24,
- [SMALL_STATE(4)] = 48,
- [SMALL_STATE(5)] = 72,
- [SMALL_STATE(6)] = 96,
- [SMALL_STATE(7)] = 120,
- [SMALL_STATE(8)] = 144,
- [SMALL_STATE(9)] = 162,
- [SMALL_STATE(10)] = 180,
- [SMALL_STATE(11)] = 198,
- [SMALL_STATE(12)] = 216,
- [SMALL_STATE(13)] = 231,
- [SMALL_STATE(14)] = 246,
- [SMALL_STATE(15)] = 261,
- [SMALL_STATE(16)] = 275,
- [SMALL_STATE(17)] = 285,
- [SMALL_STATE(18)] = 299,
- [SMALL_STATE(19)] = 306,
- [SMALL_STATE(20)] = 319,
- [SMALL_STATE(21)] = 326,
- [SMALL_STATE(22)] = 333,
- [SMALL_STATE(23)] = 346,
- [SMALL_STATE(24)] = 353,
- [SMALL_STATE(25)] = 360,
- [SMALL_STATE(26)] = 373,
- [SMALL_STATE(27)] = 380,
- [SMALL_STATE(28)] = 388,
- [SMALL_STATE(29)] = 396,
- [SMALL_STATE(30)] = 404,
- [SMALL_STATE(31)] = 412,
- [SMALL_STATE(32)] = 422,
- [SMALL_STATE(33)] = 430,
- [SMALL_STATE(34)] = 434,
- [SMALL_STATE(35)] = 438,
- [SMALL_STATE(36)] = 442,
- [SMALL_STATE(37)] = 446,
- [SMALL_STATE(38)] = 450,
- [SMALL_STATE(39)] = 454,
- [SMALL_STATE(40)] = 458,
- [SMALL_STATE(41)] = 462,
- [SMALL_STATE(42)] = 466,
- [SMALL_STATE(43)] = 470,
- [SMALL_STATE(44)] = 474,
- [SMALL_STATE(45)] = 478,
- [SMALL_STATE(46)] = 482,
- [SMALL_STATE(47)] = 486,
+ [SMALL_STATE(3)] = 27,
+ [SMALL_STATE(4)] = 54,
+ [SMALL_STATE(5)] = 81,
+ [SMALL_STATE(6)] = 108,
+ [SMALL_STATE(7)] = 135,
+ [SMALL_STATE(8)] = 162,
+ [SMALL_STATE(9)] = 189,
+ [SMALL_STATE(10)] = 216,
+ [SMALL_STATE(11)] = 243,
+ [SMALL_STATE(12)] = 264,
+ [SMALL_STATE(13)] = 285,
+ [SMALL_STATE(14)] = 306,
+ [SMALL_STATE(15)] = 327,
+ [SMALL_STATE(16)] = 348,
+ [SMALL_STATE(17)] = 369,
+ [SMALL_STATE(18)] = 387,
+ [SMALL_STATE(19)] = 405,
+ [SMALL_STATE(20)] = 422,
+ [SMALL_STATE(21)] = 435,
+ [SMALL_STATE(22)] = 452,
+ [SMALL_STATE(23)] = 469,
+ [SMALL_STATE(24)] = 486,
+ [SMALL_STATE(25)] = 502,
+ [SMALL_STATE(26)] = 518,
+ [SMALL_STATE(27)] = 534,
+ [SMALL_STATE(28)] = 544,
+ [SMALL_STATE(29)] = 554,
+ [SMALL_STATE(30)] = 565,
+ [SMALL_STATE(31)] = 574,
+ [SMALL_STATE(32)] = 587,
+ [SMALL_STATE(33)] = 598,
+ [SMALL_STATE(34)] = 609,
+ [SMALL_STATE(35)] = 620,
+ [SMALL_STATE(36)] = 631,
+ [SMALL_STATE(37)] = 642,
+ [SMALL_STATE(38)] = 653,
+ [SMALL_STATE(39)] = 662,
+ [SMALL_STATE(40)] = 671,
+ [SMALL_STATE(41)] = 680,
+ [SMALL_STATE(42)] = 689,
+ [SMALL_STATE(43)] = 700,
+ [SMALL_STATE(44)] = 707,
+ [SMALL_STATE(45)] = 714,
+ [SMALL_STATE(46)] = 721,
+ [SMALL_STATE(47)] = 728,
+ [SMALL_STATE(48)] = 735,
+ [SMALL_STATE(49)] = 742,
+ [SMALL_STATE(50)] = 749,
+ [SMALL_STATE(51)] = 756,
+ [SMALL_STATE(52)] = 763,
+ [SMALL_STATE(53)] = 770,
+ [SMALL_STATE(54)] = 777,
+ [SMALL_STATE(55)] = 784,
+ [SMALL_STATE(56)] = 791,
+ [SMALL_STATE(57)] = 798,
+ [SMALL_STATE(58)] = 805,
+ [SMALL_STATE(59)] = 812,
+ [SMALL_STATE(60)] = 819,
+ [SMALL_STATE(61)] = 826,
+ [SMALL_STATE(62)] = 833,
+ [SMALL_STATE(63)] = 840,
};
static const TSParseActionEntry ts_parse_actions[] = {
[0] = {.entry = {.count = 0, .reusable = false}},
[1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(),
- [3] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 0),
- [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35),
- [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9),
- [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29),
- [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19),
- [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18),
- [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30),
- [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27),
- [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24),
- [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21),
- [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4),
- [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20),
- [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16),
- [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3),
- [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5),
- [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7),
- [35] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2),
- [37] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(35),
- [40] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(9),
- [43] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_attribute_list_repeat1, 2),
- [45] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attribute_list_repeat1, 2), SHIFT_REPEAT(20),
- [48] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attribute_list_repeat1, 2), SHIFT_REPEAT(16),
+ [3] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(),
+ [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 0),
+ [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49),
+ [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(16),
+ [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62),
+ [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42),
+ [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(13),
+ [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25),
+ [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34),
+ [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35),
+ [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36),
+ [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33),
+ [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29),
+ [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38),
+ [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39),
+ [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40),
+ [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2),
+ [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28),
+ [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20),
+ [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9),
+ [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3),
+ [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4),
+ [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8),
+ [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7),
[51] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute_list, 1),
- [53] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1),
- [55] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 1),
- [57] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38),
- [59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_node_body, 1),
- [61] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_node, 3),
- [63] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_text_node, 1),
- [65] = {.entry = {.count = 1, .reusable = false}}, SHIFT(31),
- [67] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22),
- [69] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_node, 4),
- [71] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_text_node, 2),
- [73] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25),
- [75] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 3),
- [77] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_node, 5),
- [79] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_text_node_repeat1, 2),
- [81] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_text_node_repeat1, 2), SHIFT_REPEAT(31),
- [84] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_text_node_repeat1, 2), SHIFT_REPEAT(25),
- [87] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_node, 6),
- [89] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_node, 3),
- [91] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_node, 6),
- [93] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_node, 5),
- [95] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_node, 4),
- [97] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47),
- [99] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10),
- [101] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_text_node_repeat1, 2),
- [103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26),
- [105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6),
- [107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11),
- [109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23),
- [111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28),
- [113] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(),
- [115] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2),
- [117] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8),
+ [53] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_attribute_list_repeat1, 2),
+ [55] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attribute_list_repeat1, 2), SHIFT_REPEAT(28),
+ [58] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attribute_list_repeat1, 2), SHIFT_REPEAT(20),
+ [61] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2),
+ [63] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(49),
+ [66] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(16),
+ [69] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 1),
+ [71] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46),
+ [73] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1),
+ [75] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_node_body, 1),
+ [77] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(62),
+ [80] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(13),
+ [83] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_text_node_repeat1, 2),
+ [85] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_text_node_repeat1, 2), SHIFT_REPEAT(31),
+ [88] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_text_node_repeat1, 2), SHIFT_REPEAT(24),
+ [91] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_text_node, 1),
+ [93] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31),
+ [95] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26),
+ [97] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_text_node, 2),
+ [99] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24),
+ [101] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 3),
+ [103] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_node, 3),
+ [105] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_node, 3),
+ [107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63),
+ [109] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15),
+ [111] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_node, 6),
+ [113] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_node, 6),
+ [115] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_node, 5),
+ [117] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_node, 5),
+ [119] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_node, 4),
+ [121] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_node, 4),
+ [123] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27),
+ [125] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37),
+ [127] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11),
+ [129] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41),
+ [131] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6),
+ [133] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5),
+ [135] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32),
+ [137] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(),
+ [139] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(),
+ [141] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10),
+ [143] = {.entry = {.count = 1, .reusable = false}}, SHIFT(14),
+ [145] = {.entry = {.count = 1, .reusable = false}}, SHIFT(12),
};
#ifdef __cplusplus