/* Automatically @generated by tree-sitter */ #include "tree_sitter/parser.h" #if defined(__GNUC__) || defined(__clang__) #pragma GCC diagnostic ignored "-Wmissing-field-initializers" #endif #define LANGUAGE_VERSION 14 #define STATE_COUNT 55 #define LARGE_STATE_COUNT 2 #define SYMBOL_COUNT 45 #define ALIAS_COUNT 0 #define TOKEN_COUNT 24 #define EXTERNAL_TOKEN_COUNT 0 #define FIELD_COUNT 8 #define MAX_ALIAS_SEQUENCE_LENGTH 4 #define MAX_RESERVED_WORD_SET_SIZE 0 #define PRODUCTION_ID_COUNT 5 #define SUPERTYPE_COUNT 0 enum ts_symbol_identifiers { aux_sym_items_token1 = 1, anon_sym_POUND = 2, sym_comment_body = 3, anon_sym_LBRACE = 4, anon_sym_RBRACE = 5, anon_sym_EQ = 6, anon_sym_STAR_EQ = 7, anon_sym_PLUS_EQ = 8, anon_sym_DASH_EQ = 9, anon_sym_LPAREN = 10, anon_sym_COMMA = 11, anon_sym_RPAREN = 12, anon_sym_BANG = 13, anon_sym_COLON = 14, anon_sym_PIPE = 15, anon_sym_else = 16, sym_expression_raw_frag = 17, anon_sym_DOT = 18, sym_identifier = 19, aux_sym_string_token1 = 20, aux_sym_string_token2 = 21, anon_sym_DOLLAR_DOLLAR_LBRACE = 22, sym_interpolation_body = 23, sym_source_file = 24, sym_item = 25, sym_comment = 26, sym_statement = 27, sym_block = 28, sym_declaration = 29, sym_call = 30, sym_call_arguments = 31, sym_conditional = 32, sym_conditional_expression = 33, sym_unary_conditional_expression = 34, sym_binary_conditional_expression = 35, sym_conditional_else = 36, sym_expression = 37, sym_expression_raw = 38, sym_variable = 39, sym_string = 40, sym_interpolation = 41, aux_sym_items_repeat1 = 42, aux_sym_call_arguments_repeat1 = 43, aux_sym_conditional_repeat1 = 44, }; static const char * const ts_symbol_names[] = { [ts_builtin_sym_end] = "end", [aux_sym_items_token1] = "items_token1", [anon_sym_POUND] = "#", [sym_comment_body] = "comment_body", [anon_sym_LBRACE] = "{", [anon_sym_RBRACE] = "}", [anon_sym_EQ] = "=", [anon_sym_STAR_EQ] = "*=", [anon_sym_PLUS_EQ] = "+=", [anon_sym_DASH_EQ] = "-=", [anon_sym_LPAREN] = "(", [anon_sym_COMMA] = ",", [anon_sym_RPAREN] = ")", [anon_sym_BANG] = "!", [anon_sym_COLON] = ":", [anon_sym_PIPE] = "|", [anon_sym_else] = "else", [sym_expression_raw_frag] = "expression_raw_frag", [anon_sym_DOT] = ".", [sym_identifier] = "identifier", [aux_sym_string_token1] = "string_token1", [aux_sym_string_token2] = "string_token2", [anon_sym_DOLLAR_DOLLAR_LBRACE] = "$${", [sym_interpolation_body] = "interpolation_body", [sym_source_file] = "source_file", [sym_item] = "item", [sym_comment] = "comment", [sym_statement] = "statement", [sym_block] = "block", [sym_declaration] = "declaration", [sym_call] = "call", [sym_call_arguments] = "call_arguments", [sym_conditional] = "conditional", [sym_conditional_expression] = "conditional_expression", [sym_unary_conditional_expression] = "unary_conditional_expression", [sym_binary_conditional_expression] = "binary_conditional_expression", [sym_conditional_else] = "conditional_else", [sym_expression] = "expression", [sym_expression_raw] = "expression_raw", [sym_variable] = "variable", [sym_string] = "string", [sym_interpolation] = "interpolation", [aux_sym_items_repeat1] = "items_repeat1", [aux_sym_call_arguments_repeat1] = "call_arguments_repeat1", [aux_sym_conditional_repeat1] = "conditional_repeat1", }; static const TSSymbol ts_symbol_map[] = { [ts_builtin_sym_end] = ts_builtin_sym_end, [aux_sym_items_token1] = aux_sym_items_token1, [anon_sym_POUND] = anon_sym_POUND, [sym_comment_body] = sym_comment_body, [anon_sym_LBRACE] = anon_sym_LBRACE, [anon_sym_RBRACE] = anon_sym_RBRACE, [anon_sym_EQ] = anon_sym_EQ, [anon_sym_STAR_EQ] = anon_sym_STAR_EQ, [anon_sym_PLUS_EQ] = anon_sym_PLUS_EQ, [anon_sym_DASH_EQ] = anon_sym_DASH_EQ, [anon_sym_LPAREN] = anon_sym_LPAREN, [anon_sym_COMMA] = anon_sym_COMMA, [anon_sym_RPAREN] = anon_sym_RPAREN, [anon_sym_BANG] = anon_sym_BANG, [anon_sym_COLON] = anon_sym_COLON, [anon_sym_PIPE] = anon_sym_PIPE, [anon_sym_else] = anon_sym_else, [sym_expression_raw_frag] = sym_expression_raw_frag, [anon_sym_DOT] = anon_sym_DOT, [sym_identifier] = sym_identifier, [aux_sym_string_token1] = aux_sym_string_token1, [aux_sym_string_token2] = aux_sym_string_token2, [anon_sym_DOLLAR_DOLLAR_LBRACE] = anon_sym_DOLLAR_DOLLAR_LBRACE, [sym_interpolation_body] = sym_interpolation_body, [sym_source_file] = sym_source_file, [sym_item] = sym_item, [sym_comment] = sym_comment, [sym_statement] = sym_statement, [sym_block] = sym_block, [sym_declaration] = sym_declaration, [sym_call] = sym_call, [sym_call_arguments] = sym_call_arguments, [sym_conditional] = sym_conditional, [sym_conditional_expression] = sym_conditional_expression, [sym_unary_conditional_expression] = sym_unary_conditional_expression, [sym_binary_conditional_expression] = sym_binary_conditional_expression, [sym_conditional_else] = sym_conditional_else, [sym_expression] = sym_expression, [sym_expression_raw] = sym_expression_raw, [sym_variable] = sym_variable, [sym_string] = sym_string, [sym_interpolation] = sym_interpolation, [aux_sym_items_repeat1] = aux_sym_items_repeat1, [aux_sym_call_arguments_repeat1] = aux_sym_call_arguments_repeat1, [aux_sym_conditional_repeat1] = aux_sym_conditional_repeat1, }; static const TSSymbolMetadata ts_symbol_metadata[] = { [ts_builtin_sym_end] = { .visible = false, .named = true, }, [aux_sym_items_token1] = { .visible = false, .named = false, }, [anon_sym_POUND] = { .visible = true, .named = false, }, [sym_comment_body] = { .visible = true, .named = true, }, [anon_sym_LBRACE] = { .visible = true, .named = false, }, [anon_sym_RBRACE] = { .visible = true, .named = false, }, [anon_sym_EQ] = { .visible = true, .named = false, }, [anon_sym_STAR_EQ] = { .visible = true, .named = false, }, [anon_sym_PLUS_EQ] = { .visible = true, .named = false, }, [anon_sym_DASH_EQ] = { .visible = true, .named = false, }, [anon_sym_LPAREN] = { .visible = true, .named = false, }, [anon_sym_COMMA] = { .visible = true, .named = false, }, [anon_sym_RPAREN] = { .visible = true, .named = false, }, [anon_sym_BANG] = { .visible = true, .named = false, }, [anon_sym_COLON] = { .visible = true, .named = false, }, [anon_sym_PIPE] = { .visible = true, .named = false, }, [anon_sym_else] = { .visible = true, .named = false, }, [sym_expression_raw_frag] = { .visible = true, .named = true, }, [anon_sym_DOT] = { .visible = true, .named = false, }, [sym_identifier] = { .visible = true, .named = true, }, [aux_sym_string_token1] = { .visible = false, .named = false, }, [aux_sym_string_token2] = { .visible = false, .named = false, }, [anon_sym_DOLLAR_DOLLAR_LBRACE] = { .visible = true, .named = false, }, [sym_interpolation_body] = { .visible = true, .named = true, }, [sym_source_file] = { .visible = true, .named = true, }, [sym_item] = { .visible = true, .named = true, }, [sym_comment] = { .visible = true, .named = true, }, [sym_statement] = { .visible = true, .named = true, }, [sym_block] = { .visible = true, .named = true, }, [sym_declaration] = { .visible = true, .named = true, }, [sym_call] = { .visible = true, .named = true, }, [sym_call_arguments] = { .visible = true, .named = true, }, [sym_conditional] = { .visible = true, .named = true, }, [sym_conditional_expression] = { .visible = true, .named = true, }, [sym_unary_conditional_expression] = { .visible = true, .named = true, }, [sym_binary_conditional_expression] = { .visible = true, .named = true, }, [sym_conditional_else] = { .visible = true, .named = true, }, [sym_expression] = { .visible = true, .named = true, }, [sym_expression_raw] = { .visible = true, .named = true, }, [sym_variable] = { .visible = true, .named = true, }, [sym_string] = { .visible = true, .named = true, }, [sym_interpolation] = { .visible = true, .named = true, }, [aux_sym_items_repeat1] = { .visible = false, .named = false, }, [aux_sym_call_arguments_repeat1] = { .visible = false, .named = false, }, [aux_sym_conditional_repeat1] = { .visible = false, .named = false, }, }; enum ts_field_identifiers { field_arguments = 1, field_body = 2, field_end = 3, field_function = 4, field_left = 5, field_op = 6, field_right = 7, field_start = 8, }; static const char * const ts_field_names[] = { [0] = NULL, [field_arguments] = "arguments", [field_body] = "body", [field_end] = "end", [field_function] = "function", [field_left] = "left", [field_op] = "op", [field_right] = "right", [field_start] = "start", }; static const TSMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [1] = {.index = 0, .length = 1}, [2] = {.index = 1, .length = 2}, [3] = {.index = 3, .length = 3}, [4] = {.index = 6, .length = 3}, }; static const TSFieldMapEntry ts_field_map_entries[] = { [0] = {field_body, 1}, [1] = {field_arguments, 1}, {field_function, 0}, [3] = {field_left, 0}, {field_op, 1}, {field_right, 2}, [6] = {field_body, 1}, {field_end, 2}, {field_start, 0}, }; static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = { [0] = {0}, }; static const uint16_t ts_non_terminal_alias_map[] = { 0, }; static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [0] = 0, [1] = 1, [2] = 2, [3] = 3, [4] = 4, [5] = 5, [6] = 6, [7] = 7, [8] = 8, [9] = 9, [10] = 10, [11] = 11, [12] = 12, [13] = 13, [14] = 14, [15] = 15, [16] = 16, [17] = 17, [18] = 18, [19] = 19, [20] = 20, [21] = 21, [22] = 22, [23] = 23, [24] = 24, [25] = 25, [26] = 26, [27] = 27, [28] = 28, [29] = 29, [30] = 30, [31] = 31, [32] = 32, [33] = 33, [34] = 34, [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] = 52, [53] = 53, [54] = 54, }; static const TSCharacterRange sym_expression_raw_frag_character_set_1[] = { {0, 0x08}, {0x0e, 0x1f}, {'!', '\''}, {'*', '+'}, {'-', '9'}, {';', 'Z'}, {'^', 'z'}, {'~', 0x17e}, {0x180, 0x2129}, {0x212b, 0x10ffff}, }; static bool ts_lex(TSLexer *lexer, TSStateId state) { START_LEXER(); eof = lexer->eof(lexer); switch (state) { case 0: if (eof) ADVANCE(19); ADVANCE_MAP( '\n', 20, '!', 33, '"', 47, '#', 21, '$', 6, '(', 30, ')', 32, '*', 7, '+', 8, ',', 31, '-', 9, '.', 42, ':', 34, '=', 26, ); if (lookahead == '\\') SKIP(16); if (lookahead == 'e') ADVANCE(44); if (lookahead == '{') ADVANCE(24); if (lookahead == '|') ADVANCE(35); if (lookahead == '}') ADVANCE(25); if (lookahead == '\t' || lookahead == ' ') SKIP(0); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(46); END_STATE(); case 1: if (lookahead == '\n') ADVANCE(20); if (lookahead == '"') ADVANCE(41); if (lookahead == '$') ADVANCE(38); if (lookahead == ')') ADVANCE(32); if (lookahead == '\\') SKIP(4); if (lookahead == '\t' || lookahead == ' ') SKIP(1); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(40); if ((!eof && set_contains(sym_expression_raw_frag_character_set_1, 10, lookahead))) ADVANCE(41); END_STATE(); case 2: if (lookahead == '\n') ADVANCE(20); if (lookahead == '\\') ADVANCE(23); if (lookahead == '\t' || lookahead == ' ') ADVANCE(22); if (lookahead != 0 && lookahead != 0x17f && lookahead != 0x212a) ADVANCE(23); END_STATE(); case 3: if (lookahead == '\n') ADVANCE(20); if (lookahead == '\\') SKIP(5); if (lookahead == 'e') ADVANCE(13); if (lookahead == '\t' || lookahead == ' ') SKIP(3); END_STATE(); case 4: if (lookahead == '\n') SKIP(1); END_STATE(); case 5: if (lookahead == '\n') SKIP(3); END_STATE(); case 6: if (lookahead == '$') ADVANCE(15); END_STATE(); case 7: if (lookahead == '=') ADVANCE(27); END_STATE(); case 8: if (lookahead == '=') ADVANCE(28); END_STATE(); case 9: if (lookahead == '=') ADVANCE(29); END_STATE(); case 10: if (lookahead == '\\') ADVANCE(48); if (lookahead == '\t' || lookahead == ' ') ADVANCE(49); if (lookahead != 0 && lookahead != '"' && lookahead != 0x17f && lookahead != 0x212a) ADVANCE(50); END_STATE(); case 11: if (lookahead == '\\') ADVANCE(52); if (lookahead == '\t' || lookahead == ' ') ADVANCE(53); if (lookahead != 0 && lookahead != '{' && lookahead != '}' && lookahead != 0x17f && lookahead != 0x212a) ADVANCE(54); END_STATE(); case 12: if (lookahead == 'e') ADVANCE(36); END_STATE(); case 13: if (lookahead == 'l') ADVANCE(14); END_STATE(); case 14: if (lookahead == 's') ADVANCE(12); END_STATE(); case 15: if (lookahead == '{') ADVANCE(51); END_STATE(); case 16: if (eof) ADVANCE(19); if (lookahead == '\n') SKIP(0); END_STATE(); case 17: if (eof) ADVANCE(19); if (lookahead == '\n') ADVANCE(20); if (lookahead == '!') ADVANCE(33); if (lookahead == '#') ADVANCE(21); if (lookahead == '\\') SKIP(18); if (lookahead == '}') ADVANCE(25); if (lookahead == '\t' || lookahead == ' ') SKIP(17); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(46); END_STATE(); case 18: if (eof) ADVANCE(19); if (lookahead == '\n') SKIP(17); END_STATE(); case 19: ACCEPT_TOKEN(ts_builtin_sym_end); END_STATE(); case 20: ACCEPT_TOKEN(aux_sym_items_token1); END_STATE(); case 21: ACCEPT_TOKEN(anon_sym_POUND); END_STATE(); case 22: ACCEPT_TOKEN(sym_comment_body); if (lookahead == '\\') ADVANCE(23); if (lookahead == '\t' || lookahead == ' ') ADVANCE(22); if (lookahead != 0 && lookahead != '\t' && lookahead != '\n' && lookahead != 0x17f && lookahead != 0x212a) ADVANCE(23); END_STATE(); case 23: ACCEPT_TOKEN(sym_comment_body); if (lookahead != 0 && lookahead != '\n' && lookahead != 0x17f && lookahead != 0x212a) ADVANCE(23); END_STATE(); case 24: ACCEPT_TOKEN(anon_sym_LBRACE); END_STATE(); case 25: ACCEPT_TOKEN(anon_sym_RBRACE); END_STATE(); case 26: ACCEPT_TOKEN(anon_sym_EQ); END_STATE(); case 27: ACCEPT_TOKEN(anon_sym_STAR_EQ); END_STATE(); case 28: ACCEPT_TOKEN(anon_sym_PLUS_EQ); END_STATE(); case 29: ACCEPT_TOKEN(anon_sym_DASH_EQ); END_STATE(); case 30: ACCEPT_TOKEN(anon_sym_LPAREN); END_STATE(); case 31: ACCEPT_TOKEN(anon_sym_COMMA); END_STATE(); case 32: ACCEPT_TOKEN(anon_sym_RPAREN); END_STATE(); case 33: ACCEPT_TOKEN(anon_sym_BANG); END_STATE(); case 34: ACCEPT_TOKEN(anon_sym_COLON); END_STATE(); case 35: ACCEPT_TOKEN(anon_sym_PIPE); END_STATE(); case 36: ACCEPT_TOKEN(anon_sym_else); END_STATE(); case 37: ACCEPT_TOKEN(anon_sym_else); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(46); END_STATE(); case 38: ACCEPT_TOKEN(sym_expression_raw_frag); if (lookahead == '$') ADVANCE(39); if ((!eof && set_contains(sym_expression_raw_frag_character_set_1, 10, lookahead))) ADVANCE(41); END_STATE(); case 39: ACCEPT_TOKEN(sym_expression_raw_frag); if (lookahead == '{') ADVANCE(51); if ((!eof && set_contains(sym_expression_raw_frag_character_set_1, 10, lookahead))) ADVANCE(41); END_STATE(); case 40: ACCEPT_TOKEN(sym_expression_raw_frag); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(40); if ((!eof && set_contains(sym_expression_raw_frag_character_set_1, 10, lookahead))) ADVANCE(41); END_STATE(); case 41: ACCEPT_TOKEN(sym_expression_raw_frag); if ((!eof && set_contains(sym_expression_raw_frag_character_set_1, 10, lookahead))) ADVANCE(41); END_STATE(); case 42: ACCEPT_TOKEN(anon_sym_DOT); END_STATE(); case 43: ACCEPT_TOKEN(sym_identifier); if (lookahead == 'e') ADVANCE(37); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(46); END_STATE(); case 44: ACCEPT_TOKEN(sym_identifier); if (lookahead == 'l') ADVANCE(45); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(46); END_STATE(); case 45: ACCEPT_TOKEN(sym_identifier); if (lookahead == 's') ADVANCE(43); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(46); END_STATE(); case 46: ACCEPT_TOKEN(sym_identifier); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(46); END_STATE(); case 47: ACCEPT_TOKEN(aux_sym_string_token1); END_STATE(); case 48: ACCEPT_TOKEN(aux_sym_string_token2); if (lookahead == '\n') ADVANCE(49); if (lookahead != 0 && lookahead != '"' && lookahead != 0x17f && lookahead != 0x212a) ADVANCE(50); END_STATE(); case 49: ACCEPT_TOKEN(aux_sym_string_token2); if (lookahead == '\\') ADVANCE(48); if (lookahead == '\t' || lookahead == ' ') ADVANCE(49); if (lookahead != 0 && lookahead != '"' && lookahead != 0x17f && lookahead != 0x212a) ADVANCE(50); END_STATE(); case 50: ACCEPT_TOKEN(aux_sym_string_token2); if (lookahead != 0 && lookahead != '"' && lookahead != 0x17f && lookahead != 0x212a) ADVANCE(50); END_STATE(); case 51: ACCEPT_TOKEN(anon_sym_DOLLAR_DOLLAR_LBRACE); END_STATE(); case 52: ACCEPT_TOKEN(sym_interpolation_body); if (lookahead == '\n') ADVANCE(53); if (lookahead != 0 && lookahead != '{' && lookahead != '}' && lookahead != 0x17f && lookahead != 0x212a) ADVANCE(54); END_STATE(); case 53: ACCEPT_TOKEN(sym_interpolation_body); if (lookahead == '\\') ADVANCE(52); if (lookahead == '\t' || lookahead == ' ') ADVANCE(53); if (lookahead != 0 && lookahead != '{' && lookahead != '}' && lookahead != 0x17f && lookahead != 0x212a) ADVANCE(54); END_STATE(); case 54: ACCEPT_TOKEN(sym_interpolation_body); if (lookahead != 0 && lookahead != '{' && lookahead != '}' && lookahead != 0x17f && lookahead != 0x212a) ADVANCE(54); END_STATE(); default: return false; } } static const TSLexMode ts_lex_modes[STATE_COUNT] = { [0] = {.lex_state = 0}, [1] = {.lex_state = 17}, [2] = {.lex_state = 17}, [3] = {.lex_state = 17}, [4] = {.lex_state = 17}, [5] = {.lex_state = 17}, [6] = {.lex_state = 0}, [7] = {.lex_state = 1}, [8] = {.lex_state = 0}, [9] = {.lex_state = 0}, [10] = {.lex_state = 1}, [11] = {.lex_state = 1}, [12] = {.lex_state = 17}, [13] = {.lex_state = 17}, [14] = {.lex_state = 0}, [15] = {.lex_state = 17}, [16] = {.lex_state = 17}, [17] = {.lex_state = 17}, [18] = {.lex_state = 0}, [19] = {.lex_state = 0}, [20] = {.lex_state = 3}, [21] = {.lex_state = 0}, [22] = {.lex_state = 0}, [23] = {.lex_state = 3}, [24] = {.lex_state = 0}, [25] = {.lex_state = 0}, [26] = {.lex_state = 3}, [27] = {.lex_state = 0}, [28] = {.lex_state = 0}, [29] = {.lex_state = 0}, [30] = {.lex_state = 0}, [31] = {.lex_state = 0}, [32] = {.lex_state = 0}, [33] = {.lex_state = 0}, [34] = {.lex_state = 0}, [35] = {.lex_state = 0}, [36] = {.lex_state = 0}, [37] = {.lex_state = 0}, [38] = {.lex_state = 0}, [39] = {.lex_state = 0}, [40] = {.lex_state = 2}, [41] = {.lex_state = 17}, [42] = {.lex_state = 0}, [43] = {.lex_state = 3}, [44] = {.lex_state = 3}, [45] = {.lex_state = 3}, [46] = {.lex_state = 0}, [47] = {.lex_state = 0}, [48] = {.lex_state = 0}, [49] = {.lex_state = 0}, [50] = {.lex_state = 0}, [51] = {.lex_state = 0}, [52] = {.lex_state = 10}, [53] = {.lex_state = 0}, [54] = {.lex_state = 11}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [STATE(0)] = { [ts_builtin_sym_end] = ACTIONS(1), [aux_sym_items_token1] = ACTIONS(1), [anon_sym_POUND] = ACTIONS(1), [anon_sym_LBRACE] = ACTIONS(1), [anon_sym_RBRACE] = ACTIONS(1), [anon_sym_EQ] = ACTIONS(1), [anon_sym_STAR_EQ] = ACTIONS(1), [anon_sym_PLUS_EQ] = ACTIONS(1), [anon_sym_DASH_EQ] = ACTIONS(1), [anon_sym_LPAREN] = ACTIONS(1), [anon_sym_COMMA] = ACTIONS(1), [anon_sym_RPAREN] = ACTIONS(1), [anon_sym_BANG] = ACTIONS(1), [anon_sym_COLON] = ACTIONS(1), [anon_sym_PIPE] = ACTIONS(1), [anon_sym_else] = ACTIONS(1), [anon_sym_DOT] = ACTIONS(1), [sym_identifier] = ACTIONS(1), [aux_sym_string_token1] = ACTIONS(1), [anon_sym_DOLLAR_DOLLAR_LBRACE] = ACTIONS(1), }, [STATE(1)] = { [sym_source_file] = STATE(50), [sym_item] = STATE(4), [sym_comment] = STATE(46), [sym_statement] = STATE(46), [sym_declaration] = STATE(51), [sym_call] = STATE(19), [sym_conditional] = STATE(51), [sym_conditional_expression] = STATE(21), [sym_unary_conditional_expression] = STATE(32), [sym_binary_conditional_expression] = STATE(32), [sym_variable] = STATE(14), [aux_sym_items_repeat1] = STATE(4), [aux_sym_items_token1] = ACTIONS(3), [anon_sym_POUND] = ACTIONS(5), [anon_sym_BANG] = ACTIONS(7), [sym_identifier] = ACTIONS(9), }, }; static const uint16_t ts_small_parse_table[] = { [0] = 12, ACTIONS(13), 1, aux_sym_items_token1, ACTIONS(16), 1, anon_sym_POUND, ACTIONS(19), 1, anon_sym_BANG, ACTIONS(22), 1, sym_identifier, STATE(14), 1, sym_variable, STATE(19), 1, sym_call, STATE(21), 1, sym_conditional_expression, ACTIONS(11), 2, ts_builtin_sym_end, anon_sym_RBRACE, STATE(2), 2, sym_item, aux_sym_items_repeat1, STATE(32), 2, sym_unary_conditional_expression, sym_binary_conditional_expression, STATE(46), 2, sym_comment, sym_statement, STATE(51), 2, sym_declaration, sym_conditional, [42] = 12, ACTIONS(5), 1, anon_sym_POUND, ACTIONS(7), 1, anon_sym_BANG, ACTIONS(9), 1, sym_identifier, ACTIONS(25), 1, aux_sym_items_token1, ACTIONS(27), 1, anon_sym_RBRACE, STATE(14), 1, sym_variable, STATE(19), 1, sym_call, STATE(21), 1, sym_conditional_expression, STATE(2), 2, sym_item, aux_sym_items_repeat1, STATE(32), 2, sym_unary_conditional_expression, sym_binary_conditional_expression, STATE(46), 2, sym_comment, sym_statement, STATE(51), 2, sym_declaration, sym_conditional, [83] = 12, ACTIONS(5), 1, anon_sym_POUND, ACTIONS(7), 1, anon_sym_BANG, ACTIONS(9), 1, sym_identifier, ACTIONS(25), 1, aux_sym_items_token1, ACTIONS(29), 1, ts_builtin_sym_end, STATE(14), 1, sym_variable, STATE(19), 1, sym_call, STATE(21), 1, sym_conditional_expression, STATE(2), 2, sym_item, aux_sym_items_repeat1, STATE(32), 2, sym_unary_conditional_expression, sym_binary_conditional_expression, STATE(46), 2, sym_comment, sym_statement, STATE(51), 2, sym_declaration, sym_conditional, [124] = 11, ACTIONS(5), 1, anon_sym_POUND, ACTIONS(7), 1, anon_sym_BANG, ACTIONS(9), 1, sym_identifier, ACTIONS(31), 1, aux_sym_items_token1, STATE(14), 1, sym_variable, STATE(19), 1, sym_call, STATE(21), 1, sym_conditional_expression, STATE(3), 2, sym_item, aux_sym_items_repeat1, STATE(32), 2, sym_unary_conditional_expression, sym_binary_conditional_expression, STATE(46), 2, sym_comment, sym_statement, STATE(51), 2, sym_declaration, sym_conditional, [162] = 2, ACTIONS(35), 1, anon_sym_DOT, ACTIONS(33), 10, aux_sym_items_token1, anon_sym_LBRACE, anon_sym_EQ, anon_sym_STAR_EQ, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_COLON, anon_sym_PIPE, [178] = 8, ACTIONS(37), 1, aux_sym_items_token1, ACTIONS(39), 1, sym_expression_raw_frag, ACTIONS(41), 1, sym_identifier, ACTIONS(43), 1, aux_sym_string_token1, ACTIONS(45), 1, anon_sym_DOLLAR_DOLLAR_LBRACE, STATE(38), 1, sym_interpolation, STATE(47), 1, sym_expression, STATE(31), 3, sym_expression_raw, sym_variable, sym_string, [205] = 4, ACTIONS(35), 1, anon_sym_DOT, ACTIONS(47), 1, anon_sym_LPAREN, STATE(18), 1, sym_call_arguments, ACTIONS(33), 7, anon_sym_LBRACE, anon_sym_EQ, anon_sym_STAR_EQ, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, anon_sym_COLON, anon_sym_PIPE, [224] = 1, ACTIONS(49), 10, aux_sym_items_token1, anon_sym_LBRACE, anon_sym_EQ, anon_sym_STAR_EQ, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_COLON, anon_sym_PIPE, [237] = 8, ACTIONS(39), 1, sym_expression_raw_frag, ACTIONS(41), 1, sym_identifier, ACTIONS(43), 1, aux_sym_string_token1, ACTIONS(45), 1, anon_sym_DOLLAR_DOLLAR_LBRACE, ACTIONS(51), 1, anon_sym_RPAREN, STATE(30), 1, sym_expression, STATE(38), 1, sym_interpolation, STATE(31), 3, sym_expression_raw, sym_variable, sym_string, [264] = 7, ACTIONS(39), 1, sym_expression_raw_frag, ACTIONS(41), 1, sym_identifier, ACTIONS(43), 1, aux_sym_string_token1, ACTIONS(45), 1, anon_sym_DOLLAR_DOLLAR_LBRACE, STATE(38), 1, sym_interpolation, STATE(42), 1, sym_expression, STATE(31), 3, sym_expression_raw, sym_variable, sym_string, [288] = 4, ACTIONS(7), 1, anon_sym_BANG, ACTIONS(9), 1, sym_identifier, STATE(25), 1, sym_conditional_expression, STATE(32), 4, sym_call, sym_unary_conditional_expression, sym_binary_conditional_expression, sym_variable, [304] = 4, ACTIONS(7), 1, anon_sym_BANG, ACTIONS(9), 1, sym_identifier, STATE(29), 1, sym_conditional_expression, STATE(32), 4, sym_call, sym_unary_conditional_expression, sym_binary_conditional_expression, sym_variable, [320] = 2, ACTIONS(53), 3, anon_sym_LBRACE, anon_sym_COLON, anon_sym_PIPE, ACTIONS(55), 4, anon_sym_EQ, anon_sym_STAR_EQ, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, [332] = 4, ACTIONS(7), 1, anon_sym_BANG, ACTIONS(9), 1, sym_identifier, STATE(33), 1, sym_conditional_expression, STATE(32), 4, sym_call, sym_unary_conditional_expression, sym_binary_conditional_expression, sym_variable, [348] = 4, ACTIONS(7), 1, anon_sym_BANG, ACTIONS(9), 1, sym_identifier, STATE(34), 1, sym_conditional_expression, STATE(32), 4, sym_call, sym_unary_conditional_expression, sym_binary_conditional_expression, sym_variable, [364] = 1, ACTIONS(57), 6, ts_builtin_sym_end, aux_sym_items_token1, anon_sym_POUND, anon_sym_RBRACE, anon_sym_BANG, sym_identifier, [373] = 1, ACTIONS(59), 4, aux_sym_items_token1, anon_sym_LBRACE, anon_sym_COLON, anon_sym_PIPE, [380] = 2, ACTIONS(61), 1, aux_sym_items_token1, ACTIONS(53), 3, anon_sym_LBRACE, anon_sym_COLON, anon_sym_PIPE, [389] = 3, ACTIONS(63), 1, aux_sym_items_token1, ACTIONS(65), 1, anon_sym_else, STATE(23), 2, sym_conditional_else, aux_sym_conditional_repeat1, [400] = 4, ACTIONS(67), 1, anon_sym_LBRACE, ACTIONS(69), 1, anon_sym_COLON, ACTIONS(71), 1, anon_sym_PIPE, STATE(20), 1, sym_block, [413] = 1, ACTIONS(73), 4, aux_sym_items_token1, anon_sym_LBRACE, anon_sym_COLON, anon_sym_PIPE, [420] = 3, ACTIONS(65), 1, anon_sym_else, ACTIONS(75), 1, aux_sym_items_token1, STATE(26), 2, sym_conditional_else, aux_sym_conditional_repeat1, [431] = 1, ACTIONS(77), 4, aux_sym_items_token1, anon_sym_LBRACE, anon_sym_COLON, anon_sym_PIPE, [438] = 4, ACTIONS(67), 1, anon_sym_LBRACE, ACTIONS(69), 1, anon_sym_COLON, ACTIONS(71), 1, anon_sym_PIPE, STATE(45), 1, sym_block, [451] = 3, ACTIONS(79), 1, aux_sym_items_token1, ACTIONS(81), 1, anon_sym_else, STATE(26), 2, sym_conditional_else, aux_sym_conditional_repeat1, [462] = 1, ACTIONS(84), 4, aux_sym_items_token1, anon_sym_LBRACE, anon_sym_COLON, anon_sym_PIPE, [469] = 1, ACTIONS(86), 3, aux_sym_items_token1, anon_sym_COMMA, anon_sym_RPAREN, [475] = 1, ACTIONS(88), 3, anon_sym_LBRACE, anon_sym_COLON, anon_sym_PIPE, [481] = 3, ACTIONS(90), 1, anon_sym_COMMA, ACTIONS(92), 1, anon_sym_RPAREN, STATE(36), 1, aux_sym_call_arguments_repeat1, [491] = 1, ACTIONS(94), 3, aux_sym_items_token1, anon_sym_COMMA, anon_sym_RPAREN, [497] = 1, ACTIONS(53), 3, anon_sym_LBRACE, anon_sym_COLON, anon_sym_PIPE, [503] = 2, ACTIONS(69), 1, anon_sym_COLON, ACTIONS(96), 2, anon_sym_LBRACE, anon_sym_PIPE, [511] = 1, ACTIONS(96), 3, anon_sym_LBRACE, anon_sym_COLON, anon_sym_PIPE, [517] = 3, ACTIONS(67), 1, anon_sym_LBRACE, ACTIONS(98), 1, anon_sym_COLON, STATE(44), 1, sym_block, [527] = 3, ACTIONS(90), 1, anon_sym_COMMA, ACTIONS(100), 1, anon_sym_RPAREN, STATE(37), 1, aux_sym_call_arguments_repeat1, [537] = 3, ACTIONS(102), 1, anon_sym_COMMA, ACTIONS(105), 1, anon_sym_RPAREN, STATE(37), 1, aux_sym_call_arguments_repeat1, [547] = 1, ACTIONS(107), 3, aux_sym_items_token1, anon_sym_COMMA, anon_sym_RPAREN, [553] = 1, ACTIONS(109), 3, aux_sym_items_token1, anon_sym_COMMA, anon_sym_RPAREN, [559] = 2, ACTIONS(111), 1, aux_sym_items_token1, ACTIONS(113), 1, sym_comment_body, [566] = 2, ACTIONS(115), 1, sym_identifier, STATE(9), 1, sym_variable, [573] = 1, ACTIONS(105), 2, anon_sym_COMMA, anon_sym_RPAREN, [578] = 1, ACTIONS(117), 2, aux_sym_items_token1, anon_sym_else, [583] = 1, ACTIONS(119), 2, aux_sym_items_token1, anon_sym_else, [588] = 1, ACTIONS(121), 2, aux_sym_items_token1, anon_sym_else, [593] = 1, ACTIONS(123), 1, aux_sym_items_token1, [597] = 1, ACTIONS(125), 1, aux_sym_items_token1, [601] = 1, ACTIONS(127), 1, aux_sym_string_token1, [605] = 1, ACTIONS(129), 1, anon_sym_RBRACE, [609] = 1, ACTIONS(131), 1, ts_builtin_sym_end, [613] = 1, ACTIONS(61), 1, aux_sym_items_token1, [617] = 1, ACTIONS(133), 1, aux_sym_string_token2, [621] = 1, ACTIONS(135), 1, aux_sym_items_token1, [625] = 1, ACTIONS(137), 1, sym_interpolation_body, }; static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(2)] = 0, [SMALL_STATE(3)] = 42, [SMALL_STATE(4)] = 83, [SMALL_STATE(5)] = 124, [SMALL_STATE(6)] = 162, [SMALL_STATE(7)] = 178, [SMALL_STATE(8)] = 205, [SMALL_STATE(9)] = 224, [SMALL_STATE(10)] = 237, [SMALL_STATE(11)] = 264, [SMALL_STATE(12)] = 288, [SMALL_STATE(13)] = 304, [SMALL_STATE(14)] = 320, [SMALL_STATE(15)] = 332, [SMALL_STATE(16)] = 348, [SMALL_STATE(17)] = 364, [SMALL_STATE(18)] = 373, [SMALL_STATE(19)] = 380, [SMALL_STATE(20)] = 389, [SMALL_STATE(21)] = 400, [SMALL_STATE(22)] = 413, [SMALL_STATE(23)] = 420, [SMALL_STATE(24)] = 431, [SMALL_STATE(25)] = 438, [SMALL_STATE(26)] = 451, [SMALL_STATE(27)] = 462, [SMALL_STATE(28)] = 469, [SMALL_STATE(29)] = 475, [SMALL_STATE(30)] = 481, [SMALL_STATE(31)] = 491, [SMALL_STATE(32)] = 497, [SMALL_STATE(33)] = 503, [SMALL_STATE(34)] = 511, [SMALL_STATE(35)] = 517, [SMALL_STATE(36)] = 527, [SMALL_STATE(37)] = 537, [SMALL_STATE(38)] = 547, [SMALL_STATE(39)] = 553, [SMALL_STATE(40)] = 559, [SMALL_STATE(41)] = 566, [SMALL_STATE(42)] = 573, [SMALL_STATE(43)] = 578, [SMALL_STATE(44)] = 583, [SMALL_STATE(45)] = 588, [SMALL_STATE(46)] = 593, [SMALL_STATE(47)] = 597, [SMALL_STATE(48)] = 601, [SMALL_STATE(49)] = 605, [SMALL_STATE(50)] = 609, [SMALL_STATE(51)] = 613, [SMALL_STATE(52)] = 617, [SMALL_STATE(53)] = 621, [SMALL_STATE(54)] = 625, }; 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}}, SHIFT(4), [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), [11] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_items_repeat1, 2, 0, 0), [13] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_items_repeat1, 2, 0, 0), SHIFT_REPEAT(2), [16] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_items_repeat1, 2, 0, 0), SHIFT_REPEAT(40), [19] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_items_repeat1, 2, 0, 0), SHIFT_REPEAT(13), [22] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_items_repeat1, 2, 0, 0), SHIFT_REPEAT(8), [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), [29] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, 0, 0), [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), [33] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable, 1, 0, 0), [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), [37] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 2, 0, 0), [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(38), [41] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6), [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(52), [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), [49] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable, 3, 0, 0), [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), [53] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_conditional_expression, 1, 0, 0), [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), [57] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_item, 2, 0, 0), [59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_call, 2, 0, 2), [61] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_statement, 1, 0, 0), [63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_conditional, 2, 0, 0), [65] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), [67] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), [69] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), [71] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), [73] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_call_arguments, 2, 0, 0), [75] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_conditional, 3, 0, 0), [77] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_call_arguments, 3, 0, 0), [79] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_conditional_repeat1, 2, 0, 0), [81] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_conditional_repeat1, 2, 0, 0), SHIFT_REPEAT(35), [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_call_arguments, 4, 0, 0), [86] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 3, 0, 0), [88] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_conditional_expression, 2, 0, 0), [90] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), [92] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), [94] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1, 0, 0), [96] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_conditional_expression, 3, 0, 3), [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), [100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), [102] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_call_arguments_repeat1, 2, 0, 0), SHIFT_REPEAT(11), [105] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_call_arguments_repeat1, 2, 0, 0), [107] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_raw, 1, 0, 0), [109] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolation, 3, 0, 4), [111] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comment, 1, 0, 0), [113] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), [115] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), [117] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3, 0, 0), [119] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_conditional_else, 2, 0, 0), [121] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_conditional_else, 4, 0, 0), [123] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), [125] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 3, 0, 0), [127] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), [129] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), [131] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), [133] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), [135] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 2, 0, 1), [137] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), }; #ifdef __cplusplus extern "C" { #endif #ifdef TREE_SITTER_HIDE_SYMBOLS #define TS_PUBLIC #elif defined(_WIN32) #define TS_PUBLIC __declspec(dllexport) #else #define TS_PUBLIC __attribute__((visibility("default"))) #endif TS_PUBLIC const TSLanguage *tree_sitter_qmake(void) { static const TSLanguage language = { .abi_version = LANGUAGE_VERSION, .symbol_count = SYMBOL_COUNT, .alias_count = ALIAS_COUNT, .token_count = TOKEN_COUNT, .external_token_count = EXTERNAL_TOKEN_COUNT, .state_count = STATE_COUNT, .large_state_count = LARGE_STATE_COUNT, .production_id_count = PRODUCTION_ID_COUNT, .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, .field_names = ts_field_names, .field_map_slices = ts_field_map_slices, .field_map_entries = ts_field_map_entries, .symbol_metadata = ts_symbol_metadata, .public_symbol_map = ts_symbol_map, .alias_map = ts_non_terminal_alias_map, .alias_sequences = &ts_alias_sequences[0][0], .lex_modes = (const void*)ts_lex_modes, .lex_fn = ts_lex, .primary_state_ids = ts_primary_state_ids, }; return &language; } #ifdef __cplusplus } #endif