#include "tree_sitter/parser.h"
#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
#endif
#define LANGUAGE_VERSION 14
#define STATE_COUNT 194
#define LARGE_STATE_COUNT 2
#define SYMBOL_COUNT 69
#define ALIAS_COUNT 3
#define TOKEN_COUNT 35
#define EXTERNAL_TOKEN_COUNT 4
#define FIELD_COUNT 0
#define MAX_ALIAS_SEQUENCE_LENGTH 6
#define PRODUCTION_ID_COUNT 7
enum ts_symbol_identifiers {
anon_sym_BANG_BANG_BANG = 1,
anon_sym_SLASH = 2,
anon_sym_SPACE = 3,
anon_sym_LPAREN = 4,
anon_sym_RPAREN = 5,
sym_tag_name = 6,
aux_sym_class_or_id_value_token1 = 7,
anon_sym_POUND = 8,
anon_sym_DOT = 9,
anon_sym_DASH_POUND = 10,
anon_sym_LBRACK = 11,
anon_sym_RBRACK = 12,
sym_attribute_name = 13,
anon_sym_EQ = 14,
anon_sym_SQUOTE = 15,
anon_sym_DQUOTE = 16,
sym__text = 17,
sym_verbatim_string = 18,
anon_sym_BANG = 19,
anon_sym_DASH = 20,
sym_ruby_expression = 21,
anon_sym_AT_AT = 22,
aux_sym_ruby_class_variable_token1 = 23,
anon_sym_AT = 24,
aux_sym_ruby_instance_variable_token1 = 25,
anon_sym_DOLLAR = 26,
sym_ruby_constant = 27,
sym_ruby_local_variable = 28,
sym__html_identifier = 29,
anon_sym_COLON = 30,
sym__newline = 31,
sym__indent = 32,
sym__dedent = 33,
sym_ruby_attributes = 34,
sym_source_file = 35,
sym_doctype = 36,
sym_tag = 37,
sym__children = 38,
sym__children_choice = 39,
sym_html_attributes = 40,
sym_attributes = 41,
sym_class_or_id_value = 42,
sym_id = 43,
sym_class = 44,
sym_class_name = 45,
sym_comment = 46,
sym__comment_line = 47,
sym__comment_block = 48,
sym_comment_condition = 49,
sym_attribute = 50,
sym_quoted_attribute_value = 51,
sym_ruby_block_output = 52,
sym_ruby_block_run = 53,
sym_ruby_interpolation = 54,
sym_ruby_class_variable = 55,
sym_ruby_instance_variable = 56,
sym_ruby_global_variable = 57,
sym_ruby_value_ref = 58,
sym_filter = 59,
sym_filter_body = 60,
aux_sym_source_file_repeat1 = 61,
aux_sym_tag_repeat1 = 62,
aux_sym__children_repeat1 = 63,
aux_sym_html_attributes_repeat1 = 64,
aux_sym_attributes_repeat1 = 65,
aux_sym__comment_line_repeat1 = 66,
aux_sym_quoted_attribute_value_repeat1 = 67,
aux_sym_filter_body_repeat1 = 68,
alias_sym_filter_name = 69,
alias_sym_ruby_code = 70,
alias_sym_self_close_slash = 71,
};
static const char * const ts_symbol_names[] = {
[ts_builtin_sym_end] = "end",
[anon_sym_BANG_BANG_BANG] = "!!!",
[anon_sym_SLASH] = "/",
[anon_sym_SPACE] = " ",
[anon_sym_LPAREN] = "(",
[anon_sym_RPAREN] = ")",
[sym_tag_name] = "tag_name",
[aux_sym_class_or_id_value_token1] = "class_or_id_value_token1",
[anon_sym_POUND] = "#",
[anon_sym_DOT] = ".",
[anon_sym_DASH_POUND] = "-#",
[anon_sym_LBRACK] = "[",
[anon_sym_RBRACK] = "]",
[sym_attribute_name] = "attribute_name",
[anon_sym_EQ] = "=",
[anon_sym_SQUOTE] = "'",
[anon_sym_DQUOTE] = "\"",
[sym__text] = "_text",
[sym_verbatim_string] = "verbatim_string",
[anon_sym_BANG] = "!",
[anon_sym_DASH] = "-",
[sym_ruby_expression] = "ruby_expression",
[anon_sym_AT_AT] = "@@",
[aux_sym_ruby_class_variable_token1] = "ruby_class_variable_token1",
[anon_sym_AT] = "@",
[aux_sym_ruby_instance_variable_token1] = "ruby_instance_variable_token1",
[anon_sym_DOLLAR] = "$",
[sym_ruby_constant] = "ruby_constant",
[sym_ruby_local_variable] = "ruby_local_variable",
[sym__html_identifier] = "attribute_value",
[anon_sym_COLON] = ":",
[sym__newline] = "_newline",
[sym__indent] = "_indent",
[sym__dedent] = "_dedent",
[sym_ruby_attributes] = "ruby_attributes",
[sym_source_file] = "source_file",
[sym_doctype] = "doctype",
[sym_tag] = "tag",
[sym__children] = "_children",
[sym__children_choice] = "_children_choice",
[sym_html_attributes] = "html_attributes",
[sym_attributes] = "attributes",
[sym_class_or_id_value] = "id",
[sym_id] = "id",
[sym_class] = "class",
[sym_class_name] = "class_name",
[sym_comment] = "comment",
[sym__comment_line] = "_comment_line",
[sym__comment_block] = "_comment_block",
[sym_comment_condition] = "comment_condition",
[sym_attribute] = "attribute",
[sym_quoted_attribute_value] = "quoted_attribute_value",
[sym_ruby_block_output] = "ruby_block_output",
[sym_ruby_block_run] = "ruby_block_run",
[sym_ruby_interpolation] = "ruby_interpolation",
[sym_ruby_class_variable] = "ruby_class_variable",
[sym_ruby_instance_variable] = "ruby_instance_variable",
[sym_ruby_global_variable] = "ruby_global_variable",
[sym_ruby_value_ref] = "ruby_value_ref",
[sym_filter] = "filter",
[sym_filter_body] = "filter_body",
[aux_sym_source_file_repeat1] = "source_file_repeat1",
[aux_sym_tag_repeat1] = "tag_repeat1",
[aux_sym__children_repeat1] = "_children_repeat1",
[aux_sym_html_attributes_repeat1] = "html_attributes_repeat1",
[aux_sym_attributes_repeat1] = "attributes_repeat1",
[aux_sym__comment_line_repeat1] = "_comment_line_repeat1",
[aux_sym_quoted_attribute_value_repeat1] = "quoted_attribute_value_repeat1",
[aux_sym_filter_body_repeat1] = "filter_body_repeat1",
[alias_sym_filter_name] = "filter_name",
[alias_sym_ruby_code] = "ruby_code",
[alias_sym_self_close_slash] = "self_close_slash",
};
static const TSSymbol ts_symbol_map[] = {
[ts_builtin_sym_end] = ts_builtin_sym_end,
[anon_sym_BANG_BANG_BANG] = anon_sym_BANG_BANG_BANG,
[anon_sym_SLASH] = anon_sym_SLASH,
[anon_sym_SPACE] = anon_sym_SPACE,
[anon_sym_LPAREN] = anon_sym_LPAREN,
[anon_sym_RPAREN] = anon_sym_RPAREN,
[sym_tag_name] = sym_tag_name,
[aux_sym_class_or_id_value_token1] = aux_sym_class_or_id_value_token1,
[anon_sym_POUND] = anon_sym_POUND,
[anon_sym_DOT] = anon_sym_DOT,
[anon_sym_DASH_POUND] = anon_sym_DASH_POUND,
[anon_sym_LBRACK] = anon_sym_LBRACK,
[anon_sym_RBRACK] = anon_sym_RBRACK,
[sym_attribute_name] = sym_attribute_name,
[anon_sym_EQ] = anon_sym_EQ,
[anon_sym_SQUOTE] = anon_sym_SQUOTE,
[anon_sym_DQUOTE] = anon_sym_DQUOTE,
[sym__text] = sym__text,
[sym_verbatim_string] = sym_verbatim_string,
[anon_sym_BANG] = anon_sym_BANG,
[anon_sym_DASH] = anon_sym_DASH,
[sym_ruby_expression] = sym_ruby_expression,
[anon_sym_AT_AT] = anon_sym_AT_AT,
[aux_sym_ruby_class_variable_token1] = aux_sym_ruby_class_variable_token1,
[anon_sym_AT] = anon_sym_AT,
[aux_sym_ruby_instance_variable_token1] = aux_sym_ruby_instance_variable_token1,
[anon_sym_DOLLAR] = anon_sym_DOLLAR,
[sym_ruby_constant] = sym_ruby_constant,
[sym_ruby_local_variable] = sym_ruby_local_variable,
[sym__html_identifier] = sym__html_identifier,
[anon_sym_COLON] = anon_sym_COLON,
[sym__newline] = sym__newline,
[sym__indent] = sym__indent,
[sym__dedent] = sym__dedent,
[sym_ruby_attributes] = sym_ruby_attributes,
[sym_source_file] = sym_source_file,
[sym_doctype] = sym_doctype,
[sym_tag] = sym_tag,
[sym__children] = sym__children,
[sym__children_choice] = sym__children_choice,
[sym_html_attributes] = sym_html_attributes,
[sym_attributes] = sym_attributes,
[sym_class_or_id_value] = sym_class_or_id_value,
[sym_id] = sym_id,
[sym_class] = sym_class,
[sym_class_name] = sym_class_name,
[sym_comment] = sym_comment,
[sym__comment_line] = sym__comment_line,
[sym__comment_block] = sym__comment_block,
[sym_comment_condition] = sym_comment_condition,
[sym_attribute] = sym_attribute,
[sym_quoted_attribute_value] = sym_quoted_attribute_value,
[sym_ruby_block_output] = sym_ruby_block_output,
[sym_ruby_block_run] = sym_ruby_block_run,
[sym_ruby_interpolation] = sym_ruby_interpolation,
[sym_ruby_class_variable] = sym_ruby_class_variable,
[sym_ruby_instance_variable] = sym_ruby_instance_variable,
[sym_ruby_global_variable] = sym_ruby_global_variable,
[sym_ruby_value_ref] = sym_ruby_value_ref,
[sym_filter] = sym_filter,
[sym_filter_body] = sym_filter_body,
[aux_sym_source_file_repeat1] = aux_sym_source_file_repeat1,
[aux_sym_tag_repeat1] = aux_sym_tag_repeat1,
[aux_sym__children_repeat1] = aux_sym__children_repeat1,
[aux_sym_html_attributes_repeat1] = aux_sym_html_attributes_repeat1,
[aux_sym_attributes_repeat1] = aux_sym_attributes_repeat1,
[aux_sym__comment_line_repeat1] = aux_sym__comment_line_repeat1,
[aux_sym_quoted_attribute_value_repeat1] = aux_sym_quoted_attribute_value_repeat1,
[aux_sym_filter_body_repeat1] = aux_sym_filter_body_repeat1,
[alias_sym_filter_name] = alias_sym_filter_name,
[alias_sym_ruby_code] = alias_sym_ruby_code,
[alias_sym_self_close_slash] = alias_sym_self_close_slash,
};
static const TSSymbolMetadata ts_symbol_metadata[] = {
[ts_builtin_sym_end] = {
.visible = false,
.named = true,
},
[anon_sym_BANG_BANG_BANG] = {
.visible = true,
.named = false,
},
[anon_sym_SLASH] = {
.visible = true,
.named = false,
},
[anon_sym_SPACE] = {
.visible = true,
.named = false,
},
[anon_sym_LPAREN] = {
.visible = true,
.named = false,
},
[anon_sym_RPAREN] = {
.visible = true,
.named = false,
},
[sym_tag_name] = {
.visible = true,
.named = true,
},
[aux_sym_class_or_id_value_token1] = {
.visible = false,
.named = false,
},
[anon_sym_POUND] = {
.visible = true,
.named = false,
},
[anon_sym_DOT] = {
.visible = true,
.named = false,
},
[anon_sym_DASH_POUND] = {
.visible = true,
.named = false,
},
[anon_sym_LBRACK] = {
.visible = true,
.named = false,
},
[anon_sym_RBRACK] = {
.visible = true,
.named = false,
},
[sym_attribute_name] = {
.visible = true,
.named = true,
},
[anon_sym_EQ] = {
.visible = true,
.named = false,
},
[anon_sym_SQUOTE] = {
.visible = true,
.named = false,
},
[anon_sym_DQUOTE] = {
.visible = true,
.named = false,
},
[sym__text] = {
.visible = false,
.named = true,
},
[sym_verbatim_string] = {
.visible = true,
.named = true,
},
[anon_sym_BANG] = {
.visible = true,
.named = false,
},
[anon_sym_DASH] = {
.visible = true,
.named = false,
},
[sym_ruby_expression] = {
.visible = true,
.named = true,
},
[anon_sym_AT_AT] = {
.visible = true,
.named = false,
},
[aux_sym_ruby_class_variable_token1] = {
.visible = false,
.named = false,
},
[anon_sym_AT] = {
.visible = true,
.named = false,
},
[aux_sym_ruby_instance_variable_token1] = {
.visible = false,
.named = false,
},
[anon_sym_DOLLAR] = {
.visible = true,
.named = false,
},
[sym_ruby_constant] = {
.visible = true,
.named = true,
},
[sym_ruby_local_variable] = {
.visible = true,
.named = true,
},
[sym__html_identifier] = {
.visible = true,
.named = true,
},
[anon_sym_COLON] = {
.visible = true,
.named = false,
},
[sym__newline] = {
.visible = false,
.named = true,
},
[sym__indent] = {
.visible = false,
.named = true,
},
[sym__dedent] = {
.visible = false,
.named = true,
},
[sym_ruby_attributes] = {
.visible = true,
.named = true,
},
[sym_source_file] = {
.visible = true,
.named = true,
},
[sym_doctype] = {
.visible = true,
.named = true,
},
[sym_tag] = {
.visible = true,
.named = true,
},
[sym__children] = {
.visible = false,
.named = true,
},
[sym__children_choice] = {
.visible = false,
.named = true,
},
[sym_html_attributes] = {
.visible = true,
.named = true,
},
[sym_attributes] = {
.visible = true,
.named = true,
},
[sym_class_or_id_value] = {
.visible = true,
.named = false,
},
[sym_id] = {
.visible = true,
.named = true,
},
[sym_class] = {
.visible = true,
.named = true,
},
[sym_class_name] = {
.visible = true,
.named = true,
},
[sym_comment] = {
.visible = true,
.named = true,
},
[sym__comment_line] = {
.visible = false,
.named = true,
},
[sym__comment_block] = {
.visible = false,
.named = true,
},
[sym_comment_condition] = {
.visible = true,
.named = true,
},
[sym_attribute] = {
.visible = true,
.named = true,
},
[sym_quoted_attribute_value] = {
.visible = true,
.named = true,
},
[sym_ruby_block_output] = {
.visible = true,
.named = true,
},
[sym_ruby_block_run] = {
.visible = true,
.named = true,
},
[sym_ruby_interpolation] = {
.visible = true,
.named = true,
},
[sym_ruby_class_variable] = {
.visible = true,
.named = true,
},
[sym_ruby_instance_variable] = {
.visible = true,
.named = true,
},
[sym_ruby_global_variable] = {
.visible = true,
.named = true,
},
[sym_ruby_value_ref] = {
.visible = true,
.named = true,
},
[sym_filter] = {
.visible = true,
.named = true,
},
[sym_filter_body] = {
.visible = true,
.named = true,
},
[aux_sym_source_file_repeat1] = {
.visible = false,
.named = false,
},
[aux_sym_tag_repeat1] = {
.visible = false,
.named = false,
},
[aux_sym__children_repeat1] = {
.visible = false,
.named = false,
},
[aux_sym_html_attributes_repeat1] = {
.visible = false,
.named = false,
},
[aux_sym_attributes_repeat1] = {
.visible = false,
.named = false,
},
[aux_sym__comment_line_repeat1] = {
.visible = false,
.named = false,
},
[aux_sym_quoted_attribute_value_repeat1] = {
.visible = false,
.named = false,
},
[aux_sym_filter_body_repeat1] = {
.visible = false,
.named = false,
},
[alias_sym_filter_name] = {
.visible = true,
.named = true,
},
[alias_sym_ruby_code] = {
.visible = true,
.named = true,
},
[alias_sym_self_close_slash] = {
.visible = true,
.named = true,
},
};
static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = {
[0] = {0},
[1] = {
[1] = alias_sym_self_close_slash,
},
[2] = {
[1] = alias_sym_ruby_code,
},
[3] = {
[1] = alias_sym_filter_name,
},
[4] = {
[2] = alias_sym_self_close_slash,
},
[5] = {
[2] = alias_sym_ruby_code,
},
[6] = {
[3] = alias_sym_self_close_slash,
},
};
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] = 3,
[5] = 5,
[6] = 6,
[7] = 7,
[8] = 6,
[9] = 9,
[10] = 10,
[11] = 10,
[12] = 9,
[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] = 21,
[27] = 19,
[28] = 28,
[29] = 25,
[30] = 30,
[31] = 31,
[32] = 32,
[33] = 33,
[34] = 34,
[35] = 35,
[36] = 36,
[37] = 37,
[38] = 38,
[39] = 39,
[40] = 40,
[41] = 41,
[42] = 42,
[43] = 43,
[44] = 44,
[45] = 45,
[46] = 46,
[47] = 47,
[48] = 48,
[49] = 49,
[50] = 50,
[51] = 51,
[52] = 14,
[53] = 20,
[54] = 15,
[55] = 24,
[56] = 22,
[57] = 17,
[58] = 16,
[59] = 18,
[60] = 23,
[61] = 13,
[62] = 62,
[63] = 28,
[64] = 47,
[65] = 31,
[66] = 33,
[67] = 45,
[68] = 46,
[69] = 30,
[70] = 36,
[71] = 32,
[72] = 44,
[73] = 37,
[74] = 74,
[75] = 38,
[76] = 48,
[77] = 39,
[78] = 49,
[79] = 40,
[80] = 41,
[81] = 42,
[82] = 43,
[83] = 34,
[84] = 50,
[85] = 35,
[86] = 86,
[87] = 87,
[88] = 88,
[89] = 89,
[90] = 90,
[91] = 91,
[92] = 92,
[93] = 93,
[94] = 94,
[95] = 95,
[96] = 96,
[97] = 95,
[98] = 94,
[99] = 99,
[100] = 100,
[101] = 99,
[102] = 102,
[103] = 103,
[104] = 103,
[105] = 105,
[106] = 105,
[107] = 107,
[108] = 108,
[109] = 109,
[110] = 110,
[111] = 111,
[112] = 32,
[113] = 113,
[114] = 109,
[115] = 115,
[116] = 116,
[117] = 117,
[118] = 118,
[119] = 119,
[120] = 120,
[121] = 121,
[122] = 122,
[123] = 123,
[124] = 124,
[125] = 125,
[126] = 122,
[127] = 127,
[128] = 128,
[129] = 125,
[130] = 130,
[131] = 119,
[132] = 121,
[133] = 124,
[134] = 134,
[135] = 135,
[136] = 136,
[137] = 137,
[138] = 138,
[139] = 139,
[140] = 140,
[141] = 140,
[142] = 137,
[143] = 139,
[144] = 144,
[145] = 145,
[146] = 146,
[147] = 147,
[148] = 148,
[149] = 149,
[150] = 150,
[151] = 151,
[152] = 152,
[153] = 153,
[154] = 154,
[155] = 155,
[156] = 156,
[157] = 157,
[158] = 158,
[159] = 159,
[160] = 160,
[161] = 144,
[162] = 147,
[163] = 151,
[164] = 164,
[165] = 165,
[166] = 166,
[167] = 167,
[168] = 157,
[169] = 148,
[170] = 170,
[171] = 165,
[172] = 166,
[173] = 164,
[174] = 174,
[175] = 174,
[176] = 176,
[177] = 167,
[178] = 149,
[179] = 152,
[180] = 180,
[181] = 180,
[182] = 182,
[183] = 145,
[184] = 150,
[185] = 185,
[186] = 186,
[187] = 187,
[188] = 188,
[189] = 159,
[190] = 176,
[191] = 160,
[192] = 146,
[193] = 182,
};
static bool ts_lex(TSLexer *lexer, TSStateId state) {
START_LEXER();
eof = lexer->eof(lexer);
switch (state) {
case 0:
if (eof) ADVANCE(19);
ADVANCE_MAP(
'!', 58,
'"', 43,
'#', 30,
'$', 68,
'%', 16,
'\'', 42,
'(', 25,
')', 26,
'-', 61,
'.', 32,
'/', 22,
':', 72,
'=', 40,
'@', 66,
'[', 36,
']', 38,
'{', 11,
);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') SKIP(0);
if (('0' <= lookahead && lookahead <= '9')) ADVANCE(65);
if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(65);
if (lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(65);
END_STATE();
case 1:
if (lookahead == '\n') SKIP(1);
if (lookahead == '!') ADVANCE(59);
if (lookahead == '#') ADVANCE(30);
if (lookahead == '%') ADVANCE(55);
if (lookahead == '-') ADVANCE(61);
if (lookahead == '.') ADVANCE(32);
if (lookahead == '/') ADVANCE(22);
if (lookahead == ':') ADVANCE(72);
if (lookahead == '=') ADVANCE(40);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') ADVANCE(51);
if (lookahead != 0) ADVANCE(56);
END_STATE();
case 2:
if (lookahead == '\n') SKIP(2);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') ADVANCE(52);
if (lookahead != 0) ADVANCE(56);
END_STATE();
case 3:
if (lookahead == '\n') SKIP(3);
if (lookahead == '!') ADVANCE(57);
if (lookahead == '#') ADVANCE(30);
if (lookahead == '%') ADVANCE(55);
if (lookahead == '-') ADVANCE(61);
if (lookahead == '.') ADVANCE(32);
if (lookahead == '/') ADVANCE(22);
if (lookahead == ':') ADVANCE(72);
if (lookahead == '=') ADVANCE(40);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') ADVANCE(53);
if (lookahead != 0) ADVANCE(56);
END_STATE();
case 4:
ADVANCE_MAP(
' ', 24,
'!', 57,
'#', 30,
'%', 16,
'(', 25,
'.', 32,
'/', 22,
'=', 40,
);
if (('\t' <= lookahead && lookahead <= '\r')) SKIP(4);
END_STATE();
case 5:
if (lookahead == ' ') ADVANCE(24);
if (lookahead == '#') ADVANCE(17);
if (lookahead == ')') ADVANCE(26);
if (lookahead == '=') ADVANCE(40);
if (('\t' <= lookahead && lookahead <= '\r')) SKIP(5);
if (lookahead == '-' ||
('0' <= lookahead && lookahead <= ':') ||
('@' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(39);
END_STATE();
case 6:
if (lookahead == '!') ADVANCE(20);
END_STATE();
case 7:
if (lookahead == '"') ADVANCE(43);
if (lookahead == '#') ADVANCE(30);
if (lookahead == '\'') ADVANCE(42);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') SKIP(7);
if (('-' <= lookahead && lookahead <= ':') ||
('A' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(71);
END_STATE();
case 8:
if (lookahead == '"') ADVANCE(43);
if (lookahead == '$') ADVANCE(68);
if (lookahead == '\'') ADVANCE(42);
if (lookahead == '@') ADVANCE(66);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') SKIP(8);
if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(14);
if (lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(15);
END_STATE();
case 9:
if (lookahead == '#') ADVANCE(17);
if (lookahead == ')') ADVANCE(26);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') SKIP(9);
if (lookahead == '-' ||
('0' <= lookahead && lookahead <= ':') ||
('@' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(39);
END_STATE();
case 10:
if (lookahead == '{') ADVANCE(11);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') SKIP(10);
if (lookahead == '-' ||
('0' <= lookahead && lookahead <= ':') ||
('@' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(29);
END_STATE();
case 11:
if (lookahead == '}') ADVANCE(63);
if (lookahead != 0) ADVANCE(11);
END_STATE();
case 12:
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') SKIP(12);
if (('0' <= lookahead && lookahead <= '9') ||
('A' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(65);
END_STATE();
case 13:
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') SKIP(13);
if (('0' <= lookahead && lookahead <= '9') ||
('A' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(67);
END_STATE();
case 14:
if (('0' <= lookahead && lookahead <= '9') ||
('A' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(69);
END_STATE();
case 15:
if (('0' <= lookahead && lookahead <= '9') ||
('A' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(70);
END_STATE();
case 16:
if (lookahead == '-' ||
('0' <= lookahead && lookahead <= ':') ||
('A' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(27);
END_STATE();
case 17:
if (lookahead == '-' ||
('0' <= lookahead && lookahead <= ':') ||
('@' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(39);
END_STATE();
case 18:
if (eof) ADVANCE(19);
if (lookahead == '\n') SKIP(18);
if (lookahead == '!') ADVANCE(59);
if (lookahead == '#') ADVANCE(30);
if (lookahead == '%') ADVANCE(55);
if (lookahead == '-') ADVANCE(61);
if (lookahead == '.') ADVANCE(32);
if (lookahead == '/') ADVANCE(22);
if (lookahead == ':') ADVANCE(72);
if (lookahead == '=') ADVANCE(40);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') ADVANCE(51);
if (lookahead != 0) ADVANCE(56);
END_STATE();
case 19:
ACCEPT_TOKEN(ts_builtin_sym_end);
END_STATE();
case 20:
ACCEPT_TOKEN(anon_sym_BANG_BANG_BANG);
END_STATE();
case 21:
ACCEPT_TOKEN(anon_sym_BANG_BANG_BANG);
if (lookahead != 0 &&
lookahead != '\n') ADVANCE(49);
END_STATE();
case 22:
ACCEPT_TOKEN(anon_sym_SLASH);
END_STATE();
case 23:
ACCEPT_TOKEN(anon_sym_SLASH);
if (lookahead != 0 &&
lookahead != '\n') ADVANCE(49);
END_STATE();
case 24:
ACCEPT_TOKEN(anon_sym_SPACE);
if (lookahead == ' ') ADVANCE(24);
END_STATE();
case 25:
ACCEPT_TOKEN(anon_sym_LPAREN);
END_STATE();
case 26:
ACCEPT_TOKEN(anon_sym_RPAREN);
END_STATE();
case 27:
ACCEPT_TOKEN(sym_tag_name);
if (lookahead == '-' ||
('0' <= lookahead && lookahead <= ':') ||
('A' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(27);
END_STATE();
case 28:
ACCEPT_TOKEN(sym_tag_name);
if (lookahead == '-' ||
('0' <= lookahead && lookahead <= ':') ||
('A' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(28);
if (lookahead != 0 &&
lookahead != '\n') ADVANCE(49);
END_STATE();
case 29:
ACCEPT_TOKEN(aux_sym_class_or_id_value_token1);
if (lookahead == '-' ||
('0' <= lookahead && lookahead <= ':') ||
('@' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(29);
END_STATE();
case 30:
ACCEPT_TOKEN(anon_sym_POUND);
END_STATE();
case 31:
ACCEPT_TOKEN(anon_sym_POUND);
if (lookahead != 0 &&
lookahead != '\n') ADVANCE(49);
END_STATE();
case 32:
ACCEPT_TOKEN(anon_sym_DOT);
END_STATE();
case 33:
ACCEPT_TOKEN(anon_sym_DOT);
if (lookahead != 0 &&
lookahead != '\n') ADVANCE(49);
END_STATE();
case 34:
ACCEPT_TOKEN(anon_sym_DASH_POUND);
END_STATE();
case 35:
ACCEPT_TOKEN(anon_sym_DASH_POUND);
if (lookahead != 0 &&
lookahead != '\n') ADVANCE(49);
END_STATE();
case 36:
ACCEPT_TOKEN(anon_sym_LBRACK);
END_STATE();
case 37:
ACCEPT_TOKEN(anon_sym_LBRACK);
if (lookahead != 0 &&
lookahead != '\n') ADVANCE(49);
END_STATE();
case 38:
ACCEPT_TOKEN(anon_sym_RBRACK);
END_STATE();
case 39:
ACCEPT_TOKEN(sym_attribute_name);
if (lookahead == '-' ||
('0' <= lookahead && lookahead <= ':') ||
('@' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(39);
END_STATE();
case 40:
ACCEPT_TOKEN(anon_sym_EQ);
END_STATE();
case 41:
ACCEPT_TOKEN(anon_sym_EQ);
if (lookahead != 0 &&
lookahead != '\n') ADVANCE(49);
END_STATE();
case 42:
ACCEPT_TOKEN(anon_sym_SQUOTE);
END_STATE();
case 43:
ACCEPT_TOKEN(anon_sym_DQUOTE);
END_STATE();
case 44:
ACCEPT_TOKEN(sym__text);
ADVANCE_MAP(
'!', 60,
'#', 31,
'%', 48,
'-', 62,
'.', 33,
'/', 23,
':', 73,
'=', 41,
);
if (lookahead == '\t' ||
(0x0b <= lookahead && lookahead <= '\r') ||
lookahead == ' ') ADVANCE(44);
if (lookahead != 0 &&
(lookahead < '\t' || '\r' < lookahead)) ADVANCE(49);
END_STATE();
case 45:
ACCEPT_TOKEN(sym__text);
if (lookahead == '!') ADVANCE(21);
if (lookahead != 0 &&
lookahead != '\n') ADVANCE(49);
END_STATE();
case 46:
ACCEPT_TOKEN(sym__text);
if (lookahead == '[') ADVANCE(37);
if (lookahead == '\t' ||
(0x0b <= lookahead && lookahead <= '\r') ||
lookahead == ' ') ADVANCE(46);
if (lookahead != 0 &&
(lookahead < '\t' || '\r' < lookahead)) ADVANCE(49);
END_STATE();
case 47:
ACCEPT_TOKEN(sym__text);
if (lookahead == '\t' ||
(0x0b <= lookahead && lookahead <= '\r') ||
lookahead == ' ') ADVANCE(47);
if (lookahead != 0 &&
(lookahead < '\t' || '\r' < lookahead)) ADVANCE(49);
END_STATE();
case 48:
ACCEPT_TOKEN(sym__text);
if (lookahead == '-' ||
('0' <= lookahead && lookahead <= ':') ||
('A' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(28);
if (lookahead != 0 &&
lookahead != '\n') ADVANCE(49);
END_STATE();
case 49:
ACCEPT_TOKEN(sym__text);
if (lookahead != 0 &&
lookahead != '\n') ADVANCE(49);
END_STATE();
case 50:
ACCEPT_TOKEN(sym__text);
if (eof) ADVANCE(19);
ADVANCE_MAP(
'!', 60,
'#', 31,
'%', 48,
'-', 62,
'.', 33,
'/', 23,
':', 73,
'=', 41,
);
if (lookahead == '\t' ||
(0x0b <= lookahead && lookahead <= '\r') ||
lookahead == ' ') ADVANCE(44);
if (lookahead != 0 &&
(lookahead < '\t' || '\r' < lookahead)) ADVANCE(49);
END_STATE();
case 51:
ACCEPT_TOKEN(sym_verbatim_string);
if (lookahead == '\n') SKIP(1);
if (lookahead == '!') ADVANCE(59);
if (lookahead == '#') ADVANCE(30);
if (lookahead == '%') ADVANCE(55);
if (lookahead == '-') ADVANCE(61);
if (lookahead == '.') ADVANCE(32);
if (lookahead == '/') ADVANCE(22);
if (lookahead == ':') ADVANCE(72);
if (lookahead == '=') ADVANCE(40);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') ADVANCE(51);
if (lookahead != 0) ADVANCE(56);
END_STATE();
case 52:
ACCEPT_TOKEN(sym_verbatim_string);
if (lookahead == '\n') SKIP(2);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') ADVANCE(52);
if (lookahead != 0) ADVANCE(56);
END_STATE();
case 53:
ACCEPT_TOKEN(sym_verbatim_string);
if (lookahead == '\n') SKIP(3);
if (lookahead == '!') ADVANCE(57);
if (lookahead == '#') ADVANCE(30);
if (lookahead == '%') ADVANCE(55);
if (lookahead == '-') ADVANCE(61);
if (lookahead == '.') ADVANCE(32);
if (lookahead == '/') ADVANCE(22);
if (lookahead == ':') ADVANCE(72);
if (lookahead == '=') ADVANCE(40);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') ADVANCE(53);
if (lookahead != 0) ADVANCE(56);
END_STATE();
case 54:
ACCEPT_TOKEN(sym_verbatim_string);
if (lookahead == '!') ADVANCE(20);
if (lookahead != 0 &&
lookahead != '\n') ADVANCE(56);
END_STATE();
case 55:
ACCEPT_TOKEN(sym_verbatim_string);
if (lookahead == '-' ||
('0' <= lookahead && lookahead <= ':') ||
('A' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(27);
if (lookahead != 0 &&
lookahead != '\n') ADVANCE(56);
END_STATE();
case 56:
ACCEPT_TOKEN(sym_verbatim_string);
if (lookahead != 0 &&
lookahead != '\n') ADVANCE(56);
END_STATE();
case 57:
ACCEPT_TOKEN(anon_sym_BANG);
END_STATE();
case 58:
ACCEPT_TOKEN(anon_sym_BANG);
if (lookahead == '!') ADVANCE(6);
END_STATE();
case 59:
ACCEPT_TOKEN(anon_sym_BANG);
if (lookahead == '!') ADVANCE(54);
END_STATE();
case 60:
ACCEPT_TOKEN(anon_sym_BANG);
if (lookahead == '!') ADVANCE(45);
if (lookahead != 0 &&
lookahead != '\n') ADVANCE(49);
END_STATE();
case 61:
ACCEPT_TOKEN(anon_sym_DASH);
if (lookahead == '#') ADVANCE(34);
END_STATE();
case 62:
ACCEPT_TOKEN(anon_sym_DASH);
if (lookahead == '#') ADVANCE(35);
if (lookahead != 0 &&
lookahead != '\n') ADVANCE(49);
END_STATE();
case 63:
ACCEPT_TOKEN(sym_ruby_expression);
END_STATE();
case 64:
ACCEPT_TOKEN(anon_sym_AT_AT);
END_STATE();
case 65:
ACCEPT_TOKEN(aux_sym_ruby_class_variable_token1);
if (('0' <= lookahead && lookahead <= '9') ||
('A' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(65);
END_STATE();
case 66:
ACCEPT_TOKEN(anon_sym_AT);
if (lookahead == '@') ADVANCE(64);
END_STATE();
case 67:
ACCEPT_TOKEN(aux_sym_ruby_instance_variable_token1);
if (('0' <= lookahead && lookahead <= '9') ||
('A' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(67);
END_STATE();
case 68:
ACCEPT_TOKEN(anon_sym_DOLLAR);
END_STATE();
case 69:
ACCEPT_TOKEN(sym_ruby_constant);
if (('0' <= lookahead && lookahead <= '9') ||
('A' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(69);
END_STATE();
case 70:
ACCEPT_TOKEN(sym_ruby_local_variable);
if (('0' <= lookahead && lookahead <= '9') ||
('A' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(70);
END_STATE();
case 71:
ACCEPT_TOKEN(sym__html_identifier);
if (('-' <= lookahead && lookahead <= ':') ||
('A' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(71);
END_STATE();
case 72:
ACCEPT_TOKEN(anon_sym_COLON);
END_STATE();
case 73:
ACCEPT_TOKEN(anon_sym_COLON);
if (lookahead != 0 &&
lookahead != '\n') ADVANCE(49);
END_STATE();
default:
return false;
}
}
static const TSLexMode ts_lex_modes[STATE_COUNT] = {
[0] = {.lex_state = 0, .external_lex_state = 1},
[1] = {.lex_state = 0},
[2] = {.lex_state = 18, .external_lex_state = 2},
[3] = {.lex_state = 18, .external_lex_state = 2},
[4] = {.lex_state = 18, .external_lex_state = 2},
[5] = {.lex_state = 0},
[6] = {.lex_state = 3, .external_lex_state = 3},
[7] = {.lex_state = 0},
[8] = {.lex_state = 3, .external_lex_state = 3},
[9] = {.lex_state = 4, .external_lex_state = 4},
[10] = {.lex_state = 4, .external_lex_state = 4},
[11] = {.lex_state = 4, .external_lex_state = 4},
[12] = {.lex_state = 4, .external_lex_state = 4},
[13] = {.lex_state = 18, .external_lex_state = 5},
[14] = {.lex_state = 18, .external_lex_state = 5},
[15] = {.lex_state = 18, .external_lex_state = 5},
[16] = {.lex_state = 18, .external_lex_state = 5},
[17] = {.lex_state = 18, .external_lex_state = 5},
[18] = {.lex_state = 18, .external_lex_state = 5},
[19] = {.lex_state = 50, .external_lex_state = 2},
[20] = {.lex_state = 18, .external_lex_state = 5},
[21] = {.lex_state = 50, .external_lex_state = 2},
[22] = {.lex_state = 18, .external_lex_state = 5},
[23] = {.lex_state = 18, .external_lex_state = 5},
[24] = {.lex_state = 18, .external_lex_state = 5},
[25] = {.lex_state = 50, .external_lex_state = 2},
[26] = {.lex_state = 50, .external_lex_state = 2},
[27] = {.lex_state = 50, .external_lex_state = 2},
[28] = {.lex_state = 18, .external_lex_state = 5},
[29] = {.lex_state = 50, .external_lex_state = 2},
[30] = {.lex_state = 18, .external_lex_state = 2},
[31] = {.lex_state = 18, .external_lex_state = 2},
[32] = {.lex_state = 18, .external_lex_state = 2},
[33] = {.lex_state = 18, .external_lex_state = 2},
[34] = {.lex_state = 18, .external_lex_state = 2},
[35] = {.lex_state = 18, .external_lex_state = 2},
[36] = {.lex_state = 18, .external_lex_state = 2},
[37] = {.lex_state = 18, .external_lex_state = 2},
[38] = {.lex_state = 18, .external_lex_state = 2},
[39] = {.lex_state = 18, .external_lex_state = 2},
[40] = {.lex_state = 18, .external_lex_state = 2},
[41] = {.lex_state = 18, .external_lex_state = 2},
[42] = {.lex_state = 18, .external_lex_state = 2},
[43] = {.lex_state = 18, .external_lex_state = 2},
[44] = {.lex_state = 18, .external_lex_state = 2},
[45] = {.lex_state = 18, .external_lex_state = 2},
[46] = {.lex_state = 18, .external_lex_state = 2},
[47] = {.lex_state = 18, .external_lex_state = 2},
[48] = {.lex_state = 18, .external_lex_state = 2},
[49] = {.lex_state = 18, .external_lex_state = 2},
[50] = {.lex_state = 18, .external_lex_state = 2},
[51] = {.lex_state = 4, .external_lex_state = 4},
[52] = {.lex_state = 0, .external_lex_state = 6},
[53] = {.lex_state = 0, .external_lex_state = 6},
[54] = {.lex_state = 0, .external_lex_state = 6},
[55] = {.lex_state = 0, .external_lex_state = 6},
[56] = {.lex_state = 0, .external_lex_state = 6},
[57] = {.lex_state = 0, .external_lex_state = 6},
[58] = {.lex_state = 0, .external_lex_state = 6},
[59] = {.lex_state = 0, .external_lex_state = 6},
[60] = {.lex_state = 0, .external_lex_state = 6},
[61] = {.lex_state = 0, .external_lex_state = 6},
[62] = {.lex_state = 8},
[63] = {.lex_state = 0, .external_lex_state = 6},
[64] = {.lex_state = 0},
[65] = {.lex_state = 0},
[66] = {.lex_state = 0},
[67] = {.lex_state = 0},
[68] = {.lex_state = 0},
[69] = {.lex_state = 0},
[70] = {.lex_state = 0},
[71] = {.lex_state = 0},
[72] = {.lex_state = 0},
[73] = {.lex_state = 0},
[74] = {.lex_state = 0},
[75] = {.lex_state = 0},
[76] = {.lex_state = 0},
[77] = {.lex_state = 0},
[78] = {.lex_state = 0},
[79] = {.lex_state = 0},
[80] = {.lex_state = 0},
[81] = {.lex_state = 0},
[82] = {.lex_state = 0},
[83] = {.lex_state = 0},
[84] = {.lex_state = 0},
[85] = {.lex_state = 0},
[86] = {.lex_state = 4, .external_lex_state = 4},
[87] = {.lex_state = 4, .external_lex_state = 4},
[88] = {.lex_state = 4, .external_lex_state = 4},
[89] = {.lex_state = 4, .external_lex_state = 4},
[90] = {.lex_state = 4, .external_lex_state = 4},
[91] = {.lex_state = 4, .external_lex_state = 4},
[92] = {.lex_state = 4, .external_lex_state = 4},
[93] = {.lex_state = 4, .external_lex_state = 4},
[94] = {.lex_state = 4, .external_lex_state = 3},
[95] = {.lex_state = 4, .external_lex_state = 3},
[96] = {.lex_state = 7},
[97] = {.lex_state = 4, .external_lex_state = 3},
[98] = {.lex_state = 4, .external_lex_state = 3},
[99] = {.lex_state = 4, .external_lex_state = 3},
[100] = {.lex_state = 7},
[101] = {.lex_state = 4, .external_lex_state = 3},
[102] = {.lex_state = 7},
[103] = {.lex_state = 4, .external_lex_state = 3},
[104] = {.lex_state = 4, .external_lex_state = 3},
[105] = {.lex_state = 4, .external_lex_state = 3},
[106] = {.lex_state = 4, .external_lex_state = 3},
[107] = {.lex_state = 9},
[108] = {.lex_state = 7},
[109] = {.lex_state = 46, .external_lex_state = 3},
[110] = {.lex_state = 7},
[111] = {.lex_state = 9},
[112] = {.lex_state = 7},
[113] = {.lex_state = 5},
[114] = {.lex_state = 46, .external_lex_state = 3},
[115] = {.lex_state = 9},
[116] = {.lex_state = 5},
[117] = {.lex_state = 5},
[118] = {.lex_state = 5},
[119] = {.lex_state = 47, .external_lex_state = 3},
[120] = {.lex_state = 5},
[121] = {.lex_state = 47, .external_lex_state = 7},
[122] = {.lex_state = 10},
[123] = {.lex_state = 47, .external_lex_state = 7},
[124] = {.lex_state = 47, .external_lex_state = 7},
[125] = {.lex_state = 47, .external_lex_state = 7},
[126] = {.lex_state = 10},
[127] = {.lex_state = 5},
[128] = {.lex_state = 5},
[129] = {.lex_state = 47, .external_lex_state = 7},
[130] = {.lex_state = 5},
[131] = {.lex_state = 47, .external_lex_state = 3},
[132] = {.lex_state = 47, .external_lex_state = 7},
[133] = {.lex_state = 47, .external_lex_state = 7},
[134] = {.lex_state = 10},
[135] = {.lex_state = 10},
[136] = {.lex_state = 47, .external_lex_state = 7},
[137] = {.lex_state = 47},
[138] = {.lex_state = 9},
[139] = {.lex_state = 47},
[140] = {.lex_state = 47},
[141] = {.lex_state = 47},
[142] = {.lex_state = 47},
[143] = {.lex_state = 47},
[144] = {.lex_state = 2},
[145] = {.lex_state = 47},
[146] = {.lex_state = 0, .external_lex_state = 3},
[147] = {.lex_state = 0, .external_lex_state = 3},
[148] = {.lex_state = 0, .external_lex_state = 3},
[149] = {.lex_state = 2},
[150] = {.lex_state = 47},
[151] = {.lex_state = 0, .external_lex_state = 3},
[152] = {.lex_state = 0, .external_lex_state = 3},
[153] = {.lex_state = 0, .external_lex_state = 3},
[154] = {.lex_state = 0},
[155] = {.lex_state = 0, .external_lex_state = 3},
[156] = {.lex_state = 47},
[157] = {.lex_state = 0, .external_lex_state = 3},
[158] = {.lex_state = 0},
[159] = {.lex_state = 0},
[160] = {.lex_state = 0, .external_lex_state = 6},
[161] = {.lex_state = 2},
[162] = {.lex_state = 0, .external_lex_state = 3},
[163] = {.lex_state = 0, .external_lex_state = 3},
[164] = {.lex_state = 0, .external_lex_state = 3},
[165] = {.lex_state = 2},
[166] = {.lex_state = 2},
[167] = {.lex_state = 2},
[168] = {.lex_state = 0, .external_lex_state = 3},
[169] = {.lex_state = 0, .external_lex_state = 3},
[170] = {.lex_state = 0},
[171] = {.lex_state = 2},
[172] = {.lex_state = 2},
[173] = {.lex_state = 0, .external_lex_state = 3},
[174] = {.lex_state = 2},
[175] = {.lex_state = 2},
[176] = {.lex_state = 0, .external_lex_state = 6},
[177] = {.lex_state = 2},
[178] = {.lex_state = 2},
[179] = {.lex_state = 0, .external_lex_state = 3},
[180] = {.lex_state = 47},
[181] = {.lex_state = 47},
[182] = {.lex_state = 47},
[183] = {.lex_state = 47},
[184] = {.lex_state = 47},
[185] = {.lex_state = 47},
[186] = {.lex_state = 12},
[187] = {.lex_state = 13},
[188] = {.lex_state = 12},
[189] = {.lex_state = 0},
[190] = {.lex_state = 0, .external_lex_state = 6},
[191] = {.lex_state = 0, .external_lex_state = 6},
[192] = {.lex_state = 0, .external_lex_state = 3},
[193] = {.lex_state = 47},
};
static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
[0] = {
[ts_builtin_sym_end] = ACTIONS(1),
[anon_sym_BANG_BANG_BANG] = ACTIONS(1),
[anon_sym_SLASH] = ACTIONS(1),
[anon_sym_LPAREN] = ACTIONS(1),
[anon_sym_RPAREN] = ACTIONS(1),
[sym_tag_name] = ACTIONS(1),
[anon_sym_POUND] = ACTIONS(1),
[anon_sym_DOT] = ACTIONS(1),
[anon_sym_DASH_POUND] = ACTIONS(1),
[anon_sym_LBRACK] = ACTIONS(1),
[anon_sym_RBRACK] = ACTIONS(1),
[anon_sym_EQ] = ACTIONS(1),
[anon_sym_SQUOTE] = ACTIONS(1),
[anon_sym_DQUOTE] = ACTIONS(1),
[anon_sym_BANG] = ACTIONS(1),
[anon_sym_DASH] = ACTIONS(1),
[sym_ruby_expression] = ACTIONS(1),
[anon_sym_AT_AT] = ACTIONS(1),
[aux_sym_ruby_class_variable_token1] = ACTIONS(1),
[anon_sym_AT] = ACTIONS(1),
[aux_sym_ruby_instance_variable_token1] = ACTIONS(1),
[anon_sym_DOLLAR] = ACTIONS(1),
[sym_ruby_constant] = ACTIONS(1),
[sym_ruby_local_variable] = ACTIONS(1),
[anon_sym_COLON] = ACTIONS(1),
[sym__newline] = ACTIONS(1),
[sym__indent] = ACTIONS(1),
[sym__dedent] = ACTIONS(1),
[sym_ruby_attributes] = ACTIONS(1),
},
[1] = {
[sym_source_file] = STATE(154),
[sym_doctype] = STATE(7),
[sym_tag] = STATE(7),
[sym_id] = STATE(9),
[sym_class] = STATE(9),
[sym_comment] = STATE(7),
[sym__comment_line] = STATE(69),
[sym__comment_block] = STATE(69),
[sym_ruby_block_output] = STATE(7),
[sym_ruby_block_run] = STATE(7),
[sym_ruby_interpolation] = STATE(7),
[sym_filter] = STATE(7),
[aux_sym_source_file_repeat1] = STATE(7),
[ts_builtin_sym_end] = ACTIONS(3),
[anon_sym_BANG_BANG_BANG] = ACTIONS(5),
[anon_sym_SLASH] = ACTIONS(7),
[sym_tag_name] = ACTIONS(9),
[anon_sym_POUND] = ACTIONS(11),
[anon_sym_DOT] = ACTIONS(13),
[anon_sym_DASH_POUND] = ACTIONS(7),
[anon_sym_EQ] = ACTIONS(15),
[anon_sym_BANG] = ACTIONS(17),
[anon_sym_DASH] = ACTIONS(19),
[anon_sym_COLON] = ACTIONS(21),
},
};
static const uint16_t ts_small_parse_table[] = {
[0] = 15,
ACTIONS(25), 1,
anon_sym_BANG_BANG_BANG,
ACTIONS(30), 1,
sym_tag_name,
ACTIONS(33), 1,
anon_sym_POUND,
ACTIONS(36), 1,
anon_sym_DOT,
ACTIONS(39), 1,
anon_sym_EQ,
ACTIONS(42), 1,
sym_verbatim_string,
ACTIONS(45), 1,
anon_sym_BANG,
ACTIONS(48), 1,
anon_sym_DASH,
ACTIONS(51), 1,
anon_sym_COLON,
ACTIONS(54), 1,
sym__newline,
ACTIONS(23), 2,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(27), 2,
anon_sym_SLASH,
anon_sym_DASH_POUND,
STATE(12), 2,
sym_id,
sym_class,
STATE(30), 2,
sym__comment_line,
sym__comment_block,
STATE(2), 8,
sym_tag,
sym__children_choice,
sym_comment,
sym_ruby_block_output,
sym_ruby_block_run,
sym_ruby_interpolation,
sym_filter,
aux_sym__children_repeat1,
[57] = 16,
ACTIONS(57), 1,
ts_builtin_sym_end,
ACTIONS(59), 1,
anon_sym_BANG_BANG_BANG,
ACTIONS(63), 1,
sym_tag_name,
ACTIONS(65), 1,
anon_sym_POUND,
ACTIONS(67), 1,
anon_sym_DOT,
ACTIONS(69), 1,
anon_sym_EQ,
ACTIONS(71), 1,
sym_verbatim_string,
ACTIONS(73), 1,
anon_sym_BANG,
ACTIONS(75), 1,
anon_sym_DASH,
ACTIONS(77), 1,
anon_sym_COLON,
ACTIONS(79), 1,
sym__newline,
ACTIONS(81), 1,
sym__dedent,
ACTIONS(61), 2,
anon_sym_SLASH,
anon_sym_DASH_POUND,
STATE(12), 2,
sym_id,
sym_class,
STATE(30), 2,
sym__comment_line,
sym__comment_block,
STATE(2), 8,
sym_tag,
sym__children_choice,
sym_comment,
sym_ruby_block_output,
sym_ruby_block_run,
sym_ruby_interpolation,
sym_filter,
aux_sym__children_repeat1,
[116] = 16,
ACTIONS(57), 1,
ts_builtin_sym_end,
ACTIONS(59), 1,
anon_sym_BANG_BANG_BANG,
ACTIONS(63), 1,
sym_tag_name,
ACTIONS(65), 1,
anon_sym_POUND,
ACTIONS(67), 1,
anon_sym_DOT,
ACTIONS(69), 1,
anon_sym_EQ,
ACTIONS(71), 1,
sym_verbatim_string,
ACTIONS(73), 1,
anon_sym_BANG,
ACTIONS(75), 1,
anon_sym_DASH,
ACTIONS(77), 1,
anon_sym_COLON,
ACTIONS(79), 1,
sym__newline,
ACTIONS(83), 1,
sym__dedent,
ACTIONS(61), 2,
anon_sym_SLASH,
anon_sym_DASH_POUND,
STATE(12), 2,
sym_id,
sym_class,
STATE(30), 2,
sym__comment_line,
sym__comment_block,
STATE(2), 8,
sym_tag,
sym__children_choice,
sym_comment,
sym_ruby_block_output,
sym_ruby_block_run,
sym_ruby_interpolation,
sym_filter,
aux_sym__children_repeat1,
[175] = 13,
ACTIONS(85), 1,
ts_builtin_sym_end,
ACTIONS(87), 1,
anon_sym_BANG_BANG_BANG,
ACTIONS(93), 1,
sym_tag_name,
ACTIONS(96), 1,
anon_sym_POUND,
ACTIONS(99), 1,
anon_sym_DOT,
ACTIONS(102), 1,
anon_sym_EQ,
ACTIONS(105), 1,
anon_sym_BANG,
ACTIONS(108), 1,
anon_sym_DASH,
ACTIONS(111), 1,
anon_sym_COLON,
ACTIONS(90), 2,
anon_sym_SLASH,
anon_sym_DASH_POUND,
STATE(9), 2,
sym_id,
sym_class,
STATE(69), 2,
sym__comment_line,
sym__comment_block,
STATE(5), 8,
sym_doctype,
sym_tag,
sym_comment,
sym_ruby_block_output,
sym_ruby_block_run,
sym_ruby_interpolation,
sym_filter,
aux_sym_source_file_repeat1,
[225] = 13,
ACTIONS(63), 1,
sym_tag_name,
ACTIONS(65), 1,
anon_sym_POUND,
ACTIONS(67), 1,
anon_sym_DOT,
ACTIONS(69), 1,
anon_sym_EQ,
ACTIONS(73), 1,
anon_sym_BANG,
ACTIONS(75), 1,
anon_sym_DASH,
ACTIONS(77), 1,
anon_sym_COLON,
ACTIONS(114), 1,
sym_verbatim_string,
ACTIONS(116), 1,
sym__newline,
ACTIONS(61), 2,
anon_sym_SLASH,
anon_sym_DASH_POUND,
STATE(12), 2,
sym_id,
sym_class,
STATE(30), 2,
sym__comment_line,
sym__comment_block,
STATE(4), 8,
sym_tag,
sym__children_choice,
sym_comment,
sym_ruby_block_output,
sym_ruby_block_run,
sym_ruby_interpolation,
sym_filter,
aux_sym__children_repeat1,
[275] = 13,
ACTIONS(5), 1,
anon_sym_BANG_BANG_BANG,
ACTIONS(9), 1,
sym_tag_name,
ACTIONS(11), 1,
anon_sym_POUND,
ACTIONS(13), 1,
anon_sym_DOT,
ACTIONS(15), 1,
anon_sym_EQ,
ACTIONS(17), 1,
anon_sym_BANG,
ACTIONS(19), 1,
anon_sym_DASH,
ACTIONS(21), 1,
anon_sym_COLON,
ACTIONS(118), 1,
ts_builtin_sym_end,
ACTIONS(7), 2,
anon_sym_SLASH,
anon_sym_DASH_POUND,
STATE(9), 2,
sym_id,
sym_class,
STATE(69), 2,
sym__comment_line,
sym__comment_block,
STATE(5), 8,
sym_doctype,
sym_tag,
sym_comment,
sym_ruby_block_output,
sym_ruby_block_run,
sym_ruby_interpolation,
sym_filter,
aux_sym_source_file_repeat1,
[325] = 13,
ACTIONS(63), 1,
sym_tag_name,
ACTIONS(65), 1,
anon_sym_POUND,
ACTIONS(67), 1,
anon_sym_DOT,
ACTIONS(69), 1,
anon_sym_EQ,
ACTIONS(73), 1,
anon_sym_BANG,
ACTIONS(75), 1,
anon_sym_DASH,
ACTIONS(77), 1,
anon_sym_COLON,
ACTIONS(120), 1,
sym_verbatim_string,
ACTIONS(122), 1,
sym__newline,
ACTIONS(61), 2,
anon_sym_SLASH,
anon_sym_DASH_POUND,
STATE(12), 2,
sym_id,
sym_class,
STATE(30), 2,
sym__comment_line,
sym__comment_block,
STATE(3), 8,
sym_tag,
sym__children_choice,
sym_comment,
sym_ruby_block_output,
sym_ruby_block_run,
sym_ruby_interpolation,
sym_filter,
aux_sym__children_repeat1,
[375] = 14,
ACTIONS(17), 1,
anon_sym_BANG,
ACTIONS(67), 1,
anon_sym_DOT,
ACTIONS(124), 1,
anon_sym_SLASH,
ACTIONS(126), 1,
anon_sym_SPACE,
ACTIONS(128), 1,
anon_sym_LPAREN,
ACTIONS(130), 1,
sym_tag_name,
ACTIONS(132), 1,
anon_sym_POUND,
ACTIONS(134), 1,
anon_sym_EQ,
ACTIONS(136), 1,
sym__newline,
ACTIONS(138), 1,
sym_ruby_attributes,
STATE(66), 1,
sym_ruby_block_output,
STATE(95), 1,
sym_attributes,
STATE(91), 2,
sym_html_attributes,
aux_sym_attributes_repeat1,
STATE(10), 3,
sym_id,
sym_class,
aux_sym_tag_repeat1,
[421] = 14,
ACTIONS(17), 1,
anon_sym_BANG,
ACTIONS(67), 1,
anon_sym_DOT,
ACTIONS(128), 1,
anon_sym_LPAREN,
ACTIONS(132), 1,
anon_sym_POUND,
ACTIONS(134), 1,
anon_sym_EQ,
ACTIONS(138), 1,
sym_ruby_attributes,
ACTIONS(140), 1,
anon_sym_SLASH,
ACTIONS(142), 1,
anon_sym_SPACE,
ACTIONS(144), 1,
sym_tag_name,
ACTIONS(146), 1,
sym__newline,
STATE(83), 1,
sym_ruby_block_output,
STATE(94), 1,
sym_attributes,
STATE(91), 2,
sym_html_attributes,
aux_sym_attributes_repeat1,
STATE(51), 3,
sym_id,
sym_class,
aux_sym_tag_repeat1,
[467] = 14,
ACTIONS(67), 1,
anon_sym_DOT,
ACTIONS(69), 1,
anon_sym_EQ,
ACTIONS(73), 1,
anon_sym_BANG,
ACTIONS(128), 1,
anon_sym_LPAREN,
ACTIONS(132), 1,
anon_sym_POUND,
ACTIONS(138), 1,
sym_ruby_attributes,
ACTIONS(144), 1,
sym_tag_name,
ACTIONS(148), 1,
anon_sym_SLASH,
ACTIONS(150), 1,
anon_sym_SPACE,
ACTIONS(152), 1,
sym__newline,
STATE(34), 1,
sym_ruby_block_output,
STATE(98), 1,
sym_attributes,
STATE(91), 2,
sym_html_attributes,
aux_sym_attributes_repeat1,
STATE(51), 3,
sym_id,
sym_class,
aux_sym_tag_repeat1,
[513] = 14,
ACTIONS(67), 1,
anon_sym_DOT,
ACTIONS(69), 1,
anon_sym_EQ,
ACTIONS(73), 1,
anon_sym_BANG,
ACTIONS(128), 1,
anon_sym_LPAREN,
ACTIONS(132), 1,
anon_sym_POUND,
ACTIONS(138), 1,
sym_ruby_attributes,
ACTIONS(154), 1,
anon_sym_SLASH,
ACTIONS(156), 1,
anon_sym_SPACE,
ACTIONS(158), 1,
sym_tag_name,
ACTIONS(160), 1,
sym__newline,
STATE(33), 1,
sym_ruby_block_output,
STATE(97), 1,
sym_attributes,
STATE(91), 2,
sym_html_attributes,
aux_sym_attributes_repeat1,
STATE(11), 3,
sym_id,
sym_class,
aux_sym_tag_repeat1,
[559] = 4,
ACTIONS(166), 1,
sym__indent,
STATE(34), 1,
sym__children,
ACTIONS(162), 3,
sym__newline,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(164), 11,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
sym_verbatim_string,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[584] = 4,
ACTIONS(166), 1,
sym__indent,
STATE(36), 1,
sym__children,
ACTIONS(168), 3,
sym__newline,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(170), 11,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
sym_verbatim_string,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[609] = 4,
ACTIONS(166), 1,
sym__indent,
STATE(37), 1,
sym__children,
ACTIONS(172), 3,
sym__newline,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(174), 11,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
sym_verbatim_string,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[634] = 4,
ACTIONS(166), 1,
sym__indent,
STATE(45), 1,
sym__children,
ACTIONS(176), 3,
sym__newline,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(178), 11,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
sym_verbatim_string,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[659] = 4,
ACTIONS(184), 1,
sym__indent,
STATE(41), 1,
sym_filter_body,
ACTIONS(180), 3,
sym__newline,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(182), 11,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
sym_verbatim_string,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[684] = 4,
ACTIONS(166), 1,
sym__indent,
STATE(44), 1,
sym__children,
ACTIONS(186), 3,
sym__newline,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(188), 11,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
sym_verbatim_string,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[709] = 6,
ACTIONS(190), 1,
ts_builtin_sym_end,
ACTIONS(194), 1,
sym__text,
ACTIONS(196), 1,
sym__newline,
ACTIONS(198), 1,
sym__dedent,
STATE(21), 1,
aux_sym_filter_body_repeat1,
ACTIONS(192), 11,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
sym_verbatim_string,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[738] = 4,
ACTIONS(166), 1,
sym__indent,
STATE(50), 1,
sym__children,
ACTIONS(200), 3,
sym__newline,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(202), 11,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
sym_verbatim_string,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[763] = 5,
ACTIONS(208), 1,
sym__text,
ACTIONS(211), 1,
sym__newline,
STATE(21), 1,
aux_sym_filter_body_repeat1,
ACTIONS(204), 2,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(206), 11,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
sym_verbatim_string,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[790] = 4,
ACTIONS(166), 1,
sym__indent,
STATE(40), 1,
sym__children,
ACTIONS(214), 3,
sym__newline,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(216), 11,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
sym_verbatim_string,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[815] = 4,
ACTIONS(166), 1,
sym__indent,
STATE(47), 1,
sym__children,
ACTIONS(218), 3,
sym__newline,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(220), 11,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
sym_verbatim_string,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[840] = 4,
ACTIONS(166), 1,
sym__indent,
STATE(39), 1,
sym__children,
ACTIONS(222), 3,
sym__newline,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(224), 11,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
sym_verbatim_string,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[865] = 2,
ACTIONS(204), 3,
sym__newline,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(206), 12,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
sym__text,
sym_verbatim_string,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[885] = 5,
ACTIONS(226), 1,
sym__text,
ACTIONS(229), 1,
sym__newline,
STATE(26), 1,
aux_sym_filter_body_repeat1,
ACTIONS(204), 2,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(206), 10,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[911] = 6,
ACTIONS(190), 1,
ts_builtin_sym_end,
ACTIONS(232), 1,
sym__text,
ACTIONS(234), 1,
sym__newline,
ACTIONS(236), 1,
sym__dedent,
STATE(26), 1,
aux_sym_filter_body_repeat1,
ACTIONS(192), 10,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[939] = 3,
ACTIONS(242), 1,
sym__indent,
ACTIONS(238), 3,
sym__newline,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(240), 11,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
sym_verbatim_string,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[961] = 2,
ACTIONS(204), 3,
sym__newline,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(206), 11,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
sym__text,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[980] = 2,
ACTIONS(244), 3,
sym__newline,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(246), 11,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
sym_verbatim_string,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[999] = 2,
ACTIONS(248), 3,
sym__newline,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(250), 11,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
sym_verbatim_string,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[1018] = 2,
ACTIONS(252), 3,
sym__newline,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(254), 11,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
sym_verbatim_string,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[1037] = 2,
ACTIONS(162), 3,
sym__newline,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(164), 11,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
sym_verbatim_string,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[1056] = 2,
ACTIONS(172), 3,
sym__newline,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(174), 11,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
sym_verbatim_string,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[1075] = 2,
ACTIONS(168), 3,
sym__newline,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(170), 11,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
sym_verbatim_string,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[1094] = 2,
ACTIONS(256), 3,
sym__newline,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(258), 11,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
sym_verbatim_string,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[1113] = 2,
ACTIONS(176), 3,
sym__newline,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(178), 11,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
sym_verbatim_string,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[1132] = 2,
ACTIONS(186), 3,
sym__newline,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(188), 11,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
sym_verbatim_string,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[1151] = 2,
ACTIONS(260), 3,
sym__newline,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(262), 11,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
sym_verbatim_string,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[1170] = 2,
ACTIONS(264), 3,
sym__newline,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(266), 11,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
sym_verbatim_string,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[1189] = 2,
ACTIONS(268), 3,
sym__newline,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(270), 11,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
sym_verbatim_string,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[1208] = 2,
ACTIONS(272), 3,
sym__newline,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(274), 11,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
sym_verbatim_string,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[1227] = 2,
ACTIONS(276), 3,
sym__newline,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(278), 11,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
sym_verbatim_string,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[1246] = 2,
ACTIONS(280), 3,
sym__newline,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(282), 11,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
sym_verbatim_string,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[1265] = 2,
ACTIONS(284), 3,
sym__newline,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(286), 11,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
sym_verbatim_string,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[1284] = 2,
ACTIONS(200), 3,
sym__newline,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(202), 11,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
sym_verbatim_string,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[1303] = 2,
ACTIONS(288), 3,
sym__newline,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(290), 11,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
sym_verbatim_string,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[1322] = 2,
ACTIONS(292), 3,
sym__newline,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(294), 11,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
sym_verbatim_string,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[1341] = 2,
ACTIONS(296), 3,
sym__newline,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(298), 11,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
sym_verbatim_string,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[1360] = 2,
ACTIONS(300), 3,
sym__newline,
sym__dedent,
ts_builtin_sym_end,
ACTIONS(302), 11,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
sym_verbatim_string,
anon_sym_BANG,
anon_sym_DASH,
anon_sym_COLON,
[1379] = 6,
ACTIONS(308), 1,
sym_tag_name,
ACTIONS(311), 1,
anon_sym_POUND,
ACTIONS(314), 1,
anon_sym_DOT,
ACTIONS(306), 3,
sym__newline,
sym_ruby_attributes,
anon_sym_SPACE,
STATE(51), 3,
sym_id,
sym_class,
aux_sym_tag_repeat1,
ACTIONS(304), 4,
anon_sym_SLASH,
anon_sym_LPAREN,
anon_sym_EQ,
anon_sym_BANG,
[1405] = 4,
ACTIONS(317), 1,
sym__indent,
STATE(70), 1,
sym__children,
ACTIONS(170), 2,
anon_sym_BANG,
anon_sym_DASH,
ACTIONS(168), 9,
ts_builtin_sym_end,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
anon_sym_COLON,
[1427] = 4,
ACTIONS(317), 1,
sym__indent,
STATE(84), 1,
sym__children,
ACTIONS(202), 2,
anon_sym_BANG,
anon_sym_DASH,
ACTIONS(200), 9,
ts_builtin_sym_end,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
anon_sym_COLON,
[1449] = 4,
ACTIONS(317), 1,
sym__indent,
STATE(73), 1,
sym__children,
ACTIONS(174), 2,
anon_sym_BANG,
anon_sym_DASH,
ACTIONS(172), 9,
ts_builtin_sym_end,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
anon_sym_COLON,
[1471] = 4,
ACTIONS(317), 1,
sym__indent,
STATE(77), 1,
sym__children,
ACTIONS(224), 2,
anon_sym_BANG,
anon_sym_DASH,
ACTIONS(222), 9,
ts_builtin_sym_end,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
anon_sym_COLON,
[1493] = 4,
ACTIONS(317), 1,
sym__indent,
STATE(79), 1,
sym__children,
ACTIONS(216), 2,
anon_sym_BANG,
anon_sym_DASH,
ACTIONS(214), 9,
ts_builtin_sym_end,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
anon_sym_COLON,
[1515] = 4,
ACTIONS(319), 1,
sym__indent,
STATE(80), 1,
sym_filter_body,
ACTIONS(182), 2,
anon_sym_BANG,
anon_sym_DASH,
ACTIONS(180), 9,
ts_builtin_sym_end,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
anon_sym_COLON,
[1537] = 4,
ACTIONS(317), 1,
sym__indent,
STATE(67), 1,
sym__children,
ACTIONS(178), 2,
anon_sym_BANG,
anon_sym_DASH,
ACTIONS(176), 9,
ts_builtin_sym_end,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
anon_sym_COLON,
[1559] = 4,
ACTIONS(317), 1,
sym__indent,
STATE(72), 1,
sym__children,
ACTIONS(188), 2,
anon_sym_BANG,
anon_sym_DASH,
ACTIONS(186), 9,
ts_builtin_sym_end,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
anon_sym_COLON,
[1581] = 4,
ACTIONS(317), 1,
sym__indent,
STATE(64), 1,
sym__children,
ACTIONS(220), 2,
anon_sym_BANG,
anon_sym_DASH,
ACTIONS(218), 9,
ts_builtin_sym_end,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
anon_sym_COLON,
[1603] = 4,
ACTIONS(317), 1,
sym__indent,
STATE(83), 1,
sym__children,
ACTIONS(164), 2,
anon_sym_BANG,
anon_sym_DASH,
ACTIONS(162), 9,
ts_builtin_sym_end,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
anon_sym_COLON,
[1625] = 8,
ACTIONS(321), 1,
anon_sym_SQUOTE,
ACTIONS(323), 1,
anon_sym_DQUOTE,
ACTIONS(325), 1,
anon_sym_AT_AT,
ACTIONS(327), 1,
anon_sym_AT,
ACTIONS(329), 1,
anon_sym_DOLLAR,
ACTIONS(331), 2,
sym_ruby_constant,
sym_ruby_local_variable,
STATE(118), 2,
sym_quoted_attribute_value,
sym_ruby_value_ref,
STATE(116), 3,
sym_ruby_class_variable,
sym_ruby_instance_variable,
sym_ruby_global_variable,
[1654] = 3,
ACTIONS(333), 1,
sym__indent,
ACTIONS(240), 2,
anon_sym_BANG,
anon_sym_DASH,
ACTIONS(238), 9,
ts_builtin_sym_end,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
anon_sym_COLON,
[1673] = 2,
ACTIONS(290), 2,
anon_sym_BANG,
anon_sym_DASH,
ACTIONS(288), 9,
ts_builtin_sym_end,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
anon_sym_COLON,
[1689] = 2,
ACTIONS(250), 2,
anon_sym_BANG,
anon_sym_DASH,
ACTIONS(248), 9,
ts_builtin_sym_end,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
anon_sym_COLON,
[1705] = 2,
ACTIONS(164), 2,
anon_sym_BANG,
anon_sym_DASH,
ACTIONS(162), 9,
ts_builtin_sym_end,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
anon_sym_COLON,
[1721] = 2,
ACTIONS(286), 2,
anon_sym_BANG,
anon_sym_DASH,
ACTIONS(284), 9,
ts_builtin_sym_end,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
anon_sym_COLON,
[1737] = 2,
ACTIONS(202), 2,
anon_sym_BANG,
anon_sym_DASH,
ACTIONS(200), 9,
ts_builtin_sym_end,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
anon_sym_COLON,
[1753] = 2,
ACTIONS(246), 2,
anon_sym_BANG,
anon_sym_DASH,
ACTIONS(244), 9,
ts_builtin_sym_end,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
anon_sym_COLON,
[1769] = 2,
ACTIONS(258), 2,
anon_sym_BANG,
anon_sym_DASH,
ACTIONS(256), 9,
ts_builtin_sym_end,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
anon_sym_COLON,
[1785] = 2,
ACTIONS(254), 2,
anon_sym_BANG,
anon_sym_DASH,
ACTIONS(252), 9,
ts_builtin_sym_end,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
anon_sym_COLON,
[1801] = 2,
ACTIONS(282), 2,
anon_sym_BANG,
anon_sym_DASH,
ACTIONS(280), 9,
ts_builtin_sym_end,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
anon_sym_COLON,
[1817] = 2,
ACTIONS(178), 2,
anon_sym_BANG,
anon_sym_DASH,
ACTIONS(176), 9,
ts_builtin_sym_end,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
anon_sym_COLON,
[1833] = 2,
ACTIONS(337), 2,
anon_sym_BANG,
anon_sym_DASH,
ACTIONS(335), 9,
ts_builtin_sym_end,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
anon_sym_COLON,
[1849] = 2,
ACTIONS(188), 2,
anon_sym_BANG,
anon_sym_DASH,
ACTIONS(186), 9,
ts_builtin_sym_end,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
anon_sym_COLON,
[1865] = 2,
ACTIONS(294), 2,
anon_sym_BANG,
anon_sym_DASH,
ACTIONS(292), 9,
ts_builtin_sym_end,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
anon_sym_COLON,
[1881] = 2,
ACTIONS(262), 2,
anon_sym_BANG,
anon_sym_DASH,
ACTIONS(260), 9,
ts_builtin_sym_end,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
anon_sym_COLON,
[1897] = 2,
ACTIONS(298), 2,
anon_sym_BANG,
anon_sym_DASH,
ACTIONS(296), 9,
ts_builtin_sym_end,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
anon_sym_COLON,
[1913] = 2,
ACTIONS(266), 2,
anon_sym_BANG,
anon_sym_DASH,
ACTIONS(264), 9,
ts_builtin_sym_end,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
anon_sym_COLON,
[1929] = 2,
ACTIONS(270), 2,
anon_sym_BANG,
anon_sym_DASH,
ACTIONS(268), 9,
ts_builtin_sym_end,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
anon_sym_COLON,
[1945] = 2,
ACTIONS(274), 2,
anon_sym_BANG,
anon_sym_DASH,
ACTIONS(272), 9,
ts_builtin_sym_end,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
anon_sym_COLON,
[1961] = 2,
ACTIONS(278), 2,
anon_sym_BANG,
anon_sym_DASH,
ACTIONS(276), 9,
ts_builtin_sym_end,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
anon_sym_COLON,
[1977] = 2,
ACTIONS(174), 2,
anon_sym_BANG,
anon_sym_DASH,
ACTIONS(172), 9,
ts_builtin_sym_end,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
anon_sym_COLON,
[1993] = 2,
ACTIONS(302), 2,
anon_sym_BANG,
anon_sym_DASH,
ACTIONS(300), 9,
ts_builtin_sym_end,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
anon_sym_COLON,
[2009] = 2,
ACTIONS(170), 2,
anon_sym_BANG,
anon_sym_DASH,
ACTIONS(168), 9,
ts_builtin_sym_end,
anon_sym_BANG_BANG_BANG,
anon_sym_SLASH,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_DASH_POUND,
anon_sym_EQ,
anon_sym_COLON,
[2025] = 2,
ACTIONS(341), 3,
sym__newline,
sym_ruby_attributes,
anon_sym_SPACE,
ACTIONS(339), 7,
anon_sym_SLASH,
anon_sym_LPAREN,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_EQ,
anon_sym_BANG,
[2040] = 2,
ACTIONS(345), 3,
sym__newline,
sym_ruby_attributes,
anon_sym_SPACE,
ACTIONS(343), 7,
anon_sym_SLASH,
anon_sym_LPAREN,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_EQ,
anon_sym_BANG,
[2055] = 2,
ACTIONS(349), 3,
sym__newline,
sym_ruby_attributes,
anon_sym_SPACE,
ACTIONS(347), 7,
anon_sym_SLASH,
anon_sym_LPAREN,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_EQ,
anon_sym_BANG,
[2070] = 2,
ACTIONS(353), 3,
sym__newline,
sym_ruby_attributes,
anon_sym_SPACE,
ACTIONS(351), 7,
anon_sym_SLASH,
anon_sym_LPAREN,
sym_tag_name,
anon_sym_POUND,
anon_sym_DOT,
anon_sym_EQ,
anon_sym_BANG,
[2085] = 5,
ACTIONS(359), 1,
anon_sym_LPAREN,
ACTIONS(362), 1,
sym_ruby_attributes,
ACTIONS(357), 2,
sym__newline,
anon_sym_SPACE,
STATE(90), 2,
sym_html_attributes,
aux_sym_attributes_repeat1,
ACTIONS(355), 3,
anon_sym_SLASH,
anon_sym_EQ,
anon_sym_BANG,
[2105] = 5,
ACTIONS(128), 1,
anon_sym_LPAREN,
ACTIONS(369), 1,
sym_ruby_attributes,
ACTIONS(367), 2,
sym__newline,
anon_sym_SPACE,
STATE(90), 2,
sym_html_attributes,
aux_sym_attributes_repeat1,
ACTIONS(365), 3,
anon_sym_SLASH,
anon_sym_EQ,
anon_sym_BANG,
[2125] = 2,
ACTIONS(373), 3,
sym__newline,
sym_ruby_attributes,
anon_sym_SPACE,
ACTIONS(371), 4,
anon_sym_SLASH,
anon_sym_LPAREN,
anon_sym_EQ,
anon_sym_BANG,
[2137] = 2,
ACTIONS(377), 3,
sym__newline,
sym_ruby_attributes,
anon_sym_SPACE,
ACTIONS(375), 4,
anon_sym_SLASH,
anon_sym_LPAREN,
anon_sym_EQ,
anon_sym_BANG,
[2149] = 6,
ACTIONS(17), 1,
anon_sym_BANG,
ACTIONS(134), 1,
anon_sym_EQ,
ACTIONS(379), 1,
anon_sym_SLASH,
ACTIONS(381), 1,
anon_sym_SPACE,
ACTIONS(383), 1,
sym__newline,
STATE(73), 1,
sym_ruby_block_output,
[2168] = 6,
ACTIONS(17), 1,
anon_sym_BANG,
ACTIONS(134), 1,
anon_sym_EQ,
ACTIONS(140), 1,
anon_sym_SLASH,
ACTIONS(142), 1,
anon_sym_SPACE,
ACTIONS(146), 1,
sym__newline,
STATE(83), 1,
sym_ruby_block_output,
[2187] = 4,
ACTIONS(385), 1,
anon_sym_POUND,
ACTIONS(390), 1,
sym__html_identifier,
ACTIONS(388), 2,
anon_sym_SQUOTE,
anon_sym_DQUOTE,
STATE(96), 2,
sym_ruby_interpolation,
aux_sym_quoted_attribute_value_repeat1,
[2202] = 6,
ACTIONS(69), 1,
anon_sym_EQ,
ACTIONS(73), 1,
anon_sym_BANG,
ACTIONS(148), 1,
anon_sym_SLASH,
ACTIONS(150), 1,
anon_sym_SPACE,
ACTIONS(152), 1,
sym__newline,
STATE(34), 1,
sym_ruby_block_output,
[2221] = 6,
ACTIONS(69), 1,
anon_sym_EQ,
ACTIONS(73), 1,
anon_sym_BANG,
ACTIONS(393), 1,
anon_sym_SLASH,
ACTIONS(395), 1,
anon_sym_SPACE,
ACTIONS(397), 1,
sym__newline,
STATE(37), 1,
sym_ruby_block_output,
[2240] = 5,
ACTIONS(17), 1,
anon_sym_BANG,
ACTIONS(134), 1,
anon_sym_EQ,
ACTIONS(399), 1,
anon_sym_SPACE,
ACTIONS(401), 1,
sym__newline,
STATE(75), 1,
sym_ruby_block_output,
[2256] = 4,
ACTIONS(403), 1,
anon_sym_POUND,
ACTIONS(405), 1,
anon_sym_SQUOTE,
ACTIONS(407), 1,
sym__html_identifier,
STATE(96), 2,
sym_ruby_interpolation,
aux_sym_quoted_attribute_value_repeat1,
[2270] = 5,
ACTIONS(69), 1,
anon_sym_EQ,
ACTIONS(73), 1,
anon_sym_BANG,
ACTIONS(409), 1,
anon_sym_SPACE,
ACTIONS(411), 1,
sym__newline,
STATE(38), 1,
sym_ruby_block_output,
[2286] = 4,
ACTIONS(403), 1,
anon_sym_POUND,
ACTIONS(405), 1,
anon_sym_DQUOTE,
ACTIONS(407), 1,
sym__html_identifier,
STATE(96), 2,
sym_ruby_interpolation,
aux_sym_quoted_attribute_value_repeat1,
[2300] = 5,
ACTIONS(69), 1,
anon_sym_EQ,
ACTIONS(73), 1,
anon_sym_BANG,
ACTIONS(413), 1,
anon_sym_SPACE,
ACTIONS(415), 1,
sym__newline,
STATE(35), 1,
sym_ruby_block_output,
[2316] = 5,
ACTIONS(17), 1,
anon_sym_BANG,
ACTIONS(134), 1,
anon_sym_EQ,
ACTIONS(417), 1,
anon_sym_SPACE,
ACTIONS(419), 1,
sym__newline,
STATE(85), 1,
sym_ruby_block_output,
[2332] = 5,
ACTIONS(17), 1,
anon_sym_BANG,
ACTIONS(134), 1,
anon_sym_EQ,
ACTIONS(421), 1,
anon_sym_SPACE,
ACTIONS(423), 1,
sym__newline,
STATE(68), 1,
sym_ruby_block_output,
[2348] = 5,
ACTIONS(69), 1,
anon_sym_EQ,
ACTIONS(73), 1,
anon_sym_BANG,
ACTIONS(425), 1,
anon_sym_SPACE,
ACTIONS(427), 1,
sym__newline,
STATE(46), 1,
sym_ruby_block_output,
[2364] = 4,
ACTIONS(429), 1,
anon_sym_RPAREN,
ACTIONS(431), 1,
sym_attribute_name,
STATE(107), 1,
aux_sym_html_attributes_repeat1,
STATE(120), 1,
sym_attribute,
[2377] = 3,
ACTIONS(403), 1,
anon_sym_POUND,
ACTIONS(434), 1,
sym__html_identifier,
STATE(100), 2,
sym_ruby_interpolation,
aux_sym_quoted_attribute_value_repeat1,
[2388] = 4,
ACTIONS(436), 1,
anon_sym_LBRACK,
ACTIONS(438), 1,
sym__text,
ACTIONS(440), 1,
sym__newline,
STATE(146), 1,
sym_comment_condition,
[2401] = 3,
ACTIONS(403), 1,
anon_sym_POUND,
ACTIONS(442), 1,
sym__html_identifier,
STATE(102), 2,
sym_ruby_interpolation,
aux_sym_quoted_attribute_value_repeat1,
[2412] = 4,
ACTIONS(444), 1,
anon_sym_RPAREN,
ACTIONS(446), 1,
sym_attribute_name,
STATE(115), 1,
aux_sym_html_attributes_repeat1,
STATE(120), 1,
sym_attribute,
[2425] = 1,
ACTIONS(252), 4,
anon_sym_POUND,
anon_sym_SQUOTE,
anon_sym_DQUOTE,
sym__html_identifier,
[2432] = 3,
ACTIONS(448), 1,
anon_sym_SPACE,
ACTIONS(452), 1,
anon_sym_EQ,
ACTIONS(450), 2,
anon_sym_RPAREN,
sym_attribute_name,
[2443] = 4,
ACTIONS(436), 1,
anon_sym_LBRACK,
ACTIONS(454), 1,
sym__text,
ACTIONS(456), 1,
sym__newline,
STATE(192), 1,
sym_comment_condition,
[2456] = 4,
ACTIONS(446), 1,
sym_attribute_name,
ACTIONS(458), 1,
anon_sym_RPAREN,
STATE(107), 1,
aux_sym_html_attributes_repeat1,
STATE(120), 1,
sym_attribute,
[2469] = 2,
ACTIONS(460), 1,
anon_sym_SPACE,
ACTIONS(462), 2,
anon_sym_RPAREN,
sym_attribute_name,
[2477] = 2,
ACTIONS(464), 1,
anon_sym_SPACE,
ACTIONS(466), 2,
anon_sym_RPAREN,
sym_attribute_name,
[2485] = 2,
ACTIONS(468), 1,
anon_sym_SPACE,
ACTIONS(470), 2,
anon_sym_RPAREN,
sym_attribute_name,
[2493] = 3,
ACTIONS(472), 1,
sym__text,
ACTIONS(474), 1,
sym__newline,
STATE(27), 1,
aux_sym_filter_body_repeat1,
[2503] = 2,
ACTIONS(476), 1,
anon_sym_SPACE,
ACTIONS(478), 2,
anon_sym_RPAREN,
sym_attribute_name,
[2511] = 3,
ACTIONS(480), 1,
sym__text,
ACTIONS(482), 1,
sym__dedent,
STATE(123), 1,
aux_sym__comment_line_repeat1,
[2521] = 3,
ACTIONS(484), 1,
aux_sym_class_or_id_value_token1,
ACTIONS(486), 1,
sym_ruby_expression,
STATE(87), 1,
sym_class_or_id_value,
[2531] = 3,
ACTIONS(488), 1,
sym__text,
ACTIONS(491), 1,
sym__dedent,
STATE(123), 1,
aux_sym__comment_line_repeat1,
[2541] = 3,
ACTIONS(480), 1,
sym__text,
ACTIONS(493), 1,
sym__dedent,
STATE(123), 1,
aux_sym__comment_line_repeat1,
[2551] = 3,
ACTIONS(480), 1,
sym__text,
ACTIONS(495), 1,
sym__dedent,
STATE(123), 1,
aux_sym__comment_line_repeat1,
[2561] = 3,
ACTIONS(484), 1,
aux_sym_class_or_id_value_token1,
ACTIONS(497), 1,
sym_ruby_expression,
STATE(87), 1,
sym_class_or_id_value,
[2571] = 2,
ACTIONS(499), 1,
anon_sym_SPACE,
ACTIONS(501), 2,
anon_sym_RPAREN,
sym_attribute_name,
[2579] = 2,
ACTIONS(503), 1,
anon_sym_SPACE,
ACTIONS(505), 2,
anon_sym_RPAREN,
sym_attribute_name,
[2587] = 3,
ACTIONS(480), 1,
sym__text,
ACTIONS(507), 1,
sym__dedent,
STATE(123), 1,
aux_sym__comment_line_repeat1,
[2597] = 2,
ACTIONS(509), 1,
anon_sym_SPACE,
ACTIONS(511), 2,
anon_sym_RPAREN,
sym_attribute_name,
[2605] = 3,
ACTIONS(513), 1,
sym__text,
ACTIONS(515), 1,
sym__newline,
STATE(19), 1,
aux_sym_filter_body_repeat1,
[2615] = 3,
ACTIONS(480), 1,
sym__text,
ACTIONS(517), 1,
sym__dedent,
STATE(123), 1,
aux_sym__comment_line_repeat1,
[2625] = 3,
ACTIONS(480), 1,
sym__text,
ACTIONS(519), 1,
sym__dedent,
STATE(123), 1,
aux_sym__comment_line_repeat1,
[2635] = 2,
ACTIONS(521), 1,
aux_sym_class_or_id_value_token1,
STATE(89), 1,
sym_class_name,
[2642] = 2,
ACTIONS(484), 1,
aux_sym_class_or_id_value_token1,
STATE(87), 1,
sym_class_or_id_value,
[2649] = 1,
ACTIONS(491), 2,
sym__dedent,
sym__text,
[2654] = 2,
ACTIONS(480), 1,
sym__text,
STATE(124), 1,
aux_sym__comment_line_repeat1,
[2661] = 1,
ACTIONS(429), 2,
anon_sym_RPAREN,
sym_attribute_name,
[2666] = 2,
ACTIONS(480), 1,
sym__text,
STATE(125), 1,
aux_sym__comment_line_repeat1,
[2673] = 2,
ACTIONS(480), 1,
sym__text,
STATE(132), 1,
aux_sym__comment_line_repeat1,
[2680] = 2,
ACTIONS(480), 1,
sym__text,
STATE(121), 1,
aux_sym__comment_line_repeat1,
[2687] = 2,
ACTIONS(480), 1,
sym__text,
STATE(133), 1,
aux_sym__comment_line_repeat1,
[2694] = 2,
ACTIONS(480), 1,
sym__text,
STATE(129), 1,
aux_sym__comment_line_repeat1,
[2701] = 1,
ACTIONS(523), 1,
sym_verbatim_string,
[2705] = 1,
ACTIONS(525), 1,
sym__text,
[2709] = 1,
ACTIONS(527), 1,
sym__newline,
[2713] = 1,
ACTIONS(529), 1,
sym__newline,
[2717] = 1,
ACTIONS(531), 1,
sym__newline,
[2721] = 1,
ACTIONS(533), 1,
sym_verbatim_string,
[2725] = 1,
ACTIONS(535), 1,
sym__text,
[2729] = 1,
ACTIONS(537), 1,
sym__newline,
[2733] = 1,
ACTIONS(539), 1,
sym__newline,
[2737] = 1,
ACTIONS(541), 1,
sym__newline,
[2741] = 1,
ACTIONS(543), 1,
ts_builtin_sym_end,
[2745] = 1,
ACTIONS(545), 1,
sym__newline,
[2749] = 1,
ACTIONS(547), 1,
sym__text,
[2753] = 1,
ACTIONS(549), 1,
sym__newline,
[2757] = 1,
ACTIONS(551), 1,
sym_ruby_expression,
[2761] = 1,
ACTIONS(553), 1,
anon_sym_EQ,
[2765] = 1,
ACTIONS(555), 1,
sym__indent,
[2769] = 1,
ACTIONS(557), 1,
sym_verbatim_string,
[2773] = 1,
ACTIONS(559), 1,
sym__newline,
[2777] = 1,
ACTIONS(561), 1,
sym__newline,
[2781] = 1,
ACTIONS(563), 1,
sym__newline,
[2785] = 1,
ACTIONS(565), 1,
sym_verbatim_string,
[2789] = 1,
ACTIONS(567), 1,
sym_verbatim_string,
[2793] = 1,
ACTIONS(569), 1,
sym_verbatim_string,
[2797] = 1,
ACTIONS(571), 1,
sym__newline,
[2801] = 1,
ACTIONS(573), 1,
sym__newline,
[2805] = 1,
ACTIONS(575), 1,
anon_sym_RBRACK,
[2809] = 1,
ACTIONS(577), 1,
sym_verbatim_string,
[2813] = 1,
ACTIONS(579), 1,
sym_verbatim_string,
[2817] = 1,
ACTIONS(581), 1,
sym__newline,
[2821] = 1,
ACTIONS(583), 1,
sym_verbatim_string,
[2825] = 1,
ACTIONS(585), 1,
sym_verbatim_string,
[2829] = 1,
ACTIONS(587), 1,
sym__indent,
[2833] = 1,
ACTIONS(589), 1,
sym_verbatim_string,
[2837] = 1,
ACTIONS(591), 1,
sym_verbatim_string,
[2841] = 1,
ACTIONS(593), 1,
sym__newline,
[2845] = 1,
ACTIONS(595), 1,
sym__text,
[2849] = 1,
ACTIONS(597), 1,
sym__text,
[2853] = 1,
ACTIONS(599), 1,
sym__text,
[2857] = 1,
ACTIONS(601), 1,
sym__text,
[2861] = 1,
ACTIONS(603), 1,
sym__text,
[2865] = 1,
ACTIONS(605), 1,
sym__text,
[2869] = 1,
ACTIONS(607), 1,
aux_sym_ruby_class_variable_token1,
[2873] = 1,
ACTIONS(609), 1,
aux_sym_ruby_instance_variable_token1,
[2877] = 1,
ACTIONS(611), 1,
aux_sym_ruby_class_variable_token1,
[2881] = 1,
ACTIONS(613), 1,
anon_sym_EQ,
[2885] = 1,
ACTIONS(615), 1,
sym__indent,
[2889] = 1,
ACTIONS(617), 1,
sym__indent,
[2893] = 1,
ACTIONS(619), 1,
sym__newline,
[2897] = 1,
ACTIONS(621), 1,
sym__text,
};
static const uint32_t ts_small_parse_table_map[] = {
[SMALL_STATE(2)] = 0,
[SMALL_STATE(3)] = 57,
[SMALL_STATE(4)] = 116,
[SMALL_STATE(5)] = 175,
[SMALL_STATE(6)] = 225,
[SMALL_STATE(7)] = 275,
[SMALL_STATE(8)] = 325,
[SMALL_STATE(9)] = 375,
[SMALL_STATE(10)] = 421,
[SMALL_STATE(11)] = 467,
[SMALL_STATE(12)] = 513,
[SMALL_STATE(13)] = 559,
[SMALL_STATE(14)] = 584,
[SMALL_STATE(15)] = 609,
[SMALL_STATE(16)] = 634,
[SMALL_STATE(17)] = 659,
[SMALL_STATE(18)] = 684,
[SMALL_STATE(19)] = 709,
[SMALL_STATE(20)] = 738,
[SMALL_STATE(21)] = 763,
[SMALL_STATE(22)] = 790,
[SMALL_STATE(23)] = 815,
[SMALL_STATE(24)] = 840,
[SMALL_STATE(25)] = 865,
[SMALL_STATE(26)] = 885,
[SMALL_STATE(27)] = 911,
[SMALL_STATE(28)] = 939,
[SMALL_STATE(29)] = 961,
[SMALL_STATE(30)] = 980,
[SMALL_STATE(31)] = 999,
[SMALL_STATE(32)] = 1018,
[SMALL_STATE(33)] = 1037,
[SMALL_STATE(34)] = 1056,
[SMALL_STATE(35)] = 1075,
[SMALL_STATE(36)] = 1094,
[SMALL_STATE(37)] = 1113,
[SMALL_STATE(38)] = 1132,
[SMALL_STATE(39)] = 1151,
[SMALL_STATE(40)] = 1170,
[SMALL_STATE(41)] = 1189,
[SMALL_STATE(42)] = 1208,
[SMALL_STATE(43)] = 1227,
[SMALL_STATE(44)] = 1246,
[SMALL_STATE(45)] = 1265,
[SMALL_STATE(46)] = 1284,
[SMALL_STATE(47)] = 1303,
[SMALL_STATE(48)] = 1322,
[SMALL_STATE(49)] = 1341,
[SMALL_STATE(50)] = 1360,
[SMALL_STATE(51)] = 1379,
[SMALL_STATE(52)] = 1405,
[SMALL_STATE(53)] = 1427,
[SMALL_STATE(54)] = 1449,
[SMALL_STATE(55)] = 1471,
[SMALL_STATE(56)] = 1493,
[SMALL_STATE(57)] = 1515,
[SMALL_STATE(58)] = 1537,
[SMALL_STATE(59)] = 1559,
[SMALL_STATE(60)] = 1581,
[SMALL_STATE(61)] = 1603,
[SMALL_STATE(62)] = 1625,
[SMALL_STATE(63)] = 1654,
[SMALL_STATE(64)] = 1673,
[SMALL_STATE(65)] = 1689,
[SMALL_STATE(66)] = 1705,
[SMALL_STATE(67)] = 1721,
[SMALL_STATE(68)] = 1737,
[SMALL_STATE(69)] = 1753,
[SMALL_STATE(70)] = 1769,
[SMALL_STATE(71)] = 1785,
[SMALL_STATE(72)] = 1801,
[SMALL_STATE(73)] = 1817,
[SMALL_STATE(74)] = 1833,
[SMALL_STATE(75)] = 1849,
[SMALL_STATE(76)] = 1865,
[SMALL_STATE(77)] = 1881,
[SMALL_STATE(78)] = 1897,
[SMALL_STATE(79)] = 1913,
[SMALL_STATE(80)] = 1929,
[SMALL_STATE(81)] = 1945,
[SMALL_STATE(82)] = 1961,
[SMALL_STATE(83)] = 1977,
[SMALL_STATE(84)] = 1993,
[SMALL_STATE(85)] = 2009,
[SMALL_STATE(86)] = 2025,
[SMALL_STATE(87)] = 2040,
[SMALL_STATE(88)] = 2055,
[SMALL_STATE(89)] = 2070,
[SMALL_STATE(90)] = 2085,
[SMALL_STATE(91)] = 2105,
[SMALL_STATE(92)] = 2125,
[SMALL_STATE(93)] = 2137,
[SMALL_STATE(94)] = 2149,
[SMALL_STATE(95)] = 2168,
[SMALL_STATE(96)] = 2187,
[SMALL_STATE(97)] = 2202,
[SMALL_STATE(98)] = 2221,
[SMALL_STATE(99)] = 2240,
[SMALL_STATE(100)] = 2256,
[SMALL_STATE(101)] = 2270,
[SMALL_STATE(102)] = 2286,
[SMALL_STATE(103)] = 2300,
[SMALL_STATE(104)] = 2316,
[SMALL_STATE(105)] = 2332,
[SMALL_STATE(106)] = 2348,
[SMALL_STATE(107)] = 2364,
[SMALL_STATE(108)] = 2377,
[SMALL_STATE(109)] = 2388,
[SMALL_STATE(110)] = 2401,
[SMALL_STATE(111)] = 2412,
[SMALL_STATE(112)] = 2425,
[SMALL_STATE(113)] = 2432,
[SMALL_STATE(114)] = 2443,
[SMALL_STATE(115)] = 2456,
[SMALL_STATE(116)] = 2469,
[SMALL_STATE(117)] = 2477,
[SMALL_STATE(118)] = 2485,
[SMALL_STATE(119)] = 2493,
[SMALL_STATE(120)] = 2503,
[SMALL_STATE(121)] = 2511,
[SMALL_STATE(122)] = 2521,
[SMALL_STATE(123)] = 2531,
[SMALL_STATE(124)] = 2541,
[SMALL_STATE(125)] = 2551,
[SMALL_STATE(126)] = 2561,
[SMALL_STATE(127)] = 2571,
[SMALL_STATE(128)] = 2579,
[SMALL_STATE(129)] = 2587,
[SMALL_STATE(130)] = 2597,
[SMALL_STATE(131)] = 2605,
[SMALL_STATE(132)] = 2615,
[SMALL_STATE(133)] = 2625,
[SMALL_STATE(134)] = 2635,
[SMALL_STATE(135)] = 2642,
[SMALL_STATE(136)] = 2649,
[SMALL_STATE(137)] = 2654,
[SMALL_STATE(138)] = 2661,
[SMALL_STATE(139)] = 2666,
[SMALL_STATE(140)] = 2673,
[SMALL_STATE(141)] = 2680,
[SMALL_STATE(142)] = 2687,
[SMALL_STATE(143)] = 2694,
[SMALL_STATE(144)] = 2701,
[SMALL_STATE(145)] = 2705,
[SMALL_STATE(146)] = 2709,
[SMALL_STATE(147)] = 2713,
[SMALL_STATE(148)] = 2717,
[SMALL_STATE(149)] = 2721,
[SMALL_STATE(150)] = 2725,
[SMALL_STATE(151)] = 2729,
[SMALL_STATE(152)] = 2733,
[SMALL_STATE(153)] = 2737,
[SMALL_STATE(154)] = 2741,
[SMALL_STATE(155)] = 2745,
[SMALL_STATE(156)] = 2749,
[SMALL_STATE(157)] = 2753,
[SMALL_STATE(158)] = 2757,
[SMALL_STATE(159)] = 2761,
[SMALL_STATE(160)] = 2765,
[SMALL_STATE(161)] = 2769,
[SMALL_STATE(162)] = 2773,
[SMALL_STATE(163)] = 2777,
[SMALL_STATE(164)] = 2781,
[SMALL_STATE(165)] = 2785,
[SMALL_STATE(166)] = 2789,
[SMALL_STATE(167)] = 2793,
[SMALL_STATE(168)] = 2797,
[SMALL_STATE(169)] = 2801,
[SMALL_STATE(170)] = 2805,
[SMALL_STATE(171)] = 2809,
[SMALL_STATE(172)] = 2813,
[SMALL_STATE(173)] = 2817,
[SMALL_STATE(174)] = 2821,
[SMALL_STATE(175)] = 2825,
[SMALL_STATE(176)] = 2829,
[SMALL_STATE(177)] = 2833,
[SMALL_STATE(178)] = 2837,
[SMALL_STATE(179)] = 2841,
[SMALL_STATE(180)] = 2845,
[SMALL_STATE(181)] = 2849,
[SMALL_STATE(182)] = 2853,
[SMALL_STATE(183)] = 2857,
[SMALL_STATE(184)] = 2861,
[SMALL_STATE(185)] = 2865,
[SMALL_STATE(186)] = 2869,
[SMALL_STATE(187)] = 2873,
[SMALL_STATE(188)] = 2877,
[SMALL_STATE(189)] = 2881,
[SMALL_STATE(190)] = 2885,
[SMALL_STATE(191)] = 2889,
[SMALL_STATE(192)] = 2893,
[SMALL_STATE(193)] = 2897,
};
static const TSParseActionEntry ts_parse_actions[] = {
[0] = {.entry = {.count = 0, .reusable = false}},
[1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(),
[3] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 0, 0, 0),
[5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156),
[7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109),
[9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9),
[11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122),
[13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134),
[15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(180),
[17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(159),
[19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(193),
[21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145),
[23] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__children_repeat1, 2, 0, 0),
[25] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__children_repeat1, 2, 0, 0),
[27] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__children_repeat1, 2, 0, 0), SHIFT_REPEAT(114),
[30] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__children_repeat1, 2, 0, 0), SHIFT_REPEAT(12),
[33] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__children_repeat1, 2, 0, 0), SHIFT_REPEAT(126),
[36] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__children_repeat1, 2, 0, 0), SHIFT_REPEAT(134),
[39] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__children_repeat1, 2, 0, 0), SHIFT_REPEAT(181),
[42] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__children_repeat1, 2, 0, 0), SHIFT_REPEAT(2),
[45] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__children_repeat1, 2, 0, 0), SHIFT_REPEAT(189),
[48] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__children_repeat1, 2, 0, 0), SHIFT_REPEAT(182),
[51] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__children_repeat1, 2, 0, 0), SHIFT_REPEAT(183),
[54] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__children_repeat1, 2, 0, 0), SHIFT_REPEAT(2),
[57] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__children, 2, 0, 0),
[59] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__children, 2, 0, 0),
[61] = {.entry = {.count = 1, .reusable = false}}, SHIFT(114),
[63] = {.entry = {.count = 1, .reusable = false}}, SHIFT(12),
[65] = {.entry = {.count = 1, .reusable = false}}, SHIFT(126),
[67] = {.entry = {.count = 1, .reusable = false}}, SHIFT(134),
[69] = {.entry = {.count = 1, .reusable = false}}, SHIFT(181),
[71] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2),
[73] = {.entry = {.count = 1, .reusable = false}}, SHIFT(189),
[75] = {.entry = {.count = 1, .reusable = false}}, SHIFT(182),
[77] = {.entry = {.count = 1, .reusable = false}}, SHIFT(183),
[79] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2),
[81] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82),
[83] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43),
[85] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0),
[87] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(156),
[90] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(109),
[93] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(9),
[96] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(122),
[99] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(134),
[102] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(180),
[105] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(159),
[108] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(193),
[111] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(145),
[114] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4),
[116] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4),
[118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, 0, 0),
[120] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3),
[122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3),
[124] = {.entry = {.count = 1, .reusable = false}}, SHIFT(104),
[126] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161),
[128] = {.entry = {.count = 1, .reusable = false}}, SHIFT(111),
[130] = {.entry = {.count = 1, .reusable = false}}, SHIFT(10),
[132] = {.entry = {.count = 1, .reusable = false}}, SHIFT(135),
[134] = {.entry = {.count = 1, .reusable = false}}, SHIFT(180),
[136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61),
[138] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91),
[140] = {.entry = {.count = 1, .reusable = false}}, SHIFT(99),
[142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177),
[144] = {.entry = {.count = 1, .reusable = false}}, SHIFT(51),
[146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54),
[148] = {.entry = {.count = 1, .reusable = false}}, SHIFT(101),
[150] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167),
[152] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15),
[154] = {.entry = {.count = 1, .reusable = false}}, SHIFT(103),
[156] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144),
[158] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11),
[160] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13),
[162] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tag, 2, 0, 0),
[164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tag, 2, 0, 0),
[166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6),
[168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tag, 3, 0, 1),
[170] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tag, 3, 0, 1),
[172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tag, 3, 0, 0),
[174] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tag, 3, 0, 0),
[176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tag, 4, 0, 0),
[178] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tag, 4, 0, 0),
[180] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_filter, 3, 0, 3),
[182] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_filter, 3, 0, 3),
[184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131),
[186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tag, 4, 0, 4),
[188] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tag, 4, 0, 4),
[190] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_filter_body, 2, 0, 0),
[192] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_filter_body, 2, 0, 0),
[194] = {.entry = {.count = 1, .reusable = false}}, SHIFT(179),
[196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21),
[198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31),
[200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tag, 5, 0, 6),
[202] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tag, 5, 0, 6),
[204] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_filter_body_repeat1, 2, 0, 0),
[206] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_filter_body_repeat1, 2, 0, 0),
[208] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_filter_body_repeat1, 2, 0, 0), SHIFT_REPEAT(179),
[211] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_filter_body_repeat1, 2, 0, 0), SHIFT_REPEAT(21),
[214] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ruby_block_run, 3, 0, 2),
[216] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ruby_block_run, 3, 0, 2),
[218] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ruby_block_output, 4, 0, 5),
[220] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ruby_block_output, 4, 0, 5),
[222] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ruby_block_output, 3, 0, 2),
[224] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ruby_block_output, 3, 0, 2),
[226] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_filter_body_repeat1, 2, 0, 0), SHIFT_REPEAT(152),
[229] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_filter_body_repeat1, 2, 0, 0), SHIFT_REPEAT(26),
[232] = {.entry = {.count = 1, .reusable = false}}, SHIFT(152),
[234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26),
[236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65),
[238] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comment_line, 3, 0, 0),
[240] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comment_line, 3, 0, 0),
[242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142),
[244] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 1, 0, 0),
[246] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comment, 1, 0, 0),
[248] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_filter_body, 3, 0, 0),
[250] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_filter_body, 3, 0, 0),
[252] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ruby_interpolation, 2, 0, 0),
[254] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ruby_interpolation, 2, 0, 0),
[256] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tag, 4, 0, 1),
[258] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tag, 4, 0, 1),
[260] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ruby_block_output, 4, 0, 2),
[262] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ruby_block_output, 4, 0, 2),
[264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ruby_block_run, 4, 0, 2),
[266] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ruby_block_run, 4, 0, 2),
[268] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_filter, 4, 0, 3),
[270] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_filter, 4, 0, 3),
[272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comment_block, 5, 0, 0),
[274] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comment_block, 5, 0, 0),
[276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__children, 3, 0, 0),
[278] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__children, 3, 0, 0),
[280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tag, 5, 0, 4),
[282] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tag, 5, 0, 4),
[284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tag, 5, 0, 0),
[286] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tag, 5, 0, 0),
[288] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ruby_block_output, 5, 0, 5),
[290] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ruby_block_output, 5, 0, 5),
[292] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comment_line, 6, 0, 0),
[294] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comment_line, 6, 0, 0),
[296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comment_block, 6, 0, 0),
[298] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__comment_block, 6, 0, 0),
[300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tag, 6, 0, 6),
[302] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tag, 6, 0, 6),
[304] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_tag_repeat1, 2, 0, 0),
[306] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_tag_repeat1, 2, 0, 0),
[308] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_tag_repeat1, 2, 0, 0), SHIFT_REPEAT(51),
[311] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_tag_repeat1, 2, 0, 0), SHIFT_REPEAT(135),
[314] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_tag_repeat1, 2, 0, 0), SHIFT_REPEAT(134),
[317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8),
[319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119),
[321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108),
[323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110),
[325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186),
[327] = {.entry = {.count = 1, .reusable = false}}, SHIFT(187),
[329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188),
[331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116),
[333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137),
[335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_doctype, 2, 0, 0),
[337] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_doctype, 2, 0, 0),
[339] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_name, 1, 0, 0),
[341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_name, 1, 0, 0),
[343] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_id, 2, 0, 0),
[345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_id, 2, 0, 0),
[347] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_or_id_value, 1, 0, 0),
[349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_or_id_value, 1, 0, 0),
[351] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class, 2, 0, 0),
[353] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class, 2, 0, 0),
[355] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_attributes_repeat1, 2, 0, 0),
[357] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_attributes_repeat1, 2, 0, 0),
[359] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_attributes_repeat1, 2, 0, 0), SHIFT_REPEAT(111),
[362] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_attributes_repeat1, 2, 0, 0), SHIFT_REPEAT(90),
[365] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attributes, 1, 0, 0),
[367] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attributes, 1, 0, 0),
[369] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90),
[371] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_html_attributes, 3, 0, 0),
[373] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_html_attributes, 3, 0, 0),
[375] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_html_attributes, 2, 0, 0),
[377] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_html_attributes, 2, 0, 0),
[379] = {.entry = {.count = 1, .reusable = false}}, SHIFT(105),
[381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175),
[383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58),
[385] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_quoted_attribute_value_repeat1, 2, 0, 0), SHIFT_REPEAT(158),
[388] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_quoted_attribute_value_repeat1, 2, 0, 0),
[390] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_quoted_attribute_value_repeat1, 2, 0, 0), SHIFT_REPEAT(96),
[393] = {.entry = {.count = 1, .reusable = false}}, SHIFT(106),
[395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174),
[397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16),
[399] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166),
[401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59),
[403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158),
[405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117),
[407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96),
[409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172),
[411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18),
[413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165),
[415] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14),
[417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171),
[419] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52),
[421] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149),
[423] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53),
[425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(178),
[427] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20),
[429] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_html_attributes_repeat1, 2, 0, 0),
[431] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_html_attributes_repeat1, 2, 0, 0), SHIFT_REPEAT(113),
[434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100),
[436] = {.entry = {.count = 1, .reusable = false}}, SHIFT(185),
[438] = {.entry = {.count = 1, .reusable = false}}, SHIFT(168),
[440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176),
[442] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102),
[444] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93),
[446] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113),
[448] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 1, 0, 0),
[450] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attribute, 1, 0, 0),
[452] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62),
[454] = {.entry = {.count = 1, .reusable = false}}, SHIFT(157),
[456] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190),
[458] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92),
[460] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ruby_value_ref, 1, 0, 0),
[462] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ruby_value_ref, 1, 0, 0),
[464] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_quoted_attribute_value, 3, 0, 0),
[466] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_quoted_attribute_value, 3, 0, 0),
[468] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 3, 0, 0),
[470] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attribute, 3, 0, 0),
[472] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152),
[474] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27),
[476] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138),
[478] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_html_attributes_repeat1, 1, 0, 0),
[480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153),
[482] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81),
[484] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88),
[486] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71),
[488] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__comment_line_repeat1, 2, 0, 0), SHIFT_REPEAT(153),
[491] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__comment_line_repeat1, 2, 0, 0),
[493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76),
[495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78),
[497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32),
[499] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ruby_instance_variable, 2, 0, 0),
[501] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ruby_instance_variable, 2, 0, 0),
[503] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ruby_global_variable, 2, 0, 0),
[505] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ruby_global_variable, 2, 0, 0),
[507] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49),
[509] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ruby_class_variable, 2, 0, 0),
[511] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ruby_class_variable, 2, 0, 0),
[513] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179),
[515] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19),
[517] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42),
[519] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48),
[521] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86),
[523] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34),
[525] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173),
[527] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160),
[529] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55),
[531] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60),
[533] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84),
[535] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148),
[537] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56),
[539] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29),
[541] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136),
[543] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(),
[545] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment_condition, 3, 0, 0),
[547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74),
[549] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28),
[551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112),
[553] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150),
[555] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139),
[557] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83),
[559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24),
[561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22),
[563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17),
[565] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36),
[567] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72),
[569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37),
[571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63),
[573] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23),
[575] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155),
[577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70),
[579] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44),
[581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57),
[583] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45),
[585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67),
[587] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141),
[589] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73),
[591] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50),
[593] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25),
[595] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147),
[597] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162),
[599] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163),
[601] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164),
[603] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169),
[605] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170),
[607] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130),
[609] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127),
[611] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128),
[613] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184),
[615] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140),
[617] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143),
[619] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191),
[621] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151),
};
enum ts_external_scanner_symbol_identifiers {
ts_external_token__newline = 0,
ts_external_token__indent = 1,
ts_external_token__dedent = 2,
ts_external_token_ruby_attributes = 3,
};
static const TSSymbol ts_external_scanner_symbol_map[EXTERNAL_TOKEN_COUNT] = {
[ts_external_token__newline] = sym__newline,
[ts_external_token__indent] = sym__indent,
[ts_external_token__dedent] = sym__dedent,
[ts_external_token_ruby_attributes] = sym_ruby_attributes,
};
static const bool ts_external_scanner_states[8][EXTERNAL_TOKEN_COUNT] = {
[1] = {
[ts_external_token__newline] = true,
[ts_external_token__indent] = true,
[ts_external_token__dedent] = true,
[ts_external_token_ruby_attributes] = true,
},
[2] = {
[ts_external_token__newline] = true,
[ts_external_token__dedent] = true,
},
[3] = {
[ts_external_token__newline] = true,
},
[4] = {
[ts_external_token__newline] = true,
[ts_external_token_ruby_attributes] = true,
},
[5] = {
[ts_external_token__newline] = true,
[ts_external_token__indent] = true,
[ts_external_token__dedent] = true,
},
[6] = {
[ts_external_token__indent] = true,
},
[7] = {
[ts_external_token__dedent] = true,
},
};
#ifdef __cplusplus
extern "C" {
#endif
void *tree_sitter_haml_external_scanner_create(void);
void tree_sitter_haml_external_scanner_destroy(void *);
bool tree_sitter_haml_external_scanner_scan(void *, TSLexer *, const bool *);
unsigned tree_sitter_haml_external_scanner_serialize(void *, char *);
void tree_sitter_haml_external_scanner_deserialize(void *, const char *, unsigned);
#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_haml(void) {
static const TSLanguage language = {
.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,
.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 = ts_lex_modes,
.lex_fn = ts_lex,
.external_scanner = {
&ts_external_scanner_states[0][0],
ts_external_scanner_symbol_map,
tree_sitter_haml_external_scanner_create,
tree_sitter_haml_external_scanner_destroy,
tree_sitter_haml_external_scanner_scan,
tree_sitter_haml_external_scanner_serialize,
tree_sitter_haml_external_scanner_deserialize,
},
.primary_state_ids = ts_primary_state_ids,
};
return &language;
}
#ifdef __cplusplus
}
#endif