#include <tree_sitter/parser.h>
#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
#endif
#define LANGUAGE_VERSION 13
#define STATE_COUNT 25
#define LARGE_STATE_COUNT 4
#define SYMBOL_COUNT 25
#define ALIAS_COUNT 1
#define TOKEN_COUNT 15
#define EXTERNAL_TOKEN_COUNT 0
#define FIELD_COUNT 0
#define MAX_ALIAS_SEQUENCE_LENGTH 3
#define PRODUCTION_ID_COUNT 2
enum {
aux_sym_code_token1 = 1,
anon_sym_PERCENT_PERCENT_GT = 2,
aux_sym_content_token1 = 3,
anon_sym_LT_PERCENT_PERCENT = 4,
anon_sym_LT_PERCENT = 5,
anon_sym_LT_PERCENT_ = 6,
anon_sym_PERCENT_GT = 7,
anon_sym_DASH_PERCENT_GT = 8,
anon_sym__PERCENT_GT = 9,
anon_sym_LT_PERCENT_EQ = 10,
anon_sym_LT_PERCENT_DASH = 11,
anon_sym_EQ_PERCENT_GT = 12,
anon_sym_LT_PERCENT_POUND = 13,
anon_sym_LT_PERCENTgraphql = 14,
sym_template = 15,
sym_code = 16,
sym_content = 17,
sym_directive = 18,
sym_output_directive = 19,
sym_comment_directive = 20,
sym_graphql_directive = 21,
aux_sym_template_repeat1 = 22,
aux_sym_code_repeat1 = 23,
aux_sym_content_repeat1 = 24,
alias_sym_comment = 25,
};
static const char *ts_symbol_names[] = {
[ts_builtin_sym_end] = "end",
[aux_sym_code_token1] = "code_token1",
[anon_sym_PERCENT_PERCENT_GT] = "%%>",
[aux_sym_content_token1] = "content_token1",
[anon_sym_LT_PERCENT_PERCENT] = "<%%",
[anon_sym_LT_PERCENT] = "<%",
[anon_sym_LT_PERCENT_] = "<%_",
[anon_sym_PERCENT_GT] = "%>",
[anon_sym_DASH_PERCENT_GT] = "-%>",
[anon_sym__PERCENT_GT] = "_%>",
[anon_sym_LT_PERCENT_EQ] = "<%=",
[anon_sym_LT_PERCENT_DASH] = "<%-",
[anon_sym_EQ_PERCENT_GT] = "=%>",
[anon_sym_LT_PERCENT_POUND] = "<%#",
[anon_sym_LT_PERCENTgraphql] = "<%graphql",
[sym_template] = "template",
[sym_code] = "code",
[sym_content] = "content",
[sym_directive] = "directive",
[sym_output_directive] = "output_directive",
[sym_comment_directive] = "comment_directive",
[sym_graphql_directive] = "graphql_directive",
[aux_sym_template_repeat1] = "template_repeat1",
[aux_sym_code_repeat1] = "code_repeat1",
[aux_sym_content_repeat1] = "content_repeat1",
[alias_sym_comment] = "comment",
};
static TSSymbol ts_symbol_map[] = {
[ts_builtin_sym_end] = ts_builtin_sym_end,
[aux_sym_code_token1] = aux_sym_code_token1,
[anon_sym_PERCENT_PERCENT_GT] = anon_sym_PERCENT_PERCENT_GT,
[aux_sym_content_token1] = aux_sym_content_token1,
[anon_sym_LT_PERCENT_PERCENT] = anon_sym_LT_PERCENT_PERCENT,
[anon_sym_LT_PERCENT] = anon_sym_LT_PERCENT,
[anon_sym_LT_PERCENT_] = anon_sym_LT_PERCENT_,
[anon_sym_PERCENT_GT] = anon_sym_PERCENT_GT,
[anon_sym_DASH_PERCENT_GT] = anon_sym_DASH_PERCENT_GT,
[anon_sym__PERCENT_GT] = anon_sym__PERCENT_GT,
[anon_sym_LT_PERCENT_EQ] = anon_sym_LT_PERCENT_EQ,
[anon_sym_LT_PERCENT_DASH] = anon_sym_LT_PERCENT_DASH,
[anon_sym_EQ_PERCENT_GT] = anon_sym_EQ_PERCENT_GT,
[anon_sym_LT_PERCENT_POUND] = anon_sym_LT_PERCENT_POUND,
[anon_sym_LT_PERCENTgraphql] = anon_sym_LT_PERCENTgraphql,
[sym_template] = sym_template,
[sym_code] = sym_code,
[sym_content] = sym_content,
[sym_directive] = sym_directive,
[sym_output_directive] = sym_output_directive,
[sym_comment_directive] = sym_comment_directive,
[sym_graphql_directive] = sym_graphql_directive,
[aux_sym_template_repeat1] = aux_sym_template_repeat1,
[aux_sym_code_repeat1] = aux_sym_code_repeat1,
[aux_sym_content_repeat1] = aux_sym_content_repeat1,
[alias_sym_comment] = alias_sym_comment,
};
static const TSSymbolMetadata ts_symbol_metadata[] = {
[ts_builtin_sym_end] = {
.visible = false,
.named = true,
},
[aux_sym_code_token1] = {
.visible = false,
.named = false,
},
[anon_sym_PERCENT_PERCENT_GT] = {
.visible = true,
.named = false,
},
[aux_sym_content_token1] = {
.visible = false,
.named = false,
},
[anon_sym_LT_PERCENT_PERCENT] = {
.visible = true,
.named = false,
},
[anon_sym_LT_PERCENT] = {
.visible = true,
.named = false,
},
[anon_sym_LT_PERCENT_] = {
.visible = true,
.named = false,
},
[anon_sym_PERCENT_GT] = {
.visible = true,
.named = false,
},
[anon_sym_DASH_PERCENT_GT] = {
.visible = true,
.named = false,
},
[anon_sym__PERCENT_GT] = {
.visible = true,
.named = false,
},
[anon_sym_LT_PERCENT_EQ] = {
.visible = true,
.named = false,
},
[anon_sym_LT_PERCENT_DASH] = {
.visible = true,
.named = false,
},
[anon_sym_EQ_PERCENT_GT] = {
.visible = true,
.named = false,
},
[anon_sym_LT_PERCENT_POUND] = {
.visible = true,
.named = false,
},
[anon_sym_LT_PERCENTgraphql] = {
.visible = true,
.named = false,
},
[sym_template] = {
.visible = true,
.named = true,
},
[sym_code] = {
.visible = true,
.named = true,
},
[sym_content] = {
.visible = true,
.named = true,
},
[sym_directive] = {
.visible = true,
.named = true,
},
[sym_output_directive] = {
.visible = true,
.named = true,
},
[sym_comment_directive] = {
.visible = true,
.named = true,
},
[sym_graphql_directive] = {
.visible = true,
.named = true,
},
[aux_sym_template_repeat1] = {
.visible = false,
.named = false,
},
[aux_sym_code_repeat1] = {
.visible = false,
.named = false,
},
[aux_sym_content_repeat1] = {
.visible = false,
.named = false,
},
[alias_sym_comment] = {
.visible = true,
.named = true,
},
};
static TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = {
[0] = {0},
[1] = {
[1] = alias_sym_comment,
},
};
static uint16_t ts_non_terminal_alias_map[] = {
sym_code, 2,
sym_code,
alias_sym_comment,
0,
};
static bool ts_lex(TSLexer *lexer, TSStateId state) {
START_LEXER();
eof = lexer->eof(lexer);
switch (state) {
case 0:
if (eof) ADVANCE(21);
if (lookahead == '%') ADVANCE(1);
if (lookahead == '-') ADVANCE(6);
if (lookahead == '<') ADVANCE(2);
if (lookahead == '=') ADVANCE(8);
if (lookahead == '_') ADVANCE(9);
if (lookahead == '\t' ||
lookahead == '\n' ||
lookahead == '\r' ||
lookahead == ' ') SKIP(0)
END_STATE();
case 1:
if (lookahead == '%') ADVANCE(10);
if (lookahead == '>') ADVANCE(40);
END_STATE();
case 2:
if (lookahead == '%') ADVANCE(38);
END_STATE();
case 3:
if (lookahead == '%') ADVANCE(24);
if (lookahead == '-') ADVANCE(28);
if (lookahead == '=') ADVANCE(22);
if (lookahead == '_') ADVANCE(31);
if (lookahead == '\t' ||
lookahead == '\n' ||
lookahead == '\r' ||
lookahead == ' ') ADVANCE(25);
if (lookahead != 0) ADVANCE(32);
END_STATE();
case 4:
if (lookahead == '%') ADVANCE(24);
if (lookahead == '-') ADVANCE(28);
if (lookahead == '=') ADVANCE(30);
if (lookahead == '_') ADVANCE(22);
if (lookahead == '\t' ||
lookahead == '\n' ||
lookahead == '\r' ||
lookahead == ' ') ADVANCE(26);
if (lookahead != 0) ADVANCE(32);
END_STATE();
case 5:
if (lookahead == '%') ADVANCE(24);
if (lookahead == '-' ||
lookahead == '=' ||
lookahead == '_') ADVANCE(22);
if (lookahead == '\t' ||
lookahead == '\n' ||
lookahead == '\r' ||
lookahead == ' ') ADVANCE(27);
if (lookahead != 0) ADVANCE(32);
END_STATE();
case 6:
if (lookahead == '%') ADVANCE(11);
END_STATE();
case 7:
if (lookahead == '%') ADVANCE(23);
if (lookahead == '-' ||
lookahead == '=' ||
lookahead == '_') ADVANCE(22);
if (lookahead == '\t' ||
lookahead == '\n' ||
lookahead == '\r' ||
lookahead == ' ') ADVANCE(29);
if (lookahead != 0) ADVANCE(32);
END_STATE();
case 8:
if (lookahead == '%') ADVANCE(12);
END_STATE();
case 9:
if (lookahead == '%') ADVANCE(13);
END_STATE();
case 10:
if (lookahead == '>') ADVANCE(33);
END_STATE();
case 11:
if (lookahead == '>') ADVANCE(41);
END_STATE();
case 12:
if (lookahead == '>') ADVANCE(45);
END_STATE();
case 13:
if (lookahead == '>') ADVANCE(42);
END_STATE();
case 14:
if (lookahead == 'a') ADVANCE(17);
END_STATE();
case 15:
if (lookahead == 'h') ADVANCE(18);
END_STATE();
case 16:
if (lookahead == 'l') ADVANCE(47);
END_STATE();
case 17:
if (lookahead == 'p') ADVANCE(15);
END_STATE();
case 18:
if (lookahead == 'q') ADVANCE(16);
END_STATE();
case 19:
if (lookahead == 'r') ADVANCE(14);
END_STATE();
case 20:
if (eof) ADVANCE(21);
if (lookahead == '<') ADVANCE(34);
if (lookahead == '\t' ||
lookahead == '\n' ||
lookahead == '\r' ||
lookahead == ' ') ADVANCE(35);
if (lookahead != 0) ADVANCE(36);
END_STATE();
case 21:
ACCEPT_TOKEN(ts_builtin_sym_end);
END_STATE();
case 22:
ACCEPT_TOKEN(aux_sym_code_token1);
END_STATE();
case 23:
ACCEPT_TOKEN(aux_sym_code_token1);
if (lookahead == '%') ADVANCE(10);
END_STATE();
case 24:
ACCEPT_TOKEN(aux_sym_code_token1);
if (lookahead == '%') ADVANCE(10);
if (lookahead == '>') ADVANCE(40);
END_STATE();
case 25:
ACCEPT_TOKEN(aux_sym_code_token1);
if (lookahead == '%') ADVANCE(24);
if (lookahead == '-') ADVANCE(28);
if (lookahead == '=') ADVANCE(22);
if (lookahead == '_') ADVANCE(31);
if (lookahead == '\t' ||
lookahead == '\n' ||
lookahead == '\r' ||
lookahead == ' ') ADVANCE(25);
if (lookahead != 0) ADVANCE(32);
END_STATE();
case 26:
ACCEPT_TOKEN(aux_sym_code_token1);
if (lookahead == '%') ADVANCE(24);
if (lookahead == '-') ADVANCE(28);
if (lookahead == '=') ADVANCE(30);
if (lookahead == '_') ADVANCE(22);
if (lookahead == '\t' ||
lookahead == '\n' ||
lookahead == '\r' ||
lookahead == ' ') ADVANCE(26);
if (lookahead != 0) ADVANCE(32);
END_STATE();
case 27:
ACCEPT_TOKEN(aux_sym_code_token1);
if (lookahead == '%') ADVANCE(24);
if (lookahead == '-' ||
lookahead == '=' ||
lookahead == '_') ADVANCE(22);
if (lookahead == '\t' ||
lookahead == '\n' ||
lookahead == '\r' ||
lookahead == ' ') ADVANCE(27);
if (lookahead != 0) ADVANCE(32);
END_STATE();
case 28:
ACCEPT_TOKEN(aux_sym_code_token1);
if (lookahead == '%') ADVANCE(11);
END_STATE();
case 29:
ACCEPT_TOKEN(aux_sym_code_token1);
if (lookahead == '%') ADVANCE(23);
if (lookahead == '-' ||
lookahead == '=' ||
lookahead == '_') ADVANCE(22);
if (lookahead == '\t' ||
lookahead == '\n' ||
lookahead == '\r' ||
lookahead == ' ') ADVANCE(29);
if (lookahead != 0) ADVANCE(32);
END_STATE();
case 30:
ACCEPT_TOKEN(aux_sym_code_token1);
if (lookahead == '%') ADVANCE(12);
END_STATE();
case 31:
ACCEPT_TOKEN(aux_sym_code_token1);
if (lookahead == '%') ADVANCE(13);
END_STATE();
case 32:
ACCEPT_TOKEN(aux_sym_code_token1);
if (lookahead != 0 &&
lookahead != '%' &&
lookahead != '-' &&
lookahead != '=' &&
lookahead != '_') ADVANCE(32);
END_STATE();
case 33:
ACCEPT_TOKEN(anon_sym_PERCENT_PERCENT_GT);
END_STATE();
case 34:
ACCEPT_TOKEN(aux_sym_content_token1);
if (lookahead == '%') ADVANCE(38);
END_STATE();
case 35:
ACCEPT_TOKEN(aux_sym_content_token1);
if (lookahead == '<') ADVANCE(34);
if (lookahead == '\t' ||
lookahead == '\n' ||
lookahead == '\r' ||
lookahead == ' ') ADVANCE(35);
if (lookahead != 0) ADVANCE(36);
END_STATE();
case 36:
ACCEPT_TOKEN(aux_sym_content_token1);
if (lookahead != 0 &&
lookahead != '<') ADVANCE(36);
END_STATE();
case 37:
ACCEPT_TOKEN(anon_sym_LT_PERCENT_PERCENT);
END_STATE();
case 38:
ACCEPT_TOKEN(anon_sym_LT_PERCENT);
if (lookahead == '#') ADVANCE(46);
if (lookahead == '%') ADVANCE(37);
if (lookahead == '-') ADVANCE(44);
if (lookahead == '=') ADVANCE(43);
if (lookahead == '_') ADVANCE(39);
if (lookahead == 'g') ADVANCE(19);
END_STATE();
case 39:
ACCEPT_TOKEN(anon_sym_LT_PERCENT_);
END_STATE();
case 40:
ACCEPT_TOKEN(anon_sym_PERCENT_GT);
END_STATE();
case 41:
ACCEPT_TOKEN(anon_sym_DASH_PERCENT_GT);
END_STATE();
case 42:
ACCEPT_TOKEN(anon_sym__PERCENT_GT);
END_STATE();
case 43:
ACCEPT_TOKEN(anon_sym_LT_PERCENT_EQ);
END_STATE();
case 44:
ACCEPT_TOKEN(anon_sym_LT_PERCENT_DASH);
END_STATE();
case 45:
ACCEPT_TOKEN(anon_sym_EQ_PERCENT_GT);
END_STATE();
case 46:
ACCEPT_TOKEN(anon_sym_LT_PERCENT_POUND);
END_STATE();
case 47:
ACCEPT_TOKEN(anon_sym_LT_PERCENTgraphql);
END_STATE();
default:
return false;
}
}
static TSLexMode ts_lex_modes[STATE_COUNT] = {
[0] = {.lex_state = 0},
[1] = {.lex_state = 20},
[2] = {.lex_state = 20},
[3] = {.lex_state = 20},
[4] = {.lex_state = 20},
[5] = {.lex_state = 20},
[6] = {.lex_state = 20},
[7] = {.lex_state = 20},
[8] = {.lex_state = 20},
[9] = {.lex_state = 20},
[10] = {.lex_state = 3},
[11] = {.lex_state = 4},
[12] = {.lex_state = 3},
[13] = {.lex_state = 4},
[14] = {.lex_state = 5},
[15] = {.lex_state = 5},
[16] = {.lex_state = 7},
[17] = {.lex_state = 7},
[18] = {.lex_state = 7},
[19] = {.lex_state = 7},
[20] = {.lex_state = 0},
[21] = {.lex_state = 0},
[22] = {.lex_state = 0},
[23] = {.lex_state = 0},
[24] = {.lex_state = 0},
};
static uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
[0] = {
[ts_builtin_sym_end] = ACTIONS(1),
[anon_sym_PERCENT_PERCENT_GT] = ACTIONS(1),
[anon_sym_LT_PERCENT_PERCENT] = ACTIONS(1),
[anon_sym_LT_PERCENT] = ACTIONS(1),
[anon_sym_LT_PERCENT_] = ACTIONS(1),
[anon_sym_PERCENT_GT] = ACTIONS(1),
[anon_sym_DASH_PERCENT_GT] = ACTIONS(1),
[anon_sym__PERCENT_GT] = ACTIONS(1),
[anon_sym_LT_PERCENT_EQ] = ACTIONS(1),
[anon_sym_LT_PERCENT_DASH] = ACTIONS(1),
[anon_sym_EQ_PERCENT_GT] = ACTIONS(1),
[anon_sym_LT_PERCENT_POUND] = ACTIONS(1),
[anon_sym_LT_PERCENTgraphql] = ACTIONS(1),
},
[1] = {
[sym_template] = STATE(22),
[sym_content] = STATE(3),
[sym_directive] = STATE(3),
[sym_output_directive] = STATE(3),
[sym_comment_directive] = STATE(3),
[sym_graphql_directive] = STATE(3),
[aux_sym_template_repeat1] = STATE(3),
[aux_sym_content_repeat1] = STATE(4),
[ts_builtin_sym_end] = ACTIONS(3),
[aux_sym_content_token1] = ACTIONS(5),
[anon_sym_LT_PERCENT_PERCENT] = ACTIONS(5),
[anon_sym_LT_PERCENT] = ACTIONS(7),
[anon_sym_LT_PERCENT_] = ACTIONS(7),
[anon_sym_LT_PERCENT_EQ] = ACTIONS(9),
[anon_sym_LT_PERCENT_DASH] = ACTIONS(9),
[anon_sym_LT_PERCENT_POUND] = ACTIONS(11),
[anon_sym_LT_PERCENTgraphql] = ACTIONS(13),
},
[2] = {
[sym_content] = STATE(2),
[sym_directive] = STATE(2),
[sym_output_directive] = STATE(2),
[sym_comment_directive] = STATE(2),
[sym_graphql_directive] = STATE(2),
[aux_sym_template_repeat1] = STATE(2),
[aux_sym_content_repeat1] = STATE(4),
[ts_builtin_sym_end] = ACTIONS(15),
[aux_sym_content_token1] = ACTIONS(17),
[anon_sym_LT_PERCENT_PERCENT] = ACTIONS(17),
[anon_sym_LT_PERCENT] = ACTIONS(20),
[anon_sym_LT_PERCENT_] = ACTIONS(20),
[anon_sym_LT_PERCENT_EQ] = ACTIONS(23),
[anon_sym_LT_PERCENT_DASH] = ACTIONS(23),
[anon_sym_LT_PERCENT_POUND] = ACTIONS(26),
[anon_sym_LT_PERCENTgraphql] = ACTIONS(29),
},
[3] = {
[sym_content] = STATE(2),
[sym_directive] = STATE(2),
[sym_output_directive] = STATE(2),
[sym_comment_directive] = STATE(2),
[sym_graphql_directive] = STATE(2),
[aux_sym_template_repeat1] = STATE(2),
[aux_sym_content_repeat1] = STATE(4),
[ts_builtin_sym_end] = ACTIONS(32),
[aux_sym_content_token1] = ACTIONS(5),
[anon_sym_LT_PERCENT_PERCENT] = ACTIONS(5),
[anon_sym_LT_PERCENT] = ACTIONS(7),
[anon_sym_LT_PERCENT_] = ACTIONS(7),
[anon_sym_LT_PERCENT_EQ] = ACTIONS(9),
[anon_sym_LT_PERCENT_DASH] = ACTIONS(9),
[anon_sym_LT_PERCENT_POUND] = ACTIONS(11),
[anon_sym_LT_PERCENTgraphql] = ACTIONS(13),
},
};
static uint16_t ts_small_parse_table[] = {
[0] = 4,
ACTIONS(34), 1,
ts_builtin_sym_end,
STATE(5), 1,
aux_sym_content_repeat1,
ACTIONS(36), 2,
aux_sym_content_token1,
anon_sym_LT_PERCENT_PERCENT,
ACTIONS(38), 6,
anon_sym_LT_PERCENT,
anon_sym_LT_PERCENT_,
anon_sym_LT_PERCENT_EQ,
anon_sym_LT_PERCENT_DASH,
anon_sym_LT_PERCENT_POUND,
anon_sym_LT_PERCENTgraphql,
[19] = 4,
ACTIONS(40), 1,
ts_builtin_sym_end,
STATE(5), 1,
aux_sym_content_repeat1,
ACTIONS(42), 2,
aux_sym_content_token1,
anon_sym_LT_PERCENT_PERCENT,
ACTIONS(45), 6,
anon_sym_LT_PERCENT,
anon_sym_LT_PERCENT_,
anon_sym_LT_PERCENT_EQ,
anon_sym_LT_PERCENT_DASH,
anon_sym_LT_PERCENT_POUND,
anon_sym_LT_PERCENTgraphql,
[38] = 2,
ACTIONS(47), 1,
ts_builtin_sym_end,
ACTIONS(49), 8,
aux_sym_content_token1,
anon_sym_LT_PERCENT_PERCENT,
anon_sym_LT_PERCENT,
anon_sym_LT_PERCENT_,
anon_sym_LT_PERCENT_EQ,
anon_sym_LT_PERCENT_DASH,
anon_sym_LT_PERCENT_POUND,
anon_sym_LT_PERCENTgraphql,
[52] = 2,
ACTIONS(51), 1,
ts_builtin_sym_end,
ACTIONS(53), 8,
aux_sym_content_token1,
anon_sym_LT_PERCENT_PERCENT,
anon_sym_LT_PERCENT,
anon_sym_LT_PERCENT_,
anon_sym_LT_PERCENT_EQ,
anon_sym_LT_PERCENT_DASH,
anon_sym_LT_PERCENT_POUND,
anon_sym_LT_PERCENTgraphql,
[66] = 2,
ACTIONS(55), 1,
ts_builtin_sym_end,
ACTIONS(57), 8,
aux_sym_content_token1,
anon_sym_LT_PERCENT_PERCENT,
anon_sym_LT_PERCENT,
anon_sym_LT_PERCENT_,
anon_sym_LT_PERCENT_EQ,
anon_sym_LT_PERCENT_DASH,
anon_sym_LT_PERCENT_POUND,
anon_sym_LT_PERCENTgraphql,
[80] = 2,
ACTIONS(59), 1,
ts_builtin_sym_end,
ACTIONS(61), 8,
aux_sym_content_token1,
anon_sym_LT_PERCENT_PERCENT,
anon_sym_LT_PERCENT,
anon_sym_LT_PERCENT_,
anon_sym_LT_PERCENT_EQ,
anon_sym_LT_PERCENT_DASH,
anon_sym_LT_PERCENT_POUND,
anon_sym_LT_PERCENTgraphql,
[94] = 3,
STATE(12), 1,
aux_sym_code_repeat1,
ACTIONS(63), 2,
aux_sym_code_token1,
anon_sym_PERCENT_PERCENT_GT,
ACTIONS(65), 3,
anon_sym_PERCENT_GT,
anon_sym_DASH_PERCENT_GT,
anon_sym__PERCENT_GT,
[107] = 3,
STATE(11), 1,
aux_sym_code_repeat1,
ACTIONS(67), 2,
aux_sym_code_token1,
anon_sym_PERCENT_PERCENT_GT,
ACTIONS(70), 3,
anon_sym_PERCENT_GT,
anon_sym_DASH_PERCENT_GT,
anon_sym_EQ_PERCENT_GT,
[120] = 3,
STATE(12), 1,
aux_sym_code_repeat1,
ACTIONS(72), 2,
aux_sym_code_token1,
anon_sym_PERCENT_PERCENT_GT,
ACTIONS(70), 3,
anon_sym_PERCENT_GT,
anon_sym_DASH_PERCENT_GT,
anon_sym__PERCENT_GT,
[133] = 3,
STATE(11), 1,
aux_sym_code_repeat1,
ACTIONS(75), 2,
aux_sym_code_token1,
anon_sym_PERCENT_PERCENT_GT,
ACTIONS(65), 3,
anon_sym_PERCENT_GT,
anon_sym_DASH_PERCENT_GT,
anon_sym_EQ_PERCENT_GT,
[146] = 3,
ACTIONS(70), 1,
anon_sym_PERCENT_GT,
STATE(14), 1,
aux_sym_code_repeat1,
ACTIONS(77), 2,
aux_sym_code_token1,
anon_sym_PERCENT_PERCENT_GT,
[157] = 3,
ACTIONS(65), 1,
anon_sym_PERCENT_GT,
STATE(14), 1,
aux_sym_code_repeat1,
ACTIONS(80), 2,
aux_sym_code_token1,
anon_sym_PERCENT_PERCENT_GT,
[168] = 3,
STATE(10), 1,
aux_sym_code_repeat1,
STATE(21), 1,
sym_code,
ACTIONS(82), 2,
aux_sym_code_token1,
anon_sym_PERCENT_PERCENT_GT,
[179] = 3,
STATE(15), 1,
aux_sym_code_repeat1,
STATE(24), 1,
sym_code,
ACTIONS(84), 2,
aux_sym_code_token1,
anon_sym_PERCENT_PERCENT_GT,
[190] = 3,
STATE(15), 1,
aux_sym_code_repeat1,
STATE(23), 1,
sym_code,
ACTIONS(84), 2,
aux_sym_code_token1,
anon_sym_PERCENT_PERCENT_GT,
[201] = 3,
STATE(13), 1,
aux_sym_code_repeat1,
STATE(20), 1,
sym_code,
ACTIONS(86), 2,
aux_sym_code_token1,
anon_sym_PERCENT_PERCENT_GT,
[212] = 1,
ACTIONS(88), 3,
anon_sym_PERCENT_GT,
anon_sym_DASH_PERCENT_GT,
anon_sym_EQ_PERCENT_GT,
[218] = 1,
ACTIONS(90), 3,
anon_sym_PERCENT_GT,
anon_sym_DASH_PERCENT_GT,
anon_sym__PERCENT_GT,
[224] = 1,
ACTIONS(92), 1,
ts_builtin_sym_end,
[228] = 1,
ACTIONS(94), 1,
anon_sym_PERCENT_GT,
[232] = 1,
ACTIONS(96), 1,
anon_sym_PERCENT_GT,
};
static uint32_t ts_small_parse_table_map[] = {
[SMALL_STATE(4)] = 0,
[SMALL_STATE(5)] = 19,
[SMALL_STATE(6)] = 38,
[SMALL_STATE(7)] = 52,
[SMALL_STATE(8)] = 66,
[SMALL_STATE(9)] = 80,
[SMALL_STATE(10)] = 94,
[SMALL_STATE(11)] = 107,
[SMALL_STATE(12)] = 120,
[SMALL_STATE(13)] = 133,
[SMALL_STATE(14)] = 146,
[SMALL_STATE(15)] = 157,
[SMALL_STATE(16)] = 168,
[SMALL_STATE(17)] = 179,
[SMALL_STATE(18)] = 190,
[SMALL_STATE(19)] = 201,
[SMALL_STATE(20)] = 212,
[SMALL_STATE(21)] = 218,
[SMALL_STATE(22)] = 224,
[SMALL_STATE(23)] = 228,
[SMALL_STATE(24)] = 232,
};
static TSParseActionEntry ts_parse_actions[] = {
[0] = {.entry = {.count = 0, .reusable = false}},
[1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(),
[3] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template, 0),
[5] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4),
[7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(16),
[9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(19),
[11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(18),
[13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17),
[15] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_repeat1, 2),
[17] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_template_repeat1, 2), SHIFT_REPEAT(4),
[20] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_template_repeat1, 2), SHIFT_REPEAT(16),
[23] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_template_repeat1, 2), SHIFT_REPEAT(19),
[26] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_template_repeat1, 2), SHIFT_REPEAT(18),
[29] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_template_repeat1, 2), SHIFT_REPEAT(17),
[32] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template, 1),
[34] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_content, 1),
[36] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5),
[38] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_content, 1),
[40] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_content_repeat1, 2),
[42] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_content_repeat1, 2), SHIFT_REPEAT(5),
[45] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_content_repeat1, 2),
[47] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_graphql_directive, 3),
[49] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_graphql_directive, 3),
[51] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment_directive, 3, .production_id = 1),
[53] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comment_directive, 3, .production_id = 1),
[55] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_output_directive, 3),
[57] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_output_directive, 3),
[59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_directive, 3),
[61] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_directive, 3),
[63] = {.entry = {.count = 1, .reusable = false}}, SHIFT(12),
[65] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_code, 1),
[67] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_code_repeat1, 2), SHIFT_REPEAT(11),
[70] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_code_repeat1, 2),
[72] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_code_repeat1, 2), SHIFT_REPEAT(12),
[75] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11),
[77] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_code_repeat1, 2), SHIFT_REPEAT(14),
[80] = {.entry = {.count = 1, .reusable = false}}, SHIFT(14),
[82] = {.entry = {.count = 1, .reusable = false}}, SHIFT(10),
[84] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15),
[86] = {.entry = {.count = 1, .reusable = false}}, SHIFT(13),
[88] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8),
[90] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9),
[92] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(),
[94] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7),
[96] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6),
};
#ifdef __cplusplus
extern "C" {
#endif
#ifdef _WIN32
#define extern __declspec(dllexport)
#endif
extern const TSLanguage *tree_sitter_embedded_template(void) {
static 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 = (const uint16_t *)ts_parse_table,
.small_parse_table = (const uint16_t *)ts_small_parse_table,
.small_parse_table_map = (const uint32_t *)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 = (const TSSymbol *)ts_alias_sequences,
.lex_modes = ts_lex_modes,
.lex_fn = ts_lex,
};
return &language;
}
#ifdef __cplusplus
}
#endif