#include #if defined(__GNUC__) || defined(__clang__) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wmissing-field-initializers" #endif #define LANGUAGE_VERSION 13 #define STATE_COUNT 160 #define LARGE_STATE_COUNT 2 #define SYMBOL_COUNT 86 #define ALIAS_COUNT 2 #define TOKEN_COUNT 49 #define EXTERNAL_TOKEN_COUNT 1 #define FIELD_COUNT 26 #define MAX_ALIAS_SEQUENCE_LENGTH 8 #define PRODUCTION_ID_COUNT 38 enum { sym_identifier = 1, sym_nil_literal = 2, sym_integer_literal = 3, anon_sym_DQUOTE = 4, aux_sym_string_literal_token1 = 5, sym_escape_sequence = 6, anon_sym_DOT = 7, anon_sym_LBRACK = 8, anon_sym_RBRACK = 9, anon_sym_LPAREN = 10, anon_sym_COMMA = 11, anon_sym_RPAREN = 12, anon_sym_DASH = 13, anon_sym_STAR = 14, anon_sym_SLASH = 15, anon_sym_PLUS = 16, anon_sym_GT_EQ = 17, anon_sym_LT_EQ = 18, anon_sym_EQ = 19, anon_sym_LT_GT = 20, anon_sym_LT = 21, anon_sym_GT = 22, anon_sym_AMP = 23, anon_sym_PIPE = 24, anon_sym_SEMI = 25, anon_sym_of = 26, anon_sym_LBRACE = 27, anon_sym_RBRACE = 28, anon_sym_COLON_EQ = 29, anon_sym_if = 30, anon_sym_then = 31, anon_sym_else = 32, anon_sym_while = 33, anon_sym_do = 34, anon_sym_for = 35, anon_sym_to = 36, sym_break_expression = 37, anon_sym_let = 38, anon_sym_in = 39, anon_sym_end = 40, anon_sym_type = 41, anon_sym_COLON = 42, anon_sym_array = 43, anon_sym_function = 44, anon_sym_primitive = 45, anon_sym_var = 46, anon_sym_import = 47, sym_comment = 48, sym_source_file = 49, sym__expr = 50, sym_string_literal = 51, sym__lvalue = 52, sym_record_value = 53, sym_array_value = 54, sym_function_call = 55, sym_unary_expression = 56, sym_binary_expression = 57, sym_sequence_expression = 58, sym_array_expression = 59, sym_record_expression = 60, sym_assignment_expression = 61, sym_if_expression = 62, sym_while_expression = 63, sym_for_expression = 64, sym_let_expression = 65, aux_sym__declaration_chunks = 66, sym__declaration_chunk = 67, sym_type_declaration = 68, sym__type = 69, sym_type_alias = 70, sym_record_type = 71, sym_array_type = 72, sym_function_declaration = 73, sym_primitive_declaration = 74, sym_parameters = 75, sym_variable_declaration = 76, sym_import_declaration = 77, aux_sym_string_literal_repeat1 = 78, aux_sym_function_call_repeat1 = 79, aux_sym_sequence_expression_repeat1 = 80, aux_sym_record_expression_repeat1 = 81, aux_sym__declaration_chunk_repeat1 = 82, aux_sym__declaration_chunk_repeat2 = 83, aux_sym_record_type_repeat1 = 84, aux_sym_parameters_repeat1 = 85, alias_sym_field_identifier = 86, alias_sym_type_identifier = 87, }; static const char * const ts_symbol_names[] = { [ts_builtin_sym_end] = "end", [sym_identifier] = "identifier", [sym_nil_literal] = "nil_literal", [sym_integer_literal] = "integer_literal", [anon_sym_DQUOTE] = "\"", [aux_sym_string_literal_token1] = "string_literal_token1", [sym_escape_sequence] = "escape_sequence", [anon_sym_DOT] = ".", [anon_sym_LBRACK] = "[", [anon_sym_RBRACK] = "]", [anon_sym_LPAREN] = "(", [anon_sym_COMMA] = ",", [anon_sym_RPAREN] = ")", [anon_sym_DASH] = "operator", [anon_sym_STAR] = "operator", [anon_sym_SLASH] = "operator", [anon_sym_PLUS] = "operator", [anon_sym_GT_EQ] = "operator", [anon_sym_LT_EQ] = "operator", [anon_sym_EQ] = "=", [anon_sym_LT_GT] = "operator", [anon_sym_LT] = "operator", [anon_sym_GT] = "operator", [anon_sym_AMP] = "operator", [anon_sym_PIPE] = "operator", [anon_sym_SEMI] = ";", [anon_sym_of] = "of", [anon_sym_LBRACE] = "{", [anon_sym_RBRACE] = "}", [anon_sym_COLON_EQ] = "operator", [anon_sym_if] = "if", [anon_sym_then] = "then", [anon_sym_else] = "else", [anon_sym_while] = "while", [anon_sym_do] = "do", [anon_sym_for] = "for", [anon_sym_to] = "to", [sym_break_expression] = "break_expression", [anon_sym_let] = "let", [anon_sym_in] = "in", [anon_sym_end] = "end", [anon_sym_type] = "type", [anon_sym_COLON] = ":", [anon_sym_array] = "array", [anon_sym_function] = "function", [anon_sym_primitive] = "primitive", [anon_sym_var] = "var", [anon_sym_import] = "import", [sym_comment] = "comment", [sym_source_file] = "source_file", [sym__expr] = "_expr", [sym_string_literal] = "string_literal", [sym__lvalue] = "_lvalue", [sym_record_value] = "record_value", [sym_array_value] = "array_value", [sym_function_call] = "function_call", [sym_unary_expression] = "unary_expression", [sym_binary_expression] = "binary_expression", [sym_sequence_expression] = "sequence_expression", [sym_array_expression] = "array_expression", [sym_record_expression] = "record_expression", [sym_assignment_expression] = "assignment_expression", [sym_if_expression] = "if_expression", [sym_while_expression] = "while_expression", [sym_for_expression] = "for_expression", [sym_let_expression] = "let_expression", [aux_sym__declaration_chunks] = "_declaration_chunks", [sym__declaration_chunk] = "_declaration_chunk", [sym_type_declaration] = "type_declaration", [sym__type] = "_type", [sym_type_alias] = "type_alias", [sym_record_type] = "record_type", [sym_array_type] = "array_type", [sym_function_declaration] = "function_declaration", [sym_primitive_declaration] = "primitive_declaration", [sym_parameters] = "parameters", [sym_variable_declaration] = "variable_declaration", [sym_import_declaration] = "import_declaration", [aux_sym_string_literal_repeat1] = "string_literal_repeat1", [aux_sym_function_call_repeat1] = "function_call_repeat1", [aux_sym_sequence_expression_repeat1] = "sequence_expression_repeat1", [aux_sym_record_expression_repeat1] = "record_expression_repeat1", [aux_sym__declaration_chunk_repeat1] = "_declaration_chunk_repeat1", [aux_sym__declaration_chunk_repeat2] = "_declaration_chunk_repeat2", [aux_sym_record_type_repeat1] = "record_type_repeat1", [aux_sym_parameters_repeat1] = "parameters_repeat1", [alias_sym_field_identifier] = "field_identifier", [alias_sym_type_identifier] = "type_identifier", }; static const TSSymbol ts_symbol_map[] = { [ts_builtin_sym_end] = ts_builtin_sym_end, [sym_identifier] = sym_identifier, [sym_nil_literal] = sym_nil_literal, [sym_integer_literal] = sym_integer_literal, [anon_sym_DQUOTE] = anon_sym_DQUOTE, [aux_sym_string_literal_token1] = aux_sym_string_literal_token1, [sym_escape_sequence] = sym_escape_sequence, [anon_sym_DOT] = anon_sym_DOT, [anon_sym_LBRACK] = anon_sym_LBRACK, [anon_sym_RBRACK] = anon_sym_RBRACK, [anon_sym_LPAREN] = anon_sym_LPAREN, [anon_sym_COMMA] = anon_sym_COMMA, [anon_sym_RPAREN] = anon_sym_RPAREN, [anon_sym_DASH] = anon_sym_DASH, [anon_sym_STAR] = anon_sym_DASH, [anon_sym_SLASH] = anon_sym_DASH, [anon_sym_PLUS] = anon_sym_DASH, [anon_sym_GT_EQ] = anon_sym_DASH, [anon_sym_LT_EQ] = anon_sym_DASH, [anon_sym_EQ] = anon_sym_EQ, [anon_sym_LT_GT] = anon_sym_DASH, [anon_sym_LT] = anon_sym_DASH, [anon_sym_GT] = anon_sym_DASH, [anon_sym_AMP] = anon_sym_DASH, [anon_sym_PIPE] = anon_sym_DASH, [anon_sym_SEMI] = anon_sym_SEMI, [anon_sym_of] = anon_sym_of, [anon_sym_LBRACE] = anon_sym_LBRACE, [anon_sym_RBRACE] = anon_sym_RBRACE, [anon_sym_COLON_EQ] = anon_sym_DASH, [anon_sym_if] = anon_sym_if, [anon_sym_then] = anon_sym_then, [anon_sym_else] = anon_sym_else, [anon_sym_while] = anon_sym_while, [anon_sym_do] = anon_sym_do, [anon_sym_for] = anon_sym_for, [anon_sym_to] = anon_sym_to, [sym_break_expression] = sym_break_expression, [anon_sym_let] = anon_sym_let, [anon_sym_in] = anon_sym_in, [anon_sym_end] = anon_sym_end, [anon_sym_type] = anon_sym_type, [anon_sym_COLON] = anon_sym_COLON, [anon_sym_array] = anon_sym_array, [anon_sym_function] = anon_sym_function, [anon_sym_primitive] = anon_sym_primitive, [anon_sym_var] = anon_sym_var, [anon_sym_import] = anon_sym_import, [sym_comment] = sym_comment, [sym_source_file] = sym_source_file, [sym__expr] = sym__expr, [sym_string_literal] = sym_string_literal, [sym__lvalue] = sym__lvalue, [sym_record_value] = sym_record_value, [sym_array_value] = sym_array_value, [sym_function_call] = sym_function_call, [sym_unary_expression] = sym_unary_expression, [sym_binary_expression] = sym_binary_expression, [sym_sequence_expression] = sym_sequence_expression, [sym_array_expression] = sym_array_expression, [sym_record_expression] = sym_record_expression, [sym_assignment_expression] = sym_assignment_expression, [sym_if_expression] = sym_if_expression, [sym_while_expression] = sym_while_expression, [sym_for_expression] = sym_for_expression, [sym_let_expression] = sym_let_expression, [aux_sym__declaration_chunks] = aux_sym__declaration_chunks, [sym__declaration_chunk] = sym__declaration_chunk, [sym_type_declaration] = sym_type_declaration, [sym__type] = sym__type, [sym_type_alias] = sym_type_alias, [sym_record_type] = sym_record_type, [sym_array_type] = sym_array_type, [sym_function_declaration] = sym_function_declaration, [sym_primitive_declaration] = sym_primitive_declaration, [sym_parameters] = sym_parameters, [sym_variable_declaration] = sym_variable_declaration, [sym_import_declaration] = sym_import_declaration, [aux_sym_string_literal_repeat1] = aux_sym_string_literal_repeat1, [aux_sym_function_call_repeat1] = aux_sym_function_call_repeat1, [aux_sym_sequence_expression_repeat1] = aux_sym_sequence_expression_repeat1, [aux_sym_record_expression_repeat1] = aux_sym_record_expression_repeat1, [aux_sym__declaration_chunk_repeat1] = aux_sym__declaration_chunk_repeat1, [aux_sym__declaration_chunk_repeat2] = aux_sym__declaration_chunk_repeat2, [aux_sym_record_type_repeat1] = aux_sym_record_type_repeat1, [aux_sym_parameters_repeat1] = aux_sym_parameters_repeat1, [alias_sym_field_identifier] = alias_sym_field_identifier, [alias_sym_type_identifier] = alias_sym_type_identifier, }; static const TSSymbolMetadata ts_symbol_metadata[] = { [ts_builtin_sym_end] = { .visible = false, .named = true, }, [sym_identifier] = { .visible = true, .named = true, }, [sym_nil_literal] = { .visible = true, .named = true, }, [sym_integer_literal] = { .visible = true, .named = true, }, [anon_sym_DQUOTE] = { .visible = true, .named = false, }, [aux_sym_string_literal_token1] = { .visible = false, .named = false, }, [sym_escape_sequence] = { .visible = true, .named = true, }, [anon_sym_DOT] = { .visible = true, .named = false, }, [anon_sym_LBRACK] = { .visible = true, .named = false, }, [anon_sym_RBRACK] = { .visible = true, .named = false, }, [anon_sym_LPAREN] = { .visible = true, .named = false, }, [anon_sym_COMMA] = { .visible = true, .named = false, }, [anon_sym_RPAREN] = { .visible = true, .named = false, }, [anon_sym_DASH] = { .visible = true, .named = true, }, [anon_sym_STAR] = { .visible = true, .named = true, }, [anon_sym_SLASH] = { .visible = true, .named = true, }, [anon_sym_PLUS] = { .visible = true, .named = true, }, [anon_sym_GT_EQ] = { .visible = true, .named = true, }, [anon_sym_LT_EQ] = { .visible = true, .named = true, }, [anon_sym_EQ] = { .visible = true, .named = false, }, [anon_sym_LT_GT] = { .visible = true, .named = true, }, [anon_sym_LT] = { .visible = true, .named = true, }, [anon_sym_GT] = { .visible = true, .named = true, }, [anon_sym_AMP] = { .visible = true, .named = true, }, [anon_sym_PIPE] = { .visible = true, .named = true, }, [anon_sym_SEMI] = { .visible = true, .named = false, }, [anon_sym_of] = { .visible = true, .named = false, }, [anon_sym_LBRACE] = { .visible = true, .named = false, }, [anon_sym_RBRACE] = { .visible = true, .named = false, }, [anon_sym_COLON_EQ] = { .visible = true, .named = true, }, [anon_sym_if] = { .visible = true, .named = false, }, [anon_sym_then] = { .visible = true, .named = false, }, [anon_sym_else] = { .visible = true, .named = false, }, [anon_sym_while] = { .visible = true, .named = false, }, [anon_sym_do] = { .visible = true, .named = false, }, [anon_sym_for] = { .visible = true, .named = false, }, [anon_sym_to] = { .visible = true, .named = false, }, [sym_break_expression] = { .visible = true, .named = true, }, [anon_sym_let] = { .visible = true, .named = false, }, [anon_sym_in] = { .visible = true, .named = false, }, [anon_sym_end] = { .visible = true, .named = false, }, [anon_sym_type] = { .visible = true, .named = false, }, [anon_sym_COLON] = { .visible = true, .named = false, }, [anon_sym_array] = { .visible = true, .named = false, }, [anon_sym_function] = { .visible = true, .named = false, }, [anon_sym_primitive] = { .visible = true, .named = false, }, [anon_sym_var] = { .visible = true, .named = false, }, [anon_sym_import] = { .visible = true, .named = false, }, [sym_comment] = { .visible = true, .named = true, }, [sym_source_file] = { .visible = true, .named = true, }, [sym__expr] = { .visible = false, .named = true, }, [sym_string_literal] = { .visible = true, .named = true, }, [sym__lvalue] = { .visible = false, .named = true, }, [sym_record_value] = { .visible = true, .named = true, }, [sym_array_value] = { .visible = true, .named = true, }, [sym_function_call] = { .visible = true, .named = true, }, [sym_unary_expression] = { .visible = true, .named = true, }, [sym_binary_expression] = { .visible = true, .named = true, }, [sym_sequence_expression] = { .visible = true, .named = true, }, [sym_array_expression] = { .visible = true, .named = true, }, [sym_record_expression] = { .visible = true, .named = true, }, [sym_assignment_expression] = { .visible = true, .named = true, }, [sym_if_expression] = { .visible = true, .named = true, }, [sym_while_expression] = { .visible = true, .named = true, }, [sym_for_expression] = { .visible = true, .named = true, }, [sym_let_expression] = { .visible = true, .named = true, }, [aux_sym__declaration_chunks] = { .visible = false, .named = false, }, [sym__declaration_chunk] = { .visible = false, .named = true, }, [sym_type_declaration] = { .visible = true, .named = true, }, [sym__type] = { .visible = false, .named = true, }, [sym_type_alias] = { .visible = true, .named = true, }, [sym_record_type] = { .visible = true, .named = true, }, [sym_array_type] = { .visible = true, .named = true, }, [sym_function_declaration] = { .visible = true, .named = true, }, [sym_primitive_declaration] = { .visible = true, .named = true, }, [sym_parameters] = { .visible = true, .named = true, }, [sym_variable_declaration] = { .visible = true, .named = true, }, [sym_import_declaration] = { .visible = true, .named = true, }, [aux_sym_string_literal_repeat1] = { .visible = false, .named = false, }, [aux_sym_function_call_repeat1] = { .visible = false, .named = false, }, [aux_sym_sequence_expression_repeat1] = { .visible = false, .named = false, }, [aux_sym_record_expression_repeat1] = { .visible = false, .named = false, }, [aux_sym__declaration_chunk_repeat1] = { .visible = false, .named = false, }, [aux_sym__declaration_chunk_repeat2] = { .visible = false, .named = false, }, [aux_sym_record_type_repeat1] = { .visible = false, .named = false, }, [aux_sym_parameters_repeat1] = { .visible = false, .named = false, }, [alias_sym_field_identifier] = { .visible = true, .named = true, }, [alias_sym_type_identifier] = { .visible = true, .named = true, }, }; enum { field_alternative = 1, field_arguments = 2, field_array = 3, field_body = 4, field_condition = 5, field_consequence = 6, field_declarations = 7, field_element_type = 8, field_end = 9, field_expression = 10, field_field = 11, field_file = 12, field_function = 13, field_index = 14, field_init = 15, field_left = 16, field_name = 17, field_operator = 18, field_parameters = 19, field_record = 20, field_return_type = 21, field_right = 22, field_size = 23, field_start = 24, field_type = 25, field_value = 26, }; static const char * const ts_field_names[] = { [0] = NULL, [field_alternative] = "alternative", [field_arguments] = "arguments", [field_array] = "array", [field_body] = "body", [field_condition] = "condition", [field_consequence] = "consequence", [field_declarations] = "declarations", [field_element_type] = "element_type", [field_end] = "end", [field_expression] = "expression", [field_field] = "field", [field_file] = "file", [field_function] = "function", [field_index] = "index", [field_init] = "init", [field_left] = "left", [field_name] = "name", [field_operator] = "operator", [field_parameters] = "parameters", [field_record] = "record", [field_return_type] = "return_type", [field_right] = "right", [field_size] = "size", [field_start] = "start", [field_type] = "type", [field_value] = "value", }; static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [1] = {.index = 0, .length = 2}, [2] = {.index = 2, .length = 1}, [3] = {.index = 3, .length = 1}, [4] = {.index = 4, .length = 1}, [5] = {.index = 5, .length = 2}, [6] = {.index = 7, .length = 3}, [7] = {.index = 10, .length = 2}, [8] = {.index = 12, .length = 2}, [9] = {.index = 14, .length = 2}, [10] = {.index = 16, .length = 2}, [11] = {.index = 18, .length = 2}, [12] = {.index = 20, .length = 1}, [13] = {.index = 21, .length = 1}, [15] = {.index = 22, .length = 2}, [16] = {.index = 24, .length = 2}, [17] = {.index = 26, .length = 3}, [18] = {.index = 29, .length = 2}, [19] = {.index = 31, .length = 2}, [20] = {.index = 33, .length = 3}, [21] = {.index = 36, .length = 3}, [22] = {.index = 39, .length = 3}, [23] = {.index = 42, .length = 3}, [24] = {.index = 45, .length = 3}, [25] = {.index = 48, .length = 3}, [26] = {.index = 51, .length = 1}, [27] = {.index = 52, .length = 3}, [28] = {.index = 55, .length = 5}, [29] = {.index = 60, .length = 4}, [30] = {.index = 64, .length = 2}, [31] = {.index = 66, .length = 4}, [32] = {.index = 70, .length = 4}, [33] = {.index = 64, .length = 2}, [34] = {.index = 74, .length = 4}, [35] = {.index = 78, .length = 4}, [36] = {.index = 82, .length = 2}, [37] = {.index = 74, .length = 4}, }; static const TSFieldMapEntry ts_field_map_entries[] = { [0] = {field_expression, 1}, {field_operator, 0}, [2] = {field_file, 1}, [3] = {field_function, 0}, [4] = {field_type, 0}, [5] = {field_name, 1}, {field_parameters, 2}, [7] = {field_left, 0}, {field_operator, 1}, {field_right, 2}, [10] = {field_field, 2}, {field_record, 0}, [12] = {field_left, 0}, {field_right, 2}, [14] = {field_arguments, 2}, {field_function, 0}, [16] = {field_condition, 1}, {field_consequence, 3}, [18] = {field_body, 3}, {field_condition, 1}, [20] = {field_body, 2}, [21] = {field_declarations, 1}, [22] = {field_name, 1}, {field_value, 3}, [24] = {field_array, 0}, {field_index, 2}, [26] = {field_arguments, 2}, {field_arguments, 3}, {field_function, 0}, [29] = {field_body, 2}, {field_body, 3}, [31] = {field_body, 3}, {field_declarations, 1}, [33] = {field_body, 4}, {field_name, 1}, {field_parameters, 2}, [36] = {field_name, 1}, {field_parameters, 2}, {field_return_type, 4}, [39] = {field_init, 5}, {field_size, 2}, {field_type, 0}, [42] = {field_field, 2}, {field_init, 4}, {field_type, 0}, [45] = {field_alternative, 5}, {field_condition, 1}, {field_consequence, 3}, [48] = {field_body, 3}, {field_body, 4}, {field_declarations, 1}, [51] = {field_element_type, 2}, [52] = {field_name, 1}, {field_type, 3}, {field_value, 5}, [55] = {field_field, 2}, {field_field, 5, .inherited = true}, {field_init, 4}, {field_init, 5, .inherited = true}, {field_type, 0}, [60] = {field_field, 0, .inherited = true}, {field_field, 1, .inherited = true}, {field_init, 0, .inherited = true}, {field_init, 1, .inherited = true}, [64] = {field_name, 1}, {field_type, 3}, [66] = {field_body, 6}, {field_name, 1}, {field_parameters, 2}, {field_return_type, 4}, [70] = {field_body, 7}, {field_end, 5}, {field_index, 1}, {field_start, 3}, [74] = {field_name, 1}, {field_name, 4, .inherited = true}, {field_type, 3}, {field_type, 4, .inherited = true}, [78] = {field_name, 0, .inherited = true}, {field_name, 1, .inherited = true}, {field_type, 0, .inherited = true}, {field_type, 1, .inherited = true}, [82] = {field_field, 1}, {field_init, 3}, }; static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = { [0] = {0}, [4] = { [0] = alias_sym_type_identifier, }, [6] = { [1] = anon_sym_DASH, }, [7] = { [2] = alias_sym_field_identifier, }, [14] = { [0] = alias_sym_type_identifier, }, [21] = { [4] = alias_sym_type_identifier, }, [22] = { [0] = alias_sym_type_identifier, }, [23] = { [0] = alias_sym_type_identifier, [2] = alias_sym_field_identifier, }, [26] = { [2] = alias_sym_type_identifier, }, [27] = { [3] = alias_sym_type_identifier, }, [28] = { [0] = alias_sym_type_identifier, [2] = alias_sym_field_identifier, }, [30] = { [3] = alias_sym_type_identifier, }, [31] = { [4] = alias_sym_type_identifier, }, [33] = { [1] = alias_sym_field_identifier, [3] = alias_sym_type_identifier, }, [34] = { [3] = alias_sym_type_identifier, }, [36] = { [1] = alias_sym_field_identifier, }, [37] = { [1] = alias_sym_field_identifier, [3] = alias_sym_type_identifier, }, }; static const uint16_t ts_non_terminal_alias_map[] = { 0, }; static bool ts_lex(TSLexer *lexer, TSStateId state) { START_LEXER(); eof = lexer->eof(lexer); switch (state) { case 0: if (eof) ADVANCE(9); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(7) if (lookahead == '"') ADVANCE(11); if (lookahead == '&') ADVANCE(32); if (lookahead == '(') ADVANCE(19); if (lookahead == ')') ADVANCE(21); if (lookahead == '*') ADVANCE(23); if (lookahead == '+') ADVANCE(25); if (lookahead == ',') ADVANCE(20); if (lookahead == '-') ADVANCE(22); if (lookahead == '.') ADVANCE(16); if (lookahead == '/') ADVANCE(24); if (lookahead == ':') ADVANCE(38); if (lookahead == ';') ADVANCE(34); if (lookahead == '<') ADVANCE(30); if (lookahead == '=') ADVANCE(28); if (lookahead == '>') ADVANCE(31); if (lookahead == '[') ADVANCE(17); if (lookahead == '\\') ADVANCE(4); if (lookahead == ']') ADVANCE(18); if (lookahead == '{') ADVANCE(35); if (lookahead == '|') ADVANCE(33); if (lookahead == '}') ADVANCE(36); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(10); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(14); END_STATE(); case 1: if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') ADVANCE(12); if (lookahead == '"') ADVANCE(11); if (lookahead == '\\') ADVANCE(4); if (lookahead != 0) ADVANCE(13); END_STATE(); case 2: if (('0' <= lookahead && lookahead <= '7')) ADVANCE(15); END_STATE(); case 3: if (('0' <= lookahead && lookahead <= '7')) ADVANCE(2); END_STATE(); case 4: if (lookahead == '"' || lookahead == '\\' || lookahead == 'a' || lookahead == 'b' || lookahead == 'f' || lookahead == 'n' || lookahead == 'r' || lookahead == 't' || lookahead == 'v') ADVANCE(15); if (lookahead == 'x') ADVANCE(6); if (('0' <= lookahead && lookahead <= '3')) ADVANCE(3); END_STATE(); case 5: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(15); END_STATE(); case 6: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(5); END_STATE(); case 7: if (eof) ADVANCE(9); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(7) if (lookahead == '"') ADVANCE(11); if (lookahead == '&') ADVANCE(32); if (lookahead == '(') ADVANCE(19); if (lookahead == ')') ADVANCE(21); if (lookahead == '*') ADVANCE(23); if (lookahead == '+') ADVANCE(25); if (lookahead == ',') ADVANCE(20); if (lookahead == '-') ADVANCE(22); if (lookahead == '.') ADVANCE(16); if (lookahead == '/') ADVANCE(24); if (lookahead == ':') ADVANCE(38); if (lookahead == ';') ADVANCE(34); if (lookahead == '<') ADVANCE(30); if (lookahead == '=') ADVANCE(28); if (lookahead == '>') ADVANCE(31); if (lookahead == '[') ADVANCE(17); if (lookahead == ']') ADVANCE(18); if (lookahead == '{') ADVANCE(35); if (lookahead == '|') ADVANCE(33); if (lookahead == '}') ADVANCE(36); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(10); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(14); END_STATE(); case 8: if (eof) ADVANCE(9); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(8) if (lookahead == '&') ADVANCE(32); if (lookahead == '(') ADVANCE(19); if (lookahead == ')') ADVANCE(21); if (lookahead == '*') ADVANCE(23); if (lookahead == '+') ADVANCE(25); if (lookahead == ',') ADVANCE(20); if (lookahead == '-') ADVANCE(22); if (lookahead == '.') ADVANCE(16); if (lookahead == '/') ADVANCE(24); if (lookahead == ':') ADVANCE(38); if (lookahead == ';') ADVANCE(34); if (lookahead == '<') ADVANCE(30); if (lookahead == '=') ADVANCE(28); if (lookahead == '>') ADVANCE(31); if (lookahead == '[') ADVANCE(17); if (lookahead == ']') ADVANCE(18); if (lookahead == '{') ADVANCE(35); if (lookahead == '|') ADVANCE(33); if (lookahead == '}') ADVANCE(36); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(14); END_STATE(); case 9: ACCEPT_TOKEN(ts_builtin_sym_end); END_STATE(); case 10: ACCEPT_TOKEN(sym_integer_literal); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(10); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(14); END_STATE(); case 11: ACCEPT_TOKEN(anon_sym_DQUOTE); END_STATE(); case 12: ACCEPT_TOKEN(aux_sym_string_literal_token1); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') ADVANCE(12); if (lookahead != 0 && lookahead != '"' && lookahead != '\\') ADVANCE(13); END_STATE(); case 13: ACCEPT_TOKEN(aux_sym_string_literal_token1); if (lookahead != 0 && lookahead != '"' && lookahead != '\\') ADVANCE(13); END_STATE(); case 14: ACCEPT_TOKEN(sym_identifier); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(14); END_STATE(); case 15: ACCEPT_TOKEN(sym_escape_sequence); END_STATE(); case 16: ACCEPT_TOKEN(anon_sym_DOT); END_STATE(); case 17: ACCEPT_TOKEN(anon_sym_LBRACK); END_STATE(); case 18: ACCEPT_TOKEN(anon_sym_RBRACK); END_STATE(); case 19: ACCEPT_TOKEN(anon_sym_LPAREN); END_STATE(); case 20: ACCEPT_TOKEN(anon_sym_COMMA); END_STATE(); case 21: ACCEPT_TOKEN(anon_sym_RPAREN); END_STATE(); case 22: ACCEPT_TOKEN(anon_sym_DASH); END_STATE(); case 23: ACCEPT_TOKEN(anon_sym_STAR); END_STATE(); case 24: ACCEPT_TOKEN(anon_sym_SLASH); END_STATE(); case 25: ACCEPT_TOKEN(anon_sym_PLUS); END_STATE(); case 26: ACCEPT_TOKEN(anon_sym_GT_EQ); END_STATE(); case 27: ACCEPT_TOKEN(anon_sym_LT_EQ); END_STATE(); case 28: ACCEPT_TOKEN(anon_sym_EQ); END_STATE(); case 29: ACCEPT_TOKEN(anon_sym_LT_GT); END_STATE(); case 30: ACCEPT_TOKEN(anon_sym_LT); if (lookahead == '=') ADVANCE(27); if (lookahead == '>') ADVANCE(29); END_STATE(); case 31: ACCEPT_TOKEN(anon_sym_GT); if (lookahead == '=') ADVANCE(26); END_STATE(); case 32: ACCEPT_TOKEN(anon_sym_AMP); END_STATE(); case 33: ACCEPT_TOKEN(anon_sym_PIPE); END_STATE(); case 34: ACCEPT_TOKEN(anon_sym_SEMI); END_STATE(); case 35: ACCEPT_TOKEN(anon_sym_LBRACE); END_STATE(); case 36: ACCEPT_TOKEN(anon_sym_RBRACE); END_STATE(); case 37: ACCEPT_TOKEN(anon_sym_COLON_EQ); END_STATE(); case 38: ACCEPT_TOKEN(anon_sym_COLON); if (lookahead == '=') ADVANCE(37); 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 == '\r' || lookahead == ' ') SKIP(0) if (lookahead == 'a') ADVANCE(1); if (lookahead == 'b') ADVANCE(2); if (lookahead == 'd') ADVANCE(3); if (lookahead == 'e') ADVANCE(4); if (lookahead == 'f') ADVANCE(5); if (lookahead == 'i') ADVANCE(6); if (lookahead == 'l') ADVANCE(7); if (lookahead == 'n') ADVANCE(8); if (lookahead == 'o') ADVANCE(9); if (lookahead == 'p') ADVANCE(10); if (lookahead == 't') ADVANCE(11); if (lookahead == 'v') ADVANCE(12); if (lookahead == 'w') ADVANCE(13); END_STATE(); case 1: if (lookahead == 'r') ADVANCE(14); END_STATE(); case 2: if (lookahead == 'r') ADVANCE(15); END_STATE(); case 3: if (lookahead == 'o') ADVANCE(16); END_STATE(); case 4: if (lookahead == 'l') ADVANCE(17); if (lookahead == 'n') ADVANCE(18); END_STATE(); case 5: if (lookahead == 'o') ADVANCE(19); if (lookahead == 'u') ADVANCE(20); END_STATE(); case 6: if (lookahead == 'f') ADVANCE(21); if (lookahead == 'm') ADVANCE(22); if (lookahead == 'n') ADVANCE(23); END_STATE(); case 7: if (lookahead == 'e') ADVANCE(24); END_STATE(); case 8: if (lookahead == 'i') ADVANCE(25); END_STATE(); case 9: if (lookahead == 'f') ADVANCE(26); END_STATE(); case 10: if (lookahead == 'r') ADVANCE(27); END_STATE(); case 11: if (lookahead == 'h') ADVANCE(28); if (lookahead == 'o') ADVANCE(29); if (lookahead == 'y') ADVANCE(30); END_STATE(); case 12: if (lookahead == 'a') ADVANCE(31); END_STATE(); case 13: if (lookahead == 'h') ADVANCE(32); END_STATE(); case 14: if (lookahead == 'r') ADVANCE(33); END_STATE(); case 15: if (lookahead == 'e') ADVANCE(34); END_STATE(); case 16: ACCEPT_TOKEN(anon_sym_do); END_STATE(); case 17: if (lookahead == 's') ADVANCE(35); END_STATE(); case 18: if (lookahead == 'd') ADVANCE(36); END_STATE(); case 19: if (lookahead == 'r') ADVANCE(37); END_STATE(); case 20: if (lookahead == 'n') ADVANCE(38); END_STATE(); case 21: ACCEPT_TOKEN(anon_sym_if); END_STATE(); case 22: if (lookahead == 'p') ADVANCE(39); END_STATE(); case 23: ACCEPT_TOKEN(anon_sym_in); END_STATE(); case 24: if (lookahead == 't') ADVANCE(40); END_STATE(); case 25: if (lookahead == 'l') ADVANCE(41); END_STATE(); case 26: ACCEPT_TOKEN(anon_sym_of); END_STATE(); case 27: if (lookahead == 'i') ADVANCE(42); END_STATE(); case 28: if (lookahead == 'e') ADVANCE(43); END_STATE(); case 29: ACCEPT_TOKEN(anon_sym_to); END_STATE(); case 30: if (lookahead == 'p') ADVANCE(44); END_STATE(); case 31: if (lookahead == 'r') ADVANCE(45); END_STATE(); case 32: if (lookahead == 'i') ADVANCE(46); END_STATE(); case 33: if (lookahead == 'a') ADVANCE(47); END_STATE(); case 34: if (lookahead == 'a') ADVANCE(48); END_STATE(); case 35: if (lookahead == 'e') ADVANCE(49); END_STATE(); case 36: ACCEPT_TOKEN(anon_sym_end); END_STATE(); case 37: ACCEPT_TOKEN(anon_sym_for); END_STATE(); case 38: if (lookahead == 'c') ADVANCE(50); END_STATE(); case 39: if (lookahead == 'o') ADVANCE(51); END_STATE(); case 40: ACCEPT_TOKEN(anon_sym_let); END_STATE(); case 41: ACCEPT_TOKEN(sym_nil_literal); END_STATE(); case 42: if (lookahead == 'm') ADVANCE(52); END_STATE(); case 43: if (lookahead == 'n') ADVANCE(53); END_STATE(); case 44: if (lookahead == 'e') ADVANCE(54); END_STATE(); case 45: ACCEPT_TOKEN(anon_sym_var); END_STATE(); case 46: if (lookahead == 'l') ADVANCE(55); END_STATE(); case 47: if (lookahead == 'y') ADVANCE(56); END_STATE(); case 48: if (lookahead == 'k') ADVANCE(57); END_STATE(); case 49: ACCEPT_TOKEN(anon_sym_else); END_STATE(); case 50: if (lookahead == 't') ADVANCE(58); END_STATE(); case 51: if (lookahead == 'r') ADVANCE(59); END_STATE(); case 52: if (lookahead == 'i') ADVANCE(60); END_STATE(); case 53: ACCEPT_TOKEN(anon_sym_then); END_STATE(); case 54: ACCEPT_TOKEN(anon_sym_type); END_STATE(); case 55: if (lookahead == 'e') ADVANCE(61); END_STATE(); case 56: ACCEPT_TOKEN(anon_sym_array); END_STATE(); case 57: ACCEPT_TOKEN(sym_break_expression); END_STATE(); case 58: if (lookahead == 'i') ADVANCE(62); END_STATE(); case 59: if (lookahead == 't') ADVANCE(63); END_STATE(); case 60: if (lookahead == 't') ADVANCE(64); END_STATE(); case 61: ACCEPT_TOKEN(anon_sym_while); END_STATE(); case 62: if (lookahead == 'o') ADVANCE(65); END_STATE(); case 63: ACCEPT_TOKEN(anon_sym_import); END_STATE(); case 64: if (lookahead == 'i') ADVANCE(66); END_STATE(); case 65: if (lookahead == 'n') ADVANCE(67); END_STATE(); case 66: if (lookahead == 'v') ADVANCE(68); END_STATE(); case 67: ACCEPT_TOKEN(anon_sym_function); END_STATE(); case 68: if (lookahead == 'e') ADVANCE(69); END_STATE(); case 69: ACCEPT_TOKEN(anon_sym_primitive); END_STATE(); default: return false; } } static const TSLexMode ts_lex_modes[STATE_COUNT] = { [0] = {.lex_state = 0, .external_lex_state = 1}, [1] = {.lex_state = 0, .external_lex_state = 1}, [2] = {.lex_state = 8, .external_lex_state = 1}, [3] = {.lex_state = 8, .external_lex_state = 1}, [4] = {.lex_state = 8, .external_lex_state = 1}, [5] = {.lex_state = 8, .external_lex_state = 1}, [6] = {.lex_state = 8, .external_lex_state = 1}, [7] = {.lex_state = 8, .external_lex_state = 1}, [8] = {.lex_state = 8, .external_lex_state = 1}, [9] = {.lex_state = 8, .external_lex_state = 1}, [10] = {.lex_state = 8, .external_lex_state = 1}, [11] = {.lex_state = 8, .external_lex_state = 1}, [12] = {.lex_state = 8, .external_lex_state = 1}, [13] = {.lex_state = 8, .external_lex_state = 1}, [14] = {.lex_state = 8, .external_lex_state = 1}, [15] = {.lex_state = 8, .external_lex_state = 1}, [16] = {.lex_state = 8, .external_lex_state = 1}, [17] = {.lex_state = 8, .external_lex_state = 1}, [18] = {.lex_state = 8, .external_lex_state = 1}, [19] = {.lex_state = 8, .external_lex_state = 1}, [20] = {.lex_state = 8, .external_lex_state = 1}, [21] = {.lex_state = 8, .external_lex_state = 1}, [22] = {.lex_state = 8, .external_lex_state = 1}, [23] = {.lex_state = 8, .external_lex_state = 1}, [24] = {.lex_state = 8, .external_lex_state = 1}, [25] = {.lex_state = 8, .external_lex_state = 1}, [26] = {.lex_state = 8, .external_lex_state = 1}, [27] = {.lex_state = 8, .external_lex_state = 1}, [28] = {.lex_state = 8, .external_lex_state = 1}, [29] = {.lex_state = 8, .external_lex_state = 1}, [30] = {.lex_state = 8, .external_lex_state = 1}, [31] = {.lex_state = 8, .external_lex_state = 1}, [32] = {.lex_state = 8, .external_lex_state = 1}, [33] = {.lex_state = 8, .external_lex_state = 1}, [34] = {.lex_state = 8, .external_lex_state = 1}, [35] = {.lex_state = 0, .external_lex_state = 1}, [36] = {.lex_state = 0, .external_lex_state = 1}, [37] = {.lex_state = 0, .external_lex_state = 1}, [38] = {.lex_state = 0, .external_lex_state = 1}, [39] = {.lex_state = 0, .external_lex_state = 1}, [40] = {.lex_state = 0, .external_lex_state = 1}, [41] = {.lex_state = 0, .external_lex_state = 1}, [42] = {.lex_state = 0, .external_lex_state = 1}, [43] = {.lex_state = 0, .external_lex_state = 1}, [44] = {.lex_state = 0, .external_lex_state = 1}, [45] = {.lex_state = 0, .external_lex_state = 1}, [46] = {.lex_state = 0, .external_lex_state = 1}, [47] = {.lex_state = 0, .external_lex_state = 1}, [48] = {.lex_state = 0, .external_lex_state = 1}, [49] = {.lex_state = 0, .external_lex_state = 1}, [50] = {.lex_state = 0, .external_lex_state = 1}, [51] = {.lex_state = 0, .external_lex_state = 1}, [52] = {.lex_state = 0, .external_lex_state = 1}, [53] = {.lex_state = 0, .external_lex_state = 1}, [54] = {.lex_state = 0, .external_lex_state = 1}, [55] = {.lex_state = 0, .external_lex_state = 1}, [56] = {.lex_state = 0, .external_lex_state = 1}, [57] = {.lex_state = 0, .external_lex_state = 1}, [58] = {.lex_state = 0, .external_lex_state = 1}, [59] = {.lex_state = 0, .external_lex_state = 1}, [60] = {.lex_state = 0, .external_lex_state = 1}, [61] = {.lex_state = 0, .external_lex_state = 1}, [62] = {.lex_state = 0, .external_lex_state = 1}, [63] = {.lex_state = 0, .external_lex_state = 1}, [64] = {.lex_state = 0, .external_lex_state = 1}, [65] = {.lex_state = 8, .external_lex_state = 1}, [66] = {.lex_state = 8, .external_lex_state = 1}, [67] = {.lex_state = 8, .external_lex_state = 1}, [68] = {.lex_state = 8, .external_lex_state = 1}, [69] = {.lex_state = 8, .external_lex_state = 1}, [70] = {.lex_state = 0, .external_lex_state = 1}, [71] = {.lex_state = 8, .external_lex_state = 1}, [72] = {.lex_state = 0, .external_lex_state = 1}, [73] = {.lex_state = 8, .external_lex_state = 1}, [74] = {.lex_state = 8, .external_lex_state = 1}, [75] = {.lex_state = 8, .external_lex_state = 1}, [76] = {.lex_state = 8, .external_lex_state = 1}, [77] = {.lex_state = 0, .external_lex_state = 1}, [78] = {.lex_state = 8, .external_lex_state = 1}, [79] = {.lex_state = 0, .external_lex_state = 1}, [80] = {.lex_state = 0, .external_lex_state = 1}, [81] = {.lex_state = 0, .external_lex_state = 1}, [82] = {.lex_state = 0, .external_lex_state = 1}, [83] = {.lex_state = 8, .external_lex_state = 1}, [84] = {.lex_state = 0, .external_lex_state = 1}, [85] = {.lex_state = 8, .external_lex_state = 1}, [86] = {.lex_state = 8, .external_lex_state = 1}, [87] = {.lex_state = 8, .external_lex_state = 1}, [88] = {.lex_state = 8, .external_lex_state = 1}, [89] = {.lex_state = 8, .external_lex_state = 1}, [90] = {.lex_state = 8, .external_lex_state = 1}, [91] = {.lex_state = 8, .external_lex_state = 1}, [92] = {.lex_state = 8, .external_lex_state = 1}, [93] = {.lex_state = 8, .external_lex_state = 1}, [94] = {.lex_state = 8, .external_lex_state = 1}, [95] = {.lex_state = 8, .external_lex_state = 1}, [96] = {.lex_state = 8, .external_lex_state = 1}, [97] = {.lex_state = 8, .external_lex_state = 1}, [98] = {.lex_state = 8, .external_lex_state = 1}, [99] = {.lex_state = 8, .external_lex_state = 1}, [100] = {.lex_state = 8, .external_lex_state = 1}, [101] = {.lex_state = 8, .external_lex_state = 1}, [102] = {.lex_state = 8, .external_lex_state = 1}, [103] = {.lex_state = 1, .external_lex_state = 1}, [104] = {.lex_state = 8, .external_lex_state = 1}, [105] = {.lex_state = 1, .external_lex_state = 1}, [106] = {.lex_state = 1, .external_lex_state = 1}, [107] = {.lex_state = 0, .external_lex_state = 1}, [108] = {.lex_state = 8, .external_lex_state = 1}, [109] = {.lex_state = 0, .external_lex_state = 1}, [110] = {.lex_state = 8, .external_lex_state = 1}, [111] = {.lex_state = 0, .external_lex_state = 1}, [112] = {.lex_state = 0, .external_lex_state = 1}, [113] = {.lex_state = 0, .external_lex_state = 1}, [114] = {.lex_state = 0, .external_lex_state = 1}, [115] = {.lex_state = 0, .external_lex_state = 1}, [116] = {.lex_state = 0, .external_lex_state = 1}, [117] = {.lex_state = 0, .external_lex_state = 1}, [118] = {.lex_state = 0, .external_lex_state = 1}, [119] = {.lex_state = 0, .external_lex_state = 1}, [120] = {.lex_state = 8, .external_lex_state = 1}, [121] = {.lex_state = 0, .external_lex_state = 1}, [122] = {.lex_state = 0, .external_lex_state = 1}, [123] = {.lex_state = 0, .external_lex_state = 1}, [124] = {.lex_state = 0, .external_lex_state = 1}, [125] = {.lex_state = 0, .external_lex_state = 1}, [126] = {.lex_state = 0, .external_lex_state = 1}, [127] = {.lex_state = 0, .external_lex_state = 1}, [128] = {.lex_state = 8, .external_lex_state = 1}, [129] = {.lex_state = 8, .external_lex_state = 1}, [130] = {.lex_state = 8, .external_lex_state = 1}, [131] = {.lex_state = 8, .external_lex_state = 1}, [132] = {.lex_state = 0, .external_lex_state = 1}, [133] = {.lex_state = 8, .external_lex_state = 1}, [134] = {.lex_state = 8, .external_lex_state = 1}, [135] = {.lex_state = 0, .external_lex_state = 1}, [136] = {.lex_state = 0, .external_lex_state = 1}, [137] = {.lex_state = 0, .external_lex_state = 1}, [138] = {.lex_state = 0, .external_lex_state = 1}, [139] = {.lex_state = 8, .external_lex_state = 1}, [140] = {.lex_state = 8, .external_lex_state = 1}, [141] = {.lex_state = 8, .external_lex_state = 1}, [142] = {.lex_state = 0, .external_lex_state = 1}, [143] = {.lex_state = 0, .external_lex_state = 1}, [144] = {.lex_state = 8, .external_lex_state = 1}, [145] = {.lex_state = 8, .external_lex_state = 1}, [146] = {.lex_state = 8, .external_lex_state = 1}, [147] = {.lex_state = 8, .external_lex_state = 1}, [148] = {.lex_state = 0, .external_lex_state = 1}, [149] = {.lex_state = 0, .external_lex_state = 1}, [150] = {.lex_state = 0, .external_lex_state = 1}, [151] = {.lex_state = 8, .external_lex_state = 1}, [152] = {.lex_state = 8, .external_lex_state = 1}, [153] = {.lex_state = 0, .external_lex_state = 1}, [154] = {.lex_state = 8, .external_lex_state = 1}, [155] = {.lex_state = 8, .external_lex_state = 1}, [156] = {.lex_state = 8, .external_lex_state = 1}, [157] = {.lex_state = 8, .external_lex_state = 1}, [158] = {.lex_state = 8, .external_lex_state = 1}, [159] = {.lex_state = 8, .external_lex_state = 1}, }; enum { ts_external_token_comment = 0, }; static const TSSymbol ts_external_scanner_symbol_map[EXTERNAL_TOKEN_COUNT] = { [ts_external_token_comment] = sym_comment, }; static const bool ts_external_scanner_states[2][EXTERNAL_TOKEN_COUNT] = { [1] = { [ts_external_token_comment] = true, }, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [0] = { [ts_builtin_sym_end] = ACTIONS(1), [sym_identifier] = ACTIONS(1), [sym_nil_literal] = ACTIONS(1), [sym_integer_literal] = ACTIONS(1), [anon_sym_DQUOTE] = ACTIONS(1), [sym_escape_sequence] = ACTIONS(1), [anon_sym_DOT] = ACTIONS(1), [anon_sym_LBRACK] = ACTIONS(1), [anon_sym_RBRACK] = ACTIONS(1), [anon_sym_LPAREN] = ACTIONS(1), [anon_sym_COMMA] = ACTIONS(1), [anon_sym_RPAREN] = ACTIONS(1), [anon_sym_DASH] = ACTIONS(1), [anon_sym_STAR] = ACTIONS(1), [anon_sym_SLASH] = ACTIONS(1), [anon_sym_PLUS] = ACTIONS(1), [anon_sym_GT_EQ] = ACTIONS(1), [anon_sym_LT_EQ] = ACTIONS(1), [anon_sym_EQ] = ACTIONS(1), [anon_sym_LT_GT] = ACTIONS(1), [anon_sym_LT] = ACTIONS(1), [anon_sym_GT] = ACTIONS(1), [anon_sym_AMP] = ACTIONS(1), [anon_sym_PIPE] = ACTIONS(1), [anon_sym_SEMI] = ACTIONS(1), [anon_sym_of] = ACTIONS(1), [anon_sym_LBRACE] = ACTIONS(1), [anon_sym_RBRACE] = ACTIONS(1), [anon_sym_COLON_EQ] = ACTIONS(1), [anon_sym_if] = ACTIONS(1), [anon_sym_then] = ACTIONS(1), [anon_sym_else] = ACTIONS(1), [anon_sym_while] = ACTIONS(1), [anon_sym_do] = ACTIONS(1), [anon_sym_for] = ACTIONS(1), [anon_sym_to] = ACTIONS(1), [sym_break_expression] = ACTIONS(1), [anon_sym_let] = ACTIONS(1), [anon_sym_in] = ACTIONS(1), [anon_sym_end] = ACTIONS(1), [anon_sym_type] = ACTIONS(1), [anon_sym_COLON] = ACTIONS(1), [anon_sym_array] = ACTIONS(1), [anon_sym_function] = ACTIONS(1), [anon_sym_primitive] = ACTIONS(1), [anon_sym_var] = ACTIONS(1), [anon_sym_import] = ACTIONS(1), [sym_comment] = ACTIONS(3), }, [1] = { [sym_source_file] = STATE(142), [sym__expr] = STATE(82), [sym_string_literal] = STATE(82), [sym__lvalue] = STATE(5), [sym_record_value] = STATE(5), [sym_array_value] = STATE(5), [sym_function_call] = STATE(82), [sym_unary_expression] = STATE(82), [sym_binary_expression] = STATE(82), [sym_sequence_expression] = STATE(82), [sym_array_expression] = STATE(82), [sym_record_expression] = STATE(82), [sym_assignment_expression] = STATE(82), [sym_if_expression] = STATE(82), [sym_while_expression] = STATE(82), [sym_for_expression] = STATE(82), [sym_let_expression] = STATE(82), [aux_sym__declaration_chunks] = STATE(75), [sym__declaration_chunk] = STATE(75), [sym_type_declaration] = STATE(75), [sym_function_declaration] = STATE(75), [sym_primitive_declaration] = STATE(75), [sym_variable_declaration] = STATE(75), [sym_import_declaration] = STATE(75), [aux_sym__declaration_chunk_repeat1] = STATE(75), [aux_sym__declaration_chunk_repeat2] = STATE(75), [ts_builtin_sym_end] = ACTIONS(5), [sym_identifier] = ACTIONS(7), [sym_nil_literal] = ACTIONS(9), [sym_integer_literal] = ACTIONS(9), [anon_sym_DQUOTE] = ACTIONS(11), [anon_sym_LPAREN] = ACTIONS(13), [anon_sym_DASH] = ACTIONS(15), [anon_sym_if] = ACTIONS(17), [anon_sym_while] = ACTIONS(19), [anon_sym_for] = ACTIONS(21), [sym_break_expression] = ACTIONS(9), [anon_sym_let] = ACTIONS(23), [anon_sym_type] = ACTIONS(25), [anon_sym_function] = ACTIONS(27), [anon_sym_primitive] = ACTIONS(29), [anon_sym_var] = ACTIONS(31), [anon_sym_import] = ACTIONS(33), [sym_comment] = ACTIONS(3), }, }; static const uint16_t ts_small_parse_table[] = { [0] = 6, ACTIONS(3), 1, sym_comment, ACTIONS(37), 1, anon_sym_LBRACK, ACTIONS(40), 1, anon_sym_LPAREN, ACTIONS(44), 1, anon_sym_LBRACE, ACTIONS(42), 2, anon_sym_LT, anon_sym_GT, ACTIONS(35), 29, ts_builtin_sym_end, anon_sym_DOT, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_DASH, anon_sym_STAR, anon_sym_SLASH, anon_sym_PLUS, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, anon_sym_AMP, anon_sym_PIPE, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_COLON_EQ, anon_sym_then, anon_sym_else, anon_sym_do, anon_sym_to, anon_sym_in, anon_sym_end, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [48] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(48), 2, anon_sym_LT, anon_sym_GT, ACTIONS(46), 30, ts_builtin_sym_end, anon_sym_DOT, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_DASH, anon_sym_STAR, anon_sym_SLASH, anon_sym_PLUS, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, anon_sym_AMP, anon_sym_PIPE, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_COLON_EQ, anon_sym_then, anon_sym_else, anon_sym_do, anon_sym_to, anon_sym_in, anon_sym_end, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [88] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(52), 2, anon_sym_LT, anon_sym_GT, ACTIONS(50), 30, ts_builtin_sym_end, anon_sym_DOT, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_DASH, anon_sym_STAR, anon_sym_SLASH, anon_sym_PLUS, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, anon_sym_AMP, anon_sym_PIPE, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_COLON_EQ, anon_sym_then, anon_sym_else, anon_sym_do, anon_sym_to, anon_sym_in, anon_sym_end, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [128] = 6, ACTIONS(3), 1, sym_comment, ACTIONS(56), 1, anon_sym_DOT, ACTIONS(58), 1, anon_sym_LBRACK, ACTIONS(62), 1, anon_sym_COLON_EQ, ACTIONS(60), 2, anon_sym_LT, anon_sym_GT, ACTIONS(54), 27, ts_builtin_sym_end, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_DASH, anon_sym_STAR, anon_sym_SLASH, anon_sym_PLUS, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, anon_sym_AMP, anon_sym_PIPE, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_then, anon_sym_else, anon_sym_do, anon_sym_to, anon_sym_in, anon_sym_end, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [174] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(74), 1, anon_sym_AMP, ACTIONS(76), 1, anon_sym_PIPE, ACTIONS(66), 2, anon_sym_DASH, anon_sym_PLUS, ACTIONS(68), 2, anon_sym_STAR, anon_sym_SLASH, ACTIONS(72), 2, anon_sym_LT, anon_sym_GT, ACTIONS(70), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, ACTIONS(64), 17, ts_builtin_sym_end, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_then, anon_sym_else, anon_sym_do, anon_sym_to, anon_sym_in, anon_sym_end, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [221] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(80), 2, anon_sym_LT, anon_sym_GT, ACTIONS(78), 27, ts_builtin_sym_end, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_DASH, anon_sym_STAR, anon_sym_SLASH, anon_sym_PLUS, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, anon_sym_AMP, anon_sym_PIPE, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_then, anon_sym_else, anon_sym_do, anon_sym_to, anon_sym_in, anon_sym_end, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [258] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(74), 1, anon_sym_AMP, ACTIONS(76), 1, anon_sym_PIPE, ACTIONS(66), 2, anon_sym_DASH, anon_sym_PLUS, ACTIONS(68), 2, anon_sym_STAR, anon_sym_SLASH, ACTIONS(72), 2, anon_sym_LT, anon_sym_GT, ACTIONS(70), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, ACTIONS(82), 17, ts_builtin_sym_end, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_then, anon_sym_else, anon_sym_do, anon_sym_to, anon_sym_in, anon_sym_end, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [305] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(86), 2, anon_sym_LT, anon_sym_GT, ACTIONS(84), 27, ts_builtin_sym_end, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_DASH, anon_sym_STAR, anon_sym_SLASH, anon_sym_PLUS, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, anon_sym_AMP, anon_sym_PIPE, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_then, anon_sym_else, anon_sym_do, anon_sym_to, anon_sym_in, anon_sym_end, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [342] = 5, ACTIONS(3), 1, sym_comment, ACTIONS(66), 2, anon_sym_DASH, anon_sym_PLUS, ACTIONS(68), 2, anon_sym_STAR, anon_sym_SLASH, ACTIONS(90), 2, anon_sym_LT, anon_sym_GT, ACTIONS(88), 23, ts_builtin_sym_end, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, anon_sym_AMP, anon_sym_PIPE, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_then, anon_sym_else, anon_sym_do, anon_sym_to, anon_sym_in, anon_sym_end, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [383] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(94), 2, anon_sym_LT, anon_sym_GT, ACTIONS(92), 27, ts_builtin_sym_end, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_DASH, anon_sym_STAR, anon_sym_SLASH, anon_sym_PLUS, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, anon_sym_AMP, anon_sym_PIPE, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_then, anon_sym_else, anon_sym_do, anon_sym_to, anon_sym_in, anon_sym_end, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [420] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(98), 2, anon_sym_LT, anon_sym_GT, ACTIONS(96), 27, ts_builtin_sym_end, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_DASH, anon_sym_STAR, anon_sym_SLASH, anon_sym_PLUS, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, anon_sym_AMP, anon_sym_PIPE, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_then, anon_sym_else, anon_sym_do, anon_sym_to, anon_sym_in, anon_sym_end, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [457] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(102), 2, anon_sym_LT, anon_sym_GT, ACTIONS(100), 27, ts_builtin_sym_end, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_DASH, anon_sym_STAR, anon_sym_SLASH, anon_sym_PLUS, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, anon_sym_AMP, anon_sym_PIPE, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_then, anon_sym_else, anon_sym_do, anon_sym_to, anon_sym_in, anon_sym_end, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [494] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(106), 2, anon_sym_LT, anon_sym_GT, ACTIONS(104), 27, ts_builtin_sym_end, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_DASH, anon_sym_STAR, anon_sym_SLASH, anon_sym_PLUS, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, anon_sym_AMP, anon_sym_PIPE, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_then, anon_sym_else, anon_sym_do, anon_sym_to, anon_sym_in, anon_sym_end, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [531] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(110), 2, anon_sym_LT, anon_sym_GT, ACTIONS(108), 27, ts_builtin_sym_end, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_DASH, anon_sym_STAR, anon_sym_SLASH, anon_sym_PLUS, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, anon_sym_AMP, anon_sym_PIPE, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_then, anon_sym_else, anon_sym_do, anon_sym_to, anon_sym_in, anon_sym_end, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [568] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(74), 1, anon_sym_AMP, ACTIONS(76), 1, anon_sym_PIPE, ACTIONS(66), 2, anon_sym_DASH, anon_sym_PLUS, ACTIONS(68), 2, anon_sym_STAR, anon_sym_SLASH, ACTIONS(72), 2, anon_sym_LT, anon_sym_GT, ACTIONS(70), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, ACTIONS(112), 17, ts_builtin_sym_end, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_then, anon_sym_else, anon_sym_do, anon_sym_to, anon_sym_in, anon_sym_end, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [615] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(74), 1, anon_sym_AMP, ACTIONS(76), 1, anon_sym_PIPE, ACTIONS(66), 2, anon_sym_DASH, anon_sym_PLUS, ACTIONS(68), 2, anon_sym_STAR, anon_sym_SLASH, ACTIONS(72), 2, anon_sym_LT, anon_sym_GT, ACTIONS(70), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, ACTIONS(114), 17, ts_builtin_sym_end, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_then, anon_sym_else, anon_sym_do, anon_sym_to, anon_sym_in, anon_sym_end, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [662] = 9, ACTIONS(3), 1, sym_comment, ACTIONS(74), 1, anon_sym_AMP, ACTIONS(76), 1, anon_sym_PIPE, ACTIONS(118), 1, anon_sym_else, ACTIONS(66), 2, anon_sym_DASH, anon_sym_PLUS, ACTIONS(68), 2, anon_sym_STAR, anon_sym_SLASH, ACTIONS(72), 2, anon_sym_LT, anon_sym_GT, ACTIONS(70), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, ACTIONS(116), 16, ts_builtin_sym_end, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_then, anon_sym_do, anon_sym_to, anon_sym_in, anon_sym_end, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [711] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(122), 2, anon_sym_LT, anon_sym_GT, ACTIONS(120), 27, ts_builtin_sym_end, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_DASH, anon_sym_STAR, anon_sym_SLASH, anon_sym_PLUS, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, anon_sym_AMP, anon_sym_PIPE, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_then, anon_sym_else, anon_sym_do, anon_sym_to, anon_sym_in, anon_sym_end, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [748] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(126), 2, anon_sym_LT, anon_sym_GT, ACTIONS(124), 27, ts_builtin_sym_end, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_DASH, anon_sym_STAR, anon_sym_SLASH, anon_sym_PLUS, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, anon_sym_AMP, anon_sym_PIPE, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_then, anon_sym_else, anon_sym_do, anon_sym_to, anon_sym_in, anon_sym_end, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [785] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(130), 2, anon_sym_LT, anon_sym_GT, ACTIONS(128), 27, ts_builtin_sym_end, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_DASH, anon_sym_STAR, anon_sym_SLASH, anon_sym_PLUS, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, anon_sym_AMP, anon_sym_PIPE, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_then, anon_sym_else, anon_sym_do, anon_sym_to, anon_sym_in, anon_sym_end, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [822] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(134), 2, anon_sym_LT, anon_sym_GT, ACTIONS(132), 27, ts_builtin_sym_end, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_DASH, anon_sym_STAR, anon_sym_SLASH, anon_sym_PLUS, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, anon_sym_AMP, anon_sym_PIPE, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_then, anon_sym_else, anon_sym_do, anon_sym_to, anon_sym_in, anon_sym_end, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [859] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(138), 2, anon_sym_LT, anon_sym_GT, ACTIONS(136), 27, ts_builtin_sym_end, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_DASH, anon_sym_STAR, anon_sym_SLASH, anon_sym_PLUS, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, anon_sym_AMP, anon_sym_PIPE, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_then, anon_sym_else, anon_sym_do, anon_sym_to, anon_sym_in, anon_sym_end, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [896] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(142), 2, anon_sym_LT, anon_sym_GT, ACTIONS(140), 27, ts_builtin_sym_end, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_DASH, anon_sym_STAR, anon_sym_SLASH, anon_sym_PLUS, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, anon_sym_AMP, anon_sym_PIPE, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_then, anon_sym_else, anon_sym_do, anon_sym_to, anon_sym_in, anon_sym_end, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [933] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(146), 2, anon_sym_LT, anon_sym_GT, ACTIONS(144), 27, ts_builtin_sym_end, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_DASH, anon_sym_STAR, anon_sym_SLASH, anon_sym_PLUS, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, anon_sym_AMP, anon_sym_PIPE, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_then, anon_sym_else, anon_sym_do, anon_sym_to, anon_sym_in, anon_sym_end, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [970] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(74), 1, anon_sym_AMP, ACTIONS(76), 1, anon_sym_PIPE, ACTIONS(66), 2, anon_sym_DASH, anon_sym_PLUS, ACTIONS(68), 2, anon_sym_STAR, anon_sym_SLASH, ACTIONS(72), 2, anon_sym_LT, anon_sym_GT, ACTIONS(70), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, ACTIONS(148), 17, ts_builtin_sym_end, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_then, anon_sym_else, anon_sym_do, anon_sym_to, anon_sym_in, anon_sym_end, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [1017] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(90), 2, anon_sym_LT, anon_sym_GT, ACTIONS(88), 27, ts_builtin_sym_end, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_DASH, anon_sym_STAR, anon_sym_SLASH, anon_sym_PLUS, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, anon_sym_AMP, anon_sym_PIPE, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_then, anon_sym_else, anon_sym_do, anon_sym_to, anon_sym_in, anon_sym_end, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [1054] = 7, ACTIONS(3), 1, sym_comment, ACTIONS(74), 1, anon_sym_AMP, ACTIONS(66), 2, anon_sym_DASH, anon_sym_PLUS, ACTIONS(68), 2, anon_sym_STAR, anon_sym_SLASH, ACTIONS(72), 2, anon_sym_LT, anon_sym_GT, ACTIONS(70), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, ACTIONS(88), 18, ts_builtin_sym_end, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_PIPE, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_then, anon_sym_else, anon_sym_do, anon_sym_to, anon_sym_in, anon_sym_end, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [1099] = 6, ACTIONS(3), 1, sym_comment, ACTIONS(66), 2, anon_sym_DASH, anon_sym_PLUS, ACTIONS(68), 2, anon_sym_STAR, anon_sym_SLASH, ACTIONS(72), 2, anon_sym_LT, anon_sym_GT, ACTIONS(70), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, ACTIONS(88), 19, ts_builtin_sym_end, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_AMP, anon_sym_PIPE, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_then, anon_sym_else, anon_sym_do, anon_sym_to, anon_sym_in, anon_sym_end, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [1142] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(152), 2, anon_sym_LT, anon_sym_GT, ACTIONS(150), 27, ts_builtin_sym_end, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_DASH, anon_sym_STAR, anon_sym_SLASH, anon_sym_PLUS, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, anon_sym_AMP, anon_sym_PIPE, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_then, anon_sym_else, anon_sym_do, anon_sym_to, anon_sym_in, anon_sym_end, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [1179] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(156), 2, anon_sym_LT, anon_sym_GT, ACTIONS(154), 27, ts_builtin_sym_end, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_DASH, anon_sym_STAR, anon_sym_SLASH, anon_sym_PLUS, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, anon_sym_AMP, anon_sym_PIPE, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_then, anon_sym_else, anon_sym_do, anon_sym_to, anon_sym_in, anon_sym_end, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [1216] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(68), 2, anon_sym_STAR, anon_sym_SLASH, ACTIONS(90), 2, anon_sym_LT, anon_sym_GT, ACTIONS(88), 25, ts_builtin_sym_end, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_DASH, anon_sym_PLUS, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, anon_sym_AMP, anon_sym_PIPE, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_then, anon_sym_else, anon_sym_do, anon_sym_to, anon_sym_in, anon_sym_end, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [1255] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(160), 2, anon_sym_LT, anon_sym_GT, ACTIONS(158), 27, ts_builtin_sym_end, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_DASH, anon_sym_STAR, anon_sym_SLASH, anon_sym_PLUS, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, anon_sym_AMP, anon_sym_PIPE, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_then, anon_sym_else, anon_sym_do, anon_sym_to, anon_sym_in, anon_sym_end, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [1292] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(164), 2, anon_sym_LT, anon_sym_GT, ACTIONS(162), 27, ts_builtin_sym_end, anon_sym_RBRACK, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_DASH, anon_sym_STAR, anon_sym_SLASH, anon_sym_PLUS, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, anon_sym_AMP, anon_sym_PIPE, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_then, anon_sym_else, anon_sym_do, anon_sym_to, anon_sym_in, anon_sym_end, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [1329] = 13, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, anon_sym_DQUOTE, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(15), 1, anon_sym_DASH, ACTIONS(17), 1, anon_sym_if, ACTIONS(19), 1, anon_sym_while, ACTIONS(21), 1, anon_sym_for, ACTIONS(23), 1, anon_sym_let, ACTIONS(168), 1, anon_sym_end, ACTIONS(166), 3, sym_nil_literal, sym_integer_literal, sym_break_expression, STATE(5), 3, sym__lvalue, sym_record_value, sym_array_value, STATE(71), 13, sym__expr, sym_string_literal, sym_function_call, sym_unary_expression, sym_binary_expression, sym_sequence_expression, sym_array_expression, sym_record_expression, sym_assignment_expression, sym_if_expression, sym_while_expression, sym_for_expression, sym_let_expression, [1385] = 13, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, anon_sym_DQUOTE, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(15), 1, anon_sym_DASH, ACTIONS(17), 1, anon_sym_if, ACTIONS(19), 1, anon_sym_while, ACTIONS(21), 1, anon_sym_for, ACTIONS(23), 1, anon_sym_let, ACTIONS(172), 1, anon_sym_RPAREN, ACTIONS(170), 3, sym_nil_literal, sym_integer_literal, sym_break_expression, STATE(5), 3, sym__lvalue, sym_record_value, sym_array_value, STATE(77), 13, sym__expr, sym_string_literal, sym_function_call, sym_unary_expression, sym_binary_expression, sym_sequence_expression, sym_array_expression, sym_record_expression, sym_assignment_expression, sym_if_expression, sym_while_expression, sym_for_expression, sym_let_expression, [1441] = 13, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, anon_sym_DQUOTE, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(15), 1, anon_sym_DASH, ACTIONS(17), 1, anon_sym_if, ACTIONS(19), 1, anon_sym_while, ACTIONS(21), 1, anon_sym_for, ACTIONS(23), 1, anon_sym_let, ACTIONS(176), 1, anon_sym_end, ACTIONS(174), 3, sym_nil_literal, sym_integer_literal, sym_break_expression, STATE(5), 3, sym__lvalue, sym_record_value, sym_array_value, STATE(74), 13, sym__expr, sym_string_literal, sym_function_call, sym_unary_expression, sym_binary_expression, sym_sequence_expression, sym_array_expression, sym_record_expression, sym_assignment_expression, sym_if_expression, sym_while_expression, sym_for_expression, sym_let_expression, [1497] = 13, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, anon_sym_DQUOTE, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(15), 1, anon_sym_DASH, ACTIONS(17), 1, anon_sym_if, ACTIONS(19), 1, anon_sym_while, ACTIONS(21), 1, anon_sym_for, ACTIONS(23), 1, anon_sym_let, ACTIONS(180), 1, anon_sym_RPAREN, ACTIONS(178), 3, sym_nil_literal, sym_integer_literal, sym_break_expression, STATE(5), 3, sym__lvalue, sym_record_value, sym_array_value, STATE(72), 13, sym__expr, sym_string_literal, sym_function_call, sym_unary_expression, sym_binary_expression, sym_sequence_expression, sym_array_expression, sym_record_expression, sym_assignment_expression, sym_if_expression, sym_while_expression, sym_for_expression, sym_let_expression, [1553] = 12, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, anon_sym_DQUOTE, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(15), 1, anon_sym_DASH, ACTIONS(17), 1, anon_sym_if, ACTIONS(19), 1, anon_sym_while, ACTIONS(21), 1, anon_sym_for, ACTIONS(23), 1, anon_sym_let, ACTIONS(182), 3, sym_nil_literal, sym_integer_literal, sym_break_expression, STATE(5), 3, sym__lvalue, sym_record_value, sym_array_value, STATE(79), 13, sym__expr, sym_string_literal, sym_function_call, sym_unary_expression, sym_binary_expression, sym_sequence_expression, sym_array_expression, sym_record_expression, sym_assignment_expression, sym_if_expression, sym_while_expression, sym_for_expression, sym_let_expression, [1606] = 12, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, anon_sym_DQUOTE, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(15), 1, anon_sym_DASH, ACTIONS(17), 1, anon_sym_if, ACTIONS(19), 1, anon_sym_while, ACTIONS(21), 1, anon_sym_for, ACTIONS(23), 1, anon_sym_let, ACTIONS(184), 3, sym_nil_literal, sym_integer_literal, sym_break_expression, STATE(5), 3, sym__lvalue, sym_record_value, sym_array_value, STATE(26), 13, sym__expr, sym_string_literal, sym_function_call, sym_unary_expression, sym_binary_expression, sym_sequence_expression, sym_array_expression, sym_record_expression, sym_assignment_expression, sym_if_expression, sym_while_expression, sym_for_expression, sym_let_expression, [1659] = 12, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, anon_sym_DQUOTE, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(15), 1, anon_sym_DASH, ACTIONS(17), 1, anon_sym_if, ACTIONS(19), 1, anon_sym_while, ACTIONS(21), 1, anon_sym_for, ACTIONS(23), 1, anon_sym_let, ACTIONS(186), 3, sym_nil_literal, sym_integer_literal, sym_break_expression, STATE(5), 3, sym__lvalue, sym_record_value, sym_array_value, STATE(81), 13, sym__expr, sym_string_literal, sym_function_call, sym_unary_expression, sym_binary_expression, sym_sequence_expression, sym_array_expression, sym_record_expression, sym_assignment_expression, sym_if_expression, sym_while_expression, sym_for_expression, sym_let_expression, [1712] = 12, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, anon_sym_DQUOTE, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(15), 1, anon_sym_DASH, ACTIONS(17), 1, anon_sym_if, ACTIONS(19), 1, anon_sym_while, ACTIONS(21), 1, anon_sym_for, ACTIONS(23), 1, anon_sym_let, ACTIONS(188), 3, sym_nil_literal, sym_integer_literal, sym_break_expression, STATE(5), 3, sym__lvalue, sym_record_value, sym_array_value, STATE(17), 13, sym__expr, sym_string_literal, sym_function_call, sym_unary_expression, sym_binary_expression, sym_sequence_expression, sym_array_expression, sym_record_expression, sym_assignment_expression, sym_if_expression, sym_while_expression, sym_for_expression, sym_let_expression, [1765] = 12, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, anon_sym_DQUOTE, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(15), 1, anon_sym_DASH, ACTIONS(17), 1, anon_sym_if, ACTIONS(19), 1, anon_sym_while, ACTIONS(21), 1, anon_sym_for, ACTIONS(23), 1, anon_sym_let, ACTIONS(190), 3, sym_nil_literal, sym_integer_literal, sym_break_expression, STATE(5), 3, sym__lvalue, sym_record_value, sym_array_value, STATE(68), 13, sym__expr, sym_string_literal, sym_function_call, sym_unary_expression, sym_binary_expression, sym_sequence_expression, sym_array_expression, sym_record_expression, sym_assignment_expression, sym_if_expression, sym_while_expression, sym_for_expression, sym_let_expression, [1818] = 12, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, anon_sym_DQUOTE, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(15), 1, anon_sym_DASH, ACTIONS(17), 1, anon_sym_if, ACTIONS(19), 1, anon_sym_while, ACTIONS(21), 1, anon_sym_for, ACTIONS(23), 1, anon_sym_let, ACTIONS(192), 3, sym_nil_literal, sym_integer_literal, sym_break_expression, STATE(5), 3, sym__lvalue, sym_record_value, sym_array_value, STATE(80), 13, sym__expr, sym_string_literal, sym_function_call, sym_unary_expression, sym_binary_expression, sym_sequence_expression, sym_array_expression, sym_record_expression, sym_assignment_expression, sym_if_expression, sym_while_expression, sym_for_expression, sym_let_expression, [1871] = 12, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, anon_sym_DQUOTE, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(15), 1, anon_sym_DASH, ACTIONS(17), 1, anon_sym_if, ACTIONS(19), 1, anon_sym_while, ACTIONS(21), 1, anon_sym_for, ACTIONS(23), 1, anon_sym_let, ACTIONS(194), 3, sym_nil_literal, sym_integer_literal, sym_break_expression, STATE(5), 3, sym__lvalue, sym_record_value, sym_array_value, STATE(85), 13, sym__expr, sym_string_literal, sym_function_call, sym_unary_expression, sym_binary_expression, sym_sequence_expression, sym_array_expression, sym_record_expression, sym_assignment_expression, sym_if_expression, sym_while_expression, sym_for_expression, sym_let_expression, [1924] = 12, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, anon_sym_DQUOTE, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(15), 1, anon_sym_DASH, ACTIONS(17), 1, anon_sym_if, ACTIONS(19), 1, anon_sym_while, ACTIONS(21), 1, anon_sym_for, ACTIONS(23), 1, anon_sym_let, ACTIONS(196), 3, sym_nil_literal, sym_integer_literal, sym_break_expression, STATE(5), 3, sym__lvalue, sym_record_value, sym_array_value, STATE(65), 13, sym__expr, sym_string_literal, sym_function_call, sym_unary_expression, sym_binary_expression, sym_sequence_expression, sym_array_expression, sym_record_expression, sym_assignment_expression, sym_if_expression, sym_while_expression, sym_for_expression, sym_let_expression, [1977] = 12, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, anon_sym_DQUOTE, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(15), 1, anon_sym_DASH, ACTIONS(17), 1, anon_sym_if, ACTIONS(19), 1, anon_sym_while, ACTIONS(21), 1, anon_sym_for, ACTIONS(23), 1, anon_sym_let, ACTIONS(198), 3, sym_nil_literal, sym_integer_literal, sym_break_expression, STATE(5), 3, sym__lvalue, sym_record_value, sym_array_value, STATE(32), 13, sym__expr, sym_string_literal, sym_function_call, sym_unary_expression, sym_binary_expression, sym_sequence_expression, sym_array_expression, sym_record_expression, sym_assignment_expression, sym_if_expression, sym_while_expression, sym_for_expression, sym_let_expression, [2030] = 12, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, anon_sym_DQUOTE, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(15), 1, anon_sym_DASH, ACTIONS(17), 1, anon_sym_if, ACTIONS(19), 1, anon_sym_while, ACTIONS(21), 1, anon_sym_for, ACTIONS(23), 1, anon_sym_let, ACTIONS(200), 3, sym_nil_literal, sym_integer_literal, sym_break_expression, STATE(5), 3, sym__lvalue, sym_record_value, sym_array_value, STATE(27), 13, sym__expr, sym_string_literal, sym_function_call, sym_unary_expression, sym_binary_expression, sym_sequence_expression, sym_array_expression, sym_record_expression, sym_assignment_expression, sym_if_expression, sym_while_expression, sym_for_expression, sym_let_expression, [2083] = 12, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, anon_sym_DQUOTE, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(15), 1, anon_sym_DASH, ACTIONS(17), 1, anon_sym_if, ACTIONS(19), 1, anon_sym_while, ACTIONS(21), 1, anon_sym_for, ACTIONS(23), 1, anon_sym_let, ACTIONS(202), 3, sym_nil_literal, sym_integer_literal, sym_break_expression, STATE(5), 3, sym__lvalue, sym_record_value, sym_array_value, STATE(10), 13, sym__expr, sym_string_literal, sym_function_call, sym_unary_expression, sym_binary_expression, sym_sequence_expression, sym_array_expression, sym_record_expression, sym_assignment_expression, sym_if_expression, sym_while_expression, sym_for_expression, sym_let_expression, [2136] = 12, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, anon_sym_DQUOTE, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(15), 1, anon_sym_DASH, ACTIONS(17), 1, anon_sym_if, ACTIONS(19), 1, anon_sym_while, ACTIONS(21), 1, anon_sym_for, ACTIONS(23), 1, anon_sym_let, ACTIONS(204), 3, sym_nil_literal, sym_integer_literal, sym_break_expression, STATE(5), 3, sym__lvalue, sym_record_value, sym_array_value, STATE(29), 13, sym__expr, sym_string_literal, sym_function_call, sym_unary_expression, sym_binary_expression, sym_sequence_expression, sym_array_expression, sym_record_expression, sym_assignment_expression, sym_if_expression, sym_while_expression, sym_for_expression, sym_let_expression, [2189] = 12, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, anon_sym_DQUOTE, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(15), 1, anon_sym_DASH, ACTIONS(17), 1, anon_sym_if, ACTIONS(19), 1, anon_sym_while, ACTIONS(21), 1, anon_sym_for, ACTIONS(23), 1, anon_sym_let, ACTIONS(206), 3, sym_nil_literal, sym_integer_literal, sym_break_expression, STATE(5), 3, sym__lvalue, sym_record_value, sym_array_value, STATE(28), 13, sym__expr, sym_string_literal, sym_function_call, sym_unary_expression, sym_binary_expression, sym_sequence_expression, sym_array_expression, sym_record_expression, sym_assignment_expression, sym_if_expression, sym_while_expression, sym_for_expression, sym_let_expression, [2242] = 12, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, anon_sym_DQUOTE, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(15), 1, anon_sym_DASH, ACTIONS(17), 1, anon_sym_if, ACTIONS(19), 1, anon_sym_while, ACTIONS(21), 1, anon_sym_for, ACTIONS(23), 1, anon_sym_let, ACTIONS(208), 3, sym_nil_literal, sym_integer_literal, sym_break_expression, STATE(5), 3, sym__lvalue, sym_record_value, sym_array_value, STATE(67), 13, sym__expr, sym_string_literal, sym_function_call, sym_unary_expression, sym_binary_expression, sym_sequence_expression, sym_array_expression, sym_record_expression, sym_assignment_expression, sym_if_expression, sym_while_expression, sym_for_expression, sym_let_expression, [2295] = 12, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, anon_sym_DQUOTE, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(15), 1, anon_sym_DASH, ACTIONS(17), 1, anon_sym_if, ACTIONS(19), 1, anon_sym_while, ACTIONS(21), 1, anon_sym_for, ACTIONS(23), 1, anon_sym_let, ACTIONS(210), 3, sym_nil_literal, sym_integer_literal, sym_break_expression, STATE(5), 3, sym__lvalue, sym_record_value, sym_array_value, STATE(84), 13, sym__expr, sym_string_literal, sym_function_call, sym_unary_expression, sym_binary_expression, sym_sequence_expression, sym_array_expression, sym_record_expression, sym_assignment_expression, sym_if_expression, sym_while_expression, sym_for_expression, sym_let_expression, [2348] = 12, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, anon_sym_DQUOTE, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(15), 1, anon_sym_DASH, ACTIONS(17), 1, anon_sym_if, ACTIONS(19), 1, anon_sym_while, ACTIONS(21), 1, anon_sym_for, ACTIONS(23), 1, anon_sym_let, ACTIONS(212), 3, sym_nil_literal, sym_integer_literal, sym_break_expression, STATE(5), 3, sym__lvalue, sym_record_value, sym_array_value, STATE(25), 13, sym__expr, sym_string_literal, sym_function_call, sym_unary_expression, sym_binary_expression, sym_sequence_expression, sym_array_expression, sym_record_expression, sym_assignment_expression, sym_if_expression, sym_while_expression, sym_for_expression, sym_let_expression, [2401] = 12, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, anon_sym_DQUOTE, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(15), 1, anon_sym_DASH, ACTIONS(17), 1, anon_sym_if, ACTIONS(19), 1, anon_sym_while, ACTIONS(21), 1, anon_sym_for, ACTIONS(23), 1, anon_sym_let, ACTIONS(214), 3, sym_nil_literal, sym_integer_literal, sym_break_expression, STATE(5), 3, sym__lvalue, sym_record_value, sym_array_value, STATE(66), 13, sym__expr, sym_string_literal, sym_function_call, sym_unary_expression, sym_binary_expression, sym_sequence_expression, sym_array_expression, sym_record_expression, sym_assignment_expression, sym_if_expression, sym_while_expression, sym_for_expression, sym_let_expression, [2454] = 12, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, anon_sym_DQUOTE, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(15), 1, anon_sym_DASH, ACTIONS(17), 1, anon_sym_if, ACTIONS(19), 1, anon_sym_while, ACTIONS(21), 1, anon_sym_for, ACTIONS(23), 1, anon_sym_let, ACTIONS(216), 3, sym_nil_literal, sym_integer_literal, sym_break_expression, STATE(5), 3, sym__lvalue, sym_record_value, sym_array_value, STATE(70), 13, sym__expr, sym_string_literal, sym_function_call, sym_unary_expression, sym_binary_expression, sym_sequence_expression, sym_array_expression, sym_record_expression, sym_assignment_expression, sym_if_expression, sym_while_expression, sym_for_expression, sym_let_expression, [2507] = 12, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, anon_sym_DQUOTE, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(15), 1, anon_sym_DASH, ACTIONS(17), 1, anon_sym_if, ACTIONS(19), 1, anon_sym_while, ACTIONS(21), 1, anon_sym_for, ACTIONS(23), 1, anon_sym_let, ACTIONS(218), 3, sym_nil_literal, sym_integer_literal, sym_break_expression, STATE(5), 3, sym__lvalue, sym_record_value, sym_array_value, STATE(83), 13, sym__expr, sym_string_literal, sym_function_call, sym_unary_expression, sym_binary_expression, sym_sequence_expression, sym_array_expression, sym_record_expression, sym_assignment_expression, sym_if_expression, sym_while_expression, sym_for_expression, sym_let_expression, [2560] = 12, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, anon_sym_DQUOTE, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(15), 1, anon_sym_DASH, ACTIONS(17), 1, anon_sym_if, ACTIONS(19), 1, anon_sym_while, ACTIONS(21), 1, anon_sym_for, ACTIONS(23), 1, anon_sym_let, ACTIONS(220), 3, sym_nil_literal, sym_integer_literal, sym_break_expression, STATE(5), 3, sym__lvalue, sym_record_value, sym_array_value, STATE(8), 13, sym__expr, sym_string_literal, sym_function_call, sym_unary_expression, sym_binary_expression, sym_sequence_expression, sym_array_expression, sym_record_expression, sym_assignment_expression, sym_if_expression, sym_while_expression, sym_for_expression, sym_let_expression, [2613] = 12, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, anon_sym_DQUOTE, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(15), 1, anon_sym_DASH, ACTIONS(17), 1, anon_sym_if, ACTIONS(19), 1, anon_sym_while, ACTIONS(21), 1, anon_sym_for, ACTIONS(23), 1, anon_sym_let, ACTIONS(222), 3, sym_nil_literal, sym_integer_literal, sym_break_expression, STATE(5), 3, sym__lvalue, sym_record_value, sym_array_value, STATE(86), 13, sym__expr, sym_string_literal, sym_function_call, sym_unary_expression, sym_binary_expression, sym_sequence_expression, sym_array_expression, sym_record_expression, sym_assignment_expression, sym_if_expression, sym_while_expression, sym_for_expression, sym_let_expression, [2666] = 12, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, anon_sym_DQUOTE, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(15), 1, anon_sym_DASH, ACTIONS(17), 1, anon_sym_if, ACTIONS(19), 1, anon_sym_while, ACTIONS(21), 1, anon_sym_for, ACTIONS(23), 1, anon_sym_let, ACTIONS(224), 3, sym_nil_literal, sym_integer_literal, sym_break_expression, STATE(5), 3, sym__lvalue, sym_record_value, sym_array_value, STATE(6), 13, sym__expr, sym_string_literal, sym_function_call, sym_unary_expression, sym_binary_expression, sym_sequence_expression, sym_array_expression, sym_record_expression, sym_assignment_expression, sym_if_expression, sym_while_expression, sym_for_expression, sym_let_expression, [2719] = 12, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, anon_sym_DQUOTE, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(15), 1, anon_sym_DASH, ACTIONS(17), 1, anon_sym_if, ACTIONS(19), 1, anon_sym_while, ACTIONS(21), 1, anon_sym_for, ACTIONS(23), 1, anon_sym_let, ACTIONS(226), 3, sym_nil_literal, sym_integer_literal, sym_break_expression, STATE(5), 3, sym__lvalue, sym_record_value, sym_array_value, STATE(87), 13, sym__expr, sym_string_literal, sym_function_call, sym_unary_expression, sym_binary_expression, sym_sequence_expression, sym_array_expression, sym_record_expression, sym_assignment_expression, sym_if_expression, sym_while_expression, sym_for_expression, sym_let_expression, [2772] = 12, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, anon_sym_DQUOTE, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(15), 1, anon_sym_DASH, ACTIONS(17), 1, anon_sym_if, ACTIONS(19), 1, anon_sym_while, ACTIONS(21), 1, anon_sym_for, ACTIONS(23), 1, anon_sym_let, ACTIONS(228), 3, sym_nil_literal, sym_integer_literal, sym_break_expression, STATE(5), 3, sym__lvalue, sym_record_value, sym_array_value, STATE(78), 13, sym__expr, sym_string_literal, sym_function_call, sym_unary_expression, sym_binary_expression, sym_sequence_expression, sym_array_expression, sym_record_expression, sym_assignment_expression, sym_if_expression, sym_while_expression, sym_for_expression, sym_let_expression, [2825] = 12, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, anon_sym_DQUOTE, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(15), 1, anon_sym_DASH, ACTIONS(17), 1, anon_sym_if, ACTIONS(19), 1, anon_sym_while, ACTIONS(21), 1, anon_sym_for, ACTIONS(23), 1, anon_sym_let, ACTIONS(230), 3, sym_nil_literal, sym_integer_literal, sym_break_expression, STATE(5), 3, sym__lvalue, sym_record_value, sym_array_value, STATE(16), 13, sym__expr, sym_string_literal, sym_function_call, sym_unary_expression, sym_binary_expression, sym_sequence_expression, sym_array_expression, sym_record_expression, sym_assignment_expression, sym_if_expression, sym_while_expression, sym_for_expression, sym_let_expression, [2878] = 12, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, sym_identifier, ACTIONS(11), 1, anon_sym_DQUOTE, ACTIONS(13), 1, anon_sym_LPAREN, ACTIONS(15), 1, anon_sym_DASH, ACTIONS(17), 1, anon_sym_if, ACTIONS(19), 1, anon_sym_while, ACTIONS(21), 1, anon_sym_for, ACTIONS(23), 1, anon_sym_let, ACTIONS(232), 3, sym_nil_literal, sym_integer_literal, sym_break_expression, STATE(5), 3, sym__lvalue, sym_record_value, sym_array_value, STATE(18), 13, sym__expr, sym_string_literal, sym_function_call, sym_unary_expression, sym_binary_expression, sym_sequence_expression, sym_array_expression, sym_record_expression, sym_assignment_expression, sym_if_expression, sym_while_expression, sym_for_expression, sym_let_expression, [2931] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(74), 1, anon_sym_AMP, ACTIONS(76), 1, anon_sym_PIPE, ACTIONS(66), 2, anon_sym_DASH, anon_sym_PLUS, ACTIONS(68), 2, anon_sym_STAR, anon_sym_SLASH, ACTIONS(72), 2, anon_sym_LT, anon_sym_GT, ACTIONS(70), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, ACTIONS(234), 7, ts_builtin_sym_end, anon_sym_in, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [2968] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(74), 1, anon_sym_AMP, ACTIONS(76), 1, anon_sym_PIPE, ACTIONS(66), 2, anon_sym_DASH, anon_sym_PLUS, ACTIONS(68), 2, anon_sym_STAR, anon_sym_SLASH, ACTIONS(72), 2, anon_sym_LT, anon_sym_GT, ACTIONS(70), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, ACTIONS(236), 7, ts_builtin_sym_end, anon_sym_in, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [3005] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(74), 1, anon_sym_AMP, ACTIONS(76), 1, anon_sym_PIPE, ACTIONS(66), 2, anon_sym_DASH, anon_sym_PLUS, ACTIONS(68), 2, anon_sym_STAR, anon_sym_SLASH, ACTIONS(72), 2, anon_sym_LT, anon_sym_GT, ACTIONS(70), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, ACTIONS(238), 7, ts_builtin_sym_end, anon_sym_in, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [3042] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(74), 1, anon_sym_AMP, ACTIONS(76), 1, anon_sym_PIPE, ACTIONS(66), 2, anon_sym_DASH, anon_sym_PLUS, ACTIONS(68), 2, anon_sym_STAR, anon_sym_SLASH, ACTIONS(72), 2, anon_sym_LT, anon_sym_GT, ACTIONS(70), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, ACTIONS(240), 7, ts_builtin_sym_end, anon_sym_in, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [3079] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(244), 1, anon_sym_type, ACTIONS(247), 1, anon_sym_function, ACTIONS(250), 1, anon_sym_primitive, ACTIONS(253), 1, anon_sym_var, ACTIONS(256), 1, anon_sym_import, ACTIONS(242), 2, ts_builtin_sym_end, anon_sym_in, STATE(69), 9, aux_sym__declaration_chunks, sym__declaration_chunk, sym_type_declaration, sym_function_declaration, sym_primitive_declaration, sym_variable_declaration, sym_import_declaration, aux_sym__declaration_chunk_repeat1, aux_sym__declaration_chunk_repeat2, [3113] = 10, ACTIONS(3), 1, sym_comment, ACTIONS(74), 1, anon_sym_AMP, ACTIONS(76), 1, anon_sym_PIPE, ACTIONS(259), 1, anon_sym_COMMA, ACTIONS(261), 1, anon_sym_RBRACE, STATE(113), 1, aux_sym_record_expression_repeat1, ACTIONS(66), 2, anon_sym_DASH, anon_sym_PLUS, ACTIONS(68), 2, anon_sym_STAR, anon_sym_SLASH, ACTIONS(72), 2, anon_sym_LT, anon_sym_GT, ACTIONS(70), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, [3150] = 10, ACTIONS(3), 1, sym_comment, ACTIONS(74), 1, anon_sym_AMP, ACTIONS(76), 1, anon_sym_PIPE, ACTIONS(263), 1, anon_sym_SEMI, ACTIONS(265), 1, anon_sym_end, STATE(110), 1, aux_sym_sequence_expression_repeat1, ACTIONS(66), 2, anon_sym_DASH, anon_sym_PLUS, ACTIONS(68), 2, anon_sym_STAR, anon_sym_SLASH, ACTIONS(72), 2, anon_sym_LT, anon_sym_GT, ACTIONS(70), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, [3187] = 10, ACTIONS(3), 1, sym_comment, ACTIONS(74), 1, anon_sym_AMP, ACTIONS(76), 1, anon_sym_PIPE, ACTIONS(267), 1, anon_sym_COMMA, ACTIONS(269), 1, anon_sym_RPAREN, STATE(119), 1, aux_sym_function_call_repeat1, ACTIONS(66), 2, anon_sym_DASH, anon_sym_PLUS, ACTIONS(68), 2, anon_sym_STAR, anon_sym_SLASH, ACTIONS(72), 2, anon_sym_LT, anon_sym_GT, ACTIONS(70), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, [3224] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(271), 1, anon_sym_in, ACTIONS(273), 1, anon_sym_type, ACTIONS(275), 1, anon_sym_function, ACTIONS(277), 1, anon_sym_primitive, ACTIONS(279), 1, anon_sym_var, ACTIONS(281), 1, anon_sym_import, STATE(76), 9, aux_sym__declaration_chunks, sym__declaration_chunk, sym_type_declaration, sym_function_declaration, sym_primitive_declaration, sym_variable_declaration, sym_import_declaration, aux_sym__declaration_chunk_repeat1, aux_sym__declaration_chunk_repeat2, [3257] = 10, ACTIONS(3), 1, sym_comment, ACTIONS(74), 1, anon_sym_AMP, ACTIONS(76), 1, anon_sym_PIPE, ACTIONS(263), 1, anon_sym_SEMI, ACTIONS(283), 1, anon_sym_end, STATE(108), 1, aux_sym_sequence_expression_repeat1, ACTIONS(66), 2, anon_sym_DASH, anon_sym_PLUS, ACTIONS(68), 2, anon_sym_STAR, anon_sym_SLASH, ACTIONS(72), 2, anon_sym_LT, anon_sym_GT, ACTIONS(70), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, [3294] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(273), 1, anon_sym_type, ACTIONS(275), 1, anon_sym_function, ACTIONS(277), 1, anon_sym_primitive, ACTIONS(279), 1, anon_sym_var, ACTIONS(281), 1, anon_sym_import, ACTIONS(285), 1, ts_builtin_sym_end, STATE(69), 9, aux_sym__declaration_chunks, sym__declaration_chunk, sym_type_declaration, sym_function_declaration, sym_primitive_declaration, sym_variable_declaration, sym_import_declaration, aux_sym__declaration_chunk_repeat1, aux_sym__declaration_chunk_repeat2, [3327] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(273), 1, anon_sym_type, ACTIONS(275), 1, anon_sym_function, ACTIONS(277), 1, anon_sym_primitive, ACTIONS(279), 1, anon_sym_var, ACTIONS(281), 1, anon_sym_import, ACTIONS(287), 1, anon_sym_in, STATE(69), 9, aux_sym__declaration_chunks, sym__declaration_chunk, sym_type_declaration, sym_function_declaration, sym_primitive_declaration, sym_variable_declaration, sym_import_declaration, aux_sym__declaration_chunk_repeat1, aux_sym__declaration_chunk_repeat2, [3360] = 10, ACTIONS(3), 1, sym_comment, ACTIONS(74), 1, anon_sym_AMP, ACTIONS(76), 1, anon_sym_PIPE, ACTIONS(263), 1, anon_sym_SEMI, ACTIONS(289), 1, anon_sym_RPAREN, STATE(112), 1, aux_sym_sequence_expression_repeat1, ACTIONS(66), 2, anon_sym_DASH, anon_sym_PLUS, ACTIONS(68), 2, anon_sym_STAR, anon_sym_SLASH, ACTIONS(72), 2, anon_sym_LT, anon_sym_GT, ACTIONS(70), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, [3397] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(74), 1, anon_sym_AMP, ACTIONS(76), 1, anon_sym_PIPE, ACTIONS(66), 2, anon_sym_DASH, anon_sym_PLUS, ACTIONS(68), 2, anon_sym_STAR, anon_sym_SLASH, ACTIONS(72), 2, anon_sym_LT, anon_sym_GT, ACTIONS(291), 3, anon_sym_RPAREN, anon_sym_SEMI, anon_sym_end, ACTIONS(70), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, [3430] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(74), 1, anon_sym_AMP, ACTIONS(76), 1, anon_sym_PIPE, ACTIONS(66), 2, anon_sym_DASH, anon_sym_PLUS, ACTIONS(68), 2, anon_sym_STAR, anon_sym_SLASH, ACTIONS(72), 2, anon_sym_LT, anon_sym_GT, ACTIONS(293), 2, anon_sym_COMMA, anon_sym_RPAREN, ACTIONS(70), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, [3462] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(74), 1, anon_sym_AMP, ACTIONS(76), 1, anon_sym_PIPE, ACTIONS(66), 2, anon_sym_DASH, anon_sym_PLUS, ACTIONS(68), 2, anon_sym_STAR, anon_sym_SLASH, ACTIONS(72), 2, anon_sym_LT, anon_sym_GT, ACTIONS(295), 2, anon_sym_COMMA, anon_sym_RBRACE, ACTIONS(70), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, [3494] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(74), 1, anon_sym_AMP, ACTIONS(76), 1, anon_sym_PIPE, ACTIONS(297), 1, anon_sym_RBRACK, ACTIONS(66), 2, anon_sym_DASH, anon_sym_PLUS, ACTIONS(68), 2, anon_sym_STAR, anon_sym_SLASH, ACTIONS(72), 2, anon_sym_LT, anon_sym_GT, ACTIONS(70), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, [3525] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(74), 1, anon_sym_AMP, ACTIONS(76), 1, anon_sym_PIPE, ACTIONS(285), 1, ts_builtin_sym_end, ACTIONS(66), 2, anon_sym_DASH, anon_sym_PLUS, ACTIONS(68), 2, anon_sym_STAR, anon_sym_SLASH, ACTIONS(72), 2, anon_sym_LT, anon_sym_GT, ACTIONS(70), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, [3556] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(74), 1, anon_sym_AMP, ACTIONS(76), 1, anon_sym_PIPE, ACTIONS(299), 1, anon_sym_do, ACTIONS(66), 2, anon_sym_DASH, anon_sym_PLUS, ACTIONS(68), 2, anon_sym_STAR, anon_sym_SLASH, ACTIONS(72), 2, anon_sym_LT, anon_sym_GT, ACTIONS(70), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, [3587] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(74), 1, anon_sym_AMP, ACTIONS(76), 1, anon_sym_PIPE, ACTIONS(301), 1, anon_sym_RBRACK, ACTIONS(66), 2, anon_sym_DASH, anon_sym_PLUS, ACTIONS(68), 2, anon_sym_STAR, anon_sym_SLASH, ACTIONS(72), 2, anon_sym_LT, anon_sym_GT, ACTIONS(70), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, [3618] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(74), 1, anon_sym_AMP, ACTIONS(76), 1, anon_sym_PIPE, ACTIONS(303), 1, anon_sym_do, ACTIONS(66), 2, anon_sym_DASH, anon_sym_PLUS, ACTIONS(68), 2, anon_sym_STAR, anon_sym_SLASH, ACTIONS(72), 2, anon_sym_LT, anon_sym_GT, ACTIONS(70), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, [3649] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(74), 1, anon_sym_AMP, ACTIONS(76), 1, anon_sym_PIPE, ACTIONS(305), 1, anon_sym_then, ACTIONS(66), 2, anon_sym_DASH, anon_sym_PLUS, ACTIONS(68), 2, anon_sym_STAR, anon_sym_SLASH, ACTIONS(72), 2, anon_sym_LT, anon_sym_GT, ACTIONS(70), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, [3680] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(74), 1, anon_sym_AMP, ACTIONS(76), 1, anon_sym_PIPE, ACTIONS(307), 1, anon_sym_to, ACTIONS(66), 2, anon_sym_DASH, anon_sym_PLUS, ACTIONS(68), 2, anon_sym_STAR, anon_sym_SLASH, ACTIONS(72), 2, anon_sym_LT, anon_sym_GT, ACTIONS(70), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, [3711] = 5, ACTIONS(3), 1, sym_comment, ACTIONS(311), 1, anon_sym_function, ACTIONS(314), 1, anon_sym_primitive, STATE(88), 3, sym_function_declaration, sym_primitive_declaration, aux_sym__declaration_chunk_repeat2, ACTIONS(309), 5, ts_builtin_sym_end, anon_sym_in, anon_sym_type, anon_sym_var, anon_sym_import, [3733] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(317), 9, ts_builtin_sym_end, anon_sym_EQ, anon_sym_in, anon_sym_type, anon_sym_COLON, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [3748] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(319), 9, ts_builtin_sym_end, anon_sym_EQ, anon_sym_in, anon_sym_type, anon_sym_COLON, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [3763] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(321), 9, ts_builtin_sym_end, anon_sym_EQ, anon_sym_in, anon_sym_type, anon_sym_COLON, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [3778] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(325), 1, anon_sym_type, STATE(92), 2, sym_type_declaration, aux_sym__declaration_chunk_repeat1, ACTIONS(323), 6, ts_builtin_sym_end, anon_sym_in, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [3797] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(330), 1, anon_sym_COLON, ACTIONS(328), 7, ts_builtin_sym_end, anon_sym_in, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [3813] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(332), 7, ts_builtin_sym_end, anon_sym_in, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [3826] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(334), 7, ts_builtin_sym_end, anon_sym_in, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [3839] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(336), 7, ts_builtin_sym_end, anon_sym_in, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [3852] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(338), 7, ts_builtin_sym_end, anon_sym_in, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [3865] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(340), 7, ts_builtin_sym_end, anon_sym_in, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [3878] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(342), 7, ts_builtin_sym_end, anon_sym_in, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [3891] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(344), 7, ts_builtin_sym_end, anon_sym_in, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [3904] = 5, ACTIONS(3), 1, sym_comment, ACTIONS(346), 1, sym_identifier, ACTIONS(348), 1, anon_sym_LBRACE, ACTIONS(350), 1, anon_sym_array, STATE(99), 4, sym__type, sym_type_alias, sym_record_type, sym_array_type, [3923] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(352), 7, ts_builtin_sym_end, anon_sym_in, anon_sym_type, anon_sym_function, anon_sym_primitive, anon_sym_var, anon_sym_import, [3936] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(354), 1, anon_sym_DQUOTE, STATE(106), 1, aux_sym_string_literal_repeat1, ACTIONS(356), 2, aux_sym_string_literal_token1, sym_escape_sequence, [3950] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(358), 1, anon_sym_SEMI, STATE(104), 1, aux_sym_sequence_expression_repeat1, ACTIONS(291), 2, anon_sym_RPAREN, anon_sym_end, [3964] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(361), 1, anon_sym_DQUOTE, STATE(103), 1, aux_sym_string_literal_repeat1, ACTIONS(363), 2, aux_sym_string_literal_token1, sym_escape_sequence, [3978] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(365), 1, anon_sym_DQUOTE, STATE(106), 1, aux_sym_string_literal_repeat1, ACTIONS(367), 2, aux_sym_string_literal_token1, sym_escape_sequence, [3992] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(370), 1, anon_sym_COMMA, ACTIONS(373), 1, anon_sym_RBRACE, STATE(107), 1, aux_sym_record_expression_repeat1, [4005] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(263), 1, anon_sym_SEMI, ACTIONS(375), 1, anon_sym_end, STATE(104), 1, aux_sym_sequence_expression_repeat1, [4018] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(377), 1, anon_sym_COMMA, ACTIONS(380), 1, anon_sym_RBRACE, STATE(109), 1, aux_sym_record_type_repeat1, [4031] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(263), 1, anon_sym_SEMI, ACTIONS(382), 1, anon_sym_end, STATE(104), 1, aux_sym_sequence_expression_repeat1, [4044] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(384), 1, anon_sym_COMMA, ACTIONS(386), 1, anon_sym_RBRACE, STATE(109), 1, aux_sym_record_type_repeat1, [4057] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(263), 1, anon_sym_SEMI, ACTIONS(388), 1, anon_sym_RPAREN, STATE(104), 1, aux_sym_sequence_expression_repeat1, [4070] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(259), 1, anon_sym_COMMA, ACTIONS(390), 1, anon_sym_RBRACE, STATE(107), 1, aux_sym_record_expression_repeat1, [4083] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(392), 1, anon_sym_COMMA, ACTIONS(394), 1, anon_sym_RPAREN, STATE(118), 1, aux_sym_parameters_repeat1, [4096] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(293), 1, anon_sym_RPAREN, ACTIONS(396), 1, anon_sym_COMMA, STATE(115), 1, aux_sym_function_call_repeat1, [4109] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(384), 1, anon_sym_COMMA, ACTIONS(399), 1, anon_sym_RBRACE, STATE(111), 1, aux_sym_record_type_repeat1, [4122] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(392), 1, anon_sym_COMMA, ACTIONS(401), 1, anon_sym_RPAREN, STATE(114), 1, aux_sym_parameters_repeat1, [4135] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(403), 1, anon_sym_COMMA, ACTIONS(406), 1, anon_sym_RPAREN, STATE(118), 1, aux_sym_parameters_repeat1, [4148] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(267), 1, anon_sym_COMMA, ACTIONS(408), 1, anon_sym_RPAREN, STATE(115), 1, aux_sym_function_call_repeat1, [4161] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(410), 1, sym_identifier, ACTIONS(412), 1, anon_sym_RPAREN, [4171] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(11), 1, anon_sym_DQUOTE, STATE(98), 1, sym_string_literal, [4181] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(414), 2, anon_sym_COMMA, anon_sym_RBRACE, [4189] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(416), 2, anon_sym_COMMA, anon_sym_RPAREN, [4197] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(418), 1, anon_sym_LPAREN, STATE(127), 1, sym_parameters, [4207] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(418), 1, anon_sym_LPAREN, STATE(93), 1, sym_parameters, [4217] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(420), 1, anon_sym_COLON_EQ, ACTIONS(422), 1, anon_sym_COLON, [4227] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(424), 1, anon_sym_EQ, ACTIONS(426), 1, anon_sym_COLON, [4237] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(428), 1, sym_identifier, ACTIONS(430), 1, anon_sym_RBRACE, [4247] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(432), 1, sym_identifier, ACTIONS(434), 1, anon_sym_RBRACE, [4257] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(436), 1, anon_sym_of, [4264] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(438), 1, sym_identifier, [4271] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(440), 1, anon_sym_COLON_EQ, [4278] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(442), 1, sym_identifier, [4285] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(444), 1, sym_identifier, [4292] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(446), 1, anon_sym_EQ, [4299] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(448), 1, anon_sym_EQ, [4306] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(450), 1, anon_sym_EQ, [4313] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(452), 1, anon_sym_COLON, [4320] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(454), 1, sym_identifier, [4327] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(456), 1, sym_identifier, [4334] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(458), 1, sym_identifier, [4341] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(460), 1, ts_builtin_sym_end, [4348] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(462), 1, anon_sym_COLON, [4355] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(464), 1, anon_sym_of, [4362] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(466), 1, sym_identifier, [4369] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(468), 1, sym_identifier, [4376] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(470), 1, sym_identifier, [4383] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(472), 1, anon_sym_COLON_EQ, [4390] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(474), 1, anon_sym_COLON, [4397] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(476), 1, anon_sym_EQ, [4404] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(478), 1, sym_identifier, [4411] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(480), 1, sym_identifier, [4418] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(482), 1, anon_sym_COLON, [4425] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(484), 1, sym_identifier, [4432] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(486), 1, sym_identifier, [4439] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(488), 1, sym_identifier, [4446] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(490), 1, sym_identifier, [4453] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(492), 1, sym_identifier, [4460] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(494), 1, sym_identifier, }; static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(2)] = 0, [SMALL_STATE(3)] = 48, [SMALL_STATE(4)] = 88, [SMALL_STATE(5)] = 128, [SMALL_STATE(6)] = 174, [SMALL_STATE(7)] = 221, [SMALL_STATE(8)] = 258, [SMALL_STATE(9)] = 305, [SMALL_STATE(10)] = 342, [SMALL_STATE(11)] = 383, [SMALL_STATE(12)] = 420, [SMALL_STATE(13)] = 457, [SMALL_STATE(14)] = 494, [SMALL_STATE(15)] = 531, [SMALL_STATE(16)] = 568, [SMALL_STATE(17)] = 615, [SMALL_STATE(18)] = 662, [SMALL_STATE(19)] = 711, [SMALL_STATE(20)] = 748, [SMALL_STATE(21)] = 785, [SMALL_STATE(22)] = 822, [SMALL_STATE(23)] = 859, [SMALL_STATE(24)] = 896, [SMALL_STATE(25)] = 933, [SMALL_STATE(26)] = 970, [SMALL_STATE(27)] = 1017, [SMALL_STATE(28)] = 1054, [SMALL_STATE(29)] = 1099, [SMALL_STATE(30)] = 1142, [SMALL_STATE(31)] = 1179, [SMALL_STATE(32)] = 1216, [SMALL_STATE(33)] = 1255, [SMALL_STATE(34)] = 1292, [SMALL_STATE(35)] = 1329, [SMALL_STATE(36)] = 1385, [SMALL_STATE(37)] = 1441, [SMALL_STATE(38)] = 1497, [SMALL_STATE(39)] = 1553, [SMALL_STATE(40)] = 1606, [SMALL_STATE(41)] = 1659, [SMALL_STATE(42)] = 1712, [SMALL_STATE(43)] = 1765, [SMALL_STATE(44)] = 1818, [SMALL_STATE(45)] = 1871, [SMALL_STATE(46)] = 1924, [SMALL_STATE(47)] = 1977, [SMALL_STATE(48)] = 2030, [SMALL_STATE(49)] = 2083, [SMALL_STATE(50)] = 2136, [SMALL_STATE(51)] = 2189, [SMALL_STATE(52)] = 2242, [SMALL_STATE(53)] = 2295, [SMALL_STATE(54)] = 2348, [SMALL_STATE(55)] = 2401, [SMALL_STATE(56)] = 2454, [SMALL_STATE(57)] = 2507, [SMALL_STATE(58)] = 2560, [SMALL_STATE(59)] = 2613, [SMALL_STATE(60)] = 2666, [SMALL_STATE(61)] = 2719, [SMALL_STATE(62)] = 2772, [SMALL_STATE(63)] = 2825, [SMALL_STATE(64)] = 2878, [SMALL_STATE(65)] = 2931, [SMALL_STATE(66)] = 2968, [SMALL_STATE(67)] = 3005, [SMALL_STATE(68)] = 3042, [SMALL_STATE(69)] = 3079, [SMALL_STATE(70)] = 3113, [SMALL_STATE(71)] = 3150, [SMALL_STATE(72)] = 3187, [SMALL_STATE(73)] = 3224, [SMALL_STATE(74)] = 3257, [SMALL_STATE(75)] = 3294, [SMALL_STATE(76)] = 3327, [SMALL_STATE(77)] = 3360, [SMALL_STATE(78)] = 3397, [SMALL_STATE(79)] = 3430, [SMALL_STATE(80)] = 3462, [SMALL_STATE(81)] = 3494, [SMALL_STATE(82)] = 3525, [SMALL_STATE(83)] = 3556, [SMALL_STATE(84)] = 3587, [SMALL_STATE(85)] = 3618, [SMALL_STATE(86)] = 3649, [SMALL_STATE(87)] = 3680, [SMALL_STATE(88)] = 3711, [SMALL_STATE(89)] = 3733, [SMALL_STATE(90)] = 3748, [SMALL_STATE(91)] = 3763, [SMALL_STATE(92)] = 3778, [SMALL_STATE(93)] = 3797, [SMALL_STATE(94)] = 3813, [SMALL_STATE(95)] = 3826, [SMALL_STATE(96)] = 3839, [SMALL_STATE(97)] = 3852, [SMALL_STATE(98)] = 3865, [SMALL_STATE(99)] = 3878, [SMALL_STATE(100)] = 3891, [SMALL_STATE(101)] = 3904, [SMALL_STATE(102)] = 3923, [SMALL_STATE(103)] = 3936, [SMALL_STATE(104)] = 3950, [SMALL_STATE(105)] = 3964, [SMALL_STATE(106)] = 3978, [SMALL_STATE(107)] = 3992, [SMALL_STATE(108)] = 4005, [SMALL_STATE(109)] = 4018, [SMALL_STATE(110)] = 4031, [SMALL_STATE(111)] = 4044, [SMALL_STATE(112)] = 4057, [SMALL_STATE(113)] = 4070, [SMALL_STATE(114)] = 4083, [SMALL_STATE(115)] = 4096, [SMALL_STATE(116)] = 4109, [SMALL_STATE(117)] = 4122, [SMALL_STATE(118)] = 4135, [SMALL_STATE(119)] = 4148, [SMALL_STATE(120)] = 4161, [SMALL_STATE(121)] = 4171, [SMALL_STATE(122)] = 4181, [SMALL_STATE(123)] = 4189, [SMALL_STATE(124)] = 4197, [SMALL_STATE(125)] = 4207, [SMALL_STATE(126)] = 4217, [SMALL_STATE(127)] = 4227, [SMALL_STATE(128)] = 4237, [SMALL_STATE(129)] = 4247, [SMALL_STATE(130)] = 4257, [SMALL_STATE(131)] = 4264, [SMALL_STATE(132)] = 4271, [SMALL_STATE(133)] = 4278, [SMALL_STATE(134)] = 4285, [SMALL_STATE(135)] = 4292, [SMALL_STATE(136)] = 4299, [SMALL_STATE(137)] = 4306, [SMALL_STATE(138)] = 4313, [SMALL_STATE(139)] = 4320, [SMALL_STATE(140)] = 4327, [SMALL_STATE(141)] = 4334, [SMALL_STATE(142)] = 4341, [SMALL_STATE(143)] = 4348, [SMALL_STATE(144)] = 4355, [SMALL_STATE(145)] = 4362, [SMALL_STATE(146)] = 4369, [SMALL_STATE(147)] = 4376, [SMALL_STATE(148)] = 4383, [SMALL_STATE(149)] = 4390, [SMALL_STATE(150)] = 4397, [SMALL_STATE(151)] = 4404, [SMALL_STATE(152)] = 4411, [SMALL_STATE(153)] = 4418, [SMALL_STATE(154)] = 4425, [SMALL_STATE(155)] = 4432, [SMALL_STATE(156)] = 4439, [SMALL_STATE(157)] = 4446, [SMALL_STATE(158)] = 4453, [SMALL_STATE(159)] = 4460, }; 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_source_file, 0), [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2), [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(82), [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(45), [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(152), [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73), [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(159), [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(154), [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(155), [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(147), [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(121), [35] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__lvalue, 1), [37] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__lvalue, 1), SHIFT(41), [40] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), [42] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__lvalue, 1), [44] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), [46] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_value, 4, .production_id = 16), [48] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_value, 4, .production_id = 16), [50] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record_value, 3, .production_id = 7), [52] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_record_value, 3, .production_id = 7), [54] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr, 1), [56] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), [58] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), [60] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr, 1), [62] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), [64] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_expression, 6, .production_id = 22), [66] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), [68] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), [70] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), [72] = {.entry = {.count = 1, .reusable = false}}, SHIFT(49), [74] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), [76] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), [78] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record_expression, 7, .production_id = 28), [80] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_record_expression, 7, .production_id = 28), [82] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_expression, 6, .production_id = 24), [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record_expression, 6, .production_id = 23), [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_record_expression, 6, .production_id = 23), [88] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_expression, 3, .production_id = 6), [90] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_expression, 3, .production_id = 6), [92] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_let_expression, 5, .production_id = 19), [94] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_let_expression, 5, .production_id = 19), [96] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_let_expression, 5, .production_id = 18), [98] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_let_expression, 5, .production_id = 18), [100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 5, .production_id = 17), [102] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call, 5, .production_id = 17), [104] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_let_expression, 4, .production_id = 13), [106] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_let_expression, 4, .production_id = 13), [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_let_expression, 4, .production_id = 12), [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_let_expression, 4, .production_id = 12), [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_expression, 4, .production_id = 11), [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_expression, 8, .production_id = 32), [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_expression, 4, .production_id = 10), [118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_literal, 2), [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_literal, 2), [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_expression, 4), [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_expression, 4), [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 4, .production_id = 9), [130] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call, 4, .production_id = 9), [132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_literal, 3), [134] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_literal, 3), [136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_let_expression, 6, .production_id = 25), [138] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_let_expression, 6, .production_id = 25), [140] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_expression, 2), [142] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_expression, 2), [144] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment_expression, 3, .production_id = 8), [146] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignment_expression, 3, .production_id = 8), [148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_expression, 2, .production_id = 1), [150] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_expression, 3), [152] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_expression, 3), [154] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 3, .production_id = 3), [156] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call, 3, .production_id = 3), [158] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_let_expression, 3), [160] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_let_expression, 3), [162] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record_expression, 3, .production_id = 4), [164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_record_expression, 3, .production_id = 4), [166] = {.entry = {.count = 1, .reusable = false}}, SHIFT(71), [168] = {.entry = {.count = 1, .reusable = false}}, SHIFT(33), [170] = {.entry = {.count = 1, .reusable = false}}, SHIFT(77), [172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), [174] = {.entry = {.count = 1, .reusable = false}}, SHIFT(74), [176] = {.entry = {.count = 1, .reusable = false}}, SHIFT(14), [178] = {.entry = {.count = 1, .reusable = false}}, SHIFT(72), [180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), [182] = {.entry = {.count = 1, .reusable = false}}, SHIFT(79), [184] = {.entry = {.count = 1, .reusable = false}}, SHIFT(26), [186] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81), [188] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17), [190] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68), [192] = {.entry = {.count = 1, .reusable = false}}, SHIFT(80), [194] = {.entry = {.count = 1, .reusable = false}}, SHIFT(85), [196] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65), [198] = {.entry = {.count = 1, .reusable = false}}, SHIFT(32), [200] = {.entry = {.count = 1, .reusable = false}}, SHIFT(27), [202] = {.entry = {.count = 1, .reusable = false}}, SHIFT(10), [204] = {.entry = {.count = 1, .reusable = false}}, SHIFT(29), [206] = {.entry = {.count = 1, .reusable = false}}, SHIFT(28), [208] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67), [210] = {.entry = {.count = 1, .reusable = false}}, SHIFT(84), [212] = {.entry = {.count = 1, .reusable = false}}, SHIFT(25), [214] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), [216] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70), [218] = {.entry = {.count = 1, .reusable = false}}, SHIFT(83), [220] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8), [222] = {.entry = {.count = 1, .reusable = false}}, SHIFT(86), [224] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6), [226] = {.entry = {.count = 1, .reusable = false}}, SHIFT(87), [228] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78), [230] = {.entry = {.count = 1, .reusable = false}}, SHIFT(16), [232] = {.entry = {.count = 1, .reusable = false}}, SHIFT(18), [234] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_declaration, 4, .production_id = 15), [236] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 5, .production_id = 20), [238] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_declaration, 6, .production_id = 27), [240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 7, .production_id = 31), [242] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__declaration_chunks, 2), [244] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declaration_chunks, 2), SHIFT_REPEAT(159), [247] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declaration_chunks, 2), SHIFT_REPEAT(154), [250] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declaration_chunks, 2), SHIFT_REPEAT(155), [253] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declaration_chunks, 2), SHIFT_REPEAT(147), [256] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declaration_chunks, 2), SHIFT_REPEAT(121), [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), [261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), [263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), [265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), [267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), [269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), [271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), [273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), [275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), [277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), [279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147), [281] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), [283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), [285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), [287] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), [289] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), [291] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_sequence_expression_repeat1, 2), [293] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_call_repeat1, 2), [295] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_record_expression_repeat1, 4, .production_id = 36), [297] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144), [299] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), [301] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), [303] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), [305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), [307] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__declaration_chunk_repeat2, 2), [311] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declaration_chunk_repeat2, 2), SHIFT_REPEAT(154), [314] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declaration_chunk_repeat2, 2), SHIFT_REPEAT(155), [317] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 5, .production_id = 30), [319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 2), [321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 6, .production_id = 34), [323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__declaration_chunk_repeat1, 2), [325] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declaration_chunk_repeat1, 2), SHIFT_REPEAT(159), [328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primitive_declaration, 3, .production_id = 5), [330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), [332] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record_type, 2), [334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record_type, 6, .production_id = 37), [336] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 3, .production_id = 26), [338] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_alias, 1, .production_id = 14), [340] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_declaration, 2, .production_id = 2), [342] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_declaration, 4, .production_id = 15), [344] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record_type, 5, .production_id = 33), [346] = {.entry = {.count = 1, .reusable = false}}, SHIFT(97), [348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), [350] = {.entry = {.count = 1, .reusable = false}}, SHIFT(130), [352] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primitive_declaration, 5, .production_id = 21), [354] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22), [356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), [358] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sequence_expression_repeat1, 2), SHIFT_REPEAT(62), [361] = {.entry = {.count = 1, .reusable = false}}, SHIFT(19), [363] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), [365] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_literal_repeat1, 2), [367] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_string_literal_repeat1, 2), SHIFT_REPEAT(106), [370] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_record_expression_repeat1, 2, .production_id = 29), SHIFT_REPEAT(158), [373] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_record_expression_repeat1, 2, .production_id = 29), [375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), [377] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_record_type_repeat1, 2, .production_id = 35), SHIFT_REPEAT(146), [380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_record_type_repeat1, 2, .production_id = 35), [382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), [384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), [386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), [388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), [390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), [392] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140), [394] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), [396] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_call_repeat1, 2), SHIFT_REPEAT(39), [399] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), [401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), [403] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parameters_repeat1, 2, .production_id = 35), SHIFT_REPEAT(140), [406] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parameters_repeat1, 2, .production_id = 35), [408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), [410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), [412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), [414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_record_type_repeat1, 4, .production_id = 33), [416] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parameters_repeat1, 4, .production_id = 30), [418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), [420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), [422] = {.entry = {.count = 1, .reusable = false}}, SHIFT(131), [424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), [426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141), [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), [430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), [432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143), [434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), [436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133), [438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), [440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), [442] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), [444] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), [446] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), [448] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), [450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), [452] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), [454] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), [456] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), [458] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136), [460] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), [462] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145), [464] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), [466] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), [468] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), [470] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), [472] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), [474] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), [476] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), [478] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), [480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), [482] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), [484] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), [486] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), [488] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), [490] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), [492] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), [494] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137), }; #ifdef __cplusplus extern "C" { #endif void *tree_sitter_tiger_external_scanner_create(void); void tree_sitter_tiger_external_scanner_destroy(void *); bool tree_sitter_tiger_external_scanner_scan(void *, TSLexer *, const bool *); unsigned tree_sitter_tiger_external_scanner_serialize(void *, char *); void tree_sitter_tiger_external_scanner_deserialize(void *, const char *, unsigned); #ifdef _WIN32 #define extern __declspec(dllexport) #endif extern const TSLanguage *tree_sitter_tiger(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, .external_scanner = { &ts_external_scanner_states[0][0], ts_external_scanner_symbol_map, tree_sitter_tiger_external_scanner_create, tree_sitter_tiger_external_scanner_destroy, tree_sitter_tiger_external_scanner_scan, tree_sitter_tiger_external_scanner_serialize, tree_sitter_tiger_external_scanner_deserialize, }, }; return &language; } #ifdef __cplusplus } #endif