#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 58
#define LARGE_STATE_COUNT 2
#define SYMBOL_COUNT 49
#define ALIAS_COUNT 0
#define TOKEN_COUNT 22
#define EXTERNAL_TOKEN_COUNT 0
#define FIELD_COUNT 15
#define MAX_ALIAS_SEQUENCE_LENGTH 5
#define PRODUCTION_ID_COUNT 18
enum ts_symbol_identifiers {
anon_sym_COMMA = 1,
anon_sym_COLON = 2,
anon_sym_LPAREN = 3,
anon_sym_RPAREN = 4,
anon_sym_LBRACE = 5,
anon_sym_RBRACE = 6,
anon_sym_LBRACK = 7,
anon_sym_RBRACK = 8,
anon_sym_drop = 9,
anon_sym_lowest = 10,
anon_sym_highest = 11,
sym_negative_constant = 12,
anon_sym_PLUS = 13,
anon_sym_DASH = 14,
aux_sym_mul_token1 = 15,
aux_sym_div_token1 = 16,
anon_sym_PERCENT = 17,
anon_sym_CARET = 18,
sym_constant = 19,
sym__d = 20,
sym_identifier = 21,
sym_function = 22,
sym_parameters = 23,
sym_parameter = 24,
sym__expression = 25,
sym_group = 26,
sym_variable = 27,
sym_range = 28,
sym__dice = 29,
sym_standard_dice = 30,
sym_custom_dice = 31,
sym__dice_count = 32,
sym__standard_faces = 33,
sym_custom_faces = 34,
sym__custom_face = 35,
sym_drop_lowest = 36,
sym_drop_highest = 37,
sym__drop_expression = 38,
sym__arithmetic = 39,
sym_add = 40,
sym_sub = 41,
sym_mul = 42,
sym_div = 43,
sym_mod = 44,
sym_exp = 45,
sym_neg = 46,
aux_sym_parameters_repeat1 = 47,
aux_sym_custom_faces_repeat1 = 48,
};
static const char * const ts_symbol_names[] = {
[ts_builtin_sym_end] = "end",
[anon_sym_COMMA] = ",",
[anon_sym_COLON] = ":",
[anon_sym_LPAREN] = "(",
[anon_sym_RPAREN] = ")",
[anon_sym_LBRACE] = "{",
[anon_sym_RBRACE] = "}",
[anon_sym_LBRACK] = "[",
[anon_sym_RBRACK] = "]",
[anon_sym_drop] = "drop",
[anon_sym_lowest] = "lowest",
[anon_sym_highest] = "highest",
[sym_negative_constant] = "negative_constant",
[anon_sym_PLUS] = "+",
[anon_sym_DASH] = "-",
[aux_sym_mul_token1] = "mul_token1",
[aux_sym_div_token1] = "div_token1",
[anon_sym_PERCENT] = "%",
[anon_sym_CARET] = "^",
[sym_constant] = "constant",
[sym__d] = "_d",
[sym_identifier] = "identifier",
[sym_function] = "function",
[sym_parameters] = "parameters",
[sym_parameter] = "parameter",
[sym__expression] = "_expression",
[sym_group] = "group",
[sym_variable] = "variable",
[sym_range] = "range",
[sym__dice] = "_dice",
[sym_standard_dice] = "standard_dice",
[sym_custom_dice] = "custom_dice",
[sym__dice_count] = "_dice_count",
[sym__standard_faces] = "_standard_faces",
[sym_custom_faces] = "custom_faces",
[sym__custom_face] = "_custom_face",
[sym_drop_lowest] = "drop_lowest",
[sym_drop_highest] = "drop_highest",
[sym__drop_expression] = "_drop_expression",
[sym__arithmetic] = "_arithmetic",
[sym_add] = "add",
[sym_sub] = "sub",
[sym_mul] = "mul",
[sym_div] = "div",
[sym_mod] = "mod",
[sym_exp] = "exp",
[sym_neg] = "neg",
[aux_sym_parameters_repeat1] = "parameters_repeat1",
[aux_sym_custom_faces_repeat1] = "custom_faces_repeat1",
};
static const TSSymbol ts_symbol_map[] = {
[ts_builtin_sym_end] = ts_builtin_sym_end,
[anon_sym_COMMA] = anon_sym_COMMA,
[anon_sym_COLON] = anon_sym_COLON,
[anon_sym_LPAREN] = anon_sym_LPAREN,
[anon_sym_RPAREN] = anon_sym_RPAREN,
[anon_sym_LBRACE] = anon_sym_LBRACE,
[anon_sym_RBRACE] = anon_sym_RBRACE,
[anon_sym_LBRACK] = anon_sym_LBRACK,
[anon_sym_RBRACK] = anon_sym_RBRACK,
[anon_sym_drop] = anon_sym_drop,
[anon_sym_lowest] = anon_sym_lowest,
[anon_sym_highest] = anon_sym_highest,
[sym_negative_constant] = sym_negative_constant,
[anon_sym_PLUS] = anon_sym_PLUS,
[anon_sym_DASH] = anon_sym_DASH,
[aux_sym_mul_token1] = aux_sym_mul_token1,
[aux_sym_div_token1] = aux_sym_div_token1,
[anon_sym_PERCENT] = anon_sym_PERCENT,
[anon_sym_CARET] = anon_sym_CARET,
[sym_constant] = sym_constant,
[sym__d] = sym__d,
[sym_identifier] = sym_identifier,
[sym_function] = sym_function,
[sym_parameters] = sym_parameters,
[sym_parameter] = sym_parameter,
[sym__expression] = sym__expression,
[sym_group] = sym_group,
[sym_variable] = sym_variable,
[sym_range] = sym_range,
[sym__dice] = sym__dice,
[sym_standard_dice] = sym_standard_dice,
[sym_custom_dice] = sym_custom_dice,
[sym__dice_count] = sym__dice_count,
[sym__standard_faces] = sym__standard_faces,
[sym_custom_faces] = sym_custom_faces,
[sym__custom_face] = sym__custom_face,
[sym_drop_lowest] = sym_drop_lowest,
[sym_drop_highest] = sym_drop_highest,
[sym__drop_expression] = sym__drop_expression,
[sym__arithmetic] = sym__arithmetic,
[sym_add] = sym_add,
[sym_sub] = sym_sub,
[sym_mul] = sym_mul,
[sym_div] = sym_div,
[sym_mod] = sym_mod,
[sym_exp] = sym_exp,
[sym_neg] = sym_neg,
[aux_sym_parameters_repeat1] = aux_sym_parameters_repeat1,
[aux_sym_custom_faces_repeat1] = aux_sym_custom_faces_repeat1,
};
static const TSSymbolMetadata ts_symbol_metadata[] = {
[ts_builtin_sym_end] = {
.visible = false,
.named = true,
},
[anon_sym_COMMA] = {
.visible = true,
.named = false,
},
[anon_sym_COLON] = {
.visible = true,
.named = false,
},
[anon_sym_LPAREN] = {
.visible = true,
.named = false,
},
[anon_sym_RPAREN] = {
.visible = true,
.named = false,
},
[anon_sym_LBRACE] = {
.visible = true,
.named = false,
},
[anon_sym_RBRACE] = {
.visible = true,
.named = false,
},
[anon_sym_LBRACK] = {
.visible = true,
.named = false,
},
[anon_sym_RBRACK] = {
.visible = true,
.named = false,
},
[anon_sym_drop] = {
.visible = true,
.named = false,
},
[anon_sym_lowest] = {
.visible = true,
.named = false,
},
[anon_sym_highest] = {
.visible = true,
.named = false,
},
[sym_negative_constant] = {
.visible = true,
.named = true,
},
[anon_sym_PLUS] = {
.visible = true,
.named = false,
},
[anon_sym_DASH] = {
.visible = true,
.named = false,
},
[aux_sym_mul_token1] = {
.visible = false,
.named = false,
},
[aux_sym_div_token1] = {
.visible = false,
.named = false,
},
[anon_sym_PERCENT] = {
.visible = true,
.named = false,
},
[anon_sym_CARET] = {
.visible = true,
.named = false,
},
[sym_constant] = {
.visible = true,
.named = true,
},
[sym__d] = {
.visible = false,
.named = true,
},
[sym_identifier] = {
.visible = true,
.named = true,
},
[sym_function] = {
.visible = true,
.named = true,
},
[sym_parameters] = {
.visible = true,
.named = true,
},
[sym_parameter] = {
.visible = true,
.named = true,
},
[sym__expression] = {
.visible = false,
.named = true,
},
[sym_group] = {
.visible = true,
.named = true,
},
[sym_variable] = {
.visible = true,
.named = true,
},
[sym_range] = {
.visible = true,
.named = true,
},
[sym__dice] = {
.visible = false,
.named = true,
},
[sym_standard_dice] = {
.visible = true,
.named = true,
},
[sym_custom_dice] = {
.visible = true,
.named = true,
},
[sym__dice_count] = {
.visible = false,
.named = true,
},
[sym__standard_faces] = {
.visible = false,
.named = true,
},
[sym_custom_faces] = {
.visible = true,
.named = true,
},
[sym__custom_face] = {
.visible = false,
.named = true,
},
[sym_drop_lowest] = {
.visible = true,
.named = true,
},
[sym_drop_highest] = {
.visible = true,
.named = true,
},
[sym__drop_expression] = {
.visible = false,
.named = true,
},
[sym__arithmetic] = {
.visible = false,
.named = true,
},
[sym_add] = {
.visible = true,
.named = true,
},
[sym_sub] = {
.visible = true,
.named = true,
},
[sym_mul] = {
.visible = true,
.named = true,
},
[sym_div] = {
.visible = true,
.named = true,
},
[sym_mod] = {
.visible = true,
.named = true,
},
[sym_exp] = {
.visible = true,
.named = true,
},
[sym_neg] = {
.visible = true,
.named = true,
},
[aux_sym_parameters_repeat1] = {
.visible = false,
.named = false,
},
[aux_sym_custom_faces_repeat1] = {
.visible = false,
.named = false,
},
};
enum ts_field_identifiers {
field_body = 1,
field_count = 2,
field_dice = 3,
field_drop = 4,
field_end = 5,
field_expression = 6,
field_face = 7,
field_faces = 8,
field_identifier = 9,
field_op = 10,
field_op1 = 11,
field_op2 = 12,
field_parameter = 13,
field_parameters = 14,
field_start = 15,
};
static const char * const ts_field_names[] = {
[0] = NULL,
[field_body] = "body",
[field_count] = "count",
[field_dice] = "dice",
[field_drop] = "drop",
[field_end] = "end",
[field_expression] = "expression",
[field_face] = "face",
[field_faces] = "faces",
[field_identifier] = "identifier",
[field_op] = "op",
[field_op1] = "op1",
[field_op2] = "op2",
[field_parameter] = "parameter",
[field_parameters] = "parameters",
[field_start] = "start",
};
static const TSFieldMapSlice 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 = 1},
[5] = {.index = 5, .length = 1},
[6] = {.index = 6, .length = 1},
[7] = {.index = 7, .length = 1},
[8] = {.index = 8, .length = 2},
[9] = {.index = 10, .length = 2},
[10] = {.index = 12, .length = 2},
[11] = {.index = 14, .length = 1},
[12] = {.index = 15, .length = 2},
[13] = {.index = 17, .length = 2},
[14] = {.index = 19, .length = 2},
[15] = {.index = 21, .length = 1},
[16] = {.index = 22, .length = 2},
[17] = {.index = 24, .length = 2},
};
static const TSFieldMapEntry ts_field_map_entries[] = {
[0] =
{field_body, 0},
[1] =
{field_op, 1},
[2] =
{field_body, 1},
{field_parameters, 0},
[4] =
{field_parameter, 0},
[5] =
{field_expression, 1},
[6] =
{field_identifier, 1},
[7] =
{field_parameter, 1},
[8] =
{field_parameter, 0},
{field_parameter, 1, .inherited = true},
[10] =
{field_parameter, 0, .inherited = true},
{field_parameter, 1, .inherited = true},
[12] =
{field_op1, 0},
{field_op2, 2},
[14] =
{field_dice, 0},
[15] =
{field_count, 0},
{field_faces, 2},
[17] =
{field_dice, 0},
{field_drop, 3},
[19] =
{field_end, 3},
{field_start, 1},
[21] =
{field_face, 1},
[22] =
{field_face, 1},
{field_face, 2, .inherited = true},
[24] =
{field_face, 0, .inherited = true},
{field_face, 1, .inherited = true},
};
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,
[55] = 55,
[56] = 56,
[57] = 57,
};
static TSCharacterRange sym_identifier_character_set_1[] = {
{'A', 'Z'}, {'_', '_'}, {'a', 'z'}, {0xaa, 0xaa}, {0xb5, 0xb5}, {0xba, 0xba}, {0xc0, 0xd6}, {0xd8, 0xf6},
{0xf8, 0x2c1}, {0x2c6, 0x2d1}, {0x2e0, 0x2e4}, {0x2ec, 0x2ec}, {0x2ee, 0x2ee}, {0x370, 0x374}, {0x376, 0x377}, {0x37a, 0x37d},
{0x37f, 0x37f}, {0x386, 0x386}, {0x388, 0x38a}, {0x38c, 0x38c}, {0x38e, 0x3a1}, {0x3a3, 0x3f5}, {0x3f7, 0x481}, {0x48a, 0x52f},
{0x531, 0x556}, {0x559, 0x559}, {0x560, 0x588}, {0x5d0, 0x5ea}, {0x5ef, 0x5f2}, {0x620, 0x64a}, {0x66e, 0x66f}, {0x671, 0x6d3},
{0x6d5, 0x6d5}, {0x6e5, 0x6e6}, {0x6ee, 0x6ef}, {0x6fa, 0x6fc}, {0x6ff, 0x6ff}, {0x710, 0x710}, {0x712, 0x72f}, {0x74d, 0x7a5},
{0x7b1, 0x7b1}, {0x7ca, 0x7ea}, {0x7f4, 0x7f5}, {0x7fa, 0x7fa}, {0x800, 0x815}, {0x81a, 0x81a}, {0x824, 0x824}, {0x828, 0x828},
{0x840, 0x858}, {0x860, 0x86a}, {0x870, 0x887}, {0x889, 0x88e}, {0x8a0, 0x8c9}, {0x904, 0x939}, {0x93d, 0x93d}, {0x950, 0x950},
{0x958, 0x961}, {0x971, 0x980}, {0x985, 0x98c}, {0x98f, 0x990}, {0x993, 0x9a8}, {0x9aa, 0x9b0}, {0x9b2, 0x9b2}, {0x9b6, 0x9b9},
{0x9bd, 0x9bd}, {0x9ce, 0x9ce}, {0x9dc, 0x9dd}, {0x9df, 0x9e1}, {0x9f0, 0x9f1}, {0x9fc, 0x9fc}, {0xa05, 0xa0a}, {0xa0f, 0xa10},
{0xa13, 0xa28}, {0xa2a, 0xa30}, {0xa32, 0xa33}, {0xa35, 0xa36}, {0xa38, 0xa39}, {0xa59, 0xa5c}, {0xa5e, 0xa5e}, {0xa72, 0xa74},
{0xa85, 0xa8d}, {0xa8f, 0xa91}, {0xa93, 0xaa8}, {0xaaa, 0xab0}, {0xab2, 0xab3}, {0xab5, 0xab9}, {0xabd, 0xabd}, {0xad0, 0xad0},
{0xae0, 0xae1}, {0xaf9, 0xaf9}, {0xb05, 0xb0c}, {0xb0f, 0xb10}, {0xb13, 0xb28}, {0xb2a, 0xb30}, {0xb32, 0xb33}, {0xb35, 0xb39},
{0xb3d, 0xb3d}, {0xb5c, 0xb5d}, {0xb5f, 0xb61}, {0xb71, 0xb71}, {0xb83, 0xb83}, {0xb85, 0xb8a}, {0xb8e, 0xb90}, {0xb92, 0xb95},
{0xb99, 0xb9a}, {0xb9c, 0xb9c}, {0xb9e, 0xb9f}, {0xba3, 0xba4}, {0xba8, 0xbaa}, {0xbae, 0xbb9}, {0xbd0, 0xbd0}, {0xc05, 0xc0c},
{0xc0e, 0xc10}, {0xc12, 0xc28}, {0xc2a, 0xc39}, {0xc3d, 0xc3d}, {0xc58, 0xc5a}, {0xc5d, 0xc5d}, {0xc60, 0xc61}, {0xc80, 0xc80},
{0xc85, 0xc8c}, {0xc8e, 0xc90}, {0xc92, 0xca8}, {0xcaa, 0xcb3}, {0xcb5, 0xcb9}, {0xcbd, 0xcbd}, {0xcdd, 0xcde}, {0xce0, 0xce1},
{0xcf1, 0xcf2}, {0xd04, 0xd0c}, {0xd0e, 0xd10}, {0xd12, 0xd3a}, {0xd3d, 0xd3d}, {0xd4e, 0xd4e}, {0xd54, 0xd56}, {0xd5f, 0xd61},
{0xd7a, 0xd7f}, {0xd85, 0xd96}, {0xd9a, 0xdb1}, {0xdb3, 0xdbb}, {0xdbd, 0xdbd}, {0xdc0, 0xdc6}, {0xe01, 0xe30}, {0xe32, 0xe33},
{0xe40, 0xe46}, {0xe81, 0xe82}, {0xe84, 0xe84}, {0xe86, 0xe8a}, {0xe8c, 0xea3}, {0xea5, 0xea5}, {0xea7, 0xeb0}, {0xeb2, 0xeb3},
{0xebd, 0xebd}, {0xec0, 0xec4}, {0xec6, 0xec6}, {0xedc, 0xedf}, {0xf00, 0xf00}, {0xf40, 0xf47}, {0xf49, 0xf6c}, {0xf88, 0xf8c},
{0x1000, 0x102a}, {0x103f, 0x103f}, {0x1050, 0x1055}, {0x105a, 0x105d}, {0x1061, 0x1061}, {0x1065, 0x1066}, {0x106e, 0x1070}, {0x1075, 0x1081},
{0x108e, 0x108e}, {0x10a0, 0x10c5}, {0x10c7, 0x10c7}, {0x10cd, 0x10cd}, {0x10d0, 0x10fa}, {0x10fc, 0x1248}, {0x124a, 0x124d}, {0x1250, 0x1256},
{0x1258, 0x1258}, {0x125a, 0x125d}, {0x1260, 0x1288}, {0x128a, 0x128d}, {0x1290, 0x12b0}, {0x12b2, 0x12b5}, {0x12b8, 0x12be}, {0x12c0, 0x12c0},
{0x12c2, 0x12c5}, {0x12c8, 0x12d6}, {0x12d8, 0x1310}, {0x1312, 0x1315}, {0x1318, 0x135a}, {0x1380, 0x138f}, {0x13a0, 0x13f5}, {0x13f8, 0x13fd},
{0x1401, 0x166c}, {0x166f, 0x167f}, {0x1681, 0x169a}, {0x16a0, 0x16ea}, {0x16f1, 0x16f8}, {0x1700, 0x1711}, {0x171f, 0x1731}, {0x1740, 0x1751},
{0x1760, 0x176c}, {0x176e, 0x1770}, {0x1780, 0x17b3}, {0x17d7, 0x17d7}, {0x17dc, 0x17dc}, {0x1820, 0x1878}, {0x1880, 0x1884}, {0x1887, 0x18a8},
{0x18aa, 0x18aa}, {0x18b0, 0x18f5}, {0x1900, 0x191e}, {0x1950, 0x196d}, {0x1970, 0x1974}, {0x1980, 0x19ab}, {0x19b0, 0x19c9}, {0x1a00, 0x1a16},
{0x1a20, 0x1a54}, {0x1aa7, 0x1aa7}, {0x1b05, 0x1b33}, {0x1b45, 0x1b4c}, {0x1b83, 0x1ba0}, {0x1bae, 0x1baf}, {0x1bba, 0x1be5}, {0x1c00, 0x1c23},
{0x1c4d, 0x1c4f}, {0x1c5a, 0x1c7d}, {0x1c80, 0x1c88}, {0x1c90, 0x1cba}, {0x1cbd, 0x1cbf}, {0x1ce9, 0x1cec}, {0x1cee, 0x1cf3}, {0x1cf5, 0x1cf6},
{0x1cfa, 0x1cfa}, {0x1d00, 0x1dbf}, {0x1e00, 0x1f15}, {0x1f18, 0x1f1d}, {0x1f20, 0x1f45}, {0x1f48, 0x1f4d}, {0x1f50, 0x1f57}, {0x1f59, 0x1f59},
{0x1f5b, 0x1f5b}, {0x1f5d, 0x1f5d}, {0x1f5f, 0x1f7d}, {0x1f80, 0x1fb4}, {0x1fb6, 0x1fbc}, {0x1fbe, 0x1fbe}, {0x1fc2, 0x1fc4}, {0x1fc6, 0x1fcc},
{0x1fd0, 0x1fd3}, {0x1fd6, 0x1fdb}, {0x1fe0, 0x1fec}, {0x1ff2, 0x1ff4}, {0x1ff6, 0x1ffc}, {0x2071, 0x2071}, {0x207f, 0x207f}, {0x2090, 0x209c},
{0x2102, 0x2102}, {0x2107, 0x2107}, {0x210a, 0x2113}, {0x2115, 0x2115}, {0x2119, 0x211d}, {0x2124, 0x2124}, {0x2126, 0x2126}, {0x2128, 0x2128},
{0x212a, 0x212d}, {0x212f, 0x2139}, {0x213c, 0x213f}, {0x2145, 0x2149}, {0x214e, 0x214e}, {0x2183, 0x2184}, {0x2c00, 0x2ce4}, {0x2ceb, 0x2cee},
{0x2cf2, 0x2cf3}, {0x2d00, 0x2d25}, {0x2d27, 0x2d27}, {0x2d2d, 0x2d2d}, {0x2d30, 0x2d67}, {0x2d6f, 0x2d6f}, {0x2d80, 0x2d96}, {0x2da0, 0x2da6},
{0x2da8, 0x2dae}, {0x2db0, 0x2db6}, {0x2db8, 0x2dbe}, {0x2dc0, 0x2dc6}, {0x2dc8, 0x2dce}, {0x2dd0, 0x2dd6}, {0x2dd8, 0x2dde}, {0x2e2f, 0x2e2f},
{0x3005, 0x3006}, {0x3031, 0x3035}, {0x303b, 0x303c}, {0x3041, 0x3096}, {0x309d, 0x309f}, {0x30a1, 0x30fa}, {0x30fc, 0x30ff}, {0x3105, 0x312f},
{0x3131, 0x318e}, {0x31a0, 0x31bf}, {0x31f0, 0x31ff}, {0x3400, 0x3400}, {0x4dbf, 0x4dbf}, {0x4e00, 0x4e00}, {0x9fff, 0xa48c}, {0xa4d0, 0xa4fd},
{0xa500, 0xa60c}, {0xa610, 0xa61f}, {0xa62a, 0xa62b}, {0xa640, 0xa66e}, {0xa67f, 0xa69d}, {0xa6a0, 0xa6e5}, {0xa717, 0xa71f}, {0xa722, 0xa788},
{0xa78b, 0xa7ca}, {0xa7d0, 0xa7d1}, {0xa7d3, 0xa7d3}, {0xa7d5, 0xa7d9}, {0xa7f2, 0xa801}, {0xa803, 0xa805}, {0xa807, 0xa80a}, {0xa80c, 0xa822},
{0xa840, 0xa873}, {0xa882, 0xa8b3}, {0xa8f2, 0xa8f7}, {0xa8fb, 0xa8fb}, {0xa8fd, 0xa8fe}, {0xa90a, 0xa925}, {0xa930, 0xa946}, {0xa960, 0xa97c},
{0xa984, 0xa9b2}, {0xa9cf, 0xa9cf}, {0xa9e0, 0xa9e4}, {0xa9e6, 0xa9ef}, {0xa9fa, 0xa9fe}, {0xaa00, 0xaa28}, {0xaa40, 0xaa42}, {0xaa44, 0xaa4b},
{0xaa60, 0xaa76}, {0xaa7a, 0xaa7a}, {0xaa7e, 0xaaaf}, {0xaab1, 0xaab1}, {0xaab5, 0xaab6}, {0xaab9, 0xaabd}, {0xaac0, 0xaac0}, {0xaac2, 0xaac2},
{0xaadb, 0xaadd}, {0xaae0, 0xaaea}, {0xaaf2, 0xaaf4}, {0xab01, 0xab06}, {0xab09, 0xab0e}, {0xab11, 0xab16}, {0xab20, 0xab26}, {0xab28, 0xab2e},
{0xab30, 0xab5a}, {0xab5c, 0xab69}, {0xab70, 0xabe2}, {0xac00, 0xac00}, {0xd7a3, 0xd7a3}, {0xd7b0, 0xd7c6}, {0xd7cb, 0xd7fb}, {0xf900, 0xfa6d},
{0xfa70, 0xfad9}, {0xfb00, 0xfb06}, {0xfb13, 0xfb17}, {0xfb1d, 0xfb1d}, {0xfb1f, 0xfb28}, {0xfb2a, 0xfb36}, {0xfb38, 0xfb3c}, {0xfb3e, 0xfb3e},
{0xfb40, 0xfb41}, {0xfb43, 0xfb44}, {0xfb46, 0xfbb1}, {0xfbd3, 0xfd3d}, {0xfd50, 0xfd8f}, {0xfd92, 0xfdc7}, {0xfdf0, 0xfdfb}, {0xfe70, 0xfe74},
{0xfe76, 0xfefc}, {0xff21, 0xff3a}, {0xff41, 0xff5a}, {0xff66, 0xffbe}, {0xffc2, 0xffc7}, {0xffca, 0xffcf}, {0xffd2, 0xffd7}, {0xffda, 0xffdc},
{0x10000, 0x1000b}, {0x1000d, 0x10026}, {0x10028, 0x1003a}, {0x1003c, 0x1003d}, {0x1003f, 0x1004d}, {0x10050, 0x1005d}, {0x10080, 0x100fa}, {0x10280, 0x1029c},
{0x102a0, 0x102d0}, {0x10300, 0x1031f}, {0x1032d, 0x10340}, {0x10342, 0x10349}, {0x10350, 0x10375}, {0x10380, 0x1039d}, {0x103a0, 0x103c3}, {0x103c8, 0x103cf},
{0x10400, 0x1049d}, {0x104b0, 0x104d3}, {0x104d8, 0x104fb}, {0x10500, 0x10527}, {0x10530, 0x10563}, {0x10570, 0x1057a}, {0x1057c, 0x1058a}, {0x1058c, 0x10592},
{0x10594, 0x10595}, {0x10597, 0x105a1}, {0x105a3, 0x105b1}, {0x105b3, 0x105b9}, {0x105bb, 0x105bc}, {0x10600, 0x10736}, {0x10740, 0x10755}, {0x10760, 0x10767},
{0x10780, 0x10785}, {0x10787, 0x107b0}, {0x107b2, 0x107ba}, {0x10800, 0x10805}, {0x10808, 0x10808}, {0x1080a, 0x10835}, {0x10837, 0x10838}, {0x1083c, 0x1083c},
{0x1083f, 0x10855}, {0x10860, 0x10876}, {0x10880, 0x1089e}, {0x108e0, 0x108f2}, {0x108f4, 0x108f5}, {0x10900, 0x10915}, {0x10920, 0x1092b},
};
static TSCharacterRange sym_identifier_character_set_2[] = {
{' ', ' '}, {'-', '.'}, {'0', '9'}, {'A', 'Z'}, {'_', '_'}, {'a', 'z'}, {0xa0, 0xa0}, {0xaa, 0xaa},
{0xb2, 0xb3}, {0xb5, 0xb5}, {0xb9, 0xba}, {0xbc, 0xbe}, {0xc0, 0xd6}, {0xd8, 0xf6}, {0xf8, 0x2c1}, {0x2c6, 0x2d1},
{0x2e0, 0x2e4}, {0x2ec, 0x2ec}, {0x2ee, 0x2ee}, {0x370, 0x374}, {0x376, 0x377}, {0x37a, 0x37d}, {0x37f, 0x37f}, {0x386, 0x386},
{0x388, 0x38a}, {0x38c, 0x38c}, {0x38e, 0x3a1}, {0x3a3, 0x3f5}, {0x3f7, 0x481}, {0x48a, 0x52f}, {0x531, 0x556}, {0x559, 0x559},
{0x560, 0x588}, {0x5d0, 0x5ea}, {0x5ef, 0x5f2}, {0x620, 0x64a}, {0x660, 0x669}, {0x66e, 0x66f}, {0x671, 0x6d3}, {0x6d5, 0x6d5},
{0x6e5, 0x6e6}, {0x6ee, 0x6fc}, {0x6ff, 0x6ff}, {0x710, 0x710}, {0x712, 0x72f}, {0x74d, 0x7a5}, {0x7b1, 0x7b1}, {0x7c0, 0x7ea},
{0x7f4, 0x7f5}, {0x7fa, 0x7fa}, {0x800, 0x815}, {0x81a, 0x81a}, {0x824, 0x824}, {0x828, 0x828}, {0x840, 0x858}, {0x860, 0x86a},
{0x870, 0x887}, {0x889, 0x88e}, {0x8a0, 0x8c9}, {0x904, 0x939}, {0x93d, 0x93d}, {0x950, 0x950}, {0x958, 0x961}, {0x966, 0x96f},
{0x971, 0x980}, {0x985, 0x98c}, {0x98f, 0x990}, {0x993, 0x9a8}, {0x9aa, 0x9b0}, {0x9b2, 0x9b2}, {0x9b6, 0x9b9}, {0x9bd, 0x9bd},
{0x9ce, 0x9ce}, {0x9dc, 0x9dd}, {0x9df, 0x9e1}, {0x9e6, 0x9f1}, {0x9f4, 0x9f9}, {0x9fc, 0x9fc}, {0xa05, 0xa0a}, {0xa0f, 0xa10},
{0xa13, 0xa28}, {0xa2a, 0xa30}, {0xa32, 0xa33}, {0xa35, 0xa36}, {0xa38, 0xa39}, {0xa59, 0xa5c}, {0xa5e, 0xa5e}, {0xa66, 0xa6f},
{0xa72, 0xa74}, {0xa85, 0xa8d}, {0xa8f, 0xa91}, {0xa93, 0xaa8}, {0xaaa, 0xab0}, {0xab2, 0xab3}, {0xab5, 0xab9}, {0xabd, 0xabd},
{0xad0, 0xad0}, {0xae0, 0xae1}, {0xae6, 0xaef}, {0xaf9, 0xaf9}, {0xb05, 0xb0c}, {0xb0f, 0xb10}, {0xb13, 0xb28}, {0xb2a, 0xb30},
{0xb32, 0xb33}, {0xb35, 0xb39}, {0xb3d, 0xb3d}, {0xb5c, 0xb5d}, {0xb5f, 0xb61}, {0xb66, 0xb6f}, {0xb71, 0xb77}, {0xb83, 0xb83},
{0xb85, 0xb8a}, {0xb8e, 0xb90}, {0xb92, 0xb95}, {0xb99, 0xb9a}, {0xb9c, 0xb9c}, {0xb9e, 0xb9f}, {0xba3, 0xba4}, {0xba8, 0xbaa},
{0xbae, 0xbb9}, {0xbd0, 0xbd0}, {0xbe6, 0xbf2}, {0xc05, 0xc0c}, {0xc0e, 0xc10}, {0xc12, 0xc28}, {0xc2a, 0xc39}, {0xc3d, 0xc3d},
{0xc58, 0xc5a}, {0xc5d, 0xc5d}, {0xc60, 0xc61}, {0xc66, 0xc6f}, {0xc78, 0xc7e}, {0xc80, 0xc80}, {0xc85, 0xc8c}, {0xc8e, 0xc90},
{0xc92, 0xca8}, {0xcaa, 0xcb3}, {0xcb5, 0xcb9}, {0xcbd, 0xcbd}, {0xcdd, 0xcde}, {0xce0, 0xce1}, {0xce6, 0xcef}, {0xcf1, 0xcf2},
{0xd04, 0xd0c}, {0xd0e, 0xd10}, {0xd12, 0xd3a}, {0xd3d, 0xd3d}, {0xd4e, 0xd4e}, {0xd54, 0xd56}, {0xd58, 0xd61}, {0xd66, 0xd78},
{0xd7a, 0xd7f}, {0xd85, 0xd96}, {0xd9a, 0xdb1}, {0xdb3, 0xdbb}, {0xdbd, 0xdbd}, {0xdc0, 0xdc6}, {0xde6, 0xdef}, {0xe01, 0xe30},
{0xe32, 0xe33}, {0xe40, 0xe46}, {0xe50, 0xe59}, {0xe81, 0xe82}, {0xe84, 0xe84}, {0xe86, 0xe8a}, {0xe8c, 0xea3}, {0xea5, 0xea5},
{0xea7, 0xeb0}, {0xeb2, 0xeb3}, {0xebd, 0xebd}, {0xec0, 0xec4}, {0xec6, 0xec6}, {0xed0, 0xed9}, {0xedc, 0xedf}, {0xf00, 0xf00},
{0xf20, 0xf33}, {0xf40, 0xf47}, {0xf49, 0xf6c}, {0xf88, 0xf8c}, {0x1000, 0x102a}, {0x103f, 0x1049}, {0x1050, 0x1055}, {0x105a, 0x105d},
{0x1061, 0x1061}, {0x1065, 0x1066}, {0x106e, 0x1070}, {0x1075, 0x1081}, {0x108e, 0x108e}, {0x1090, 0x1099}, {0x10a0, 0x10c5}, {0x10c7, 0x10c7},
{0x10cd, 0x10cd}, {0x10d0, 0x10fa}, {0x10fc, 0x1248}, {0x124a, 0x124d}, {0x1250, 0x1256}, {0x1258, 0x1258}, {0x125a, 0x125d}, {0x1260, 0x1288},
{0x128a, 0x128d}, {0x1290, 0x12b0}, {0x12b2, 0x12b5}, {0x12b8, 0x12be}, {0x12c0, 0x12c0}, {0x12c2, 0x12c5}, {0x12c8, 0x12d6}, {0x12d8, 0x1310},
{0x1312, 0x1315}, {0x1318, 0x135a}, {0x1369, 0x137c}, {0x1380, 0x138f}, {0x13a0, 0x13f5}, {0x13f8, 0x13fd}, {0x1401, 0x166c}, {0x166f, 0x169a},
{0x16a0, 0x16ea}, {0x16ee, 0x16f8}, {0x1700, 0x1711}, {0x171f, 0x1731}, {0x1740, 0x1751}, {0x1760, 0x176c}, {0x176e, 0x1770}, {0x1780, 0x17b3},
{0x17d7, 0x17d7}, {0x17dc, 0x17dc}, {0x17e0, 0x17e9}, {0x17f0, 0x17f9}, {0x1810, 0x1819}, {0x1820, 0x1878}, {0x1880, 0x1884}, {0x1887, 0x18a8},
{0x18aa, 0x18aa}, {0x18b0, 0x18f5}, {0x1900, 0x191e}, {0x1946, 0x196d}, {0x1970, 0x1974}, {0x1980, 0x19ab}, {0x19b0, 0x19c9}, {0x19d0, 0x19da},
{0x1a00, 0x1a16}, {0x1a20, 0x1a54}, {0x1a80, 0x1a89}, {0x1a90, 0x1a99}, {0x1aa7, 0x1aa7}, {0x1b05, 0x1b33}, {0x1b45, 0x1b4c}, {0x1b50, 0x1b59},
{0x1b83, 0x1ba0}, {0x1bae, 0x1be5}, {0x1c00, 0x1c23}, {0x1c40, 0x1c49}, {0x1c4d, 0x1c7d}, {0x1c80, 0x1c88}, {0x1c90, 0x1cba}, {0x1cbd, 0x1cbf},
{0x1ce9, 0x1cec}, {0x1cee, 0x1cf3}, {0x1cf5, 0x1cf6}, {0x1cfa, 0x1cfa}, {0x1d00, 0x1dbf}, {0x1e00, 0x1f15}, {0x1f18, 0x1f1d}, {0x1f20, 0x1f45},
{0x1f48, 0x1f4d}, {0x1f50, 0x1f57}, {0x1f59, 0x1f59}, {0x1f5b, 0x1f5b}, {0x1f5d, 0x1f5d}, {0x1f5f, 0x1f7d}, {0x1f80, 0x1fb4}, {0x1fb6, 0x1fbc},
{0x1fbe, 0x1fbe}, {0x1fc2, 0x1fc4}, {0x1fc6, 0x1fcc}, {0x1fd0, 0x1fd3}, {0x1fd6, 0x1fdb}, {0x1fe0, 0x1fec}, {0x1ff2, 0x1ff4}, {0x1ff6, 0x1ffc},
{0x2000, 0x200a}, {0x2028, 0x2029}, {0x202f, 0x202f}, {0x205f, 0x205f}, {0x2070, 0x2071}, {0x2074, 0x2079}, {0x207f, 0x2089}, {0x2090, 0x209c},
{0x2102, 0x2102}, {0x2107, 0x2107}, {0x210a, 0x2113}, {0x2115, 0x2115}, {0x2119, 0x211d}, {0x2124, 0x2124}, {0x2126, 0x2126}, {0x2128, 0x2128},
{0x212a, 0x212d}, {0x212f, 0x2139}, {0x213c, 0x213f}, {0x2145, 0x2149}, {0x214e, 0x214e}, {0x2150, 0x2189}, {0x2460, 0x249b}, {0x24ea, 0x24ff},
{0x2776, 0x2793}, {0x2c00, 0x2ce4}, {0x2ceb, 0x2cee}, {0x2cf2, 0x2cf3}, {0x2cfd, 0x2cfd}, {0x2d00, 0x2d25}, {0x2d27, 0x2d27}, {0x2d2d, 0x2d2d},
{0x2d30, 0x2d67}, {0x2d6f, 0x2d6f}, {0x2d80, 0x2d96}, {0x2da0, 0x2da6}, {0x2da8, 0x2dae}, {0x2db0, 0x2db6}, {0x2db8, 0x2dbe}, {0x2dc0, 0x2dc6},
{0x2dc8, 0x2dce}, {0x2dd0, 0x2dd6}, {0x2dd8, 0x2dde}, {0x2e2f, 0x2e2f}, {0x3000, 0x3000}, {0x3005, 0x3007}, {0x3021, 0x3029}, {0x3031, 0x3035},
{0x3038, 0x303c}, {0x3041, 0x3096}, {0x309d, 0x309f}, {0x30a1, 0x30fa}, {0x30fc, 0x30ff}, {0x3105, 0x312f}, {0x3131, 0x318e}, {0x3192, 0x3195},
{0x31a0, 0x31bf}, {0x31f0, 0x31ff}, {0x3220, 0x3229}, {0x3248, 0x324f}, {0x3251, 0x325f}, {0x3280, 0x3289}, {0x32b1, 0x32bf}, {0x3400, 0x3400},
{0x4dbf, 0x4dbf}, {0x4e00, 0x4e00}, {0x9fff, 0xa48c}, {0xa4d0, 0xa4fd}, {0xa500, 0xa60c}, {0xa610, 0xa62b}, {0xa640, 0xa66e}, {0xa67f, 0xa69d},
{0xa6a0, 0xa6ef}, {0xa717, 0xa71f}, {0xa722, 0xa788}, {0xa78b, 0xa7ca}, {0xa7d0, 0xa7d1}, {0xa7d3, 0xa7d3}, {0xa7d5, 0xa7d9}, {0xa7f2, 0xa801},
{0xa803, 0xa805}, {0xa807, 0xa80a}, {0xa80c, 0xa822}, {0xa830, 0xa835}, {0xa840, 0xa873}, {0xa882, 0xa8b3}, {0xa8d0, 0xa8d9}, {0xa8f2, 0xa8f7},
{0xa8fb, 0xa8fb}, {0xa8fd, 0xa8fe}, {0xa900, 0xa925}, {0xa930, 0xa946}, {0xa960, 0xa97c}, {0xa984, 0xa9b2}, {0xa9cf, 0xa9d9}, {0xa9e0, 0xa9e4},
{0xa9e6, 0xa9fe}, {0xaa00, 0xaa28}, {0xaa40, 0xaa42}, {0xaa44, 0xaa4b}, {0xaa50, 0xaa59}, {0xaa60, 0xaa76}, {0xaa7a, 0xaa7a}, {0xaa7e, 0xaaaf},
{0xaab1, 0xaab1}, {0xaab5, 0xaab6}, {0xaab9, 0xaabd}, {0xaac0, 0xaac0}, {0xaac2, 0xaac2}, {0xaadb, 0xaadd}, {0xaae0, 0xaaea}, {0xaaf2, 0xaaf4},
{0xab01, 0xab06}, {0xab09, 0xab0e}, {0xab11, 0xab16}, {0xab20, 0xab26}, {0xab28, 0xab2e}, {0xab30, 0xab5a}, {0xab5c, 0xab69}, {0xab70, 0xabe2},
{0xabf0, 0xabf9}, {0xac00, 0xac00}, {0xd7a3, 0xd7a3}, {0xd7b0, 0xd7c6}, {0xd7cb, 0xd7fb}, {0xf900, 0xfa6d}, {0xfa70, 0xfad9}, {0xfb00, 0xfb06},
{0xfb13, 0xfb17}, {0xfb1d, 0xfb1d}, {0xfb1f, 0xfb28}, {0xfb2a, 0xfb36}, {0xfb38, 0xfb3c}, {0xfb3e, 0xfb3e}, {0xfb40, 0xfb41}, {0xfb43, 0xfb44},
{0xfb46, 0xfbb1}, {0xfbd3, 0xfd3d}, {0xfd50, 0xfd8f}, {0xfd92, 0xfdc7}, {0xfdf0, 0xfdfb}, {0xfe70, 0xfe74}, {0xfe76, 0xfefc}, {0xff10, 0xff19},
{0xff21, 0xff3a}, {0xff41, 0xff5a}, {0xff66, 0xffbe}, {0xffc2, 0xffc7}, {0xffca, 0xffcf}, {0xffd2, 0xffd7}, {0xffda, 0xffdc}, {0x10000, 0x1000b},
{0x1000d, 0x10026}, {0x10028, 0x1003a}, {0x1003c, 0x1003d}, {0x1003f, 0x1004d}, {0x10050, 0x1005d}, {0x10080, 0x100fa}, {0x10107, 0x10133}, {0x10140, 0x10178},
{0x1018a, 0x1018b}, {0x10280, 0x1029c}, {0x102a0, 0x102d0}, {0x102e1, 0x102fb}, {0x10300, 0x10323}, {0x1032d, 0x1034a}, {0x10350, 0x10375}, {0x10380, 0x1039d},
{0x103a0, 0x103c3}, {0x103c8, 0x103cf}, {0x103d1, 0x103d5}, {0x10400, 0x1049d}, {0x104a0, 0x104a9}, {0x104b0, 0x104d3}, {0x104d8, 0x104fb}, {0x10500, 0x10527},
{0x10530, 0x10563}, {0x10570, 0x1057a}, {0x1057c, 0x1058a}, {0x1058c, 0x10592}, {0x10594, 0x10595}, {0x10597, 0x105a1}, {0x105a3, 0x105b1}, {0x105b3, 0x105b9},
{0x105bb, 0x105bc}, {0x10600, 0x10736}, {0x10740, 0x10755}, {0x10760, 0x10767}, {0x10780, 0x10785}, {0x10787, 0x107b0}, {0x107b2, 0x107ba}, {0x10800, 0x10805},
{0x10808, 0x10808}, {0x1080a, 0x10835}, {0x10837, 0x10838}, {0x1083c, 0x1083c}, {0x1083f, 0x10855}, {0x10858, 0x10876}, {0x10879, 0x1089e}, {0x108a7, 0x108af},
{0x108e0, 0x108f2}, {0x108f4, 0x108f5}, {0x108fb, 0x1091b}, {0x10920, 0x1092b},
};
static bool ts_lex(TSLexer *lexer, TSStateId state) {
START_LEXER();
eof = lexer->eof(lexer);
switch (state) {
case 0:
if (eof) ADVANCE(20);
ADVANCE_MAP(
'%', 37,
'(', 23,
')', 24,
'+', 33,
',', 21,
'-', 34,
':', 22,
'D', 40,
'[', 27,
']', 28,
'^', 38,
'd', 41,
'h', 7,
'l', 8,
'{', 25,
'}', 26,
'*', 35,
0xd7, 35,
'/', 36,
0xf7, 36,
);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') SKIP(0);
if (('0' <= lookahead && lookahead <= '9')) ADVANCE(39);
END_STATE();
case 1:
if (lookahead == '(') ADVANCE(23);
if (lookahead == '-') ADVANCE(34);
if (lookahead == '[') ADVANCE(27);
if (lookahead == '{') ADVANCE(25);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') SKIP(1);
if (('0' <= lookahead && lookahead <= '9')) ADVANCE(39);
if (set_contains(sym_identifier_character_set_1, 431, lookahead)) ADVANCE(42);
END_STATE();
case 2:
if (lookahead == '-') ADVANCE(17);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') SKIP(2);
if (('0' <= lookahead && lookahead <= '9')) ADVANCE(39);
END_STATE();
case 3:
if (lookahead == 'e') ADVANCE(12);
END_STATE();
case 4:
if (lookahead == 'e') ADVANCE(13);
END_STATE();
case 5:
if (lookahead == 'g') ADVANCE(6);
END_STATE();
case 6:
if (lookahead == 'h') ADVANCE(4);
END_STATE();
case 7:
if (lookahead == 'i') ADVANCE(5);
END_STATE();
case 8:
if (lookahead == 'o') ADVANCE(16);
END_STATE();
case 9:
if (lookahead == 'o') ADVANCE(10);
END_STATE();
case 10:
if (lookahead == 'p') ADVANCE(29);
END_STATE();
case 11:
if (lookahead == 'r') ADVANCE(9);
END_STATE();
case 12:
if (lookahead == 's') ADVANCE(14);
END_STATE();
case 13:
if (lookahead == 's') ADVANCE(15);
END_STATE();
case 14:
if (lookahead == 't') ADVANCE(30);
END_STATE();
case 15:
if (lookahead == 't') ADVANCE(31);
END_STATE();
case 16:
if (lookahead == 'w') ADVANCE(3);
END_STATE();
case 17:
if (('0' <= lookahead && lookahead <= '9')) ADVANCE(32);
END_STATE();
case 18:
if (eof) ADVANCE(20);
ADVANCE_MAP(
'%', 37,
'(', 23,
')', 24,
'+', 33,
'-', 34,
':', 22,
']', 28,
'^', 38,
'd', 11,
'{', 25,
'*', 35,
0xd7, 35,
'/', 36,
0xf7, 36,
);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') SKIP(18);
if (('0' <= lookahead && lookahead <= '9')) ADVANCE(39);
END_STATE();
case 19:
if (eof) ADVANCE(20);
ADVANCE_MAP(
'%', 37,
')', 24,
'+', 33,
'-', 34,
':', 22,
']', 28,
'^', 38,
'*', 35,
0xd7, 35,
'/', 36,
0xf7, 36,
'D', 40,
'd', 40,
);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') SKIP(19);
END_STATE();
case 20:
ACCEPT_TOKEN(ts_builtin_sym_end);
END_STATE();
case 21:
ACCEPT_TOKEN(anon_sym_COMMA);
END_STATE();
case 22:
ACCEPT_TOKEN(anon_sym_COLON);
END_STATE();
case 23:
ACCEPT_TOKEN(anon_sym_LPAREN);
END_STATE();
case 24:
ACCEPT_TOKEN(anon_sym_RPAREN);
END_STATE();
case 25:
ACCEPT_TOKEN(anon_sym_LBRACE);
END_STATE();
case 26:
ACCEPT_TOKEN(anon_sym_RBRACE);
END_STATE();
case 27:
ACCEPT_TOKEN(anon_sym_LBRACK);
END_STATE();
case 28:
ACCEPT_TOKEN(anon_sym_RBRACK);
END_STATE();
case 29:
ACCEPT_TOKEN(anon_sym_drop);
END_STATE();
case 30:
ACCEPT_TOKEN(anon_sym_lowest);
END_STATE();
case 31:
ACCEPT_TOKEN(anon_sym_highest);
END_STATE();
case 32:
ACCEPT_TOKEN(sym_negative_constant);
if (('0' <= lookahead && lookahead <= '9')) ADVANCE(32);
END_STATE();
case 33:
ACCEPT_TOKEN(anon_sym_PLUS);
END_STATE();
case 34:
ACCEPT_TOKEN(anon_sym_DASH);
END_STATE();
case 35:
ACCEPT_TOKEN(aux_sym_mul_token1);
END_STATE();
case 36:
ACCEPT_TOKEN(aux_sym_div_token1);
END_STATE();
case 37:
ACCEPT_TOKEN(anon_sym_PERCENT);
END_STATE();
case 38:
ACCEPT_TOKEN(anon_sym_CARET);
END_STATE();
case 39:
ACCEPT_TOKEN(sym_constant);
if (('0' <= lookahead && lookahead <= '9')) ADVANCE(39);
END_STATE();
case 40:
ACCEPT_TOKEN(sym__d);
END_STATE();
case 41:
ACCEPT_TOKEN(sym__d);
if (lookahead == 'r') ADVANCE(9);
END_STATE();
case 42:
ACCEPT_TOKEN(sym_identifier);
if (set_contains(sym_identifier_character_set_2, 484, lookahead)) ADVANCE(42);
END_STATE();
default:
return false;
}
}
static const TSLexMode ts_lex_modes[STATE_COUNT] = {
[0] = {.lex_state = 0},
[1] = {.lex_state = 1},
[2] = {.lex_state = 0},
[3] = {.lex_state = 0},
[4] = {.lex_state = 0},
[5] = {.lex_state = 0},
[6] = {.lex_state = 0},
[7] = {.lex_state = 0},
[8] = {.lex_state = 0},
[9] = {.lex_state = 0},
[10] = {.lex_state = 0},
[11] = {.lex_state = 0},
[12] = {.lex_state = 0},
[13] = {.lex_state = 18},
[14] = {.lex_state = 18},
[15] = {.lex_state = 0},
[16] = {.lex_state = 0},
[17] = {.lex_state = 18},
[18] = {.lex_state = 18},
[19] = {.lex_state = 18},
[20] = {.lex_state = 18},
[21] = {.lex_state = 18},
[22] = {.lex_state = 18},
[23] = {.lex_state = 18},
[24] = {.lex_state = 19},
[25] = {.lex_state = 0},
[26] = {.lex_state = 0},
[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 = 0},
[41] = {.lex_state = 0},
[42] = {.lex_state = 0},
[43] = {.lex_state = 2},
[44] = {.lex_state = 0},
[45] = {.lex_state = 0},
[46] = {.lex_state = 2},
[47] = {.lex_state = 0},
[48] = {.lex_state = 0},
[49] = {.lex_state = 1},
[50] = {.lex_state = 0},
[51] = {.lex_state = 0},
[52] = {.lex_state = 0},
[53] = {.lex_state = 0},
[54] = {.lex_state = 0},
[55] = {.lex_state = 1},
[56] = {.lex_state = 19},
[57] = {.lex_state = 0},
};
static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
[0] = {
[ts_builtin_sym_end] = ACTIONS(1),
[anon_sym_COMMA] = ACTIONS(1),
[anon_sym_COLON] = ACTIONS(1),
[anon_sym_LPAREN] = ACTIONS(1),
[anon_sym_RPAREN] = ACTIONS(1),
[anon_sym_LBRACE] = ACTIONS(1),
[anon_sym_RBRACE] = ACTIONS(1),
[anon_sym_LBRACK] = ACTIONS(1),
[anon_sym_RBRACK] = ACTIONS(1),
[anon_sym_drop] = ACTIONS(1),
[anon_sym_lowest] = ACTIONS(1),
[anon_sym_highest] = ACTIONS(1),
[anon_sym_PLUS] = ACTIONS(1),
[anon_sym_DASH] = ACTIONS(1),
[aux_sym_mul_token1] = ACTIONS(1),
[aux_sym_div_token1] = ACTIONS(1),
[anon_sym_PERCENT] = ACTIONS(1),
[anon_sym_CARET] = ACTIONS(1),
[sym_constant] = ACTIONS(1),
[sym__d] = ACTIONS(1),
},
[1] = {
[sym_function] = STATE(57),
[sym_parameters] = STATE(9),
[sym_parameter] = STATE(45),
[sym__expression] = STATE(35),
[sym_group] = STATE(24),
[sym_variable] = STATE(24),
[sym_range] = STATE(35),
[sym__dice] = STATE(20),
[sym_standard_dice] = STATE(20),
[sym_custom_dice] = STATE(20),
[sym__dice_count] = STATE(56),
[sym_drop_lowest] = STATE(20),
[sym_drop_highest] = STATE(20),
[sym__arithmetic] = STATE(35),
[sym_add] = STATE(35),
[sym_sub] = STATE(35),
[sym_mul] = STATE(35),
[sym_div] = STATE(35),
[sym_mod] = STATE(35),
[sym_exp] = STATE(35),
[sym_neg] = STATE(35),
[anon_sym_LPAREN] = ACTIONS(3),
[anon_sym_LBRACE] = ACTIONS(5),
[anon_sym_LBRACK] = ACTIONS(7),
[anon_sym_DASH] = ACTIONS(9),
[sym_constant] = ACTIONS(11),
[sym_identifier] = ACTIONS(13),
},
};
static const uint16_t ts_small_parse_table[] = {
[0] = 9,
ACTIONS(3), 1,
anon_sym_LPAREN,
ACTIONS(5), 1,
anon_sym_LBRACE,
ACTIONS(7), 1,
anon_sym_LBRACK,
ACTIONS(9), 1,
anon_sym_DASH,
ACTIONS(11), 1,
sym_constant,
STATE(56), 1,
sym__dice_count,
STATE(24), 2,
sym_group,
sym_variable,
STATE(20), 5,
sym__dice,
sym_standard_dice,
sym_custom_dice,
sym_drop_lowest,
sym_drop_highest,
STATE(25), 10,
sym__expression,
sym_range,
sym__arithmetic,
sym_add,
sym_sub,
sym_mul,
sym_div,
sym_mod,
sym_exp,
sym_neg,
[42] = 9,
ACTIONS(3), 1,
anon_sym_LPAREN,
ACTIONS(5), 1,
anon_sym_LBRACE,
ACTIONS(7), 1,
anon_sym_LBRACK,
ACTIONS(9), 1,
anon_sym_DASH,
ACTIONS(11), 1,
sym_constant,
STATE(56), 1,
sym__dice_count,
STATE(24), 2,
sym_group,
sym_variable,
STATE(20), 5,
sym__dice,
sym_standard_dice,
sym_custom_dice,
sym_drop_lowest,
sym_drop_highest,
STATE(37), 10,
sym__expression,
sym_range,
sym__arithmetic,
sym_add,
sym_sub,
sym_mul,
sym_div,
sym_mod,
sym_exp,
sym_neg,
[84] = 9,
ACTIONS(3), 1,
anon_sym_LPAREN,
ACTIONS(5), 1,
anon_sym_LBRACE,
ACTIONS(7), 1,
anon_sym_LBRACK,
ACTIONS(9), 1,
anon_sym_DASH,
ACTIONS(11), 1,
sym_constant,
STATE(56), 1,
sym__dice_count,
STATE(24), 2,
sym_group,
sym_variable,
STATE(20), 5,
sym__dice,
sym_standard_dice,
sym_custom_dice,
sym_drop_lowest,
sym_drop_highest,
STATE(36), 10,
sym__expression,
sym_range,
sym__arithmetic,
sym_add,
sym_sub,
sym_mul,
sym_div,
sym_mod,
sym_exp,
sym_neg,
[126] = 9,
ACTIONS(3), 1,
anon_sym_LPAREN,
ACTIONS(5), 1,
anon_sym_LBRACE,
ACTIONS(7), 1,
anon_sym_LBRACK,
ACTIONS(9), 1,
anon_sym_DASH,
ACTIONS(11), 1,
sym_constant,
STATE(56), 1,
sym__dice_count,
STATE(24), 2,
sym_group,
sym_variable,
STATE(20), 5,
sym__dice,
sym_standard_dice,
sym_custom_dice,
sym_drop_lowest,
sym_drop_highest,
STATE(38), 10,
sym__expression,
sym_range,
sym__arithmetic,
sym_add,
sym_sub,
sym_mul,
sym_div,
sym_mod,
sym_exp,
sym_neg,
[168] = 9,
ACTIONS(3), 1,
anon_sym_LPAREN,
ACTIONS(5), 1,
anon_sym_LBRACE,
ACTIONS(7), 1,
anon_sym_LBRACK,
ACTIONS(9), 1,
anon_sym_DASH,
ACTIONS(11), 1,
sym_constant,
STATE(56), 1,
sym__dice_count,
STATE(24), 2,
sym_group,
sym_variable,
STATE(20), 5,
sym__dice,
sym_standard_dice,
sym_custom_dice,
sym_drop_lowest,
sym_drop_highest,
STATE(26), 10,
sym__expression,
sym_range,
sym__arithmetic,
sym_add,
sym_sub,
sym_mul,
sym_div,
sym_mod,
sym_exp,
sym_neg,
[210] = 9,
ACTIONS(3), 1,
anon_sym_LPAREN,
ACTIONS(5), 1,
anon_sym_LBRACE,
ACTIONS(7), 1,
anon_sym_LBRACK,
ACTIONS(9), 1,
anon_sym_DASH,
ACTIONS(11), 1,
sym_constant,
STATE(56), 1,
sym__dice_count,
STATE(24), 2,
sym_group,
sym_variable,
STATE(20), 5,
sym__dice,
sym_standard_dice,
sym_custom_dice,
sym_drop_lowest,
sym_drop_highest,
STATE(27), 10,
sym__expression,
sym_range,
sym__arithmetic,
sym_add,
sym_sub,
sym_mul,
sym_div,
sym_mod,
sym_exp,
sym_neg,
[252] = 9,
ACTIONS(3), 1,
anon_sym_LPAREN,
ACTIONS(5), 1,
anon_sym_LBRACE,
ACTIONS(7), 1,
anon_sym_LBRACK,
ACTIONS(9), 1,
anon_sym_DASH,
ACTIONS(11), 1,
sym_constant,
STATE(56), 1,
sym__dice_count,
STATE(24), 2,
sym_group,
sym_variable,
STATE(20), 5,
sym__dice,
sym_standard_dice,
sym_custom_dice,
sym_drop_lowest,
sym_drop_highest,
STATE(28), 10,
sym__expression,
sym_range,
sym__arithmetic,
sym_add,
sym_sub,
sym_mul,
sym_div,
sym_mod,
sym_exp,
sym_neg,
[294] = 9,
ACTIONS(3), 1,
anon_sym_LPAREN,
ACTIONS(5), 1,
anon_sym_LBRACE,
ACTIONS(7), 1,
anon_sym_LBRACK,
ACTIONS(9), 1,
anon_sym_DASH,
ACTIONS(11), 1,
sym_constant,
STATE(56), 1,
sym__dice_count,
STATE(24), 2,
sym_group,
sym_variable,
STATE(20), 5,
sym__dice,
sym_standard_dice,
sym_custom_dice,
sym_drop_lowest,
sym_drop_highest,
STATE(34), 10,
sym__expression,
sym_range,
sym__arithmetic,
sym_add,
sym_sub,
sym_mul,
sym_div,
sym_mod,
sym_exp,
sym_neg,
[336] = 9,
ACTIONS(3), 1,
anon_sym_LPAREN,
ACTIONS(5), 1,
anon_sym_LBRACE,
ACTIONS(7), 1,
anon_sym_LBRACK,
ACTIONS(9), 1,
anon_sym_DASH,
ACTIONS(11), 1,
sym_constant,
STATE(56), 1,
sym__dice_count,
STATE(24), 2,
sym_group,
sym_variable,
STATE(20), 5,
sym__dice,
sym_standard_dice,
sym_custom_dice,
sym_drop_lowest,
sym_drop_highest,
STATE(29), 10,
sym__expression,
sym_range,
sym__arithmetic,
sym_add,
sym_sub,
sym_mul,
sym_div,
sym_mod,
sym_exp,
sym_neg,
[378] = 9,
ACTIONS(3), 1,
anon_sym_LPAREN,
ACTIONS(5), 1,
anon_sym_LBRACE,
ACTIONS(7), 1,
anon_sym_LBRACK,
ACTIONS(9), 1,
anon_sym_DASH,
ACTIONS(11), 1,
sym_constant,
STATE(56), 1,
sym__dice_count,
STATE(24), 2,
sym_group,
sym_variable,
STATE(20), 5,
sym__dice,
sym_standard_dice,
sym_custom_dice,
sym_drop_lowest,
sym_drop_highest,
STATE(30), 10,
sym__expression,
sym_range,
sym__arithmetic,
sym_add,
sym_sub,
sym_mul,
sym_div,
sym_mod,
sym_exp,
sym_neg,
[420] = 9,
ACTIONS(3), 1,
anon_sym_LPAREN,
ACTIONS(5), 1,
anon_sym_LBRACE,
ACTIONS(7), 1,
anon_sym_LBRACK,
ACTIONS(9), 1,
anon_sym_DASH,
ACTIONS(11), 1,
sym_constant,
STATE(56), 1,
sym__dice_count,
STATE(24), 2,
sym_group,
sym_variable,
STATE(20), 5,
sym__dice,
sym_standard_dice,
sym_custom_dice,
sym_drop_lowest,
sym_drop_highest,
STATE(32), 10,
sym__expression,
sym_range,
sym__arithmetic,
sym_add,
sym_sub,
sym_mul,
sym_div,
sym_mod,
sym_exp,
sym_neg,
[462] = 5,
ACTIONS(3), 1,
anon_sym_LPAREN,
ACTIONS(5), 1,
anon_sym_LBRACE,
ACTIONS(17), 1,
sym_constant,
STATE(21), 3,
sym_group,
sym_variable,
sym__drop_expression,
ACTIONS(15), 11,
ts_builtin_sym_end,
anon_sym_COLON,
anon_sym_RPAREN,
anon_sym_RBRACK,
anon_sym_drop,
anon_sym_PLUS,
anon_sym_DASH,
aux_sym_mul_token1,
aux_sym_div_token1,
anon_sym_PERCENT,
anon_sym_CARET,
[490] = 5,
ACTIONS(3), 1,
anon_sym_LPAREN,
ACTIONS(5), 1,
anon_sym_LBRACE,
ACTIONS(21), 1,
sym_constant,
STATE(22), 3,
sym_group,
sym_variable,
sym__drop_expression,
ACTIONS(19), 11,
ts_builtin_sym_end,
anon_sym_COLON,
anon_sym_RPAREN,
anon_sym_RBRACK,
anon_sym_drop,
anon_sym_PLUS,
anon_sym_DASH,
aux_sym_mul_token1,
aux_sym_div_token1,
anon_sym_PERCENT,
anon_sym_CARET,
[518] = 2,
ACTIONS(25), 1,
sym__d,
ACTIONS(23), 11,
ts_builtin_sym_end,
anon_sym_COLON,
anon_sym_RPAREN,
anon_sym_RBRACK,
anon_sym_drop,
anon_sym_PLUS,
anon_sym_DASH,
aux_sym_mul_token1,
aux_sym_div_token1,
anon_sym_PERCENT,
anon_sym_CARET,
[535] = 2,
ACTIONS(29), 1,
sym__d,
ACTIONS(27), 11,
ts_builtin_sym_end,
anon_sym_COLON,
anon_sym_RPAREN,
anon_sym_RBRACK,
anon_sym_drop,
anon_sym_PLUS,
anon_sym_DASH,
aux_sym_mul_token1,
aux_sym_div_token1,
anon_sym_PERCENT,
anon_sym_CARET,
[552] = 1,
ACTIONS(31), 11,
ts_builtin_sym_end,
anon_sym_COLON,
anon_sym_RPAREN,
anon_sym_RBRACK,
anon_sym_drop,
anon_sym_PLUS,
anon_sym_DASH,
aux_sym_mul_token1,
aux_sym_div_token1,
anon_sym_PERCENT,
anon_sym_CARET,
[566] = 1,
ACTIONS(33), 11,
ts_builtin_sym_end,
anon_sym_COLON,
anon_sym_RPAREN,
anon_sym_RBRACK,
anon_sym_drop,
anon_sym_PLUS,
anon_sym_DASH,
aux_sym_mul_token1,
aux_sym_div_token1,
anon_sym_PERCENT,
anon_sym_CARET,
[580] = 1,
ACTIONS(35), 11,
ts_builtin_sym_end,
anon_sym_COLON,
anon_sym_RPAREN,
anon_sym_RBRACK,
anon_sym_drop,
anon_sym_PLUS,
anon_sym_DASH,
aux_sym_mul_token1,
aux_sym_div_token1,
anon_sym_PERCENT,
anon_sym_CARET,
[594] = 2,
ACTIONS(39), 1,
anon_sym_drop,
ACTIONS(37), 10,
ts_builtin_sym_end,
anon_sym_COLON,
anon_sym_RPAREN,
anon_sym_RBRACK,
anon_sym_PLUS,
anon_sym_DASH,
aux_sym_mul_token1,
aux_sym_div_token1,
anon_sym_PERCENT,
anon_sym_CARET,
[610] = 1,
ACTIONS(41), 11,
ts_builtin_sym_end,
anon_sym_COLON,
anon_sym_RPAREN,
anon_sym_RBRACK,
anon_sym_drop,
anon_sym_PLUS,
anon_sym_DASH,
aux_sym_mul_token1,
aux_sym_div_token1,
anon_sym_PERCENT,
anon_sym_CARET,
[624] = 1,
ACTIONS(43), 11,
ts_builtin_sym_end,
anon_sym_COLON,
anon_sym_RPAREN,
anon_sym_RBRACK,
anon_sym_drop,
anon_sym_PLUS,
anon_sym_DASH,
aux_sym_mul_token1,
aux_sym_div_token1,
anon_sym_PERCENT,
anon_sym_CARET,
[638] = 1,
ACTIONS(45), 11,
ts_builtin_sym_end,
anon_sym_COLON,
anon_sym_RPAREN,
anon_sym_RBRACK,
anon_sym_drop,
anon_sym_PLUS,
anon_sym_DASH,
aux_sym_mul_token1,
aux_sym_div_token1,
anon_sym_PERCENT,
anon_sym_CARET,
[652] = 2,
ACTIONS(47), 1,
sym__d,
ACTIONS(37), 10,
ts_builtin_sym_end,
anon_sym_COLON,
anon_sym_RPAREN,
anon_sym_RBRACK,
anon_sym_PLUS,
anon_sym_DASH,
aux_sym_mul_token1,
aux_sym_div_token1,
anon_sym_PERCENT,
anon_sym_CARET,
[668] = 5,
ACTIONS(51), 1,
aux_sym_mul_token1,
ACTIONS(53), 1,
aux_sym_div_token1,
ACTIONS(55), 1,
anon_sym_PERCENT,
ACTIONS(57), 1,
anon_sym_CARET,
ACTIONS(49), 6,
ts_builtin_sym_end,
anon_sym_COLON,
anon_sym_RPAREN,
anon_sym_RBRACK,
anon_sym_PLUS,
anon_sym_DASH,
[689] = 2,
ACTIONS(57), 1,
anon_sym_CARET,
ACTIONS(59), 9,
ts_builtin_sym_end,
anon_sym_COLON,
anon_sym_RPAREN,
anon_sym_RBRACK,
anon_sym_PLUS,
anon_sym_DASH,
aux_sym_mul_token1,
aux_sym_div_token1,
anon_sym_PERCENT,
[704] = 2,
ACTIONS(57), 1,
anon_sym_CARET,
ACTIONS(61), 9,
ts_builtin_sym_end,
anon_sym_COLON,
anon_sym_RPAREN,
anon_sym_RBRACK,
anon_sym_PLUS,
anon_sym_DASH,
aux_sym_mul_token1,
aux_sym_div_token1,
anon_sym_PERCENT,
[719] = 2,
ACTIONS(57), 1,
anon_sym_CARET,
ACTIONS(63), 9,
ts_builtin_sym_end,
anon_sym_COLON,
anon_sym_RPAREN,
anon_sym_RBRACK,
anon_sym_PLUS,
anon_sym_DASH,
aux_sym_mul_token1,
aux_sym_div_token1,
anon_sym_PERCENT,
[734] = 2,
ACTIONS(57), 1,
anon_sym_CARET,
ACTIONS(65), 9,
ts_builtin_sym_end,
anon_sym_COLON,
anon_sym_RPAREN,
anon_sym_RBRACK,
anon_sym_PLUS,
anon_sym_DASH,
aux_sym_mul_token1,
aux_sym_div_token1,
anon_sym_PERCENT,
[749] = 2,
ACTIONS(57), 1,
anon_sym_CARET,
ACTIONS(67), 9,
ts_builtin_sym_end,
anon_sym_COLON,
anon_sym_RPAREN,
anon_sym_RBRACK,
anon_sym_PLUS,
anon_sym_DASH,
aux_sym_mul_token1,
aux_sym_div_token1,
anon_sym_PERCENT,
[764] = 1,
ACTIONS(69), 10,
ts_builtin_sym_end,
anon_sym_COLON,
anon_sym_RPAREN,
anon_sym_RBRACK,
anon_sym_PLUS,
anon_sym_DASH,
aux_sym_mul_token1,
aux_sym_div_token1,
anon_sym_PERCENT,
anon_sym_CARET,
[777] = 5,
ACTIONS(51), 1,
aux_sym_mul_token1,
ACTIONS(53), 1,
aux_sym_div_token1,
ACTIONS(55), 1,
anon_sym_PERCENT,
ACTIONS(57), 1,
anon_sym_CARET,
ACTIONS(71), 6,
ts_builtin_sym_end,
anon_sym_COLON,
anon_sym_RPAREN,
anon_sym_RBRACK,
anon_sym_PLUS,
anon_sym_DASH,
[798] = 6,
ACTIONS(3), 1,
anon_sym_LPAREN,
ACTIONS(5), 1,
anon_sym_LBRACE,
ACTIONS(73), 1,
anon_sym_LBRACK,
ACTIONS(75), 1,
sym_constant,
STATE(19), 1,
sym_custom_faces,
STATE(17), 3,
sym_group,
sym_variable,
sym__standard_faces,
[819] = 7,
ACTIONS(51), 1,
aux_sym_mul_token1,
ACTIONS(53), 1,
aux_sym_div_token1,
ACTIONS(55), 1,
anon_sym_PERCENT,
ACTIONS(57), 1,
anon_sym_CARET,
ACTIONS(77), 1,
ts_builtin_sym_end,
ACTIONS(79), 1,
anon_sym_PLUS,
ACTIONS(81), 1,
anon_sym_DASH,
[841] = 7,
ACTIONS(51), 1,
aux_sym_mul_token1,
ACTIONS(53), 1,
aux_sym_div_token1,
ACTIONS(55), 1,
anon_sym_PERCENT,
ACTIONS(57), 1,
anon_sym_CARET,
ACTIONS(79), 1,
anon_sym_PLUS,
ACTIONS(81), 1,
anon_sym_DASH,
ACTIONS(83), 1,
ts_builtin_sym_end,
[863] = 7,
ACTIONS(51), 1,
aux_sym_mul_token1,
ACTIONS(53), 1,
aux_sym_div_token1,
ACTIONS(55), 1,
anon_sym_PERCENT,
ACTIONS(57), 1,
anon_sym_CARET,
ACTIONS(79), 1,
anon_sym_PLUS,
ACTIONS(81), 1,
anon_sym_DASH,
ACTIONS(85), 1,
anon_sym_RBRACK,
[885] = 7,
ACTIONS(51), 1,
aux_sym_mul_token1,
ACTIONS(53), 1,
aux_sym_div_token1,
ACTIONS(55), 1,
anon_sym_PERCENT,
ACTIONS(57), 1,
anon_sym_CARET,
ACTIONS(79), 1,
anon_sym_PLUS,
ACTIONS(81), 1,
anon_sym_DASH,
ACTIONS(87), 1,
anon_sym_RPAREN,
[907] = 7,
ACTIONS(51), 1,
aux_sym_mul_token1,
ACTIONS(53), 1,
aux_sym_div_token1,
ACTIONS(55), 1,
anon_sym_PERCENT,
ACTIONS(57), 1,
anon_sym_CARET,
ACTIONS(79), 1,
anon_sym_PLUS,
ACTIONS(81), 1,
anon_sym_DASH,
ACTIONS(89), 1,
anon_sym_COLON,
[929] = 1,
ACTIONS(91), 5,
anon_sym_LPAREN,
anon_sym_LBRACE,
anon_sym_LBRACK,
anon_sym_DASH,
sym_constant,
[937] = 1,
ACTIONS(93), 5,
anon_sym_LPAREN,
anon_sym_LBRACE,
anon_sym_LBRACK,
anon_sym_DASH,
sym_constant,
[945] = 3,
ACTIONS(95), 1,
anon_sym_COMMA,
ACTIONS(98), 1,
anon_sym_COLON,
STATE(41), 1,
aux_sym_parameters_repeat1,
[955] = 3,
ACTIONS(100), 1,
anon_sym_COMMA,
ACTIONS(102), 1,
anon_sym_COLON,
STATE(41), 1,
aux_sym_parameters_repeat1,
[965] = 2,
STATE(44), 1,
sym__custom_face,
ACTIONS(104), 2,
sym_negative_constant,
sym_constant,
[973] = 3,
ACTIONS(106), 1,
anon_sym_COMMA,
ACTIONS(108), 1,
anon_sym_RBRACK,
STATE(47), 1,
aux_sym_custom_faces_repeat1,
[983] = 3,
ACTIONS(100), 1,
anon_sym_COMMA,
ACTIONS(110), 1,
anon_sym_COLON,
STATE(42), 1,
aux_sym_parameters_repeat1,
[993] = 2,
STATE(52), 1,
sym__custom_face,
ACTIONS(112), 2,
sym_negative_constant,
sym_constant,
[1001] = 3,
ACTIONS(106), 1,
anon_sym_COMMA,
ACTIONS(114), 1,
anon_sym_RBRACK,
STATE(48), 1,
aux_sym_custom_faces_repeat1,
[1011] = 3,
ACTIONS(116), 1,
anon_sym_COMMA,
ACTIONS(119), 1,
anon_sym_RBRACK,
STATE(48), 1,
aux_sym_custom_faces_repeat1,
[1021] = 2,
ACTIONS(13), 1,
sym_identifier,
STATE(51), 1,
sym_parameter,
[1028] = 2,
ACTIONS(121), 1,
anon_sym_lowest,
ACTIONS(123), 1,
anon_sym_highest,
[1035] = 1,
ACTIONS(125), 2,
anon_sym_COMMA,
anon_sym_COLON,
[1040] = 1,
ACTIONS(127), 2,
anon_sym_COMMA,
anon_sym_RBRACK,
[1045] = 1,
ACTIONS(129), 2,
anon_sym_COMMA,
anon_sym_COLON,
[1050] = 1,
ACTIONS(131), 1,
anon_sym_RBRACE,
[1054] = 1,
ACTIONS(133), 1,
sym_identifier,
[1058] = 1,
ACTIONS(135), 1,
sym__d,
[1062] = 1,
ACTIONS(137), 1,
ts_builtin_sym_end,
};
static const uint32_t ts_small_parse_table_map[] = {
[SMALL_STATE(2)] = 0,
[SMALL_STATE(3)] = 42,
[SMALL_STATE(4)] = 84,
[SMALL_STATE(5)] = 126,
[SMALL_STATE(6)] = 168,
[SMALL_STATE(7)] = 210,
[SMALL_STATE(8)] = 252,
[SMALL_STATE(9)] = 294,
[SMALL_STATE(10)] = 336,
[SMALL_STATE(11)] = 378,
[SMALL_STATE(12)] = 420,
[SMALL_STATE(13)] = 462,
[SMALL_STATE(14)] = 490,
[SMALL_STATE(15)] = 518,
[SMALL_STATE(16)] = 535,
[SMALL_STATE(17)] = 552,
[SMALL_STATE(18)] = 566,
[SMALL_STATE(19)] = 580,
[SMALL_STATE(20)] = 594,
[SMALL_STATE(21)] = 610,
[SMALL_STATE(22)] = 624,
[SMALL_STATE(23)] = 638,
[SMALL_STATE(24)] = 652,
[SMALL_STATE(25)] = 668,
[SMALL_STATE(26)] = 689,
[SMALL_STATE(27)] = 704,
[SMALL_STATE(28)] = 719,
[SMALL_STATE(29)] = 734,
[SMALL_STATE(30)] = 749,
[SMALL_STATE(31)] = 764,
[SMALL_STATE(32)] = 777,
[SMALL_STATE(33)] = 798,
[SMALL_STATE(34)] = 819,
[SMALL_STATE(35)] = 841,
[SMALL_STATE(36)] = 863,
[SMALL_STATE(37)] = 885,
[SMALL_STATE(38)] = 907,
[SMALL_STATE(39)] = 929,
[SMALL_STATE(40)] = 937,
[SMALL_STATE(41)] = 945,
[SMALL_STATE(42)] = 955,
[SMALL_STATE(43)] = 965,
[SMALL_STATE(44)] = 973,
[SMALL_STATE(45)] = 983,
[SMALL_STATE(46)] = 993,
[SMALL_STATE(47)] = 1001,
[SMALL_STATE(48)] = 1011,
[SMALL_STATE(49)] = 1021,
[SMALL_STATE(50)] = 1028,
[SMALL_STATE(51)] = 1035,
[SMALL_STATE(52)] = 1040,
[SMALL_STATE(53)] = 1045,
[SMALL_STATE(54)] = 1050,
[SMALL_STATE(55)] = 1054,
[SMALL_STATE(56)] = 1058,
[SMALL_STATE(57)] = 1062,
};
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(3),
[5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55),
[7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5),
[9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6),
[11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24),
[13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53),
[15] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_drop_lowest, 3, 0, 11),
[17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21),
[19] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_drop_highest, 3, 0, 11),
[21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22),
[23] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_group, 3, 0, 5),
[25] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_group, 3, 0, 5),
[27] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable, 3, 0, 6),
[29] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable, 3, 0, 6),
[31] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_standard_dice, 3, 0, 12),
[33] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_custom_faces, 4, 0, 16),
[35] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_custom_dice, 3, 0, 12),
[37] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1, 0, 0),
[39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50),
[41] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_drop_lowest, 4, 0, 13),
[43] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_drop_highest, 4, 0, 13),
[45] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_custom_faces, 3, 0, 15),
[47] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__dice_count, 1, 0, 0),
[49] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_add, 3, 0, 10),
[51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11),
[53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10),
[55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8),
[57] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7),
[59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_neg, 2, 0, 2),
[61] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exp, 3, 0, 10),
[63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_mod, 3, 0, 10),
[65] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_div, 3, 0, 10),
[67] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_mul, 3, 0, 10),
[69] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_range, 5, 0, 14),
[71] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sub, 3, 0, 10),
[73] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43),
[75] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17),
[77] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 2, 0, 3),
[79] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2),
[81] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12),
[83] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 1, 0, 1),
[85] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31),
[87] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15),
[89] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4),
[91] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 2, 0, 4),
[93] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 3, 0, 8),
[95] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parameters_repeat1, 2, 0, 9), SHIFT_REPEAT(49),
[98] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parameters_repeat1, 2, 0, 9),
[100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49),
[102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40),
[104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44),
[106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46),
[108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23),
[110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39),
[112] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52),
[114] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18),
[116] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_custom_faces_repeat1, 2, 0, 17), SHIFT_REPEAT(46),
[119] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_custom_faces_repeat1, 2, 0, 17),
[121] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13),
[123] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14),
[125] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parameters_repeat1, 2, 0, 7),
[127] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_custom_faces_repeat1, 2, 0, 15),
[129] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter, 1, 0, 0),
[131] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16),
[133] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54),
[135] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33),
[137] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(),
};
#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_xdy(void) {
static const TSLanguage language = {
.version = LANGUAGE_VERSION,
.symbol_count = SYMBOL_COUNT,
.alias_count = ALIAS_COUNT,
.token_count = TOKEN_COUNT,
.external_token_count = EXTERNAL_TOKEN_COUNT,
.state_count = STATE_COUNT,
.large_state_count = LARGE_STATE_COUNT,
.production_id_count = PRODUCTION_ID_COUNT,
.field_count = FIELD_COUNT,
.max_alias_sequence_length = MAX_ALIAS_SEQUENCE_LENGTH,
.parse_table = &ts_parse_table[0][0],
.small_parse_table = ts_small_parse_table,
.small_parse_table_map = ts_small_parse_table_map,
.parse_actions = ts_parse_actions,
.symbol_names = ts_symbol_names,
.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 = ts_lex_modes,
.lex_fn = ts_lex,
.primary_state_ids = ts_primary_state_ids,
};
return &language;
}
#ifdef __cplusplus
}
#endif