/* Automatically @generated by tree-sitter */ #include "tree_sitter/parser.h" #if defined(__GNUC__) || defined(__clang__) #pragma GCC diagnostic ignored "-Wmissing-field-initializers" #endif #define LANGUAGE_VERSION 15 #define STATE_COUNT 35 #define LARGE_STATE_COUNT 2 #define SYMBOL_COUNT 33 #define ALIAS_COUNT 0 #define TOKEN_COUNT 22 #define EXTERNAL_TOKEN_COUNT 0 #define FIELD_COUNT 0 #define MAX_ALIAS_SEQUENCE_LENGTH 6 #define MAX_RESERVED_WORD_SET_SIZE 0 #define PRODUCTION_ID_COUNT 1 #define SUPERTYPE_COUNT 0 enum ts_symbol_identifiers { sym_content = 1, anon_sym_LBRACE = 2, anon_sym_COLON = 3, anon_sym_RBRACE = 4, anon_sym_SLASH = 5, anon_sym_DASH = 6, anon_sym_EQ = 7, sym_attribute_name = 8, sym_attribute_value = 9, sym_block_name = 10, sym_variable_name = 11, sym_variable_modifier = 12, anon_sym_text = 13, anon_sym_color = 14, anon_sym_font = 15, anon_sym_image = 16, sym_prefix_argument = 17, sym_lang_text = 18, sym_block_keyword = 19, sym_lang_keyword = 20, sym__space = 21, sym_template = 22, sym__node = 23, sym_block_open = 24, sym_block_close = 25, sym_lang_tag = 26, sym_variable = 27, sym_attributes = 28, sym_attribute = 29, sym_variable_prefix = 30, aux_sym_template_repeat1 = 31, aux_sym_attributes_repeat1 = 32, }; static const char * const ts_symbol_names[] = { [ts_builtin_sym_end] = "end", [sym_content] = "content", [anon_sym_LBRACE] = "{", [anon_sym_COLON] = ":", [anon_sym_RBRACE] = "}", [anon_sym_SLASH] = "/", [anon_sym_DASH] = "-", [anon_sym_EQ] = "=", [sym_attribute_name] = "attribute_name", [sym_attribute_value] = "attribute_value", [sym_block_name] = "block_name", [sym_variable_name] = "variable_name", [sym_variable_modifier] = "variable_modifier", [anon_sym_text] = "text", [anon_sym_color] = "color", [anon_sym_font] = "font", [anon_sym_image] = "image", [sym_prefix_argument] = "prefix_argument", [sym_lang_text] = "lang_text", [sym_block_keyword] = "block_keyword", [sym_lang_keyword] = "lang_keyword", [sym__space] = "_space", [sym_template] = "template", [sym__node] = "_node", [sym_block_open] = "block_open", [sym_block_close] = "block_close", [sym_lang_tag] = "lang_tag", [sym_variable] = "variable", [sym_attributes] = "attributes", [sym_attribute] = "attribute", [sym_variable_prefix] = "variable_prefix", [aux_sym_template_repeat1] = "template_repeat1", [aux_sym_attributes_repeat1] = "attributes_repeat1", }; static const TSSymbol ts_symbol_map[] = { [ts_builtin_sym_end] = ts_builtin_sym_end, [sym_content] = sym_content, [anon_sym_LBRACE] = anon_sym_LBRACE, [anon_sym_COLON] = anon_sym_COLON, [anon_sym_RBRACE] = anon_sym_RBRACE, [anon_sym_SLASH] = anon_sym_SLASH, [anon_sym_DASH] = anon_sym_DASH, [anon_sym_EQ] = anon_sym_EQ, [sym_attribute_name] = sym_attribute_name, [sym_attribute_value] = sym_attribute_value, [sym_block_name] = sym_block_name, [sym_variable_name] = sym_variable_name, [sym_variable_modifier] = sym_variable_modifier, [anon_sym_text] = anon_sym_text, [anon_sym_color] = anon_sym_color, [anon_sym_font] = anon_sym_font, [anon_sym_image] = anon_sym_image, [sym_prefix_argument] = sym_prefix_argument, [sym_lang_text] = sym_lang_text, [sym_block_keyword] = sym_block_keyword, [sym_lang_keyword] = sym_lang_keyword, [sym__space] = sym__space, [sym_template] = sym_template, [sym__node] = sym__node, [sym_block_open] = sym_block_open, [sym_block_close] = sym_block_close, [sym_lang_tag] = sym_lang_tag, [sym_variable] = sym_variable, [sym_attributes] = sym_attributes, [sym_attribute] = sym_attribute, [sym_variable_prefix] = sym_variable_prefix, [aux_sym_template_repeat1] = aux_sym_template_repeat1, [aux_sym_attributes_repeat1] = aux_sym_attributes_repeat1, }; static const TSSymbolMetadata ts_symbol_metadata[] = { [ts_builtin_sym_end] = { .visible = false, .named = true, }, [sym_content] = { .visible = true, .named = true, }, [anon_sym_LBRACE] = { .visible = true, .named = false, }, [anon_sym_COLON] = { .visible = true, .named = false, }, [anon_sym_RBRACE] = { .visible = true, .named = false, }, [anon_sym_SLASH] = { .visible = true, .named = false, }, [anon_sym_DASH] = { .visible = true, .named = false, }, [anon_sym_EQ] = { .visible = true, .named = false, }, [sym_attribute_name] = { .visible = true, .named = true, }, [sym_attribute_value] = { .visible = true, .named = true, }, [sym_block_name] = { .visible = true, .named = true, }, [sym_variable_name] = { .visible = true, .named = true, }, [sym_variable_modifier] = { .visible = true, .named = true, }, [anon_sym_text] = { .visible = true, .named = false, }, [anon_sym_color] = { .visible = true, .named = false, }, [anon_sym_font] = { .visible = true, .named = false, }, [anon_sym_image] = { .visible = true, .named = false, }, [sym_prefix_argument] = { .visible = true, .named = true, }, [sym_lang_text] = { .visible = true, .named = true, }, [sym_block_keyword] = { .visible = true, .named = true, }, [sym_lang_keyword] = { .visible = true, .named = true, }, [sym__space] = { .visible = false, .named = true, }, [sym_template] = { .visible = true, .named = true, }, [sym__node] = { .visible = false, .named = true, }, [sym_block_open] = { .visible = true, .named = true, }, [sym_block_close] = { .visible = true, .named = true, }, [sym_lang_tag] = { .visible = true, .named = true, }, [sym_variable] = { .visible = true, .named = true, }, [sym_attributes] = { .visible = true, .named = true, }, [sym_attribute] = { .visible = true, .named = true, }, [sym_variable_prefix] = { .visible = true, .named = true, }, [aux_sym_template_repeat1] = { .visible = false, .named = false, }, [aux_sym_attributes_repeat1] = { .visible = false, .named = false, }, }; static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = { [0] = {0}, }; static const uint16_t ts_non_terminal_alias_map[] = { 0, }; static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [0] = 0, [1] = 1, [2] = 2, [3] = 3, [4] = 4, [5] = 5, [6] = 6, [7] = 7, [8] = 8, [9] = 9, [10] = 10, [11] = 11, [12] = 12, [13] = 13, [14] = 14, [15] = 15, [16] = 16, [17] = 17, [18] = 18, [19] = 19, [20] = 20, [21] = 21, [22] = 22, [23] = 23, [24] = 24, [25] = 25, [26] = 26, [27] = 27, [28] = 28, [29] = 29, [30] = 30, [31] = 31, [32] = 32, [33] = 33, [34] = 34, }; static bool ts_lex(TSLexer *lexer, TSStateId state) { START_LEXER(); eof = lexer->eof(lexer); switch (state) { case 0: if (eof) ADVANCE(31); ADVANCE_MAP( '-', 37, '/', 36, ':', 34, '=', 38, 'B', 57, 'L', 53, '_', 62, 'b', 57, 'c', 46, 'f', 47, 'i', 44, 'l', 53, 't', 40, '{', 33, '}', 35, '\t', 86, ' ', 86, ); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(73); if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(60); if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(60); if (lookahead != 0) ADVANCE(32); END_STATE(); case 1: ADVANCE_MAP( '"', 2, '-', 37, '/', 36, ':', 34, '=', 38, 'B', 69, 'L', 65, 'b', 21, 'c', 10, 'f', 11, 'i', 8, 'l', 17, 't', 4, '}', 35, '\t', 86, ' ', 86, ); if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(72); END_STATE(); case 2: if (lookahead == '"') ADVANCE(63); if (lookahead != 0) ADVANCE(2); END_STATE(); case 3: if (lookahead == 'a') ADVANCE(6); END_STATE(); case 4: if (lookahead == 'e') ADVANCE(16); END_STATE(); case 5: if (lookahead == 'e') ADVANCE(80); END_STATE(); case 6: if (lookahead == 'g') ADVANCE(5); END_STATE(); case 7: if (lookahead == 'l') ADVANCE(12); END_STATE(); case 8: if (lookahead == 'm') ADVANCE(3); END_STATE(); case 9: if (lookahead == 'n') ADVANCE(14); END_STATE(); case 10: if (lookahead == 'o') ADVANCE(7); END_STATE(); case 11: if (lookahead == 'o') ADVANCE(9); END_STATE(); case 12: if (lookahead == 'o') ADVANCE(13); END_STATE(); case 13: if (lookahead == 'r') ADVANCE(76); END_STATE(); case 14: if (lookahead == 't') ADVANCE(78); END_STATE(); case 15: if (lookahead == 't') ADVANCE(74); END_STATE(); case 16: if (lookahead == 'x') ADVANCE(15); END_STATE(); case 17: if (lookahead == 'A' || lookahead == 'a') ADVANCE(22); END_STATE(); case 18: if (lookahead == 'C' || lookahead == 'c') ADVANCE(20); END_STATE(); case 19: if (lookahead == 'G' || lookahead == 'g') ADVANCE(85); END_STATE(); case 20: if (lookahead == 'K' || lookahead == 'k') ADVANCE(84); END_STATE(); case 21: if (lookahead == 'L' || lookahead == 'l') ADVANCE(23); END_STATE(); case 22: if (lookahead == 'N' || lookahead == 'n') ADVANCE(19); END_STATE(); case 23: if (lookahead == 'O' || lookahead == 'o') ADVANCE(18); END_STATE(); case 24: if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(64); END_STATE(); case 25: if (('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(82); END_STATE(); case 26: if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(62); END_STATE(); case 27: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(73); END_STATE(); case 28: if (lookahead != 0 && lookahead != '/' && (lookahead < 'A' || 'Z' < lookahead) && (lookahead < 'a' || 'z' < lookahead)) ADVANCE(32); END_STATE(); case 29: if (lookahead != 0 && lookahead != '}') ADVANCE(83); END_STATE(); case 30: if (eof) ADVANCE(31); if (lookahead == '{') ADVANCE(33); if (lookahead != 0) ADVANCE(32); END_STATE(); case 31: ACCEPT_TOKEN(ts_builtin_sym_end); END_STATE(); case 32: ACCEPT_TOKEN(sym_content); if (lookahead == '{') ADVANCE(28); if (lookahead != 0) ADVANCE(32); END_STATE(); case 33: ACCEPT_TOKEN(anon_sym_LBRACE); END_STATE(); case 34: ACCEPT_TOKEN(anon_sym_COLON); END_STATE(); case 35: ACCEPT_TOKEN(anon_sym_RBRACE); END_STATE(); case 36: ACCEPT_TOKEN(anon_sym_SLASH); END_STATE(); case 37: ACCEPT_TOKEN(anon_sym_DASH); END_STATE(); case 38: ACCEPT_TOKEN(anon_sym_EQ); END_STATE(); case 39: ACCEPT_TOKEN(sym_attribute_name); if (lookahead == '-') ADVANCE(62); if (lookahead == '_') ADVANCE(61); if (lookahead == 'a') ADVANCE(42); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || ('b' <= lookahead && lookahead <= 'z')) ADVANCE(60); END_STATE(); case 40: ACCEPT_TOKEN(sym_attribute_name); if (lookahead == '-') ADVANCE(62); if (lookahead == '_') ADVANCE(61); if (lookahead == 'e') ADVANCE(52); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(60); END_STATE(); case 41: ACCEPT_TOKEN(sym_attribute_name); if (lookahead == '-') ADVANCE(62); if (lookahead == '_') ADVANCE(61); if (lookahead == 'e') ADVANCE(81); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(60); END_STATE(); case 42: ACCEPT_TOKEN(sym_attribute_name); if (lookahead == '-') ADVANCE(62); if (lookahead == '_') ADVANCE(61); if (lookahead == 'g') ADVANCE(41); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(60); END_STATE(); case 43: ACCEPT_TOKEN(sym_attribute_name); if (lookahead == '-') ADVANCE(62); if (lookahead == '_') ADVANCE(61); if (lookahead == 'l') ADVANCE(48); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(60); END_STATE(); case 44: ACCEPT_TOKEN(sym_attribute_name); if (lookahead == '-') ADVANCE(62); if (lookahead == '_') ADVANCE(61); if (lookahead == 'm') ADVANCE(39); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(60); END_STATE(); case 45: ACCEPT_TOKEN(sym_attribute_name); if (lookahead == '-') ADVANCE(62); if (lookahead == '_') ADVANCE(61); if (lookahead == 'n') ADVANCE(50); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(60); END_STATE(); case 46: ACCEPT_TOKEN(sym_attribute_name); if (lookahead == '-') ADVANCE(62); if (lookahead == '_') ADVANCE(61); if (lookahead == 'o') ADVANCE(43); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(60); END_STATE(); case 47: ACCEPT_TOKEN(sym_attribute_name); if (lookahead == '-') ADVANCE(62); if (lookahead == '_') ADVANCE(61); if (lookahead == 'o') ADVANCE(45); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(60); END_STATE(); case 48: ACCEPT_TOKEN(sym_attribute_name); if (lookahead == '-') ADVANCE(62); if (lookahead == '_') ADVANCE(61); if (lookahead == 'o') ADVANCE(49); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(60); END_STATE(); case 49: ACCEPT_TOKEN(sym_attribute_name); if (lookahead == '-') ADVANCE(62); if (lookahead == '_') ADVANCE(61); if (lookahead == 'r') ADVANCE(77); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(60); END_STATE(); case 50: ACCEPT_TOKEN(sym_attribute_name); if (lookahead == '-') ADVANCE(62); if (lookahead == '_') ADVANCE(61); if (lookahead == 't') ADVANCE(79); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(60); END_STATE(); case 51: ACCEPT_TOKEN(sym_attribute_name); if (lookahead == '-') ADVANCE(62); if (lookahead == '_') ADVANCE(61); if (lookahead == 't') ADVANCE(75); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(60); END_STATE(); case 52: ACCEPT_TOKEN(sym_attribute_name); if (lookahead == '-') ADVANCE(62); if (lookahead == '_') ADVANCE(61); if (lookahead == 'x') ADVANCE(51); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(60); END_STATE(); case 53: ACCEPT_TOKEN(sym_attribute_name); if (lookahead == '-') ADVANCE(62); if (lookahead == '_') ADVANCE(61); if (lookahead == 'A' || lookahead == 'a') ADVANCE(58); if (('0' <= lookahead && lookahead <= '9') || ('B' <= lookahead && lookahead <= 'Z') || ('b' <= lookahead && lookahead <= 'z')) ADVANCE(60); END_STATE(); case 54: ACCEPT_TOKEN(sym_attribute_name); if (lookahead == '-') ADVANCE(62); if (lookahead == '_') ADVANCE(61); if (lookahead == 'C' || lookahead == 'c') ADVANCE(56); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(60); END_STATE(); case 55: ACCEPT_TOKEN(sym_attribute_name); if (lookahead == '-') ADVANCE(62); if (lookahead == '_') ADVANCE(61); if (lookahead == 'G' || lookahead == 'g') ADVANCE(85); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(60); END_STATE(); case 56: ACCEPT_TOKEN(sym_attribute_name); if (lookahead == '-') ADVANCE(62); if (lookahead == '_') ADVANCE(61); if (lookahead == 'K' || lookahead == 'k') ADVANCE(84); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(60); END_STATE(); case 57: ACCEPT_TOKEN(sym_attribute_name); if (lookahead == '-') ADVANCE(62); if (lookahead == '_') ADVANCE(61); if (lookahead == 'L' || lookahead == 'l') ADVANCE(59); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(60); END_STATE(); case 58: ACCEPT_TOKEN(sym_attribute_name); if (lookahead == '-') ADVANCE(62); if (lookahead == '_') ADVANCE(61); if (lookahead == 'N' || lookahead == 'n') ADVANCE(55); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(60); END_STATE(); case 59: ACCEPT_TOKEN(sym_attribute_name); if (lookahead == '-') ADVANCE(62); if (lookahead == '_') ADVANCE(61); if (lookahead == 'O' || lookahead == 'o') ADVANCE(54); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(60); END_STATE(); case 60: ACCEPT_TOKEN(sym_attribute_name); if (lookahead == '-') ADVANCE(62); if (lookahead == '_') ADVANCE(61); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(60); END_STATE(); case 61: ACCEPT_TOKEN(sym_attribute_name); if (lookahead == '-') ADVANCE(62); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(61); END_STATE(); case 62: ACCEPT_TOKEN(sym_attribute_name); if (lookahead == '-' || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(62); END_STATE(); case 63: ACCEPT_TOKEN(sym_attribute_value); END_STATE(); case 64: ACCEPT_TOKEN(sym_block_name); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(64); END_STATE(); case 65: ACCEPT_TOKEN(sym_variable_name); if (lookahead == 'A' || lookahead == 'a') ADVANCE(70); if (('0' <= lookahead && lookahead <= '9') || ('B' <= lookahead && lookahead <= 'Z') || lookahead == '_' || ('b' <= lookahead && lookahead <= 'z')) ADVANCE(72); END_STATE(); case 66: ACCEPT_TOKEN(sym_variable_name); if (lookahead == 'C' || lookahead == 'c') ADVANCE(68); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(72); END_STATE(); case 67: ACCEPT_TOKEN(sym_variable_name); if (lookahead == 'G' || lookahead == 'g') ADVANCE(85); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(72); END_STATE(); case 68: ACCEPT_TOKEN(sym_variable_name); if (lookahead == 'K' || lookahead == 'k') ADVANCE(84); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(72); END_STATE(); case 69: ACCEPT_TOKEN(sym_variable_name); if (lookahead == 'L' || lookahead == 'l') ADVANCE(71); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(72); END_STATE(); case 70: ACCEPT_TOKEN(sym_variable_name); if (lookahead == 'N' || lookahead == 'n') ADVANCE(67); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(72); END_STATE(); case 71: ACCEPT_TOKEN(sym_variable_name); if (lookahead == 'O' || lookahead == 'o') ADVANCE(66); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(72); END_STATE(); case 72: ACCEPT_TOKEN(sym_variable_name); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(72); END_STATE(); case 73: ACCEPT_TOKEN(sym_variable_modifier); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(73); END_STATE(); case 74: ACCEPT_TOKEN(anon_sym_text); END_STATE(); case 75: ACCEPT_TOKEN(anon_sym_text); if (lookahead == '-') ADVANCE(62); if (lookahead == '_') ADVANCE(61); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(60); END_STATE(); case 76: ACCEPT_TOKEN(anon_sym_color); END_STATE(); case 77: ACCEPT_TOKEN(anon_sym_color); if (lookahead == '-') ADVANCE(62); if (lookahead == '_') ADVANCE(61); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(60); END_STATE(); case 78: ACCEPT_TOKEN(anon_sym_font); END_STATE(); case 79: ACCEPT_TOKEN(anon_sym_font); if (lookahead == '-') ADVANCE(62); if (lookahead == '_') ADVANCE(61); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(60); END_STATE(); case 80: ACCEPT_TOKEN(anon_sym_image); END_STATE(); case 81: ACCEPT_TOKEN(anon_sym_image); if (lookahead == '-') ADVANCE(62); if (lookahead == '_') ADVANCE(61); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(60); END_STATE(); case 82: ACCEPT_TOKEN(sym_prefix_argument); if (lookahead == ' ' || lookahead == '-' || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(82); END_STATE(); case 83: ACCEPT_TOKEN(sym_lang_text); if (lookahead != 0 && lookahead != '}') ADVANCE(83); END_STATE(); case 84: ACCEPT_TOKEN(sym_block_keyword); END_STATE(); case 85: ACCEPT_TOKEN(sym_lang_keyword); END_STATE(); case 86: ACCEPT_TOKEN(sym__space); if (lookahead == '\t' || lookahead == ' ') ADVANCE(86); END_STATE(); default: return false; } } static const TSLexerMode ts_lex_modes[STATE_COUNT] = { [0] = {.lex_state = 0}, [1] = {.lex_state = 30}, [2] = {.lex_state = 1}, [3] = {.lex_state = 30}, [4] = {.lex_state = 30}, [5] = {.lex_state = 1}, [6] = {.lex_state = 1}, [7] = {.lex_state = 1}, [8] = {.lex_state = 30}, [9] = {.lex_state = 30}, [10] = {.lex_state = 30}, [11] = {.lex_state = 30}, [12] = {.lex_state = 30}, [13] = {.lex_state = 30}, [14] = {.lex_state = 1}, [15] = {.lex_state = 1}, [16] = {.lex_state = 1}, [17] = {.lex_state = 0}, [18] = {.lex_state = 1}, [19] = {.lex_state = 1}, [20] = {.lex_state = 27}, [21] = {.lex_state = 24}, [22] = {.lex_state = 29}, [23] = {.lex_state = 25}, [24] = {.lex_state = 24}, [25] = {.lex_state = 1}, [26] = {.lex_state = 1}, [27] = {.lex_state = 1}, [28] = {.lex_state = 1}, [29] = {.lex_state = 1}, [30] = {.lex_state = 1}, [31] = {.lex_state = 26}, [32] = {.lex_state = 1}, [33] = {.lex_state = 1}, [34] = {.lex_state = 1}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [STATE(0)] = { [ts_builtin_sym_end] = ACTIONS(1), [sym_content] = ACTIONS(1), [anon_sym_LBRACE] = ACTIONS(1), [anon_sym_COLON] = ACTIONS(1), [anon_sym_RBRACE] = ACTIONS(1), [anon_sym_SLASH] = ACTIONS(1), [anon_sym_DASH] = ACTIONS(1), [anon_sym_EQ] = ACTIONS(1), [sym_attribute_name] = ACTIONS(1), [sym_block_name] = ACTIONS(1), [sym_variable_name] = ACTIONS(1), [sym_variable_modifier] = ACTIONS(1), [anon_sym_text] = ACTIONS(1), [anon_sym_color] = ACTIONS(1), [anon_sym_font] = ACTIONS(1), [anon_sym_image] = ACTIONS(1), [sym_block_keyword] = ACTIONS(1), [sym_lang_keyword] = ACTIONS(1), [sym__space] = ACTIONS(1), }, [STATE(1)] = { [sym_template] = STATE(17), [sym__node] = STATE(3), [sym_block_open] = STATE(3), [sym_block_close] = STATE(3), [sym_lang_tag] = STATE(3), [sym_variable] = STATE(3), [aux_sym_template_repeat1] = STATE(3), [ts_builtin_sym_end] = ACTIONS(3), [sym_content] = ACTIONS(5), [anon_sym_LBRACE] = ACTIONS(7), }, }; static const uint16_t ts_small_parse_table[] = { [0] = 6, ACTIONS(9), 1, anon_sym_SLASH, ACTIONS(11), 1, sym_variable_name, ACTIONS(15), 1, sym_block_keyword, ACTIONS(17), 1, sym_lang_keyword, STATE(16), 1, sym_variable_prefix, ACTIONS(13), 4, anon_sym_text, anon_sym_color, anon_sym_font, anon_sym_image, [22] = 4, ACTIONS(7), 1, anon_sym_LBRACE, ACTIONS(19), 1, ts_builtin_sym_end, ACTIONS(21), 1, sym_content, STATE(4), 6, sym__node, sym_block_open, sym_block_close, sym_lang_tag, sym_variable, aux_sym_template_repeat1, [40] = 4, ACTIONS(23), 1, ts_builtin_sym_end, ACTIONS(25), 1, sym_content, ACTIONS(28), 1, anon_sym_LBRACE, STATE(4), 6, sym__node, sym_block_open, sym_block_close, sym_lang_tag, sym_variable, aux_sym_template_repeat1, [58] = 4, ACTIONS(31), 1, anon_sym_RBRACE, ACTIONS(33), 1, sym__space, STATE(29), 1, sym_attributes, STATE(6), 2, sym_attribute, aux_sym_attributes_repeat1, [72] = 3, ACTIONS(33), 1, sym__space, ACTIONS(35), 1, anon_sym_RBRACE, STATE(7), 2, sym_attribute, aux_sym_attributes_repeat1, [83] = 3, ACTIONS(37), 1, anon_sym_RBRACE, ACTIONS(39), 1, sym__space, STATE(7), 2, sym_attribute, aux_sym_attributes_repeat1, [94] = 2, ACTIONS(44), 1, sym_content, ACTIONS(42), 2, ts_builtin_sym_end, anon_sym_LBRACE, [102] = 2, ACTIONS(48), 1, sym_content, ACTIONS(46), 2, ts_builtin_sym_end, anon_sym_LBRACE, [110] = 2, ACTIONS(52), 1, sym_content, ACTIONS(50), 2, ts_builtin_sym_end, anon_sym_LBRACE, [118] = 2, ACTIONS(56), 1, sym_content, ACTIONS(54), 2, ts_builtin_sym_end, anon_sym_LBRACE, [126] = 2, ACTIONS(60), 1, sym_content, ACTIONS(58), 2, ts_builtin_sym_end, anon_sym_LBRACE, [134] = 2, ACTIONS(64), 1, sym_content, ACTIONS(62), 2, ts_builtin_sym_end, anon_sym_LBRACE, [142] = 1, ACTIONS(66), 2, anon_sym_RBRACE, sym__space, [147] = 2, ACTIONS(68), 1, anon_sym_RBRACE, ACTIONS(70), 1, anon_sym_DASH, [154] = 1, ACTIONS(72), 1, anon_sym_COLON, [158] = 1, ACTIONS(74), 1, ts_builtin_sym_end, [162] = 1, ACTIONS(76), 1, anon_sym_COLON, [166] = 1, ACTIONS(78), 1, anon_sym_COLON, [170] = 1, ACTIONS(80), 1, sym_variable_modifier, [174] = 1, ACTIONS(82), 1, sym_block_name, [178] = 1, ACTIONS(84), 1, sym_lang_text, [182] = 1, ACTIONS(80), 1, sym_prefix_argument, [186] = 1, ACTIONS(86), 1, sym_block_name, [190] = 1, ACTIONS(88), 1, anon_sym_RBRACE, [194] = 1, ACTIONS(90), 1, sym_block_keyword, [198] = 1, ACTIONS(92), 1, anon_sym_RBRACE, [202] = 1, ACTIONS(94), 1, anon_sym_COLON, [206] = 1, ACTIONS(96), 1, anon_sym_RBRACE, [210] = 1, ACTIONS(98), 1, anon_sym_EQ, [214] = 1, ACTIONS(100), 1, sym_attribute_name, [218] = 1, ACTIONS(102), 1, anon_sym_COLON, [222] = 1, ACTIONS(104), 1, sym_attribute_value, [226] = 1, ACTIONS(106), 1, anon_sym_RBRACE, }; static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(2)] = 0, [SMALL_STATE(3)] = 22, [SMALL_STATE(4)] = 40, [SMALL_STATE(5)] = 58, [SMALL_STATE(6)] = 72, [SMALL_STATE(7)] = 83, [SMALL_STATE(8)] = 94, [SMALL_STATE(9)] = 102, [SMALL_STATE(10)] = 110, [SMALL_STATE(11)] = 118, [SMALL_STATE(12)] = 126, [SMALL_STATE(13)] = 134, [SMALL_STATE(14)] = 142, [SMALL_STATE(15)] = 147, [SMALL_STATE(16)] = 154, [SMALL_STATE(17)] = 158, [SMALL_STATE(18)] = 162, [SMALL_STATE(19)] = 166, [SMALL_STATE(20)] = 170, [SMALL_STATE(21)] = 174, [SMALL_STATE(22)] = 178, [SMALL_STATE(23)] = 182, [SMALL_STATE(24)] = 186, [SMALL_STATE(25)] = 190, [SMALL_STATE(26)] = 194, [SMALL_STATE(27)] = 198, [SMALL_STATE(28)] = 202, [SMALL_STATE(29)] = 206, [SMALL_STATE(30)] = 210, [SMALL_STATE(31)] = 214, [SMALL_STATE(32)] = 218, [SMALL_STATE(33)] = 222, [SMALL_STATE(34)] = 226, }; static const TSParseActionEntry ts_parse_actions[] = { [0] = {.entry = {.count = 0, .reusable = false}}, [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(), [3] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template, 0, 0, 0), [5] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3), [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15), [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), [19] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template, 1, 0, 0), [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4), [23] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_repeat1, 2, 0, 0), [25] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_template_repeat1, 2, 0, 0), SHIFT_REPEAT(4), [28] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_repeat1, 2, 0, 0), SHIFT_REPEAT(2), [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), [35] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attributes, 1, 0, 0), [37] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_attributes_repeat1, 2, 0, 0), [39] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributes_repeat1, 2, 0, 0), SHIFT_REPEAT(31), [42] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lang_tag, 5, 0, 0), [44] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_lang_tag, 5, 0, 0), [46] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable, 3, 0, 0), [48] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable, 3, 0, 0), [50] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable, 5, 0, 0), [52] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable, 5, 0, 0), [54] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block_close, 6, 0, 0), [56] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block_close, 6, 0, 0), [58] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block_open, 5, 0, 0), [60] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block_open, 5, 0, 0), [62] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block_open, 6, 0, 0), [64] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block_open, 6, 0, 0), [66] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 4, 0, 0), [68] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), [70] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), [72] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), [74] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), [76] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), [78] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), [80] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), [82] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), [84] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), [86] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), [88] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), [90] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), [92] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), [94] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_prefix, 1, 0, 0), [96] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), [100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), [102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), [104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), [106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), }; #ifdef __cplusplus extern "C" { #endif #ifdef TREE_SITTER_HIDE_SYMBOLS #define TS_PUBLIC #elif defined(_WIN32) #define TS_PUBLIC __declspec(dllexport) #else #define TS_PUBLIC __attribute__((visibility("default"))) #endif TS_PUBLIC const TSLanguage *tree_sitter_tumblr(void) { static const TSLanguage language = { .abi_version = LANGUAGE_VERSION, .symbol_count = SYMBOL_COUNT, .alias_count = ALIAS_COUNT, .token_count = TOKEN_COUNT, .external_token_count = EXTERNAL_TOKEN_COUNT, .state_count = STATE_COUNT, .large_state_count = LARGE_STATE_COUNT, .production_id_count = PRODUCTION_ID_COUNT, .supertype_count = SUPERTYPE_COUNT, .field_count = FIELD_COUNT, .max_alias_sequence_length = MAX_ALIAS_SEQUENCE_LENGTH, .parse_table = &ts_parse_table[0][0], .small_parse_table = ts_small_parse_table, .small_parse_table_map = ts_small_parse_table_map, .parse_actions = ts_parse_actions, .symbol_names = ts_symbol_names, .symbol_metadata = ts_symbol_metadata, .public_symbol_map = ts_symbol_map, .alias_map = ts_non_terminal_alias_map, .alias_sequences = &ts_alias_sequences[0][0], .lex_modes = (const void*)ts_lex_modes, .lex_fn = ts_lex, .primary_state_ids = ts_primary_state_ids, .name = "tumblr", .max_reserved_word_set_size = 0, .metadata = { .major_version = 0, .minor_version = 1, .patch_version = 0, }, }; return &language; } #ifdef __cplusplus } #endif