From 642d5264e0d7b3d3870d13c2cc4a04987ee65ab6 Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Sat, 14 Sep 2024 21:52:11 +0200 Subject: Completely overhaul the grammar --- .exrc | 1 + example | 38 + grammar.js | 70 +- src/grammar.json | 339 ++++----- src/node-types.json | 103 +-- src/parser.c | 1972 +++++++++++++++++++++------------------------------ 6 files changed, 1037 insertions(+), 1486 deletions(-) create mode 100644 .exrc create mode 100644 example diff --git a/.exrc b/.exrc new file mode 100644 index 0000000..ac22d37 --- /dev/null +++ b/.exrc @@ -0,0 +1 @@ +let g:editorconfig = v:false diff --git a/example b/example new file mode 100644 index 0000000..cd38ff8 --- /dev/null +++ b/example @@ -0,0 +1,38 @@ +html lang="en" { + head { + meta charset="UTF-8" {} + meta + name="viewport" + content="width=device-width, initial-scale=1.0" + {} + link href="/favicon.svg" rel="shortcut icon" type="image/svg" {} + link href="/style.svg" rel="stylesheet" {} + title {-My Website Title} + } + + body { + p #my-id  {= This is a paragraph with the id ‘my-id’ } + p .my-cls {= This is a paragraph with the class ‘my-cls’ } + + / div { + p {- This entire div is commented out. } + p {- Isn’t that neat? } + } + + p + #some-id + .class-1 + .class-2 + key-1="value-1" + key-2 = "value-2" + {- + This paragraph has an ID, two classes, and two additional + attributes. GSP allows us to use the ‘#ident’ and ‘.ident’ + syntaxes as shorthands for applying IDs, and classes. This + is a text node, so nothing is being interpreted as GSP nodes, + but we can include them inline if we want. As an example, + here is some @em {-emphatic} text. Your inline nodes can + also have attributes @em #id {-just like a regular node}. + } + } +} diff --git a/grammar.js b/grammar.js index 0f13c6b..a18091c 100644 --- a/grammar.js +++ b/grammar.js @@ -1,60 +1,38 @@ +const IDENT = /\p{XID_Start}[-\p{XID_Continue}]*/u + module.exports = grammar({ name: 'gsp', - extras: $ => [$._S], + extras: $ => [/\p{Pattern_White_Space}+/u], rules: { - source_file: $ => repeat(choice($.comment, $.node)), + document: $ => repeat($._toplevel), + _toplevel: $ => choice($.comment, $.node), - comment: $ => seq( - '/', - optional($.node_name), - optional($.attribute_list), - '{', - optional($.node_body), - '}', - ), + comment: $ => seq('/', $.node), + node: $ => seq($.node_name, optional($.attrs), $.node_body), - node: $ => seq( - optional('>'), - $.node_name, - optional($.attribute_list), + node_name: $ => IDENT, + node_body: $ => seq( '{', - optional($.node_body), - '}', - ), - - node_body: $ => choice( - repeat1(choice($.comment, $.node)), - seq(choice('-', '='), optional($.text)), - ), - - node_name: $ => /[a-zA-Z:_\u{000C0}-\u{000D6}\u{000D8}-\u{000F6}\u{000F8}-\u{002FF}\u{00370}-\u{0037D}\u{0037F}-\u{01FFF}\u{0200C}-\u{0200D}\u{02070}-\u{0218F}\u{02C00}-\u{02FEF}\u{03001}-\u{0D7FF}\u{0F900}-\u{0FDCF}\u{0FDF0}-\u{0FFFD}\u{10000}-\u{EFFFF}][a-zA-Z0-9:_\-.·\u{00300}-\u{0036F}\u{0203F}-\u{02040}\u{000C0}-\u{000D6}\u{000D8}-\u{000F6}\u{000F8}-\u{002FF}\u{00370}-\u{0037D}\u{0037F}-\u{01FFF}\u{0200C}-\u{0200D}\u{02070}-\u{0218F}\u{02C00}-\u{02FEF}\u{03001}-\u{0D7FF}\u{0F900}-\u{0FDCF}\u{0FDF0}-\u{0FFFD}\u{10000}-\u{EFFFF}]*/u, - - text: $ => repeat1( choice( - $.literal_text, - seq('@', choice($.comment, $.node)), - ), - ), - - literal_text: $ => /(\\[@}\\]|[^@}\\])+/, - - attribute_list: $ => repeat1($.attribute), - - attribute: $ => choice( - $.class_shorthand, - $.id_shorthand, - seq( - $.attribute_name, - optional(seq('=', $.attribute_value)), + repeat($._toplevel), + seq(choice('-', '='), optional($.text)), ), + '}', ), - class_shorthand: $ => /\.\P{White_Space}+/u, - id_shorthand: $ => /#\P{White_Space}+/u, + attrs: $ => repeat1(choice( + $.attr, + $.id_attr, + $.class_attr, + )), - attribute_name: $ => /[a-zA-Z0-9_-]+/, - attribute_value: $ => /"(\\.|[^"\\])*"/, + attr: $ => seq(IDENT, '=', /"(\\["\\]|[^"\\])+"/), + id_attr: $ => seq('#', token.immediate(IDENT)), + class_attr: $ => seq('.', token.immediate(IDENT)), - _S: $ => /\p{White_Space}+/u, + text: $ => repeat1(choice( + /(\\[@}\\]|[^@}\\])+/, + seq('@', $._toplevel), + )), }, }) diff --git a/src/grammar.json b/src/grammar.json index ad8dfcb..060f61c 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -1,22 +1,26 @@ { "name": "gsp", "rules": { - "source_file": { + "document": { "type": "REPEAT", "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "comment" - }, - { - "type": "SYMBOL", - "name": "node" - } - ] + "type": "SYMBOL", + "name": "_toplevel" } }, + "_toplevel": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "comment" + }, + { + "type": "SYMBOL", + "name": "node" + } + ] + }, "comment": { "type": "SEQ", "members": [ @@ -25,29 +29,44 @@ "value": "/" }, { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "node_name" - }, - { - "type": "BLANK" - } - ] + "type": "SYMBOL", + "name": "node" + } + ] + }, + "node": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "node_name" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", - "name": "attribute_list" + "name": "attrs" }, { "type": "BLANK" } ] }, + { + "type": "SYMBOL", + "name": "node_body" + } + ] + }, + "node_name": { + "type": "PATTERN", + "value": "\\p{XID_Start}[-\\p{XID_Continue}]*", + "flags": "u" + }, + "node_body": { + "type": "SEQ", + "members": [ { "type": "STRING", "value": "{" @@ -56,11 +75,41 @@ "type": "CHOICE", "members": [ { - "type": "SYMBOL", - "name": "node_body" + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "_toplevel" + } }, { - "type": "BLANK" + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "-" + }, + { + "type": "STRING", + "value": "=" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "text" + }, + { + "type": "BLANK" + } + ] + } + ] } ] }, @@ -70,123 +119,86 @@ } ] }, - "node": { + "attrs": { + "type": "REPEAT1", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "attr" + }, + { + "type": "SYMBOL", + "name": "id_attr" + }, + { + "type": "SYMBOL", + "name": "class_attr" + } + ] + } + }, + "attr": { "type": "SEQ", "members": [ { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": ">" - }, - { - "type": "BLANK" - } - ] + "type": "PATTERN", + "value": "\\p{XID_Start}[-\\p{XID_Continue}]*", + "flags": "u" }, { - "type": "SYMBOL", - "name": "node_name" + "type": "STRING", + "value": "=" }, { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "attribute_list" - }, - { - "type": "BLANK" - } - ] - }, + "type": "PATTERN", + "value": "\"(\\\\[\"\\\\]|[^\"\\\\])+\"" + } + ] + }, + "id_attr": { + "type": "SEQ", + "members": [ { "type": "STRING", - "value": "{" + "value": "#" }, { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "node_body" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "STRING", - "value": "}" + "type": "IMMEDIATE_TOKEN", + "content": { + "type": "PATTERN", + "value": "\\p{XID_Start}[-\\p{XID_Continue}]*", + "flags": "u" + } } ] }, - "node_body": { - "type": "CHOICE", + "class_attr": { + "type": "SEQ", "members": [ { - "type": "REPEAT1", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "comment" - }, - { - "type": "SYMBOL", - "name": "node" - } - ] - } + "type": "STRING", + "value": "." }, { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "-" - }, - { - "type": "STRING", - "value": "=" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "text" - }, - { - "type": "BLANK" - } - ] - } - ] + "type": "IMMEDIATE_TOKEN", + "content": { + "type": "PATTERN", + "value": "\\p{XID_Start}[-\\p{XID_Continue}]*", + "flags": "u" + } } ] }, - "node_name": { - "type": "PATTERN", - "value": "[a-zA-Z:_\\u{000C0}-\\u{000D6}\\u{000D8}-\\u{000F6}\\u{000F8}-\\u{002FF}\\u{00370}-\\u{0037D}\\u{0037F}-\\u{01FFF}\\u{0200C}-\\u{0200D}\\u{02070}-\\u{0218F}\\u{02C00}-\\u{02FEF}\\u{03001}-\\u{0D7FF}\\u{0F900}-\\u{0FDCF}\\u{0FDF0}-\\u{0FFFD}\\u{10000}-\\u{EFFFF}][a-zA-Z0-9:_\\-.·\\u{00300}-\\u{0036F}\\u{0203F}-\\u{02040}\\u{000C0}-\\u{000D6}\\u{000D8}-\\u{000F6}\\u{000F8}-\\u{002FF}\\u{00370}-\\u{0037D}\\u{0037F}-\\u{01FFF}\\u{0200C}-\\u{0200D}\\u{02070}-\\u{0218F}\\u{02C00}-\\u{02FEF}\\u{03001}-\\u{0D7FF}\\u{0F900}-\\u{0FDCF}\\u{0FDF0}-\\u{0FFFD}\\u{10000}-\\u{EFFFF}]*", - "flags": "u" - }, "text": { "type": "REPEAT1", "content": { "type": "CHOICE", "members": [ { - "type": "SYMBOL", - "name": "literal_text" + "type": "PATTERN", + "value": "(\\\\[@}\\\\]|[^@}\\\\])+" }, { "type": "SEQ", @@ -196,105 +208,20 @@ "value": "@" }, { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "comment" - }, - { - "type": "SYMBOL", - "name": "node" - } - ] + "type": "SYMBOL", + "name": "_toplevel" } ] } ] } - }, - "literal_text": { - "type": "PATTERN", - "value": "(\\\\[@}\\\\]|[^@}\\\\])+" - }, - "attribute_list": { - "type": "REPEAT1", - "content": { - "type": "SYMBOL", - "name": "attribute" - } - }, - "attribute": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "class_shorthand" - }, - { - "type": "SYMBOL", - "name": "id_shorthand" - }, - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "attribute_name" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "=" - }, - { - "type": "SYMBOL", - "name": "attribute_value" - } - ] - }, - { - "type": "BLANK" - } - ] - } - ] - } - ] - }, - "class_shorthand": { - "type": "PATTERN", - "value": "\\.\\P{White_Space}+", - "flags": "u" - }, - "id_shorthand": { - "type": "PATTERN", - "value": "#\\P{White_Space}+", - "flags": "u" - }, - "attribute_name": { - "type": "PATTERN", - "value": "[a-zA-Z0-9_-]+" - }, - "attribute_value": { - "type": "PATTERN", - "value": "\"(\\\\.|[^\"\\\\])*\"" - }, - "_S": { - "type": "PATTERN", - "value": "\\p{White_Space}+", - "flags": "u" } }, "extras": [ { - "type": "SYMBOL", - "name": "_S" + "type": "PATTERN", + "value": "\\p{Pattern_White_Space}+", + "flags": "u" } ], "conflicts": [], diff --git a/src/node-types.json b/src/node-types.json index ebd7712..0c5aa23 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -1,6 +1,11 @@ [ { - "type": "attribute", + "type": "attr", + "named": true, + "fields": {} + }, + { + "type": "attrs", "named": true, "fields": {}, "children": { @@ -8,41 +13,42 @@ "required": true, "types": [ { - "type": "attribute_name", - "named": true - }, - { - "type": "attribute_value", + "type": "attr", "named": true }, { - "type": "class_shorthand", + "type": "class_attr", "named": true }, { - "type": "id_shorthand", + "type": "id_attr", "named": true } ] } }, { - "type": "attribute_list", + "type": "class_attr", + "named": true, + "fields": {} + }, + { + "type": "comment", "named": true, "fields": {}, "children": { - "multiple": true, + "multiple": false, "required": true, "types": [ { - "type": "attribute", + "type": "node", "named": true } ] } }, { - "type": "comment", + "type": "document", "named": true, "fields": {}, "children": { @@ -50,20 +56,21 @@ "required": false, "types": [ { - "type": "attribute_list", - "named": true - }, - { - "type": "node_body", + "type": "comment", "named": true }, { - "type": "node_name", + "type": "node", "named": true } ] } }, + { + "type": "id_attr", + "named": true, + "fields": {} + }, { "type": "node", "named": true, @@ -73,7 +80,7 @@ "required": true, "types": [ { - "type": "attribute_list", + "type": "attrs", "named": true }, { @@ -111,23 +118,9 @@ } }, { - "type": "source_file", + "type": "node_name", "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "comment", - "named": true - }, - { - "type": "node", - "named": true - } - ] - } + "fields": {} }, { "type": "text", @@ -135,16 +128,12 @@ "fields": {}, "children": { "multiple": true, - "required": true, + "required": false, "types": [ { "type": "comment", "named": true }, - { - "type": "literal_text", - "named": true - }, { "type": "node", "named": true @@ -153,48 +142,28 @@ } }, { - "type": "-", + "type": "#", "named": false }, { - "type": "/", + "type": "-", "named": false }, { - "type": "=", + "type": ".", "named": false }, { - "type": ">", + "type": "/", "named": false }, { - "type": "@", + "type": "=", "named": false }, { - "type": "attribute_name", - "named": true - }, - { - "type": "attribute_value", - "named": true - }, - { - "type": "class_shorthand", - "named": true - }, - { - "type": "id_shorthand", - "named": true - }, - { - "type": "literal_text", - "named": true - }, - { - "type": "node_name", - "named": true + "type": "@", + "named": false }, { "type": "{", diff --git a/src/parser.c b/src/parser.c index 8de1730..a7e2b24 100644 --- a/src/parser.c +++ b/src/parser.c @@ -5,97 +5,103 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 76 +#define STATE_COUNT 45 #define LARGE_STATE_COUNT 2 -#define SYMBOL_COUNT 25 +#define SYMBOL_COUNT 27 #define ALIAS_COUNT 0 -#define TOKEN_COUNT 15 +#define TOKEN_COUNT 13 #define EXTERNAL_TOKEN_COUNT 0 #define FIELD_COUNT 0 -#define MAX_ALIAS_SEQUENCE_LENGTH 6 +#define MAX_ALIAS_SEQUENCE_LENGTH 4 #define PRODUCTION_ID_COUNT 1 enum ts_symbol_identifiers { anon_sym_SLASH = 1, - anon_sym_LBRACE = 2, - anon_sym_RBRACE = 3, - anon_sym_GT = 4, - anon_sym_DASH = 5, - anon_sym_EQ = 6, - sym_node_name = 7, - anon_sym_AT = 8, - sym_literal_text = 9, - sym_class_shorthand = 10, - sym_id_shorthand = 11, - sym_attribute_name = 12, - sym_attribute_value = 13, - sym__S = 14, - sym_source_file = 15, - sym_comment = 16, - sym_node = 17, + aux_sym_node_name_token1 = 2, + anon_sym_LBRACE = 3, + anon_sym_DASH = 4, + anon_sym_EQ = 5, + anon_sym_RBRACE = 6, + aux_sym_attr_token1 = 7, + anon_sym_POUND = 8, + aux_sym_id_attr_token1 = 9, + anon_sym_DOT = 10, + aux_sym_text_token1 = 11, + anon_sym_AT = 12, + sym_document = 13, + sym__toplevel = 14, + sym_comment = 15, + sym_node = 16, + sym_node_name = 17, sym_node_body = 18, - sym_text = 19, - sym_attribute_list = 20, - sym_attribute = 21, - aux_sym_source_file_repeat1 = 22, - aux_sym_text_repeat1 = 23, - aux_sym_attribute_list_repeat1 = 24, + sym_attrs = 19, + sym_attr = 20, + sym_id_attr = 21, + sym_class_attr = 22, + sym_text = 23, + aux_sym_document_repeat1 = 24, + aux_sym_attrs_repeat1 = 25, + aux_sym_text_repeat1 = 26, }; static const char * const ts_symbol_names[] = { [ts_builtin_sym_end] = "end", [anon_sym_SLASH] = "/", + [aux_sym_node_name_token1] = "node_name_token1", [anon_sym_LBRACE] = "{", - [anon_sym_RBRACE] = "}", - [anon_sym_GT] = ">", [anon_sym_DASH] = "-", [anon_sym_EQ] = "=", - [sym_node_name] = "node_name", + [anon_sym_RBRACE] = "}", + [aux_sym_attr_token1] = "attr_token1", + [anon_sym_POUND] = "#", + [aux_sym_id_attr_token1] = "id_attr_token1", + [anon_sym_DOT] = ".", + [aux_sym_text_token1] = "text_token1", [anon_sym_AT] = "@", - [sym_literal_text] = "literal_text", - [sym_class_shorthand] = "class_shorthand", - [sym_id_shorthand] = "id_shorthand", - [sym_attribute_name] = "attribute_name", - [sym_attribute_value] = "attribute_value", - [sym__S] = "_S", - [sym_source_file] = "source_file", + [sym_document] = "document", + [sym__toplevel] = "_toplevel", [sym_comment] = "comment", [sym_node] = "node", + [sym_node_name] = "node_name", [sym_node_body] = "node_body", + [sym_attrs] = "attrs", + [sym_attr] = "attr", + [sym_id_attr] = "id_attr", + [sym_class_attr] = "class_attr", [sym_text] = "text", - [sym_attribute_list] = "attribute_list", - [sym_attribute] = "attribute", - [aux_sym_source_file_repeat1] = "source_file_repeat1", + [aux_sym_document_repeat1] = "document_repeat1", + [aux_sym_attrs_repeat1] = "attrs_repeat1", [aux_sym_text_repeat1] = "text_repeat1", - [aux_sym_attribute_list_repeat1] = "attribute_list_repeat1", }; static const TSSymbol ts_symbol_map[] = { [ts_builtin_sym_end] = ts_builtin_sym_end, [anon_sym_SLASH] = anon_sym_SLASH, + [aux_sym_node_name_token1] = aux_sym_node_name_token1, [anon_sym_LBRACE] = anon_sym_LBRACE, - [anon_sym_RBRACE] = anon_sym_RBRACE, - [anon_sym_GT] = anon_sym_GT, [anon_sym_DASH] = anon_sym_DASH, [anon_sym_EQ] = anon_sym_EQ, - [sym_node_name] = sym_node_name, + [anon_sym_RBRACE] = anon_sym_RBRACE, + [aux_sym_attr_token1] = aux_sym_attr_token1, + [anon_sym_POUND] = anon_sym_POUND, + [aux_sym_id_attr_token1] = aux_sym_id_attr_token1, + [anon_sym_DOT] = anon_sym_DOT, + [aux_sym_text_token1] = aux_sym_text_token1, [anon_sym_AT] = anon_sym_AT, - [sym_literal_text] = sym_literal_text, - [sym_class_shorthand] = sym_class_shorthand, - [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_document] = sym_document, + [sym__toplevel] = sym__toplevel, [sym_comment] = sym_comment, [sym_node] = sym_node, + [sym_node_name] = sym_node_name, [sym_node_body] = sym_node_body, + [sym_attrs] = sym_attrs, + [sym_attr] = sym_attr, + [sym_id_attr] = sym_id_attr, + [sym_class_attr] = sym_class_attr, [sym_text] = sym_text, - [sym_attribute_list] = sym_attribute_list, - [sym_attribute] = sym_attribute, - [aux_sym_source_file_repeat1] = aux_sym_source_file_repeat1, + [aux_sym_document_repeat1] = aux_sym_document_repeat1, + [aux_sym_attrs_repeat1] = aux_sym_attrs_repeat1, [aux_sym_text_repeat1] = aux_sym_text_repeat1, - [aux_sym_attribute_list_repeat1] = aux_sym_attribute_list_repeat1, }; static const TSSymbolMetadata ts_symbol_metadata[] = { @@ -107,95 +113,103 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [aux_sym_node_name_token1] = { + .visible = false, + .named = false, + }, [anon_sym_LBRACE] = { .visible = true, .named = false, }, - [anon_sym_RBRACE] = { + [anon_sym_DASH] = { .visible = true, .named = false, }, - [anon_sym_GT] = { + [anon_sym_EQ] = { .visible = true, .named = false, }, - [anon_sym_DASH] = { + [anon_sym_RBRACE] = { .visible = true, .named = false, }, - [anon_sym_EQ] = { - .visible = true, + [aux_sym_attr_token1] = { + .visible = false, .named = false, }, - [sym_node_name] = { + [anon_sym_POUND] = { .visible = true, - .named = true, + .named = false, }, - [anon_sym_AT] = { - .visible = true, + [aux_sym_id_attr_token1] = { + .visible = false, .named = false, }, - [sym_literal_text] = { + [anon_sym_DOT] = { .visible = true, - .named = true, + .named = false, }, - [sym_class_shorthand] = { + [aux_sym_text_token1] = { + .visible = false, + .named = false, + }, + [anon_sym_AT] = { .visible = true, - .named = true, + .named = false, }, - [sym_id_shorthand] = { + [sym_document] = { .visible = true, .named = true, }, - [sym_attribute_name] = { - .visible = true, + [sym__toplevel] = { + .visible = false, .named = true, }, - [sym_attribute_value] = { + [sym_comment] = { .visible = true, .named = true, }, - [sym__S] = { - .visible = false, + [sym_node] = { + .visible = true, .named = true, }, - [sym_source_file] = { + [sym_node_name] = { .visible = true, .named = true, }, - [sym_comment] = { + [sym_node_body] = { .visible = true, .named = true, }, - [sym_node] = { + [sym_attrs] = { .visible = true, .named = true, }, - [sym_node_body] = { + [sym_attr] = { .visible = true, .named = true, }, - [sym_text] = { + [sym_id_attr] = { .visible = true, .named = true, }, - [sym_attribute_list] = { + [sym_class_attr] = { .visible = true, .named = true, }, - [sym_attribute] = { + [sym_text] = { .visible = true, .named = true, }, - [aux_sym_source_file_repeat1] = { + [aux_sym_document_repeat1] = { .visible = false, .named = false, }, - [aux_sym_text_repeat1] = { + [aux_sym_attrs_repeat1] = { .visible = false, .named = false, }, - [aux_sym_attribute_list_repeat1] = { + [aux_sym_text_repeat1] = { .visible = false, .named = false, }, @@ -214,99 +228,235 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [1] = 1, [2] = 2, [3] = 3, - [4] = 2, - [5] = 5, + [4] = 3, + [5] = 2, [6] = 6, - [7] = 5, + [7] = 7, [8] = 8, [9] = 9, - [10] = 3, - [11] = 9, - [12] = 8, - [13] = 6, - [14] = 14, - [15] = 14, + [10] = 7, + [11] = 11, + [12] = 12, + [13] = 13, + [14] = 13, + [15] = 15, [16] = 16, [17] = 17, [18] = 18, - [19] = 18, + [19] = 19, [20] = 20, [21] = 21, [22] = 22, - [23] = 22, - [24] = 21, + [23] = 23, + [24] = 24, [25] = 25, [26] = 26, - [27] = 27, + [27] = 15, [28] = 28, [29] = 29, - [30] = 30, - [31] = 31, - [32] = 32, - [33] = 33, - [34] = 34, - [35] = 35, + [30] = 26, + [31] = 18, + [32] = 22, + [33] = 25, + [34] = 16, + [35] = 29, [36] = 36, - [37] = 37, + [37] = 36, [38] = 38, [39] = 39, [40] = 40, [41] = 41, - [42] = 35, - [43] = 37, - [44] = 44, - [45] = 36, - [46] = 28, - [47] = 32, - [48] = 34, - [49] = 31, - [50] = 33, - [51] = 51, - [52] = 52, - [53] = 53, - [54] = 54, - [55] = 55, - [56] = 56, - [57] = 51, - [58] = 58, - [59] = 59, - [60] = 60, - [61] = 61, - [62] = 62, - [63] = 62, - [64] = 60, - [65] = 53, - [66] = 54, - [67] = 67, - [68] = 61, - [69] = 69, - [70] = 67, - [71] = 71, - [72] = 52, - [73] = 58, - [74] = 55, - [75] = 59, + [42] = 42, + [43] = 43, + [44] = 38, }; -static TSCharacterRange sym_node_name_character_set_1[] = { - {':', ':'}, {'A', 'Z'}, {'_', '_'}, {'a', 'z'}, {0xc0, 0xd6}, {0xd8, 0xf6}, {0xf8, 0x2ff}, {0x370, 0x37d}, - {0x37f, 0x1fff}, {0x200c, 0x200d}, {0x2070, 0x218f}, {0x2c00, 0x2fef}, {0x3001, 0xd7ff}, {0xf900, 0xfdcf}, {0xfdf0, 0xfffd}, {0x10000, 0xeffff}, +static TSCharacterRange aux_sym_node_name_token1_character_set_1[] = { + {'A', 'Z'}, {'a', 'z'}, {0xaa, 0xaa}, {0xb5, 0xb5}, {0xba, 0xba}, {0xc0, 0xd6}, {0xd8, 0xf6}, {0xf8, 0x2c1}, + {0x2c6, 0x2d1}, {0x2e0, 0x2e4}, {0x2ec, 0x2ec}, {0x2ee, 0x2ee}, {0x370, 0x374}, {0x376, 0x377}, {0x37b, 0x37d}, {0x37f, 0x37f}, + {0x386, 0x386}, {0x388, 0x38a}, {0x38c, 0x38c}, {0x38e, 0x3a1}, {0x3a3, 0x3f5}, {0x3f7, 0x481}, {0x48a, 0x52f}, {0x531, 0x556}, + {0x559, 0x559}, {0x560, 0x588}, {0x5d0, 0x5ea}, {0x5ef, 0x5f2}, {0x620, 0x64a}, {0x66e, 0x66f}, {0x671, 0x6d3}, {0x6d5, 0x6d5}, + {0x6e5, 0x6e6}, {0x6ee, 0x6ef}, {0x6fa, 0x6fc}, {0x6ff, 0x6ff}, {0x710, 0x710}, {0x712, 0x72f}, {0x74d, 0x7a5}, {0x7b1, 0x7b1}, + {0x7ca, 0x7ea}, {0x7f4, 0x7f5}, {0x7fa, 0x7fa}, {0x800, 0x815}, {0x81a, 0x81a}, {0x824, 0x824}, {0x828, 0x828}, {0x840, 0x858}, + {0x860, 0x86a}, {0x870, 0x887}, {0x889, 0x88e}, {0x8a0, 0x8c9}, {0x904, 0x939}, {0x93d, 0x93d}, {0x950, 0x950}, {0x958, 0x961}, + {0x971, 0x980}, {0x985, 0x98c}, {0x98f, 0x990}, {0x993, 0x9a8}, {0x9aa, 0x9b0}, {0x9b2, 0x9b2}, {0x9b6, 0x9b9}, {0x9bd, 0x9bd}, + {0x9ce, 0x9ce}, {0x9dc, 0x9dd}, {0x9df, 0x9e1}, {0x9f0, 0x9f1}, {0x9fc, 0x9fc}, {0xa05, 0xa0a}, {0xa0f, 0xa10}, {0xa13, 0xa28}, + {0xa2a, 0xa30}, {0xa32, 0xa33}, {0xa35, 0xa36}, {0xa38, 0xa39}, {0xa59, 0xa5c}, {0xa5e, 0xa5e}, {0xa72, 0xa74}, {0xa85, 0xa8d}, + {0xa8f, 0xa91}, {0xa93, 0xaa8}, {0xaaa, 0xab0}, {0xab2, 0xab3}, {0xab5, 0xab9}, {0xabd, 0xabd}, {0xad0, 0xad0}, {0xae0, 0xae1}, + {0xaf9, 0xaf9}, {0xb05, 0xb0c}, {0xb0f, 0xb10}, {0xb13, 0xb28}, {0xb2a, 0xb30}, {0xb32, 0xb33}, {0xb35, 0xb39}, {0xb3d, 0xb3d}, + {0xb5c, 0xb5d}, {0xb5f, 0xb61}, {0xb71, 0xb71}, {0xb83, 0xb83}, {0xb85, 0xb8a}, {0xb8e, 0xb90}, {0xb92, 0xb95}, {0xb99, 0xb9a}, + {0xb9c, 0xb9c}, {0xb9e, 0xb9f}, {0xba3, 0xba4}, {0xba8, 0xbaa}, {0xbae, 0xbb9}, {0xbd0, 0xbd0}, {0xc05, 0xc0c}, {0xc0e, 0xc10}, + {0xc12, 0xc28}, {0xc2a, 0xc39}, {0xc3d, 0xc3d}, {0xc58, 0xc5a}, {0xc5d, 0xc5d}, {0xc60, 0xc61}, {0xc80, 0xc80}, {0xc85, 0xc8c}, + {0xc8e, 0xc90}, {0xc92, 0xca8}, {0xcaa, 0xcb3}, {0xcb5, 0xcb9}, {0xcbd, 0xcbd}, {0xcdd, 0xcde}, {0xce0, 0xce1}, {0xcf1, 0xcf2}, + {0xd04, 0xd0c}, {0xd0e, 0xd10}, {0xd12, 0xd3a}, {0xd3d, 0xd3d}, {0xd4e, 0xd4e}, {0xd54, 0xd56}, {0xd5f, 0xd61}, {0xd7a, 0xd7f}, + {0xd85, 0xd96}, {0xd9a, 0xdb1}, {0xdb3, 0xdbb}, {0xdbd, 0xdbd}, {0xdc0, 0xdc6}, {0xe01, 0xe30}, {0xe32, 0xe32}, {0xe40, 0xe46}, + {0xe81, 0xe82}, {0xe84, 0xe84}, {0xe86, 0xe8a}, {0xe8c, 0xea3}, {0xea5, 0xea5}, {0xea7, 0xeb0}, {0xeb2, 0xeb2}, {0xebd, 0xebd}, + {0xec0, 0xec4}, {0xec6, 0xec6}, {0xedc, 0xedf}, {0xf00, 0xf00}, {0xf40, 0xf47}, {0xf49, 0xf6c}, {0xf88, 0xf8c}, {0x1000, 0x102a}, + {0x103f, 0x103f}, {0x1050, 0x1055}, {0x105a, 0x105d}, {0x1061, 0x1061}, {0x1065, 0x1066}, {0x106e, 0x1070}, {0x1075, 0x1081}, {0x108e, 0x108e}, + {0x10a0, 0x10c5}, {0x10c7, 0x10c7}, {0x10cd, 0x10cd}, {0x10d0, 0x10fa}, {0x10fc, 0x1248}, {0x124a, 0x124d}, {0x1250, 0x1256}, {0x1258, 0x1258}, + {0x125a, 0x125d}, {0x1260, 0x1288}, {0x128a, 0x128d}, {0x1290, 0x12b0}, {0x12b2, 0x12b5}, {0x12b8, 0x12be}, {0x12c0, 0x12c0}, {0x12c2, 0x12c5}, + {0x12c8, 0x12d6}, {0x12d8, 0x1310}, {0x1312, 0x1315}, {0x1318, 0x135a}, {0x1380, 0x138f}, {0x13a0, 0x13f5}, {0x13f8, 0x13fd}, {0x1401, 0x166c}, + {0x166f, 0x167f}, {0x1681, 0x169a}, {0x16a0, 0x16ea}, {0x16ee, 0x16f8}, {0x1700, 0x1711}, {0x171f, 0x1731}, {0x1740, 0x1751}, {0x1760, 0x176c}, + {0x176e, 0x1770}, {0x1780, 0x17b3}, {0x17d7, 0x17d7}, {0x17dc, 0x17dc}, {0x1820, 0x1878}, {0x1880, 0x18a8}, {0x18aa, 0x18aa}, {0x18b0, 0x18f5}, + {0x1900, 0x191e}, {0x1950, 0x196d}, {0x1970, 0x1974}, {0x1980, 0x19ab}, {0x19b0, 0x19c9}, {0x1a00, 0x1a16}, {0x1a20, 0x1a54}, {0x1aa7, 0x1aa7}, + {0x1b05, 0x1b33}, {0x1b45, 0x1b4c}, {0x1b83, 0x1ba0}, {0x1bae, 0x1baf}, {0x1bba, 0x1be5}, {0x1c00, 0x1c23}, {0x1c4d, 0x1c4f}, {0x1c5a, 0x1c7d}, + {0x1c80, 0x1c88}, {0x1c90, 0x1cba}, {0x1cbd, 0x1cbf}, {0x1ce9, 0x1cec}, {0x1cee, 0x1cf3}, {0x1cf5, 0x1cf6}, {0x1cfa, 0x1cfa}, {0x1d00, 0x1dbf}, + {0x1e00, 0x1f15}, {0x1f18, 0x1f1d}, {0x1f20, 0x1f45}, {0x1f48, 0x1f4d}, {0x1f50, 0x1f57}, {0x1f59, 0x1f59}, {0x1f5b, 0x1f5b}, {0x1f5d, 0x1f5d}, + {0x1f5f, 0x1f7d}, {0x1f80, 0x1fb4}, {0x1fb6, 0x1fbc}, {0x1fbe, 0x1fbe}, {0x1fc2, 0x1fc4}, {0x1fc6, 0x1fcc}, {0x1fd0, 0x1fd3}, {0x1fd6, 0x1fdb}, + {0x1fe0, 0x1fec}, {0x1ff2, 0x1ff4}, {0x1ff6, 0x1ffc}, {0x2071, 0x2071}, {0x207f, 0x207f}, {0x2090, 0x209c}, {0x2102, 0x2102}, {0x2107, 0x2107}, + {0x210a, 0x2113}, {0x2115, 0x2115}, {0x2118, 0x211d}, {0x2124, 0x2124}, {0x2126, 0x2126}, {0x2128, 0x2128}, {0x212a, 0x2139}, {0x213c, 0x213f}, + {0x2145, 0x2149}, {0x214e, 0x214e}, {0x2160, 0x2188}, {0x2c00, 0x2ce4}, {0x2ceb, 0x2cee}, {0x2cf2, 0x2cf3}, {0x2d00, 0x2d25}, {0x2d27, 0x2d27}, + {0x2d2d, 0x2d2d}, {0x2d30, 0x2d67}, {0x2d6f, 0x2d6f}, {0x2d80, 0x2d96}, {0x2da0, 0x2da6}, {0x2da8, 0x2dae}, {0x2db0, 0x2db6}, {0x2db8, 0x2dbe}, + {0x2dc0, 0x2dc6}, {0x2dc8, 0x2dce}, {0x2dd0, 0x2dd6}, {0x2dd8, 0x2dde}, {0x3005, 0x3007}, {0x3021, 0x3029}, {0x3031, 0x3035}, {0x3038, 0x303c}, + {0x3041, 0x3096}, {0x309d, 0x309f}, {0x30a1, 0x30fa}, {0x30fc, 0x30ff}, {0x3105, 0x312f}, {0x3131, 0x318e}, {0x31a0, 0x31bf}, {0x31f0, 0x31ff}, + {0x3400, 0x4dbf}, {0x4e00, 0xa48c}, {0xa4d0, 0xa4fd}, {0xa500, 0xa60c}, {0xa610, 0xa61f}, {0xa62a, 0xa62b}, {0xa640, 0xa66e}, {0xa67f, 0xa69d}, + {0xa6a0, 0xa6ef}, {0xa717, 0xa71f}, {0xa722, 0xa788}, {0xa78b, 0xa7ca}, {0xa7d0, 0xa7d1}, {0xa7d3, 0xa7d3}, {0xa7d5, 0xa7d9}, {0xa7f2, 0xa801}, + {0xa803, 0xa805}, {0xa807, 0xa80a}, {0xa80c, 0xa822}, {0xa840, 0xa873}, {0xa882, 0xa8b3}, {0xa8f2, 0xa8f7}, {0xa8fb, 0xa8fb}, {0xa8fd, 0xa8fe}, + {0xa90a, 0xa925}, {0xa930, 0xa946}, {0xa960, 0xa97c}, {0xa984, 0xa9b2}, {0xa9cf, 0xa9cf}, {0xa9e0, 0xa9e4}, {0xa9e6, 0xa9ef}, {0xa9fa, 0xa9fe}, + {0xaa00, 0xaa28}, {0xaa40, 0xaa42}, {0xaa44, 0xaa4b}, {0xaa60, 0xaa76}, {0xaa7a, 0xaa7a}, {0xaa7e, 0xaaaf}, {0xaab1, 0xaab1}, {0xaab5, 0xaab6}, + {0xaab9, 0xaabd}, {0xaac0, 0xaac0}, {0xaac2, 0xaac2}, {0xaadb, 0xaadd}, {0xaae0, 0xaaea}, {0xaaf2, 0xaaf4}, {0xab01, 0xab06}, {0xab09, 0xab0e}, + {0xab11, 0xab16}, {0xab20, 0xab26}, {0xab28, 0xab2e}, {0xab30, 0xab5a}, {0xab5c, 0xab69}, {0xab70, 0xabe2}, {0xac00, 0xd7a3}, {0xd7b0, 0xd7c6}, + {0xd7cb, 0xd7fb}, {0xf900, 0xfa6d}, {0xfa70, 0xfad9}, {0xfb00, 0xfb06}, {0xfb13, 0xfb17}, {0xfb1d, 0xfb1d}, {0xfb1f, 0xfb28}, {0xfb2a, 0xfb36}, + {0xfb38, 0xfb3c}, {0xfb3e, 0xfb3e}, {0xfb40, 0xfb41}, {0xfb43, 0xfb44}, {0xfb46, 0xfbb1}, {0xfbd3, 0xfc5d}, {0xfc64, 0xfd3d}, {0xfd50, 0xfd8f}, + {0xfd92, 0xfdc7}, {0xfdf0, 0xfdf9}, {0xfe71, 0xfe71}, {0xfe73, 0xfe73}, {0xfe77, 0xfe77}, {0xfe79, 0xfe79}, {0xfe7b, 0xfe7b}, {0xfe7d, 0xfe7d}, + {0xfe7f, 0xfefc}, {0xff21, 0xff3a}, {0xff41, 0xff5a}, {0xff66, 0xff9d}, {0xffa0, 0xffbe}, {0xffc2, 0xffc7}, {0xffca, 0xffcf}, {0xffd2, 0xffd7}, + {0xffda, 0xffdc}, {0x10000, 0x1000b}, {0x1000d, 0x10026}, {0x10028, 0x1003a}, {0x1003c, 0x1003d}, {0x1003f, 0x1004d}, {0x10050, 0x1005d}, {0x10080, 0x100fa}, + {0x10140, 0x10174}, {0x10280, 0x1029c}, {0x102a0, 0x102d0}, {0x10300, 0x1031f}, {0x1032d, 0x1034a}, {0x10350, 0x10375}, {0x10380, 0x1039d}, {0x103a0, 0x103c3}, + {0x103c8, 0x103cf}, {0x103d1, 0x103d5}, {0x10400, 0x1049d}, {0x104b0, 0x104d3}, {0x104d8, 0x104fb}, {0x10500, 0x10527}, {0x10530, 0x10563}, {0x10570, 0x1057a}, + {0x1057c, 0x1058a}, {0x1058c, 0x10592}, {0x10594, 0x10595}, {0x10597, 0x105a1}, {0x105a3, 0x105b1}, {0x105b3, 0x105b9}, {0x105bb, 0x105bc}, {0x10600, 0x10736}, + {0x10740, 0x10755}, {0x10760, 0x10767}, {0x10780, 0x10785}, {0x10787, 0x107b0}, {0x107b2, 0x107ba}, {0x10800, 0x10805}, {0x10808, 0x10808}, {0x1080a, 0x10835}, + {0x10837, 0x10838}, {0x1083c, 0x1083c}, {0x1083f, 0x10855}, {0x10860, 0x10876}, {0x10880, 0x1089e}, {0x108e0, 0x108f2}, {0x108f4, 0x108f5}, {0x10900, 0x10915}, + {0x10920, 0x10939}, {0x10980, 0x109b7}, {0x109be, 0x109bf}, {0x10a00, 0x10a00}, {0x10a10, 0x10a13}, {0x10a15, 0x10a17}, {0x10a19, 0x10a35}, {0x10a60, 0x10a7c}, + {0x10a80, 0x10a9c}, {0x10ac0, 0x10ac7}, {0x10ac9, 0x10ae4}, {0x10b00, 0x10b35}, {0x10b40, 0x10b55}, {0x10b60, 0x10b72}, {0x10b80, 0x10b91}, {0x10c00, 0x10c48}, + {0x10c80, 0x10cb2}, {0x10cc0, 0x10cf2}, {0x10d00, 0x10d23}, {0x10e80, 0x10ea9}, {0x10eb0, 0x10eb1}, {0x10f00, 0x10f1c}, {0x10f27, 0x10f27}, {0x10f30, 0x10f45}, + {0x10f70, 0x10f81}, {0x10fb0, 0x10fc4}, {0x10fe0, 0x10ff6}, {0x11003, 0x11037}, {0x11071, 0x11072}, {0x11075, 0x11075}, {0x11083, 0x110af}, {0x110d0, 0x110e8}, + {0x11103, 0x11126}, {0x11144, 0x11144}, {0x11147, 0x11147}, {0x11150, 0x11172}, {0x11176, 0x11176}, {0x11183, 0x111b2}, {0x111c1, 0x111c4}, {0x111da, 0x111da}, + {0x111dc, 0x111dc}, {0x11200, 0x11211}, {0x11213, 0x1122b}, {0x1123f, 0x11240}, {0x11280, 0x11286}, {0x11288, 0x11288}, {0x1128a, 0x1128d}, {0x1128f, 0x1129d}, + {0x1129f, 0x112a8}, {0x112b0, 0x112de}, {0x11305, 0x1130c}, {0x1130f, 0x11310}, {0x11313, 0x11328}, {0x1132a, 0x11330}, {0x11332, 0x11333}, {0x11335, 0x11339}, + {0x1133d, 0x1133d}, {0x11350, 0x11350}, {0x1135d, 0x11361}, {0x11400, 0x11434}, {0x11447, 0x1144a}, {0x1145f, 0x11461}, {0x11480, 0x114af}, {0x114c4, 0x114c5}, + {0x114c7, 0x114c7}, {0x11580, 0x115ae}, {0x115d8, 0x115db}, {0x11600, 0x1162f}, {0x11644, 0x11644}, {0x11680, 0x116aa}, {0x116b8, 0x116b8}, {0x11700, 0x1171a}, + {0x11740, 0x11746}, {0x11800, 0x1182b}, {0x118a0, 0x118df}, {0x118ff, 0x11906}, {0x11909, 0x11909}, {0x1190c, 0x11913}, {0x11915, 0x11916}, {0x11918, 0x1192f}, + {0x1193f, 0x1193f}, {0x11941, 0x11941}, {0x119a0, 0x119a7}, {0x119aa, 0x119d0}, {0x119e1, 0x119e1}, {0x119e3, 0x119e3}, {0x11a00, 0x11a00}, {0x11a0b, 0x11a32}, + {0x11a3a, 0x11a3a}, {0x11a50, 0x11a50}, {0x11a5c, 0x11a89}, {0x11a9d, 0x11a9d}, {0x11ab0, 0x11af8}, {0x11c00, 0x11c08}, {0x11c0a, 0x11c2e}, {0x11c40, 0x11c40}, + {0x11c72, 0x11c8f}, {0x11d00, 0x11d06}, {0x11d08, 0x11d09}, {0x11d0b, 0x11d30}, {0x11d46, 0x11d46}, {0x11d60, 0x11d65}, {0x11d67, 0x11d68}, {0x11d6a, 0x11d89}, + {0x11d98, 0x11d98}, {0x11ee0, 0x11ef2}, {0x11f02, 0x11f02}, {0x11f04, 0x11f10}, {0x11f12, 0x11f33}, {0x11fb0, 0x11fb0}, {0x12000, 0x12399}, {0x12400, 0x1246e}, + {0x12480, 0x12543}, {0x12f90, 0x12ff0}, {0x13000, 0x1342f}, {0x13441, 0x13446}, {0x14400, 0x14646}, {0x16800, 0x16a38}, {0x16a40, 0x16a5e}, {0x16a70, 0x16abe}, + {0x16ad0, 0x16aed}, {0x16b00, 0x16b2f}, {0x16b40, 0x16b43}, {0x16b63, 0x16b77}, {0x16b7d, 0x16b8f}, {0x16e40, 0x16e7f}, {0x16f00, 0x16f4a}, {0x16f50, 0x16f50}, + {0x16f93, 0x16f9f}, {0x16fe0, 0x16fe1}, {0x16fe3, 0x16fe3}, {0x17000, 0x187f7}, {0x18800, 0x18cd5}, {0x18d00, 0x18d08}, {0x1aff0, 0x1aff3}, {0x1aff5, 0x1affb}, + {0x1affd, 0x1affe}, {0x1b000, 0x1b122}, {0x1b132, 0x1b132}, {0x1b150, 0x1b152}, {0x1b155, 0x1b155}, {0x1b164, 0x1b167}, {0x1b170, 0x1b2fb}, {0x1bc00, 0x1bc6a}, + {0x1bc70, 0x1bc7c}, {0x1bc80, 0x1bc88}, {0x1bc90, 0x1bc99}, {0x1d400, 0x1d454}, {0x1d456, 0x1d49c}, {0x1d49e, 0x1d49f}, {0x1d4a2, 0x1d4a2}, {0x1d4a5, 0x1d4a6}, + {0x1d4a9, 0x1d4ac}, {0x1d4ae, 0x1d4b9}, {0x1d4bb, 0x1d4bb}, {0x1d4bd, 0x1d4c3}, {0x1d4c5, 0x1d505}, {0x1d507, 0x1d50a}, {0x1d50d, 0x1d514}, {0x1d516, 0x1d51c}, + {0x1d51e, 0x1d539}, {0x1d53b, 0x1d53e}, {0x1d540, 0x1d544}, {0x1d546, 0x1d546}, {0x1d54a, 0x1d550}, {0x1d552, 0x1d6a5}, {0x1d6a8, 0x1d6c0}, {0x1d6c2, 0x1d6da}, + {0x1d6dc, 0x1d6fa}, {0x1d6fc, 0x1d714}, {0x1d716, 0x1d734}, {0x1d736, 0x1d74e}, {0x1d750, 0x1d76e}, {0x1d770, 0x1d788}, {0x1d78a, 0x1d7a8}, {0x1d7aa, 0x1d7c2}, + {0x1d7c4, 0x1d7cb}, {0x1df00, 0x1df1e}, {0x1df25, 0x1df2a}, {0x1e030, 0x1e06d}, {0x1e100, 0x1e12c}, {0x1e137, 0x1e13d}, {0x1e14e, 0x1e14e}, {0x1e290, 0x1e2ad}, + {0x1e2c0, 0x1e2eb}, {0x1e4d0, 0x1e4eb}, {0x1e7e0, 0x1e7e6}, {0x1e7e8, 0x1e7eb}, {0x1e7ed, 0x1e7ee}, {0x1e7f0, 0x1e7fe}, {0x1e800, 0x1e8c4}, {0x1e900, 0x1e943}, + {0x1e94b, 0x1e94b}, {0x1ee00, 0x1ee03}, {0x1ee05, 0x1ee1f}, {0x1ee21, 0x1ee22}, {0x1ee24, 0x1ee24}, {0x1ee27, 0x1ee27}, {0x1ee29, 0x1ee32}, {0x1ee34, 0x1ee37}, + {0x1ee39, 0x1ee39}, {0x1ee3b, 0x1ee3b}, {0x1ee42, 0x1ee42}, {0x1ee47, 0x1ee47}, {0x1ee49, 0x1ee49}, {0x1ee4b, 0x1ee4b}, {0x1ee4d, 0x1ee4f}, {0x1ee51, 0x1ee52}, + {0x1ee54, 0x1ee54}, {0x1ee57, 0x1ee57}, {0x1ee59, 0x1ee59}, {0x1ee5b, 0x1ee5b}, {0x1ee5d, 0x1ee5d}, {0x1ee5f, 0x1ee5f}, {0x1ee61, 0x1ee62}, {0x1ee64, 0x1ee64}, + {0x1ee67, 0x1ee6a}, {0x1ee6c, 0x1ee72}, {0x1ee74, 0x1ee77}, {0x1ee79, 0x1ee7c}, {0x1ee7e, 0x1ee7e}, {0x1ee80, 0x1ee89}, {0x1ee8b, 0x1ee9b}, {0x1eea1, 0x1eea3}, + {0x1eea5, 0x1eea9}, {0x1eeab, 0x1eebb}, {0x20000, 0x2a6df}, {0x2a700, 0x2b739}, {0x2b740, 0x2b81d}, {0x2b820, 0x2cea1}, {0x2ceb0, 0x2ebe0}, {0x2ebf0, 0x2ee5d}, + {0x2f800, 0x2fa1d}, {0x30000, 0x3134a}, {0x31350, 0x323af}, }; -static TSCharacterRange sym_node_name_character_set_2[] = { - {'-', '.'}, {'0', ':'}, {'A', 'Z'}, {'_', '_'}, {'a', 'z'}, {0xb7, 0xb7}, {0xc0, 0xd6}, {0xd8, 0xf6}, - {0xf8, 0x37d}, {0x37f, 0x1fff}, {0x200c, 0x200d}, {0x203f, 0x2040}, {0x2070, 0x218f}, {0x2c00, 0x2fef}, {0x3001, 0xd7ff}, {0xf900, 0xfdcf}, - {0xfdf0, 0xfffd}, {0x10000, 0xeffff}, -}; - -static TSCharacterRange sym_class_shorthand_character_set_1[] = { - {0, 0x08}, {0x0e, 0x1f}, {'!', 0x84}, {0x86, 0x9f}, {0xa1, 0x167f}, {0x1681, 0x1fff}, {0x200b, 0x2027}, {0x202a, 0x202e}, - {0x2030, 0x205e}, {0x2060, 0x2fff}, {0x3001, 0x10ffff}, -}; - -static TSCharacterRange sym__S_character_set_1[] = { - {'\t', '\r'}, {' ', ' '}, {0x85, 0x85}, {0xa0, 0xa0}, {0x1680, 0x1680}, {0x2000, 0x200a}, {0x2028, 0x2029}, {0x202f, 0x202f}, - {0x205f, 0x205f}, {0x3000, 0x3000}, +static TSCharacterRange aux_sym_node_name_token1_character_set_2[] = { + {'-', '-'}, {'0', '9'}, {'A', 'Z'}, {'_', '_'}, {'a', 'z'}, {0xaa, 0xaa}, {0xb5, 0xb5}, {0xb7, 0xb7}, + {0xba, 0xba}, {0xc0, 0xd6}, {0xd8, 0xf6}, {0xf8, 0x2c1}, {0x2c6, 0x2d1}, {0x2e0, 0x2e4}, {0x2ec, 0x2ec}, {0x2ee, 0x2ee}, + {0x300, 0x374}, {0x376, 0x377}, {0x37b, 0x37d}, {0x37f, 0x37f}, {0x386, 0x38a}, {0x38c, 0x38c}, {0x38e, 0x3a1}, {0x3a3, 0x3f5}, + {0x3f7, 0x481}, {0x483, 0x487}, {0x48a, 0x52f}, {0x531, 0x556}, {0x559, 0x559}, {0x560, 0x588}, {0x591, 0x5bd}, {0x5bf, 0x5bf}, + {0x5c1, 0x5c2}, {0x5c4, 0x5c5}, {0x5c7, 0x5c7}, {0x5d0, 0x5ea}, {0x5ef, 0x5f2}, {0x610, 0x61a}, {0x620, 0x669}, {0x66e, 0x6d3}, + {0x6d5, 0x6dc}, {0x6df, 0x6e8}, {0x6ea, 0x6fc}, {0x6ff, 0x6ff}, {0x710, 0x74a}, {0x74d, 0x7b1}, {0x7c0, 0x7f5}, {0x7fa, 0x7fa}, + {0x7fd, 0x7fd}, {0x800, 0x82d}, {0x840, 0x85b}, {0x860, 0x86a}, {0x870, 0x887}, {0x889, 0x88e}, {0x898, 0x8e1}, {0x8e3, 0x963}, + {0x966, 0x96f}, {0x971, 0x983}, {0x985, 0x98c}, {0x98f, 0x990}, {0x993, 0x9a8}, {0x9aa, 0x9b0}, {0x9b2, 0x9b2}, {0x9b6, 0x9b9}, + {0x9bc, 0x9c4}, {0x9c7, 0x9c8}, {0x9cb, 0x9ce}, {0x9d7, 0x9d7}, {0x9dc, 0x9dd}, {0x9df, 0x9e3}, {0x9e6, 0x9f1}, {0x9fc, 0x9fc}, + {0x9fe, 0x9fe}, {0xa01, 0xa03}, {0xa05, 0xa0a}, {0xa0f, 0xa10}, {0xa13, 0xa28}, {0xa2a, 0xa30}, {0xa32, 0xa33}, {0xa35, 0xa36}, + {0xa38, 0xa39}, {0xa3c, 0xa3c}, {0xa3e, 0xa42}, {0xa47, 0xa48}, {0xa4b, 0xa4d}, {0xa51, 0xa51}, {0xa59, 0xa5c}, {0xa5e, 0xa5e}, + {0xa66, 0xa75}, {0xa81, 0xa83}, {0xa85, 0xa8d}, {0xa8f, 0xa91}, {0xa93, 0xaa8}, {0xaaa, 0xab0}, {0xab2, 0xab3}, {0xab5, 0xab9}, + {0xabc, 0xac5}, {0xac7, 0xac9}, {0xacb, 0xacd}, {0xad0, 0xad0}, {0xae0, 0xae3}, {0xae6, 0xaef}, {0xaf9, 0xaff}, {0xb01, 0xb03}, + {0xb05, 0xb0c}, {0xb0f, 0xb10}, {0xb13, 0xb28}, {0xb2a, 0xb30}, {0xb32, 0xb33}, {0xb35, 0xb39}, {0xb3c, 0xb44}, {0xb47, 0xb48}, + {0xb4b, 0xb4d}, {0xb55, 0xb57}, {0xb5c, 0xb5d}, {0xb5f, 0xb63}, {0xb66, 0xb6f}, {0xb71, 0xb71}, {0xb82, 0xb83}, {0xb85, 0xb8a}, + {0xb8e, 0xb90}, {0xb92, 0xb95}, {0xb99, 0xb9a}, {0xb9c, 0xb9c}, {0xb9e, 0xb9f}, {0xba3, 0xba4}, {0xba8, 0xbaa}, {0xbae, 0xbb9}, + {0xbbe, 0xbc2}, {0xbc6, 0xbc8}, {0xbca, 0xbcd}, {0xbd0, 0xbd0}, {0xbd7, 0xbd7}, {0xbe6, 0xbef}, {0xc00, 0xc0c}, {0xc0e, 0xc10}, + {0xc12, 0xc28}, {0xc2a, 0xc39}, {0xc3c, 0xc44}, {0xc46, 0xc48}, {0xc4a, 0xc4d}, {0xc55, 0xc56}, {0xc58, 0xc5a}, {0xc5d, 0xc5d}, + {0xc60, 0xc63}, {0xc66, 0xc6f}, {0xc80, 0xc83}, {0xc85, 0xc8c}, {0xc8e, 0xc90}, {0xc92, 0xca8}, {0xcaa, 0xcb3}, {0xcb5, 0xcb9}, + {0xcbc, 0xcc4}, {0xcc6, 0xcc8}, {0xcca, 0xccd}, {0xcd5, 0xcd6}, {0xcdd, 0xcde}, {0xce0, 0xce3}, {0xce6, 0xcef}, {0xcf1, 0xcf3}, + {0xd00, 0xd0c}, {0xd0e, 0xd10}, {0xd12, 0xd44}, {0xd46, 0xd48}, {0xd4a, 0xd4e}, {0xd54, 0xd57}, {0xd5f, 0xd63}, {0xd66, 0xd6f}, + {0xd7a, 0xd7f}, {0xd81, 0xd83}, {0xd85, 0xd96}, {0xd9a, 0xdb1}, {0xdb3, 0xdbb}, {0xdbd, 0xdbd}, {0xdc0, 0xdc6}, {0xdca, 0xdca}, + {0xdcf, 0xdd4}, {0xdd6, 0xdd6}, {0xdd8, 0xddf}, {0xde6, 0xdef}, {0xdf2, 0xdf3}, {0xe01, 0xe3a}, {0xe40, 0xe4e}, {0xe50, 0xe59}, + {0xe81, 0xe82}, {0xe84, 0xe84}, {0xe86, 0xe8a}, {0xe8c, 0xea3}, {0xea5, 0xea5}, {0xea7, 0xebd}, {0xec0, 0xec4}, {0xec6, 0xec6}, + {0xec8, 0xece}, {0xed0, 0xed9}, {0xedc, 0xedf}, {0xf00, 0xf00}, {0xf18, 0xf19}, {0xf20, 0xf29}, {0xf35, 0xf35}, {0xf37, 0xf37}, + {0xf39, 0xf39}, {0xf3e, 0xf47}, {0xf49, 0xf6c}, {0xf71, 0xf84}, {0xf86, 0xf97}, {0xf99, 0xfbc}, {0xfc6, 0xfc6}, {0x1000, 0x1049}, + {0x1050, 0x109d}, {0x10a0, 0x10c5}, {0x10c7, 0x10c7}, {0x10cd, 0x10cd}, {0x10d0, 0x10fa}, {0x10fc, 0x1248}, {0x124a, 0x124d}, {0x1250, 0x1256}, + {0x1258, 0x1258}, {0x125a, 0x125d}, {0x1260, 0x1288}, {0x128a, 0x128d}, {0x1290, 0x12b0}, {0x12b2, 0x12b5}, {0x12b8, 0x12be}, {0x12c0, 0x12c0}, + {0x12c2, 0x12c5}, {0x12c8, 0x12d6}, {0x12d8, 0x1310}, {0x1312, 0x1315}, {0x1318, 0x135a}, {0x135d, 0x135f}, {0x1369, 0x1371}, {0x1380, 0x138f}, + {0x13a0, 0x13f5}, {0x13f8, 0x13fd}, {0x1401, 0x166c}, {0x166f, 0x167f}, {0x1681, 0x169a}, {0x16a0, 0x16ea}, {0x16ee, 0x16f8}, {0x1700, 0x1715}, + {0x171f, 0x1734}, {0x1740, 0x1753}, {0x1760, 0x176c}, {0x176e, 0x1770}, {0x1772, 0x1773}, {0x1780, 0x17d3}, {0x17d7, 0x17d7}, {0x17dc, 0x17dd}, + {0x17e0, 0x17e9}, {0x180b, 0x180d}, {0x180f, 0x1819}, {0x1820, 0x1878}, {0x1880, 0x18aa}, {0x18b0, 0x18f5}, {0x1900, 0x191e}, {0x1920, 0x192b}, + {0x1930, 0x193b}, {0x1946, 0x196d}, {0x1970, 0x1974}, {0x1980, 0x19ab}, {0x19b0, 0x19c9}, {0x19d0, 0x19da}, {0x1a00, 0x1a1b}, {0x1a20, 0x1a5e}, + {0x1a60, 0x1a7c}, {0x1a7f, 0x1a89}, {0x1a90, 0x1a99}, {0x1aa7, 0x1aa7}, {0x1ab0, 0x1abd}, {0x1abf, 0x1ace}, {0x1b00, 0x1b4c}, {0x1b50, 0x1b59}, + {0x1b6b, 0x1b73}, {0x1b80, 0x1bf3}, {0x1c00, 0x1c37}, {0x1c40, 0x1c49}, {0x1c4d, 0x1c7d}, {0x1c80, 0x1c88}, {0x1c90, 0x1cba}, {0x1cbd, 0x1cbf}, + {0x1cd0, 0x1cd2}, {0x1cd4, 0x1cfa}, {0x1d00, 0x1f15}, {0x1f18, 0x1f1d}, {0x1f20, 0x1f45}, {0x1f48, 0x1f4d}, {0x1f50, 0x1f57}, {0x1f59, 0x1f59}, + {0x1f5b, 0x1f5b}, {0x1f5d, 0x1f5d}, {0x1f5f, 0x1f7d}, {0x1f80, 0x1fb4}, {0x1fb6, 0x1fbc}, {0x1fbe, 0x1fbe}, {0x1fc2, 0x1fc4}, {0x1fc6, 0x1fcc}, + {0x1fd0, 0x1fd3}, {0x1fd6, 0x1fdb}, {0x1fe0, 0x1fec}, {0x1ff2, 0x1ff4}, {0x1ff6, 0x1ffc}, {0x200c, 0x200d}, {0x203f, 0x2040}, {0x2054, 0x2054}, + {0x2071, 0x2071}, {0x207f, 0x207f}, {0x2090, 0x209c}, {0x20d0, 0x20dc}, {0x20e1, 0x20e1}, {0x20e5, 0x20f0}, {0x2102, 0x2102}, {0x2107, 0x2107}, + {0x210a, 0x2113}, {0x2115, 0x2115}, {0x2118, 0x211d}, {0x2124, 0x2124}, {0x2126, 0x2126}, {0x2128, 0x2128}, {0x212a, 0x2139}, {0x213c, 0x213f}, + {0x2145, 0x2149}, {0x214e, 0x214e}, {0x2160, 0x2188}, {0x2c00, 0x2ce4}, {0x2ceb, 0x2cf3}, {0x2d00, 0x2d25}, {0x2d27, 0x2d27}, {0x2d2d, 0x2d2d}, + {0x2d30, 0x2d67}, {0x2d6f, 0x2d6f}, {0x2d7f, 0x2d96}, {0x2da0, 0x2da6}, {0x2da8, 0x2dae}, {0x2db0, 0x2db6}, {0x2db8, 0x2dbe}, {0x2dc0, 0x2dc6}, + {0x2dc8, 0x2dce}, {0x2dd0, 0x2dd6}, {0x2dd8, 0x2dde}, {0x2de0, 0x2dff}, {0x3005, 0x3007}, {0x3021, 0x302f}, {0x3031, 0x3035}, {0x3038, 0x303c}, + {0x3041, 0x3096}, {0x3099, 0x309a}, {0x309d, 0x309f}, {0x30a1, 0x30ff}, {0x3105, 0x312f}, {0x3131, 0x318e}, {0x31a0, 0x31bf}, {0x31f0, 0x31ff}, + {0x3400, 0x4dbf}, {0x4e00, 0xa48c}, {0xa4d0, 0xa4fd}, {0xa500, 0xa60c}, {0xa610, 0xa62b}, {0xa640, 0xa66f}, {0xa674, 0xa67d}, {0xa67f, 0xa6f1}, + {0xa717, 0xa71f}, {0xa722, 0xa788}, {0xa78b, 0xa7ca}, {0xa7d0, 0xa7d1}, {0xa7d3, 0xa7d3}, {0xa7d5, 0xa7d9}, {0xa7f2, 0xa827}, {0xa82c, 0xa82c}, + {0xa840, 0xa873}, {0xa880, 0xa8c5}, {0xa8d0, 0xa8d9}, {0xa8e0, 0xa8f7}, {0xa8fb, 0xa8fb}, {0xa8fd, 0xa92d}, {0xa930, 0xa953}, {0xa960, 0xa97c}, + {0xa980, 0xa9c0}, {0xa9cf, 0xa9d9}, {0xa9e0, 0xa9fe}, {0xaa00, 0xaa36}, {0xaa40, 0xaa4d}, {0xaa50, 0xaa59}, {0xaa60, 0xaa76}, {0xaa7a, 0xaac2}, + {0xaadb, 0xaadd}, {0xaae0, 0xaaef}, {0xaaf2, 0xaaf6}, {0xab01, 0xab06}, {0xab09, 0xab0e}, {0xab11, 0xab16}, {0xab20, 0xab26}, {0xab28, 0xab2e}, + {0xab30, 0xab5a}, {0xab5c, 0xab69}, {0xab70, 0xabea}, {0xabec, 0xabed}, {0xabf0, 0xabf9}, {0xac00, 0xd7a3}, {0xd7b0, 0xd7c6}, {0xd7cb, 0xd7fb}, + {0xf900, 0xfa6d}, {0xfa70, 0xfad9}, {0xfb00, 0xfb06}, {0xfb13, 0xfb17}, {0xfb1d, 0xfb28}, {0xfb2a, 0xfb36}, {0xfb38, 0xfb3c}, {0xfb3e, 0xfb3e}, + {0xfb40, 0xfb41}, {0xfb43, 0xfb44}, {0xfb46, 0xfbb1}, {0xfbd3, 0xfc5d}, {0xfc64, 0xfd3d}, {0xfd50, 0xfd8f}, {0xfd92, 0xfdc7}, {0xfdf0, 0xfdf9}, + {0xfe00, 0xfe0f}, {0xfe20, 0xfe2f}, {0xfe33, 0xfe34}, {0xfe4d, 0xfe4f}, {0xfe71, 0xfe71}, {0xfe73, 0xfe73}, {0xfe77, 0xfe77}, {0xfe79, 0xfe79}, + {0xfe7b, 0xfe7b}, {0xfe7d, 0xfe7d}, {0xfe7f, 0xfefc}, {0xff10, 0xff19}, {0xff21, 0xff3a}, {0xff3f, 0xff3f}, {0xff41, 0xff5a}, {0xff65, 0xffbe}, + {0xffc2, 0xffc7}, {0xffca, 0xffcf}, {0xffd2, 0xffd7}, {0xffda, 0xffdc}, {0x10000, 0x1000b}, {0x1000d, 0x10026}, {0x10028, 0x1003a}, {0x1003c, 0x1003d}, + {0x1003f, 0x1004d}, {0x10050, 0x1005d}, {0x10080, 0x100fa}, {0x10140, 0x10174}, {0x101fd, 0x101fd}, {0x10280, 0x1029c}, {0x102a0, 0x102d0}, {0x102e0, 0x102e0}, + {0x10300, 0x1031f}, {0x1032d, 0x1034a}, {0x10350, 0x1037a}, {0x10380, 0x1039d}, {0x103a0, 0x103c3}, {0x103c8, 0x103cf}, {0x103d1, 0x103d5}, {0x10400, 0x1049d}, + {0x104a0, 0x104a9}, {0x104b0, 0x104d3}, {0x104d8, 0x104fb}, {0x10500, 0x10527}, {0x10530, 0x10563}, {0x10570, 0x1057a}, {0x1057c, 0x1058a}, {0x1058c, 0x10592}, + {0x10594, 0x10595}, {0x10597, 0x105a1}, {0x105a3, 0x105b1}, {0x105b3, 0x105b9}, {0x105bb, 0x105bc}, {0x10600, 0x10736}, {0x10740, 0x10755}, {0x10760, 0x10767}, + {0x10780, 0x10785}, {0x10787, 0x107b0}, {0x107b2, 0x107ba}, {0x10800, 0x10805}, {0x10808, 0x10808}, {0x1080a, 0x10835}, {0x10837, 0x10838}, {0x1083c, 0x1083c}, + {0x1083f, 0x10855}, {0x10860, 0x10876}, {0x10880, 0x1089e}, {0x108e0, 0x108f2}, {0x108f4, 0x108f5}, {0x10900, 0x10915}, {0x10920, 0x10939}, {0x10980, 0x109b7}, + {0x109be, 0x109bf}, {0x10a00, 0x10a03}, {0x10a05, 0x10a06}, {0x10a0c, 0x10a13}, {0x10a15, 0x10a17}, {0x10a19, 0x10a35}, {0x10a38, 0x10a3a}, {0x10a3f, 0x10a3f}, + {0x10a60, 0x10a7c}, {0x10a80, 0x10a9c}, {0x10ac0, 0x10ac7}, {0x10ac9, 0x10ae6}, {0x10b00, 0x10b35}, {0x10b40, 0x10b55}, {0x10b60, 0x10b72}, {0x10b80, 0x10b91}, + {0x10c00, 0x10c48}, {0x10c80, 0x10cb2}, {0x10cc0, 0x10cf2}, {0x10d00, 0x10d27}, {0x10d30, 0x10d39}, {0x10e80, 0x10ea9}, {0x10eab, 0x10eac}, {0x10eb0, 0x10eb1}, + {0x10efd, 0x10f1c}, {0x10f27, 0x10f27}, {0x10f30, 0x10f50}, {0x10f70, 0x10f85}, {0x10fb0, 0x10fc4}, {0x10fe0, 0x10ff6}, {0x11000, 0x11046}, {0x11066, 0x11075}, + {0x1107f, 0x110ba}, {0x110c2, 0x110c2}, {0x110d0, 0x110e8}, {0x110f0, 0x110f9}, {0x11100, 0x11134}, {0x11136, 0x1113f}, {0x11144, 0x11147}, {0x11150, 0x11173}, + {0x11176, 0x11176}, {0x11180, 0x111c4}, {0x111c9, 0x111cc}, {0x111ce, 0x111da}, {0x111dc, 0x111dc}, {0x11200, 0x11211}, {0x11213, 0x11237}, {0x1123e, 0x11241}, + {0x11280, 0x11286}, {0x11288, 0x11288}, {0x1128a, 0x1128d}, {0x1128f, 0x1129d}, {0x1129f, 0x112a8}, {0x112b0, 0x112ea}, {0x112f0, 0x112f9}, {0x11300, 0x11303}, + {0x11305, 0x1130c}, {0x1130f, 0x11310}, {0x11313, 0x11328}, {0x1132a, 0x11330}, {0x11332, 0x11333}, {0x11335, 0x11339}, {0x1133b, 0x11344}, {0x11347, 0x11348}, + {0x1134b, 0x1134d}, {0x11350, 0x11350}, {0x11357, 0x11357}, {0x1135d, 0x11363}, {0x11366, 0x1136c}, {0x11370, 0x11374}, {0x11400, 0x1144a}, {0x11450, 0x11459}, + {0x1145e, 0x11461}, {0x11480, 0x114c5}, {0x114c7, 0x114c7}, {0x114d0, 0x114d9}, {0x11580, 0x115b5}, {0x115b8, 0x115c0}, {0x115d8, 0x115dd}, {0x11600, 0x11640}, + {0x11644, 0x11644}, {0x11650, 0x11659}, {0x11680, 0x116b8}, {0x116c0, 0x116c9}, {0x11700, 0x1171a}, {0x1171d, 0x1172b}, {0x11730, 0x11739}, {0x11740, 0x11746}, + {0x11800, 0x1183a}, {0x118a0, 0x118e9}, {0x118ff, 0x11906}, {0x11909, 0x11909}, {0x1190c, 0x11913}, {0x11915, 0x11916}, {0x11918, 0x11935}, {0x11937, 0x11938}, + {0x1193b, 0x11943}, {0x11950, 0x11959}, {0x119a0, 0x119a7}, {0x119aa, 0x119d7}, {0x119da, 0x119e1}, {0x119e3, 0x119e4}, {0x11a00, 0x11a3e}, {0x11a47, 0x11a47}, + {0x11a50, 0x11a99}, {0x11a9d, 0x11a9d}, {0x11ab0, 0x11af8}, {0x11c00, 0x11c08}, {0x11c0a, 0x11c36}, {0x11c38, 0x11c40}, {0x11c50, 0x11c59}, {0x11c72, 0x11c8f}, + {0x11c92, 0x11ca7}, {0x11ca9, 0x11cb6}, {0x11d00, 0x11d06}, {0x11d08, 0x11d09}, {0x11d0b, 0x11d36}, {0x11d3a, 0x11d3a}, {0x11d3c, 0x11d3d}, {0x11d3f, 0x11d47}, + {0x11d50, 0x11d59}, {0x11d60, 0x11d65}, {0x11d67, 0x11d68}, {0x11d6a, 0x11d8e}, {0x11d90, 0x11d91}, {0x11d93, 0x11d98}, {0x11da0, 0x11da9}, {0x11ee0, 0x11ef6}, + {0x11f00, 0x11f10}, {0x11f12, 0x11f3a}, {0x11f3e, 0x11f42}, {0x11f50, 0x11f59}, {0x11fb0, 0x11fb0}, {0x12000, 0x12399}, {0x12400, 0x1246e}, {0x12480, 0x12543}, + {0x12f90, 0x12ff0}, {0x13000, 0x1342f}, {0x13440, 0x13455}, {0x14400, 0x14646}, {0x16800, 0x16a38}, {0x16a40, 0x16a5e}, {0x16a60, 0x16a69}, {0x16a70, 0x16abe}, + {0x16ac0, 0x16ac9}, {0x16ad0, 0x16aed}, {0x16af0, 0x16af4}, {0x16b00, 0x16b36}, {0x16b40, 0x16b43}, {0x16b50, 0x16b59}, {0x16b63, 0x16b77}, {0x16b7d, 0x16b8f}, + {0x16e40, 0x16e7f}, {0x16f00, 0x16f4a}, {0x16f4f, 0x16f87}, {0x16f8f, 0x16f9f}, {0x16fe0, 0x16fe1}, {0x16fe3, 0x16fe4}, {0x16ff0, 0x16ff1}, {0x17000, 0x187f7}, + {0x18800, 0x18cd5}, {0x18d00, 0x18d08}, {0x1aff0, 0x1aff3}, {0x1aff5, 0x1affb}, {0x1affd, 0x1affe}, {0x1b000, 0x1b122}, {0x1b132, 0x1b132}, {0x1b150, 0x1b152}, + {0x1b155, 0x1b155}, {0x1b164, 0x1b167}, {0x1b170, 0x1b2fb}, {0x1bc00, 0x1bc6a}, {0x1bc70, 0x1bc7c}, {0x1bc80, 0x1bc88}, {0x1bc90, 0x1bc99}, {0x1bc9d, 0x1bc9e}, + {0x1cf00, 0x1cf2d}, {0x1cf30, 0x1cf46}, {0x1d165, 0x1d169}, {0x1d16d, 0x1d172}, {0x1d17b, 0x1d182}, {0x1d185, 0x1d18b}, {0x1d1aa, 0x1d1ad}, {0x1d242, 0x1d244}, + {0x1d400, 0x1d454}, {0x1d456, 0x1d49c}, {0x1d49e, 0x1d49f}, {0x1d4a2, 0x1d4a2}, {0x1d4a5, 0x1d4a6}, {0x1d4a9, 0x1d4ac}, {0x1d4ae, 0x1d4b9}, {0x1d4bb, 0x1d4bb}, + {0x1d4bd, 0x1d4c3}, {0x1d4c5, 0x1d505}, {0x1d507, 0x1d50a}, {0x1d50d, 0x1d514}, {0x1d516, 0x1d51c}, {0x1d51e, 0x1d539}, {0x1d53b, 0x1d53e}, {0x1d540, 0x1d544}, + {0x1d546, 0x1d546}, {0x1d54a, 0x1d550}, {0x1d552, 0x1d6a5}, {0x1d6a8, 0x1d6c0}, {0x1d6c2, 0x1d6da}, {0x1d6dc, 0x1d6fa}, {0x1d6fc, 0x1d714}, {0x1d716, 0x1d734}, + {0x1d736, 0x1d74e}, {0x1d750, 0x1d76e}, {0x1d770, 0x1d788}, {0x1d78a, 0x1d7a8}, {0x1d7aa, 0x1d7c2}, {0x1d7c4, 0x1d7cb}, {0x1d7ce, 0x1d7ff}, {0x1da00, 0x1da36}, + {0x1da3b, 0x1da6c}, {0x1da75, 0x1da75}, {0x1da84, 0x1da84}, {0x1da9b, 0x1da9f}, {0x1daa1, 0x1daaf}, {0x1df00, 0x1df1e}, {0x1df25, 0x1df2a}, {0x1e000, 0x1e006}, + {0x1e008, 0x1e018}, {0x1e01b, 0x1e021}, {0x1e023, 0x1e024}, {0x1e026, 0x1e02a}, {0x1e030, 0x1e06d}, {0x1e08f, 0x1e08f}, {0x1e100, 0x1e12c}, {0x1e130, 0x1e13d}, + {0x1e140, 0x1e149}, {0x1e14e, 0x1e14e}, {0x1e290, 0x1e2ae}, {0x1e2c0, 0x1e2f9}, {0x1e4d0, 0x1e4f9}, {0x1e7e0, 0x1e7e6}, {0x1e7e8, 0x1e7eb}, {0x1e7ed, 0x1e7ee}, + {0x1e7f0, 0x1e7fe}, {0x1e800, 0x1e8c4}, {0x1e8d0, 0x1e8d6}, {0x1e900, 0x1e94b}, {0x1e950, 0x1e959}, {0x1ee00, 0x1ee03}, {0x1ee05, 0x1ee1f}, {0x1ee21, 0x1ee22}, + {0x1ee24, 0x1ee24}, {0x1ee27, 0x1ee27}, {0x1ee29, 0x1ee32}, {0x1ee34, 0x1ee37}, {0x1ee39, 0x1ee39}, {0x1ee3b, 0x1ee3b}, {0x1ee42, 0x1ee42}, {0x1ee47, 0x1ee47}, + {0x1ee49, 0x1ee49}, {0x1ee4b, 0x1ee4b}, {0x1ee4d, 0x1ee4f}, {0x1ee51, 0x1ee52}, {0x1ee54, 0x1ee54}, {0x1ee57, 0x1ee57}, {0x1ee59, 0x1ee59}, {0x1ee5b, 0x1ee5b}, + {0x1ee5d, 0x1ee5d}, {0x1ee5f, 0x1ee5f}, {0x1ee61, 0x1ee62}, {0x1ee64, 0x1ee64}, {0x1ee67, 0x1ee6a}, {0x1ee6c, 0x1ee72}, {0x1ee74, 0x1ee77}, {0x1ee79, 0x1ee7c}, + {0x1ee7e, 0x1ee7e}, {0x1ee80, 0x1ee89}, {0x1ee8b, 0x1ee9b}, {0x1eea1, 0x1eea3}, {0x1eea5, 0x1eea9}, {0x1eeab, 0x1eebb}, {0x1fbf0, 0x1fbf9}, {0x20000, 0x2a6df}, + {0x2a700, 0x2b739}, {0x2b740, 0x2b81d}, {0x2b820, 0x2cea1}, {0x2ceb0, 0x2ebe0}, {0x2ebf0, 0x2ee5d}, {0x2f800, 0x2fa1d}, {0x30000, 0x3134a}, {0x31350, 0x323af}, + {0xe0100, 0xe01ef}, }; static bool ts_lex(TSLexer *lexer, TSStateId state) { @@ -316,75 +466,99 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { case 0: if (eof) ADVANCE(9); ADVANCE_MAP( - '"', 1, - '#', 5, - '-', 14, - '.', 6, + '"', 3, + '#', 17, + '-', 13, + '.', 19, '/', 10, - '=', 15, - '>', 13, - '@', 19, - '{', 11, - '}', 12, - 0x1680, 16, + '=', 14, + '@', 22, + '{', 12, + '}', 15, ); - if (set_contains(sym__S_character_set_1, 10, lookahead)) ADVANCE(26); - if (set_contains(sym_node_name_character_set_1, 16, lookahead)) ADVANCE(18); + if (('\t' <= lookahead && lookahead <= '\r') || + lookahead == ' ' || + lookahead == 0x85 || + lookahead == 0x200e || + lookahead == 0x200f || + lookahead == 0x2028 || + lookahead == 0x2029) SKIP(7); + if (set_contains(aux_sym_node_name_token1_character_set_1, 667, lookahead)) ADVANCE(18); END_STATE(); case 1: - if (lookahead == '"') ADVANCE(25); - if (lookahead == '\\') ADVANCE(7); + if (lookahead == '"') ADVANCE(16); + if (lookahead == '\\') ADVANCE(4); if (lookahead != 0) ADVANCE(1); END_STATE(); case 2: - if (lookahead == '#') ADVANCE(5); - if (lookahead == '.') ADVANCE(6); - if (lookahead == '{') ADVANCE(11); - if (lookahead == 0x1680) ADVANCE(16); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9')) ADVANCE(24); - if (set_contains(sym__S_character_set_1, 10, lookahead)) ADVANCE(26); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(17); - if (set_contains(sym_node_name_character_set_1, 16, lookahead)) ADVANCE(18); + if (lookahead == '@') ADVANCE(22); + if (lookahead == '\\') ADVANCE(5); + if (lookahead == '}') ADVANCE(15); + if (('\t' <= lookahead && lookahead <= '\r') || + lookahead == ' ' || + lookahead == 0x85 || + lookahead == 0x200e || + lookahead == 0x200f || + lookahead == 0x2028 || + lookahead == 0x2029) ADVANCE(20); + if (lookahead != 0) ADVANCE(21); END_STATE(); case 3: - if (lookahead == '@') ADVANCE(19); if (lookahead == '\\') ADVANCE(4); - if (lookahead == '}') ADVANCE(12); - if (set_contains(sym__S_character_set_1, 10, lookahead)) ADVANCE(20); - if (lookahead != 0) ADVANCE(21); + if (lookahead != 0 && + lookahead != '"') ADVANCE(1); END_STATE(); case 4: + if (lookahead == '"' || + lookahead == '\\') ADVANCE(1); + END_STATE(); + case 5: if (lookahead == '@' || lookahead == '\\' || lookahead == '}') ADVANCE(21); END_STATE(); - case 5: - if ((!eof && set_contains(sym_class_shorthand_character_set_1, 11, lookahead))) ADVANCE(23); - END_STATE(); case 6: - if ((!eof && set_contains(sym_class_shorthand_character_set_1, 11, lookahead))) ADVANCE(22); + if (set_contains(aux_sym_node_name_token1_character_set_1, 667, lookahead)) ADVANCE(18); END_STATE(); case 7: - if (lookahead != 0 && - lookahead != '\n') ADVANCE(1); + if (eof) ADVANCE(9); + ADVANCE_MAP( + '"', 3, + '#', 17, + '-', 13, + '.', 19, + '/', 10, + '=', 14, + '@', 22, + '{', 12, + '}', 15, + ); + if (('\t' <= lookahead && lookahead <= '\r') || + lookahead == ' ' || + lookahead == 0x85 || + lookahead == 0x200e || + lookahead == 0x200f || + lookahead == 0x2028 || + lookahead == 0x2029) SKIP(7); + if (set_contains(aux_sym_node_name_token1_character_set_1, 667, lookahead)) ADVANCE(11); END_STATE(); case 8: if (eof) ADVANCE(9); - if (lookahead == '"') ADVANCE(1); - if (lookahead == '#') ADVANCE(5); - if (lookahead == '.') ADVANCE(6); - if (lookahead == '=') ADVANCE(15); - if (lookahead == '{') ADVANCE(11); - if (lookahead == '}') ADVANCE(12); - if (set_contains(sym__S_character_set_1, 10, lookahead)) ADVANCE(26); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(24); + if (lookahead == '#') ADVANCE(17); + if (lookahead == '-') ADVANCE(13); + if (lookahead == '.') ADVANCE(19); + if (lookahead == '/') ADVANCE(10); + if (lookahead == '=') ADVANCE(14); + if (lookahead == '{') ADVANCE(12); + if (lookahead == '}') ADVANCE(15); + if (('\t' <= lookahead && lookahead <= '\r') || + lookahead == ' ' || + lookahead == 0x85 || + lookahead == 0x200e || + lookahead == 0x200f || + lookahead == 0x2028 || + lookahead == 0x2029) SKIP(8); + if (set_contains(aux_sym_node_name_token1_character_set_1, 667, lookahead)) ADVANCE(11); END_STATE(); case 9: ACCEPT_TOKEN(ts_builtin_sym_end); @@ -393,79 +567,57 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { ACCEPT_TOKEN(anon_sym_SLASH); END_STATE(); case 11: - ACCEPT_TOKEN(anon_sym_LBRACE); + ACCEPT_TOKEN(aux_sym_node_name_token1); + if (set_contains(aux_sym_node_name_token1_character_set_2, 777, lookahead)) ADVANCE(11); END_STATE(); case 12: - ACCEPT_TOKEN(anon_sym_RBRACE); + ACCEPT_TOKEN(anon_sym_LBRACE); END_STATE(); case 13: - ACCEPT_TOKEN(anon_sym_GT); + ACCEPT_TOKEN(anon_sym_DASH); END_STATE(); case 14: - ACCEPT_TOKEN(anon_sym_DASH); + ACCEPT_TOKEN(anon_sym_EQ); END_STATE(); case 15: - ACCEPT_TOKEN(anon_sym_EQ); + ACCEPT_TOKEN(anon_sym_RBRACE); END_STATE(); case 16: - ACCEPT_TOKEN(sym_node_name); - if (lookahead == 0x1680) ADVANCE(16); - if (set_contains(sym__S_character_set_1, 10, lookahead)) ADVANCE(26); - if (set_contains(sym_node_name_character_set_2, 18, lookahead)) ADVANCE(18); + ACCEPT_TOKEN(aux_sym_attr_token1); END_STATE(); case 17: - ACCEPT_TOKEN(sym_node_name); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(17); - if (set_contains(sym_node_name_character_set_2, 18, lookahead)) ADVANCE(18); + ACCEPT_TOKEN(anon_sym_POUND); END_STATE(); case 18: - ACCEPT_TOKEN(sym_node_name); - if (set_contains(sym_node_name_character_set_2, 18, lookahead)) ADVANCE(18); + ACCEPT_TOKEN(aux_sym_id_attr_token1); + if (set_contains(aux_sym_node_name_token1_character_set_2, 777, lookahead)) ADVANCE(18); END_STATE(); case 19: - ACCEPT_TOKEN(anon_sym_AT); + ACCEPT_TOKEN(anon_sym_DOT); END_STATE(); case 20: - ACCEPT_TOKEN(sym_literal_text); - if (lookahead == '\\') ADVANCE(4); - if (set_contains(sym__S_character_set_1, 10, lookahead)) ADVANCE(20); + ACCEPT_TOKEN(aux_sym_text_token1); + if (lookahead == '\\') ADVANCE(5); + if (('\t' <= lookahead && lookahead <= '\r') || + lookahead == ' ' || + lookahead == 0x85 || + lookahead == 0x200e || + lookahead == 0x200f || + lookahead == 0x2028 || + lookahead == 0x2029) ADVANCE(20); if (lookahead != 0 && lookahead != '@' && lookahead != '}') ADVANCE(21); END_STATE(); case 21: - ACCEPT_TOKEN(sym_literal_text); - if (lookahead == '\\') ADVANCE(4); + ACCEPT_TOKEN(aux_sym_text_token1); + if (lookahead == '\\') ADVANCE(5); if (lookahead != 0 && lookahead != '@' && lookahead != '}') ADVANCE(21); END_STATE(); case 22: - ACCEPT_TOKEN(sym_class_shorthand); - if ((!eof && set_contains(sym_class_shorthand_character_set_1, 11, lookahead))) ADVANCE(22); - END_STATE(); - case 23: - ACCEPT_TOKEN(sym_id_shorthand); - if ((!eof && set_contains(sym_class_shorthand_character_set_1, 11, lookahead))) ADVANCE(23); - END_STATE(); - case 24: - ACCEPT_TOKEN(sym_attribute_name); - if (lookahead == '-' || - ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(24); - END_STATE(); - case 25: - ACCEPT_TOKEN(sym_attribute_value); - END_STATE(); - case 26: - ACCEPT_TOKEN(sym__S); - if (set_contains(sym__S_character_set_1, 10, lookahead)) ADVANCE(26); + ACCEPT_TOKEN(anon_sym_AT); END_STATE(); default: return false; @@ -474,1056 +626,542 @@ 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 = 0}, - [9] = {.lex_state = 0}, - [10] = {.lex_state = 0}, - [11] = {.lex_state = 0}, - [12] = {.lex_state = 0}, - [13] = {.lex_state = 0}, + [1] = {.lex_state = 8}, + [2] = {.lex_state = 8}, + [3] = {.lex_state = 8}, + [4] = {.lex_state = 8}, + [5] = {.lex_state = 8}, + [6] = {.lex_state = 8}, + [7] = {.lex_state = 8}, + [8] = {.lex_state = 8}, + [9] = {.lex_state = 8}, + [10] = {.lex_state = 8}, + [11] = {.lex_state = 8}, + [12] = {.lex_state = 8}, + [13] = {.lex_state = 2}, [14] = {.lex_state = 2}, - [15] = {.lex_state = 2}, - [16] = {.lex_state = 0}, - [17] = {.lex_state = 0}, + [15] = {.lex_state = 8}, + [16] = {.lex_state = 8}, + [17] = {.lex_state = 8}, [18] = {.lex_state = 8}, - [19] = {.lex_state = 8}, - [20] = {.lex_state = 0}, + [19] = {.lex_state = 2}, + [20] = {.lex_state = 8}, [21] = {.lex_state = 8}, [22] = {.lex_state = 8}, - [23] = {.lex_state = 8}, + [23] = {.lex_state = 2}, [24] = {.lex_state = 8}, [25] = {.lex_state = 8}, [26] = {.lex_state = 8}, - [27] = {.lex_state = 3}, - [28] = {.lex_state = 0}, - [29] = {.lex_state = 0}, - [30] = {.lex_state = 8}, - [31] = {.lex_state = 0}, - [32] = {.lex_state = 0}, - [33] = {.lex_state = 0}, - [34] = {.lex_state = 0}, - [35] = {.lex_state = 0}, + [27] = {.lex_state = 2}, + [28] = {.lex_state = 2}, + [29] = {.lex_state = 8}, + [30] = {.lex_state = 2}, + [31] = {.lex_state = 2}, + [32] = {.lex_state = 2}, + [33] = {.lex_state = 2}, + [34] = {.lex_state = 2}, + [35] = {.lex_state = 8}, [36] = {.lex_state = 0}, [37] = {.lex_state = 0}, - [38] = {.lex_state = 8}, - [39] = {.lex_state = 3}, - [40] = {.lex_state = 8}, - [41] = {.lex_state = 3}, - [42] = {.lex_state = 3}, - [43] = {.lex_state = 3}, - [44] = {.lex_state = 3}, - [45] = {.lex_state = 3}, - [46] = {.lex_state = 3}, - [47] = {.lex_state = 3}, - [48] = {.lex_state = 3}, - [49] = {.lex_state = 3}, - [50] = {.lex_state = 3}, - [51] = {.lex_state = 8}, - [52] = {.lex_state = 8}, - [53] = {.lex_state = 8}, - [54] = {.lex_state = 8}, - [55] = {.lex_state = 8}, - [56] = {.lex_state = 8}, - [57] = {.lex_state = 8}, - [58] = {.lex_state = 8}, - [59] = {.lex_state = 0}, - [60] = {.lex_state = 8}, - [61] = {.lex_state = 8}, - [62] = {.lex_state = 8}, - [63] = {.lex_state = 8}, - [64] = {.lex_state = 8}, - [65] = {.lex_state = 8}, - [66] = {.lex_state = 8}, - [67] = {.lex_state = 8}, - [68] = {.lex_state = 8}, - [69] = {.lex_state = 8}, - [70] = {.lex_state = 8}, - [71] = {.lex_state = 8}, - [72] = {.lex_state = 8}, - [73] = {.lex_state = 8}, - [74] = {.lex_state = 8}, - [75] = {.lex_state = 0}, + [38] = {.lex_state = 0}, + [39] = {.lex_state = 0}, + [40] = {.lex_state = 6}, + [41] = {.lex_state = 6}, + [42] = {.lex_state = 0}, + [43] = {.lex_state = 0}, + [44] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [0] = { [ts_builtin_sym_end] = ACTIONS(1), [anon_sym_SLASH] = ACTIONS(1), + [aux_sym_node_name_token1] = ACTIONS(1), [anon_sym_LBRACE] = ACTIONS(1), - [anon_sym_RBRACE] = ACTIONS(1), - [anon_sym_GT] = ACTIONS(1), [anon_sym_DASH] = ACTIONS(1), [anon_sym_EQ] = ACTIONS(1), - [sym_node_name] = ACTIONS(1), + [anon_sym_RBRACE] = ACTIONS(1), + [aux_sym_attr_token1] = ACTIONS(1), + [anon_sym_POUND] = ACTIONS(1), + [aux_sym_id_attr_token1] = ACTIONS(1), + [anon_sym_DOT] = ACTIONS(1), [anon_sym_AT] = ACTIONS(1), - [sym_class_shorthand] = ACTIONS(1), - [sym_id_shorthand] = ACTIONS(1), - [sym_attribute_value] = ACTIONS(1), - [sym__S] = ACTIONS(3), }, [1] = { - [sym_source_file] = STATE(71), - [sym_comment] = STATE(17), - [sym_node] = STATE(17), - [aux_sym_source_file_repeat1] = STATE(17), - [ts_builtin_sym_end] = ACTIONS(5), - [anon_sym_SLASH] = ACTIONS(7), - [anon_sym_GT] = ACTIONS(9), - [sym_node_name] = ACTIONS(11), - [sym__S] = ACTIONS(3), + [sym_document] = STATE(43), + [sym__toplevel] = STATE(8), + [sym_comment] = STATE(8), + [sym_node] = STATE(8), + [sym_node_name] = STATE(2), + [aux_sym_document_repeat1] = STATE(8), + [ts_builtin_sym_end] = ACTIONS(3), + [anon_sym_SLASH] = ACTIONS(5), + [aux_sym_node_name_token1] = ACTIONS(7), }, }; static const uint16_t ts_small_parse_table[] = { - [0] = 8, - ACTIONS(3), 1, - sym__S, - ACTIONS(7), 1, - anon_sym_SLASH, + [0] = 7, ACTIONS(9), 1, - anon_sym_GT, + aux_sym_node_name_token1, ACTIONS(11), 1, - sym_node_name, + anon_sym_LBRACE, ACTIONS(13), 1, - anon_sym_RBRACE, - STATE(63), 1, + anon_sym_POUND, + ACTIONS(15), 1, + anon_sym_DOT, + STATE(15), 1, sym_node_body, - ACTIONS(15), 2, - anon_sym_DASH, - anon_sym_EQ, - STATE(20), 3, - sym_comment, - sym_node, - aux_sym_source_file_repeat1, - [28] = 8, - ACTIONS(3), 1, - sym__S, - ACTIONS(7), 1, + STATE(36), 1, + sym_attrs, + STATE(11), 4, + sym_attr, + sym_id_attr, + sym_class_attr, + aux_sym_attrs_repeat1, + [25] = 6, + ACTIONS(5), 1, anon_sym_SLASH, - ACTIONS(9), 1, - anon_sym_GT, - ACTIONS(11), 1, - sym_node_name, - ACTIONS(17), 1, - anon_sym_RBRACE, - STATE(54), 1, - sym_node_body, - ACTIONS(15), 2, - anon_sym_DASH, - anon_sym_EQ, - STATE(20), 3, - sym_comment, - sym_node, - aux_sym_source_file_repeat1, - [56] = 8, - ACTIONS(3), 1, - sym__S, ACTIONS(7), 1, - anon_sym_SLASH, - ACTIONS(9), 1, - anon_sym_GT, - ACTIONS(11), 1, - sym_node_name, + aux_sym_node_name_token1, ACTIONS(19), 1, anon_sym_RBRACE, - STATE(62), 1, - sym_node_body, - ACTIONS(15), 2, - anon_sym_DASH, - anon_sym_EQ, - STATE(20), 3, - sym_comment, - sym_node, - aux_sym_source_file_repeat1, - [84] = 8, - ACTIONS(3), 1, - sym__S, - ACTIONS(7), 1, - anon_sym_SLASH, - ACTIONS(9), 1, - anon_sym_GT, - ACTIONS(11), 1, + STATE(2), 1, sym_node_name, - ACTIONS(21), 1, - anon_sym_RBRACE, - STATE(57), 1, - sym_node_body, - ACTIONS(15), 2, + ACTIONS(17), 2, anon_sym_DASH, anon_sym_EQ, - STATE(20), 3, + STATE(7), 4, + sym__toplevel, sym_comment, sym_node, - aux_sym_source_file_repeat1, - [112] = 8, - ACTIONS(3), 1, - sym__S, - ACTIONS(7), 1, + aux_sym_document_repeat1, + [48] = 6, + ACTIONS(5), 1, anon_sym_SLASH, - ACTIONS(9), 1, - anon_sym_GT, - ACTIONS(11), 1, - sym_node_name, + ACTIONS(7), 1, + aux_sym_node_name_token1, ACTIONS(23), 1, anon_sym_RBRACE, - STATE(53), 1, - sym_node_body, - ACTIONS(15), 2, - anon_sym_DASH, - anon_sym_EQ, - STATE(20), 3, - sym_comment, - sym_node, - aux_sym_source_file_repeat1, - [140] = 8, - ACTIONS(3), 1, - sym__S, - ACTIONS(7), 1, - anon_sym_SLASH, - ACTIONS(9), 1, - anon_sym_GT, - ACTIONS(11), 1, + STATE(2), 1, sym_node_name, - ACTIONS(25), 1, - anon_sym_RBRACE, - STATE(51), 1, - sym_node_body, - ACTIONS(15), 2, + ACTIONS(21), 2, anon_sym_DASH, anon_sym_EQ, - STATE(20), 3, + STATE(10), 4, + sym__toplevel, sym_comment, sym_node, - aux_sym_source_file_repeat1, - [168] = 8, - ACTIONS(3), 1, - sym__S, - ACTIONS(7), 1, - anon_sym_SLASH, + aux_sym_document_repeat1, + [71] = 7, ACTIONS(9), 1, - anon_sym_GT, - ACTIONS(11), 1, - sym_node_name, - ACTIONS(27), 1, - anon_sym_RBRACE, - STATE(60), 1, + aux_sym_node_name_token1, + ACTIONS(13), 1, + anon_sym_POUND, + ACTIONS(15), 1, + anon_sym_DOT, + ACTIONS(25), 1, + anon_sym_LBRACE, + STATE(27), 1, sym_node_body, - ACTIONS(15), 2, - anon_sym_DASH, - anon_sym_EQ, - STATE(20), 3, - sym_comment, - sym_node, - aux_sym_source_file_repeat1, - [196] = 8, - ACTIONS(3), 1, - sym__S, - ACTIONS(7), 1, - anon_sym_SLASH, - ACTIONS(9), 1, - anon_sym_GT, - ACTIONS(11), 1, - sym_node_name, + STATE(37), 1, + sym_attrs, + STATE(11), 4, + sym_attr, + sym_id_attr, + sym_class_attr, + aux_sym_attrs_repeat1, + [96] = 5, ACTIONS(29), 1, - anon_sym_RBRACE, - STATE(68), 1, - sym_node_body, - ACTIONS(15), 2, - anon_sym_DASH, - anon_sym_EQ, - STATE(20), 3, - sym_comment, - sym_node, - aux_sym_source_file_repeat1, - [224] = 8, - ACTIONS(3), 1, - sym__S, - ACTIONS(7), 1, anon_sym_SLASH, - ACTIONS(9), 1, - anon_sym_GT, - ACTIONS(11), 1, + ACTIONS(32), 1, + aux_sym_node_name_token1, + STATE(2), 1, sym_node_name, - ACTIONS(31), 1, + ACTIONS(27), 2, + ts_builtin_sym_end, anon_sym_RBRACE, - STATE(66), 1, - sym_node_body, - ACTIONS(15), 2, - anon_sym_DASH, - anon_sym_EQ, - STATE(20), 3, + STATE(6), 4, + sym__toplevel, sym_comment, sym_node, - aux_sym_source_file_repeat1, - [252] = 8, - ACTIONS(3), 1, - sym__S, - ACTIONS(7), 1, + aux_sym_document_repeat1, + [116] = 5, + ACTIONS(5), 1, anon_sym_SLASH, - ACTIONS(9), 1, - anon_sym_GT, - ACTIONS(11), 1, - sym_node_name, - ACTIONS(33), 1, - anon_sym_RBRACE, - STATE(61), 1, - sym_node_body, - ACTIONS(15), 2, - anon_sym_DASH, - anon_sym_EQ, - STATE(20), 3, - sym_comment, - sym_node, - aux_sym_source_file_repeat1, - [280] = 8, - ACTIONS(3), 1, - sym__S, ACTIONS(7), 1, - anon_sym_SLASH, - ACTIONS(9), 1, - anon_sym_GT, - ACTIONS(11), 1, - sym_node_name, + aux_sym_node_name_token1, ACTIONS(35), 1, anon_sym_RBRACE, - STATE(64), 1, - sym_node_body, - ACTIONS(15), 2, - anon_sym_DASH, - anon_sym_EQ, - STATE(20), 3, + STATE(2), 1, + sym_node_name, + STATE(6), 4, + sym__toplevel, sym_comment, sym_node, - aux_sym_source_file_repeat1, - [308] = 8, - ACTIONS(3), 1, - sym__S, - ACTIONS(7), 1, + aux_sym_document_repeat1, + [135] = 5, + ACTIONS(5), 1, anon_sym_SLASH, - ACTIONS(9), 1, - anon_sym_GT, - ACTIONS(11), 1, - sym_node_name, + ACTIONS(7), 1, + aux_sym_node_name_token1, ACTIONS(37), 1, - anon_sym_RBRACE, - STATE(65), 1, - sym_node_body, - ACTIONS(15), 2, - anon_sym_DASH, - anon_sym_EQ, - STATE(20), 3, + ts_builtin_sym_end, + STATE(2), 1, + sym_node_name, + STATE(6), 4, + sym__toplevel, sym_comment, sym_node, - aux_sym_source_file_repeat1, - [336] = 7, - ACTIONS(3), 1, - sym__S, + aux_sym_document_repeat1, + [154] = 5, ACTIONS(39), 1, + aux_sym_node_name_token1, + ACTIONS(42), 1, anon_sym_LBRACE, - ACTIONS(41), 1, - sym_node_name, - ACTIONS(45), 1, - sym_attribute_name, - STATE(67), 1, - sym_attribute_list, - ACTIONS(43), 2, - sym_class_shorthand, - sym_id_shorthand, - STATE(25), 2, - sym_attribute, - aux_sym_attribute_list_repeat1, - [360] = 7, - ACTIONS(3), 1, - sym__S, - ACTIONS(45), 1, - sym_attribute_name, + ACTIONS(44), 1, + anon_sym_POUND, ACTIONS(47), 1, - anon_sym_LBRACE, - ACTIONS(49), 1, - sym_node_name, - STATE(70), 1, - sym_attribute_list, - ACTIONS(43), 2, - sym_class_shorthand, - sym_id_shorthand, - STATE(25), 2, - sym_attribute, - aux_sym_attribute_list_repeat1, - [384] = 6, - ACTIONS(3), 1, - sym__S, - ACTIONS(53), 1, + anon_sym_DOT, + STATE(9), 4, + sym_attr, + sym_id_attr, + sym_class_attr, + aux_sym_attrs_repeat1, + [173] = 5, + ACTIONS(5), 1, anon_sym_SLASH, - ACTIONS(56), 1, - anon_sym_GT, - ACTIONS(59), 1, - sym_node_name, - ACTIONS(51), 2, - ts_builtin_sym_end, - anon_sym_RBRACE, - STATE(16), 3, - sym_comment, - sym_node, - aux_sym_source_file_repeat1, - [406] = 6, - ACTIONS(3), 1, - sym__S, ACTIONS(7), 1, - anon_sym_SLASH, - ACTIONS(9), 1, - anon_sym_GT, - ACTIONS(11), 1, + aux_sym_node_name_token1, + ACTIONS(50), 1, + anon_sym_RBRACE, + STATE(2), 1, sym_node_name, - ACTIONS(62), 1, - ts_builtin_sym_end, - STATE(16), 3, + STATE(6), 4, + sym__toplevel, sym_comment, sym_node, - aux_sym_source_file_repeat1, - [427] = 6, - ACTIONS(64), 1, - anon_sym_LBRACE, - ACTIONS(66), 1, - sym_attribute_name, - ACTIONS(68), 1, - sym__S, - STATE(74), 1, - sym_attribute_list, - ACTIONS(43), 2, - sym_class_shorthand, - sym_id_shorthand, - STATE(25), 2, - sym_attribute, - aux_sym_attribute_list_repeat1, - [448] = 6, - ACTIONS(66), 1, - sym_attribute_name, - ACTIONS(68), 1, - sym__S, - ACTIONS(70), 1, + aux_sym_document_repeat1, + [192] = 5, + ACTIONS(9), 1, + aux_sym_node_name_token1, + ACTIONS(13), 1, + anon_sym_POUND, + ACTIONS(15), 1, + anon_sym_DOT, + ACTIONS(52), 1, anon_sym_LBRACE, - STATE(55), 1, - sym_attribute_list, - ACTIONS(43), 2, - sym_class_shorthand, - sym_id_shorthand, - STATE(25), 2, - sym_attribute, - aux_sym_attribute_list_repeat1, - [469] = 6, - ACTIONS(3), 1, - sym__S, + STATE(9), 4, + sym_attr, + sym_id_attr, + sym_class_attr, + aux_sym_attrs_repeat1, + [211] = 4, ACTIONS(7), 1, + aux_sym_node_name_token1, + ACTIONS(54), 1, anon_sym_SLASH, - ACTIONS(9), 1, - anon_sym_GT, - ACTIONS(11), 1, + STATE(5), 1, sym_node_name, - ACTIONS(72), 1, - anon_sym_RBRACE, - STATE(16), 3, + STATE(28), 3, + sym__toplevel, sym_comment, sym_node, - aux_sym_source_file_repeat1, - [490] = 6, - ACTIONS(66), 1, - sym_attribute_name, - ACTIONS(68), 1, - sym__S, - ACTIONS(74), 1, - anon_sym_LBRACE, - STATE(72), 1, - sym_attribute_list, - ACTIONS(43), 2, - sym_class_shorthand, - sym_id_shorthand, - STATE(25), 2, - sym_attribute, - aux_sym_attribute_list_repeat1, - [511] = 6, - ACTIONS(66), 1, - sym_attribute_name, - ACTIONS(68), 1, - sym__S, - ACTIONS(76), 1, - anon_sym_LBRACE, - STATE(58), 1, - sym_attribute_list, - ACTIONS(43), 2, - sym_class_shorthand, - sym_id_shorthand, - STATE(25), 2, - sym_attribute, - aux_sym_attribute_list_repeat1, - [532] = 6, - ACTIONS(66), 1, - sym_attribute_name, - ACTIONS(68), 1, - sym__S, - ACTIONS(78), 1, - anon_sym_LBRACE, - STATE(73), 1, - sym_attribute_list, - ACTIONS(43), 2, - sym_class_shorthand, - sym_id_shorthand, - STATE(25), 2, - sym_attribute, - aux_sym_attribute_list_repeat1, - [553] = 6, - ACTIONS(66), 1, - sym_attribute_name, - ACTIONS(68), 1, - sym__S, - ACTIONS(80), 1, - anon_sym_LBRACE, - STATE(52), 1, - sym_attribute_list, - ACTIONS(43), 2, - sym_class_shorthand, - sym_id_shorthand, - STATE(25), 2, - sym_attribute, - aux_sym_attribute_list_repeat1, - [574] = 5, - ACTIONS(66), 1, - sym_attribute_name, - ACTIONS(68), 1, - sym__S, - ACTIONS(82), 1, - anon_sym_LBRACE, - ACTIONS(43), 2, - sym_class_shorthand, - sym_id_shorthand, - STATE(26), 2, - sym_attribute, - aux_sym_attribute_list_repeat1, - [592] = 5, - ACTIONS(68), 1, - sym__S, - ACTIONS(84), 1, - anon_sym_LBRACE, - ACTIONS(89), 1, - sym_attribute_name, - ACTIONS(86), 2, - sym_class_shorthand, - sym_id_shorthand, - STATE(26), 2, - sym_attribute, - aux_sym_attribute_list_repeat1, - [610] = 6, - ACTIONS(3), 1, - sym__S, - ACTIONS(72), 1, + [226] = 5, + ACTIONS(56), 1, anon_sym_RBRACE, - ACTIONS(92), 1, + ACTIONS(58), 1, + aux_sym_text_token1, + ACTIONS(60), 1, anon_sym_AT, - ACTIONS(94), 1, - sym_literal_text, - STATE(39), 1, + STATE(23), 1, aux_sym_text_repeat1, - STATE(69), 1, + STATE(44), 1, sym_text, - [629] = 3, - ACTIONS(3), 1, - sym__S, - ACTIONS(98), 1, - sym_node_name, - ACTIONS(96), 4, - ts_builtin_sym_end, - anon_sym_SLASH, - anon_sym_RBRACE, - anon_sym_GT, - [642] = 5, - ACTIONS(3), 1, - sym__S, - ACTIONS(100), 1, - anon_sym_SLASH, - ACTIONS(102), 1, - anon_sym_GT, - ACTIONS(104), 1, - sym_node_name, - STATE(44), 2, - sym_comment, - sym_node, - [659] = 3, - ACTIONS(68), 1, - sym__S, - ACTIONS(108), 1, - anon_sym_EQ, - ACTIONS(106), 4, - anon_sym_LBRACE, - sym_class_shorthand, - sym_id_shorthand, - sym_attribute_name, - [672] = 3, - ACTIONS(3), 1, - sym__S, - ACTIONS(112), 1, - sym_node_name, - ACTIONS(110), 4, - ts_builtin_sym_end, - anon_sym_SLASH, - anon_sym_RBRACE, - anon_sym_GT, - [685] = 3, - ACTIONS(3), 1, - sym__S, - ACTIONS(116), 1, - sym_node_name, - ACTIONS(114), 4, - ts_builtin_sym_end, - anon_sym_SLASH, + [242] = 5, + ACTIONS(58), 1, + aux_sym_text_token1, + ACTIONS(60), 1, + anon_sym_AT, + ACTIONS(62), 1, anon_sym_RBRACE, - anon_sym_GT, - [698] = 3, - ACTIONS(3), 1, - sym__S, - ACTIONS(120), 1, - sym_node_name, - ACTIONS(118), 4, + STATE(23), 1, + aux_sym_text_repeat1, + STATE(38), 1, + sym_text, + [258] = 1, + ACTIONS(64), 4, ts_builtin_sym_end, anon_sym_SLASH, + aux_sym_node_name_token1, anon_sym_RBRACE, - anon_sym_GT, - [711] = 3, - ACTIONS(3), 1, - sym__S, - ACTIONS(124), 1, - sym_node_name, - ACTIONS(122), 4, + [265] = 1, + ACTIONS(66), 4, ts_builtin_sym_end, anon_sym_SLASH, + aux_sym_node_name_token1, anon_sym_RBRACE, - anon_sym_GT, - [724] = 3, - ACTIONS(3), 1, - sym__S, - ACTIONS(128), 1, - sym_node_name, - ACTIONS(126), 4, + [272] = 1, + ACTIONS(68), 4, + aux_sym_node_name_token1, + anon_sym_LBRACE, + anon_sym_POUND, + anon_sym_DOT, + [279] = 1, + ACTIONS(70), 4, ts_builtin_sym_end, anon_sym_SLASH, + aux_sym_node_name_token1, anon_sym_RBRACE, - anon_sym_GT, - [737] = 3, - ACTIONS(3), 1, - sym__S, - ACTIONS(132), 1, - sym_node_name, - ACTIONS(130), 4, - ts_builtin_sym_end, - anon_sym_SLASH, + [286] = 4, + ACTIONS(72), 1, anon_sym_RBRACE, - anon_sym_GT, - [750] = 3, - ACTIONS(3), 1, - sym__S, - ACTIONS(136), 1, - sym_node_name, - ACTIONS(134), 4, + ACTIONS(74), 1, + aux_sym_text_token1, + ACTIONS(77), 1, + anon_sym_AT, + STATE(19), 1, + aux_sym_text_repeat1, + [299] = 1, + ACTIONS(80), 4, + aux_sym_node_name_token1, + anon_sym_LBRACE, + anon_sym_POUND, + anon_sym_DOT, + [306] = 1, + ACTIONS(82), 4, + aux_sym_node_name_token1, + anon_sym_LBRACE, + anon_sym_POUND, + anon_sym_DOT, + [313] = 1, + ACTIONS(84), 4, ts_builtin_sym_end, anon_sym_SLASH, + aux_sym_node_name_token1, anon_sym_RBRACE, - anon_sym_GT, - [763] = 2, - ACTIONS(68), 1, - sym__S, - ACTIONS(106), 4, - anon_sym_LBRACE, - sym_class_shorthand, - sym_id_shorthand, - sym_attribute_name, - [773] = 5, - ACTIONS(3), 1, - sym__S, - ACTIONS(92), 1, + [320] = 4, + ACTIONS(60), 1, anon_sym_AT, - ACTIONS(138), 1, + ACTIONS(86), 1, anon_sym_RBRACE, - ACTIONS(140), 1, - sym_literal_text, - STATE(41), 1, + ACTIONS(88), 1, + aux_sym_text_token1, + STATE(19), 1, aux_sym_text_repeat1, - [789] = 2, - ACTIONS(68), 1, - sym__S, - ACTIONS(142), 4, + [333] = 1, + ACTIONS(90), 4, + aux_sym_node_name_token1, anon_sym_LBRACE, - sym_class_shorthand, - sym_id_shorthand, - sym_attribute_name, - [799] = 5, - ACTIONS(3), 1, - sym__S, - ACTIONS(144), 1, - anon_sym_RBRACE, - ACTIONS(146), 1, - anon_sym_AT, - ACTIONS(149), 1, - sym_literal_text, - STATE(41), 1, - aux_sym_text_repeat1, - [815] = 2, - ACTIONS(3), 1, - sym__S, - ACTIONS(126), 3, + anon_sym_POUND, + anon_sym_DOT, + [340] = 1, + ACTIONS(92), 4, + ts_builtin_sym_end, + anon_sym_SLASH, + aux_sym_node_name_token1, anon_sym_RBRACE, - anon_sym_AT, - sym_literal_text, - [824] = 2, - ACTIONS(3), 1, - sym__S, - ACTIONS(134), 3, + [347] = 1, + ACTIONS(94), 4, + ts_builtin_sym_end, + anon_sym_SLASH, + aux_sym_node_name_token1, anon_sym_RBRACE, - anon_sym_AT, - sym_literal_text, - [833] = 2, - ACTIONS(3), 1, - sym__S, - ACTIONS(144), 3, + [354] = 2, + ACTIONS(64), 1, + aux_sym_text_token1, + ACTIONS(96), 2, anon_sym_RBRACE, anon_sym_AT, - sym_literal_text, - [842] = 2, - ACTIONS(3), 1, - sym__S, - ACTIONS(130), 3, + [362] = 2, + ACTIONS(98), 1, + aux_sym_text_token1, + ACTIONS(72), 2, anon_sym_RBRACE, anon_sym_AT, - sym_literal_text, - [851] = 2, - ACTIONS(3), 1, - sym__S, - ACTIONS(96), 3, + [370] = 3, + ACTIONS(7), 1, + aux_sym_node_name_token1, + STATE(2), 1, + sym_node_name, + STATE(26), 1, + sym_node, + [380] = 2, + ACTIONS(94), 1, + aux_sym_text_token1, + ACTIONS(100), 2, anon_sym_RBRACE, anon_sym_AT, - sym_literal_text, - [860] = 2, - ACTIONS(3), 1, - sym__S, - ACTIONS(114), 3, + [388] = 2, + ACTIONS(70), 1, + aux_sym_text_token1, + ACTIONS(102), 2, anon_sym_RBRACE, anon_sym_AT, - sym_literal_text, - [869] = 2, - ACTIONS(3), 1, - sym__S, - ACTIONS(122), 3, + [396] = 2, + ACTIONS(84), 1, + aux_sym_text_token1, + ACTIONS(104), 2, anon_sym_RBRACE, anon_sym_AT, - sym_literal_text, - [878] = 2, - ACTIONS(3), 1, - sym__S, - ACTIONS(110), 3, + [404] = 2, + ACTIONS(92), 1, + aux_sym_text_token1, + ACTIONS(106), 2, anon_sym_RBRACE, anon_sym_AT, - sym_literal_text, - [887] = 2, - ACTIONS(3), 1, - sym__S, - ACTIONS(118), 3, + [412] = 2, + ACTIONS(66), 1, + aux_sym_text_token1, + ACTIONS(108), 2, anon_sym_RBRACE, anon_sym_AT, - sym_literal_text, - [896] = 2, - ACTIONS(29), 1, - anon_sym_RBRACE, - ACTIONS(68), 1, - sym__S, - [903] = 2, - ACTIONS(68), 1, - sym__S, - ACTIONS(70), 1, - anon_sym_LBRACE, - [910] = 2, - ACTIONS(68), 1, - sym__S, - ACTIONS(152), 1, - anon_sym_RBRACE, - [917] = 2, - ACTIONS(68), 1, - sym__S, - ACTIONS(154), 1, - anon_sym_RBRACE, - [924] = 2, - ACTIONS(68), 1, - sym__S, - ACTIONS(156), 1, - anon_sym_LBRACE, - [931] = 2, - ACTIONS(68), 1, - sym__S, - ACTIONS(158), 1, - sym_attribute_value, - [938] = 2, - ACTIONS(33), 1, - anon_sym_RBRACE, - ACTIONS(68), 1, - sym__S, - [945] = 2, - ACTIONS(68), 1, - sym__S, - ACTIONS(160), 1, - anon_sym_LBRACE, - [952] = 2, - ACTIONS(3), 1, - sym__S, - ACTIONS(162), 1, + [420] = 3, + ACTIONS(7), 1, + aux_sym_node_name_token1, + STATE(5), 1, sym_node_name, - [959] = 2, - ACTIONS(13), 1, - anon_sym_RBRACE, - ACTIONS(68), 1, - sym__S, - [966] = 2, - ACTIONS(37), 1, - anon_sym_RBRACE, - ACTIONS(68), 1, - sym__S, - [973] = 2, - ACTIONS(17), 1, - anon_sym_RBRACE, - ACTIONS(68), 1, - sym__S, - [980] = 2, - ACTIONS(31), 1, - anon_sym_RBRACE, - ACTIONS(68), 1, - sym__S, - [987] = 2, - ACTIONS(19), 1, - anon_sym_RBRACE, - ACTIONS(68), 1, - sym__S, - [994] = 2, - ACTIONS(68), 1, - sym__S, - ACTIONS(164), 1, - anon_sym_RBRACE, - [1001] = 2, - ACTIONS(68), 1, - sym__S, - ACTIONS(166), 1, - anon_sym_RBRACE, - [1008] = 2, - ACTIONS(68), 1, - sym__S, - ACTIONS(76), 1, + STATE(30), 1, + sym_node, + [430] = 2, + ACTIONS(11), 1, anon_sym_LBRACE, - [1015] = 2, - ACTIONS(23), 1, - anon_sym_RBRACE, - ACTIONS(68), 1, - sym__S, - [1022] = 2, - ACTIONS(68), 1, - sym__S, - ACTIONS(168), 1, - anon_sym_RBRACE, - [1029] = 2, - ACTIONS(68), 1, - sym__S, - ACTIONS(78), 1, + STATE(22), 1, + sym_node_body, + [437] = 2, + ACTIONS(25), 1, anon_sym_LBRACE, - [1036] = 2, - ACTIONS(68), 1, - sym__S, - ACTIONS(170), 1, + STATE(32), 1, + sym_node_body, + [444] = 1, + ACTIONS(110), 1, + anon_sym_RBRACE, + [448] = 1, + ACTIONS(112), 1, + aux_sym_attr_token1, + [452] = 1, + ACTIONS(114), 1, + aux_sym_id_attr_token1, + [456] = 1, + ACTIONS(116), 1, + aux_sym_id_attr_token1, + [460] = 1, + ACTIONS(118), 1, + anon_sym_EQ, + [464] = 1, + ACTIONS(120), 1, ts_builtin_sym_end, - [1043] = 2, - ACTIONS(64), 1, - anon_sym_LBRACE, - ACTIONS(68), 1, - sym__S, - [1050] = 2, - ACTIONS(68), 1, - sym__S, - ACTIONS(172), 1, - anon_sym_LBRACE, - [1057] = 2, - ACTIONS(68), 1, - sym__S, - ACTIONS(174), 1, - anon_sym_LBRACE, - [1064] = 2, - ACTIONS(3), 1, - sym__S, - ACTIONS(176), 1, - sym_node_name, + [468] = 1, + ACTIONS(122), 1, + anon_sym_RBRACE, }; static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(2)] = 0, - [SMALL_STATE(3)] = 28, - [SMALL_STATE(4)] = 56, - [SMALL_STATE(5)] = 84, - [SMALL_STATE(6)] = 112, - [SMALL_STATE(7)] = 140, - [SMALL_STATE(8)] = 168, - [SMALL_STATE(9)] = 196, - [SMALL_STATE(10)] = 224, - [SMALL_STATE(11)] = 252, - [SMALL_STATE(12)] = 280, - [SMALL_STATE(13)] = 308, - [SMALL_STATE(14)] = 336, - [SMALL_STATE(15)] = 360, - [SMALL_STATE(16)] = 384, - [SMALL_STATE(17)] = 406, - [SMALL_STATE(18)] = 427, - [SMALL_STATE(19)] = 448, - [SMALL_STATE(20)] = 469, - [SMALL_STATE(21)] = 490, - [SMALL_STATE(22)] = 511, - [SMALL_STATE(23)] = 532, - [SMALL_STATE(24)] = 553, - [SMALL_STATE(25)] = 574, - [SMALL_STATE(26)] = 592, - [SMALL_STATE(27)] = 610, - [SMALL_STATE(28)] = 629, - [SMALL_STATE(29)] = 642, - [SMALL_STATE(30)] = 659, - [SMALL_STATE(31)] = 672, - [SMALL_STATE(32)] = 685, - [SMALL_STATE(33)] = 698, - [SMALL_STATE(34)] = 711, - [SMALL_STATE(35)] = 724, - [SMALL_STATE(36)] = 737, - [SMALL_STATE(37)] = 750, - [SMALL_STATE(38)] = 763, - [SMALL_STATE(39)] = 773, - [SMALL_STATE(40)] = 789, - [SMALL_STATE(41)] = 799, - [SMALL_STATE(42)] = 815, - [SMALL_STATE(43)] = 824, - [SMALL_STATE(44)] = 833, - [SMALL_STATE(45)] = 842, - [SMALL_STATE(46)] = 851, - [SMALL_STATE(47)] = 860, - [SMALL_STATE(48)] = 869, - [SMALL_STATE(49)] = 878, - [SMALL_STATE(50)] = 887, - [SMALL_STATE(51)] = 896, - [SMALL_STATE(52)] = 903, - [SMALL_STATE(53)] = 910, - [SMALL_STATE(54)] = 917, - [SMALL_STATE(55)] = 924, - [SMALL_STATE(56)] = 931, - [SMALL_STATE(57)] = 938, - [SMALL_STATE(58)] = 945, - [SMALL_STATE(59)] = 952, - [SMALL_STATE(60)] = 959, - [SMALL_STATE(61)] = 966, - [SMALL_STATE(62)] = 973, - [SMALL_STATE(63)] = 980, - [SMALL_STATE(64)] = 987, - [SMALL_STATE(65)] = 994, - [SMALL_STATE(66)] = 1001, - [SMALL_STATE(67)] = 1008, - [SMALL_STATE(68)] = 1015, - [SMALL_STATE(69)] = 1022, - [SMALL_STATE(70)] = 1029, - [SMALL_STATE(71)] = 1036, - [SMALL_STATE(72)] = 1043, - [SMALL_STATE(73)] = 1050, - [SMALL_STATE(74)] = 1057, - [SMALL_STATE(75)] = 1064, + [SMALL_STATE(3)] = 25, + [SMALL_STATE(4)] = 48, + [SMALL_STATE(5)] = 71, + [SMALL_STATE(6)] = 96, + [SMALL_STATE(7)] = 116, + [SMALL_STATE(8)] = 135, + [SMALL_STATE(9)] = 154, + [SMALL_STATE(10)] = 173, + [SMALL_STATE(11)] = 192, + [SMALL_STATE(12)] = 211, + [SMALL_STATE(13)] = 226, + [SMALL_STATE(14)] = 242, + [SMALL_STATE(15)] = 258, + [SMALL_STATE(16)] = 265, + [SMALL_STATE(17)] = 272, + [SMALL_STATE(18)] = 279, + [SMALL_STATE(19)] = 286, + [SMALL_STATE(20)] = 299, + [SMALL_STATE(21)] = 306, + [SMALL_STATE(22)] = 313, + [SMALL_STATE(23)] = 320, + [SMALL_STATE(24)] = 333, + [SMALL_STATE(25)] = 340, + [SMALL_STATE(26)] = 347, + [SMALL_STATE(27)] = 354, + [SMALL_STATE(28)] = 362, + [SMALL_STATE(29)] = 370, + [SMALL_STATE(30)] = 380, + [SMALL_STATE(31)] = 388, + [SMALL_STATE(32)] = 396, + [SMALL_STATE(33)] = 404, + [SMALL_STATE(34)] = 412, + [SMALL_STATE(35)] = 420, + [SMALL_STATE(36)] = 430, + [SMALL_STATE(37)] = 437, + [SMALL_STATE(38)] = 444, + [SMALL_STATE(39)] = 448, + [SMALL_STATE(40)] = 452, + [SMALL_STATE(41)] = 456, + [SMALL_STATE(42)] = 460, + [SMALL_STATE(43)] = 464, + [SMALL_STATE(44)] = 468, }; static const TSParseActionEntry ts_parse_actions[] = { [0] = {.entry = {.count = 0, .reusable = false}}, [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(), - [3] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), - [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 0, 0, 0), - [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(24), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), - [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [41] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22), - [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [45] = {.entry = {.count = 1, .reusable = false}}, SHIFT(30), - [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [49] = {.entry = {.count = 1, .reusable = false}}, SHIFT(23), - [51] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), - [53] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(14), - [56] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(59), - [59] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(24), - [62] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, 0, 0), - [64] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [66] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [68] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(), - [70] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [72] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_node_body, 1, 0, 0), - [74] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [76] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [78] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), - [80] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [82] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute_list, 1, 0, 0), - [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_attribute_list_repeat1, 2, 0, 0), - [86] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attribute_list_repeat1, 2, 0, 0), SHIFT_REPEAT(38), - [89] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attribute_list_repeat1, 2, 0, 0), SHIFT_REPEAT(30), - [92] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [94] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [96] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 6, 0, 0), - [98] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comment, 6, 0, 0), - [100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [104] = {.entry = {.count = 1, .reusable = false}}, SHIFT(21), - [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 1, 0, 0), - [108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 4, 0, 0), - [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comment, 4, 0, 0), - [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 3, 0, 0), - [116] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comment, 3, 0, 0), - [118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_node, 4, 0, 0), - [120] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_node, 4, 0, 0), - [122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_node, 3, 0, 0), - [124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_node, 3, 0, 0), - [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_node, 5, 0, 0), - [128] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_node, 5, 0, 0), - [130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_node, 6, 0, 0), - [132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_node, 6, 0, 0), - [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 5, 0, 0), - [136] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comment, 5, 0, 0), - [138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_text, 1, 0, 0), - [140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 3, 0, 0), - [144] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_text_repeat1, 2, 0, 0), - [146] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_text_repeat1, 2, 0, 0), SHIFT_REPEAT(29), - [149] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_text_repeat1, 2, 0, 0), SHIFT_REPEAT(41), - [152] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [154] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [156] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [158] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [160] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [162] = {.entry = {.count = 1, .reusable = false}}, SHIFT(19), - [164] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_node_body, 2, 0, 0), - [170] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), - [176] = {.entry = {.count = 1, .reusable = false}}, SHIFT(18), + [3] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_document, 0, 0, 0), + [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), + [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [27] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_document_repeat1, 2, 0, 0), + [29] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_document_repeat1, 2, 0, 0), SHIFT_REPEAT(29), + [32] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_document_repeat1, 2, 0, 0), SHIFT_REPEAT(17), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [37] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_document, 1, 0, 0), + [39] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attrs_repeat1, 2, 0, 0), SHIFT_REPEAT(42), + [42] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_attrs_repeat1, 2, 0, 0), + [44] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attrs_repeat1, 2, 0, 0), SHIFT_REPEAT(41), + [47] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attrs_repeat1, 2, 0, 0), SHIFT_REPEAT(40), + [50] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [52] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attrs, 1, 0, 0), + [54] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [56] = {.entry = {.count = 1, .reusable = false}}, SHIFT(33), + [58] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [60] = {.entry = {.count = 1, .reusable = false}}, SHIFT(12), + [62] = {.entry = {.count = 1, .reusable = false}}, SHIFT(25), + [64] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_node, 2, 0, 0), + [66] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_node_body, 4, 0, 0), + [68] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_node_name, 1, 0, 0), + [70] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_node_body, 2, 0, 0), + [72] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_text_repeat1, 2, 0, 0), + [74] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_text_repeat1, 2, 0, 0), SHIFT_REPEAT(19), + [77] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_text_repeat1, 2, 0, 0), SHIFT_REPEAT(12), + [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_id_attr, 2, 0, 0), + [82] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_attr, 2, 0, 0), + [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_node, 3, 0, 0), + [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_text, 1, 0, 0), + [88] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [90] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attr, 3, 0, 0), + [92] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_node_body, 3, 0, 0), + [94] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 2, 0, 0), + [96] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_node, 2, 0, 0), + [98] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_text_repeat1, 2, 0, 0), + [100] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comment, 2, 0, 0), + [102] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_node_body, 2, 0, 0), + [104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_node, 3, 0, 0), + [106] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_node_body, 3, 0, 0), + [108] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_node_body, 4, 0, 0), + [110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [112] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [114] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [116] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [120] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), }; #ifdef __cplusplus -- cgit v1.2.3