#include <tree_sitter/parser.h>
#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
#endif
#define LANGUAGE_VERSION 14
#define STATE_COUNT 173
#define LARGE_STATE_COUNT 9
#define SYMBOL_COUNT 72
#define ALIAS_COUNT 0
#define TOKEN_COUNT 40
#define EXTERNAL_TOKEN_COUNT 0
#define FIELD_COUNT 23
#define MAX_ALIAS_SEQUENCE_LENGTH 7
#define PRODUCTION_ID_COUNT 30
enum {
sym_identifier = 1,
anon_sym_class = 2,
anon_sym_LBRACE = 3,
anon_sym_RBRACE = 4,
anon_sym_fun = 5,
anon_sym_var = 6,
anon_sym_EQ = 7,
anon_sym_SEMI = 8,
anon_sym_for = 9,
anon_sym_LPAREN = 10,
anon_sym_RPAREN = 11,
anon_sym_if = 12,
anon_sym_else = 13,
anon_sym_print = 14,
anon_sym_return = 15,
anon_sym_while = 16,
anon_sym_DOT = 17,
anon_sym_STAR = 18,
anon_sym_SLASH = 19,
anon_sym_PLUS = 20,
anon_sym_DASH = 21,
anon_sym_LT = 22,
anon_sym_LT_EQ = 23,
anon_sym_GT = 24,
anon_sym_GT_EQ = 25,
anon_sym_EQ_EQ = 26,
anon_sym_BANG_EQ = 27,
anon_sym_and = 28,
anon_sym_or = 29,
anon_sym_BANG = 30,
anon_sym_false = 31,
anon_sym_true = 32,
sym_nil = 33,
sym_this = 34,
sym_number = 35,
sym_string = 36,
anon_sym_super = 37,
anon_sym_COMMA = 38,
sym_comment = 39,
sym_program = 40,
sym_decl = 41,
sym_decl_class = 42,
sym_decl_fun = 43,
sym_decl_var = 44,
sym_decl_stmt = 45,
sym_stmt_block = 46,
sym_stmt_expr = 47,
sym_stmt_for = 48,
sym_for_paren = 49,
sym_stmt_if = 50,
sym_stmt_print = 51,
sym_stmt_return = 52,
sym_stmt_while = 53,
sym__expr = 54,
sym_expr_call = 55,
sym_expr_field = 56,
sym_expr_infix = 57,
sym_expr_prefix = 58,
sym_expr_primary = 59,
sym_bool = 60,
sym_var = 61,
sym_grouping = 62,
sym_super = 63,
sym_extends = 64,
sym_function = 65,
sym_args = 66,
sym_params = 67,
aux_sym_program_repeat1 = 68,
aux_sym_decl_class_repeat1 = 69,
aux_sym_args_repeat1 = 70,
aux_sym_params_repeat1 = 71,
};
static const char * const ts_symbol_names[] = {
[ts_builtin_sym_end] = "end",
[sym_identifier] = "identifier",
[anon_sym_class] = "class",
[anon_sym_LBRACE] = "{",
[anon_sym_RBRACE] = "}",
[anon_sym_fun] = "fun",
[anon_sym_var] = "var",
[anon_sym_EQ] = "=",
[anon_sym_SEMI] = ";",
[anon_sym_for] = "for",
[anon_sym_LPAREN] = "(",
[anon_sym_RPAREN] = ")",
[anon_sym_if] = "if",
[anon_sym_else] = "else",
[anon_sym_print] = "print",
[anon_sym_return] = "return",
[anon_sym_while] = "while",
[anon_sym_DOT] = ".",
[anon_sym_STAR] = "*",
[anon_sym_SLASH] = "/",
[anon_sym_PLUS] = "+",
[anon_sym_DASH] = "-",
[anon_sym_LT] = "<",
[anon_sym_LT_EQ] = "<=",
[anon_sym_GT] = ">",
[anon_sym_GT_EQ] = ">=",
[anon_sym_EQ_EQ] = "==",
[anon_sym_BANG_EQ] = "!=",
[anon_sym_and] = "and",
[anon_sym_or] = "or",
[anon_sym_BANG] = "!",
[anon_sym_false] = "false",
[anon_sym_true] = "true",
[sym_nil] = "nil",
[sym_this] = "this",
[sym_number] = "number",
[sym_string] = "string",
[anon_sym_super] = "super",
[anon_sym_COMMA] = ",",
[sym_comment] = "comment",
[sym_program] = "program",
[sym_decl] = "decl",
[sym_decl_class] = "decl_class",
[sym_decl_fun] = "decl_fun",
[sym_decl_var] = "decl_var",
[sym_decl_stmt] = "decl_stmt",
[sym_stmt_block] = "stmt_block",
[sym_stmt_expr] = "stmt_expr",
[sym_stmt_for] = "stmt_for",
[sym_for_paren] = "for_paren",
[sym_stmt_if] = "stmt_if",
[sym_stmt_print] = "stmt_print",
[sym_stmt_return] = "stmt_return",
[sym_stmt_while] = "stmt_while",
[sym__expr] = "_expr",
[sym_expr_call] = "expr_call",
[sym_expr_field] = "expr_field",
[sym_expr_infix] = "expr_infix",
[sym_expr_prefix] = "expr_prefix",
[sym_expr_primary] = "expr_primary",
[sym_bool] = "bool",
[sym_var] = "var",
[sym_grouping] = "grouping",
[sym_super] = "super",
[sym_extends] = "extends",
[sym_function] = "function",
[sym_args] = "args",
[sym_params] = "params",
[aux_sym_program_repeat1] = "program_repeat1",
[aux_sym_decl_class_repeat1] = "decl_class_repeat1",
[aux_sym_args_repeat1] = "args_repeat1",
[aux_sym_params_repeat1] = "params_repeat1",
};
static const TSSymbol ts_symbol_map[] = {
[ts_builtin_sym_end] = ts_builtin_sym_end,
[sym_identifier] = sym_identifier,
[anon_sym_class] = anon_sym_class,
[anon_sym_LBRACE] = anon_sym_LBRACE,
[anon_sym_RBRACE] = anon_sym_RBRACE,
[anon_sym_fun] = anon_sym_fun,
[anon_sym_var] = anon_sym_var,
[anon_sym_EQ] = anon_sym_EQ,
[anon_sym_SEMI] = anon_sym_SEMI,
[anon_sym_for] = anon_sym_for,
[anon_sym_LPAREN] = anon_sym_LPAREN,
[anon_sym_RPAREN] = anon_sym_RPAREN,
[anon_sym_if] = anon_sym_if,
[anon_sym_else] = anon_sym_else,
[anon_sym_print] = anon_sym_print,
[anon_sym_return] = anon_sym_return,
[anon_sym_while] = anon_sym_while,
[anon_sym_DOT] = anon_sym_DOT,
[anon_sym_STAR] = anon_sym_STAR,
[anon_sym_SLASH] = anon_sym_SLASH,
[anon_sym_PLUS] = anon_sym_PLUS,
[anon_sym_DASH] = anon_sym_DASH,
[anon_sym_LT] = anon_sym_LT,
[anon_sym_LT_EQ] = anon_sym_LT_EQ,
[anon_sym_GT] = anon_sym_GT,
[anon_sym_GT_EQ] = anon_sym_GT_EQ,
[anon_sym_EQ_EQ] = anon_sym_EQ_EQ,
[anon_sym_BANG_EQ] = anon_sym_BANG_EQ,
[anon_sym_and] = anon_sym_and,
[anon_sym_or] = anon_sym_or,
[anon_sym_BANG] = anon_sym_BANG,
[anon_sym_false] = anon_sym_false,
[anon_sym_true] = anon_sym_true,
[sym_nil] = sym_nil,
[sym_this] = sym_this,
[sym_number] = sym_number,
[sym_string] = sym_string,
[anon_sym_super] = anon_sym_super,
[anon_sym_COMMA] = anon_sym_COMMA,
[sym_comment] = sym_comment,
[sym_program] = sym_program,
[sym_decl] = sym_decl,
[sym_decl_class] = sym_decl_class,
[sym_decl_fun] = sym_decl_fun,
[sym_decl_var] = sym_decl_var,
[sym_decl_stmt] = sym_decl_stmt,
[sym_stmt_block] = sym_stmt_block,
[sym_stmt_expr] = sym_stmt_expr,
[sym_stmt_for] = sym_stmt_for,
[sym_for_paren] = sym_for_paren,
[sym_stmt_if] = sym_stmt_if,
[sym_stmt_print] = sym_stmt_print,
[sym_stmt_return] = sym_stmt_return,
[sym_stmt_while] = sym_stmt_while,
[sym__expr] = sym__expr,
[sym_expr_call] = sym_expr_call,
[sym_expr_field] = sym_expr_field,
[sym_expr_infix] = sym_expr_infix,
[sym_expr_prefix] = sym_expr_prefix,
[sym_expr_primary] = sym_expr_primary,
[sym_bool] = sym_bool,
[sym_var] = sym_var,
[sym_grouping] = sym_grouping,
[sym_super] = sym_super,
[sym_extends] = sym_extends,
[sym_function] = sym_function,
[sym_args] = sym_args,
[sym_params] = sym_params,
[aux_sym_program_repeat1] = aux_sym_program_repeat1,
[aux_sym_decl_class_repeat1] = aux_sym_decl_class_repeat1,
[aux_sym_args_repeat1] = aux_sym_args_repeat1,
[aux_sym_params_repeat1] = aux_sym_params_repeat1,
};
static const TSSymbolMetadata ts_symbol_metadata[] = {
[ts_builtin_sym_end] = {
.visible = false,
.named = true,
},
[sym_identifier] = {
.visible = true,
.named = true,
},
[anon_sym_class] = {
.visible = true,
.named = false,
},
[anon_sym_LBRACE] = {
.visible = true,
.named = false,
},
[anon_sym_RBRACE] = {
.visible = true,
.named = false,
},
[anon_sym_fun] = {
.visible = true,
.named = false,
},
[anon_sym_var] = {
.visible = true,
.named = false,
},
[anon_sym_EQ] = {
.visible = true,
.named = false,
},
[anon_sym_SEMI] = {
.visible = true,
.named = false,
},
[anon_sym_for] = {
.visible = true,
.named = false,
},
[anon_sym_LPAREN] = {
.visible = true,
.named = false,
},
[anon_sym_RPAREN] = {
.visible = true,
.named = false,
},
[anon_sym_if] = {
.visible = true,
.named = false,
},
[anon_sym_else] = {
.visible = true,
.named = false,
},
[anon_sym_print] = {
.visible = true,
.named = false,
},
[anon_sym_return] = {
.visible = true,
.named = false,
},
[anon_sym_while] = {
.visible = true,
.named = false,
},
[anon_sym_DOT] = {
.visible = true,
.named = false,
},
[anon_sym_STAR] = {
.visible = true,
.named = false,
},
[anon_sym_SLASH] = {
.visible = true,
.named = false,
},
[anon_sym_PLUS] = {
.visible = true,
.named = false,
},
[anon_sym_DASH] = {
.visible = true,
.named = false,
},
[anon_sym_LT] = {
.visible = true,
.named = false,
},
[anon_sym_LT_EQ] = {
.visible = true,
.named = false,
},
[anon_sym_GT] = {
.visible = true,
.named = false,
},
[anon_sym_GT_EQ] = {
.visible = true,
.named = false,
},
[anon_sym_EQ_EQ] = {
.visible = true,
.named = false,
},
[anon_sym_BANG_EQ] = {
.visible = true,
.named = false,
},
[anon_sym_and] = {
.visible = true,
.named = false,
},
[anon_sym_or] = {
.visible = true,
.named = false,
},
[anon_sym_BANG] = {
.visible = true,
.named = false,
},
[anon_sym_false] = {
.visible = true,
.named = false,
},
[anon_sym_true] = {
.visible = true,
.named = false,
},
[sym_nil] = {
.visible = true,
.named = true,
},
[sym_this] = {
.visible = true,
.named = true,
},
[sym_number] = {
.visible = true,
.named = true,
},
[sym_string] = {
.visible = true,
.named = true,
},
[anon_sym_super] = {
.visible = true,
.named = false,
},
[anon_sym_COMMA] = {
.visible = true,
.named = false,
},
[sym_comment] = {
.visible = true,
.named = true,
},
[sym_program] = {
.visible = true,
.named = true,
},
[sym_decl] = {
.visible = true,
.named = true,
},
[sym_decl_class] = {
.visible = true,
.named = true,
},
[sym_decl_fun] = {
.visible = true,
.named = true,
},
[sym_decl_var] = {
.visible = true,
.named = true,
},
[sym_decl_stmt] = {
.visible = true,
.named = true,
},
[sym_stmt_block] = {
.visible = true,
.named = true,
},
[sym_stmt_expr] = {
.visible = true,
.named = true,
},
[sym_stmt_for] = {
.visible = true,
.named = true,
},
[sym_for_paren] = {
.visible = true,
.named = true,
},
[sym_stmt_if] = {
.visible = true,
.named = true,
},
[sym_stmt_print] = {
.visible = true,
.named = true,
},
[sym_stmt_return] = {
.visible = true,
.named = true,
},
[sym_stmt_while] = {
.visible = true,
.named = true,
},
[sym__expr] = {
.visible = false,
.named = true,
},
[sym_expr_call] = {
.visible = true,
.named = true,
},
[sym_expr_field] = {
.visible = true,
.named = true,
},
[sym_expr_infix] = {
.visible = true,
.named = true,
},
[sym_expr_prefix] = {
.visible = true,
.named = true,
},
[sym_expr_primary] = {
.visible = true,
.named = true,
},
[sym_bool] = {
.visible = true,
.named = true,
},
[sym_var] = {
.visible = true,
.named = true,
},
[sym_grouping] = {
.visible = true,
.named = true,
},
[sym_super] = {
.visible = true,
.named = true,
},
[sym_extends] = {
.visible = true,
.named = true,
},
[sym_function] = {
.visible = true,
.named = true,
},
[sym_args] = {
.visible = true,
.named = true,
},
[sym_params] = {
.visible = true,
.named = true,
},
[aux_sym_program_repeat1] = {
.visible = false,
.named = false,
},
[aux_sym_decl_class_repeat1] = {
.visible = false,
.named = false,
},
[aux_sym_args_repeat1] = {
.visible = false,
.named = false,
},
[aux_sym_params_repeat1] = {
.visible = false,
.named = false,
},
};
enum {
field_args = 1,
field_base = 2,
field_body = 3,
field_callee = 4,
field_cond = 5,
field_decl = 6,
field_else = 7,
field_extends = 8,
field_field = 9,
field_function = 10,
field_incr = 11,
field_init = 12,
field_inner = 13,
field_lt = 14,
field_method = 15,
field_name = 16,
field_object = 17,
field_op = 18,
field_params = 19,
field_paren = 20,
field_rt = 21,
field_then = 22,
field_value = 23,
};
static const char * const ts_field_names[] = {
[0] = NULL,
[field_args] = "args",
[field_base] = "base",
[field_body] = "body",
[field_callee] = "callee",
[field_cond] = "cond",
[field_decl] = "decl",
[field_else] = "else",
[field_extends] = "extends",
[field_field] = "field",
[field_function] = "function",
[field_incr] = "incr",
[field_init] = "init",
[field_inner] = "inner",
[field_lt] = "lt",
[field_method] = "method",
[field_name] = "name",
[field_object] = "object",
[field_op] = "op",
[field_params] = "params",
[field_paren] = "paren",
[field_rt] = "rt",
[field_then] = "then",
[field_value] = "value",
};
static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = {
[1] = {.index = 0, .length = 1},
[2] = {.index = 1, .length = 1},
[3] = {.index = 2, .length = 1},
[4] = {.index = 3, .length = 2},
[5] = {.index = 5, .length = 1},
[6] = {.index = 6, .length = 2},
[7] = {.index = 8, .length = 1},
[8] = {.index = 9, .length = 1},
[9] = {.index = 10, .length = 2},
[10] = {.index = 12, .length = 1},
[11] = {.index = 13, .length = 2},
[12] = {.index = 15, .length = 1},
[13] = {.index = 16, .length = 2},
[14] = {.index = 18, .length = 1},
[15] = {.index = 19, .length = 3},
[16] = {.index = 22, .length = 2},
[17] = {.index = 24, .length = 3},
[18] = {.index = 27, .length = 2},
[19] = {.index = 29, .length = 2},
[20] = {.index = 31, .length = 1},
[21] = {.index = 32, .length = 3},
[22] = {.index = 35, .length = 3},
[23] = {.index = 38, .length = 1},
[24] = {.index = 39, .length = 1},
[25] = {.index = 40, .length = 2},
[26] = {.index = 42, .length = 2},
[27] = {.index = 44, .length = 4},
[28] = {.index = 48, .length = 2},
[29] = {.index = 50, .length = 3},
};
static const TSFieldMapEntry ts_field_map_entries[] = {
[0] =
{field_name, 0},
[1] =
{field_decl, 0},
[2] =
{field_function, 1},
[3] =
{field_op, 0},
{field_rt, 1},
[5] =
{field_value, 0},
[6] =
{field_args, 1},
{field_callee, 0},
[8] =
{field_body, 1},
[9] =
{field_name, 1},
[10] =
{field_body, 2},
{field_paren, 1},
[12] =
{field_inner, 1},
[13] =
{field_cond, 1},
{field_then, 2},
[15] =
{field_value, 1},
[16] =
{field_body, 2},
{field_cond, 1},
[18] =
{field_field, 2},
[19] =
{field_lt, 0},
{field_op, 1},
{field_rt, 2},
[22] =
{field_field, 2},
{field_object, 0},
[24] =
{field_body, 2},
{field_name, 0},
{field_params, 1},
[27] =
{field_method, 3},
{field_name, 1},
[29] =
{field_name, 1},
{field_value, 3},
[31] =
{field_init, 1},
[32] =
{field_cond, 1},
{field_else, 4},
{field_then, 2},
[35] =
{field_base, 3},
{field_extends, 2},
{field_name, 1},
[38] =
{field_incr, 3},
[39] =
{field_cond, 2},
[40] =
{field_incr, 3},
{field_init, 1},
[42] =
{field_cond, 2},
{field_init, 1},
[44] =
{field_base, 3},
{field_extends, 2},
{field_method, 5},
{field_name, 1},
[48] =
{field_cond, 2},
{field_incr, 4},
[50] =
{field_cond, 2},
{field_incr, 4},
{field_init, 1},
};
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] = 2,
[6] = 6,
[7] = 4,
[8] = 3,
[9] = 9,
[10] = 10,
[11] = 11,
[12] = 12,
[13] = 9,
[14] = 10,
[15] = 11,
[16] = 12,
[17] = 17,
[18] = 18,
[19] = 19,
[20] = 20,
[21] = 21,
[22] = 22,
[23] = 23,
[24] = 24,
[25] = 25,
[26] = 26,
[27] = 27,
[28] = 27,
[29] = 29,
[30] = 25,
[31] = 31,
[32] = 32,
[33] = 20,
[34] = 34,
[35] = 35,
[36] = 36,
[37] = 37,
[38] = 38,
[39] = 19,
[40] = 40,
[41] = 41,
[42] = 26,
[43] = 32,
[44] = 22,
[45] = 35,
[46] = 31,
[47] = 21,
[48] = 48,
[49] = 29,
[50] = 50,
[51] = 23,
[52] = 52,
[53] = 53,
[54] = 54,
[55] = 55,
[56] = 56,
[57] = 57,
[58] = 37,
[59] = 59,
[60] = 60,
[61] = 61,
[62] = 60,
[63] = 63,
[64] = 59,
[65] = 24,
[66] = 63,
[67] = 67,
[68] = 68,
[69] = 68,
[70] = 70,
[71] = 67,
[72] = 72,
[73] = 73,
[74] = 53,
[75] = 75,
[76] = 76,
[77] = 77,
[78] = 77,
[79] = 79,
[80] = 75,
[81] = 70,
[82] = 82,
[83] = 83,
[84] = 84,
[85] = 85,
[86] = 86,
[87] = 87,
[88] = 88,
[89] = 89,
[90] = 90,
[91] = 91,
[92] = 92,
[93] = 93,
[94] = 94,
[95] = 95,
[96] = 96,
[97] = 97,
[98] = 98,
[99] = 99,
[100] = 100,
[101] = 101,
[102] = 102,
[103] = 103,
[104] = 104,
[105] = 101,
[106] = 106,
[107] = 107,
[108] = 102,
[109] = 109,
[110] = 110,
[111] = 111,
[112] = 112,
[113] = 110,
[114] = 114,
[115] = 115,
[116] = 116,
[117] = 117,
[118] = 118,
[119] = 119,
[120] = 120,
[121] = 121,
[122] = 122,
[123] = 109,
[124] = 124,
[125] = 125,
[126] = 126,
[127] = 126,
[128] = 128,
[129] = 129,
[130] = 124,
[131] = 125,
[132] = 129,
[133] = 133,
[134] = 134,
[135] = 134,
[136] = 136,
[137] = 137,
[138] = 138,
[139] = 139,
[140] = 140,
[141] = 141,
[142] = 142,
[143] = 143,
[144] = 144,
[145] = 141,
[146] = 146,
[147] = 144,
[148] = 140,
[149] = 143,
[150] = 150,
[151] = 151,
[152] = 152,
[153] = 151,
[154] = 142,
[155] = 146,
[156] = 156,
[157] = 157,
[158] = 158,
[159] = 159,
[160] = 160,
[161] = 161,
[162] = 162,
[163] = 162,
[164] = 164,
[165] = 165,
[166] = 166,
[167] = 167,
[168] = 168,
[169] = 169,
[170] = 168,
[171] = 157,
[172] = 165,
};
static bool ts_lex(TSLexer *lexer, TSStateId state) {
START_LEXER();
eof = lexer->eof(lexer);
switch (state) {
case 0:
if (eof) ADVANCE(7);
if (lookahead == '\t' ||
lookahead == '\n' ||
lookahead == ' ') SKIP(0)
if (lookahead == '\r') SKIP(0)
if (lookahead == '!') ADVANCE(26);
if (lookahead == '"') ADVANCE(1);
if (lookahead == '(') ADVANCE(12);
if (lookahead == ')') ADVANCE(13);
if (lookahead == '*') ADVANCE(15);
if (lookahead == '+') ADVANCE(17);
if (lookahead == ',') ADVANCE(30);
if (lookahead == '-') ADVANCE(18);
if (lookahead == '.') ADVANCE(14);
if (lookahead == '/') ADVANCE(16);
if (lookahead == ';') ADVANCE(11);
if (lookahead == '<') ADVANCE(19);
if (lookahead == '=') ADVANCE(10);
if (lookahead == '>') ADVANCE(21);
if (lookahead == '{') ADVANCE(8);
if (lookahead == '}') ADVANCE(9);
if (('0' <= lookahead && lookahead <= '9')) ADVANCE(27);
if (('A' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(32);
END_STATE();
case 1:
if (lookahead == '"') ADVANCE(29);
if (lookahead != 0) ADVANCE(1);
END_STATE();
case 2:
if (lookahead == '/') ADVANCE(31);
END_STATE();
case 3:
if (lookahead == '=') ADVANCE(24);
END_STATE();
case 4:
if (lookahead == '\t' ||
lookahead == '\n' ||
lookahead == ' ') SKIP(4)
if (lookahead == '\r') SKIP(4)
if (lookahead == '!') ADVANCE(3);
if (lookahead == '(') ADVANCE(12);
if (lookahead == ')') ADVANCE(13);
if (lookahead == '*') ADVANCE(15);
if (lookahead == '+') ADVANCE(17);
if (lookahead == ',') ADVANCE(30);
if (lookahead == '-') ADVANCE(18);
if (lookahead == '.') ADVANCE(14);
if (lookahead == '/') ADVANCE(16);
if (lookahead == ';') ADVANCE(11);
if (lookahead == '<') ADVANCE(19);
if (lookahead == '=') ADVANCE(10);
if (lookahead == '>') ADVANCE(21);
if (('A' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(32);
END_STATE();
case 5:
if (('0' <= lookahead && lookahead <= '9')) ADVANCE(28);
END_STATE();
case 6:
if (eof) ADVANCE(7);
if (lookahead == '\t' ||
lookahead == '\n' ||
lookahead == ' ') SKIP(6)
if (lookahead == '\r') SKIP(6)
if (lookahead == '!') ADVANCE(25);
if (lookahead == '"') ADVANCE(1);
if (lookahead == '(') ADVANCE(12);
if (lookahead == ')') ADVANCE(13);
if (lookahead == '-') ADVANCE(18);
if (lookahead == '/') ADVANCE(2);
if (lookahead == ';') ADVANCE(11);
if (lookahead == '{') ADVANCE(8);
if (lookahead == '}') ADVANCE(9);
if (('0' <= lookahead && lookahead <= '9')) ADVANCE(27);
if (('A' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(32);
END_STATE();
case 7:
ACCEPT_TOKEN(ts_builtin_sym_end);
END_STATE();
case 8:
ACCEPT_TOKEN(anon_sym_LBRACE);
END_STATE();
case 9:
ACCEPT_TOKEN(anon_sym_RBRACE);
END_STATE();
case 10:
ACCEPT_TOKEN(anon_sym_EQ);
if (lookahead == '=') ADVANCE(23);
END_STATE();
case 11:
ACCEPT_TOKEN(anon_sym_SEMI);
END_STATE();
case 12:
ACCEPT_TOKEN(anon_sym_LPAREN);
END_STATE();
case 13:
ACCEPT_TOKEN(anon_sym_RPAREN);
END_STATE();
case 14:
ACCEPT_TOKEN(anon_sym_DOT);
END_STATE();
case 15:
ACCEPT_TOKEN(anon_sym_STAR);
END_STATE();
case 16:
ACCEPT_TOKEN(anon_sym_SLASH);
if (lookahead == '/') ADVANCE(31);
END_STATE();
case 17:
ACCEPT_TOKEN(anon_sym_PLUS);
END_STATE();
case 18:
ACCEPT_TOKEN(anon_sym_DASH);
END_STATE();
case 19:
ACCEPT_TOKEN(anon_sym_LT);
if (lookahead == '=') ADVANCE(20);
END_STATE();
case 20:
ACCEPT_TOKEN(anon_sym_LT_EQ);
END_STATE();
case 21:
ACCEPT_TOKEN(anon_sym_GT);
if (lookahead == '=') ADVANCE(22);
END_STATE();
case 22:
ACCEPT_TOKEN(anon_sym_GT_EQ);
END_STATE();
case 23:
ACCEPT_TOKEN(anon_sym_EQ_EQ);
END_STATE();
case 24:
ACCEPT_TOKEN(anon_sym_BANG_EQ);
END_STATE();
case 25:
ACCEPT_TOKEN(anon_sym_BANG);
END_STATE();
case 26:
ACCEPT_TOKEN(anon_sym_BANG);
if (lookahead == '=') ADVANCE(24);
END_STATE();
case 27:
ACCEPT_TOKEN(sym_number);
if (lookahead == '.') ADVANCE(5);
if (('0' <= lookahead && lookahead <= '9')) ADVANCE(27);
END_STATE();
case 28:
ACCEPT_TOKEN(sym_number);
if (('0' <= lookahead && lookahead <= '9')) ADVANCE(28);
END_STATE();
case 29:
ACCEPT_TOKEN(sym_string);
END_STATE();
case 30:
ACCEPT_TOKEN(anon_sym_COMMA);
END_STATE();
case 31:
ACCEPT_TOKEN(sym_comment);
if (lookahead != 0 &&
lookahead != '\n') ADVANCE(31);
END_STATE();
case 32:
ACCEPT_TOKEN(sym_identifier);
if (('0' <= lookahead && lookahead <= '9') ||
('A' <= lookahead && lookahead <= 'Z') ||
lookahead == '_' ||
('a' <= lookahead && lookahead <= 'z')) ADVANCE(32);
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 == '\t' ||
lookahead == '\n' ||
lookahead == ' ') SKIP(0)
if (lookahead == '\r') SKIP(0)
if (lookahead == 'a') ADVANCE(1);
if (lookahead == 'c') ADVANCE(2);
if (lookahead == 'e') ADVANCE(3);
if (lookahead == 'f') ADVANCE(4);
if (lookahead == 'i') ADVANCE(5);
if (lookahead == 'n') ADVANCE(6);
if (lookahead == 'o') ADVANCE(7);
if (lookahead == 'p') ADVANCE(8);
if (lookahead == 'r') ADVANCE(9);
if (lookahead == 's') ADVANCE(10);
if (lookahead == 't') ADVANCE(11);
if (lookahead == 'v') ADVANCE(12);
if (lookahead == 'w') ADVANCE(13);
END_STATE();
case 1:
if (lookahead == 'n') ADVANCE(14);
END_STATE();
case 2:
if (lookahead == 'l') ADVANCE(15);
END_STATE();
case 3:
if (lookahead == 'l') ADVANCE(16);
END_STATE();
case 4:
if (lookahead == 'a') ADVANCE(17);
if (lookahead == 'o') ADVANCE(18);
if (lookahead == 'u') ADVANCE(19);
END_STATE();
case 5:
if (lookahead == 'f') ADVANCE(20);
END_STATE();
case 6:
if (lookahead == 'i') ADVANCE(21);
END_STATE();
case 7:
if (lookahead == 'r') ADVANCE(22);
END_STATE();
case 8:
if (lookahead == 'r') ADVANCE(23);
END_STATE();
case 9:
if (lookahead == 'e') ADVANCE(24);
END_STATE();
case 10:
if (lookahead == 'u') ADVANCE(25);
END_STATE();
case 11:
if (lookahead == 'h') ADVANCE(26);
if (lookahead == 'r') ADVANCE(27);
END_STATE();
case 12:
if (lookahead == 'a') ADVANCE(28);
END_STATE();
case 13:
if (lookahead == 'h') ADVANCE(29);
END_STATE();
case 14:
if (lookahead == 'd') ADVANCE(30);
END_STATE();
case 15:
if (lookahead == 'a') ADVANCE(31);
END_STATE();
case 16:
if (lookahead == 's') ADVANCE(32);
END_STATE();
case 17:
if (lookahead == 'l') ADVANCE(33);
END_STATE();
case 18:
if (lookahead == 'r') ADVANCE(34);
END_STATE();
case 19:
if (lookahead == 'n') ADVANCE(35);
END_STATE();
case 20:
ACCEPT_TOKEN(anon_sym_if);
END_STATE();
case 21:
if (lookahead == 'l') ADVANCE(36);
END_STATE();
case 22:
ACCEPT_TOKEN(anon_sym_or);
END_STATE();
case 23:
if (lookahead == 'i') ADVANCE(37);
END_STATE();
case 24:
if (lookahead == 't') ADVANCE(38);
END_STATE();
case 25:
if (lookahead == 'p') ADVANCE(39);
END_STATE();
case 26:
if (lookahead == 'i') ADVANCE(40);
END_STATE();
case 27:
if (lookahead == 'u') ADVANCE(41);
END_STATE();
case 28:
if (lookahead == 'r') ADVANCE(42);
END_STATE();
case 29:
if (lookahead == 'i') ADVANCE(43);
END_STATE();
case 30:
ACCEPT_TOKEN(anon_sym_and);
END_STATE();
case 31:
if (lookahead == 's') ADVANCE(44);
END_STATE();
case 32:
if (lookahead == 'e') ADVANCE(45);
END_STATE();
case 33:
if (lookahead == 's') ADVANCE(46);
END_STATE();
case 34:
ACCEPT_TOKEN(anon_sym_for);
END_STATE();
case 35:
ACCEPT_TOKEN(anon_sym_fun);
END_STATE();
case 36:
ACCEPT_TOKEN(sym_nil);
END_STATE();
case 37:
if (lookahead == 'n') ADVANCE(47);
END_STATE();
case 38:
if (lookahead == 'u') ADVANCE(48);
END_STATE();
case 39:
if (lookahead == 'e') ADVANCE(49);
END_STATE();
case 40:
if (lookahead == 's') ADVANCE(50);
END_STATE();
case 41:
if (lookahead == 'e') ADVANCE(51);
END_STATE();
case 42:
ACCEPT_TOKEN(anon_sym_var);
END_STATE();
case 43:
if (lookahead == 'l') ADVANCE(52);
END_STATE();
case 44:
if (lookahead == 's') ADVANCE(53);
END_STATE();
case 45:
ACCEPT_TOKEN(anon_sym_else);
END_STATE();
case 46:
if (lookahead == 'e') ADVANCE(54);
END_STATE();
case 47:
if (lookahead == 't') ADVANCE(55);
END_STATE();
case 48:
if (lookahead == 'r') ADVANCE(56);
END_STATE();
case 49:
if (lookahead == 'r') ADVANCE(57);
END_STATE();
case 50:
ACCEPT_TOKEN(sym_this);
END_STATE();
case 51:
ACCEPT_TOKEN(anon_sym_true);
END_STATE();
case 52:
if (lookahead == 'e') ADVANCE(58);
END_STATE();
case 53:
ACCEPT_TOKEN(anon_sym_class);
END_STATE();
case 54:
ACCEPT_TOKEN(anon_sym_false);
END_STATE();
case 55:
ACCEPT_TOKEN(anon_sym_print);
END_STATE();
case 56:
if (lookahead == 'n') ADVANCE(59);
END_STATE();
case 57:
ACCEPT_TOKEN(anon_sym_super);
END_STATE();
case 58:
ACCEPT_TOKEN(anon_sym_while);
END_STATE();
case 59:
ACCEPT_TOKEN(anon_sym_return);
END_STATE();
default:
return false;
}
}
static const TSLexMode ts_lex_modes[STATE_COUNT] = {
[0] = {.lex_state = 0},
[1] = {.lex_state = 6},
[2] = {.lex_state = 6},
[3] = {.lex_state = 6},
[4] = {.lex_state = 6},
[5] = {.lex_state = 6},
[6] = {.lex_state = 6},
[7] = {.lex_state = 6},
[8] = {.lex_state = 6},
[9] = {.lex_state = 6},
[10] = {.lex_state = 6},
[11] = {.lex_state = 6},
[12] = {.lex_state = 6},
[13] = {.lex_state = 6},
[14] = {.lex_state = 6},
[15] = {.lex_state = 6},
[16] = {.lex_state = 6},
[17] = {.lex_state = 0},
[18] = {.lex_state = 6},
[19] = {.lex_state = 6},
[20] = {.lex_state = 6},
[21] = {.lex_state = 6},
[22] = {.lex_state = 6},
[23] = {.lex_state = 6},
[24] = {.lex_state = 6},
[25] = {.lex_state = 6},
[26] = {.lex_state = 6},
[27] = {.lex_state = 6},
[28] = {.lex_state = 6},
[29] = {.lex_state = 6},
[30] = {.lex_state = 6},
[31] = {.lex_state = 6},
[32] = {.lex_state = 6},
[33] = {.lex_state = 6},
[34] = {.lex_state = 6},
[35] = {.lex_state = 6},
[36] = {.lex_state = 6},
[37] = {.lex_state = 6},
[38] = {.lex_state = 6},
[39] = {.lex_state = 6},
[40] = {.lex_state = 6},
[41] = {.lex_state = 6},
[42] = {.lex_state = 6},
[43] = {.lex_state = 6},
[44] = {.lex_state = 6},
[45] = {.lex_state = 6},
[46] = {.lex_state = 6},
[47] = {.lex_state = 6},
[48] = {.lex_state = 6},
[49] = {.lex_state = 6},
[50] = {.lex_state = 6},
[51] = {.lex_state = 6},
[52] = {.lex_state = 6},
[53] = {.lex_state = 6},
[54] = {.lex_state = 6},
[55] = {.lex_state = 6},
[56] = {.lex_state = 6},
[57] = {.lex_state = 6},
[58] = {.lex_state = 6},
[59] = {.lex_state = 6},
[60] = {.lex_state = 6},
[61] = {.lex_state = 6},
[62] = {.lex_state = 6},
[63] = {.lex_state = 6},
[64] = {.lex_state = 6},
[65] = {.lex_state = 6},
[66] = {.lex_state = 6},
[67] = {.lex_state = 6},
[68] = {.lex_state = 6},
[69] = {.lex_state = 6},
[70] = {.lex_state = 6},
[71] = {.lex_state = 6},
[72] = {.lex_state = 6},
[73] = {.lex_state = 6},
[74] = {.lex_state = 6},
[75] = {.lex_state = 6},
[76] = {.lex_state = 6},
[77] = {.lex_state = 6},
[78] = {.lex_state = 6},
[79] = {.lex_state = 6},
[80] = {.lex_state = 6},
[81] = {.lex_state = 6},
[82] = {.lex_state = 4},
[83] = {.lex_state = 4},
[84] = {.lex_state = 4},
[85] = {.lex_state = 4},
[86] = {.lex_state = 4},
[87] = {.lex_state = 4},
[88] = {.lex_state = 4},
[89] = {.lex_state = 4},
[90] = {.lex_state = 4},
[91] = {.lex_state = 4},
[92] = {.lex_state = 4},
[93] = {.lex_state = 4},
[94] = {.lex_state = 4},
[95] = {.lex_state = 4},
[96] = {.lex_state = 4},
[97] = {.lex_state = 4},
[98] = {.lex_state = 4},
[99] = {.lex_state = 4},
[100] = {.lex_state = 4},
[101] = {.lex_state = 4},
[102] = {.lex_state = 4},
[103] = {.lex_state = 6},
[104] = {.lex_state = 4},
[105] = {.lex_state = 4},
[106] = {.lex_state = 6},
[107] = {.lex_state = 4},
[108] = {.lex_state = 4},
[109] = {.lex_state = 4},
[110] = {.lex_state = 4},
[111] = {.lex_state = 4},
[112] = {.lex_state = 4},
[113] = {.lex_state = 4},
[114] = {.lex_state = 6},
[115] = {.lex_state = 6},
[116] = {.lex_state = 4},
[117] = {.lex_state = 6},
[118] = {.lex_state = 6},
[119] = {.lex_state = 4},
[120] = {.lex_state = 4},
[121] = {.lex_state = 6},
[122] = {.lex_state = 6},
[123] = {.lex_state = 4},
[124] = {.lex_state = 0},
[125] = {.lex_state = 0},
[126] = {.lex_state = 0},
[127] = {.lex_state = 0},
[128] = {.lex_state = 0},
[129] = {.lex_state = 0},
[130] = {.lex_state = 0},
[131] = {.lex_state = 0},
[132] = {.lex_state = 0},
[133] = {.lex_state = 0},
[134] = {.lex_state = 0},
[135] = {.lex_state = 0},
[136] = {.lex_state = 0},
[137] = {.lex_state = 0},
[138] = {.lex_state = 0},
[139] = {.lex_state = 0},
[140] = {.lex_state = 0},
[141] = {.lex_state = 0},
[142] = {.lex_state = 0},
[143] = {.lex_state = 0},
[144] = {.lex_state = 0},
[145] = {.lex_state = 0},
[146] = {.lex_state = 0},
[147] = {.lex_state = 0},
[148] = {.lex_state = 0},
[149] = {.lex_state = 0},
[150] = {.lex_state = 0},
[151] = {.lex_state = 0},
[152] = {.lex_state = 0},
[153] = {.lex_state = 0},
[154] = {.lex_state = 0},
[155] = {.lex_state = 0},
[156] = {.lex_state = 0},
[157] = {.lex_state = 0},
[158] = {.lex_state = 0},
[159] = {.lex_state = 0},
[160] = {.lex_state = 0},
[161] = {.lex_state = 0},
[162] = {.lex_state = 0},
[163] = {.lex_state = 0},
[164] = {.lex_state = 0},
[165] = {.lex_state = 0},
[166] = {.lex_state = 0},
[167] = {.lex_state = 0},
[168] = {.lex_state = 0},
[169] = {.lex_state = 0},
[170] = {.lex_state = 0},
[171] = {.lex_state = 0},
[172] = {.lex_state = 0},
};
static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
[0] = {
[ts_builtin_sym_end] = ACTIONS(1),
[sym_identifier] = ACTIONS(1),
[anon_sym_class] = ACTIONS(1),
[anon_sym_LBRACE] = ACTIONS(1),
[anon_sym_RBRACE] = ACTIONS(1),
[anon_sym_fun] = ACTIONS(1),
[anon_sym_var] = ACTIONS(1),
[anon_sym_EQ] = ACTIONS(1),
[anon_sym_SEMI] = ACTIONS(1),
[anon_sym_for] = ACTIONS(1),
[anon_sym_LPAREN] = ACTIONS(1),
[anon_sym_RPAREN] = ACTIONS(1),
[anon_sym_if] = ACTIONS(1),
[anon_sym_else] = ACTIONS(1),
[anon_sym_print] = ACTIONS(1),
[anon_sym_return] = ACTIONS(1),
[anon_sym_while] = ACTIONS(1),
[anon_sym_DOT] = ACTIONS(1),
[anon_sym_STAR] = ACTIONS(1),
[anon_sym_SLASH] = ACTIONS(1),
[anon_sym_PLUS] = ACTIONS(1),
[anon_sym_DASH] = ACTIONS(1),
[anon_sym_LT] = ACTIONS(1),
[anon_sym_LT_EQ] = ACTIONS(1),
[anon_sym_GT] = ACTIONS(1),
[anon_sym_GT_EQ] = ACTIONS(1),
[anon_sym_EQ_EQ] = ACTIONS(1),
[anon_sym_BANG_EQ] = ACTIONS(1),
[anon_sym_and] = ACTIONS(1),
[anon_sym_or] = ACTIONS(1),
[anon_sym_BANG] = ACTIONS(1),
[anon_sym_false] = ACTIONS(1),
[anon_sym_true] = ACTIONS(1),
[sym_nil] = ACTIONS(1),
[sym_this] = ACTIONS(1),
[sym_number] = ACTIONS(1),
[sym_string] = ACTIONS(1),
[anon_sym_super] = ACTIONS(1),
[anon_sym_COMMA] = ACTIONS(1),
[sym_comment] = ACTIONS(3),
},
[1] = {
[sym_program] = STATE(160),
[sym_decl] = STATE(6),
[sym_decl_class] = STATE(71),
[sym_decl_fun] = STATE(71),
[sym_decl_var] = STATE(71),
[sym_decl_stmt] = STATE(71),
[sym_stmt_block] = STATE(25),
[sym_stmt_expr] = STATE(25),
[sym_stmt_for] = STATE(25),
[sym_stmt_if] = STATE(25),
[sym_stmt_print] = STATE(25),
[sym_stmt_return] = STATE(25),
[sym_stmt_while] = STATE(25),
[sym__expr] = STATE(113),
[sym_expr_call] = STATE(113),
[sym_expr_field] = STATE(113),
[sym_expr_infix] = STATE(113),
[sym_expr_prefix] = STATE(113),
[sym_expr_primary] = STATE(113),
[sym_bool] = STATE(92),
[sym_var] = STATE(92),
[sym_grouping] = STATE(92),
[sym_super] = STATE(92),
[aux_sym_program_repeat1] = STATE(6),
[ts_builtin_sym_end] = ACTIONS(5),
[sym_identifier] = ACTIONS(7),
[anon_sym_class] = ACTIONS(9),
[anon_sym_LBRACE] = ACTIONS(11),
[anon_sym_fun] = ACTIONS(13),
[anon_sym_var] = ACTIONS(15),
[anon_sym_for] = ACTIONS(17),
[anon_sym_LPAREN] = ACTIONS(19),
[anon_sym_if] = ACTIONS(21),
[anon_sym_print] = ACTIONS(23),
[anon_sym_return] = ACTIONS(25),
[anon_sym_while] = ACTIONS(27),
[anon_sym_DASH] = ACTIONS(29),
[anon_sym_BANG] = ACTIONS(29),
[anon_sym_false] = ACTIONS(31),
[anon_sym_true] = ACTIONS(31),
[sym_nil] = ACTIONS(33),
[sym_this] = ACTIONS(33),
[sym_number] = ACTIONS(35),
[sym_string] = ACTIONS(35),
[anon_sym_super] = ACTIONS(37),
[sym_comment] = ACTIONS(3),
},
[2] = {
[sym_decl] = STATE(8),
[sym_decl_class] = STATE(67),
[sym_decl_fun] = STATE(67),
[sym_decl_var] = STATE(67),
[sym_decl_stmt] = STATE(67),
[sym_stmt_block] = STATE(30),
[sym_stmt_expr] = STATE(30),
[sym_stmt_for] = STATE(30),
[sym_stmt_if] = STATE(30),
[sym_stmt_print] = STATE(30),
[sym_stmt_return] = STATE(30),
[sym_stmt_while] = STATE(30),
[sym__expr] = STATE(110),
[sym_expr_call] = STATE(110),
[sym_expr_field] = STATE(110),
[sym_expr_infix] = STATE(110),
[sym_expr_prefix] = STATE(110),
[sym_expr_primary] = STATE(110),
[sym_bool] = STATE(92),
[sym_var] = STATE(92),
[sym_grouping] = STATE(92),
[sym_super] = STATE(92),
[aux_sym_program_repeat1] = STATE(8),
[sym_identifier] = ACTIONS(7),
[anon_sym_class] = ACTIONS(39),
[anon_sym_LBRACE] = ACTIONS(41),
[anon_sym_RBRACE] = ACTIONS(43),
[anon_sym_fun] = ACTIONS(45),
[anon_sym_var] = ACTIONS(47),
[anon_sym_for] = ACTIONS(49),
[anon_sym_LPAREN] = ACTIONS(19),
[anon_sym_if] = ACTIONS(51),
[anon_sym_print] = ACTIONS(53),
[anon_sym_return] = ACTIONS(55),
[anon_sym_while] = ACTIONS(57),
[anon_sym_DASH] = ACTIONS(29),
[anon_sym_BANG] = ACTIONS(29),
[anon_sym_false] = ACTIONS(31),
[anon_sym_true] = ACTIONS(31),
[sym_nil] = ACTIONS(33),
[sym_this] = ACTIONS(33),
[sym_number] = ACTIONS(35),
[sym_string] = ACTIONS(35),
[anon_sym_super] = ACTIONS(37),
[sym_comment] = ACTIONS(3),
},
[3] = {
[sym_decl] = STATE(7),
[sym_decl_class] = STATE(67),
[sym_decl_fun] = STATE(67),
[sym_decl_var] = STATE(67),
[sym_decl_stmt] = STATE(67),
[sym_stmt_block] = STATE(30),
[sym_stmt_expr] = STATE(30),
[sym_stmt_for] = STATE(30),
[sym_stmt_if] = STATE(30),
[sym_stmt_print] = STATE(30),
[sym_stmt_return] = STATE(30),
[sym_stmt_while] = STATE(30),
[sym__expr] = STATE(110),
[sym_expr_call] = STATE(110),
[sym_expr_field] = STATE(110),
[sym_expr_infix] = STATE(110),
[sym_expr_prefix] = STATE(110),
[sym_expr_primary] = STATE(110),
[sym_bool] = STATE(92),
[sym_var] = STATE(92),
[sym_grouping] = STATE(92),
[sym_super] = STATE(92),
[aux_sym_program_repeat1] = STATE(7),
[sym_identifier] = ACTIONS(7),
[anon_sym_class] = ACTIONS(39),
[anon_sym_LBRACE] = ACTIONS(41),
[anon_sym_RBRACE] = ACTIONS(59),
[anon_sym_fun] = ACTIONS(45),
[anon_sym_var] = ACTIONS(47),
[anon_sym_for] = ACTIONS(49),
[anon_sym_LPAREN] = ACTIONS(19),
[anon_sym_if] = ACTIONS(51),
[anon_sym_print] = ACTIONS(53),
[anon_sym_return] = ACTIONS(55),
[anon_sym_while] = ACTIONS(57),
[anon_sym_DASH] = ACTIONS(29),
[anon_sym_BANG] = ACTIONS(29),
[anon_sym_false] = ACTIONS(31),
[anon_sym_true] = ACTIONS(31),
[sym_nil] = ACTIONS(33),
[sym_this] = ACTIONS(33),
[sym_number] = ACTIONS(35),
[sym_string] = ACTIONS(35),
[anon_sym_super] = ACTIONS(37),
[sym_comment] = ACTIONS(3),
},
[4] = {
[sym_decl] = STATE(4),
[sym_decl_class] = STATE(71),
[sym_decl_fun] = STATE(71),
[sym_decl_var] = STATE(71),
[sym_decl_stmt] = STATE(71),
[sym_stmt_block] = STATE(25),
[sym_stmt_expr] = STATE(25),
[sym_stmt_for] = STATE(25),
[sym_stmt_if] = STATE(25),
[sym_stmt_print] = STATE(25),
[sym_stmt_return] = STATE(25),
[sym_stmt_while] = STATE(25),
[sym__expr] = STATE(113),
[sym_expr_call] = STATE(113),
[sym_expr_field] = STATE(113),
[sym_expr_infix] = STATE(113),
[sym_expr_prefix] = STATE(113),
[sym_expr_primary] = STATE(113),
[sym_bool] = STATE(92),
[sym_var] = STATE(92),
[sym_grouping] = STATE(92),
[sym_super] = STATE(92),
[aux_sym_program_repeat1] = STATE(4),
[ts_builtin_sym_end] = ACTIONS(61),
[sym_identifier] = ACTIONS(63),
[anon_sym_class] = ACTIONS(66),
[anon_sym_LBRACE] = ACTIONS(69),
[anon_sym_fun] = ACTIONS(72),
[anon_sym_var] = ACTIONS(75),
[anon_sym_for] = ACTIONS(78),
[anon_sym_LPAREN] = ACTIONS(81),
[anon_sym_if] = ACTIONS(84),
[anon_sym_print] = ACTIONS(87),
[anon_sym_return] = ACTIONS(90),
[anon_sym_while] = ACTIONS(93),
[anon_sym_DASH] = ACTIONS(96),
[anon_sym_BANG] = ACTIONS(96),
[anon_sym_false] = ACTIONS(99),
[anon_sym_true] = ACTIONS(99),
[sym_nil] = ACTIONS(102),
[sym_this] = ACTIONS(102),
[sym_number] = ACTIONS(105),
[sym_string] = ACTIONS(105),
[anon_sym_super] = ACTIONS(108),
[sym_comment] = ACTIONS(3),
},
[5] = {
[sym_decl] = STATE(3),
[sym_decl_class] = STATE(67),
[sym_decl_fun] = STATE(67),
[sym_decl_var] = STATE(67),
[sym_decl_stmt] = STATE(67),
[sym_stmt_block] = STATE(30),
[sym_stmt_expr] = STATE(30),
[sym_stmt_for] = STATE(30),
[sym_stmt_if] = STATE(30),
[sym_stmt_print] = STATE(30),
[sym_stmt_return] = STATE(30),
[sym_stmt_while] = STATE(30),
[sym__expr] = STATE(110),
[sym_expr_call] = STATE(110),
[sym_expr_field] = STATE(110),
[sym_expr_infix] = STATE(110),
[sym_expr_prefix] = STATE(110),
[sym_expr_primary] = STATE(110),
[sym_bool] = STATE(92),
[sym_var] = STATE(92),
[sym_grouping] = STATE(92),
[sym_super] = STATE(92),
[aux_sym_program_repeat1] = STATE(3),
[sym_identifier] = ACTIONS(7),
[anon_sym_class] = ACTIONS(39),
[anon_sym_LBRACE] = ACTIONS(41),
[anon_sym_RBRACE] = ACTIONS(111),
[anon_sym_fun] = ACTIONS(45),
[anon_sym_var] = ACTIONS(47),
[anon_sym_for] = ACTIONS(49),
[anon_sym_LPAREN] = ACTIONS(19),
[anon_sym_if] = ACTIONS(51),
[anon_sym_print] = ACTIONS(53),
[anon_sym_return] = ACTIONS(55),
[anon_sym_while] = ACTIONS(57),
[anon_sym_DASH] = ACTIONS(29),
[anon_sym_BANG] = ACTIONS(29),
[anon_sym_false] = ACTIONS(31),
[anon_sym_true] = ACTIONS(31),
[sym_nil] = ACTIONS(33),
[sym_this] = ACTIONS(33),
[sym_number] = ACTIONS(35),
[sym_string] = ACTIONS(35),
[anon_sym_super] = ACTIONS(37),
[sym_comment] = ACTIONS(3),
},
[6] = {
[sym_decl] = STATE(4),
[sym_decl_class] = STATE(71),
[sym_decl_fun] = STATE(71),
[sym_decl_var] = STATE(71),
[sym_decl_stmt] = STATE(71),
[sym_stmt_block] = STATE(25),
[sym_stmt_expr] = STATE(25),
[sym_stmt_for] = STATE(25),
[sym_stmt_if] = STATE(25),
[sym_stmt_print] = STATE(25),
[sym_stmt_return] = STATE(25),
[sym_stmt_while] = STATE(25),
[sym__expr] = STATE(113),
[sym_expr_call] = STATE(113),
[sym_expr_field] = STATE(113),
[sym_expr_infix] = STATE(113),
[sym_expr_prefix] = STATE(113),
[sym_expr_primary] = STATE(113),
[sym_bool] = STATE(92),
[sym_var] = STATE(92),
[sym_grouping] = STATE(92),
[sym_super] = STATE(92),
[aux_sym_program_repeat1] = STATE(4),
[ts_builtin_sym_end] = ACTIONS(113),
[sym_identifier] = ACTIONS(7),
[anon_sym_class] = ACTIONS(9),
[anon_sym_LBRACE] = ACTIONS(11),
[anon_sym_fun] = ACTIONS(13),
[anon_sym_var] = ACTIONS(15),
[anon_sym_for] = ACTIONS(17),
[anon_sym_LPAREN] = ACTIONS(19),
[anon_sym_if] = ACTIONS(21),
[anon_sym_print] = ACTIONS(23),
[anon_sym_return] = ACTIONS(25),
[anon_sym_while] = ACTIONS(27),
[anon_sym_DASH] = ACTIONS(29),
[anon_sym_BANG] = ACTIONS(29),
[anon_sym_false] = ACTIONS(31),
[anon_sym_true] = ACTIONS(31),
[sym_nil] = ACTIONS(33),
[sym_this] = ACTIONS(33),
[sym_number] = ACTIONS(35),
[sym_string] = ACTIONS(35),
[anon_sym_super] = ACTIONS(37),
[sym_comment] = ACTIONS(3),
},
[7] = {
[sym_decl] = STATE(7),
[sym_decl_class] = STATE(67),
[sym_decl_fun] = STATE(67),
[sym_decl_var] = STATE(67),
[sym_decl_stmt] = STATE(67),
[sym_stmt_block] = STATE(30),
[sym_stmt_expr] = STATE(30),
[sym_stmt_for] = STATE(30),
[sym_stmt_if] = STATE(30),
[sym_stmt_print] = STATE(30),
[sym_stmt_return] = STATE(30),
[sym_stmt_while] = STATE(30),
[sym__expr] = STATE(110),
[sym_expr_call] = STATE(110),
[sym_expr_field] = STATE(110),
[sym_expr_infix] = STATE(110),
[sym_expr_prefix] = STATE(110),
[sym_expr_primary] = STATE(110),
[sym_bool] = STATE(92),
[sym_var] = STATE(92),
[sym_grouping] = STATE(92),
[sym_super] = STATE(92),
[aux_sym_program_repeat1] = STATE(7),
[sym_identifier] = ACTIONS(63),
[anon_sym_class] = ACTIONS(115),
[anon_sym_LBRACE] = ACTIONS(118),
[anon_sym_RBRACE] = ACTIONS(61),
[anon_sym_fun] = ACTIONS(121),
[anon_sym_var] = ACTIONS(124),
[anon_sym_for] = ACTIONS(127),
[anon_sym_LPAREN] = ACTIONS(81),
[anon_sym_if] = ACTIONS(130),
[anon_sym_print] = ACTIONS(133),
[anon_sym_return] = ACTIONS(136),
[anon_sym_while] = ACTIONS(139),
[anon_sym_DASH] = ACTIONS(96),
[anon_sym_BANG] = ACTIONS(96),
[anon_sym_false] = ACTIONS(99),
[anon_sym_true] = ACTIONS(99),
[sym_nil] = ACTIONS(102),
[sym_this] = ACTIONS(102),
[sym_number] = ACTIONS(105),
[sym_string] = ACTIONS(105),
[anon_sym_super] = ACTIONS(108),
[sym_comment] = ACTIONS(3),
},
[8] = {
[sym_decl] = STATE(7),
[sym_decl_class] = STATE(67),
[sym_decl_fun] = STATE(67),
[sym_decl_var] = STATE(67),
[sym_decl_stmt] = STATE(67),
[sym_stmt_block] = STATE(30),
[sym_stmt_expr] = STATE(30),
[sym_stmt_for] = STATE(30),
[sym_stmt_if] = STATE(30),
[sym_stmt_print] = STATE(30),
[sym_stmt_return] = STATE(30),
[sym_stmt_while] = STATE(30),
[sym__expr] = STATE(110),
[sym_expr_call] = STATE(110),
[sym_expr_field] = STATE(110),
[sym_expr_infix] = STATE(110),
[sym_expr_prefix] = STATE(110),
[sym_expr_primary] = STATE(110),
[sym_bool] = STATE(92),
[sym_var] = STATE(92),
[sym_grouping] = STATE(92),
[sym_super] = STATE(92),
[aux_sym_program_repeat1] = STATE(7),
[sym_identifier] = ACTIONS(7),
[anon_sym_class] = ACTIONS(39),
[anon_sym_LBRACE] = ACTIONS(41),
[anon_sym_RBRACE] = ACTIONS(142),
[anon_sym_fun] = ACTIONS(45),
[anon_sym_var] = ACTIONS(47),
[anon_sym_for] = ACTIONS(49),
[anon_sym_LPAREN] = ACTIONS(19),
[anon_sym_if] = ACTIONS(51),
[anon_sym_print] = ACTIONS(53),
[anon_sym_return] = ACTIONS(55),
[anon_sym_while] = ACTIONS(57),
[anon_sym_DASH] = ACTIONS(29),
[anon_sym_BANG] = ACTIONS(29),
[anon_sym_false] = ACTIONS(31),
[anon_sym_true] = ACTIONS(31),
[sym_nil] = ACTIONS(33),
[sym_this] = ACTIONS(33),
[sym_number] = ACTIONS(35),
[sym_string] = ACTIONS(35),
[anon_sym_super] = ACTIONS(37),
[sym_comment] = ACTIONS(3),
},
};
static const uint16_t ts_small_parse_table[] = {
[0] = 18,
ACTIONS(3), 1,
sym_comment,
ACTIONS(7), 1,
sym_identifier,
ACTIONS(19), 1,
anon_sym_LPAREN,
ACTIONS(37), 1,
anon_sym_super,
ACTIONS(41), 1,
anon_sym_LBRACE,
ACTIONS(49), 1,
anon_sym_for,
ACTIONS(51), 1,
anon_sym_if,
ACTIONS(53), 1,
anon_sym_print,
ACTIONS(55), 1,
anon_sym_return,
ACTIONS(57), 1,
anon_sym_while,
STATE(43), 1,
sym_decl_stmt,
ACTIONS(29), 2,
anon_sym_DASH,
anon_sym_BANG,
ACTIONS(31), 2,
anon_sym_false,
anon_sym_true,
ACTIONS(33), 2,
sym_nil,
sym_this,
ACTIONS(35), 2,
sym_number,
sym_string,
STATE(92), 4,
sym_bool,
sym_var,
sym_grouping,
sym_super,
STATE(110), 6,
sym__expr,
sym_expr_call,
sym_expr_field,
sym_expr_infix,
sym_expr_prefix,
sym_expr_primary,
STATE(30), 7,
sym_stmt_block,
sym_stmt_expr,
sym_stmt_for,
sym_stmt_if,
sym_stmt_print,
sym_stmt_return,
sym_stmt_while,
[73] = 18,
ACTIONS(3), 1,
sym_comment,
ACTIONS(7), 1,
sym_identifier,
ACTIONS(19), 1,
anon_sym_LPAREN,
ACTIONS(37), 1,
anon_sym_super,
ACTIONS(41), 1,
anon_sym_LBRACE,
ACTIONS(49), 1,
anon_sym_for,
ACTIONS(51), 1,
anon_sym_if,
ACTIONS(53), 1,
anon_sym_print,
ACTIONS(55), 1,
anon_sym_return,
ACTIONS(57), 1,
anon_sym_while,
STATE(21), 1,
sym_decl_stmt,
ACTIONS(29), 2,
anon_sym_DASH,
anon_sym_BANG,
ACTIONS(31), 2,
anon_sym_false,
anon_sym_true,
ACTIONS(33), 2,
sym_nil,
sym_this,
ACTIONS(35), 2,
sym_number,
sym_string,
STATE(92), 4,
sym_bool,
sym_var,
sym_grouping,
sym_super,
STATE(110), 6,
sym__expr,
sym_expr_call,
sym_expr_field,
sym_expr_infix,
sym_expr_prefix,
sym_expr_primary,
STATE(30), 7,
sym_stmt_block,
sym_stmt_expr,
sym_stmt_for,
sym_stmt_if,
sym_stmt_print,
sym_stmt_return,
sym_stmt_while,
[146] = 18,
ACTIONS(3), 1,
sym_comment,
ACTIONS(7), 1,
sym_identifier,
ACTIONS(19), 1,
anon_sym_LPAREN,
ACTIONS(37), 1,
anon_sym_super,
ACTIONS(41), 1,
anon_sym_LBRACE,
ACTIONS(49), 1,
anon_sym_for,
ACTIONS(51), 1,
anon_sym_if,
ACTIONS(53), 1,
anon_sym_print,
ACTIONS(55), 1,
anon_sym_return,
ACTIONS(57), 1,
anon_sym_while,
STATE(22), 1,
sym_decl_stmt,
ACTIONS(29), 2,
anon_sym_DASH,
anon_sym_BANG,
ACTIONS(31), 2,
anon_sym_false,
anon_sym_true,
ACTIONS(33), 2,
sym_nil,
sym_this,
ACTIONS(35), 2,
sym_number,
sym_string,
STATE(92), 4,
sym_bool,
sym_var,
sym_grouping,
sym_super,
STATE(110), 6,
sym__expr,
sym_expr_call,
sym_expr_field,
sym_expr_infix,
sym_expr_prefix,
sym_expr_primary,
STATE(30), 7,
sym_stmt_block,
sym_stmt_expr,
sym_stmt_for,
sym_stmt_if,
sym_stmt_print,
sym_stmt_return,
sym_stmt_while,
[219] = 18,
ACTIONS(3), 1,
sym_comment,
ACTIONS(7), 1,
sym_identifier,
ACTIONS(19), 1,
anon_sym_LPAREN,
ACTIONS(37), 1,
anon_sym_super,
ACTIONS(41), 1,
anon_sym_LBRACE,
ACTIONS(49), 1,
anon_sym_for,
ACTIONS(51), 1,
anon_sym_if,
ACTIONS(53), 1,
anon_sym_print,
ACTIONS(55), 1,
anon_sym_return,
ACTIONS(57), 1,
anon_sym_while,
STATE(23), 1,
sym_decl_stmt,
ACTIONS(29), 2,
anon_sym_DASH,
anon_sym_BANG,
ACTIONS(31), 2,
anon_sym_false,
anon_sym_true,
ACTIONS(33), 2,
sym_nil,
sym_this,
ACTIONS(35), 2,
sym_number,
sym_string,
STATE(92), 4,
sym_bool,
sym_var,
sym_grouping,
sym_super,
STATE(110), 6,
sym__expr,
sym_expr_call,
sym_expr_field,
sym_expr_infix,
sym_expr_prefix,
sym_expr_primary,
STATE(30), 7,
sym_stmt_block,
sym_stmt_expr,
sym_stmt_for,
sym_stmt_if,
sym_stmt_print,
sym_stmt_return,
sym_stmt_while,
[292] = 18,
ACTIONS(3), 1,
sym_comment,
ACTIONS(7), 1,
sym_identifier,
ACTIONS(11), 1,
anon_sym_LBRACE,
ACTIONS(17), 1,
anon_sym_for,
ACTIONS(19), 1,
anon_sym_LPAREN,
ACTIONS(21), 1,
anon_sym_if,
ACTIONS(23), 1,
anon_sym_print,
ACTIONS(25), 1,
anon_sym_return,
ACTIONS(27), 1,
anon_sym_while,
ACTIONS(37), 1,
anon_sym_super,
STATE(32), 1,
sym_decl_stmt,
ACTIONS(29), 2,
anon_sym_DASH,
anon_sym_BANG,
ACTIONS(31), 2,
anon_sym_false,
anon_sym_true,
ACTIONS(33), 2,
sym_nil,
sym_this,
ACTIONS(35), 2,
sym_number,
sym_string,
STATE(92), 4,
sym_bool,
sym_var,
sym_grouping,
sym_super,
STATE(113), 6,
sym__expr,
sym_expr_call,
sym_expr_field,
sym_expr_infix,
sym_expr_prefix,
sym_expr_primary,
STATE(25), 7,
sym_stmt_block,
sym_stmt_expr,
sym_stmt_for,
sym_stmt_if,
sym_stmt_print,
sym_stmt_return,
sym_stmt_while,
[365] = 18,
ACTIONS(3), 1,
sym_comment,
ACTIONS(7), 1,
sym_identifier,
ACTIONS(11), 1,
anon_sym_LBRACE,
ACTIONS(17), 1,
anon_sym_for,
ACTIONS(19), 1,
anon_sym_LPAREN,
ACTIONS(21), 1,
anon_sym_if,
ACTIONS(23), 1,
anon_sym_print,
ACTIONS(25), 1,
anon_sym_return,
ACTIONS(27), 1,
anon_sym_while,
ACTIONS(37), 1,
anon_sym_super,
STATE(47), 1,
sym_decl_stmt,
ACTIONS(29), 2,
anon_sym_DASH,
anon_sym_BANG,
ACTIONS(31), 2,
anon_sym_false,
anon_sym_true,
ACTIONS(33), 2,
sym_nil,
sym_this,
ACTIONS(35), 2,
sym_number,
sym_string,
STATE(92), 4,
sym_bool,
sym_var,
sym_grouping,
sym_super,
STATE(113), 6,
sym__expr,
sym_expr_call,
sym_expr_field,
sym_expr_infix,
sym_expr_prefix,
sym_expr_primary,
STATE(25), 7,
sym_stmt_block,
sym_stmt_expr,
sym_stmt_for,
sym_stmt_if,
sym_stmt_print,
sym_stmt_return,
sym_stmt_while,
[438] = 18,
ACTIONS(3), 1,
sym_comment,
ACTIONS(7), 1,
sym_identifier,
ACTIONS(11), 1,
anon_sym_LBRACE,
ACTIONS(17), 1,
anon_sym_for,
ACTIONS(19), 1,
anon_sym_LPAREN,
ACTIONS(21), 1,
anon_sym_if,
ACTIONS(23), 1,
anon_sym_print,
ACTIONS(25), 1,
anon_sym_return,
ACTIONS(27), 1,
anon_sym_while,
ACTIONS(37), 1,
anon_sym_super,
STATE(44), 1,
sym_decl_stmt,
ACTIONS(29), 2,
anon_sym_DASH,
anon_sym_BANG,
ACTIONS(31), 2,
anon_sym_false,
anon_sym_true,
ACTIONS(33), 2,
sym_nil,
sym_this,
ACTIONS(35), 2,
sym_number,
sym_string,
STATE(92), 4,
sym_bool,
sym_var,
sym_grouping,
sym_super,
STATE(113), 6,
sym__expr,
sym_expr_call,
sym_expr_field,
sym_expr_infix,
sym_expr_prefix,
sym_expr_primary,
STATE(25), 7,
sym_stmt_block,
sym_stmt_expr,
sym_stmt_for,
sym_stmt_if,
sym_stmt_print,
sym_stmt_return,
sym_stmt_while,
[511] = 18,
ACTIONS(3), 1,
sym_comment,
ACTIONS(7), 1,
sym_identifier,
ACTIONS(11), 1,
anon_sym_LBRACE,
ACTIONS(17), 1,
anon_sym_for,
ACTIONS(19), 1,
anon_sym_LPAREN,
ACTIONS(21), 1,
anon_sym_if,
ACTIONS(23), 1,
anon_sym_print,
ACTIONS(25), 1,
anon_sym_return,
ACTIONS(27), 1,
anon_sym_while,
ACTIONS(37), 1,
anon_sym_super,
STATE(51), 1,
sym_decl_stmt,
ACTIONS(29), 2,
anon_sym_DASH,
anon_sym_BANG,
ACTIONS(31), 2,
anon_sym_false,
anon_sym_true,
ACTIONS(33), 2,
sym_nil,
sym_this,
ACTIONS(35), 2,
sym_number,
sym_string,
STATE(92), 4,
sym_bool,
sym_var,
sym_grouping,
sym_super,
STATE(113), 6,
sym__expr,
sym_expr_call,
sym_expr_field,
sym_expr_infix,
sym_expr_prefix,
sym_expr_primary,
STATE(25), 7,
sym_stmt_block,
sym_stmt_expr,
sym_stmt_for,
sym_stmt_if,
sym_stmt_print,
sym_stmt_return,
sym_stmt_while,
[584] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(146), 15,
anon_sym_LBRACE,
anon_sym_SEMI,
anon_sym_LPAREN,
anon_sym_RPAREN,
anon_sym_DOT,
anon_sym_STAR,
anon_sym_PLUS,
anon_sym_DASH,
anon_sym_LT_EQ,
anon_sym_GT_EQ,
anon_sym_EQ_EQ,
anon_sym_BANG_EQ,
sym_number,
sym_string,
anon_sym_COMMA,
ACTIONS(144), 18,
anon_sym_EQ,
anon_sym_for,
anon_sym_if,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_SLASH,
anon_sym_LT,
anon_sym_GT,
anon_sym_and,
anon_sym_or,
anon_sym_BANG,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[625] = 13,
ACTIONS(3), 1,
sym_comment,
ACTIONS(7), 1,
sym_identifier,
ACTIONS(19), 1,
anon_sym_LPAREN,
ACTIONS(37), 1,
anon_sym_super,
ACTIONS(47), 1,
anon_sym_var,
ACTIONS(148), 1,
anon_sym_SEMI,
ACTIONS(29), 2,
anon_sym_DASH,
anon_sym_BANG,
ACTIONS(31), 2,
anon_sym_false,
anon_sym_true,
ACTIONS(33), 2,
sym_nil,
sym_this,
ACTIONS(35), 2,
sym_number,
sym_string,
STATE(50), 2,
sym_decl_var,
sym_stmt_expr,
STATE(92), 4,
sym_bool,
sym_var,
sym_grouping,
sym_super,
STATE(110), 6,
sym__expr,
sym_expr_call,
sym_expr_field,
sym_expr_infix,
sym_expr_prefix,
sym_expr_primary,
[678] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(152), 8,
anon_sym_LBRACE,
anon_sym_RBRACE,
anon_sym_SEMI,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(150), 15,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_else,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[709] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(156), 7,
anon_sym_LBRACE,
anon_sym_RBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(154), 15,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_else,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[739] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(160), 7,
anon_sym_LBRACE,
anon_sym_RBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(158), 15,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_else,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[769] = 4,
ACTIONS(3), 1,
sym_comment,
ACTIONS(166), 1,
anon_sym_else,
ACTIONS(164), 7,
anon_sym_LBRACE,
anon_sym_RBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(162), 14,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[801] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(170), 7,
anon_sym_LBRACE,
anon_sym_RBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(168), 15,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_else,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[831] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(174), 8,
anon_sym_LBRACE,
anon_sym_RBRACE,
anon_sym_SEMI,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(172), 14,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[861] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(176), 7,
ts_builtin_sym_end,
anon_sym_LBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(178), 15,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_else,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[891] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(182), 7,
anon_sym_LBRACE,
anon_sym_RBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(180), 15,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_else,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[921] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(184), 7,
ts_builtin_sym_end,
anon_sym_LBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(186), 15,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_else,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[951] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(184), 7,
anon_sym_LBRACE,
anon_sym_RBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(186), 15,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_else,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[981] = 11,
ACTIONS(3), 1,
sym_comment,
ACTIONS(7), 1,
sym_identifier,
ACTIONS(19), 1,
anon_sym_LPAREN,
ACTIONS(37), 1,
anon_sym_super,
ACTIONS(188), 1,
anon_sym_SEMI,
ACTIONS(29), 2,
anon_sym_DASH,
anon_sym_BANG,
ACTIONS(31), 2,
anon_sym_false,
anon_sym_true,
ACTIONS(33), 2,
sym_nil,
sym_this,
ACTIONS(35), 2,
sym_number,
sym_string,
STATE(92), 4,
sym_bool,
sym_var,
sym_grouping,
sym_super,
STATE(102), 6,
sym__expr,
sym_expr_call,
sym_expr_field,
sym_expr_infix,
sym_expr_prefix,
sym_expr_primary,
[1027] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(176), 7,
anon_sym_LBRACE,
anon_sym_RBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(178), 15,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_else,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[1057] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(192), 7,
anon_sym_LBRACE,
anon_sym_RBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(190), 15,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_else,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[1087] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(194), 7,
ts_builtin_sym_end,
anon_sym_LBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(196), 15,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_else,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[1117] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(156), 7,
ts_builtin_sym_end,
anon_sym_LBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(154), 15,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_else,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[1147] = 11,
ACTIONS(3), 1,
sym_comment,
ACTIONS(7), 1,
sym_identifier,
ACTIONS(19), 1,
anon_sym_LPAREN,
ACTIONS(37), 1,
anon_sym_super,
ACTIONS(198), 1,
anon_sym_RPAREN,
ACTIONS(29), 2,
anon_sym_DASH,
anon_sym_BANG,
ACTIONS(31), 2,
anon_sym_false,
anon_sym_true,
ACTIONS(33), 2,
sym_nil,
sym_this,
ACTIONS(35), 2,
sym_number,
sym_string,
STATE(92), 4,
sym_bool,
sym_var,
sym_grouping,
sym_super,
STATE(119), 6,
sym__expr,
sym_expr_call,
sym_expr_field,
sym_expr_infix,
sym_expr_prefix,
sym_expr_primary,
[1193] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(202), 7,
anon_sym_LBRACE,
anon_sym_RBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(200), 15,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_else,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[1223] = 11,
ACTIONS(3), 1,
sym_comment,
ACTIONS(7), 1,
sym_identifier,
ACTIONS(19), 1,
anon_sym_LPAREN,
ACTIONS(37), 1,
anon_sym_super,
ACTIONS(204), 1,
anon_sym_RPAREN,
ACTIONS(29), 2,
anon_sym_DASH,
anon_sym_BANG,
ACTIONS(31), 2,
anon_sym_false,
anon_sym_true,
ACTIONS(33), 2,
sym_nil,
sym_this,
ACTIONS(35), 2,
sym_number,
sym_string,
STATE(92), 4,
sym_bool,
sym_var,
sym_grouping,
sym_super,
STATE(116), 6,
sym__expr,
sym_expr_call,
sym_expr_field,
sym_expr_infix,
sym_expr_prefix,
sym_expr_primary,
[1269] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(208), 8,
anon_sym_LBRACE,
anon_sym_RBRACE,
anon_sym_SEMI,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(206), 14,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[1299] = 11,
ACTIONS(3), 1,
sym_comment,
ACTIONS(7), 1,
sym_identifier,
ACTIONS(19), 1,
anon_sym_LPAREN,
ACTIONS(37), 1,
anon_sym_super,
ACTIONS(210), 1,
anon_sym_RPAREN,
ACTIONS(29), 2,
anon_sym_DASH,
anon_sym_BANG,
ACTIONS(31), 2,
anon_sym_false,
anon_sym_true,
ACTIONS(33), 2,
sym_nil,
sym_this,
ACTIONS(35), 2,
sym_number,
sym_string,
STATE(92), 4,
sym_bool,
sym_var,
sym_grouping,
sym_super,
STATE(107), 6,
sym__expr,
sym_expr_call,
sym_expr_field,
sym_expr_infix,
sym_expr_prefix,
sym_expr_primary,
[1345] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(152), 7,
ts_builtin_sym_end,
anon_sym_LBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(150), 15,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_else,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[1375] = 11,
ACTIONS(3), 1,
sym_comment,
ACTIONS(7), 1,
sym_identifier,
ACTIONS(19), 1,
anon_sym_LPAREN,
ACTIONS(37), 1,
anon_sym_super,
ACTIONS(212), 1,
anon_sym_RPAREN,
ACTIONS(29), 2,
anon_sym_DASH,
anon_sym_BANG,
ACTIONS(31), 2,
anon_sym_false,
anon_sym_true,
ACTIONS(33), 2,
sym_nil,
sym_this,
ACTIONS(35), 2,
sym_number,
sym_string,
STATE(92), 4,
sym_bool,
sym_var,
sym_grouping,
sym_super,
STATE(88), 6,
sym__expr,
sym_expr_call,
sym_expr_field,
sym_expr_infix,
sym_expr_prefix,
sym_expr_primary,
[1421] = 11,
ACTIONS(3), 1,
sym_comment,
ACTIONS(7), 1,
sym_identifier,
ACTIONS(19), 1,
anon_sym_LPAREN,
ACTIONS(37), 1,
anon_sym_super,
ACTIONS(214), 1,
anon_sym_RPAREN,
ACTIONS(29), 2,
anon_sym_DASH,
anon_sym_BANG,
ACTIONS(31), 2,
anon_sym_false,
anon_sym_true,
ACTIONS(33), 2,
sym_nil,
sym_this,
ACTIONS(35), 2,
sym_number,
sym_string,
STATE(92), 4,
sym_bool,
sym_var,
sym_grouping,
sym_super,
STATE(104), 6,
sym__expr,
sym_expr_call,
sym_expr_field,
sym_expr_infix,
sym_expr_prefix,
sym_expr_primary,
[1467] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(182), 7,
ts_builtin_sym_end,
anon_sym_LBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(180), 15,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_else,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[1497] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(194), 7,
anon_sym_LBRACE,
anon_sym_RBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(196), 15,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_else,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[1527] = 4,
ACTIONS(3), 1,
sym_comment,
ACTIONS(216), 1,
anon_sym_else,
ACTIONS(164), 7,
ts_builtin_sym_end,
anon_sym_LBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(162), 14,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[1559] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(202), 7,
ts_builtin_sym_end,
anon_sym_LBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(200), 15,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_else,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[1589] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(192), 7,
ts_builtin_sym_end,
anon_sym_LBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(190), 15,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_else,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[1619] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(160), 7,
ts_builtin_sym_end,
anon_sym_LBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(158), 15,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_else,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[1649] = 11,
ACTIONS(3), 1,
sym_comment,
ACTIONS(7), 1,
sym_identifier,
ACTIONS(19), 1,
anon_sym_LPAREN,
ACTIONS(37), 1,
anon_sym_super,
ACTIONS(218), 1,
anon_sym_SEMI,
ACTIONS(29), 2,
anon_sym_DASH,
anon_sym_BANG,
ACTIONS(31), 2,
anon_sym_false,
anon_sym_true,
ACTIONS(33), 2,
sym_nil,
sym_this,
ACTIONS(35), 2,
sym_number,
sym_string,
STATE(92), 4,
sym_bool,
sym_var,
sym_grouping,
sym_super,
STATE(111), 6,
sym__expr,
sym_expr_call,
sym_expr_field,
sym_expr_infix,
sym_expr_prefix,
sym_expr_primary,
[1695] = 11,
ACTIONS(3), 1,
sym_comment,
ACTIONS(7), 1,
sym_identifier,
ACTIONS(19), 1,
anon_sym_LPAREN,
ACTIONS(37), 1,
anon_sym_super,
ACTIONS(220), 1,
anon_sym_SEMI,
ACTIONS(29), 2,
anon_sym_DASH,
anon_sym_BANG,
ACTIONS(31), 2,
anon_sym_false,
anon_sym_true,
ACTIONS(33), 2,
sym_nil,
sym_this,
ACTIONS(35), 2,
sym_number,
sym_string,
STATE(92), 4,
sym_bool,
sym_var,
sym_grouping,
sym_super,
STATE(108), 6,
sym__expr,
sym_expr_call,
sym_expr_field,
sym_expr_infix,
sym_expr_prefix,
sym_expr_primary,
[1741] = 11,
ACTIONS(3), 1,
sym_comment,
ACTIONS(7), 1,
sym_identifier,
ACTIONS(19), 1,
anon_sym_LPAREN,
ACTIONS(37), 1,
anon_sym_super,
ACTIONS(222), 1,
anon_sym_SEMI,
ACTIONS(29), 2,
anon_sym_DASH,
anon_sym_BANG,
ACTIONS(31), 2,
anon_sym_false,
anon_sym_true,
ACTIONS(33), 2,
sym_nil,
sym_this,
ACTIONS(35), 2,
sym_number,
sym_string,
STATE(92), 4,
sym_bool,
sym_var,
sym_grouping,
sym_super,
STATE(112), 6,
sym__expr,
sym_expr_call,
sym_expr_field,
sym_expr_infix,
sym_expr_prefix,
sym_expr_primary,
[1787] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(170), 7,
ts_builtin_sym_end,
anon_sym_LBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(168), 15,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_else,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[1817] = 10,
ACTIONS(3), 1,
sym_comment,
ACTIONS(7), 1,
sym_identifier,
ACTIONS(19), 1,
anon_sym_LPAREN,
ACTIONS(37), 1,
anon_sym_super,
ACTIONS(29), 2,
anon_sym_DASH,
anon_sym_BANG,
ACTIONS(31), 2,
anon_sym_false,
anon_sym_true,
ACTIONS(33), 2,
sym_nil,
sym_this,
ACTIONS(35), 2,
sym_number,
sym_string,
STATE(92), 4,
sym_bool,
sym_var,
sym_grouping,
sym_super,
STATE(86), 6,
sym__expr,
sym_expr_call,
sym_expr_field,
sym_expr_infix,
sym_expr_prefix,
sym_expr_primary,
[1860] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(224), 7,
ts_builtin_sym_end,
anon_sym_LBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(226), 14,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[1889] = 10,
ACTIONS(3), 1,
sym_comment,
ACTIONS(7), 1,
sym_identifier,
ACTIONS(19), 1,
anon_sym_LPAREN,
ACTIONS(37), 1,
anon_sym_super,
ACTIONS(29), 2,
anon_sym_DASH,
anon_sym_BANG,
ACTIONS(31), 2,
anon_sym_false,
anon_sym_true,
ACTIONS(33), 2,
sym_nil,
sym_this,
ACTIONS(35), 2,
sym_number,
sym_string,
STATE(92), 4,
sym_bool,
sym_var,
sym_grouping,
sym_super,
STATE(85), 6,
sym__expr,
sym_expr_call,
sym_expr_field,
sym_expr_infix,
sym_expr_prefix,
sym_expr_primary,
[1932] = 10,
ACTIONS(3), 1,
sym_comment,
ACTIONS(7), 1,
sym_identifier,
ACTIONS(19), 1,
anon_sym_LPAREN,
ACTIONS(37), 1,
anon_sym_super,
ACTIONS(29), 2,
anon_sym_DASH,
anon_sym_BANG,
ACTIONS(31), 2,
anon_sym_false,
anon_sym_true,
ACTIONS(33), 2,
sym_nil,
sym_this,
ACTIONS(35), 2,
sym_number,
sym_string,
STATE(92), 4,
sym_bool,
sym_var,
sym_grouping,
sym_super,
STATE(84), 6,
sym__expr,
sym_expr_call,
sym_expr_field,
sym_expr_infix,
sym_expr_prefix,
sym_expr_primary,
[1975] = 10,
ACTIONS(3), 1,
sym_comment,
ACTIONS(7), 1,
sym_identifier,
ACTIONS(19), 1,
anon_sym_LPAREN,
ACTIONS(37), 1,
anon_sym_super,
ACTIONS(29), 2,
anon_sym_DASH,
anon_sym_BANG,
ACTIONS(31), 2,
anon_sym_false,
anon_sym_true,
ACTIONS(33), 2,
sym_nil,
sym_this,
ACTIONS(35), 2,
sym_number,
sym_string,
STATE(92), 4,
sym_bool,
sym_var,
sym_grouping,
sym_super,
STATE(83), 6,
sym__expr,
sym_expr_call,
sym_expr_field,
sym_expr_infix,
sym_expr_prefix,
sym_expr_primary,
[2018] = 10,
ACTIONS(3), 1,
sym_comment,
ACTIONS(7), 1,
sym_identifier,
ACTIONS(19), 1,
anon_sym_LPAREN,
ACTIONS(37), 1,
anon_sym_super,
ACTIONS(29), 2,
anon_sym_DASH,
anon_sym_BANG,
ACTIONS(31), 2,
anon_sym_false,
anon_sym_true,
ACTIONS(33), 2,
sym_nil,
sym_this,
ACTIONS(35), 2,
sym_number,
sym_string,
STATE(92), 4,
sym_bool,
sym_var,
sym_grouping,
sym_super,
STATE(82), 6,
sym__expr,
sym_expr_call,
sym_expr_field,
sym_expr_infix,
sym_expr_prefix,
sym_expr_primary,
[2061] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(208), 7,
ts_builtin_sym_end,
anon_sym_LBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(206), 14,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[2090] = 10,
ACTIONS(3), 1,
sym_comment,
ACTIONS(7), 1,
sym_identifier,
ACTIONS(19), 1,
anon_sym_LPAREN,
ACTIONS(37), 1,
anon_sym_super,
ACTIONS(29), 2,
anon_sym_DASH,
anon_sym_BANG,
ACTIONS(31), 2,
anon_sym_false,
anon_sym_true,
ACTIONS(33), 2,
sym_nil,
sym_this,
ACTIONS(35), 2,
sym_number,
sym_string,
STATE(92), 4,
sym_bool,
sym_var,
sym_grouping,
sym_super,
STATE(105), 6,
sym__expr,
sym_expr_call,
sym_expr_field,
sym_expr_infix,
sym_expr_prefix,
sym_expr_primary,
[2133] = 10,
ACTIONS(3), 1,
sym_comment,
ACTIONS(7), 1,
sym_identifier,
ACTIONS(19), 1,
anon_sym_LPAREN,
ACTIONS(37), 1,
anon_sym_super,
ACTIONS(29), 2,
anon_sym_DASH,
anon_sym_BANG,
ACTIONS(31), 2,
anon_sym_false,
anon_sym_true,
ACTIONS(33), 2,
sym_nil,
sym_this,
ACTIONS(35), 2,
sym_number,
sym_string,
STATE(92), 4,
sym_bool,
sym_var,
sym_grouping,
sym_super,
STATE(109), 6,
sym__expr,
sym_expr_call,
sym_expr_field,
sym_expr_infix,
sym_expr_prefix,
sym_expr_primary,
[2176] = 10,
ACTIONS(3), 1,
sym_comment,
ACTIONS(7), 1,
sym_identifier,
ACTIONS(19), 1,
anon_sym_LPAREN,
ACTIONS(37), 1,
anon_sym_super,
ACTIONS(29), 2,
anon_sym_DASH,
anon_sym_BANG,
ACTIONS(31), 2,
anon_sym_false,
anon_sym_true,
ACTIONS(33), 2,
sym_nil,
sym_this,
ACTIONS(35), 2,
sym_number,
sym_string,
STATE(92), 4,
sym_bool,
sym_var,
sym_grouping,
sym_super,
STATE(120), 6,
sym__expr,
sym_expr_call,
sym_expr_field,
sym_expr_infix,
sym_expr_prefix,
sym_expr_primary,
[2219] = 10,
ACTIONS(3), 1,
sym_comment,
ACTIONS(7), 1,
sym_identifier,
ACTIONS(19), 1,
anon_sym_LPAREN,
ACTIONS(37), 1,
anon_sym_super,
ACTIONS(29), 2,
anon_sym_DASH,
anon_sym_BANG,
ACTIONS(31), 2,
anon_sym_false,
anon_sym_true,
ACTIONS(33), 2,
sym_nil,
sym_this,
ACTIONS(35), 2,
sym_number,
sym_string,
STATE(92), 4,
sym_bool,
sym_var,
sym_grouping,
sym_super,
STATE(123), 6,
sym__expr,
sym_expr_call,
sym_expr_field,
sym_expr_infix,
sym_expr_prefix,
sym_expr_primary,
[2262] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(230), 7,
anon_sym_LBRACE,
anon_sym_RBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(228), 14,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[2291] = 10,
ACTIONS(3), 1,
sym_comment,
ACTIONS(7), 1,
sym_identifier,
ACTIONS(19), 1,
anon_sym_LPAREN,
ACTIONS(37), 1,
anon_sym_super,
ACTIONS(29), 2,
anon_sym_DASH,
anon_sym_BANG,
ACTIONS(31), 2,
anon_sym_false,
anon_sym_true,
ACTIONS(33), 2,
sym_nil,
sym_this,
ACTIONS(35), 2,
sym_number,
sym_string,
STATE(92), 4,
sym_bool,
sym_var,
sym_grouping,
sym_super,
STATE(101), 6,
sym__expr,
sym_expr_call,
sym_expr_field,
sym_expr_infix,
sym_expr_prefix,
sym_expr_primary,
[2334] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(174), 7,
ts_builtin_sym_end,
anon_sym_LBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(172), 14,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[2363] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(230), 7,
ts_builtin_sym_end,
anon_sym_LBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(228), 14,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[2392] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(234), 7,
anon_sym_LBRACE,
anon_sym_RBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(232), 14,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[2421] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(238), 7,
anon_sym_LBRACE,
anon_sym_RBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(236), 14,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[2450] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(238), 7,
ts_builtin_sym_end,
anon_sym_LBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(236), 14,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[2479] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(240), 7,
ts_builtin_sym_end,
anon_sym_LBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(242), 14,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[2508] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(234), 7,
ts_builtin_sym_end,
anon_sym_LBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(232), 14,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[2537] = 10,
ACTIONS(3), 1,
sym_comment,
ACTIONS(7), 1,
sym_identifier,
ACTIONS(19), 1,
anon_sym_LPAREN,
ACTIONS(37), 1,
anon_sym_super,
ACTIONS(29), 2,
anon_sym_DASH,
anon_sym_BANG,
ACTIONS(31), 2,
anon_sym_false,
anon_sym_true,
ACTIONS(33), 2,
sym_nil,
sym_this,
ACTIONS(35), 2,
sym_number,
sym_string,
STATE(92), 4,
sym_bool,
sym_var,
sym_grouping,
sym_super,
STATE(98), 6,
sym__expr,
sym_expr_call,
sym_expr_field,
sym_expr_infix,
sym_expr_prefix,
sym_expr_primary,
[2580] = 10,
ACTIONS(3), 1,
sym_comment,
ACTIONS(7), 1,
sym_identifier,
ACTIONS(19), 1,
anon_sym_LPAREN,
ACTIONS(37), 1,
anon_sym_super,
ACTIONS(29), 2,
anon_sym_DASH,
anon_sym_BANG,
ACTIONS(31), 2,
anon_sym_false,
anon_sym_true,
ACTIONS(33), 2,
sym_nil,
sym_this,
ACTIONS(35), 2,
sym_number,
sym_string,
STATE(92), 4,
sym_bool,
sym_var,
sym_grouping,
sym_super,
STATE(89), 6,
sym__expr,
sym_expr_call,
sym_expr_field,
sym_expr_infix,
sym_expr_prefix,
sym_expr_primary,
[2623] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(224), 7,
anon_sym_LBRACE,
anon_sym_RBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(226), 14,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[2652] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(246), 7,
anon_sym_LBRACE,
anon_sym_RBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(244), 14,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[2681] = 10,
ACTIONS(3), 1,
sym_comment,
ACTIONS(7), 1,
sym_identifier,
ACTIONS(19), 1,
anon_sym_LPAREN,
ACTIONS(37), 1,
anon_sym_super,
ACTIONS(29), 2,
anon_sym_DASH,
anon_sym_BANG,
ACTIONS(31), 2,
anon_sym_false,
anon_sym_true,
ACTIONS(33), 2,
sym_nil,
sym_this,
ACTIONS(35), 2,
sym_number,
sym_string,
STATE(92), 4,
sym_bool,
sym_var,
sym_grouping,
sym_super,
STATE(87), 6,
sym__expr,
sym_expr_call,
sym_expr_field,
sym_expr_infix,
sym_expr_prefix,
sym_expr_primary,
[2724] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(248), 7,
ts_builtin_sym_end,
anon_sym_LBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(250), 14,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[2753] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(248), 7,
anon_sym_LBRACE,
anon_sym_RBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(250), 14,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[2782] = 10,
ACTIONS(3), 1,
sym_comment,
ACTIONS(7), 1,
sym_identifier,
ACTIONS(19), 1,
anon_sym_LPAREN,
ACTIONS(37), 1,
anon_sym_super,
ACTIONS(29), 2,
anon_sym_DASH,
anon_sym_BANG,
ACTIONS(31), 2,
anon_sym_false,
anon_sym_true,
ACTIONS(33), 2,
sym_nil,
sym_this,
ACTIONS(35), 2,
sym_number,
sym_string,
STATE(92), 4,
sym_bool,
sym_var,
sym_grouping,
sym_super,
STATE(90), 6,
sym__expr,
sym_expr_call,
sym_expr_field,
sym_expr_infix,
sym_expr_prefix,
sym_expr_primary,
[2825] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(246), 7,
ts_builtin_sym_end,
anon_sym_LBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(244), 14,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[2854] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(240), 7,
anon_sym_LBRACE,
anon_sym_RBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(242), 14,
anon_sym_class,
anon_sym_fun,
anon_sym_var,
anon_sym_for,
anon_sym_if,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[2883] = 13,
ACTIONS(3), 1,
sym_comment,
ACTIONS(252), 1,
anon_sym_EQ,
ACTIONS(256), 1,
anon_sym_LPAREN,
ACTIONS(258), 1,
anon_sym_DOT,
ACTIONS(260), 1,
anon_sym_STAR,
ACTIONS(262), 1,
anon_sym_SLASH,
ACTIONS(272), 1,
anon_sym_and,
STATE(99), 1,
sym_args,
ACTIONS(264), 2,
anon_sym_PLUS,
anon_sym_DASH,
ACTIONS(266), 2,
anon_sym_LT,
anon_sym_GT,
ACTIONS(268), 2,
anon_sym_LT_EQ,
anon_sym_GT_EQ,
ACTIONS(270), 2,
anon_sym_EQ_EQ,
anon_sym_BANG_EQ,
ACTIONS(254), 4,
anon_sym_SEMI,
anon_sym_RPAREN,
anon_sym_or,
anon_sym_COMMA,
[2930] = 12,
ACTIONS(3), 1,
sym_comment,
ACTIONS(252), 1,
anon_sym_EQ,
ACTIONS(256), 1,
anon_sym_LPAREN,
ACTIONS(258), 1,
anon_sym_DOT,
ACTIONS(260), 1,
anon_sym_STAR,
ACTIONS(262), 1,
anon_sym_SLASH,
STATE(99), 1,
sym_args,
ACTIONS(264), 2,
anon_sym_PLUS,
anon_sym_DASH,
ACTIONS(266), 2,
anon_sym_LT,
anon_sym_GT,
ACTIONS(268), 2,
anon_sym_LT_EQ,
anon_sym_GT_EQ,
ACTIONS(270), 2,
anon_sym_EQ_EQ,
anon_sym_BANG_EQ,
ACTIONS(254), 5,
anon_sym_SEMI,
anon_sym_RPAREN,
anon_sym_and,
anon_sym_or,
anon_sym_COMMA,
[2975] = 11,
ACTIONS(3), 1,
sym_comment,
ACTIONS(252), 1,
anon_sym_EQ,
ACTIONS(256), 1,
anon_sym_LPAREN,
ACTIONS(258), 1,
anon_sym_DOT,
ACTIONS(260), 1,
anon_sym_STAR,
ACTIONS(262), 1,
anon_sym_SLASH,
STATE(99), 1,
sym_args,
ACTIONS(264), 2,
anon_sym_PLUS,
anon_sym_DASH,
ACTIONS(266), 2,
anon_sym_LT,
anon_sym_GT,
ACTIONS(268), 2,
anon_sym_LT_EQ,
anon_sym_GT_EQ,
ACTIONS(254), 7,
anon_sym_SEMI,
anon_sym_RPAREN,
anon_sym_EQ_EQ,
anon_sym_BANG_EQ,
anon_sym_and,
anon_sym_or,
anon_sym_COMMA,
[3018] = 9,
ACTIONS(3), 1,
sym_comment,
ACTIONS(256), 1,
anon_sym_LPAREN,
ACTIONS(258), 1,
anon_sym_DOT,
ACTIONS(260), 1,
anon_sym_STAR,
ACTIONS(262), 1,
anon_sym_SLASH,
STATE(99), 1,
sym_args,
ACTIONS(264), 2,
anon_sym_PLUS,
anon_sym_DASH,
ACTIONS(252), 3,
anon_sym_EQ,
anon_sym_LT,
anon_sym_GT,
ACTIONS(254), 9,
anon_sym_SEMI,
anon_sym_RPAREN,
anon_sym_LT_EQ,
anon_sym_GT_EQ,
anon_sym_EQ_EQ,
anon_sym_BANG_EQ,
anon_sym_and,
anon_sym_or,
anon_sym_COMMA,
[3057] = 8,
ACTIONS(3), 1,
sym_comment,
ACTIONS(256), 1,
anon_sym_LPAREN,
ACTIONS(258), 1,
anon_sym_DOT,
ACTIONS(260), 1,
anon_sym_STAR,
ACTIONS(262), 1,
anon_sym_SLASH,
STATE(99), 1,
sym_args,
ACTIONS(252), 3,
anon_sym_EQ,
anon_sym_LT,
anon_sym_GT,
ACTIONS(254), 11,
anon_sym_SEMI,
anon_sym_RPAREN,
anon_sym_PLUS,
anon_sym_DASH,
anon_sym_LT_EQ,
anon_sym_GT_EQ,
anon_sym_EQ_EQ,
anon_sym_BANG_EQ,
anon_sym_and,
anon_sym_or,
anon_sym_COMMA,
[3094] = 6,
ACTIONS(3), 1,
sym_comment,
ACTIONS(256), 1,
anon_sym_LPAREN,
ACTIONS(258), 1,
anon_sym_DOT,
STATE(99), 1,
sym_args,
ACTIONS(252), 4,
anon_sym_EQ,
anon_sym_SLASH,
anon_sym_LT,
anon_sym_GT,
ACTIONS(254), 12,
anon_sym_SEMI,
anon_sym_RPAREN,
anon_sym_STAR,
anon_sym_PLUS,
anon_sym_DASH,
anon_sym_LT_EQ,
anon_sym_GT_EQ,
anon_sym_EQ_EQ,
anon_sym_BANG_EQ,
anon_sym_and,
anon_sym_or,
anon_sym_COMMA,
[3127] = 16,
ACTIONS(3), 1,
sym_comment,
ACTIONS(256), 1,
anon_sym_LPAREN,
ACTIONS(258), 1,
anon_sym_DOT,
ACTIONS(260), 1,
anon_sym_STAR,
ACTIONS(262), 1,
anon_sym_SLASH,
ACTIONS(272), 1,
anon_sym_and,
ACTIONS(274), 1,
anon_sym_EQ,
ACTIONS(276), 1,
anon_sym_RPAREN,
ACTIONS(278), 1,
anon_sym_or,
ACTIONS(280), 1,
anon_sym_COMMA,
STATE(99), 1,
sym_args,
STATE(137), 1,
aux_sym_args_repeat1,
ACTIONS(264), 2,
anon_sym_PLUS,
anon_sym_DASH,
ACTIONS(266), 2,
anon_sym_LT,
anon_sym_GT,
ACTIONS(268), 2,
anon_sym_LT_EQ,
anon_sym_GT_EQ,
ACTIONS(270), 2,
anon_sym_EQ_EQ,
anon_sym_BANG_EQ,
[3180] = 14,
ACTIONS(3), 1,
sym_comment,
ACTIONS(256), 1,
anon_sym_LPAREN,
ACTIONS(258), 1,
anon_sym_DOT,
ACTIONS(260), 1,
anon_sym_STAR,
ACTIONS(262), 1,
anon_sym_SLASH,
ACTIONS(272), 1,
anon_sym_and,
ACTIONS(274), 1,
anon_sym_EQ,
ACTIONS(278), 1,
anon_sym_or,
STATE(99), 1,
sym_args,
ACTIONS(264), 2,
anon_sym_PLUS,
anon_sym_DASH,
ACTIONS(266), 2,
anon_sym_LT,
anon_sym_GT,
ACTIONS(268), 2,
anon_sym_LT_EQ,
anon_sym_GT_EQ,
ACTIONS(270), 2,
anon_sym_EQ_EQ,
anon_sym_BANG_EQ,
ACTIONS(254), 3,
anon_sym_SEMI,
anon_sym_RPAREN,
anon_sym_COMMA,
[3229] = 6,
ACTIONS(3), 1,
sym_comment,
ACTIONS(256), 1,
anon_sym_LPAREN,
ACTIONS(258), 1,
anon_sym_DOT,
STATE(99), 1,
sym_args,
ACTIONS(282), 4,
anon_sym_EQ,
anon_sym_SLASH,
anon_sym_LT,
anon_sym_GT,
ACTIONS(284), 12,
anon_sym_SEMI,
anon_sym_RPAREN,
anon_sym_STAR,
anon_sym_PLUS,
anon_sym_DASH,
anon_sym_LT_EQ,
anon_sym_GT_EQ,
anon_sym_EQ_EQ,
anon_sym_BANG_EQ,
anon_sym_and,
anon_sym_or,
anon_sym_COMMA,
[3262] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(286), 4,
anon_sym_EQ,
anon_sym_SLASH,
anon_sym_LT,
anon_sym_GT,
ACTIONS(288), 14,
anon_sym_SEMI,
anon_sym_LPAREN,
anon_sym_RPAREN,
anon_sym_DOT,
anon_sym_STAR,
anon_sym_PLUS,
anon_sym_DASH,
anon_sym_LT_EQ,
anon_sym_GT_EQ,
anon_sym_EQ_EQ,
anon_sym_BANG_EQ,
anon_sym_and,
anon_sym_or,
anon_sym_COMMA,
[3288] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(290), 4,
anon_sym_EQ,
anon_sym_SLASH,
anon_sym_LT,
anon_sym_GT,
ACTIONS(292), 14,
anon_sym_SEMI,
anon_sym_LPAREN,
anon_sym_RPAREN,
anon_sym_DOT,
anon_sym_STAR,
anon_sym_PLUS,
anon_sym_DASH,
anon_sym_LT_EQ,
anon_sym_GT_EQ,
anon_sym_EQ_EQ,
anon_sym_BANG_EQ,
anon_sym_and,
anon_sym_or,
anon_sym_COMMA,
[3314] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(294), 4,
anon_sym_EQ,
anon_sym_SLASH,
anon_sym_LT,
anon_sym_GT,
ACTIONS(296), 14,
anon_sym_SEMI,
anon_sym_LPAREN,
anon_sym_RPAREN,
anon_sym_DOT,
anon_sym_STAR,
anon_sym_PLUS,
anon_sym_DASH,
anon_sym_LT_EQ,
anon_sym_GT_EQ,
anon_sym_EQ_EQ,
anon_sym_BANG_EQ,
anon_sym_and,
anon_sym_or,
anon_sym_COMMA,
[3340] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(298), 4,
anon_sym_EQ,
anon_sym_SLASH,
anon_sym_LT,
anon_sym_GT,
ACTIONS(300), 14,
anon_sym_SEMI,
anon_sym_LPAREN,
anon_sym_RPAREN,
anon_sym_DOT,
anon_sym_STAR,
anon_sym_PLUS,
anon_sym_DASH,
anon_sym_LT_EQ,
anon_sym_GT_EQ,
anon_sym_EQ_EQ,
anon_sym_BANG_EQ,
anon_sym_and,
anon_sym_or,
anon_sym_COMMA,
[3366] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(302), 4,
anon_sym_EQ,
anon_sym_SLASH,
anon_sym_LT,
anon_sym_GT,
ACTIONS(304), 14,
anon_sym_SEMI,
anon_sym_LPAREN,
anon_sym_RPAREN,
anon_sym_DOT,
anon_sym_STAR,
anon_sym_PLUS,
anon_sym_DASH,
anon_sym_LT_EQ,
anon_sym_GT_EQ,
anon_sym_EQ_EQ,
anon_sym_BANG_EQ,
anon_sym_and,
anon_sym_or,
anon_sym_COMMA,
[3392] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(306), 4,
anon_sym_EQ,
anon_sym_SLASH,
anon_sym_LT,
anon_sym_GT,
ACTIONS(308), 14,
anon_sym_SEMI,
anon_sym_LPAREN,
anon_sym_RPAREN,
anon_sym_DOT,
anon_sym_STAR,
anon_sym_PLUS,
anon_sym_DASH,
anon_sym_LT_EQ,
anon_sym_GT_EQ,
anon_sym_EQ_EQ,
anon_sym_BANG_EQ,
anon_sym_and,
anon_sym_or,
anon_sym_COMMA,
[3418] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(310), 4,
anon_sym_EQ,
anon_sym_SLASH,
anon_sym_LT,
anon_sym_GT,
ACTIONS(312), 14,
anon_sym_SEMI,
anon_sym_LPAREN,
anon_sym_RPAREN,
anon_sym_DOT,
anon_sym_STAR,
anon_sym_PLUS,
anon_sym_DASH,
anon_sym_LT_EQ,
anon_sym_GT_EQ,
anon_sym_EQ_EQ,
anon_sym_BANG_EQ,
anon_sym_and,
anon_sym_or,
anon_sym_COMMA,
[3444] = 14,
ACTIONS(3), 1,
sym_comment,
ACTIONS(256), 1,
anon_sym_LPAREN,
ACTIONS(258), 1,
anon_sym_DOT,
ACTIONS(260), 1,
anon_sym_STAR,
ACTIONS(262), 1,
anon_sym_SLASH,
ACTIONS(272), 1,
anon_sym_and,
ACTIONS(274), 1,
anon_sym_EQ,
ACTIONS(278), 1,
anon_sym_or,
STATE(99), 1,
sym_args,
ACTIONS(264), 2,
anon_sym_PLUS,
anon_sym_DASH,
ACTIONS(266), 2,
anon_sym_LT,
anon_sym_GT,
ACTIONS(268), 2,
anon_sym_LT_EQ,
anon_sym_GT_EQ,
ACTIONS(270), 2,
anon_sym_EQ_EQ,
anon_sym_BANG_EQ,
ACTIONS(314), 2,
anon_sym_RPAREN,
anon_sym_COMMA,
[3492] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(316), 4,
anon_sym_EQ,
anon_sym_SLASH,
anon_sym_LT,
anon_sym_GT,
ACTIONS(318), 14,
anon_sym_SEMI,
anon_sym_LPAREN,
anon_sym_RPAREN,
anon_sym_DOT,
anon_sym_STAR,
anon_sym_PLUS,
anon_sym_DASH,
anon_sym_LT_EQ,
anon_sym_GT_EQ,
anon_sym_EQ_EQ,
anon_sym_BANG_EQ,
anon_sym_and,
anon_sym_or,
anon_sym_COMMA,
[3518] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(320), 4,
anon_sym_EQ,
anon_sym_SLASH,
anon_sym_LT,
anon_sym_GT,
ACTIONS(322), 14,
anon_sym_SEMI,
anon_sym_LPAREN,
anon_sym_RPAREN,
anon_sym_DOT,
anon_sym_STAR,
anon_sym_PLUS,
anon_sym_DASH,
anon_sym_LT_EQ,
anon_sym_GT_EQ,
anon_sym_EQ_EQ,
anon_sym_BANG_EQ,
anon_sym_and,
anon_sym_or,
anon_sym_COMMA,
[3544] = 14,
ACTIONS(3), 1,
sym_comment,
ACTIONS(256), 1,
anon_sym_LPAREN,
ACTIONS(258), 1,
anon_sym_DOT,
ACTIONS(260), 1,
anon_sym_STAR,
ACTIONS(262), 1,
anon_sym_SLASH,
ACTIONS(272), 1,
anon_sym_and,
ACTIONS(274), 1,
anon_sym_EQ,
ACTIONS(278), 1,
anon_sym_or,
ACTIONS(324), 1,
anon_sym_SEMI,
STATE(99), 1,
sym_args,
ACTIONS(264), 2,
anon_sym_PLUS,
anon_sym_DASH,
ACTIONS(266), 2,
anon_sym_LT,
anon_sym_GT,
ACTIONS(268), 2,
anon_sym_LT_EQ,
anon_sym_GT_EQ,
ACTIONS(270), 2,
anon_sym_EQ_EQ,
anon_sym_BANG_EQ,
[3591] = 14,
ACTIONS(3), 1,
sym_comment,
ACTIONS(256), 1,
anon_sym_LPAREN,
ACTIONS(258), 1,
anon_sym_DOT,
ACTIONS(260), 1,
anon_sym_STAR,
ACTIONS(262), 1,
anon_sym_SLASH,
ACTIONS(272), 1,
anon_sym_and,
ACTIONS(274), 1,
anon_sym_EQ,
ACTIONS(278), 1,
anon_sym_or,
ACTIONS(326), 1,
anon_sym_SEMI,
STATE(99), 1,
sym_args,
ACTIONS(264), 2,
anon_sym_PLUS,
anon_sym_DASH,
ACTIONS(266), 2,
anon_sym_LT,
anon_sym_GT,
ACTIONS(268), 2,
anon_sym_LT_EQ,
anon_sym_GT_EQ,
ACTIONS(270), 2,
anon_sym_EQ_EQ,
anon_sym_BANG_EQ,
[3638] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(330), 6,
anon_sym_LBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(328), 11,
anon_sym_for,
anon_sym_if,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[3663] = 14,
ACTIONS(3), 1,
sym_comment,
ACTIONS(256), 1,
anon_sym_LPAREN,
ACTIONS(258), 1,
anon_sym_DOT,
ACTIONS(260), 1,
anon_sym_STAR,
ACTIONS(262), 1,
anon_sym_SLASH,
ACTIONS(272), 1,
anon_sym_and,
ACTIONS(274), 1,
anon_sym_EQ,
ACTIONS(278), 1,
anon_sym_or,
ACTIONS(332), 1,
anon_sym_RPAREN,
STATE(99), 1,
sym_args,
ACTIONS(264), 2,
anon_sym_PLUS,
anon_sym_DASH,
ACTIONS(266), 2,
anon_sym_LT,
anon_sym_GT,
ACTIONS(268), 2,
anon_sym_LT_EQ,
anon_sym_GT_EQ,
ACTIONS(270), 2,
anon_sym_EQ_EQ,
anon_sym_BANG_EQ,
[3710] = 14,
ACTIONS(3), 1,
sym_comment,
ACTIONS(256), 1,
anon_sym_LPAREN,
ACTIONS(258), 1,
anon_sym_DOT,
ACTIONS(260), 1,
anon_sym_STAR,
ACTIONS(262), 1,
anon_sym_SLASH,
ACTIONS(272), 1,
anon_sym_and,
ACTIONS(274), 1,
anon_sym_EQ,
ACTIONS(278), 1,
anon_sym_or,
ACTIONS(334), 1,
anon_sym_SEMI,
STATE(99), 1,
sym_args,
ACTIONS(264), 2,
anon_sym_PLUS,
anon_sym_DASH,
ACTIONS(266), 2,
anon_sym_LT,
anon_sym_GT,
ACTIONS(268), 2,
anon_sym_LT_EQ,
anon_sym_GT_EQ,
ACTIONS(270), 2,
anon_sym_EQ_EQ,
anon_sym_BANG_EQ,
[3757] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(338), 6,
anon_sym_LBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(336), 11,
anon_sym_for,
anon_sym_if,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[3782] = 14,
ACTIONS(3), 1,
sym_comment,
ACTIONS(256), 1,
anon_sym_LPAREN,
ACTIONS(258), 1,
anon_sym_DOT,
ACTIONS(260), 1,
anon_sym_STAR,
ACTIONS(262), 1,
anon_sym_SLASH,
ACTIONS(272), 1,
anon_sym_and,
ACTIONS(274), 1,
anon_sym_EQ,
ACTIONS(278), 1,
anon_sym_or,
ACTIONS(340), 1,
anon_sym_RPAREN,
STATE(99), 1,
sym_args,
ACTIONS(264), 2,
anon_sym_PLUS,
anon_sym_DASH,
ACTIONS(266), 2,
anon_sym_LT,
anon_sym_GT,
ACTIONS(268), 2,
anon_sym_LT_EQ,
anon_sym_GT_EQ,
ACTIONS(270), 2,
anon_sym_EQ_EQ,
anon_sym_BANG_EQ,
[3829] = 14,
ACTIONS(3), 1,
sym_comment,
ACTIONS(256), 1,
anon_sym_LPAREN,
ACTIONS(258), 1,
anon_sym_DOT,
ACTIONS(260), 1,
anon_sym_STAR,
ACTIONS(262), 1,
anon_sym_SLASH,
ACTIONS(272), 1,
anon_sym_and,
ACTIONS(274), 1,
anon_sym_EQ,
ACTIONS(278), 1,
anon_sym_or,
ACTIONS(342), 1,
anon_sym_SEMI,
STATE(99), 1,
sym_args,
ACTIONS(264), 2,
anon_sym_PLUS,
anon_sym_DASH,
ACTIONS(266), 2,
anon_sym_LT,
anon_sym_GT,
ACTIONS(268), 2,
anon_sym_LT_EQ,
anon_sym_GT_EQ,
ACTIONS(270), 2,
anon_sym_EQ_EQ,
anon_sym_BANG_EQ,
[3876] = 14,
ACTIONS(3), 1,
sym_comment,
ACTIONS(256), 1,
anon_sym_LPAREN,
ACTIONS(258), 1,
anon_sym_DOT,
ACTIONS(260), 1,
anon_sym_STAR,
ACTIONS(262), 1,
anon_sym_SLASH,
ACTIONS(272), 1,
anon_sym_and,
ACTIONS(274), 1,
anon_sym_EQ,
ACTIONS(278), 1,
anon_sym_or,
ACTIONS(344), 1,
anon_sym_SEMI,
STATE(99), 1,
sym_args,
ACTIONS(264), 2,
anon_sym_PLUS,
anon_sym_DASH,
ACTIONS(266), 2,
anon_sym_LT,
anon_sym_GT,
ACTIONS(268), 2,
anon_sym_LT_EQ,
anon_sym_GT_EQ,
ACTIONS(270), 2,
anon_sym_EQ_EQ,
anon_sym_BANG_EQ,
[3923] = 14,
ACTIONS(3), 1,
sym_comment,
ACTIONS(256), 1,
anon_sym_LPAREN,
ACTIONS(258), 1,
anon_sym_DOT,
ACTIONS(260), 1,
anon_sym_STAR,
ACTIONS(262), 1,
anon_sym_SLASH,
ACTIONS(272), 1,
anon_sym_and,
ACTIONS(274), 1,
anon_sym_EQ,
ACTIONS(278), 1,
anon_sym_or,
ACTIONS(346), 1,
anon_sym_SEMI,
STATE(99), 1,
sym_args,
ACTIONS(264), 2,
anon_sym_PLUS,
anon_sym_DASH,
ACTIONS(266), 2,
anon_sym_LT,
anon_sym_GT,
ACTIONS(268), 2,
anon_sym_LT_EQ,
anon_sym_GT_EQ,
ACTIONS(270), 2,
anon_sym_EQ_EQ,
anon_sym_BANG_EQ,
[3970] = 14,
ACTIONS(3), 1,
sym_comment,
ACTIONS(256), 1,
anon_sym_LPAREN,
ACTIONS(258), 1,
anon_sym_DOT,
ACTIONS(260), 1,
anon_sym_STAR,
ACTIONS(262), 1,
anon_sym_SLASH,
ACTIONS(272), 1,
anon_sym_and,
ACTIONS(274), 1,
anon_sym_EQ,
ACTIONS(278), 1,
anon_sym_or,
ACTIONS(348), 1,
anon_sym_SEMI,
STATE(99), 1,
sym_args,
ACTIONS(264), 2,
anon_sym_PLUS,
anon_sym_DASH,
ACTIONS(266), 2,
anon_sym_LT,
anon_sym_GT,
ACTIONS(268), 2,
anon_sym_LT_EQ,
anon_sym_GT_EQ,
ACTIONS(270), 2,
anon_sym_EQ_EQ,
anon_sym_BANG_EQ,
[4017] = 14,
ACTIONS(3), 1,
sym_comment,
ACTIONS(256), 1,
anon_sym_LPAREN,
ACTIONS(258), 1,
anon_sym_DOT,
ACTIONS(260), 1,
anon_sym_STAR,
ACTIONS(262), 1,
anon_sym_SLASH,
ACTIONS(272), 1,
anon_sym_and,
ACTIONS(274), 1,
anon_sym_EQ,
ACTIONS(278), 1,
anon_sym_or,
ACTIONS(350), 1,
anon_sym_SEMI,
STATE(99), 1,
sym_args,
ACTIONS(264), 2,
anon_sym_PLUS,
anon_sym_DASH,
ACTIONS(266), 2,
anon_sym_LT,
anon_sym_GT,
ACTIONS(268), 2,
anon_sym_LT_EQ,
anon_sym_GT_EQ,
ACTIONS(270), 2,
anon_sym_EQ_EQ,
anon_sym_BANG_EQ,
[4064] = 14,
ACTIONS(3), 1,
sym_comment,
ACTIONS(256), 1,
anon_sym_LPAREN,
ACTIONS(258), 1,
anon_sym_DOT,
ACTIONS(260), 1,
anon_sym_STAR,
ACTIONS(262), 1,
anon_sym_SLASH,
ACTIONS(272), 1,
anon_sym_and,
ACTIONS(274), 1,
anon_sym_EQ,
ACTIONS(278), 1,
anon_sym_or,
ACTIONS(352), 1,
anon_sym_SEMI,
STATE(99), 1,
sym_args,
ACTIONS(264), 2,
anon_sym_PLUS,
anon_sym_DASH,
ACTIONS(266), 2,
anon_sym_LT,
anon_sym_GT,
ACTIONS(268), 2,
anon_sym_LT_EQ,
anon_sym_GT_EQ,
ACTIONS(270), 2,
anon_sym_EQ_EQ,
anon_sym_BANG_EQ,
[4111] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(356), 6,
anon_sym_LBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(354), 11,
anon_sym_for,
anon_sym_if,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[4136] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(360), 6,
anon_sym_LBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(358), 11,
anon_sym_for,
anon_sym_if,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[4161] = 14,
ACTIONS(3), 1,
sym_comment,
ACTIONS(256), 1,
anon_sym_LPAREN,
ACTIONS(258), 1,
anon_sym_DOT,
ACTIONS(260), 1,
anon_sym_STAR,
ACTIONS(262), 1,
anon_sym_SLASH,
ACTIONS(272), 1,
anon_sym_and,
ACTIONS(274), 1,
anon_sym_EQ,
ACTIONS(278), 1,
anon_sym_or,
ACTIONS(362), 1,
anon_sym_RPAREN,
STATE(99), 1,
sym_args,
ACTIONS(264), 2,
anon_sym_PLUS,
anon_sym_DASH,
ACTIONS(266), 2,
anon_sym_LT,
anon_sym_GT,
ACTIONS(268), 2,
anon_sym_LT_EQ,
anon_sym_GT_EQ,
ACTIONS(270), 2,
anon_sym_EQ_EQ,
anon_sym_BANG_EQ,
[4208] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(366), 6,
anon_sym_LBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(364), 11,
anon_sym_for,
anon_sym_if,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[4233] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(370), 6,
anon_sym_LBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(368), 11,
anon_sym_for,
anon_sym_if,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[4258] = 14,
ACTIONS(3), 1,
sym_comment,
ACTIONS(256), 1,
anon_sym_LPAREN,
ACTIONS(258), 1,
anon_sym_DOT,
ACTIONS(260), 1,
anon_sym_STAR,
ACTIONS(262), 1,
anon_sym_SLASH,
ACTIONS(272), 1,
anon_sym_and,
ACTIONS(274), 1,
anon_sym_EQ,
ACTIONS(278), 1,
anon_sym_or,
ACTIONS(372), 1,
anon_sym_RPAREN,
STATE(99), 1,
sym_args,
ACTIONS(264), 2,
anon_sym_PLUS,
anon_sym_DASH,
ACTIONS(266), 2,
anon_sym_LT,
anon_sym_GT,
ACTIONS(268), 2,
anon_sym_LT_EQ,
anon_sym_GT_EQ,
ACTIONS(270), 2,
anon_sym_EQ_EQ,
anon_sym_BANG_EQ,
[4305] = 14,
ACTIONS(3), 1,
sym_comment,
ACTIONS(256), 1,
anon_sym_LPAREN,
ACTIONS(258), 1,
anon_sym_DOT,
ACTIONS(260), 1,
anon_sym_STAR,
ACTIONS(262), 1,
anon_sym_SLASH,
ACTIONS(272), 1,
anon_sym_and,
ACTIONS(274), 1,
anon_sym_EQ,
ACTIONS(278), 1,
anon_sym_or,
ACTIONS(374), 1,
anon_sym_RPAREN,
STATE(99), 1,
sym_args,
ACTIONS(264), 2,
anon_sym_PLUS,
anon_sym_DASH,
ACTIONS(266), 2,
anon_sym_LT,
anon_sym_GT,
ACTIONS(268), 2,
anon_sym_LT_EQ,
anon_sym_GT_EQ,
ACTIONS(270), 2,
anon_sym_EQ_EQ,
anon_sym_BANG_EQ,
[4352] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(378), 6,
anon_sym_LBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(376), 11,
anon_sym_for,
anon_sym_if,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[4377] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(382), 6,
anon_sym_LBRACE,
anon_sym_LPAREN,
anon_sym_DASH,
anon_sym_BANG,
sym_number,
sym_string,
ACTIONS(380), 11,
anon_sym_for,
anon_sym_if,
anon_sym_print,
anon_sym_return,
anon_sym_while,
anon_sym_false,
anon_sym_true,
sym_nil,
sym_this,
anon_sym_super,
sym_identifier,
[4402] = 14,
ACTIONS(3), 1,
sym_comment,
ACTIONS(256), 1,
anon_sym_LPAREN,
ACTIONS(258), 1,
anon_sym_DOT,
ACTIONS(260), 1,
anon_sym_STAR,
ACTIONS(262), 1,
anon_sym_SLASH,
ACTIONS(272), 1,
anon_sym_and,
ACTIONS(274), 1,
anon_sym_EQ,
ACTIONS(278), 1,
anon_sym_or,
ACTIONS(384), 1,
anon_sym_SEMI,
STATE(99), 1,
sym_args,
ACTIONS(264), 2,
anon_sym_PLUS,
anon_sym_DASH,
ACTIONS(266), 2,
anon_sym_LT,
anon_sym_GT,
ACTIONS(268), 2,
anon_sym_LT_EQ,
anon_sym_GT_EQ,
ACTIONS(270), 2,
anon_sym_EQ_EQ,
anon_sym_BANG_EQ,
[4449] = 4,
ACTIONS(3), 1,
sym_comment,
ACTIONS(386), 1,
sym_identifier,
ACTIONS(388), 1,
anon_sym_RBRACE,
STATE(132), 2,
sym_function,
aux_sym_decl_class_repeat1,
[4463] = 4,
ACTIONS(3), 1,
sym_comment,
ACTIONS(386), 1,
sym_identifier,
ACTIONS(390), 1,
anon_sym_RBRACE,
STATE(128), 2,
sym_function,
aux_sym_decl_class_repeat1,
[4477] = 4,
ACTIONS(3), 1,
sym_comment,
ACTIONS(386), 1,
sym_identifier,
ACTIONS(392), 1,
anon_sym_RBRACE,
STATE(131), 2,
sym_function,
aux_sym_decl_class_repeat1,
[4491] = 4,
ACTIONS(3), 1,
sym_comment,
ACTIONS(386), 1,
sym_identifier,
ACTIONS(394), 1,
anon_sym_RBRACE,
STATE(125), 2,
sym_function,
aux_sym_decl_class_repeat1,
[4505] = 4,
ACTIONS(3), 1,
sym_comment,
ACTIONS(396), 1,
sym_identifier,
ACTIONS(399), 1,
anon_sym_RBRACE,
STATE(128), 2,
sym_function,
aux_sym_decl_class_repeat1,
[4519] = 4,
ACTIONS(3), 1,
sym_comment,
ACTIONS(386), 1,
sym_identifier,
ACTIONS(401), 1,
anon_sym_RBRACE,
STATE(128), 2,
sym_function,
aux_sym_decl_class_repeat1,
[4533] = 4,
ACTIONS(3), 1,
sym_comment,
ACTIONS(386), 1,
sym_identifier,
ACTIONS(403), 1,
anon_sym_RBRACE,
STATE(129), 2,
sym_function,
aux_sym_decl_class_repeat1,
[4547] = 4,
ACTIONS(3), 1,
sym_comment,
ACTIONS(386), 1,
sym_identifier,
ACTIONS(405), 1,
anon_sym_RBRACE,
STATE(128), 2,
sym_function,
aux_sym_decl_class_repeat1,
[4561] = 4,
ACTIONS(3), 1,
sym_comment,
ACTIONS(386), 1,
sym_identifier,
ACTIONS(407), 1,
anon_sym_RBRACE,
STATE(128), 2,
sym_function,
aux_sym_decl_class_repeat1,
[4575] = 4,
ACTIONS(3), 1,
sym_comment,
ACTIONS(409), 1,
anon_sym_RPAREN,
ACTIONS(411), 1,
anon_sym_COMMA,
STATE(138), 1,
aux_sym_params_repeat1,
[4588] = 4,
ACTIONS(3), 1,
sym_comment,
ACTIONS(413), 1,
anon_sym_LBRACE,
ACTIONS(415), 1,
anon_sym_LT,
STATE(172), 1,
sym_extends,
[4601] = 4,
ACTIONS(3), 1,
sym_comment,
ACTIONS(415), 1,
anon_sym_LT,
ACTIONS(417), 1,
anon_sym_LBRACE,
STATE(165), 1,
sym_extends,
[4614] = 4,
ACTIONS(3), 1,
sym_comment,
ACTIONS(419), 1,
anon_sym_RPAREN,
ACTIONS(421), 1,
anon_sym_COMMA,
STATE(136), 1,
aux_sym_params_repeat1,
[4627] = 4,
ACTIONS(3), 1,
sym_comment,
ACTIONS(280), 1,
anon_sym_COMMA,
ACTIONS(424), 1,
anon_sym_RPAREN,
STATE(139), 1,
aux_sym_args_repeat1,
[4640] = 4,
ACTIONS(3), 1,
sym_comment,
ACTIONS(411), 1,
anon_sym_COMMA,
ACTIONS(426), 1,
anon_sym_RPAREN,
STATE(136), 1,
aux_sym_params_repeat1,
[4653] = 4,
ACTIONS(3), 1,
sym_comment,
ACTIONS(314), 1,
anon_sym_RPAREN,
ACTIONS(428), 1,
anon_sym_COMMA,
STATE(139), 1,
aux_sym_args_repeat1,
[4666] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(19), 1,
anon_sym_LPAREN,
STATE(15), 1,
sym_grouping,
[4676] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(431), 1,
sym_identifier,
STATE(69), 1,
sym_function,
[4686] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(433), 1,
anon_sym_LPAREN,
STATE(155), 1,
sym_params,
[4696] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(435), 1,
anon_sym_EQ,
ACTIONS(437), 1,
anon_sym_SEMI,
[4706] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(19), 1,
anon_sym_LPAREN,
STATE(14), 1,
sym_grouping,
[4716] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(386), 1,
sym_identifier,
STATE(68), 1,
sym_function,
[4726] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(11), 1,
anon_sym_LBRACE,
STATE(80), 1,
sym_stmt_block,
[4736] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(19), 1,
anon_sym_LPAREN,
STATE(10), 1,
sym_grouping,
[4746] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(19), 1,
anon_sym_LPAREN,
STATE(11), 1,
sym_grouping,
[4756] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(439), 1,
anon_sym_EQ,
ACTIONS(441), 1,
anon_sym_SEMI,
[4766] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(443), 1,
sym_identifier,
ACTIONS(445), 1,
anon_sym_RPAREN,
[4776] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(447), 1,
anon_sym_LPAREN,
STATE(16), 1,
sym_for_paren,
[4786] = 2,
ACTIONS(3), 1,
sym_comment,
ACTIONS(419), 2,
anon_sym_RPAREN,
anon_sym_COMMA,
[4794] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(447), 1,
anon_sym_LPAREN,
STATE(12), 1,
sym_for_paren,
[4804] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(433), 1,
anon_sym_LPAREN,
STATE(146), 1,
sym_params,
[4814] = 3,
ACTIONS(3), 1,
sym_comment,
ACTIONS(41), 1,
anon_sym_LBRACE,
STATE(75), 1,
sym_stmt_block,
[4824] = 2,
ACTIONS(3), 1,
sym_comment,
ACTIONS(449), 1,
anon_sym_DOT,
[4831] = 2,
ACTIONS(3), 1,
sym_comment,
ACTIONS(451), 1,
sym_identifier,
[4838] = 2,
ACTIONS(3), 1,
sym_comment,
ACTIONS(453), 1,
sym_identifier,
[4845] = 2,
ACTIONS(3), 1,
sym_comment,
ACTIONS(455), 1,
anon_sym_LBRACE,
[4852] = 2,
ACTIONS(3), 1,
sym_comment,
ACTIONS(457), 1,
ts_builtin_sym_end,
[4859] = 2,
ACTIONS(3), 1,
sym_comment,
ACTIONS(459), 1,
anon_sym_LBRACE,
[4866] = 2,
ACTIONS(3), 1,
sym_comment,
ACTIONS(461), 1,
sym_identifier,
[4873] = 2,
ACTIONS(3), 1,
sym_comment,
ACTIONS(463), 1,
sym_identifier,
[4880] = 2,
ACTIONS(3), 1,
sym_comment,
ACTIONS(465), 1,
sym_identifier,
[4887] = 2,
ACTIONS(3), 1,
sym_comment,
ACTIONS(467), 1,
sym_identifier,
[4894] = 2,
ACTIONS(3), 1,
sym_comment,
ACTIONS(469), 1,
sym_identifier,
[4901] = 2,
ACTIONS(3), 1,
sym_comment,
ACTIONS(471), 1,
anon_sym_LBRACE,
[4908] = 2,
ACTIONS(3), 1,
sym_comment,
ACTIONS(473), 1,
anon_sym_LBRACE,
[4915] = 2,
ACTIONS(3), 1,
sym_comment,
ACTIONS(475), 1,
sym_identifier,
[4922] = 2,
ACTIONS(3), 1,
sym_comment,
ACTIONS(477), 1,
anon_sym_LBRACE,
[4929] = 2,
ACTIONS(3), 1,
sym_comment,
ACTIONS(479), 1,
sym_identifier,
[4936] = 2,
ACTIONS(3), 1,
sym_comment,
ACTIONS(481), 1,
sym_identifier,
};
static const uint32_t ts_small_parse_table_map[] = {
[SMALL_STATE(9)] = 0,
[SMALL_STATE(10)] = 73,
[SMALL_STATE(11)] = 146,
[SMALL_STATE(12)] = 219,
[SMALL_STATE(13)] = 292,
[SMALL_STATE(14)] = 365,
[SMALL_STATE(15)] = 438,
[SMALL_STATE(16)] = 511,
[SMALL_STATE(17)] = 584,
[SMALL_STATE(18)] = 625,
[SMALL_STATE(19)] = 678,
[SMALL_STATE(20)] = 709,
[SMALL_STATE(21)] = 739,
[SMALL_STATE(22)] = 769,
[SMALL_STATE(23)] = 801,
[SMALL_STATE(24)] = 831,
[SMALL_STATE(25)] = 861,
[SMALL_STATE(26)] = 891,
[SMALL_STATE(27)] = 921,
[SMALL_STATE(28)] = 951,
[SMALL_STATE(29)] = 981,
[SMALL_STATE(30)] = 1027,
[SMALL_STATE(31)] = 1057,
[SMALL_STATE(32)] = 1087,
[SMALL_STATE(33)] = 1117,
[SMALL_STATE(34)] = 1147,
[SMALL_STATE(35)] = 1193,
[SMALL_STATE(36)] = 1223,
[SMALL_STATE(37)] = 1269,
[SMALL_STATE(38)] = 1299,
[SMALL_STATE(39)] = 1345,
[SMALL_STATE(40)] = 1375,
[SMALL_STATE(41)] = 1421,
[SMALL_STATE(42)] = 1467,
[SMALL_STATE(43)] = 1497,
[SMALL_STATE(44)] = 1527,
[SMALL_STATE(45)] = 1559,
[SMALL_STATE(46)] = 1589,
[SMALL_STATE(47)] = 1619,
[SMALL_STATE(48)] = 1649,
[SMALL_STATE(49)] = 1695,
[SMALL_STATE(50)] = 1741,
[SMALL_STATE(51)] = 1787,
[SMALL_STATE(52)] = 1817,
[SMALL_STATE(53)] = 1860,
[SMALL_STATE(54)] = 1889,
[SMALL_STATE(55)] = 1932,
[SMALL_STATE(56)] = 1975,
[SMALL_STATE(57)] = 2018,
[SMALL_STATE(58)] = 2061,
[SMALL_STATE(59)] = 2090,
[SMALL_STATE(60)] = 2133,
[SMALL_STATE(61)] = 2176,
[SMALL_STATE(62)] = 2219,
[SMALL_STATE(63)] = 2262,
[SMALL_STATE(64)] = 2291,
[SMALL_STATE(65)] = 2334,
[SMALL_STATE(66)] = 2363,
[SMALL_STATE(67)] = 2392,
[SMALL_STATE(68)] = 2421,
[SMALL_STATE(69)] = 2450,
[SMALL_STATE(70)] = 2479,
[SMALL_STATE(71)] = 2508,
[SMALL_STATE(72)] = 2537,
[SMALL_STATE(73)] = 2580,
[SMALL_STATE(74)] = 2623,
[SMALL_STATE(75)] = 2652,
[SMALL_STATE(76)] = 2681,
[SMALL_STATE(77)] = 2724,
[SMALL_STATE(78)] = 2753,
[SMALL_STATE(79)] = 2782,
[SMALL_STATE(80)] = 2825,
[SMALL_STATE(81)] = 2854,
[SMALL_STATE(82)] = 2883,
[SMALL_STATE(83)] = 2930,
[SMALL_STATE(84)] = 2975,
[SMALL_STATE(85)] = 3018,
[SMALL_STATE(86)] = 3057,
[SMALL_STATE(87)] = 3094,
[SMALL_STATE(88)] = 3127,
[SMALL_STATE(89)] = 3180,
[SMALL_STATE(90)] = 3229,
[SMALL_STATE(91)] = 3262,
[SMALL_STATE(92)] = 3288,
[SMALL_STATE(93)] = 3314,
[SMALL_STATE(94)] = 3340,
[SMALL_STATE(95)] = 3366,
[SMALL_STATE(96)] = 3392,
[SMALL_STATE(97)] = 3418,
[SMALL_STATE(98)] = 3444,
[SMALL_STATE(99)] = 3492,
[SMALL_STATE(100)] = 3518,
[SMALL_STATE(101)] = 3544,
[SMALL_STATE(102)] = 3591,
[SMALL_STATE(103)] = 3638,
[SMALL_STATE(104)] = 3663,
[SMALL_STATE(105)] = 3710,
[SMALL_STATE(106)] = 3757,
[SMALL_STATE(107)] = 3782,
[SMALL_STATE(108)] = 3829,
[SMALL_STATE(109)] = 3876,
[SMALL_STATE(110)] = 3923,
[SMALL_STATE(111)] = 3970,
[SMALL_STATE(112)] = 4017,
[SMALL_STATE(113)] = 4064,
[SMALL_STATE(114)] = 4111,
[SMALL_STATE(115)] = 4136,
[SMALL_STATE(116)] = 4161,
[SMALL_STATE(117)] = 4208,
[SMALL_STATE(118)] = 4233,
[SMALL_STATE(119)] = 4258,
[SMALL_STATE(120)] = 4305,
[SMALL_STATE(121)] = 4352,
[SMALL_STATE(122)] = 4377,
[SMALL_STATE(123)] = 4402,
[SMALL_STATE(124)] = 4449,
[SMALL_STATE(125)] = 4463,
[SMALL_STATE(126)] = 4477,
[SMALL_STATE(127)] = 4491,
[SMALL_STATE(128)] = 4505,
[SMALL_STATE(129)] = 4519,
[SMALL_STATE(130)] = 4533,
[SMALL_STATE(131)] = 4547,
[SMALL_STATE(132)] = 4561,
[SMALL_STATE(133)] = 4575,
[SMALL_STATE(134)] = 4588,
[SMALL_STATE(135)] = 4601,
[SMALL_STATE(136)] = 4614,
[SMALL_STATE(137)] = 4627,
[SMALL_STATE(138)] = 4640,
[SMALL_STATE(139)] = 4653,
[SMALL_STATE(140)] = 4666,
[SMALL_STATE(141)] = 4676,
[SMALL_STATE(142)] = 4686,
[SMALL_STATE(143)] = 4696,
[SMALL_STATE(144)] = 4706,
[SMALL_STATE(145)] = 4716,
[SMALL_STATE(146)] = 4726,
[SMALL_STATE(147)] = 4736,
[SMALL_STATE(148)] = 4746,
[SMALL_STATE(149)] = 4756,
[SMALL_STATE(150)] = 4766,
[SMALL_STATE(151)] = 4776,
[SMALL_STATE(152)] = 4786,
[SMALL_STATE(153)] = 4794,
[SMALL_STATE(154)] = 4804,
[SMALL_STATE(155)] = 4814,
[SMALL_STATE(156)] = 4824,
[SMALL_STATE(157)] = 4831,
[SMALL_STATE(158)] = 4838,
[SMALL_STATE(159)] = 4845,
[SMALL_STATE(160)] = 4852,
[SMALL_STATE(161)] = 4859,
[SMALL_STATE(162)] = 4866,
[SMALL_STATE(163)] = 4873,
[SMALL_STATE(164)] = 4880,
[SMALL_STATE(165)] = 4887,
[SMALL_STATE(166)] = 4894,
[SMALL_STATE(167)] = 4901,
[SMALL_STATE(168)] = 4908,
[SMALL_STATE(169)] = 4915,
[SMALL_STATE(170)] = 4922,
[SMALL_STATE(171)] = 4929,
[SMALL_STATE(172)] = 4936,
};
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_EXTRA(),
[5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 0),
[7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(93),
[9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(157),
[11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2),
[13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(141),
[15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(163),
[17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(151),
[19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61),
[21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(140),
[23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62),
[25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(49),
[27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(144),
[29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79),
[31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(91),
[33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(92),
[35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92),
[37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(156),
[39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(171),
[41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5),
[43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27),
[45] = {.entry = {.count = 1, .reusable = false}}, SHIFT(145),
[47] = {.entry = {.count = 1, .reusable = false}}, SHIFT(162),
[49] = {.entry = {.count = 1, .reusable = false}}, SHIFT(153),
[51] = {.entry = {.count = 1, .reusable = false}}, SHIFT(148),
[53] = {.entry = {.count = 1, .reusable = false}}, SHIFT(60),
[55] = {.entry = {.count = 1, .reusable = false}}, SHIFT(29),
[57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(147),
[59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26),
[61] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2),
[63] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(93),
[66] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(157),
[69] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(2),
[72] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(141),
[75] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(163),
[78] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(151),
[81] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(61),
[84] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(140),
[87] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(62),
[90] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(49),
[93] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(144),
[96] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(79),
[99] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(91),
[102] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(92),
[105] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(92),
[108] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(156),
[111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28),
[113] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 1, .production_id = 2),
[115] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(171),
[118] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(5),
[121] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(145),
[124] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(162),
[127] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(153),
[130] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(148),
[133] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(60),
[136] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(29),
[139] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2), SHIFT_REPEAT(147),
[142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42),
[144] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_grouping, 3, .production_id = 10),
[146] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_grouping, 3, .production_id = 10),
[148] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48),
[150] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_expr, 2, .production_id = 5),
[152] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_expr, 2, .production_id = 5),
[154] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_return, 2),
[156] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_return, 2),
[158] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_while, 3, .production_id = 13),
[160] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_while, 3, .production_id = 13),
[162] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_if, 3, .production_id = 11),
[164] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_if, 3, .production_id = 11),
[166] = {.entry = {.count = 1, .reusable = false}}, SHIFT(9),
[168] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_for, 3, .production_id = 9),
[170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_for, 3, .production_id = 9),
[172] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_var, 3, .production_id = 8),
[174] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_var, 3, .production_id = 8),
[176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_stmt, 1),
[178] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_stmt, 1),
[180] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_block, 3, .production_id = 7),
[182] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_block, 3, .production_id = 7),
[184] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_block, 2),
[186] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_block, 2),
[188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20),
[190] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_return, 3, .production_id = 12),
[192] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_return, 3, .production_id = 12),
[194] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_if, 5, .production_id = 21),
[196] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_if, 5, .production_id = 21),
[198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118),
[200] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_stmt_print, 3, .production_id = 12),
[202] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_stmt_print, 3, .production_id = 12),
[204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115),
[206] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_var, 5, .production_id = 19),
[208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_var, 5, .production_id = 19),
[210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106),
[212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96),
[214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103),
[216] = {.entry = {.count = 1, .reusable = false}}, SHIFT(13),
[218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41),
[220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33),
[222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38),
[224] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_class, 4, .production_id = 8),
[226] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_class, 4, .production_id = 8),
[228] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_class, 7, .production_id = 27),
[230] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_class, 7, .production_id = 27),
[232] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl, 1),
[234] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl, 1),
[236] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_fun, 2, .production_id = 3),
[238] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_fun, 2, .production_id = 3),
[240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_class, 5, .production_id = 18),
[242] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_class, 5, .production_id = 18),
[244] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function, 3, .production_id = 17),
[246] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 3, .production_id = 17),
[248] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decl_class, 6, .production_id = 22),
[250] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decl_class, 6, .production_id = 22),
[252] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_infix, 3, .production_id = 15),
[254] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_infix, 3, .production_id = 15),
[256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40),
[258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164),
[260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76),
[262] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76),
[264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52),
[266] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54),
[268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54),
[270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55),
[272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56),
[274] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73),
[276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94),
[278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57),
[280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72),
[282] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_prefix, 2, .production_id = 4),
[284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_prefix, 2, .production_id = 4),
[286] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_bool, 1),
[288] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bool, 1),
[290] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_primary, 1),
[292] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_primary, 1),
[294] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_var, 1, .production_id = 1),
[296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_var, 1, .production_id = 1),
[298] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_args, 3),
[300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_args, 3),
[302] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_field, 3, .production_id = 16),
[304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_field, 3, .production_id = 16),
[306] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_args, 2),
[308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_args, 2),
[310] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_super, 3, .production_id = 14),
[312] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_super, 3, .production_id = 14),
[314] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_args_repeat1, 2),
[316] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expr_call, 2, .production_id = 6),
[318] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expr_call, 2, .production_id = 6),
[320] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_args, 4),
[322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_args, 4),
[324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58),
[326] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31),
[328] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_paren, 4),
[330] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_paren, 4),
[332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114),
[334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37),
[336] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_paren, 4, .production_id = 20),
[338] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_paren, 4, .production_id = 20),
[340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117),
[342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46),
[344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35),
[346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19),
[348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36),
[350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34),
[352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39),
[354] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_paren, 5, .production_id = 23),
[356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_paren, 5, .production_id = 23),
[358] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_paren, 5, .production_id = 24),
[360] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_paren, 5, .production_id = 24),
[362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121),
[364] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_paren, 5, .production_id = 25),
[366] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_paren, 5, .production_id = 25),
[368] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_paren, 5, .production_id = 26),
[370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_paren, 5, .production_id = 26),
[372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122),
[374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17),
[376] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_paren, 6, .production_id = 28),
[378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_paren, 6, .production_id = 28),
[380] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_paren, 6, .production_id = 29),
[382] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_paren, 6, .production_id = 29),
[384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45),
[386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142),
[388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53),
[390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63),
[392] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77),
[394] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78),
[396] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_decl_class_repeat1, 2), SHIFT_REPEAT(142),
[399] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_decl_class_repeat1, 2),
[401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81),
[403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74),
[405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66),
[407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70),
[409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167),
[411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166),
[413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130),
[415] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169),
[417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124),
[419] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_params_repeat1, 2),
[421] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_params_repeat1, 2), SHIFT_REPEAT(166),
[424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100),
[426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159),
[428] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_args_repeat1, 2), SHIFT_REPEAT(72),
[431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154),
[433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150),
[435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64),
[437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65),
[439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59),
[441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24),
[443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133),
[445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161),
[447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18),
[449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158),
[451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135),
[453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97),
[455] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_params, 4),
[457] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(),
[459] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_params, 2),
[461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149),
[463] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143),
[465] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95),
[467] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168),
[469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152),
[471] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_params, 3),
[473] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126),
[475] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_extends, 1),
[477] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127),
[479] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134),
[481] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170),
};
#ifdef __cplusplus
extern "C" {
#endif
#ifdef _WIN32
#define extern __declspec(dllexport)
#endif
extern const TSLanguage *tree_sitter_lox(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,
.keyword_lex_fn = ts_lex_keywords,
.keyword_capture_token = sym_identifier,
.primary_state_ids = ts_primary_state_ids,
};
return &language;
}
#ifdef __cplusplus
}
#endif