diff --git a/package.json b/package.json index ee80b9c2c..c4b13793e 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,6 @@ "scope": "source.xml", "path": "tree-sitter-xml", "highlights": "tree-sitter-xml/queries/highlights.scm", - "injections": "tree-sitter-xml/queries/injections.scm", "file-types": [ "xml", "svg", diff --git a/tree-sitter-dtd/grammar.js b/tree-sitter-dtd/grammar.js index 52f99b09c..0ba05edbe 100644 --- a/tree-sitter-dtd/grammar.js +++ b/tree-sitter-dtd/grammar.js @@ -341,7 +341,7 @@ module.exports = grammar({ Comment: _ => prec.left(token( // FIXME: disallow '--' - seq('') + seq('') )), _Eq: $ => seq(O($._S), '=', O($._S)) diff --git a/tree-sitter-dtd/queries/highlights.scm b/tree-sitter-dtd/queries/highlights.scm index ec69738e0..5a1976e37 100644 --- a/tree-sitter-dtd/queries/highlights.scm +++ b/tree-sitter-dtd/queries/highlights.scm @@ -1 +1,122 @@ -; TODO: add queries +;; XML declaration + +(XMLDecl "xml" @keyword) + +(XMLDecl [ "version" "encoding" ] @property) + +(XMLDecl (EncName) @string.special) + +(XMLDecl (VersionNum) @number) + +;; Processing instructions + +(PI) @embedded + +(PI (PITarget) @keyword) + +;; Element declaration + +(elementdecl + "ELEMENT" @keyword + (Name) @tag) + +(contentspec + (_ (Name) @property)) + +"#PCDATA" @type.builtin + +[ "EMPTY" "ANY" ] @string.special.symbol + +[ "*" "?" "+" ] @operator + +;; Entity declaration + +(GEDecl + "ENTITY" @keyword + (Name) @constant) + +(GEDecl (EntityValue) @string) + +(NDataDecl + "NDATA" @keyword + (Name) @label) + +;; Parsed entity declaration + +(PEDecl + "ENTITY" @keyword + "%" @operator + (Name) @constant) + +(PEDecl (EntityValue) @string) + +;; Notation declaration + +(NotationDecl + "NOTATION" @keyword + (Name) @constant) + +(NotationDecl + (ExternalID + (SystemLiteral (URI) @string.special))) + +;; Attlist declaration + +(AttlistDecl + "ATTLIST" @keyword + (Name) @tag) + +(AttDef (Name) @property) + +(AttDef (Enumeration (Nmtoken) @string)) + +[ + (StringType) + (TokenizedType) +] @type.builtin + +(NotationType "NOTATION" @type.builtin) + +[ + "#REQUIRED" + "#IMPLIED" + "#FIXED" +] @attribute + +;; Entities + +(EntityRef) @constant + +((EntityRef) @constant.builtin + (#any-of? @constant.builtin + "&" "<" ">" """ "'")) + +(CharRef) @constant + +(PEReference) @constant + +;; External references + +[ "PUBLIC" "SYSTEM" ] @keyword + +(PubidLiteral) @string.special + +(SystemLiteral (URI) @markup.link) + +;; Delimiters & punctuation + +[ "" "" "]]>" ] @punctuation.delimiter + +[ "(" ")" "[" ] @punctuation.bracket + +[ "\"" "'" ] @punctuation.delimiter + +[ "," "|" "=" ] @operator + +;; Misc + +[ "INCLUDE" "IGNORE" ] @keyword + +(Comment) @comment + +(ERROR) @error diff --git a/tree-sitter-dtd/src/grammar.json b/tree-sitter-dtd/src/grammar.json index 6e6311480..7f678dac1 100644 --- a/tree-sitter-dtd/src/grammar.json +++ b/tree-sitter-dtd/src/grammar.json @@ -1850,7 +1850,7 @@ }, { "type": "PATTERN", - "value": ".*" + "value": "(.|[\\r\\n])*" }, { "type": "STRING", diff --git a/tree-sitter-dtd/src/parser.c b/tree-sitter-dtd/src/parser.c index 5327e44ce..ac6957e4a 100644 --- a/tree-sitter-dtd/src/parser.c +++ b/tree-sitter-dtd/src/parser.c @@ -1408,8 +1408,8 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { case 5: if (lookahead == '%') ADVANCE(67); if (lookahead == '(') ADVANCE(50); - if (lookahead == '1') ADVANCE(11); - if (lookahead == '?') ADVANCE(13); + if (lookahead == '1') ADVANCE(8); + if (lookahead == '?') ADVANCE(10); if (lookahead == 'E') ADVANCE(103); if (lookahead == 'I') ADVANCE(86); if (lookahead == 'N') ADVANCE(101); @@ -1426,135 +1426,136 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { lookahead != '<') ADVANCE(128); END_STATE(); case 7: - if (lookahead == '-') ADVANCE(10); + if (lookahead == '-') ADVANCE(42); END_STATE(); case 8: - if (lookahead == '-') ADVANCE(8); - if (lookahead == '>') ADVANCE(138); - if (lookahead != 0 && - lookahead != '\n') ADVANCE(10); + if (lookahead == '.') ADVANCE(37); END_STATE(); case 9: - if (lookahead == '-') ADVANCE(8); - if (lookahead != 0 && - lookahead != '\n') ADVANCE(10); + if (lookahead == '>') ADVANCE(47); END_STATE(); case 10: - if (lookahead == '-') ADVANCE(9); - if (lookahead != 0 && - lookahead != '\n') ADVANCE(10); + if (lookahead == '>') ADVANCE(134); END_STATE(); case 11: - if (lookahead == '.') ADVANCE(40); + if (lookahead == '?') ADVANCE(10); + if (sym_Name_character_set_1(lookahead)) ADVANCE(117); END_STATE(); case 12: - if (lookahead == '>') ADVANCE(47); + if (lookahead == 'A') ADVANCE(32); END_STATE(); case 13: - if (lookahead == '>') ADVANCE(134); + if (lookahead == 'A') ADVANCE(51); END_STATE(); case 14: - if (lookahead == '?') ADVANCE(13); - if (sym_Name_character_set_1(lookahead)) ADVANCE(117); + if (lookahead == 'C') ADVANCE(15); END_STATE(); case 15: - if (lookahead == 'A') ADVANCE(35); + if (lookahead == 'D') ADVANCE(12); END_STATE(); case 16: - if (lookahead == 'A') ADVANCE(51); + if (lookahead == 'D') ADVANCE(66); END_STATE(); case 17: - if (lookahead == 'C') ADVANCE(18); + if (lookahead == 'D') ADVANCE(65); END_STATE(); case 18: - if (lookahead == 'D') ADVANCE(15); + if (lookahead == 'D') ADVANCE(64); END_STATE(); case 19: - if (lookahead == 'D') ADVANCE(66); + if (lookahead == 'E') ADVANCE(30); END_STATE(); case 20: - if (lookahead == 'D') ADVANCE(65); + if (lookahead == 'E') ADVANCE(16); END_STATE(); case 21: - if (lookahead == 'D') ADVANCE(64); + if (lookahead == 'E') ADVANCE(17); END_STATE(); case 22: - if (lookahead == 'E') ADVANCE(33); + if (lookahead == 'E') ADVANCE(18); END_STATE(); case 23: - if (lookahead == 'E') ADVANCE(19); + if (lookahead == 'F') ADVANCE(24); + if (lookahead == 'I') ADVANCE(28); + if (lookahead == 'P') ADVANCE(14); + if (lookahead == 'R') ADVANCE(19); END_STATE(); case 24: - if (lookahead == 'E') ADVANCE(20); + if (lookahead == 'I') ADVANCE(34); END_STATE(); case 25: - if (lookahead == 'E') ADVANCE(21); + if (lookahead == 'I') ADVANCE(31); END_STATE(); case 26: - if (lookahead == 'F') ADVANCE(27); - if (lookahead == 'I') ADVANCE(31); - if (lookahead == 'P') ADVANCE(17); - if (lookahead == 'R') ADVANCE(22); + if (lookahead == 'I') ADVANCE(21); END_STATE(); case 27: - if (lookahead == 'I') ADVANCE(37); + if (lookahead == 'L') ADVANCE(26); END_STATE(); case 28: - if (lookahead == 'I') ADVANCE(34); + if (lookahead == 'M') ADVANCE(29); END_STATE(); case 29: - if (lookahead == 'I') ADVANCE(24); + if (lookahead == 'P') ADVANCE(27); END_STATE(); case 30: - if (lookahead == 'L') ADVANCE(29); + if (lookahead == 'Q') ADVANCE(33); END_STATE(); case 31: - if (lookahead == 'M') ADVANCE(32); + if (lookahead == 'R') ADVANCE(22); END_STATE(); case 32: - if (lookahead == 'P') ADVANCE(30); + if (lookahead == 'T') ADVANCE(13); END_STATE(); case 33: - if (lookahead == 'Q') ADVANCE(36); + if (lookahead == 'U') ADVANCE(25); END_STATE(); case 34: - if (lookahead == 'R') ADVANCE(25); + if (lookahead == 'X') ADVANCE(20); END_STATE(); case 35: - if (lookahead == 'T') ADVANCE(16); + if (lookahead == ']') ADVANCE(9); END_STATE(); case 36: - if (lookahead == 'U') ADVANCE(28); - END_STATE(); - case 37: - if (lookahead == 'X') ADVANCE(23); - END_STATE(); - case 38: - if (lookahead == ']') ADVANCE(12); - END_STATE(); - case 39: if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') ADVANCE(85); if (sym_Nmtoken_character_set_1(lookahead)) ADVANCE(121); END_STATE(); - case 40: + case 37: if (('0' <= lookahead && lookahead <= '9')) ADVANCE(135); END_STATE(); - case 41: + case 38: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(126); END_STATE(); - case 42: + case 39: if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(136); END_STATE(); + case 40: + if (lookahead != 0 && + lookahead != '-' && + lookahead != '>') ADVANCE(42); + if (lookahead == '-') ADVANCE(40); + if (lookahead == '>') ADVANCE(138); + END_STATE(); + case 41: + if (lookahead != 0 && + lookahead != '-') ADVANCE(42); + if (lookahead == '-') ADVANCE(40); + END_STATE(); + case 42: + if (lookahead != 0 && + lookahead != '-') ADVANCE(42); + if (lookahead == '-') ADVANCE(41); + END_STATE(); case 43: if (eof) ADVANCE(44); if (lookahead == '"') ADVANCE(68); - if (lookahead == '#') ADVANCE(26); + if (lookahead == '#') ADVANCE(23); if (lookahead == '%') ADVANCE(67); if (lookahead == '\'') ADVANCE(82); if (lookahead == '(') ADVANCE(50); @@ -1568,7 +1569,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == '>') ADVANCE(49); if (lookahead == '?') ADVANCE(55); if (lookahead == '[') ADVANCE(46); - if (lookahead == ']') ADVANCE(38); + if (lookahead == ']') ADVANCE(35); if (lookahead == '|') ADVANCE(52); if (lookahead == '\t' || lookahead == '\n' || @@ -1706,10 +1707,10 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 72: ACCEPT_TOKEN(aux_sym_EntityValue_token1); - if (lookahead == 'F') ADVANCE(27); - if (lookahead == 'I') ADVANCE(31); - if (lookahead == 'P') ADVANCE(17); - if (lookahead == 'R') ADVANCE(22); + if (lookahead == 'F') ADVANCE(24); + if (lookahead == 'I') ADVANCE(28); + if (lookahead == 'P') ADVANCE(14); + if (lookahead == 'R') ADVANCE(19); END_STATE(); case 73: ACCEPT_TOKEN(aux_sym_EntityValue_token1); @@ -1737,7 +1738,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 75: ACCEPT_TOKEN(aux_sym_EntityValue_token1); - if (lookahead == ']') ADVANCE(12); + if (lookahead == ']') ADVANCE(9); END_STATE(); case 76: ACCEPT_TOKEN(aux_sym_EntityValue_token1); @@ -2144,9 +2145,9 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 138: ACCEPT_TOKEN(aux_sym_Comment_token1); - if (lookahead == '-') ADVANCE(9); if (lookahead != 0 && - lookahead != '\n') ADVANCE(10); + lookahead != '-') ADVANCE(42); + if (lookahead == '-') ADVANCE(41); END_STATE(); case 139: ACCEPT_TOKEN(anon_sym_EQ); @@ -2625,13 +2626,13 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [187] = {.lex_state = 43}, [188] = {.lex_state = 43}, [189] = {.lex_state = 43}, - [190] = {.lex_state = 39}, + [190] = {.lex_state = 36}, [191] = {.lex_state = 43}, [192] = {.lex_state = 43}, [193] = {.lex_state = 43}, [194] = {.lex_state = 43}, [195] = {.lex_state = 43}, - [196] = {.lex_state = 14}, + [196] = {.lex_state = 11}, [197] = {.lex_state = 43}, [198] = {.lex_state = 43}, [199] = {.lex_state = 5}, @@ -2645,11 +2646,11 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [207] = {.lex_state = 43}, [208] = {.lex_state = 43}, [209] = {.lex_state = 43}, - [210] = {.lex_state = 39}, + [210] = {.lex_state = 36}, [211] = {.lex_state = 43}, [212] = {.lex_state = 43}, [213] = {.lex_state = 43}, - [214] = {.lex_state = 39}, + [214] = {.lex_state = 36}, [215] = {.lex_state = 43}, [216] = {.lex_state = 43}, [217] = {.lex_state = 43}, @@ -2667,7 +2668,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [229] = {.lex_state = 43}, [230] = {.lex_state = 43}, [231] = {.lex_state = 5}, - [232] = {.lex_state = 39}, + [232] = {.lex_state = 36}, [233] = {.lex_state = 43}, [234] = {.lex_state = 43}, [235] = {.lex_state = 43}, @@ -2677,11 +2678,11 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [239] = {.lex_state = 43}, [240] = {.lex_state = 43}, [241] = {.lex_state = 43}, - [242] = {.lex_state = 41}, - [243] = {.lex_state = 39}, + [242] = {.lex_state = 38}, + [243] = {.lex_state = 36}, [244] = {.lex_state = 43}, [245] = {.lex_state = 43}, - [246] = {.lex_state = 39}, + [246] = {.lex_state = 36}, [247] = {.lex_state = 43}, [248] = {.lex_state = 43}, [249] = {.lex_state = 5}, @@ -2691,9 +2692,9 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [253] = {.lex_state = 43}, [254] = {.lex_state = 43}, [255] = {.lex_state = 137}, - [256] = {.lex_state = 42}, + [256] = {.lex_state = 39}, [257] = {.lex_state = 43}, - [258] = {.lex_state = 42}, + [258] = {.lex_state = 39}, [259] = {.lex_state = 43}, [260] = {.lex_state = 43}, [261] = {.lex_state = 43}, @@ -2730,14 +2731,14 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [292] = {.lex_state = 43}, [293] = {.lex_state = 43}, [294] = {.lex_state = 43}, - [295] = {.lex_state = 41}, + [295] = {.lex_state = 38}, [296] = {.lex_state = 43}, [297] = {.lex_state = 43}, [298] = {.lex_state = 43}, - [299] = {.lex_state = 41}, + [299] = {.lex_state = 38}, [300] = {.lex_state = 43}, [301] = {.lex_state = 43}, - [302] = {.lex_state = 41}, + [302] = {.lex_state = 38}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { diff --git a/tree-sitter-xml/queries/highlights.scm b/tree-sitter-xml/queries/highlights.scm index ec69738e0..a99f77543 100644 --- a/tree-sitter-xml/queries/highlights.scm +++ b/tree-sitter-xml/queries/highlights.scm @@ -1 +1,171 @@ -; TODO: add queries +;; XML declaration + +(XMLDecl "xml" @keyword) + +(XMLDecl [ "version" "encoding" "standalone" ] @property) + +(XMLDecl (EncName) @string.special) + +(XMLDecl (VersionNum) @number) + +(XMLDecl [ "yes" "no" ] @boolean) + +;; Processing instructions + +(PI) @embedded + +(PI (PITarget) @keyword) + +;; Element declaration + +(elementdecl + "ELEMENT" @keyword + (Name) @tag) + +(contentspec + (_ (Name) @property)) + +"#PCDATA" @type.builtin + +[ "EMPTY" "ANY" ] @string.special.symbol + +[ "*" "?" "+" ] @operator + +;; Entity declaration + +(GEDecl + "ENTITY" @keyword + (Name) @constant) + +(GEDecl (EntityValue) @string) + +(NDataDecl + "NDATA" @keyword + (Name) @label) + +;; Parsed entity declaration + +(PEDecl + "ENTITY" @keyword + "%" @operator + (Name) @constant) + +(PEDecl (EntityValue) @string) + +;; Notation declaration + +(NotationDecl + "NOTATION" @keyword + (Name) @constant) + +(NotationDecl + (ExternalID + (SystemLiteral (URI) @string.special))) + +;; Attlist declaration + +(AttlistDecl + "ATTLIST" @keyword + (Name) @tag) + +(AttDef (Name) @property) + +(AttDef (Enumeration (Nmtoken) @string)) + +[ + (StringType) + (TokenizedType) +] @type.builtin + +(NotationType "NOTATION" @type.builtin) + +[ + "#REQUIRED" + "#IMPLIED" + "#FIXED" +] @attribute + +;; Entities + +(EntityRef) @constant + +((EntityRef) @constant.builtin + (#any-of? @constant.builtin + "&" "<" ">" """ "'")) + +(CharRef) @constant + +(PEReference) @constant + +;; External references + +[ "PUBLIC" "SYSTEM" ] @keyword + +(PubidLiteral) @string.special + +(SystemLiteral (URI) @markup.link) + +;; Processing instructions + +(XmlModelPI "xml-model" @keyword) + +(StyleSheetPI "xml-stylesheet" @keyword) + +(PseudoAtt (Name) @property) + +(PseudoAtt (PseudoAttValue) @string) + +;; Doctype declaration + +(doctypedecl "DOCTYPE" @keyword) + +(doctypedecl (Name) @type) + +;; Tags + +(STag (Name) @tag) + +(ETag (Name) @tag) + +(EmptyElemTag (Name) @tag) + +;; Attributes + +(Attribute (Name) @property) + +(Attribute (AttValue) @string) + +;; Text + +(CharData) @markup + +(CDSect + (CDStart) @markup.heading + (CData) @markup.raw + "]]>" @markup.heading) + +;; Delimiters & punctuation + +[ + "" + "" + "<" ">" + "" +] @punctuation.delimiter + +[ + "(" ")" + "[" "]" +] @punctuation.bracket + +[ "\"" "'" ] @punctuation.delimiter + +[ "," "|" "=" ] @operator + +;; Misc + +[ "INCLUDE" "IGNORE" ] @keyword + +(Comment) @comment + +(ERROR) @error diff --git a/tree-sitter-xml/src/grammar.json b/tree-sitter-xml/src/grammar.json index e825ac3ea..d3d502931 100644 --- a/tree-sitter-xml/src/grammar.json +++ b/tree-sitter-xml/src/grammar.json @@ -1886,7 +1886,7 @@ }, { "type": "PATTERN", - "value": ".*" + "value": "(.|[\\r\\n])*" }, { "type": "STRING", diff --git a/tree-sitter-xml/src/parser.c b/tree-sitter-xml/src/parser.c index b25c002d1..a0b6ac51c 100644 --- a/tree-sitter-xml/src/parser.c +++ b/tree-sitter-xml/src/parser.c @@ -1651,11 +1651,11 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { case 4: if (lookahead == '%') ADVANCE(67); if (lookahead == '(') ADVANCE(53); - if (lookahead == '?') ADVANCE(13); + if (lookahead == '?') ADVANCE(10); if (lookahead == 'E') ADVANCE(83); if (lookahead == 'I') ADVANCE(74); if (lookahead == 'N') ADVANCE(82); - if (lookahead == ']') ADVANCE(40); + if (lookahead == ']') ADVANCE(37); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || @@ -1674,148 +1674,149 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == '[') ADVANCE(48); END_STATE(); case 7: - if (lookahead == '-') ADVANCE(10); + if (lookahead == '-') ADVANCE(45); END_STATE(); case 8: - if (lookahead == '-') ADVANCE(8); - if (lookahead == '>') ADVANCE(108); - if (lookahead != 0 && - lookahead != '\n') ADVANCE(10); + if (lookahead == '.') ADVANCE(39); END_STATE(); case 9: - if (lookahead == '-') ADVANCE(8); - if (lookahead != 0 && - lookahead != '\n') ADVANCE(10); + if (lookahead == '>') ADVANCE(113); END_STATE(); case 10: - if (lookahead == '-') ADVANCE(9); - if (lookahead != 0 && - lookahead != '\n') ADVANCE(10); + if (lookahead == '>') ADVANCE(104); END_STATE(); case 11: - if (lookahead == '.') ADVANCE(42); + if (lookahead == '>') ADVANCE(50); END_STATE(); case 12: - if (lookahead == '>') ADVANCE(113); + if (lookahead == '?') ADVANCE(10); + if (sym_Name_character_set_1(lookahead)) ADVANCE(90); END_STATE(); case 13: - if (lookahead == '>') ADVANCE(104); + if (lookahead == 'A') ADVANCE(33); END_STATE(); case 14: - if (lookahead == '>') ADVANCE(50); + if (lookahead == 'A') ADVANCE(54); END_STATE(); case 15: - if (lookahead == '?') ADVANCE(13); - if (sym_Name_character_set_1(lookahead)) ADVANCE(90); + if (lookahead == 'C') ADVANCE(16); END_STATE(); case 16: - if (lookahead == 'A') ADVANCE(36); + if (lookahead == 'D') ADVANCE(13); END_STATE(); case 17: - if (lookahead == 'A') ADVANCE(54); + if (lookahead == 'D') ADVANCE(66); END_STATE(); case 18: - if (lookahead == 'C') ADVANCE(19); + if (lookahead == 'D') ADVANCE(65); END_STATE(); case 19: - if (lookahead == 'D') ADVANCE(16); + if (lookahead == 'D') ADVANCE(64); END_STATE(); case 20: - if (lookahead == 'D') ADVANCE(66); + if (lookahead == 'E') ADVANCE(31); END_STATE(); case 21: - if (lookahead == 'D') ADVANCE(65); + if (lookahead == 'E') ADVANCE(17); END_STATE(); case 22: - if (lookahead == 'D') ADVANCE(64); + if (lookahead == 'E') ADVANCE(18); END_STATE(); case 23: - if (lookahead == 'E') ADVANCE(34); + if (lookahead == 'E') ADVANCE(19); END_STATE(); case 24: - if (lookahead == 'E') ADVANCE(20); + if (lookahead == 'F') ADVANCE(25); + if (lookahead == 'I') ADVANCE(29); + if (lookahead == 'P') ADVANCE(15); + if (lookahead == 'R') ADVANCE(20); END_STATE(); case 25: - if (lookahead == 'E') ADVANCE(21); + if (lookahead == 'I') ADVANCE(35); END_STATE(); case 26: - if (lookahead == 'E') ADVANCE(22); + if (lookahead == 'I') ADVANCE(32); END_STATE(); case 27: - if (lookahead == 'F') ADVANCE(28); - if (lookahead == 'I') ADVANCE(32); - if (lookahead == 'P') ADVANCE(18); - if (lookahead == 'R') ADVANCE(23); + if (lookahead == 'I') ADVANCE(22); END_STATE(); case 28: - if (lookahead == 'I') ADVANCE(38); + if (lookahead == 'L') ADVANCE(27); END_STATE(); case 29: - if (lookahead == 'I') ADVANCE(35); + if (lookahead == 'M') ADVANCE(30); END_STATE(); case 30: - if (lookahead == 'I') ADVANCE(25); + if (lookahead == 'P') ADVANCE(28); END_STATE(); case 31: - if (lookahead == 'L') ADVANCE(30); + if (lookahead == 'Q') ADVANCE(34); END_STATE(); case 32: - if (lookahead == 'M') ADVANCE(33); + if (lookahead == 'R') ADVANCE(23); END_STATE(); case 33: - if (lookahead == 'P') ADVANCE(31); + if (lookahead == 'T') ADVANCE(14); END_STATE(); case 34: - if (lookahead == 'Q') ADVANCE(37); + if (lookahead == 'U') ADVANCE(26); END_STATE(); case 35: - if (lookahead == 'R') ADVANCE(26); + if (lookahead == 'X') ADVANCE(21); END_STATE(); case 36: - if (lookahead == 'T') ADVANCE(17); + if (lookahead == ']') ADVANCE(118); END_STATE(); case 37: - if (lookahead == 'U') ADVANCE(29); + if (lookahead == ']') ADVANCE(11); END_STATE(); case 38: - if (lookahead == 'X') ADVANCE(24); - END_STATE(); - case 39: - if (lookahead == ']') ADVANCE(118); - END_STATE(); - case 40: - if (lookahead == ']') ADVANCE(14); - END_STATE(); - case 41: if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') ADVANCE(73); if (sym_Nmtoken_character_set_1(lookahead)) ADVANCE(91); END_STATE(); - case 42: + case 39: if (('0' <= lookahead && lookahead <= '9')) ADVANCE(105); END_STATE(); - case 43: + case 40: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(96); END_STATE(); - case 44: + case 41: if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(106); END_STATE(); - case 45: + case 42: if (lookahead != 0 && lookahead != '*' && lookahead != '>' && lookahead != ']' && - lookahead != '|') ADVANCE(39); + lookahead != '|') ADVANCE(36); + END_STATE(); + case 43: + if (lookahead != 0 && + lookahead != '-' && + lookahead != '>') ADVANCE(45); + if (lookahead == '-') ADVANCE(43); + if (lookahead == '>') ADVANCE(108); + END_STATE(); + case 44: + if (lookahead != 0 && + lookahead != '-') ADVANCE(45); + if (lookahead == '-') ADVANCE(43); + END_STATE(); + case 45: + if (lookahead != 0 && + lookahead != '-') ADVANCE(45); + if (lookahead == '-') ADVANCE(44); END_STATE(); case 46: if (eof) ADVANCE(47); if (lookahead == '"') ADVANCE(68); - if (lookahead == '#') ADVANCE(27); + if (lookahead == '#') ADVANCE(24); if (lookahead == '%') ADVANCE(67); if (lookahead == '\'') ADVANCE(70); if (lookahead == '(') ADVANCE(53); @@ -1823,8 +1824,8 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == '*') ADVANCE(57); if (lookahead == '+') ADVANCE(59); if (lookahead == ',') ADVANCE(60); - if (lookahead == '/') ADVANCE(12); - if (lookahead == '1') ADVANCE(11); + if (lookahead == '/') ADVANCE(9); + if (lookahead == '1') ADVANCE(8); if (lookahead == ';') ADVANCE(72); if (lookahead == '<') ADVANCE(112); if (lookahead == '=') ADVANCE(109); @@ -2090,9 +2091,9 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 108: ACCEPT_TOKEN(aux_sym_Comment_token1); - if (lookahead == '-') ADVANCE(9); if (lookahead != 0 && - lookahead != '\n') ADVANCE(10); + lookahead != '-') ADVANCE(45); + if (lookahead == '-') ADVANCE(44); END_STATE(); case 109: ACCEPT_TOKEN(anon_sym_EQ); @@ -2131,7 +2132,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 117: ACCEPT_TOKEN(sym_CData); - if (lookahead == ']') ADVANCE(45); + if (lookahead == ']') ADVANCE(42); if (lookahead != 0) ADVANCE(119); END_STATE(); case 118: @@ -2740,27 +2741,27 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [189] = {.lex_state = 4}, [190] = {.lex_state = 4}, [191] = {.lex_state = 46}, - [192] = {.lex_state = 15}, + [192] = {.lex_state = 12}, [193] = {.lex_state = 46}, [194] = {.lex_state = 46}, [195] = {.lex_state = 46}, [196] = {.lex_state = 4}, - [197] = {.lex_state = 15}, + [197] = {.lex_state = 12}, [198] = {.lex_state = 4}, [199] = {.lex_state = 46}, [200] = {.lex_state = 46}, [201] = {.lex_state = 46}, - [202] = {.lex_state = 15}, + [202] = {.lex_state = 12}, [203] = {.lex_state = 4}, [204] = {.lex_state = 46}, [205] = {.lex_state = 46}, - [206] = {.lex_state = 15}, + [206] = {.lex_state = 12}, [207] = {.lex_state = 4}, [208] = {.lex_state = 46}, [209] = {.lex_state = 46}, [210] = {.lex_state = 46}, [211] = {.lex_state = 46}, - [212] = {.lex_state = 15}, + [212] = {.lex_state = 12}, [213] = {.lex_state = 46}, [214] = {.lex_state = 46}, [215] = {.lex_state = 46}, @@ -2832,7 +2833,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [281] = {.lex_state = 46}, [282] = {.lex_state = 46}, [283] = {.lex_state = 46}, - [284] = {.lex_state = 41}, + [284] = {.lex_state = 38}, [285] = {.lex_state = 46}, [286] = {.lex_state = 46}, [287] = {.lex_state = 46}, @@ -2859,14 +2860,14 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [308] = {.lex_state = 46}, [309] = {.lex_state = 46}, [310] = {.lex_state = 46}, - [311] = {.lex_state = 41}, + [311] = {.lex_state = 38}, [312] = {.lex_state = 46}, [313] = {.lex_state = 46}, [314] = {.lex_state = 46}, [315] = {.lex_state = 46}, [316] = {.lex_state = 4}, [317] = {.lex_state = 46}, - [318] = {.lex_state = 15}, + [318] = {.lex_state = 12}, [319] = {.lex_state = 46}, [320] = {.lex_state = 46}, [321] = {.lex_state = 46}, @@ -2880,7 +2881,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [329] = {.lex_state = 46}, [330] = {.lex_state = 46}, [331] = {.lex_state = 46}, - [332] = {.lex_state = 41}, + [332] = {.lex_state = 38}, [333] = {.lex_state = 46}, [334] = {.lex_state = 46}, [335] = {.lex_state = 46}, @@ -2889,7 +2890,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [338] = {.lex_state = 46}, [339] = {.lex_state = 46}, [340] = {.lex_state = 46}, - [341] = {.lex_state = 41}, + [341] = {.lex_state = 38}, [342] = {.lex_state = 46}, [343] = {.lex_state = 102}, [344] = {.lex_state = 4}, @@ -2897,7 +2898,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [346] = {.lex_state = 46}, [347] = {.lex_state = 46}, [348] = {.lex_state = 46}, - [349] = {.lex_state = 41}, + [349] = {.lex_state = 38}, [350] = {.lex_state = 101}, [351] = {.lex_state = 46}, [352] = {.lex_state = 100}, @@ -2908,7 +2909,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [357] = {.lex_state = 46}, [358] = {.lex_state = 46}, [359] = {.lex_state = 46}, - [360] = {.lex_state = 41}, + [360] = {.lex_state = 38}, [361] = {.lex_state = 46}, [362] = {.lex_state = 46}, [363] = {.lex_state = 46}, @@ -2950,7 +2951,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [399] = {.lex_state = 46}, [400] = {.lex_state = 46}, [401] = {.lex_state = 46}, - [402] = {.lex_state = 43}, + [402] = {.lex_state = 40}, [403] = {.lex_state = 4}, [404] = {.lex_state = 46}, [405] = {.lex_state = 46}, @@ -2958,10 +2959,10 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [407] = {.lex_state = 46}, [408] = {.lex_state = 46}, [409] = {.lex_state = 46}, - [410] = {.lex_state = 44}, + [410] = {.lex_state = 41}, [411] = {.lex_state = 46}, [412] = {.lex_state = 46}, - [413] = {.lex_state = 44}, + [413] = {.lex_state = 41}, [414] = {.lex_state = 46}, [415] = {.lex_state = 0}, [416] = {.lex_state = 46}, @@ -2981,20 +2982,20 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [430] = {.lex_state = 46}, [431] = {.lex_state = 46}, [432] = {.lex_state = 4}, - [433] = {.lex_state = 43}, + [433] = {.lex_state = 40}, [434] = {.lex_state = 46}, [435] = {.lex_state = 107}, [436] = {.lex_state = 46}, [437] = {.lex_state = 46}, [438] = {.lex_state = 4}, - [439] = {.lex_state = 43}, + [439] = {.lex_state = 40}, [440] = {.lex_state = 46}, [441] = {.lex_state = 46}, [442] = {.lex_state = 4}, - [443] = {.lex_state = 43}, + [443] = {.lex_state = 40}, [444] = {.lex_state = 46}, [445] = {.lex_state = 4}, - [446] = {.lex_state = 43}, + [446] = {.lex_state = 40}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {