#include "tree_sitter/parser.h"
#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
#endif
#define LANGUAGE_VERSION 15
#define STATE_COUNT 131
#define LARGE_STATE_COUNT 2
#define SYMBOL_COUNT 57
#define ALIAS_COUNT 0
#define TOKEN_COUNT 30
#define EXTERNAL_TOKEN_COUNT 0
#define FIELD_COUNT 4
#define MAX_ALIAS_SEQUENCE_LENGTH 6
#define MAX_RESERVED_WORD_SET_SIZE 0
#define PRODUCTION_ID_COUNT 5
#define SUPERTYPE_COUNT 0
enum ts_symbol_identifiers {
sym_identifier = 1,
sym_doc_comment = 2,
sym_line_comment = 3,
sym_keyword_type = 4,
sym_keyword_opt = 5,
sym_keyword_arg = 6,
sym_keyword_cmd = 7,
sym_keyword_requires = 8,
sym_keyword_excludes = 9,
sym_keyword_effects = 10,
sym_keyword_subcommands = 11,
sym_operator_and = 12,
sym_open_paren = 13,
sym_closed_paren = 14,
sym_open_bracket = 15,
sym_closed_bracket = 16,
sym_open_square = 17,
sym_closed_square = 18,
sym_open_chevron = 19,
sym_closed_chevron = 20,
sym_pipe = 21,
sym_comma = 22,
sym_range = 23,
sym_named_identifier = 24,
sym_int_literal = 25,
sym_float_literal = 26,
sym_string_literal = 27,
sym_bool_literal = 28,
sym_fat_arrow = 29,
sym_source_file = 30,
sym__declaration = 31,
sym_declaration_block = 32,
sym_constraint_declaration = 33,
sym_constraint_block = 34,
sym__type_expression = 35,
sym_nested_type = 36,
sym_literals = 37,
sym_anonymous_enum_expression = 38,
sym_type_declaration = 39,
sym_requires_clause = 40,
sym_excludes_clause = 41,
sym_effects_clause = 42,
sym_subcommands_clause = 43,
sym_and_expression = 44,
sym_or_expression = 45,
sym__boolean_expression = 46,
sym_opt_declaration = 47,
sym_opt_unit = 48,
sym_arg_declaration = 49,
sym_arg_unit = 50,
sym_cmd_declaration = 51,
sym_cmd_unit = 52,
aux_sym_source_file_repeat1 = 53,
aux_sym_constraint_block_repeat1 = 54,
aux_sym_anonymous_enum_expression_repeat1 = 55,
aux_sym_opt_unit_repeat1 = 56,
};
static const char * const ts_symbol_names[] = {
[ts_builtin_sym_end] = "end",
[sym_identifier] = "identifier",
[sym_doc_comment] = "doc_comment",
[sym_line_comment] = "line_comment",
[sym_keyword_type] = "keyword_type",
[sym_keyword_opt] = "keyword_opt",
[sym_keyword_arg] = "keyword_arg",
[sym_keyword_cmd] = "keyword_cmd",
[sym_keyword_requires] = "keyword_requires",
[sym_keyword_excludes] = "keyword_excludes",
[sym_keyword_effects] = "keyword_effects",
[sym_keyword_subcommands] = "keyword_subcommands",
[sym_operator_and] = "operator_and",
[sym_open_paren] = "open_paren",
[sym_closed_paren] = "closed_paren",
[sym_open_bracket] = "open_bracket",
[sym_closed_bracket] = "closed_bracket",
[sym_open_square] = "open_square",
[sym_closed_square] = "closed_square",
[sym_open_chevron] = "open_chevron",
[sym_closed_chevron] = "closed_chevron",
[sym_pipe] = "pipe",
[sym_comma] = "comma",
[sym_range] = "range",
[sym_named_identifier] = "named_identifier",
[sym_int_literal] = "int_literal",
[sym_float_literal] = "float_literal",
[sym_string_literal] = "string_literal",
[sym_bool_literal] = "bool_literal",
[sym_fat_arrow] = "fat_arrow",
[sym_source_file] = "source_file",
[sym__declaration] = "_declaration",
[sym_declaration_block] = "declaration_block",
[sym_constraint_declaration] = "constraint_declaration",
[sym_constraint_block] = "constraint_block",
[sym__type_expression] = "_type_expression",
[sym_nested_type] = "nested_type",
[sym_literals] = "literals",
[sym_anonymous_enum_expression] = "anonymous_enum_expression",
[sym_type_declaration] = "type_declaration",
[sym_requires_clause] = "requires_clause",
[sym_excludes_clause] = "excludes_clause",
[sym_effects_clause] = "effects_clause",
[sym_subcommands_clause] = "subcommands_clause",
[sym_and_expression] = "and_expression",
[sym_or_expression] = "or_expression",
[sym__boolean_expression] = "_boolean_expression",
[sym_opt_declaration] = "opt_declaration",
[sym_opt_unit] = "opt_unit",
[sym_arg_declaration] = "arg_declaration",
[sym_arg_unit] = "arg_unit",
[sym_cmd_declaration] = "cmd_declaration",
[sym_cmd_unit] = "cmd_unit",
[aux_sym_source_file_repeat1] = "source_file_repeat1",
[aux_sym_constraint_block_repeat1] = "constraint_block_repeat1",
[aux_sym_anonymous_enum_expression_repeat1] = "anonymous_enum_expression_repeat1",
[aux_sym_opt_unit_repeat1] = "opt_unit_repeat1",
};
static const TSSymbol ts_symbol_map[] = {
[ts_builtin_sym_end] = ts_builtin_sym_end,
[sym_identifier] = sym_identifier,
[sym_doc_comment] = sym_doc_comment,
[sym_line_comment] = sym_line_comment,
[sym_keyword_type] = sym_keyword_type,
[sym_keyword_opt] = sym_keyword_opt,
[sym_keyword_arg] = sym_keyword_arg,
[sym_keyword_cmd] = sym_keyword_cmd,
[sym_keyword_requires] = sym_keyword_requires,
[sym_keyword_excludes] = sym_keyword_excludes,
[sym_keyword_effects] = sym_keyword_effects,
[sym_keyword_subcommands] = sym_keyword_subcommands,
[sym_operator_and] = sym_operator_and,
[sym_open_paren] = sym_open_paren,
[sym_closed_paren] = sym_closed_paren,
[sym_open_bracket] = sym_open_bracket,
[sym_closed_bracket] = sym_closed_bracket,
[sym_open_square] = sym_open_square,
[sym_closed_square] = sym_closed_square,
[sym_open_chevron] = sym_open_chevron,
[sym_closed_chevron] = sym_closed_chevron,
[sym_pipe] = sym_pipe,
[sym_comma] = sym_comma,
[sym_range] = sym_range,
[sym_named_identifier] = sym_named_identifier,
[sym_int_literal] = sym_int_literal,
[sym_float_literal] = sym_float_literal,
[sym_string_literal] = sym_string_literal,
[sym_bool_literal] = sym_bool_literal,
[sym_fat_arrow] = sym_fat_arrow,
[sym_source_file] = sym_source_file,
[sym__declaration] = sym__declaration,
[sym_declaration_block] = sym_declaration_block,
[sym_constraint_declaration] = sym_constraint_declaration,
[sym_constraint_block] = sym_constraint_block,
[sym__type_expression] = sym__type_expression,
[sym_nested_type] = sym_nested_type,
[sym_literals] = sym_literals,
[sym_anonymous_enum_expression] = sym_anonymous_enum_expression,
[sym_type_declaration] = sym_type_declaration,
[sym_requires_clause] = sym_requires_clause,
[sym_excludes_clause] = sym_excludes_clause,
[sym_effects_clause] = sym_effects_clause,
[sym_subcommands_clause] = sym_subcommands_clause,
[sym_and_expression] = sym_and_expression,
[sym_or_expression] = sym_or_expression,
[sym__boolean_expression] = sym__boolean_expression,
[sym_opt_declaration] = sym_opt_declaration,
[sym_opt_unit] = sym_opt_unit,
[sym_arg_declaration] = sym_arg_declaration,
[sym_arg_unit] = sym_arg_unit,
[sym_cmd_declaration] = sym_cmd_declaration,
[sym_cmd_unit] = sym_cmd_unit,
[aux_sym_source_file_repeat1] = aux_sym_source_file_repeat1,
[aux_sym_constraint_block_repeat1] = aux_sym_constraint_block_repeat1,
[aux_sym_anonymous_enum_expression_repeat1] = aux_sym_anonymous_enum_expression_repeat1,
[aux_sym_opt_unit_repeat1] = aux_sym_opt_unit_repeat1,
};
static const TSSymbolMetadata ts_symbol_metadata[] = {
[ts_builtin_sym_end] = {
.visible = false,
.named = true,
},
[sym_identifier] = {
.visible = true,
.named = true,
},
[sym_doc_comment] = {
.visible = true,
.named = true,
},
[sym_line_comment] = {
.visible = true,
.named = true,
},
[sym_keyword_type] = {
.visible = true,
.named = true,
},
[sym_keyword_opt] = {
.visible = true,
.named = true,
},
[sym_keyword_arg] = {
.visible = true,
.named = true,
},
[sym_keyword_cmd] = {
.visible = true,
.named = true,
},
[sym_keyword_requires] = {
.visible = true,
.named = true,
},
[sym_keyword_excludes] = {
.visible = true,
.named = true,
},
[sym_keyword_effects] = {
.visible = true,
.named = true,
},
[sym_keyword_subcommands] = {
.visible = true,
.named = true,
},
[sym_operator_and] = {
.visible = true,
.named = true,
},
[sym_open_paren] = {
.visible = true,
.named = true,
},
[sym_closed_paren] = {
.visible = true,
.named = true,
},
[sym_open_bracket] = {
.visible = true,
.named = true,
},
[sym_closed_bracket] = {
.visible = true,
.named = true,
},
[sym_open_square] = {
.visible = true,
.named = true,
},
[sym_closed_square] = {
.visible = true,
.named = true,
},
[sym_open_chevron] = {
.visible = true,
.named = true,
},
[sym_closed_chevron] = {
.visible = true,
.named = true,
},
[sym_pipe] = {
.visible = true,
.named = true,
},
[sym_comma] = {
.visible = true,
.named = true,
},
[sym_range] = {
.visible = true,
.named = true,
},
[sym_named_identifier] = {
.visible = true,
.named = true,
},
[sym_int_literal] = {
.visible = true,
.named = true,
},
[sym_float_literal] = {
.visible = true,
.named = true,
},
[sym_string_literal] = {
.visible = true,
.named = true,
},
[sym_bool_literal] = {
.visible = true,
.named = true,
},
[sym_fat_arrow] = {
.visible = true,
.named = true,
},
[sym_source_file] = {
.visible = true,
.named = true,
},
[sym__declaration] = {
.visible = false,
.named = true,
},
[sym_declaration_block] = {
.visible = true,
.named = true,
},
[sym_constraint_declaration] = {
.visible = true,
.named = true,
},
[sym_constraint_block] = {
.visible = true,
.named = true,
},
[sym__type_expression] = {
.visible = false,
.named = true,
},
[sym_nested_type] = {
.visible = true,
.named = true,
},
[sym_literals] = {
.visible = true,
.named = true,
},
[sym_anonymous_enum_expression] = {
.visible = true,
.named = true,
},
[sym_type_declaration] = {
.visible = true,
.named = true,
},
[sym_requires_clause] = {
.visible = true,
.named = true,
},
[sym_excludes_clause] = {
.visible = true,
.named = true,
},
[sym_effects_clause] = {
.visible = true,
.named = true,
},
[sym_subcommands_clause] = {
.visible = true,
.named = true,
},
[sym_and_expression] = {
.visible = true,
.named = true,
},
[sym_or_expression] = {
.visible = true,
.named = true,
},
[sym__boolean_expression] = {
.visible = false,
.named = true,
},
[sym_opt_declaration] = {
.visible = true,
.named = true,
},
[sym_opt_unit] = {
.visible = true,
.named = true,
},
[sym_arg_declaration] = {
.visible = true,
.named = true,
},
[sym_arg_unit] = {
.visible = true,
.named = true,
},
[sym_cmd_declaration] = {
.visible = true,
.named = true,
},
[sym_cmd_unit] = {
.visible = true,
.named = true,
},
[aux_sym_source_file_repeat1] = {
.visible = false,
.named = false,
},
[aux_sym_constraint_block_repeat1] = {
.visible = false,
.named = false,
},
[aux_sym_anonymous_enum_expression_repeat1] = {
.visible = false,
.named = false,
},
[aux_sym_opt_unit_repeat1] = {
.visible = false,
.named = false,
},
};
enum ts_field_identifiers {
field_end = 1,
field_inner = 2,
field_outer = 3,
field_start = 4,
};
static const char * const ts_field_names[] = {
[0] = NULL,
[field_end] = "end",
[field_inner] = "inner",
[field_outer] = "outer",
[field_start] = "start",
};
static const TSMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = {
[1] = {.index = 0, .length = 1},
[2] = {.index = 1, .length = 1},
[3] = {.index = 2, .length = 2},
[4] = {.index = 4, .length = 2},
};
static const TSFieldMapEntry ts_field_map_entries[] = {
[0] =
{field_end, 3},
[1] =
{field_start, 2},
[2] =
{field_inner, 2},
{field_outer, 0},
[4] =
{field_end, 4},
{field_start, 2},
};
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] = 4,
[7] = 3,
[8] = 5,
[9] = 9,
[10] = 10,
[11] = 11,
[12] = 12,
[13] = 13,
[14] = 9,
[15] = 15,
[16] = 10,
[17] = 17,
[18] = 12,
[19] = 19,
[20] = 20,
[21] = 17,
[22] = 22,
[23] = 13,
[24] = 11,
[25] = 25,
[26] = 26,
[27] = 27,
[28] = 28,
[29] = 26,
[30] = 30,
[31] = 31,
[32] = 32,
[33] = 33,
[34] = 25,
[35] = 35,
[36] = 19,
[37] = 20,
[38] = 33,
[39] = 39,
[40] = 27,
[41] = 28,
[42] = 30,
[43] = 22,
[44] = 44,
[45] = 31,
[46] = 39,
[47] = 44,
[48] = 35,
[49] = 49,
[50] = 50,
[51] = 51,
[52] = 52,
[53] = 53,
[54] = 53,
[55] = 52,
[56] = 32,
[57] = 57,
[58] = 58,
[59] = 59,
[60] = 60,
[61] = 61,
[62] = 62,
[63] = 60,
[64] = 64,
[65] = 65,
[66] = 66,
[67] = 61,
[68] = 65,
[69] = 62,
[70] = 64,
[71] = 66,
[72] = 59,
[73] = 73,
[74] = 74,
[75] = 75,
[76] = 75,
[77] = 77,
[78] = 78,
[79] = 79,
[80] = 80,
[81] = 81,
[82] = 82,
[83] = 83,
[84] = 84,
[85] = 85,
[86] = 86,
[87] = 87,
[88] = 88,
[89] = 89,
[90] = 90,
[91] = 90,
[92] = 87,
[93] = 93,
[94] = 94,
[95] = 95,
[96] = 96,
[97] = 97,
[98] = 96,
[99] = 99,
[100] = 100,
[101] = 93,
[102] = 95,
[103] = 103,
[104] = 104,
[105] = 105,
[106] = 106,
[107] = 107,
[108] = 108,
[109] = 109,
[110] = 110,
[111] = 111,
[112] = 112,
[113] = 113,
[114] = 114,
[115] = 115,
[116] = 116,
[117] = 117,
[118] = 118,
[119] = 119,
[120] = 120,
[121] = 120,
[122] = 104,
[123] = 115,
[124] = 124,
[125] = 112,
[126] = 103,
[127] = 124,
[128] = 128,
[129] = 129,
[130] = 119,
};
static bool ts_lex(TSLexer *lexer, TSStateId state) {
START_LEXER();
eof = lexer->eof(lexer);
switch (state) {
case 0:
if (eof) ADVANCE(18);
ADVANCE_MAP(
'"', 3,
'&', 29,
'(', 30,
')', 31,
',', 39,
'-', 13,
'.', 4,
'/', 5,
'<', 36,
'=', 6,
'>', 37,
'[', 34,
']', 35,
'f', 22,
't', 25,
'{', 32,
'|', 38,
'}', 33,
);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') SKIP(0);
if (('0' <= lookahead && lookahead <= '9')) ADVANCE(48);
if (('A' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(28);
END_STATE();
case 1:
if (lookahead == '"') ADVANCE(3);
if (lookahead == '(') ADVANCE(30);
if (lookahead == '-') ADVANCE(13);
if (lookahead == 'f') ADVANCE(41);
if (lookahead == 't') ADVANCE(44);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') SKIP(1);
if (('0' <= lookahead && lookahead <= '9')) ADVANCE(48);
if (('A' <= lookahead && lookahead <= 'Z') ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(47);
END_STATE();
case 2:
if (lookahead == '"') ADVANCE(3);
if (lookahead == '-') ADVANCE(13);
if (lookahead == 'f') ADVANCE(7);
if (lookahead == 't') ADVANCE(10);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') SKIP(2);
if (('0' <= lookahead && lookahead <= '9')) ADVANCE(48);
END_STATE();
case 3:
if (lookahead == '"') ADVANCE(51);
if (lookahead == '\\') ADVANCE(16);
if (lookahead != 0) ADVANCE(3);
END_STATE();
case 4:
if (lookahead == '.') ADVANCE(40);
END_STATE();
case 5:
if (lookahead == '/') ADVANCE(20);
END_STATE();
case 6:
if (lookahead == '>') ADVANCE(53);
END_STATE();
case 7:
if (lookahead == 'a') ADVANCE(9);
END_STATE();
case 8:
if (lookahead == 'e') ADVANCE(52);
END_STATE();
case 9:
if (lookahead == 'l') ADVANCE(11);
END_STATE();
case 10:
if (lookahead == 'r') ADVANCE(12);
END_STATE();
case 11:
if (lookahead == 's') ADVANCE(8);
END_STATE();
case 12:
if (lookahead == 'u') ADVANCE(8);
END_STATE();
case 13:
if (('0' <= lookahead && lookahead <= '9')) ADVANCE(48);
END_STATE();
case 14:
if (('0' <= lookahead && lookahead <= '9')) ADVANCE(50);
END_STATE();
case 15:
if (('0' <= lookahead && lookahead <= '9')) ADVANCE(49);
END_STATE();
case 16:
if (lookahead != 0 &&
lookahead != '\n') ADVANCE(3);
END_STATE();
case 17:
if (eof) ADVANCE(18);
ADVANCE_MAP(
'&', 29,
')', 31,
'-', 15,
'.', 4,
'/', 5,
'<', 36,
'>', 37,
'[', 34,
']', 35,
'{', 32,
'|', 38,
'}', 33,
);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') SKIP(17);
if (('0' <= lookahead && lookahead <= '9')) ADVANCE(49);
if (('A' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(28);
END_STATE();
case 18:
ACCEPT_TOKEN(ts_builtin_sym_end);
END_STATE();
case 19:
ACCEPT_TOKEN(sym_doc_comment);
if (lookahead != 0 &&
lookahead != '\n') ADVANCE(19);
END_STATE();
case 20:
ACCEPT_TOKEN(sym_line_comment);
if (lookahead == '/') ADVANCE(19);
if (lookahead != 0 &&
lookahead != '\n') ADVANCE(21);
END_STATE();
case 21:
ACCEPT_TOKEN(sym_line_comment);
if (lookahead != 0 &&
lookahead != '\n') ADVANCE(21);
END_STATE();
case 22:
ACCEPT_TOKEN(sym_identifier);
if (lookahead == 'a') ADVANCE(24);
if (('0' <= lookahead && lookahead <= '9') ||
('A' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('b' <= lookahead && lookahead <= 'z')) ADVANCE(28);
END_STATE();
case 23:
ACCEPT_TOKEN(sym_identifier);
if (lookahead == 'e') ADVANCE(28);
if (('0' <= lookahead && lookahead <= '9') ||
('A' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(28);
END_STATE();
case 24:
ACCEPT_TOKEN(sym_identifier);
if (lookahead == 'l') ADVANCE(26);
if (('0' <= lookahead && lookahead <= '9') ||
('A' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(28);
END_STATE();
case 25:
ACCEPT_TOKEN(sym_identifier);
if (lookahead == 'r') ADVANCE(27);
if (('0' <= lookahead && lookahead <= '9') ||
('A' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(28);
END_STATE();
case 26:
ACCEPT_TOKEN(sym_identifier);
if (lookahead == 's') ADVANCE(23);
if (('0' <= lookahead && lookahead <= '9') ||
('A' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(28);
END_STATE();
case 27:
ACCEPT_TOKEN(sym_identifier);
if (lookahead == 'u') ADVANCE(23);
if (('0' <= lookahead && lookahead <= '9') ||
('A' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(28);
END_STATE();
case 28:
ACCEPT_TOKEN(sym_identifier);
if (('0' <= lookahead && lookahead <= '9') ||
('A' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(28);
END_STATE();
case 29:
ACCEPT_TOKEN(sym_operator_and);
END_STATE();
case 30:
ACCEPT_TOKEN(sym_open_paren);
END_STATE();
case 31:
ACCEPT_TOKEN(sym_closed_paren);
END_STATE();
case 32:
ACCEPT_TOKEN(sym_open_bracket);
END_STATE();
case 33:
ACCEPT_TOKEN(sym_closed_bracket);
END_STATE();
case 34:
ACCEPT_TOKEN(sym_open_square);
END_STATE();
case 35:
ACCEPT_TOKEN(sym_closed_square);
END_STATE();
case 36:
ACCEPT_TOKEN(sym_open_chevron);
END_STATE();
case 37:
ACCEPT_TOKEN(sym_closed_chevron);
END_STATE();
case 38:
ACCEPT_TOKEN(sym_pipe);
END_STATE();
case 39:
ACCEPT_TOKEN(sym_comma);
END_STATE();
case 40:
ACCEPT_TOKEN(sym_range);
END_STATE();
case 41:
ACCEPT_TOKEN(sym_named_identifier);
if (lookahead == 'a') ADVANCE(43);
if (('0' <= lookahead && lookahead <= '9') ||
('A' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('b' <= lookahead && lookahead <= 'z')) ADVANCE(47);
END_STATE();
case 42:
ACCEPT_TOKEN(sym_named_identifier);
if (lookahead == 'e') ADVANCE(47);
if (('0' <= lookahead && lookahead <= '9') ||
('A' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(47);
END_STATE();
case 43:
ACCEPT_TOKEN(sym_named_identifier);
if (lookahead == 'l') ADVANCE(45);
if (('0' <= lookahead && lookahead <= '9') ||
('A' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(47);
END_STATE();
case 44:
ACCEPT_TOKEN(sym_named_identifier);
if (lookahead == 'r') ADVANCE(46);
if (('0' <= lookahead && lookahead <= '9') ||
('A' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(47);
END_STATE();
case 45:
ACCEPT_TOKEN(sym_named_identifier);
if (lookahead == 's') ADVANCE(42);
if (('0' <= lookahead && lookahead <= '9') ||
('A' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(47);
END_STATE();
case 46:
ACCEPT_TOKEN(sym_named_identifier);
if (lookahead == 'u') ADVANCE(42);
if (('0' <= lookahead && lookahead <= '9') ||
('A' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(47);
END_STATE();
case 47:
ACCEPT_TOKEN(sym_named_identifier);
if (('0' <= lookahead && lookahead <= '9') ||
('A' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(47);
END_STATE();
case 48:
ACCEPT_TOKEN(sym_int_literal);
if (lookahead == '.') ADVANCE(14);
if (('0' <= lookahead && lookahead <= '9')) ADVANCE(48);
END_STATE();
case 49:
ACCEPT_TOKEN(sym_int_literal);
if (('0' <= lookahead && lookahead <= '9')) ADVANCE(49);
END_STATE();
case 50:
ACCEPT_TOKEN(sym_float_literal);
if (('0' <= lookahead && lookahead <= '9')) ADVANCE(50);
END_STATE();
case 51:
ACCEPT_TOKEN(sym_string_literal);
END_STATE();
case 52:
ACCEPT_TOKEN(sym_bool_literal);
END_STATE();
case 53:
ACCEPT_TOKEN(sym_fat_arrow);
END_STATE();
default:
return false;
}
}
static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) {
START_LEXER();
eof = lexer->eof(lexer);
switch (state) {
case 0:
if (lookahead == 'a') ADVANCE(1);
if (lookahead == 'c') ADVANCE(2);
if (lookahead == 'e') ADVANCE(3);
if (lookahead == 'o') ADVANCE(4);
if (lookahead == 'r') ADVANCE(5);
if (lookahead == 's') ADVANCE(6);
if (lookahead == 't') ADVANCE(7);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') SKIP(0);
END_STATE();
case 1:
if (lookahead == 'r') ADVANCE(8);
END_STATE();
case 2:
if (lookahead == 'm') ADVANCE(9);
END_STATE();
case 3:
if (lookahead == 'f') ADVANCE(10);
if (lookahead == 'x') ADVANCE(11);
END_STATE();
case 4:
if (lookahead == 'p') ADVANCE(12);
END_STATE();
case 5:
if (lookahead == 'e') ADVANCE(13);
END_STATE();
case 6:
if (lookahead == 'u') ADVANCE(14);
END_STATE();
case 7:
if (lookahead == 'y') ADVANCE(15);
END_STATE();
case 8:
if (lookahead == 'g') ADVANCE(16);
END_STATE();
case 9:
if (lookahead == 'd') ADVANCE(17);
END_STATE();
case 10:
if (lookahead == 'f') ADVANCE(18);
END_STATE();
case 11:
if (lookahead == 'c') ADVANCE(19);
END_STATE();
case 12:
if (lookahead == 't') ADVANCE(20);
END_STATE();
case 13:
if (lookahead == 'q') ADVANCE(21);
END_STATE();
case 14:
if (lookahead == 'b') ADVANCE(22);
END_STATE();
case 15:
if (lookahead == 'p') ADVANCE(23);
END_STATE();
case 16:
ACCEPT_TOKEN(sym_keyword_arg);
END_STATE();
case 17:
ACCEPT_TOKEN(sym_keyword_cmd);
END_STATE();
case 18:
if (lookahead == 'e') ADVANCE(24);
END_STATE();
case 19:
if (lookahead == 'l') ADVANCE(25);
END_STATE();
case 20:
ACCEPT_TOKEN(sym_keyword_opt);
END_STATE();
case 21:
if (lookahead == 'u') ADVANCE(26);
END_STATE();
case 22:
if (lookahead == 'c') ADVANCE(27);
END_STATE();
case 23:
if (lookahead == 'e') ADVANCE(28);
END_STATE();
case 24:
if (lookahead == 'c') ADVANCE(29);
END_STATE();
case 25:
if (lookahead == 'u') ADVANCE(30);
END_STATE();
case 26:
if (lookahead == 'i') ADVANCE(31);
END_STATE();
case 27:
if (lookahead == 'o') ADVANCE(32);
END_STATE();
case 28:
ACCEPT_TOKEN(sym_keyword_type);
END_STATE();
case 29:
if (lookahead == 't') ADVANCE(33);
END_STATE();
case 30:
if (lookahead == 'd') ADVANCE(34);
END_STATE();
case 31:
if (lookahead == 'r') ADVANCE(35);
END_STATE();
case 32:
if (lookahead == 'm') ADVANCE(36);
END_STATE();
case 33:
if (lookahead == 's') ADVANCE(37);
END_STATE();
case 34:
if (lookahead == 'e') ADVANCE(38);
END_STATE();
case 35:
if (lookahead == 'e') ADVANCE(39);
END_STATE();
case 36:
if (lookahead == 'm') ADVANCE(40);
END_STATE();
case 37:
ACCEPT_TOKEN(sym_keyword_effects);
END_STATE();
case 38:
if (lookahead == 's') ADVANCE(41);
END_STATE();
case 39:
if (lookahead == 's') ADVANCE(42);
END_STATE();
case 40:
if (lookahead == 'a') ADVANCE(43);
END_STATE();
case 41:
ACCEPT_TOKEN(sym_keyword_excludes);
END_STATE();
case 42:
ACCEPT_TOKEN(sym_keyword_requires);
END_STATE();
case 43:
if (lookahead == 'n') ADVANCE(44);
END_STATE();
case 44:
if (lookahead == 'd') ADVANCE(45);
END_STATE();
case 45:
if (lookahead == 's') ADVANCE(46);
END_STATE();
case 46:
ACCEPT_TOKEN(sym_keyword_subcommands);
END_STATE();
default:
return false;
}
}
static const TSLexerMode 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 = 17},
[7] = {.lex_state = 17},
[8] = {.lex_state = 17},
[9] = {.lex_state = 17},
[10] = {.lex_state = 17},
[11] = {.lex_state = 17},
[12] = {.lex_state = 17},
[13] = {.lex_state = 17},
[14] = {.lex_state = 17},
[15] = {.lex_state = 17},
[16] = {.lex_state = 17},
[17] = {.lex_state = 17},
[18] = {.lex_state = 17},
[19] = {.lex_state = 17},
[20] = {.lex_state = 17},
[21] = {.lex_state = 17},
[22] = {.lex_state = 17},
[23] = {.lex_state = 17},
[24] = {.lex_state = 17},
[25] = {.lex_state = 1},
[26] = {.lex_state = 1},
[27] = {.lex_state = 17},
[28] = {.lex_state = 17},
[29] = {.lex_state = 1},
[30] = {.lex_state = 17},
[31] = {.lex_state = 17},
[32] = {.lex_state = 17},
[33] = {.lex_state = 17},
[34] = {.lex_state = 1},
[35] = {.lex_state = 17},
[36] = {.lex_state = 17},
[37] = {.lex_state = 17},
[38] = {.lex_state = 17},
[39] = {.lex_state = 1},
[40] = {.lex_state = 17},
[41] = {.lex_state = 17},
[42] = {.lex_state = 17},
[43] = {.lex_state = 17},
[44] = {.lex_state = 1},
[45] = {.lex_state = 17},
[46] = {.lex_state = 1},
[47] = {.lex_state = 1},
[48] = {.lex_state = 17},
[49] = {.lex_state = 17},
[50] = {.lex_state = 17},
[51] = {.lex_state = 17},
[52] = {.lex_state = 17},
[53] = {.lex_state = 17},
[54] = {.lex_state = 17},
[55] = {.lex_state = 17},
[56] = {.lex_state = 17},
[57] = {.lex_state = 17},
[58] = {.lex_state = 17},
[59] = {.lex_state = 17},
[60] = {.lex_state = 17},
[61] = {.lex_state = 17},
[62] = {.lex_state = 17},
[63] = {.lex_state = 17},
[64] = {.lex_state = 17},
[65] = {.lex_state = 17},
[66] = {.lex_state = 17},
[67] = {.lex_state = 17},
[68] = {.lex_state = 17},
[69] = {.lex_state = 17},
[70] = {.lex_state = 17},
[71] = {.lex_state = 17},
[72] = {.lex_state = 17},
[73] = {.lex_state = 17},
[74] = {.lex_state = 17},
[75] = {.lex_state = 2},
[76] = {.lex_state = 2},
[77] = {.lex_state = 1},
[78] = {.lex_state = 1},
[79] = {.lex_state = 17},
[80] = {.lex_state = 1},
[81] = {.lex_state = 1},
[82] = {.lex_state = 1},
[83] = {.lex_state = 1},
[84] = {.lex_state = 1},
[85] = {.lex_state = 0},
[86] = {.lex_state = 0},
[87] = {.lex_state = 0},
[88] = {.lex_state = 0},
[89] = {.lex_state = 0},
[90] = {.lex_state = 0},
[91] = {.lex_state = 0},
[92] = {.lex_state = 0},
[93] = {.lex_state = 1},
[94] = {.lex_state = 17},
[95] = {.lex_state = 1},
[96] = {.lex_state = 1},
[97] = {.lex_state = 17},
[98] = {.lex_state = 1},
[99] = {.lex_state = 0},
[100] = {.lex_state = 17},
[101] = {.lex_state = 1},
[102] = {.lex_state = 1},
[103] = {.lex_state = 0},
[104] = {.lex_state = 0},
[105] = {.lex_state = 0},
[106] = {.lex_state = 0},
[107] = {.lex_state = 0},
[108] = {.lex_state = 0},
[109] = {.lex_state = 0},
[110] = {.lex_state = 0},
[111] = {.lex_state = 0},
[112] = {.lex_state = 0},
[113] = {.lex_state = 0},
[114] = {.lex_state = 0},
[115] = {.lex_state = 0},
[116] = {.lex_state = 0},
[117] = {.lex_state = 0},
[118] = {.lex_state = 0},
[119] = {.lex_state = 0},
[120] = {.lex_state = 0},
[121] = {.lex_state = 0},
[122] = {.lex_state = 0},
[123] = {.lex_state = 0},
[124] = {.lex_state = 1},
[125] = {.lex_state = 0},
[126] = {.lex_state = 0},
[127] = {.lex_state = 1},
[128] = {.lex_state = 0},
[129] = {.lex_state = 0},
[130] = {.lex_state = 0},
};
static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
[STATE(0)] = {
[ts_builtin_sym_end] = ACTIONS(1),
[sym_identifier] = ACTIONS(1),
[sym_doc_comment] = ACTIONS(1),
[sym_line_comment] = ACTIONS(1),
[sym_keyword_type] = ACTIONS(1),
[sym_keyword_opt] = ACTIONS(1),
[sym_keyword_arg] = ACTIONS(1),
[sym_keyword_cmd] = ACTIONS(1),
[sym_keyword_requires] = ACTIONS(1),
[sym_keyword_excludes] = ACTIONS(1),
[sym_keyword_effects] = ACTIONS(1),
[sym_keyword_subcommands] = ACTIONS(1),
[sym_operator_and] = ACTIONS(1),
[sym_open_paren] = ACTIONS(1),
[sym_closed_paren] = ACTIONS(1),
[sym_open_bracket] = ACTIONS(1),
[sym_closed_bracket] = ACTIONS(1),
[sym_open_square] = ACTIONS(1),
[sym_closed_square] = ACTIONS(1),
[sym_open_chevron] = ACTIONS(1),
[sym_closed_chevron] = ACTIONS(1),
[sym_pipe] = ACTIONS(1),
[sym_comma] = ACTIONS(1),
[sym_range] = ACTIONS(1),
[sym_int_literal] = ACTIONS(1),
[sym_float_literal] = ACTIONS(1),
[sym_string_literal] = ACTIONS(1),
[sym_bool_literal] = ACTIONS(1),
[sym_fat_arrow] = ACTIONS(1),
},
[STATE(1)] = {
[sym_source_file] = STATE(116),
[sym__declaration] = STATE(2),
[sym_type_declaration] = STATE(2),
[sym_opt_declaration] = STATE(2),
[sym_arg_declaration] = STATE(2),
[sym_cmd_declaration] = STATE(2),
[aux_sym_source_file_repeat1] = STATE(2),
[ts_builtin_sym_end] = ACTIONS(3),
[sym_doc_comment] = ACTIONS(5),
[sym_line_comment] = ACTIONS(7),
[sym_keyword_type] = ACTIONS(9),
[sym_keyword_opt] = ACTIONS(11),
[sym_keyword_arg] = ACTIONS(13),
[sym_keyword_cmd] = ACTIONS(15),
},
};
static const uint16_t ts_small_parse_table[] = {
[0] = 8,
ACTIONS(9), 1,
sym_keyword_type,
ACTIONS(11), 1,
sym_keyword_opt,
ACTIONS(13), 1,
sym_keyword_arg,
ACTIONS(15), 1,
sym_keyword_cmd,
ACTIONS(17), 1,
ts_builtin_sym_end,
ACTIONS(19), 1,
sym_doc_comment,
ACTIONS(21), 1,
sym_line_comment,
STATE(4), 6,
sym__declaration,
sym_type_declaration,
sym_opt_declaration,
sym_arg_declaration,
sym_cmd_declaration,
aux_sym_source_file_repeat1,
[30] = 8,
ACTIONS(23), 1,
sym_doc_comment,
ACTIONS(25), 1,
sym_line_comment,
ACTIONS(27), 1,
sym_keyword_type,
ACTIONS(29), 1,
sym_keyword_opt,
ACTIONS(31), 1,
sym_keyword_arg,
ACTIONS(33), 1,
sym_keyword_cmd,
ACTIONS(35), 1,
sym_closed_bracket,
STATE(5), 6,
sym__declaration,
sym_type_declaration,
sym_opt_declaration,
sym_arg_declaration,
sym_cmd_declaration,
aux_sym_source_file_repeat1,
[60] = 8,
ACTIONS(37), 1,
ts_builtin_sym_end,
ACTIONS(39), 1,
sym_doc_comment,
ACTIONS(42), 1,
sym_line_comment,
ACTIONS(45), 1,
sym_keyword_type,
ACTIONS(48), 1,
sym_keyword_opt,
ACTIONS(51), 1,
sym_keyword_arg,
ACTIONS(54), 1,
sym_keyword_cmd,
STATE(4), 6,
sym__declaration,
sym_type_declaration,
sym_opt_declaration,
sym_arg_declaration,
sym_cmd_declaration,
aux_sym_source_file_repeat1,
[90] = 8,
ACTIONS(27), 1,
sym_keyword_type,
ACTIONS(29), 1,
sym_keyword_opt,
ACTIONS(31), 1,
sym_keyword_arg,
ACTIONS(33), 1,
sym_keyword_cmd,
ACTIONS(57), 1,
sym_doc_comment,
ACTIONS(59), 1,
sym_line_comment,
ACTIONS(61), 1,
sym_closed_bracket,
STATE(6), 6,
sym__declaration,
sym_type_declaration,
sym_opt_declaration,
sym_arg_declaration,
sym_cmd_declaration,
aux_sym_source_file_repeat1,
[120] = 8,
ACTIONS(37), 1,
sym_closed_bracket,
ACTIONS(63), 1,
sym_doc_comment,
ACTIONS(66), 1,
sym_line_comment,
ACTIONS(69), 1,
sym_keyword_type,
ACTIONS(72), 1,
sym_keyword_opt,
ACTIONS(75), 1,
sym_keyword_arg,
ACTIONS(78), 1,
sym_keyword_cmd,
STATE(6), 6,
sym__declaration,
sym_type_declaration,
sym_opt_declaration,
sym_arg_declaration,
sym_cmd_declaration,
aux_sym_source_file_repeat1,
[150] = 8,
ACTIONS(27), 1,
sym_keyword_type,
ACTIONS(29), 1,
sym_keyword_opt,
ACTIONS(31), 1,
sym_keyword_arg,
ACTIONS(33), 1,
sym_keyword_cmd,
ACTIONS(81), 1,
sym_doc_comment,
ACTIONS(83), 1,
sym_line_comment,
ACTIONS(85), 1,
sym_closed_bracket,
STATE(8), 6,
sym__declaration,
sym_type_declaration,
sym_opt_declaration,
sym_arg_declaration,
sym_cmd_declaration,
aux_sym_source_file_repeat1,
[180] = 8,
ACTIONS(27), 1,
sym_keyword_type,
ACTIONS(29), 1,
sym_keyword_opt,
ACTIONS(31), 1,
sym_keyword_arg,
ACTIONS(33), 1,
sym_keyword_cmd,
ACTIONS(57), 1,
sym_doc_comment,
ACTIONS(59), 1,
sym_line_comment,
ACTIONS(87), 1,
sym_closed_bracket,
STATE(6), 6,
sym__declaration,
sym_type_declaration,
sym_opt_declaration,
sym_arg_declaration,
sym_cmd_declaration,
aux_sym_source_file_repeat1,
[210] = 6,
ACTIONS(91), 1,
sym_line_comment,
ACTIONS(93), 1,
sym_open_bracket,
ACTIONS(95), 1,
sym_open_square,
STATE(48), 1,
sym_constraint_block,
STATE(72), 1,
sym_declaration_block,
ACTIONS(89), 6,
ts_builtin_sym_end,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
[234] = 7,
ACTIONS(97), 1,
sym_keyword_requires,
ACTIONS(99), 1,
sym_keyword_excludes,
ACTIONS(101), 1,
sym_keyword_effects,
ACTIONS(103), 1,
sym_keyword_subcommands,
ACTIONS(105), 1,
sym_closed_square,
STATE(12), 2,
sym_constraint_declaration,
aux_sym_constraint_block_repeat1,
STATE(79), 4,
sym_requires_clause,
sym_excludes_clause,
sym_effects_clause,
sym_subcommands_clause,
[260] = 4,
ACTIONS(109), 1,
sym_line_comment,
ACTIONS(111), 1,
sym_pipe,
STATE(13), 1,
aux_sym_anonymous_enum_expression_repeat1,
ACTIONS(107), 8,
ts_builtin_sym_end,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
sym_open_square,
sym_closed_chevron,
[280] = 7,
ACTIONS(97), 1,
sym_keyword_requires,
ACTIONS(99), 1,
sym_keyword_excludes,
ACTIONS(101), 1,
sym_keyword_effects,
ACTIONS(103), 1,
sym_keyword_subcommands,
ACTIONS(113), 1,
sym_closed_square,
STATE(15), 2,
sym_constraint_declaration,
aux_sym_constraint_block_repeat1,
STATE(79), 4,
sym_requires_clause,
sym_excludes_clause,
sym_effects_clause,
sym_subcommands_clause,
[306] = 4,
ACTIONS(111), 1,
sym_pipe,
ACTIONS(117), 1,
sym_line_comment,
STATE(17), 1,
aux_sym_anonymous_enum_expression_repeat1,
ACTIONS(115), 8,
ts_builtin_sym_end,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
sym_open_square,
sym_closed_chevron,
[326] = 6,
ACTIONS(91), 1,
sym_line_comment,
ACTIONS(119), 1,
sym_open_bracket,
ACTIONS(121), 1,
sym_open_square,
STATE(35), 1,
sym_constraint_block,
STATE(59), 1,
sym_declaration_block,
ACTIONS(89), 6,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
sym_closed_bracket,
[350] = 7,
ACTIONS(123), 1,
sym_keyword_requires,
ACTIONS(126), 1,
sym_keyword_excludes,
ACTIONS(129), 1,
sym_keyword_effects,
ACTIONS(132), 1,
sym_keyword_subcommands,
ACTIONS(135), 1,
sym_closed_square,
STATE(15), 2,
sym_constraint_declaration,
aux_sym_constraint_block_repeat1,
STATE(79), 4,
sym_requires_clause,
sym_excludes_clause,
sym_effects_clause,
sym_subcommands_clause,
[376] = 7,
ACTIONS(97), 1,
sym_keyword_requires,
ACTIONS(99), 1,
sym_keyword_excludes,
ACTIONS(101), 1,
sym_keyword_effects,
ACTIONS(103), 1,
sym_keyword_subcommands,
ACTIONS(137), 1,
sym_closed_square,
STATE(18), 2,
sym_constraint_declaration,
aux_sym_constraint_block_repeat1,
STATE(79), 4,
sym_requires_clause,
sym_excludes_clause,
sym_effects_clause,
sym_subcommands_clause,
[402] = 4,
ACTIONS(141), 1,
sym_line_comment,
ACTIONS(143), 1,
sym_pipe,
STATE(17), 1,
aux_sym_anonymous_enum_expression_repeat1,
ACTIONS(139), 8,
ts_builtin_sym_end,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
sym_open_square,
sym_closed_chevron,
[422] = 7,
ACTIONS(97), 1,
sym_keyword_requires,
ACTIONS(99), 1,
sym_keyword_excludes,
ACTIONS(101), 1,
sym_keyword_effects,
ACTIONS(103), 1,
sym_keyword_subcommands,
ACTIONS(146), 1,
sym_closed_square,
STATE(15), 2,
sym_constraint_declaration,
aux_sym_constraint_block_repeat1,
STATE(79), 4,
sym_requires_clause,
sym_excludes_clause,
sym_effects_clause,
sym_subcommands_clause,
[448] = 3,
ACTIONS(150), 1,
sym_line_comment,
ACTIONS(152), 1,
sym_open_chevron,
ACTIONS(148), 8,
ts_builtin_sym_end,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
sym_open_square,
sym_closed_chevron,
[465] = 2,
ACTIONS(156), 1,
sym_line_comment,
ACTIONS(154), 9,
ts_builtin_sym_end,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
sym_open_square,
sym_closed_chevron,
sym_pipe,
[480] = 4,
ACTIONS(141), 1,
sym_line_comment,
ACTIONS(158), 1,
sym_pipe,
STATE(21), 1,
aux_sym_anonymous_enum_expression_repeat1,
ACTIONS(139), 7,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
sym_closed_bracket,
sym_open_square,
[499] = 2,
ACTIONS(141), 1,
sym_line_comment,
ACTIONS(139), 9,
ts_builtin_sym_end,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
sym_open_square,
sym_closed_chevron,
sym_pipe,
[514] = 4,
ACTIONS(117), 1,
sym_line_comment,
ACTIONS(161), 1,
sym_pipe,
STATE(21), 1,
aux_sym_anonymous_enum_expression_repeat1,
ACTIONS(115), 7,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
sym_closed_bracket,
sym_open_square,
[533] = 4,
ACTIONS(109), 1,
sym_line_comment,
ACTIONS(161), 1,
sym_pipe,
STATE(23), 1,
aux_sym_anonymous_enum_expression_repeat1,
ACTIONS(107), 7,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
sym_closed_bracket,
sym_open_square,
[552] = 5,
ACTIONS(163), 1,
sym_named_identifier,
STATE(24), 1,
sym_literals,
ACTIONS(165), 2,
sym_int_literal,
sym_bool_literal,
ACTIONS(167), 2,
sym_float_literal,
sym_string_literal,
STATE(38), 3,
sym__type_expression,
sym_nested_type,
sym_anonymous_enum_expression,
[572] = 5,
ACTIONS(169), 1,
sym_named_identifier,
STATE(11), 1,
sym_literals,
ACTIONS(171), 2,
sym_int_literal,
sym_bool_literal,
ACTIONS(173), 2,
sym_float_literal,
sym_string_literal,
STATE(121), 3,
sym__type_expression,
sym_nested_type,
sym_anonymous_enum_expression,
[592] = 4,
ACTIONS(95), 1,
sym_open_square,
ACTIONS(177), 1,
sym_line_comment,
STATE(65), 1,
sym_constraint_block,
ACTIONS(175), 6,
ts_builtin_sym_end,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
[610] = 4,
ACTIONS(95), 1,
sym_open_square,
ACTIONS(181), 1,
sym_line_comment,
STATE(70), 1,
sym_constraint_block,
ACTIONS(179), 6,
ts_builtin_sym_end,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
[628] = 5,
ACTIONS(169), 1,
sym_named_identifier,
STATE(11), 1,
sym_literals,
ACTIONS(171), 2,
sym_int_literal,
sym_bool_literal,
ACTIONS(173), 2,
sym_float_literal,
sym_string_literal,
STATE(120), 3,
sym__type_expression,
sym_nested_type,
sym_anonymous_enum_expression,
[648] = 2,
ACTIONS(185), 1,
sym_line_comment,
ACTIONS(183), 8,
ts_builtin_sym_end,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
sym_open_bracket,
sym_open_square,
[662] = 2,
ACTIONS(189), 1,
sym_line_comment,
ACTIONS(187), 8,
ts_builtin_sym_end,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
sym_open_bracket,
sym_open_square,
[676] = 2,
ACTIONS(193), 1,
sym_line_comment,
ACTIONS(191), 8,
ts_builtin_sym_end,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
sym_open_square,
sym_closed_chevron,
[690] = 4,
ACTIONS(95), 1,
sym_open_square,
ACTIONS(197), 1,
sym_line_comment,
STATE(61), 1,
sym_constraint_block,
ACTIONS(195), 6,
ts_builtin_sym_end,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
[708] = 5,
ACTIONS(169), 1,
sym_named_identifier,
STATE(11), 1,
sym_literals,
ACTIONS(171), 2,
sym_int_literal,
sym_bool_literal,
ACTIONS(173), 2,
sym_float_literal,
sym_string_literal,
STATE(33), 3,
sym__type_expression,
sym_nested_type,
sym_anonymous_enum_expression,
[728] = 4,
ACTIONS(119), 1,
sym_open_bracket,
ACTIONS(201), 1,
sym_line_comment,
STATE(63), 1,
sym_declaration_block,
ACTIONS(199), 6,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
sym_closed_bracket,
[746] = 3,
ACTIONS(150), 1,
sym_line_comment,
ACTIONS(203), 1,
sym_open_chevron,
ACTIONS(148), 7,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
sym_closed_bracket,
sym_open_square,
[762] = 2,
ACTIONS(156), 1,
sym_line_comment,
ACTIONS(154), 8,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
sym_closed_bracket,
sym_open_square,
sym_pipe,
[776] = 4,
ACTIONS(121), 1,
sym_open_square,
ACTIONS(197), 1,
sym_line_comment,
STATE(67), 1,
sym_constraint_block,
ACTIONS(195), 6,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
sym_closed_bracket,
[794] = 5,
ACTIONS(169), 1,
sym_named_identifier,
STATE(11), 1,
sym_literals,
ACTIONS(171), 2,
sym_int_literal,
sym_bool_literal,
ACTIONS(173), 2,
sym_float_literal,
sym_string_literal,
STATE(27), 3,
sym__type_expression,
sym_nested_type,
sym_anonymous_enum_expression,
[814] = 4,
ACTIONS(121), 1,
sym_open_square,
ACTIONS(177), 1,
sym_line_comment,
STATE(68), 1,
sym_constraint_block,
ACTIONS(175), 6,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
sym_closed_bracket,
[832] = 4,
ACTIONS(121), 1,
sym_open_square,
ACTIONS(181), 1,
sym_line_comment,
STATE(64), 1,
sym_constraint_block,
ACTIONS(179), 6,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
sym_closed_bracket,
[850] = 2,
ACTIONS(185), 1,
sym_line_comment,
ACTIONS(183), 8,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
sym_open_bracket,
sym_closed_bracket,
sym_open_square,
[864] = 2,
ACTIONS(141), 1,
sym_line_comment,
ACTIONS(139), 8,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
sym_closed_bracket,
sym_open_square,
sym_pipe,
[878] = 5,
ACTIONS(169), 1,
sym_named_identifier,
STATE(11), 1,
sym_literals,
ACTIONS(171), 2,
sym_int_literal,
sym_bool_literal,
ACTIONS(173), 2,
sym_float_literal,
sym_string_literal,
STATE(28), 3,
sym__type_expression,
sym_nested_type,
sym_anonymous_enum_expression,
[898] = 2,
ACTIONS(189), 1,
sym_line_comment,
ACTIONS(187), 8,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
sym_open_bracket,
sym_closed_bracket,
sym_open_square,
[912] = 5,
ACTIONS(163), 1,
sym_named_identifier,
STATE(24), 1,
sym_literals,
ACTIONS(165), 2,
sym_int_literal,
sym_bool_literal,
ACTIONS(167), 2,
sym_float_literal,
sym_string_literal,
STATE(40), 3,
sym__type_expression,
sym_nested_type,
sym_anonymous_enum_expression,
[932] = 5,
ACTIONS(163), 1,
sym_named_identifier,
STATE(24), 1,
sym_literals,
ACTIONS(165), 2,
sym_int_literal,
sym_bool_literal,
ACTIONS(167), 2,
sym_float_literal,
sym_string_literal,
STATE(41), 3,
sym__type_expression,
sym_nested_type,
sym_anonymous_enum_expression,
[952] = 4,
ACTIONS(93), 1,
sym_open_bracket,
ACTIONS(201), 1,
sym_line_comment,
STATE(60), 1,
sym_declaration_block,
ACTIONS(199), 6,
ts_builtin_sym_end,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
[970] = 2,
ACTIONS(207), 1,
sym_operator_and,
ACTIONS(205), 7,
sym_keyword_requires,
sym_keyword_excludes,
sym_keyword_effects,
sym_keyword_subcommands,
sym_closed_paren,
sym_closed_square,
sym_pipe,
[983] = 1,
ACTIONS(209), 8,
sym_keyword_requires,
sym_keyword_excludes,
sym_keyword_effects,
sym_keyword_subcommands,
sym_operator_and,
sym_closed_paren,
sym_closed_square,
sym_pipe,
[994] = 1,
ACTIONS(211), 8,
sym_keyword_requires,
sym_keyword_excludes,
sym_keyword_effects,
sym_keyword_subcommands,
sym_operator_and,
sym_closed_paren,
sym_closed_square,
sym_pipe,
[1005] = 2,
ACTIONS(215), 1,
sym_line_comment,
ACTIONS(213), 7,
ts_builtin_sym_end,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
sym_open_bracket,
[1018] = 2,
ACTIONS(219), 1,
sym_line_comment,
ACTIONS(217), 7,
ts_builtin_sym_end,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
sym_open_bracket,
[1031] = 2,
ACTIONS(219), 1,
sym_line_comment,
ACTIONS(217), 7,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
sym_open_bracket,
sym_closed_bracket,
[1044] = 2,
ACTIONS(215), 1,
sym_line_comment,
ACTIONS(213), 7,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
sym_open_bracket,
sym_closed_bracket,
[1057] = 2,
ACTIONS(193), 1,
sym_line_comment,
ACTIONS(191), 7,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
sym_closed_bracket,
sym_open_square,
[1070] = 3,
ACTIONS(207), 1,
sym_operator_and,
ACTIONS(223), 1,
sym_pipe,
ACTIONS(221), 5,
sym_keyword_requires,
sym_keyword_excludes,
sym_keyword_effects,
sym_keyword_subcommands,
sym_closed_square,
[1084] = 3,
ACTIONS(207), 1,
sym_operator_and,
ACTIONS(223), 1,
sym_pipe,
ACTIONS(225), 5,
sym_keyword_requires,
sym_keyword_excludes,
sym_keyword_effects,
sym_keyword_subcommands,
sym_closed_square,
[1098] = 2,
ACTIONS(201), 1,
sym_line_comment,
ACTIONS(199), 6,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
sym_closed_bracket,
[1110] = 2,
ACTIONS(229), 1,
sym_line_comment,
ACTIONS(227), 6,
ts_builtin_sym_end,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
[1122] = 2,
ACTIONS(233), 1,
sym_line_comment,
ACTIONS(231), 6,
ts_builtin_sym_end,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
[1134] = 2,
ACTIONS(237), 1,
sym_line_comment,
ACTIONS(235), 6,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
sym_closed_bracket,
[1146] = 2,
ACTIONS(229), 1,
sym_line_comment,
ACTIONS(227), 6,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
sym_closed_bracket,
[1158] = 2,
ACTIONS(241), 1,
sym_line_comment,
ACTIONS(239), 6,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
sym_closed_bracket,
[1170] = 2,
ACTIONS(245), 1,
sym_line_comment,
ACTIONS(243), 6,
ts_builtin_sym_end,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
[1182] = 2,
ACTIONS(249), 1,
sym_line_comment,
ACTIONS(247), 6,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
sym_closed_bracket,
[1194] = 2,
ACTIONS(233), 1,
sym_line_comment,
ACTIONS(231), 6,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
sym_closed_bracket,
[1206] = 2,
ACTIONS(245), 1,
sym_line_comment,
ACTIONS(243), 6,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
sym_closed_bracket,
[1218] = 2,
ACTIONS(237), 1,
sym_line_comment,
ACTIONS(235), 6,
ts_builtin_sym_end,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
[1230] = 2,
ACTIONS(241), 1,
sym_line_comment,
ACTIONS(239), 6,
ts_builtin_sym_end,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
[1242] = 2,
ACTIONS(249), 1,
sym_line_comment,
ACTIONS(247), 6,
ts_builtin_sym_end,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
[1254] = 2,
ACTIONS(201), 1,
sym_line_comment,
ACTIONS(199), 6,
ts_builtin_sym_end,
sym_doc_comment,
sym_keyword_type,
sym_keyword_opt,
sym_keyword_arg,
sym_keyword_cmd,
[1266] = 3,
ACTIONS(207), 1,
sym_operator_and,
ACTIONS(223), 1,
sym_pipe,
ACTIONS(251), 5,
sym_keyword_requires,
sym_keyword_excludes,
sym_keyword_effects,
sym_keyword_subcommands,
sym_closed_square,
[1280] = 3,
ACTIONS(207), 1,
sym_operator_and,
ACTIONS(223), 1,
sym_pipe,
ACTIONS(253), 5,
sym_keyword_requires,
sym_keyword_excludes,
sym_keyword_effects,
sym_keyword_subcommands,
sym_closed_square,
[1294] = 3,
ACTIONS(171), 1,
sym_int_literal,
STATE(22), 1,
sym_literals,
ACTIONS(173), 3,
sym_float_literal,
sym_string_literal,
sym_bool_literal,
[1306] = 3,
ACTIONS(165), 1,
sym_int_literal,
STATE(43), 1,
sym_literals,
ACTIONS(167), 3,
sym_float_literal,
sym_string_literal,
sym_bool_literal,
[1318] = 3,
ACTIONS(255), 1,
sym_open_paren,
ACTIONS(257), 1,
sym_named_identifier,
STATE(74), 3,
sym_and_expression,
sym_or_expression,
sym__boolean_expression,
[1330] = 3,
ACTIONS(255), 1,
sym_open_paren,
ACTIONS(259), 1,
sym_named_identifier,
STATE(51), 3,
sym_and_expression,
sym_or_expression,
sym__boolean_expression,
[1342] = 1,
ACTIONS(261), 5,
sym_keyword_requires,
sym_keyword_excludes,
sym_keyword_effects,
sym_keyword_subcommands,
sym_closed_square,
[1350] = 3,
ACTIONS(255), 1,
sym_open_paren,
ACTIONS(263), 1,
sym_named_identifier,
STATE(49), 3,
sym_and_expression,
sym_or_expression,
sym__boolean_expression,
[1362] = 3,
ACTIONS(255), 1,
sym_open_paren,
ACTIONS(265), 1,
sym_named_identifier,
STATE(85), 3,
sym_and_expression,
sym_or_expression,
sym__boolean_expression,
[1374] = 3,
ACTIONS(255), 1,
sym_open_paren,
ACTIONS(267), 1,
sym_named_identifier,
STATE(73), 3,
sym_and_expression,
sym_or_expression,
sym__boolean_expression,
[1386] = 3,
ACTIONS(255), 1,
sym_open_paren,
ACTIONS(269), 1,
sym_named_identifier,
STATE(58), 3,
sym_and_expression,
sym_or_expression,
sym__boolean_expression,
[1398] = 3,
ACTIONS(255), 1,
sym_open_paren,
ACTIONS(271), 1,
sym_named_identifier,
STATE(57), 3,
sym_and_expression,
sym_or_expression,
sym__boolean_expression,
[1410] = 3,
ACTIONS(207), 1,
sym_operator_and,
ACTIONS(223), 1,
sym_pipe,
ACTIONS(273), 1,
sym_closed_paren,
[1420] = 3,
ACTIONS(275), 1,
sym_closed_paren,
ACTIONS(277), 1,
sym_comma,
STATE(88), 1,
aux_sym_opt_unit_repeat1,
[1430] = 3,
ACTIONS(277), 1,
sym_comma,
ACTIONS(279), 1,
sym_closed_paren,
STATE(89), 1,
aux_sym_opt_unit_repeat1,
[1440] = 3,
ACTIONS(277), 1,
sym_comma,
ACTIONS(281), 1,
sym_closed_paren,
STATE(89), 1,
aux_sym_opt_unit_repeat1,
[1450] = 3,
ACTIONS(283), 1,
sym_closed_paren,
ACTIONS(285), 1,
sym_comma,
STATE(89), 1,
aux_sym_opt_unit_repeat1,
[1460] = 3,
ACTIONS(277), 1,
sym_comma,
ACTIONS(288), 1,
sym_closed_paren,
STATE(87), 1,
aux_sym_opt_unit_repeat1,
[1470] = 3,
ACTIONS(277), 1,
sym_comma,
ACTIONS(290), 1,
sym_closed_paren,
STATE(92), 1,
aux_sym_opt_unit_repeat1,
[1480] = 3,
ACTIONS(277), 1,
sym_comma,
ACTIONS(292), 1,
sym_closed_paren,
STATE(89), 1,
aux_sym_opt_unit_repeat1,
[1490] = 2,
ACTIONS(294), 1,
sym_named_identifier,
STATE(9), 1,
sym_cmd_unit,
[1497] = 2,
ACTIONS(296), 1,
sym_closed_paren,
ACTIONS(298), 1,
sym_int_literal,
[1504] = 2,
ACTIONS(300), 1,
sym_named_identifier,
STATE(115), 1,
sym_opt_unit,
[1511] = 2,
ACTIONS(302), 1,
sym_named_identifier,
STATE(103), 1,
sym_arg_unit,
[1518] = 2,
ACTIONS(304), 1,
sym_range,
ACTIONS(306), 1,
sym_int_literal,
[1525] = 2,
ACTIONS(302), 1,
sym_named_identifier,
STATE(126), 1,
sym_arg_unit,
[1532] = 1,
ACTIONS(283), 2,
sym_closed_paren,
sym_comma,
[1537] = 2,
ACTIONS(308), 1,
sym_closed_paren,
ACTIONS(310), 1,
sym_int_literal,
[1544] = 2,
ACTIONS(312), 1,
sym_named_identifier,
STATE(14), 1,
sym_cmd_unit,
[1551] = 2,
ACTIONS(300), 1,
sym_named_identifier,
STATE(123), 1,
sym_opt_unit,
[1558] = 1,
ACTIONS(314), 1,
sym_fat_arrow,
[1562] = 1,
ACTIONS(316), 1,
sym_fat_arrow,
[1566] = 1,
ACTIONS(318), 1,
sym_string_literal,
[1570] = 1,
ACTIONS(320), 1,
sym_fat_arrow,
[1574] = 1,
ACTIONS(322), 1,
sym_range,
[1578] = 1,
ACTIONS(324), 1,
sym_fat_arrow,
[1582] = 1,
ACTIONS(326), 1,
sym_fat_arrow,
[1586] = 1,
ACTIONS(328), 1,
sym_closed_paren,
[1590] = 1,
ACTIONS(330), 1,
sym_open_paren,
[1594] = 1,
ACTIONS(332), 1,
sym_string_literal,
[1598] = 1,
ACTIONS(334), 1,
sym_fat_arrow,
[1602] = 1,
ACTIONS(336), 1,
sym_closed_paren,
[1606] = 1,
ACTIONS(338), 1,
sym_fat_arrow,
[1610] = 1,
ACTIONS(340), 1,
ts_builtin_sym_end,
[1614] = 1,
ACTIONS(342), 1,
sym_open_paren,
[1618] = 1,
ACTIONS(344), 1,
sym_fat_arrow,
[1622] = 1,
ACTIONS(346), 1,
sym_open_paren,
[1626] = 1,
ACTIONS(348), 1,
sym_closed_chevron,
[1630] = 1,
ACTIONS(350), 1,
sym_closed_chevron,
[1634] = 1,
ACTIONS(352), 1,
sym_fat_arrow,
[1638] = 1,
ACTIONS(354), 1,
sym_fat_arrow,
[1642] = 1,
ACTIONS(356), 1,
sym_named_identifier,
[1646] = 1,
ACTIONS(358), 1,
sym_string_literal,
[1650] = 1,
ACTIONS(360), 1,
sym_fat_arrow,
[1654] = 1,
ACTIONS(362), 1,
sym_named_identifier,
[1658] = 1,
ACTIONS(364), 1,
sym_fat_arrow,
[1662] = 1,
ACTIONS(366), 1,
sym_string_literal,
[1666] = 1,
ACTIONS(368), 1,
sym_open_paren,
};
static const uint32_t ts_small_parse_table_map[] = {
[SMALL_STATE(2)] = 0,
[SMALL_STATE(3)] = 30,
[SMALL_STATE(4)] = 60,
[SMALL_STATE(5)] = 90,
[SMALL_STATE(6)] = 120,
[SMALL_STATE(7)] = 150,
[SMALL_STATE(8)] = 180,
[SMALL_STATE(9)] = 210,
[SMALL_STATE(10)] = 234,
[SMALL_STATE(11)] = 260,
[SMALL_STATE(12)] = 280,
[SMALL_STATE(13)] = 306,
[SMALL_STATE(14)] = 326,
[SMALL_STATE(15)] = 350,
[SMALL_STATE(16)] = 376,
[SMALL_STATE(17)] = 402,
[SMALL_STATE(18)] = 422,
[SMALL_STATE(19)] = 448,
[SMALL_STATE(20)] = 465,
[SMALL_STATE(21)] = 480,
[SMALL_STATE(22)] = 499,
[SMALL_STATE(23)] = 514,
[SMALL_STATE(24)] = 533,
[SMALL_STATE(25)] = 552,
[SMALL_STATE(26)] = 572,
[SMALL_STATE(27)] = 592,
[SMALL_STATE(28)] = 610,
[SMALL_STATE(29)] = 628,
[SMALL_STATE(30)] = 648,
[SMALL_STATE(31)] = 662,
[SMALL_STATE(32)] = 676,
[SMALL_STATE(33)] = 690,
[SMALL_STATE(34)] = 708,
[SMALL_STATE(35)] = 728,
[SMALL_STATE(36)] = 746,
[SMALL_STATE(37)] = 762,
[SMALL_STATE(38)] = 776,
[SMALL_STATE(39)] = 794,
[SMALL_STATE(40)] = 814,
[SMALL_STATE(41)] = 832,
[SMALL_STATE(42)] = 850,
[SMALL_STATE(43)] = 864,
[SMALL_STATE(44)] = 878,
[SMALL_STATE(45)] = 898,
[SMALL_STATE(46)] = 912,
[SMALL_STATE(47)] = 932,
[SMALL_STATE(48)] = 952,
[SMALL_STATE(49)] = 970,
[SMALL_STATE(50)] = 983,
[SMALL_STATE(51)] = 994,
[SMALL_STATE(52)] = 1005,
[SMALL_STATE(53)] = 1018,
[SMALL_STATE(54)] = 1031,
[SMALL_STATE(55)] = 1044,
[SMALL_STATE(56)] = 1057,
[SMALL_STATE(57)] = 1070,
[SMALL_STATE(58)] = 1084,
[SMALL_STATE(59)] = 1098,
[SMALL_STATE(60)] = 1110,
[SMALL_STATE(61)] = 1122,
[SMALL_STATE(62)] = 1134,
[SMALL_STATE(63)] = 1146,
[SMALL_STATE(64)] = 1158,
[SMALL_STATE(65)] = 1170,
[SMALL_STATE(66)] = 1182,
[SMALL_STATE(67)] = 1194,
[SMALL_STATE(68)] = 1206,
[SMALL_STATE(69)] = 1218,
[SMALL_STATE(70)] = 1230,
[SMALL_STATE(71)] = 1242,
[SMALL_STATE(72)] = 1254,
[SMALL_STATE(73)] = 1266,
[SMALL_STATE(74)] = 1280,
[SMALL_STATE(75)] = 1294,
[SMALL_STATE(76)] = 1306,
[SMALL_STATE(77)] = 1318,
[SMALL_STATE(78)] = 1330,
[SMALL_STATE(79)] = 1342,
[SMALL_STATE(80)] = 1350,
[SMALL_STATE(81)] = 1362,
[SMALL_STATE(82)] = 1374,
[SMALL_STATE(83)] = 1386,
[SMALL_STATE(84)] = 1398,
[SMALL_STATE(85)] = 1410,
[SMALL_STATE(86)] = 1420,
[SMALL_STATE(87)] = 1430,
[SMALL_STATE(88)] = 1440,
[SMALL_STATE(89)] = 1450,
[SMALL_STATE(90)] = 1460,
[SMALL_STATE(91)] = 1470,
[SMALL_STATE(92)] = 1480,
[SMALL_STATE(93)] = 1490,
[SMALL_STATE(94)] = 1497,
[SMALL_STATE(95)] = 1504,
[SMALL_STATE(96)] = 1511,
[SMALL_STATE(97)] = 1518,
[SMALL_STATE(98)] = 1525,
[SMALL_STATE(99)] = 1532,
[SMALL_STATE(100)] = 1537,
[SMALL_STATE(101)] = 1544,
[SMALL_STATE(102)] = 1551,
[SMALL_STATE(103)] = 1558,
[SMALL_STATE(104)] = 1562,
[SMALL_STATE(105)] = 1566,
[SMALL_STATE(106)] = 1570,
[SMALL_STATE(107)] = 1574,
[SMALL_STATE(108)] = 1578,
[SMALL_STATE(109)] = 1582,
[SMALL_STATE(110)] = 1586,
[SMALL_STATE(111)] = 1590,
[SMALL_STATE(112)] = 1594,
[SMALL_STATE(113)] = 1598,
[SMALL_STATE(114)] = 1602,
[SMALL_STATE(115)] = 1606,
[SMALL_STATE(116)] = 1610,
[SMALL_STATE(117)] = 1614,
[SMALL_STATE(118)] = 1618,
[SMALL_STATE(119)] = 1622,
[SMALL_STATE(120)] = 1626,
[SMALL_STATE(121)] = 1630,
[SMALL_STATE(122)] = 1634,
[SMALL_STATE(123)] = 1638,
[SMALL_STATE(124)] = 1642,
[SMALL_STATE(125)] = 1646,
[SMALL_STATE(126)] = 1650,
[SMALL_STATE(127)] = 1654,
[SMALL_STATE(128)] = 1658,
[SMALL_STATE(129)] = 1662,
[SMALL_STATE(130)] = 1666,
};
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(2),
[7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2),
[9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124),
[11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95),
[13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98),
[15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93),
[17] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, 0, 0),
[19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4),
[21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4),
[23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5),
[25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5),
[27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127),
[29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102),
[31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96),
[33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101),
[35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69),
[37] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0),
[39] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(4),
[42] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(4),
[45] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(124),
[48] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(95),
[51] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(98),
[54] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(93),
[57] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6),
[59] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6),
[61] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71),
[63] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(6),
[66] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(6),
[69] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(127),
[72] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(102),
[75] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(96),
[78] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(101),
[81] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8),
[83] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8),
[85] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62),
[87] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66),
[89] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cmd_declaration, 2, 0, 0),
[91] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cmd_declaration, 2, 0, 0),
[93] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3),
[95] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10),
[97] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82),
[99] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77),
[101] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83),
[103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84),
[105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53),
[107] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_anonymous_enum_expression, 1, 0, 0),
[109] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_anonymous_enum_expression, 1, 0, 0),
[111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75),
[113] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52),
[115] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_anonymous_enum_expression, 2, 0, 0),
[117] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_anonymous_enum_expression, 2, 0, 0),
[119] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7),
[121] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16),
[123] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_constraint_block_repeat1, 2, 0, 0), SHIFT_REPEAT(82),
[126] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_constraint_block_repeat1, 2, 0, 0), SHIFT_REPEAT(77),
[129] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_constraint_block_repeat1, 2, 0, 0), SHIFT_REPEAT(83),
[132] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_constraint_block_repeat1, 2, 0, 0), SHIFT_REPEAT(84),
[135] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_constraint_block_repeat1, 2, 0, 0),
[137] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54),
[139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_anonymous_enum_expression_repeat1, 2, 0, 0),
[141] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_anonymous_enum_expression_repeat1, 2, 0, 0),
[143] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_anonymous_enum_expression_repeat1, 2, 0, 0), SHIFT_REPEAT(75),
[146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55),
[148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_expression, 1, 0, 0),
[150] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type_expression, 1, 0, 0),
[152] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29),
[154] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_literals, 1, 0, 0),
[156] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_literals, 1, 0, 0),
[158] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_anonymous_enum_expression_repeat1, 2, 0, 0), SHIFT_REPEAT(76),
[161] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76),
[163] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36),
[165] = {.entry = {.count = 1, .reusable = false}}, SHIFT(37),
[167] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37),
[169] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19),
[171] = {.entry = {.count = 1, .reusable = false}}, SHIFT(20),
[173] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20),
[175] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_opt_declaration, 4, 0, 0),
[177] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_opt_declaration, 4, 0, 0),
[179] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arg_declaration, 4, 0, 0),
[181] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arg_declaration, 4, 0, 0),
[183] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cmd_unit, 4, 0, 0),
[185] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cmd_unit, 4, 0, 0),
[187] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cmd_unit, 5, 0, 0),
[189] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cmd_unit, 5, 0, 0),
[191] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_nested_type, 4, 0, 3),
[193] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_nested_type, 4, 0, 3),
[195] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_declaration, 4, 0, 0),
[197] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_declaration, 4, 0, 0),
[199] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cmd_declaration, 3, 0, 0),
[201] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cmd_declaration, 3, 0, 0),
[203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26),
[205] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_or_expression, 3, 0, 0),
[207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78),
[209] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__boolean_expression, 3, 0, 0),
[211] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_and_expression, 3, 0, 0),
[213] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constraint_block, 3, 0, 0),
[215] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constraint_block, 3, 0, 0),
[217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constraint_block, 2, 0, 0),
[219] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constraint_block, 2, 0, 0),
[221] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_subcommands_clause, 2, 0, 0),
[223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80),
[225] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_effects_clause, 2, 0, 0),
[227] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cmd_declaration, 4, 0, 0),
[229] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cmd_declaration, 4, 0, 0),
[231] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_declaration, 5, 0, 0),
[233] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_declaration, 5, 0, 0),
[235] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_block, 2, 0, 0),
[237] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration_block, 2, 0, 0),
[239] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arg_declaration, 5, 0, 0),
[241] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arg_declaration, 5, 0, 0),
[243] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_opt_declaration, 5, 0, 0),
[245] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_opt_declaration, 5, 0, 0),
[247] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration_block, 3, 0, 0),
[249] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration_block, 3, 0, 0),
[251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_requires_clause, 2, 0, 0),
[253] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_excludes_clause, 2, 0, 0),
[255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81),
[257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74),
[259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51),
[261] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constraint_declaration, 1, 0, 0),
[263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49),
[265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85),
[267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73),
[269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58),
[271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57),
[273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50),
[275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128),
[277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105),
[279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31),
[281] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106),
[283] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_opt_unit_repeat1, 2, 0, 0),
[285] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_opt_unit_repeat1, 2, 0, 0), SHIFT_REPEAT(105),
[288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30),
[290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42),
[292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45),
[294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119),
[296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109),
[298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110),
[300] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111),
[302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117),
[304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100),
[306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107),
[308] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113),
[310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114),
[312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130),
[314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47),
[316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34),
[318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99),
[320] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_opt_unit, 5, 0, 0),
[322] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94),
[324] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arg_unit, 5, 0, 1),
[326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arg_unit, 5, 0, 2),
[328] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118),
[330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129),
[332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90),
[334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arg_unit, 4, 0, 0),
[336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108),
[338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39),
[340] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(),
[342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97),
[344] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arg_unit, 6, 0, 4),
[346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112),
[348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32),
[350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56),
[352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25),
[354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46),
[356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104),
[358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91),
[360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44),
[362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122),
[364] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_opt_unit, 4, 0, 0),
[366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86),
[368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125),
};
#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_clispec(void) {
static const TSLanguage language = {
.abi_version = LANGUAGE_VERSION,
.symbol_count = SYMBOL_COUNT,
.alias_count = ALIAS_COUNT,
.token_count = TOKEN_COUNT,
.external_token_count = EXTERNAL_TOKEN_COUNT,
.state_count = STATE_COUNT,
.large_state_count = LARGE_STATE_COUNT,
.production_id_count = PRODUCTION_ID_COUNT,
.supertype_count = SUPERTYPE_COUNT,
.field_count = FIELD_COUNT,
.max_alias_sequence_length = MAX_ALIAS_SEQUENCE_LENGTH,
.parse_table = &ts_parse_table[0][0],
.small_parse_table = ts_small_parse_table,
.small_parse_table_map = ts_small_parse_table_map,
.parse_actions = ts_parse_actions,
.symbol_names = ts_symbol_names,
.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,
.keyword_lex_fn = ts_lex_keywords,
.keyword_capture_token = sym_identifier,
.primary_state_ids = ts_primary_state_ids,
.name = "clispec",
.max_reserved_word_set_size = 0,
.metadata = {
.major_version = 0,
.minor_version = 1,
.patch_version = 2,
},
};
return &language;
}
#ifdef __cplusplus
}
#endif