From 1e5f7cd5d52a8fad8d26386076300025dae6d12b Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Wed, 1 Jun 2022 20:54:35 +0200 Subject: [PATCH] Add array types --- grammar.js | 7 + src/grammar.json | 25 + src/node-types.json | 24 + src/parser.c | 2820 +++++++++++++++++----------------- test/corpus/declarations.txt | 31 + 5 files changed, 1529 insertions(+), 1378 deletions(-) diff --git a/grammar.js b/grammar.js index a875ddc..f339638 100644 --- a/grammar.js +++ b/grammar.js @@ -245,6 +245,7 @@ module.exports = grammar({ _type: ($) => choice( $.type_alias, $.record_type, + $.array_type, ), type_alias: ($) => $.identifier, @@ -261,6 +262,12 @@ module.exports = grammar({ field("type", $.identifier), ), + array_type: ($) => seq( + "array", + "of", + field("element_type", $.identifier), + ), + function_declaration: ($) => seq( "function", $._function_declaration_common, diff --git a/src/grammar.json b/src/grammar.json index 4174529..a5b5671 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -1118,6 +1118,10 @@ { "type": "SYMBOL", "name": "record_type" + }, + { + "type": "SYMBOL", + "name": "array_type" } ] }, @@ -1196,6 +1200,27 @@ } ] }, + "array_type": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "array" + }, + { + "type": "STRING", + "value": "of" + }, + { + "type": "FIELD", + "name": "element_type", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + } + ] + }, "function_declaration": { "type": "SEQ", "members": [ diff --git a/src/node-types.json b/src/node-types.json index 1602022..5bccc6e 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -171,6 +171,22 @@ } } }, + { + "type": "array_type", + "named": true, + "fields": { + "element_type": { + "multiple": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + } + } + }, { "type": "array_value", "named": true, @@ -1837,6 +1853,10 @@ "multiple": false, "required": true, "types": [ + { + "type": "array_type", + "named": true + }, { "type": "record_type", "named": true @@ -2253,6 +2273,10 @@ "type": "]", "named": false }, + { + "type": "array", + "named": false + }, { "type": "break_expression", "named": true diff --git a/src/parser.c b/src/parser.c index 045e7e1..1a38e08 100644 --- a/src/parser.c +++ b/src/parser.c @@ -6,15 +6,15 @@ #endif #define LANGUAGE_VERSION 13 -#define STATE_COUNT 143 +#define STATE_COUNT 146 #define LARGE_STATE_COUNT 2 -#define SYMBOL_COUNT 84 +#define SYMBOL_COUNT 86 #define ALIAS_COUNT 0 -#define TOKEN_COUNT 47 +#define TOKEN_COUNT 48 #define EXTERNAL_TOKEN_COUNT 0 -#define FIELD_COUNT 24 +#define FIELD_COUNT 25 #define MAX_ALIAS_SEQUENCE_LENGTH 8 -#define PRODUCTION_ID_COUNT 36 +#define PRODUCTION_ID_COUNT 37 enum { sym_identifier = 1, @@ -59,47 +59,49 @@ enum { anon_sym_end = 40, anon_sym_type = 41, anon_sym_COLON = 42, - anon_sym_function = 43, - anon_sym_primitive = 44, - anon_sym_var = 45, - anon_sym_import = 46, - sym_source_file = 47, - sym__expr = 48, - sym_string_literal = 49, - sym__lvalue = 50, - sym_record_value = 51, - sym_array_value = 52, - sym_function_call = 53, - sym_unary_expression = 54, - sym_binary_expression = 55, - sym_sequence_expression = 56, - sym_array_expression = 57, - sym_record_expression = 58, - sym_assignment_expression = 59, - sym_if_expression = 60, - sym_while_expression = 61, - sym_for_expression = 62, - sym_let_expression = 63, - aux_sym__declaration_chunks = 64, - sym__declaration_chunk = 65, - sym_type_declaration = 66, - sym__type = 67, - sym_type_alias = 68, - sym_record_type = 69, - sym__typed_field = 70, - sym_function_declaration = 71, - sym_primitive_declaration = 72, - sym__function_declaration_common = 73, - sym_parameters = 74, - sym_variable_declaration = 75, - sym_import_declaration = 76, - aux_sym_string_literal_repeat1 = 77, - aux_sym_function_call_repeat1 = 78, - aux_sym_sequence_expression_repeat1 = 79, - aux_sym_record_expression_repeat1 = 80, - aux_sym__declaration_chunk_repeat1 = 81, - aux_sym__declaration_chunk_repeat2 = 82, - aux_sym_record_type_repeat1 = 83, + anon_sym_array = 43, + anon_sym_function = 44, + anon_sym_primitive = 45, + anon_sym_var = 46, + anon_sym_import = 47, + sym_source_file = 48, + sym__expr = 49, + sym_string_literal = 50, + sym__lvalue = 51, + sym_record_value = 52, + sym_array_value = 53, + sym_function_call = 54, + sym_unary_expression = 55, + sym_binary_expression = 56, + sym_sequence_expression = 57, + sym_array_expression = 58, + sym_record_expression = 59, + sym_assignment_expression = 60, + sym_if_expression = 61, + sym_while_expression = 62, + sym_for_expression = 63, + sym_let_expression = 64, + aux_sym__declaration_chunks = 65, + sym__declaration_chunk = 66, + sym_type_declaration = 67, + sym__type = 68, + sym_type_alias = 69, + sym_record_type = 70, + sym__typed_field = 71, + sym_array_type = 72, + sym_function_declaration = 73, + sym_primitive_declaration = 74, + sym__function_declaration_common = 75, + sym_parameters = 76, + sym_variable_declaration = 77, + sym_import_declaration = 78, + aux_sym_string_literal_repeat1 = 79, + aux_sym_function_call_repeat1 = 80, + aux_sym_sequence_expression_repeat1 = 81, + aux_sym_record_expression_repeat1 = 82, + aux_sym__declaration_chunk_repeat1 = 83, + aux_sym__declaration_chunk_repeat2 = 84, + aux_sym_record_type_repeat1 = 85, }; static const char * const ts_symbol_names[] = { @@ -146,6 +148,7 @@ static const char * const ts_symbol_names[] = { [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", @@ -174,6 +177,7 @@ static const char * const ts_symbol_names[] = { [sym_type_alias] = "type_alias", [sym_record_type] = "record_type", [sym__typed_field] = "_typed_field", + [sym_array_type] = "array_type", [sym_function_declaration] = "function_declaration", [sym_primitive_declaration] = "primitive_declaration", [sym__function_declaration_common] = "_function_declaration_common", @@ -233,6 +237,7 @@ static const TSSymbol ts_symbol_map[] = { [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, @@ -261,6 +266,7 @@ static const TSSymbol ts_symbol_map[] = { [sym_type_alias] = sym_type_alias, [sym_record_type] = sym_record_type, [sym__typed_field] = sym__typed_field, + [sym_array_type] = sym_array_type, [sym_function_declaration] = sym_function_declaration, [sym_primitive_declaration] = sym_primitive_declaration, [sym__function_declaration_common] = sym__function_declaration_common, @@ -449,6 +455,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_array] = { + .visible = true, + .named = false, + }, [anon_sym_function] = { .visible = true, .named = false, @@ -561,6 +571,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = true, }, + [sym_array_type] = { + .visible = true, + .named = true, + }, [sym_function_declaration] = { .visible = true, .named = true, @@ -623,23 +637,24 @@ enum { field_condition = 5, field_consequence = 6, field_declarations = 7, - field_end = 8, - field_expression = 9, - field_field = 10, - field_file = 11, - field_function = 12, - field_index = 13, - field_init = 14, - field_left = 15, - field_name = 16, - field_operator = 17, - field_parameters = 18, - field_record = 19, - field_right = 20, - field_size = 21, - field_start = 22, - field_type = 23, - field_value = 24, + 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_right = 21, + field_size = 22, + field_start = 23, + field_type = 24, + field_value = 25, }; static const char * const ts_field_names[] = { @@ -651,6 +666,7 @@ static const char * const ts_field_names[] = { [field_condition] = "condition", [field_consequence] = "consequence", [field_declarations] = "declarations", + [field_element_type] = "element_type", [field_end] = "end", [field_expression] = "expression", [field_field] = "field", @@ -697,15 +713,16 @@ static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [24] = {.index = 47, .length = 3}, [25] = {.index = 50, .length = 3}, [26] = {.index = 53, .length = 2}, - [27] = {.index = 55, .length = 2}, - [28] = {.index = 57, .length = 6}, - [29] = {.index = 63, .length = 4}, - [30] = {.index = 67, .length = 3}, - [31] = {.index = 70, .length = 5}, - [32] = {.index = 75, .length = 4}, - [33] = {.index = 79, .length = 4}, - [34] = {.index = 83, .length = 4}, - [35] = {.index = 87, .length = 2}, + [27] = {.index = 55, .length = 1}, + [28] = {.index = 56, .length = 2}, + [29] = {.index = 58, .length = 6}, + [30] = {.index = 64, .length = 4}, + [31] = {.index = 68, .length = 3}, + [32] = {.index = 71, .length = 5}, + [33] = {.index = 76, .length = 4}, + [34] = {.index = 80, .length = 4}, + [35] = {.index = 84, .length = 4}, + [36] = {.index = 88, .length = 2}, }; static const TSFieldMapEntry ts_field_map_entries[] = { @@ -791,46 +808,48 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_name, 1, .inherited = true}, {field_type, 1, .inherited = true}, [55] = + {field_element_type, 2}, + [56] = {field_name, 0}, {field_type, 2}, - [57] = + [58] = {field_name, 1, .inherited = true}, {field_name, 2, .inherited = true}, {field_parameters, 1}, {field_parameters, 2}, {field_type, 1, .inherited = true}, {field_type, 2, .inherited = true}, - [63] = + [64] = {field_name, 0, .inherited = true}, {field_name, 1, .inherited = true}, {field_type, 0, .inherited = true}, {field_type, 1, .inherited = true}, - [67] = + [68] = {field_name, 1}, {field_type, 3}, {field_value, 5}, - [70] = + [71] = {field_field, 2}, {field_field, 5, .inherited = true}, {field_init, 4}, {field_init, 5, .inherited = true}, {field_type, 0}, - [75] = + [76] = {field_field, 0, .inherited = true}, {field_field, 1, .inherited = true}, {field_init, 0, .inherited = true}, {field_init, 1, .inherited = true}, - [79] = + [80] = {field_name, 1, .inherited = true}, {field_name, 2, .inherited = true}, {field_type, 1, .inherited = true}, {field_type, 2, .inherited = true}, - [83] = + [84] = {field_body, 7}, {field_end, 5}, {field_index, 1}, {field_start, 3}, - [87] = + [88] = {field_field, 1}, {field_init, 3}, }; @@ -1106,219 +1125,235 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { eof = lexer->eof(lexer); switch (state) { case 0: - if (lookahead == 'b') ADVANCE(1); - if (lookahead == 'd') ADVANCE(2); - if (lookahead == 'e') ADVANCE(3); - if (lookahead == 'f') ADVANCE(4); - if (lookahead == 'i') ADVANCE(5); - if (lookahead == 'l') ADVANCE(6); - if (lookahead == 'n') ADVANCE(7); - if (lookahead == 'o') ADVANCE(8); - if (lookahead == 'p') ADVANCE(9); - if (lookahead == 't') ADVANCE(10); - if (lookahead == 'v') ADVANCE(11); - if (lookahead == 'w') ADVANCE(12); + 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); if (lookahead == '\t' || lookahead == '\n' || lookahead == '\r' || lookahead == ' ') SKIP(0) END_STATE(); case 1: - if (lookahead == 'r') ADVANCE(13); + if (lookahead == 'r') ADVANCE(14); END_STATE(); case 2: - if (lookahead == 'o') ADVANCE(14); + if (lookahead == 'r') ADVANCE(15); END_STATE(); case 3: - if (lookahead == 'l') ADVANCE(15); - if (lookahead == 'n') ADVANCE(16); + if (lookahead == 'o') ADVANCE(16); END_STATE(); case 4: - if (lookahead == 'o') ADVANCE(17); - if (lookahead == 'u') ADVANCE(18); + if (lookahead == 'l') ADVANCE(17); + if (lookahead == 'n') ADVANCE(18); END_STATE(); case 5: - if (lookahead == 'f') ADVANCE(19); - if (lookahead == 'm') ADVANCE(20); - if (lookahead == 'n') ADVANCE(21); + if (lookahead == 'o') ADVANCE(19); + if (lookahead == 'u') ADVANCE(20); END_STATE(); case 6: - if (lookahead == 'e') ADVANCE(22); + if (lookahead == 'f') ADVANCE(21); + if (lookahead == 'm') ADVANCE(22); + if (lookahead == 'n') ADVANCE(23); END_STATE(); case 7: - if (lookahead == 'i') ADVANCE(23); + if (lookahead == 'e') ADVANCE(24); END_STATE(); case 8: - if (lookahead == 'f') ADVANCE(24); + if (lookahead == 'i') ADVANCE(25); END_STATE(); case 9: - if (lookahead == 'r') ADVANCE(25); + if (lookahead == 'f') ADVANCE(26); END_STATE(); case 10: - if (lookahead == 'h') ADVANCE(26); - if (lookahead == 'o') ADVANCE(27); - if (lookahead == 'y') ADVANCE(28); + if (lookahead == 'r') ADVANCE(27); END_STATE(); case 11: - if (lookahead == 'a') ADVANCE(29); + if (lookahead == 'h') ADVANCE(28); + if (lookahead == 'o') ADVANCE(29); + if (lookahead == 'y') ADVANCE(30); END_STATE(); case 12: - if (lookahead == 'h') ADVANCE(30); + if (lookahead == 'a') ADVANCE(31); END_STATE(); case 13: - if (lookahead == 'e') ADVANCE(31); + if (lookahead == 'h') ADVANCE(32); END_STATE(); case 14: - ACCEPT_TOKEN(anon_sym_do); + if (lookahead == 'r') ADVANCE(33); END_STATE(); case 15: - if (lookahead == 's') ADVANCE(32); + if (lookahead == 'e') ADVANCE(34); END_STATE(); case 16: - if (lookahead == 'd') ADVANCE(33); + ACCEPT_TOKEN(anon_sym_do); END_STATE(); case 17: - if (lookahead == 'r') ADVANCE(34); + if (lookahead == 's') ADVANCE(35); END_STATE(); case 18: - if (lookahead == 'n') ADVANCE(35); + if (lookahead == 'd') ADVANCE(36); END_STATE(); case 19: - ACCEPT_TOKEN(anon_sym_if); + if (lookahead == 'r') ADVANCE(37); END_STATE(); case 20: - if (lookahead == 'p') ADVANCE(36); + if (lookahead == 'n') ADVANCE(38); END_STATE(); case 21: - ACCEPT_TOKEN(anon_sym_in); + ACCEPT_TOKEN(anon_sym_if); END_STATE(); case 22: - if (lookahead == 't') ADVANCE(37); + if (lookahead == 'p') ADVANCE(39); END_STATE(); case 23: - if (lookahead == 'l') ADVANCE(38); + ACCEPT_TOKEN(anon_sym_in); END_STATE(); case 24: - ACCEPT_TOKEN(anon_sym_of); + if (lookahead == 't') ADVANCE(40); END_STATE(); case 25: - if (lookahead == 'i') ADVANCE(39); + if (lookahead == 'l') ADVANCE(41); END_STATE(); case 26: - if (lookahead == 'e') ADVANCE(40); + ACCEPT_TOKEN(anon_sym_of); END_STATE(); case 27: - ACCEPT_TOKEN(anon_sym_to); + if (lookahead == 'i') ADVANCE(42); END_STATE(); case 28: - if (lookahead == 'p') ADVANCE(41); + if (lookahead == 'e') ADVANCE(43); END_STATE(); case 29: - if (lookahead == 'r') ADVANCE(42); + ACCEPT_TOKEN(anon_sym_to); END_STATE(); case 30: - if (lookahead == 'i') ADVANCE(43); + if (lookahead == 'p') ADVANCE(44); END_STATE(); case 31: - if (lookahead == 'a') ADVANCE(44); + if (lookahead == 'r') ADVANCE(45); END_STATE(); case 32: - if (lookahead == 'e') ADVANCE(45); + if (lookahead == 'i') ADVANCE(46); END_STATE(); case 33: - ACCEPT_TOKEN(anon_sym_end); + if (lookahead == 'a') ADVANCE(47); END_STATE(); case 34: - ACCEPT_TOKEN(anon_sym_for); + if (lookahead == 'a') ADVANCE(48); END_STATE(); case 35: - if (lookahead == 'c') ADVANCE(46); + if (lookahead == 'e') ADVANCE(49); END_STATE(); case 36: - if (lookahead == 'o') ADVANCE(47); + ACCEPT_TOKEN(anon_sym_end); END_STATE(); case 37: - ACCEPT_TOKEN(anon_sym_let); + ACCEPT_TOKEN(anon_sym_for); END_STATE(); case 38: - ACCEPT_TOKEN(sym_nil_literal); + if (lookahead == 'c') ADVANCE(50); END_STATE(); case 39: - if (lookahead == 'm') ADVANCE(48); + if (lookahead == 'o') ADVANCE(51); END_STATE(); case 40: - if (lookahead == 'n') ADVANCE(49); + ACCEPT_TOKEN(anon_sym_let); END_STATE(); case 41: - if (lookahead == 'e') ADVANCE(50); + ACCEPT_TOKEN(sym_nil_literal); END_STATE(); case 42: - ACCEPT_TOKEN(anon_sym_var); + if (lookahead == 'm') ADVANCE(52); END_STATE(); case 43: - if (lookahead == 'l') ADVANCE(51); + if (lookahead == 'n') ADVANCE(53); END_STATE(); case 44: - if (lookahead == 'k') ADVANCE(52); + if (lookahead == 'e') ADVANCE(54); END_STATE(); case 45: - ACCEPT_TOKEN(anon_sym_else); + ACCEPT_TOKEN(anon_sym_var); END_STATE(); case 46: - if (lookahead == 't') ADVANCE(53); + if (lookahead == 'l') ADVANCE(55); END_STATE(); case 47: - if (lookahead == 'r') ADVANCE(54); + if (lookahead == 'y') ADVANCE(56); END_STATE(); case 48: - if (lookahead == 'i') ADVANCE(55); + if (lookahead == 'k') ADVANCE(57); END_STATE(); case 49: - ACCEPT_TOKEN(anon_sym_then); + ACCEPT_TOKEN(anon_sym_else); END_STATE(); case 50: - ACCEPT_TOKEN(anon_sym_type); - END_STATE(); - case 51: - if (lookahead == 'e') ADVANCE(56); - END_STATE(); - case 52: - ACCEPT_TOKEN(sym_break_expression); - END_STATE(); - case 53: - if (lookahead == 'i') ADVANCE(57); - END_STATE(); - case 54: 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 == 't') ADVANCE(59); + if (lookahead == 'e') ADVANCE(61); END_STATE(); case 56: - ACCEPT_TOKEN(anon_sym_while); + ACCEPT_TOKEN(anon_sym_array); END_STATE(); case 57: - if (lookahead == 'o') ADVANCE(60); + ACCEPT_TOKEN(sym_break_expression); END_STATE(); case 58: - ACCEPT_TOKEN(anon_sym_import); + if (lookahead == 'i') ADVANCE(62); END_STATE(); case 59: - if (lookahead == 'i') ADVANCE(61); + if (lookahead == 't') ADVANCE(63); END_STATE(); case 60: - if (lookahead == 'n') ADVANCE(62); + if (lookahead == 't') ADVANCE(64); END_STATE(); case 61: - if (lookahead == 'v') ADVANCE(63); + ACCEPT_TOKEN(anon_sym_while); END_STATE(); case 62: - ACCEPT_TOKEN(anon_sym_function); + if (lookahead == 'o') ADVANCE(65); END_STATE(); case 63: - if (lookahead == 'e') ADVANCE(64); + 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: @@ -1396,10 +1431,10 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [66] = {.lex_state = 9}, [67] = {.lex_state = 9}, [68] = {.lex_state = 0}, - [69] = {.lex_state = 0}, + [69] = {.lex_state = 9}, [70] = {.lex_state = 9}, [71] = {.lex_state = 9}, - [72] = {.lex_state = 9}, + [72] = {.lex_state = 0}, [73] = {.lex_state = 0}, [74] = {.lex_state = 9}, [75] = {.lex_state = 9}, @@ -1407,12 +1442,12 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [77] = {.lex_state = 0}, [78] = {.lex_state = 0}, [79] = {.lex_state = 9}, - [80] = {.lex_state = 0}, + [80] = {.lex_state = 9}, [81] = {.lex_state = 9}, [82] = {.lex_state = 0}, - [83] = {.lex_state = 9}, - [84] = {.lex_state = 9}, - [85] = {.lex_state = 0}, + [83] = {.lex_state = 0}, + [84] = {.lex_state = 0}, + [85] = {.lex_state = 9}, [86] = {.lex_state = 9}, [87] = {.lex_state = 9}, [88] = {.lex_state = 9}, @@ -1428,48 +1463,51 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [98] = {.lex_state = 9}, [99] = {.lex_state = 9}, [100] = {.lex_state = 9}, - [101] = {.lex_state = 1}, - [102] = {.lex_state = 0}, + [101] = {.lex_state = 9}, + [102] = {.lex_state = 1}, [103] = {.lex_state = 1}, - [104] = {.lex_state = 1}, - [105] = {.lex_state = 0}, + [104] = {.lex_state = 0}, + [105] = {.lex_state = 1}, [106] = {.lex_state = 0}, [107] = {.lex_state = 0}, - [108] = {.lex_state = 0}, - [109] = {.lex_state = 9}, + [108] = {.lex_state = 9}, + [109] = {.lex_state = 0}, [110] = {.lex_state = 0}, - [111] = {.lex_state = 9}, - [112] = {.lex_state = 9}, - [113] = {.lex_state = 9}, - [114] = {.lex_state = 0}, + [111] = {.lex_state = 0}, + [112] = {.lex_state = 0}, + [113] = {.lex_state = 0}, + [114] = {.lex_state = 9}, [115] = {.lex_state = 0}, [116] = {.lex_state = 0}, - [117] = {.lex_state = 0}, + [117] = {.lex_state = 9}, [118] = {.lex_state = 0}, - [119] = {.lex_state = 0}, - [120] = {.lex_state = 9}, - [121] = {.lex_state = 0}, - [122] = {.lex_state = 9}, - [123] = {.lex_state = 0}, - [124] = {.lex_state = 0}, + [119] = {.lex_state = 9}, + [120] = {.lex_state = 0}, + [121] = {.lex_state = 9}, + [122] = {.lex_state = 0}, + [123] = {.lex_state = 9}, + [124] = {.lex_state = 9}, [125] = {.lex_state = 9}, - [126] = {.lex_state = 9}, - [127] = {.lex_state = 9}, - [128] = {.lex_state = 0}, - [129] = {.lex_state = 0}, - [130] = {.lex_state = 0}, + [126] = {.lex_state = 0}, + [127] = {.lex_state = 0}, + [128] = {.lex_state = 9}, + [129] = {.lex_state = 9}, + [130] = {.lex_state = 9}, [131] = {.lex_state = 0}, [132] = {.lex_state = 9}, [133] = {.lex_state = 0}, - [134] = {.lex_state = 9}, - [135] = {.lex_state = 0}, + [134] = {.lex_state = 0}, + [135] = {.lex_state = 9}, [136] = {.lex_state = 9}, - [137] = {.lex_state = 0}, - [138] = {.lex_state = 9}, + [137] = {.lex_state = 9}, + [138] = {.lex_state = 0}, [139] = {.lex_state = 0}, - [140] = {.lex_state = 9}, + [140] = {.lex_state = 0}, [141] = {.lex_state = 9}, - [142] = {.lex_state = 9}, + [142] = {.lex_state = 0}, + [143] = {.lex_state = 0}, + [144] = {.lex_state = 9}, + [145] = {.lex_state = 9}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -1516,29 +1554,30 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [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), }, [1] = { - [sym_source_file] = STATE(128), - [sym__expr] = STATE(85), - [sym_string_literal] = STATE(85), + [sym_source_file] = STATE(133), + [sym__expr] = STATE(84), + [sym_string_literal] = STATE(84), [sym__lvalue] = STATE(5), [sym_record_value] = STATE(5), [sym_array_value] = STATE(5), - [sym_function_call] = STATE(85), - [sym_unary_expression] = STATE(85), - [sym_binary_expression] = STATE(85), - [sym_sequence_expression] = STATE(85), - [sym_array_expression] = STATE(85), - [sym_record_expression] = STATE(85), - [sym_assignment_expression] = STATE(85), - [sym_if_expression] = STATE(85), - [sym_while_expression] = STATE(85), - [sym_for_expression] = STATE(85), - [sym_let_expression] = STATE(85), + [sym_function_call] = STATE(84), + [sym_unary_expression] = STATE(84), + [sym_binary_expression] = STATE(84), + [sym_sequence_expression] = STATE(84), + [sym_array_expression] = STATE(84), + [sym_record_expression] = STATE(84), + [sym_assignment_expression] = STATE(84), + [sym_if_expression] = STATE(84), + [sym_while_expression] = STATE(84), + [sym_for_expression] = STATE(84), + [sym_let_expression] = STATE(84), [aux_sym__declaration_chunks] = STATE(74), [sym__declaration_chunk] = STATE(74), [sym_type_declaration] = STATE(74), @@ -1717,30 +1756,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_primitive, anon_sym_var, anon_sym_import, - [162] = 7, - ACTIONS(72), 1, - anon_sym_AMP, - ACTIONS(74), 1, - anon_sym_PIPE, + [162] = 2, ACTIONS(64), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(66), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(70), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(68), 4, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_EQ, - anon_sym_LT_GT, - ACTIONS(62), 17, + ACTIONS(62), 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, @@ -1754,25 +1788,129 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_primitive, anon_sym_var, anon_sym_import, - [206] = 2, + [196] = 4, + ACTIONS(68), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(70), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(72), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(66), 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, + [234] = 3, + ACTIONS(70), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(72), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(66), 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, + [270] = 2, + ACTIONS(72), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(66), 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, + [304] = 7, + ACTIONS(80), 1, + anon_sym_AMP, + ACTIONS(82), 1, + anon_sym_PIPE, + ACTIONS(68), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(70), 2, + anon_sym_STAR, + anon_sym_SLASH, ACTIONS(78), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(76), 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, + ACTIONS(76), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, - anon_sym_AMP, - anon_sym_PIPE, + ACTIONS(74), 17, + ts_builtin_sym_end, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_RPAREN, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_then, @@ -1786,11 +1924,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_primitive, anon_sym_var, anon_sym_import, - [240] = 2, - ACTIONS(82), 2, + [348] = 2, + ACTIONS(86), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(80), 27, + ACTIONS(84), 27, ts_builtin_sym_end, anon_sym_RBRACK, anon_sym_COMMA, @@ -1818,30 +1956,60 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_primitive, anon_sym_var, anon_sym_import, - [274] = 7, - ACTIONS(72), 1, - anon_sym_AMP, - ACTIONS(74), 1, - anon_sym_PIPE, - ACTIONS(64), 2, + [382] = 2, + 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_PLUS, - ACTIONS(66), 2, 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, + [416] = 5, + ACTIONS(68), 2, + anon_sym_DASH, + anon_sym_PLUS, ACTIONS(70), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(78), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(68), 4, + ACTIONS(76), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, - ACTIONS(84), 17, + ACTIONS(66), 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, @@ -1855,11 +2023,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_primitive, anon_sym_var, anon_sym_import, - [318] = 2, - ACTIONS(88), 2, + [456] = 2, + ACTIONS(94), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(86), 27, + ACTIONS(92), 27, ts_builtin_sym_end, anon_sym_RBRACK, anon_sym_COMMA, @@ -1887,25 +2055,30 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_primitive, anon_sym_var, anon_sym_import, - [352] = 2, - ACTIONS(92), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(90), 27, - ts_builtin_sym_end, - anon_sym_RBRACK, - anon_sym_COMMA, - anon_sym_RPAREN, + [490] = 7, + ACTIONS(80), 1, + anon_sym_AMP, + ACTIONS(82), 1, + anon_sym_PIPE, + ACTIONS(68), 2, anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(70), 2, anon_sym_STAR, anon_sym_SLASH, - anon_sym_PLUS, + ACTIONS(78), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(76), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, - anon_sym_AMP, - anon_sym_PIPE, + ACTIONS(96), 17, + ts_builtin_sym_end, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_RPAREN, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_then, @@ -1919,39 +2092,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_primitive, anon_sym_var, anon_sym_import, - [386] = 2, - ACTIONS(96), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(94), 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] = 2, + [534] = 2, ACTIONS(100), 2, anon_sym_LT, anon_sym_GT, @@ -1983,122 +2124,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_primitive, anon_sym_var, anon_sym_import, - [454] = 2, - ACTIONS(104), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(102), 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, + [568] = 7, + ACTIONS(80), 1, anon_sym_AMP, + ACTIONS(82), 1, 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, - [488] = 2, - ACTIONS(108), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(106), 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, - [522] = 2, - ACTIONS(112), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(110), 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, - [556] = 7, - ACTIONS(72), 1, - anon_sym_AMP, - ACTIONS(74), 1, - anon_sym_PIPE, - ACTIONS(64), 2, + ACTIONS(68), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(66), 2, - anon_sym_STAR, - anon_sym_SLASH, ACTIONS(70), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(78), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(68), 4, + ACTIONS(76), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, - ACTIONS(114), 17, + ACTIONS(102), 17, ts_builtin_sym_end, anon_sym_RBRACK, anon_sym_COMMA, @@ -2116,30 +2161,189 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_primitive, anon_sym_var, anon_sym_import, - [600] = 7, - ACTIONS(72), 1, - anon_sym_AMP, - ACTIONS(74), 1, - anon_sym_PIPE, - ACTIONS(64), 2, + [612] = 2, + 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_PLUS, - ACTIONS(66), 2, 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, + [646] = 2, + 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, + [680] = 2, + ACTIONS(114), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(112), 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, + [714] = 2, + ACTIONS(118), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(116), 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] = 2, + 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, + [782] = 6, + ACTIONS(80), 1, + anon_sym_AMP, + ACTIONS(68), 2, + anon_sym_DASH, + anon_sym_PLUS, ACTIONS(70), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(78), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(68), 4, + ACTIONS(76), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, - ACTIONS(116), 17, + ACTIONS(66), 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, @@ -2153,11 +2357,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_primitive, anon_sym_var, anon_sym_import, - [644] = 2, - ACTIONS(120), 2, + [824] = 2, + ACTIONS(126), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(118), 27, + ACTIONS(124), 27, ts_builtin_sym_end, anon_sym_RBRACK, anon_sym_COMMA, @@ -2185,63 +2389,94 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_primitive, anon_sym_var, anon_sym_import, - [678] = 8, - ACTIONS(72), 1, - anon_sym_AMP, - ACTIONS(74), 1, - anon_sym_PIPE, - ACTIONS(124), 1, - anon_sym_else, - ACTIONS(64), 2, + [858] = 2, + 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_PLUS, - ACTIONS(66), 2, 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, + [892] = 2, + 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, + [926] = 7, + ACTIONS(80), 1, + anon_sym_AMP, + ACTIONS(82), 1, + anon_sym_PIPE, + ACTIONS(68), 2, + anon_sym_DASH, + anon_sym_PLUS, ACTIONS(70), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(68), 4, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_EQ, - anon_sym_LT_GT, - ACTIONS(122), 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, - [724] = 2, - ACTIONS(128), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(126), 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, + ACTIONS(78), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(76), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, - anon_sym_AMP, - anon_sym_PIPE, + ACTIONS(136), 17, + ts_builtin_sym_end, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_RPAREN, anon_sym_SEMI, anon_sym_RBRACE, anon_sym_then, @@ -2255,72 +2490,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_primitive, anon_sym_var, anon_sym_import, - [758] = 3, - ACTIONS(66), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(132), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(130), 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, - [794] = 2, - ACTIONS(136), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(134), 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, - [828] = 2, + [970] = 2, ACTIONS(140), 2, anon_sym_LT, anon_sym_GT, @@ -2352,7 +2522,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_primitive, anon_sym_var, anon_sym_import, - [862] = 2, + [1004] = 2, ACTIONS(144), 2, anon_sym_LT, anon_sym_GT, @@ -2384,26 +2554,58 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_primitive, anon_sym_var, anon_sym_import, - [896] = 7, - ACTIONS(72), 1, - anon_sym_AMP, - ACTIONS(74), 1, - anon_sym_PIPE, - ACTIONS(64), 2, + [1038] = 2, + ACTIONS(148), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(146), 27, + ts_builtin_sym_end, + anon_sym_RBRACK, + anon_sym_COMMA, + anon_sym_RPAREN, anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(66), 2, 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, + [1072] = 7, + ACTIONS(80), 1, + anon_sym_AMP, + ACTIONS(82), 1, + anon_sym_PIPE, + ACTIONS(68), 2, + anon_sym_DASH, + anon_sym_PLUS, ACTIONS(70), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(78), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(68), 4, + ACTIONS(76), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, - ACTIONS(146), 17, + ACTIONS(150), 17, ts_builtin_sym_end, anon_sym_RBRACK, anon_sym_COMMA, @@ -2421,198 +2623,35 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_primitive, anon_sym_var, anon_sym_import, - [940] = 2, - ACTIONS(150), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(148), 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, + [1116] = 8, + ACTIONS(80), 1, anon_sym_AMP, + ACTIONS(82), 1, anon_sym_PIPE, - anon_sym_SEMI, - anon_sym_RBRACE, - anon_sym_then, + ACTIONS(154), 1, 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, - [974] = 6, - ACTIONS(72), 1, - anon_sym_AMP, - ACTIONS(64), 2, + ACTIONS(68), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(66), 2, - anon_sym_STAR, - anon_sym_SLASH, ACTIONS(70), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(68), 4, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_EQ, - anon_sym_LT_GT, - ACTIONS(130), 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, - [1016] = 5, - ACTIONS(64), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(66), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(70), 2, + ACTIONS(78), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(68), 4, + ACTIONS(76), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, - ACTIONS(130), 19, + ACTIONS(152), 16, 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, - [1056] = 2, - ACTIONS(154), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(152), 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, - [1090] = 4, - ACTIONS(64), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(66), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(132), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(130), 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, - [1128] = 2, - ACTIONS(132), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(130), 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, @@ -2704,7 +2743,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(21), 1, anon_sym_let, ACTIONS(166), 1, - anon_sym_end, + anon_sym_RPAREN, ACTIONS(164), 3, sym_nil_literal, sym_integer_literal, @@ -2713,7 +2752,7 @@ static const uint16_t ts_small_parse_table[] = { sym__lvalue, sym_record_value, sym_array_value, - STATE(70), 13, + STATE(73), 13, sym__expr, sym_string_literal, sym_function_call, @@ -2745,7 +2784,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(21), 1, anon_sym_let, ACTIONS(170), 1, - anon_sym_RPAREN, + anon_sym_end, ACTIONS(168), 3, sym_nil_literal, sym_integer_literal, @@ -2754,7 +2793,7 @@ static const uint16_t ts_small_parse_table[] = { sym__lvalue, sym_record_value, sym_array_value, - STATE(73), 13, + STATE(71), 13, sym__expr, sym_string_literal, sym_function_call, @@ -2786,7 +2825,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(21), 1, anon_sym_let, ACTIONS(174), 1, - anon_sym_RPAREN, + anon_sym_end, ACTIONS(172), 3, sym_nil_literal, sym_integer_literal, @@ -2795,7 +2834,7 @@ static const uint16_t ts_small_parse_table[] = { sym__lvalue, sym_record_value, sym_array_value, - STATE(68), 13, + STATE(75), 13, sym__expr, sym_string_literal, sym_function_call, @@ -2827,7 +2866,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(21), 1, anon_sym_let, ACTIONS(178), 1, - anon_sym_end, + anon_sym_RPAREN, ACTIONS(176), 3, sym_nil_literal, sym_integer_literal, @@ -2836,7 +2875,7 @@ static const uint16_t ts_small_parse_table[] = { sym__lvalue, sym_record_value, sym_array_value, - STATE(71), 13, + STATE(72), 13, sym__expr, sym_string_literal, sym_function_call, @@ -2875,7 +2914,7 @@ static const uint16_t ts_small_parse_table[] = { sym__lvalue, sym_record_value, sym_array_value, - STATE(6), 13, + STATE(15), 13, sym__expr, sym_string_literal, sym_function_call, @@ -2914,7 +2953,7 @@ static const uint16_t ts_small_parse_table[] = { sym__lvalue, sym_record_value, sym_array_value, - STATE(9), 13, + STATE(79), 13, sym__expr, sym_string_literal, sym_function_call, @@ -2953,7 +2992,7 @@ static const uint16_t ts_small_parse_table[] = { sym__lvalue, sym_record_value, sym_array_value, - STATE(69), 13, + STATE(7), 13, sym__expr, sym_string_literal, sym_function_call, @@ -2992,7 +3031,7 @@ static const uint16_t ts_small_parse_table[] = { sym__lvalue, sym_record_value, sym_array_value, - STATE(26), 13, + STATE(13), 13, sym__expr, sym_string_literal, sym_function_call, @@ -3031,7 +3070,7 @@ static const uint16_t ts_small_parse_table[] = { sym__lvalue, sym_record_value, sym_array_value, - STATE(78), 13, + STATE(8), 13, sym__expr, sym_string_literal, sym_function_call, @@ -3070,7 +3109,7 @@ static const uint16_t ts_small_parse_table[] = { sym__lvalue, sym_record_value, sym_array_value, - STATE(17), 13, + STATE(81), 13, sym__expr, sym_string_literal, sym_function_call, @@ -3109,7 +3148,7 @@ static const uint16_t ts_small_parse_table[] = { sym__lvalue, sym_record_value, sym_array_value, - STATE(22), 13, + STATE(82), 13, sym__expr, sym_string_literal, sym_function_call, @@ -3148,7 +3187,7 @@ static const uint16_t ts_small_parse_table[] = { sym__lvalue, sym_record_value, sym_array_value, - STATE(32), 13, + STATE(80), 13, sym__expr, sym_string_literal, sym_function_call, @@ -3187,7 +3226,7 @@ static const uint16_t ts_small_parse_table[] = { sym__lvalue, sym_record_value, sym_array_value, - STATE(31), 13, + STATE(77), 13, sym__expr, sym_string_literal, sym_function_call, @@ -3226,7 +3265,7 @@ static const uint16_t ts_small_parse_table[] = { sym__lvalue, sym_record_value, sym_array_value, - STATE(29), 13, + STATE(68), 13, sym__expr, sym_string_literal, sym_function_call, @@ -3265,7 +3304,7 @@ static const uint16_t ts_small_parse_table[] = { sym__lvalue, sym_record_value, sym_array_value, - STATE(28), 13, + STATE(65), 13, sym__expr, sym_string_literal, sym_function_call, @@ -3304,7 +3343,7 @@ static const uint16_t ts_small_parse_table[] = { sym__lvalue, sym_record_value, sym_array_value, - STATE(83), 13, + STATE(78), 13, sym__expr, sym_string_literal, sym_function_call, @@ -3343,7 +3382,7 @@ static const uint16_t ts_small_parse_table[] = { sym__lvalue, sym_record_value, sym_array_value, - STATE(82), 13, + STATE(17), 13, sym__expr, sym_string_literal, sym_function_call, @@ -3382,7 +3421,7 @@ static const uint16_t ts_small_parse_table[] = { sym__lvalue, sym_record_value, sym_array_value, - STATE(25), 13, + STATE(85), 13, sym__expr, sym_string_literal, sym_function_call, @@ -3421,7 +3460,7 @@ static const uint16_t ts_small_parse_table[] = { sym__lvalue, sym_record_value, sym_array_value, - STATE(65), 13, + STATE(23), 13, sym__expr, sym_string_literal, sym_function_call, @@ -3460,7 +3499,7 @@ static const uint16_t ts_small_parse_table[] = { sym__lvalue, sym_record_value, sym_array_value, - STATE(64), 13, + STATE(66), 13, sym__expr, sym_string_literal, sym_function_call, @@ -3499,7 +3538,7 @@ static const uint16_t ts_small_parse_table[] = { sym__lvalue, sym_record_value, sym_array_value, - STATE(81), 13, + STATE(27), 13, sym__expr, sym_string_literal, sym_function_call, @@ -3538,7 +3577,7 @@ static const uint16_t ts_small_parse_table[] = { sym__lvalue, sym_record_value, sym_array_value, - STATE(77), 13, + STATE(83), 13, sym__expr, sym_string_literal, sym_function_call, @@ -3577,7 +3616,7 @@ static const uint16_t ts_small_parse_table[] = { sym__lvalue, sym_record_value, sym_array_value, - STATE(66), 13, + STATE(76), 13, sym__expr, sym_string_literal, sym_function_call, @@ -3616,7 +3655,7 @@ static const uint16_t ts_small_parse_table[] = { sym__lvalue, sym_record_value, sym_array_value, - STATE(80), 13, + STATE(64), 13, sym__expr, sym_string_literal, sym_function_call, @@ -3655,7 +3694,7 @@ static const uint16_t ts_small_parse_table[] = { sym__lvalue, sym_record_value, sym_array_value, - STATE(84), 13, + STATE(32), 13, sym__expr, sym_string_literal, sym_function_call, @@ -3694,7 +3733,7 @@ static const uint16_t ts_small_parse_table[] = { sym__lvalue, sym_record_value, sym_array_value, - STATE(76), 13, + STATE(10), 13, sym__expr, sym_string_literal, sym_function_call, @@ -3733,7 +3772,7 @@ static const uint16_t ts_small_parse_table[] = { sym__lvalue, sym_record_value, sym_array_value, - STATE(79), 13, + STATE(9), 13, sym__expr, sym_string_literal, sym_function_call, @@ -3772,7 +3811,7 @@ static const uint16_t ts_small_parse_table[] = { sym__lvalue, sym_record_value, sym_array_value, - STATE(20), 13, + STATE(26), 13, sym__expr, sym_string_literal, sym_function_call, @@ -3811,7 +3850,7 @@ static const uint16_t ts_small_parse_table[] = { sym__lvalue, sym_record_value, sym_array_value, - STATE(18), 13, + STATE(31), 13, sym__expr, sym_string_literal, sym_function_call, @@ -3826,20 +3865,20 @@ static const uint16_t ts_small_parse_table[] = { sym_for_expression, sym_let_expression, [2692] = 7, - ACTIONS(72), 1, + ACTIONS(80), 1, anon_sym_AMP, - ACTIONS(74), 1, + ACTIONS(82), 1, anon_sym_PIPE, - ACTIONS(64), 2, + ACTIONS(68), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(66), 2, + ACTIONS(70), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(70), 2, + ACTIONS(78), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(68), 4, + ACTIONS(76), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, @@ -3853,20 +3892,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_var, anon_sym_import, [2726] = 7, - ACTIONS(72), 1, + ACTIONS(80), 1, anon_sym_AMP, - ACTIONS(74), 1, + ACTIONS(82), 1, anon_sym_PIPE, - ACTIONS(64), 2, + ACTIONS(68), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(66), 2, + ACTIONS(70), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(70), 2, + ACTIONS(78), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(68), 4, + ACTIONS(76), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, @@ -3880,20 +3919,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_var, anon_sym_import, [2760] = 7, - ACTIONS(72), 1, + ACTIONS(80), 1, anon_sym_AMP, - ACTIONS(74), 1, + ACTIONS(82), 1, anon_sym_PIPE, - ACTIONS(64), 2, + ACTIONS(68), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(66), 2, + ACTIONS(70), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(70), 2, + ACTIONS(78), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(68), 4, + ACTIONS(76), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, @@ -3931,117 +3970,42 @@ static const uint16_t ts_small_parse_table[] = { aux_sym__declaration_chunk_repeat1, aux_sym__declaration_chunk_repeat2, [2825] = 9, - ACTIONS(72), 1, + ACTIONS(80), 1, anon_sym_AMP, - ACTIONS(74), 1, + ACTIONS(82), 1, anon_sym_PIPE, ACTIONS(253), 1, anon_sym_COMMA, ACTIONS(255), 1, - anon_sym_RPAREN, - STATE(107), 1, - aux_sym_function_call_repeat1, - ACTIONS(64), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(66), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(70), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(68), 4, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_EQ, - anon_sym_LT_GT, - [2859] = 9, - ACTIONS(72), 1, - anon_sym_AMP, - ACTIONS(74), 1, - anon_sym_PIPE, - ACTIONS(257), 1, - anon_sym_COMMA, - ACTIONS(259), 1, anon_sym_RBRACE, - STATE(106), 1, + STATE(118), 1, aux_sym_record_expression_repeat1, - ACTIONS(64), 2, + ACTIONS(68), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(66), 2, + ACTIONS(70), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(70), 2, + ACTIONS(78), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(68), 4, + ACTIONS(76), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, - [2893] = 9, - ACTIONS(72), 1, - anon_sym_AMP, - ACTIONS(74), 1, - anon_sym_PIPE, - ACTIONS(261), 1, - anon_sym_SEMI, - ACTIONS(263), 1, - anon_sym_end, - STATE(111), 1, - aux_sym_sequence_expression_repeat1, - ACTIONS(64), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(66), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(70), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(68), 4, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_EQ, - anon_sym_LT_GT, - [2927] = 9, - ACTIONS(72), 1, - anon_sym_AMP, - ACTIONS(74), 1, - anon_sym_PIPE, - ACTIONS(261), 1, - anon_sym_SEMI, - ACTIONS(265), 1, - anon_sym_end, - STATE(113), 1, - aux_sym_sequence_expression_repeat1, - ACTIONS(64), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(66), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(70), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(68), 4, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_EQ, - anon_sym_LT_GT, - [2961] = 7, - ACTIONS(267), 1, + [2859] = 7, + ACTIONS(257), 1, anon_sym_in, - ACTIONS(269), 1, + ACTIONS(259), 1, anon_sym_type, - ACTIONS(271), 1, + ACTIONS(261), 1, anon_sym_function, - ACTIONS(273), 1, + ACTIONS(263), 1, anon_sym_primitive, - ACTIONS(275), 1, + ACTIONS(265), 1, anon_sym_var, - ACTIONS(277), 1, + ACTIONS(267), 1, anon_sym_import, STATE(67), 9, aux_sym__declaration_chunks, @@ -4053,41 +4017,114 @@ static const uint16_t ts_small_parse_table[] = { sym_import_declaration, aux_sym__declaration_chunk_repeat1, aux_sym__declaration_chunk_repeat2, - [2991] = 9, - ACTIONS(72), 1, - anon_sym_AMP, - ACTIONS(74), 1, - anon_sym_PIPE, + [2889] = 7, + ACTIONS(259), 1, + anon_sym_type, ACTIONS(261), 1, + anon_sym_function, + ACTIONS(263), 1, + anon_sym_primitive, + ACTIONS(265), 1, + anon_sym_var, + ACTIONS(267), 1, + anon_sym_import, + ACTIONS(269), 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, + [2919] = 9, + ACTIONS(80), 1, + anon_sym_AMP, + ACTIONS(82), 1, + anon_sym_PIPE, + ACTIONS(271), 1, anon_sym_SEMI, - ACTIONS(279), 1, - anon_sym_RPAREN, - STATE(105), 1, + ACTIONS(273), 1, + anon_sym_end, + STATE(117), 1, aux_sym_sequence_expression_repeat1, - ACTIONS(64), 2, + ACTIONS(68), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(66), 2, + ACTIONS(70), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(70), 2, + ACTIONS(78), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(68), 4, + ACTIONS(76), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, - [3025] = 7, - ACTIONS(269), 1, - anon_sym_type, + [2953] = 9, + ACTIONS(80), 1, + anon_sym_AMP, + ACTIONS(82), 1, + anon_sym_PIPE, ACTIONS(271), 1, - anon_sym_function, - ACTIONS(273), 1, - anon_sym_primitive, + anon_sym_SEMI, ACTIONS(275), 1, - anon_sym_var, + anon_sym_RPAREN, + STATE(109), 1, + aux_sym_sequence_expression_repeat1, + ACTIONS(68), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(70), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(78), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(76), 4, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_EQ, + anon_sym_LT_GT, + [2987] = 9, + ACTIONS(80), 1, + anon_sym_AMP, + ACTIONS(82), 1, + anon_sym_PIPE, ACTIONS(277), 1, + anon_sym_COMMA, + ACTIONS(279), 1, + anon_sym_RPAREN, + STATE(111), 1, + aux_sym_function_call_repeat1, + ACTIONS(68), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(70), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(78), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(76), 4, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_EQ, + anon_sym_LT_GT, + [3021] = 7, + ACTIONS(259), 1, + anon_sym_type, + ACTIONS(261), 1, + anon_sym_function, + ACTIONS(263), 1, + anon_sym_primitive, + ACTIONS(265), 1, + anon_sym_var, + ACTIONS(267), 1, anon_sym_import, ACTIONS(281), 1, ts_builtin_sym_end, @@ -4101,239 +4138,241 @@ static const uint16_t ts_small_parse_table[] = { sym_import_declaration, aux_sym__declaration_chunk_repeat1, aux_sym__declaration_chunk_repeat2, - [3055] = 7, - ACTIONS(269), 1, - anon_sym_type, - ACTIONS(271), 1, - anon_sym_function, - ACTIONS(273), 1, - anon_sym_primitive, - ACTIONS(275), 1, - anon_sym_var, - ACTIONS(277), 1, - anon_sym_import, - ACTIONS(283), 1, - anon_sym_in, - STATE(72), 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, - [3085] = 7, - ACTIONS(72), 1, + [3051] = 9, + ACTIONS(80), 1, anon_sym_AMP, - ACTIONS(74), 1, + ACTIONS(82), 1, anon_sym_PIPE, - ACTIONS(64), 2, + ACTIONS(271), 1, + anon_sym_SEMI, + ACTIONS(283), 1, + anon_sym_end, + STATE(114), 1, + aux_sym_sequence_expression_repeat1, + ACTIONS(68), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(66), 2, + ACTIONS(70), 2, anon_sym_STAR, anon_sym_SLASH, + ACTIONS(78), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(76), 4, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_EQ, + anon_sym_LT_GT, + [3085] = 7, + ACTIONS(80), 1, + anon_sym_AMP, + ACTIONS(82), 1, + anon_sym_PIPE, + ACTIONS(68), 2, + anon_sym_DASH, + anon_sym_PLUS, ACTIONS(70), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(78), 2, anon_sym_LT, anon_sym_GT, ACTIONS(285), 3, anon_sym_RPAREN, anon_sym_SEMI, anon_sym_end, - ACTIONS(68), 4, + ACTIONS(76), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, [3115] = 7, - ACTIONS(72), 1, + ACTIONS(80), 1, anon_sym_AMP, - ACTIONS(74), 1, + ACTIONS(82), 1, anon_sym_PIPE, - ACTIONS(64), 2, + ACTIONS(68), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(66), 2, + ACTIONS(70), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(70), 2, + ACTIONS(78), 2, anon_sym_LT, anon_sym_GT, ACTIONS(287), 2, anon_sym_COMMA, - anon_sym_RPAREN, - ACTIONS(68), 4, + anon_sym_RBRACE, + ACTIONS(76), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, [3144] = 7, - ACTIONS(72), 1, + ACTIONS(80), 1, anon_sym_AMP, - ACTIONS(74), 1, + ACTIONS(82), 1, anon_sym_PIPE, - ACTIONS(64), 2, + ACTIONS(68), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(66), 2, + ACTIONS(70), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(70), 2, + ACTIONS(78), 2, anon_sym_LT, anon_sym_GT, ACTIONS(289), 2, anon_sym_COMMA, - anon_sym_RBRACE, - ACTIONS(68), 4, + anon_sym_RPAREN, + ACTIONS(76), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, [3173] = 7, - ACTIONS(72), 1, + ACTIONS(80), 1, anon_sym_AMP, - ACTIONS(74), 1, + ACTIONS(82), 1, anon_sym_PIPE, ACTIONS(291), 1, anon_sym_to, - ACTIONS(64), 2, + ACTIONS(68), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(66), 2, + ACTIONS(70), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(70), 2, + ACTIONS(78), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(68), 4, + ACTIONS(76), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, [3201] = 7, - ACTIONS(72), 1, + ACTIONS(80), 1, anon_sym_AMP, - ACTIONS(74), 1, + ACTIONS(82), 1, anon_sym_PIPE, ACTIONS(293), 1, - anon_sym_RBRACK, - ACTIONS(64), 2, + anon_sym_do, + ACTIONS(68), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(66), 2, + ACTIONS(70), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(70), 2, + ACTIONS(78), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(68), 4, + ACTIONS(76), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, [3229] = 7, - ACTIONS(72), 1, + ACTIONS(80), 1, anon_sym_AMP, - ACTIONS(74), 1, + ACTIONS(82), 1, anon_sym_PIPE, ACTIONS(295), 1, - anon_sym_do, - ACTIONS(64), 2, + anon_sym_then, + ACTIONS(68), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(66), 2, + ACTIONS(70), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(70), 2, + ACTIONS(78), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(68), 4, + ACTIONS(76), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, [3257] = 7, - ACTIONS(72), 1, + ACTIONS(80), 1, anon_sym_AMP, - ACTIONS(74), 1, + ACTIONS(82), 1, anon_sym_PIPE, ACTIONS(297), 1, anon_sym_RBRACK, - ACTIONS(64), 2, + ACTIONS(68), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(66), 2, + ACTIONS(70), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(70), 2, + ACTIONS(78), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(68), 4, + ACTIONS(76), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, [3285] = 7, - ACTIONS(72), 1, + ACTIONS(80), 1, anon_sym_AMP, - ACTIONS(74), 1, + ACTIONS(82), 1, anon_sym_PIPE, ACTIONS(299), 1, - anon_sym_then, - ACTIONS(64), 2, + anon_sym_RBRACK, + ACTIONS(68), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(66), 2, + ACTIONS(70), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(70), 2, + ACTIONS(78), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(68), 4, + ACTIONS(76), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, [3313] = 7, - ACTIONS(72), 1, + ACTIONS(80), 1, anon_sym_AMP, - ACTIONS(74), 1, + ACTIONS(82), 1, anon_sym_PIPE, - ACTIONS(301), 1, - anon_sym_do, - ACTIONS(64), 2, + ACTIONS(281), 1, + ts_builtin_sym_end, + ACTIONS(68), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(66), 2, + ACTIONS(70), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(70), 2, + ACTIONS(78), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(68), 4, + ACTIONS(76), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, anon_sym_LT_GT, [3341] = 7, - ACTIONS(72), 1, + ACTIONS(80), 1, anon_sym_AMP, - ACTIONS(74), 1, + ACTIONS(82), 1, anon_sym_PIPE, - ACTIONS(281), 1, - ts_builtin_sym_end, - ACTIONS(64), 2, + ACTIONS(301), 1, + anon_sym_do, + ACTIONS(68), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(66), 2, + ACTIONS(70), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(70), 2, + ACTIONS(78), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(68), 4, + ACTIONS(76), 4, anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_EQ, @@ -4469,166 +4508,168 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_primitive, anon_sym_var, anon_sym_import, - [3518] = 3, - ACTIONS(338), 1, - sym_identifier, + [3518] = 1, + 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, + [3528] = 4, ACTIONS(340), 1, + sym_identifier, + ACTIONS(342), 1, anon_sym_LBRACE, - STATE(95), 3, + ACTIONS(344), 1, + anon_sym_array, + STATE(97), 4, sym__type, sym_type_alias, sym_record_type, - [3530] = 3, - ACTIONS(342), 1, + sym_array_type, + [3544] = 3, + ACTIONS(346), 1, anon_sym_SEMI, - STATE(100), 1, + STATE(101), 1, aux_sym_sequence_expression_repeat1, ACTIONS(285), 2, anon_sym_RPAREN, anon_sym_end, - [3541] = 3, - ACTIONS(345), 1, + [3555] = 3, + ACTIONS(349), 1, anon_sym_DQUOTE, - STATE(103), 1, + STATE(102), 1, aux_sym_string_literal_repeat1, - ACTIONS(347), 2, + ACTIONS(351), 2, aux_sym_string_literal_token1, sym_escape_sequence, - [3552] = 3, - ACTIONS(349), 1, - anon_sym_COMMA, - STATE(102), 1, - aux_sym_record_type_repeat1, - ACTIONS(352), 2, - anon_sym_RPAREN, - anon_sym_RBRACE, - [3563] = 3, + [3566] = 3, ACTIONS(354), 1, anon_sym_DQUOTE, - STATE(103), 1, + STATE(102), 1, aux_sym_string_literal_repeat1, ACTIONS(356), 2, aux_sym_string_literal_token1, sym_escape_sequence, - [3574] = 3, - ACTIONS(359), 1, - anon_sym_DQUOTE, - STATE(101), 1, - aux_sym_string_literal_repeat1, + [3577] = 3, + ACTIONS(358), 1, + anon_sym_COMMA, + STATE(104), 1, + aux_sym_record_type_repeat1, ACTIONS(361), 2, + anon_sym_RPAREN, + anon_sym_RBRACE, + [3588] = 3, + ACTIONS(363), 1, + anon_sym_DQUOTE, + STATE(103), 1, + aux_sym_string_literal_repeat1, + ACTIONS(365), 2, aux_sym_string_literal_token1, sym_escape_sequence, - [3585] = 3, - ACTIONS(261), 1, - anon_sym_SEMI, - ACTIONS(363), 1, + [3599] = 3, + ACTIONS(289), 1, anon_sym_RPAREN, - STATE(100), 1, - aux_sym_sequence_expression_repeat1, - [3595] = 3, - ACTIONS(257), 1, - anon_sym_COMMA, - ACTIONS(365), 1, - anon_sym_RBRACE, - STATE(110), 1, - aux_sym_record_expression_repeat1, - [3605] = 3, - ACTIONS(253), 1, - anon_sym_COMMA, ACTIONS(367), 1, - anon_sym_RPAREN, - STATE(108), 1, - aux_sym_function_call_repeat1, - [3615] = 3, - ACTIONS(287), 1, - anon_sym_RPAREN, - ACTIONS(369), 1, anon_sym_COMMA, - STATE(108), 1, + STATE(106), 1, aux_sym_function_call_repeat1, - [3625] = 3, + [3609] = 1, + ACTIONS(370), 3, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACE, + [3615] = 3, ACTIONS(372), 1, sym_identifier, ACTIONS(374), 1, anon_sym_RPAREN, - STATE(118), 1, + STATE(115), 1, sym__typed_field, - [3635] = 3, + [3625] = 3, + ACTIONS(271), 1, + anon_sym_SEMI, ACTIONS(376), 1, + anon_sym_RPAREN, + STATE(101), 1, + aux_sym_sequence_expression_repeat1, + [3635] = 3, + ACTIONS(378), 1, anon_sym_COMMA, - ACTIONS(379), 1, + ACTIONS(381), 1, anon_sym_RBRACE, STATE(110), 1, aux_sym_record_expression_repeat1, [3645] = 3, - ACTIONS(261), 1, - anon_sym_SEMI, - ACTIONS(381), 1, - anon_sym_end, - STATE(100), 1, - aux_sym_sequence_expression_repeat1, - [3655] = 3, - ACTIONS(372), 1, - sym_identifier, + ACTIONS(277), 1, + anon_sym_COMMA, ACTIONS(383), 1, - anon_sym_RBRACE, - STATE(115), 1, - sym__typed_field, - [3665] = 3, - ACTIONS(261), 1, - anon_sym_SEMI, - ACTIONS(385), 1, - anon_sym_end, - STATE(100), 1, - aux_sym_sequence_expression_repeat1, - [3675] = 1, - ACTIONS(387), 3, + anon_sym_RPAREN, + STATE(106), 1, + aux_sym_function_call_repeat1, + [3655] = 1, + ACTIONS(385), 3, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_RBRACE, - [3681] = 3, - ACTIONS(389), 1, + [3661] = 3, + ACTIONS(387), 1, anon_sym_COMMA, - ACTIONS(391), 1, + ACTIONS(389), 1, anon_sym_RBRACE, - STATE(117), 1, + STATE(104), 1, aux_sym_record_type_repeat1, - [3691] = 1, - ACTIONS(393), 3, + [3671] = 3, + ACTIONS(271), 1, + anon_sym_SEMI, + ACTIONS(391), 1, + anon_sym_end, + STATE(101), 1, + aux_sym_sequence_expression_repeat1, + [3681] = 3, + ACTIONS(387), 1, anon_sym_COMMA, + ACTIONS(393), 1, anon_sym_RPAREN, - anon_sym_RBRACE, - [3697] = 3, - ACTIONS(389), 1, + STATE(120), 1, + aux_sym_record_type_repeat1, + [3691] = 3, + ACTIONS(387), 1, anon_sym_COMMA, ACTIONS(395), 1, anon_sym_RBRACE, - STATE(102), 1, + STATE(113), 1, aux_sym_record_type_repeat1, - [3707] = 3, - ACTIONS(389), 1, - anon_sym_COMMA, + [3701] = 3, + ACTIONS(271), 1, + anon_sym_SEMI, ACTIONS(397), 1, - anon_sym_RPAREN, - STATE(119), 1, - aux_sym_record_type_repeat1, - [3717] = 3, - ACTIONS(389), 1, + anon_sym_end, + STATE(101), 1, + aux_sym_sequence_expression_repeat1, + [3711] = 3, + ACTIONS(253), 1, anon_sym_COMMA, ACTIONS(399), 1, - anon_sym_RPAREN, - STATE(102), 1, - aux_sym_record_type_repeat1, - [3727] = 2, + anon_sym_RBRACE, + STATE(110), 1, + aux_sym_record_expression_repeat1, + [3721] = 3, ACTIONS(372), 1, sym_identifier, - STATE(114), 1, - sym__typed_field, - [3734] = 2, ACTIONS(401), 1, - anon_sym_COLON_EQ, + anon_sym_RBRACE, + STATE(116), 1, + sym__typed_field, + [3731] = 3, + ACTIONS(387), 1, + anon_sym_COMMA, ACTIONS(403), 1, - anon_sym_COLON, + anon_sym_RPAREN, + STATE(104), 1, + aux_sym_record_type_repeat1, [3741] = 2, ACTIONS(405), 1, sym_identifier, @@ -4637,71 +4678,87 @@ static const uint16_t ts_small_parse_table[] = { [3748] = 2, ACTIONS(409), 1, anon_sym_LPAREN, - STATE(90), 1, + STATE(89), 1, sym_parameters, [3755] = 2, - ACTIONS(9), 1, - anon_sym_DQUOTE, - STATE(97), 1, - sym_string_literal, + ACTIONS(372), 1, + sym_identifier, + STATE(107), 1, + sym__typed_field, [3762] = 2, ACTIONS(411), 1, sym_identifier, - STATE(92), 1, + STATE(131), 1, sym__function_declaration_common, [3769] = 2, ACTIONS(411), 1, sym_identifier, - STATE(133), 1, + STATE(94), 1, sym__function_declaration_common, - [3776] = 1, + [3776] = 2, ACTIONS(413), 1, - sym_identifier, - [3780] = 1, - ACTIONS(415), 1, - ts_builtin_sym_end, - [3784] = 1, - ACTIONS(417), 1, - anon_sym_COLON, - [3788] = 1, - ACTIONS(419), 1, - anon_sym_EQ, - [3792] = 1, - ACTIONS(421), 1, anon_sym_COLON_EQ, - [3796] = 1, + ACTIONS(415), 1, + anon_sym_COLON, + [3783] = 2, + ACTIONS(9), 1, + anon_sym_DQUOTE, + STATE(92), 1, + sym_string_literal, + [3790] = 1, + ACTIONS(417), 1, + anon_sym_of, + [3794] = 1, + ACTIONS(419), 1, + sym_identifier, + [3798] = 1, + ACTIONS(421), 1, + sym_identifier, + [3802] = 1, ACTIONS(423), 1, - sym_identifier, - [3800] = 1, + anon_sym_EQ, + [3806] = 1, ACTIONS(425), 1, - anon_sym_EQ, - [3804] = 1, - ACTIONS(427), 1, sym_identifier, - [3808] = 1, + [3810] = 1, + ACTIONS(427), 1, + ts_builtin_sym_end, + [3814] = 1, ACTIONS(429), 1, - anon_sym_EQ, - [3812] = 1, + anon_sym_COLON_EQ, + [3818] = 1, ACTIONS(431), 1, sym_identifier, - [3816] = 1, + [3822] = 1, ACTIONS(433), 1, - anon_sym_EQ, - [3820] = 1, + anon_sym_of, + [3826] = 1, ACTIONS(435), 1, sym_identifier, - [3824] = 1, + [3830] = 1, ACTIONS(437), 1, - anon_sym_COLON_EQ, - [3828] = 1, + anon_sym_EQ, + [3834] = 1, ACTIONS(439), 1, - sym_identifier, - [3832] = 1, + anon_sym_COLON, + [3838] = 1, ACTIONS(441), 1, - sym_identifier, - [3836] = 1, + anon_sym_COLON_EQ, + [3842] = 1, ACTIONS(443), 1, - anon_sym_of, + sym_identifier, + [3846] = 1, + ACTIONS(445), 1, + anon_sym_EQ, + [3850] = 1, + ACTIONS(447), 1, + anon_sym_EQ, + [3854] = 1, + ACTIONS(449), 1, + sym_identifier, + [3858] = 1, + ACTIONS(451), 1, + sym_identifier, }; static const uint32_t ts_small_parse_table_map[] = { @@ -4710,32 +4767,32 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(4)] = 82, [SMALL_STATE(5)] = 119, [SMALL_STATE(6)] = 162, - [SMALL_STATE(7)] = 206, - [SMALL_STATE(8)] = 240, - [SMALL_STATE(9)] = 274, - [SMALL_STATE(10)] = 318, - [SMALL_STATE(11)] = 352, - [SMALL_STATE(12)] = 386, - [SMALL_STATE(13)] = 420, - [SMALL_STATE(14)] = 454, - [SMALL_STATE(15)] = 488, - [SMALL_STATE(16)] = 522, - [SMALL_STATE(17)] = 556, - [SMALL_STATE(18)] = 600, - [SMALL_STATE(19)] = 644, - [SMALL_STATE(20)] = 678, - [SMALL_STATE(21)] = 724, - [SMALL_STATE(22)] = 758, - [SMALL_STATE(23)] = 794, - [SMALL_STATE(24)] = 828, - [SMALL_STATE(25)] = 862, - [SMALL_STATE(26)] = 896, - [SMALL_STATE(27)] = 940, - [SMALL_STATE(28)] = 974, - [SMALL_STATE(29)] = 1016, - [SMALL_STATE(30)] = 1056, - [SMALL_STATE(31)] = 1090, - [SMALL_STATE(32)] = 1128, + [SMALL_STATE(7)] = 196, + [SMALL_STATE(8)] = 234, + [SMALL_STATE(9)] = 270, + [SMALL_STATE(10)] = 304, + [SMALL_STATE(11)] = 348, + [SMALL_STATE(12)] = 382, + [SMALL_STATE(13)] = 416, + [SMALL_STATE(14)] = 456, + [SMALL_STATE(15)] = 490, + [SMALL_STATE(16)] = 534, + [SMALL_STATE(17)] = 568, + [SMALL_STATE(18)] = 612, + [SMALL_STATE(19)] = 646, + [SMALL_STATE(20)] = 680, + [SMALL_STATE(21)] = 714, + [SMALL_STATE(22)] = 748, + [SMALL_STATE(23)] = 782, + [SMALL_STATE(24)] = 824, + [SMALL_STATE(25)] = 858, + [SMALL_STATE(26)] = 892, + [SMALL_STATE(27)] = 926, + [SMALL_STATE(28)] = 970, + [SMALL_STATE(29)] = 1004, + [SMALL_STATE(30)] = 1038, + [SMALL_STATE(31)] = 1072, + [SMALL_STATE(32)] = 1116, [SMALL_STATE(33)] = 1162, [SMALL_STATE(34)] = 1196, [SMALL_STATE(35)] = 1230, @@ -4773,12 +4830,12 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(67)] = 2794, [SMALL_STATE(68)] = 2825, [SMALL_STATE(69)] = 2859, - [SMALL_STATE(70)] = 2893, - [SMALL_STATE(71)] = 2927, - [SMALL_STATE(72)] = 2961, - [SMALL_STATE(73)] = 2991, - [SMALL_STATE(74)] = 3025, - [SMALL_STATE(75)] = 3055, + [SMALL_STATE(70)] = 2889, + [SMALL_STATE(71)] = 2919, + [SMALL_STATE(72)] = 2953, + [SMALL_STATE(73)] = 2987, + [SMALL_STATE(74)] = 3021, + [SMALL_STATE(75)] = 3051, [SMALL_STATE(76)] = 3085, [SMALL_STATE(77)] = 3115, [SMALL_STATE(78)] = 3144, @@ -4803,49 +4860,52 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(97)] = 3498, [SMALL_STATE(98)] = 3508, [SMALL_STATE(99)] = 3518, - [SMALL_STATE(100)] = 3530, - [SMALL_STATE(101)] = 3541, - [SMALL_STATE(102)] = 3552, - [SMALL_STATE(103)] = 3563, - [SMALL_STATE(104)] = 3574, - [SMALL_STATE(105)] = 3585, - [SMALL_STATE(106)] = 3595, - [SMALL_STATE(107)] = 3605, + [SMALL_STATE(100)] = 3528, + [SMALL_STATE(101)] = 3544, + [SMALL_STATE(102)] = 3555, + [SMALL_STATE(103)] = 3566, + [SMALL_STATE(104)] = 3577, + [SMALL_STATE(105)] = 3588, + [SMALL_STATE(106)] = 3599, + [SMALL_STATE(107)] = 3609, [SMALL_STATE(108)] = 3615, [SMALL_STATE(109)] = 3625, [SMALL_STATE(110)] = 3635, [SMALL_STATE(111)] = 3645, [SMALL_STATE(112)] = 3655, - [SMALL_STATE(113)] = 3665, - [SMALL_STATE(114)] = 3675, + [SMALL_STATE(113)] = 3661, + [SMALL_STATE(114)] = 3671, [SMALL_STATE(115)] = 3681, [SMALL_STATE(116)] = 3691, - [SMALL_STATE(117)] = 3697, - [SMALL_STATE(118)] = 3707, - [SMALL_STATE(119)] = 3717, - [SMALL_STATE(120)] = 3727, - [SMALL_STATE(121)] = 3734, - [SMALL_STATE(122)] = 3741, - [SMALL_STATE(123)] = 3748, - [SMALL_STATE(124)] = 3755, - [SMALL_STATE(125)] = 3762, - [SMALL_STATE(126)] = 3769, - [SMALL_STATE(127)] = 3776, - [SMALL_STATE(128)] = 3780, - [SMALL_STATE(129)] = 3784, - [SMALL_STATE(130)] = 3788, - [SMALL_STATE(131)] = 3792, - [SMALL_STATE(132)] = 3796, - [SMALL_STATE(133)] = 3800, - [SMALL_STATE(134)] = 3804, - [SMALL_STATE(135)] = 3808, - [SMALL_STATE(136)] = 3812, - [SMALL_STATE(137)] = 3816, - [SMALL_STATE(138)] = 3820, - [SMALL_STATE(139)] = 3824, - [SMALL_STATE(140)] = 3828, - [SMALL_STATE(141)] = 3832, - [SMALL_STATE(142)] = 3836, + [SMALL_STATE(117)] = 3701, + [SMALL_STATE(118)] = 3711, + [SMALL_STATE(119)] = 3721, + [SMALL_STATE(120)] = 3731, + [SMALL_STATE(121)] = 3741, + [SMALL_STATE(122)] = 3748, + [SMALL_STATE(123)] = 3755, + [SMALL_STATE(124)] = 3762, + [SMALL_STATE(125)] = 3769, + [SMALL_STATE(126)] = 3776, + [SMALL_STATE(127)] = 3783, + [SMALL_STATE(128)] = 3790, + [SMALL_STATE(129)] = 3794, + [SMALL_STATE(130)] = 3798, + [SMALL_STATE(131)] = 3802, + [SMALL_STATE(132)] = 3806, + [SMALL_STATE(133)] = 3810, + [SMALL_STATE(134)] = 3814, + [SMALL_STATE(135)] = 3818, + [SMALL_STATE(136)] = 3822, + [SMALL_STATE(137)] = 3826, + [SMALL_STATE(138)] = 3830, + [SMALL_STATE(139)] = 3834, + [SMALL_STATE(140)] = 3838, + [SMALL_STATE(141)] = 3842, + [SMALL_STATE(142)] = 3846, + [SMALL_STATE(143)] = 3850, + [SMALL_STATE(144)] = 3854, + [SMALL_STATE(145)] = 3858, }; static const TSParseActionEntry ts_parse_actions[] = { @@ -4853,218 +4913,222 @@ static const TSParseActionEntry ts_parse_actions[] = { [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(), [3] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 0), [5] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2), - [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(85), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), - [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(50), - [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55), - [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(136), - [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(75), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(132), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(126), + [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(84), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(44), + [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(46), + [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(144), + [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(141), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(124), [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(125), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(140), - [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(124), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(130), + [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(127), [33] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__lvalue, 1), - [35] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__lvalue, 1), SHIFT(58), - [38] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [35] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__lvalue, 1), SHIFT(56), + [38] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), [40] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__lvalue, 1), - [42] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), - [44] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_value, 4, .production_id = 17), - [46] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_value, 4, .production_id = 17), - [48] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record_value, 3, .production_id = 8), - [50] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_record_value, 3, .production_id = 8), + [42] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), + [44] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record_value, 3, .production_id = 8), + [46] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_record_value, 3, .production_id = 8), + [48] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_value, 4, .production_id = 17), + [50] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_value, 4, .production_id = 17), [52] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr, 1), - [54] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), - [56] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [54] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), + [56] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), [58] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr, 1), - [60] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [62] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_expression, 6, .production_id = 22), - [64] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [66] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [68] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [70] = {.entry = {.count = 1, .reusable = false}}, SHIFT(47), - [72] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [74] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 4, .production_id = 10), - [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call, 4, .production_id = 10), - [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_let_expression, 6, .production_id = 25), - [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_let_expression, 6, .production_id = 25), - [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_expression, 6, .production_id = 24), - [86] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record_expression, 6, .production_id = 23), - [88] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_record_expression, 6, .production_id = 23), - [90] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 3, .production_id = 4), - [92] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call, 3, .production_id = 4), - [94] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_let_expression, 5, .production_id = 20), - [96] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_let_expression, 5, .production_id = 20), - [98] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_let_expression, 5, .production_id = 19), - [100] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_let_expression, 5, .production_id = 19), - [102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 5, .production_id = 18), - [104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call, 5, .production_id = 18), - [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_let_expression, 4, .production_id = 14), - [108] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_let_expression, 4, .production_id = 14), - [110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_let_expression, 4, .production_id = 13), - [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_let_expression, 4, .production_id = 13), - [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_expression, 8, .production_id = 34), - [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_expression, 4, .production_id = 12), - [118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_literal, 2), - [120] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_literal, 2), - [122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_expression, 4, .production_id = 11), - [124] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_expression, 4), - [128] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_expression, 4), - [130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_expression, 3, .production_id = 7), - [132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_expression, 3, .production_id = 7), - [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record_expression, 7, .production_id = 31), - [136] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_record_expression, 7, .production_id = 31), - [138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_expression, 2), - [140] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_expression, 2), - [142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment_expression, 3, .production_id = 9), - [144] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignment_expression, 3, .production_id = 9), - [146] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_expression, 2, .production_id = 1), - [148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_expression, 3), - [150] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_expression, 3), - [152] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_literal, 3), - [154] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_literal, 3), - [156] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_let_expression, 3), - [158] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_let_expression, 3), - [160] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record_expression, 3, .production_id = 5), - [162] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_record_expression, 3, .production_id = 5), - [164] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70), - [166] = {.entry = {.count = 1, .reusable = false}}, SHIFT(33), - [168] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73), - [170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [172] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68), - [174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), - [176] = {.entry = {.count = 1, .reusable = false}}, SHIFT(71), - [178] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15), - [180] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6), - [182] = {.entry = {.count = 1, .reusable = false}}, SHIFT(9), - [184] = {.entry = {.count = 1, .reusable = false}}, SHIFT(69), - [186] = {.entry = {.count = 1, .reusable = false}}, SHIFT(26), - [188] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78), - [190] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17), - [192] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22), - [194] = {.entry = {.count = 1, .reusable = false}}, SHIFT(32), - [196] = {.entry = {.count = 1, .reusable = false}}, SHIFT(31), - [198] = {.entry = {.count = 1, .reusable = false}}, SHIFT(29), - [200] = {.entry = {.count = 1, .reusable = false}}, SHIFT(28), - [202] = {.entry = {.count = 1, .reusable = false}}, SHIFT(83), - [204] = {.entry = {.count = 1, .reusable = false}}, SHIFT(82), - [206] = {.entry = {.count = 1, .reusable = false}}, SHIFT(25), - [208] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65), - [210] = {.entry = {.count = 1, .reusable = false}}, SHIFT(64), - [212] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81), - [214] = {.entry = {.count = 1, .reusable = false}}, SHIFT(77), - [216] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), - [218] = {.entry = {.count = 1, .reusable = false}}, SHIFT(80), - [220] = {.entry = {.count = 1, .reusable = false}}, SHIFT(84), - [222] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76), - [224] = {.entry = {.count = 1, .reusable = false}}, SHIFT(79), - [226] = {.entry = {.count = 1, .reusable = false}}, SHIFT(20), - [228] = {.entry = {.count = 1, .reusable = false}}, SHIFT(18), - [230] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 4, .production_id = 16), + [60] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [62] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_let_expression, 4, .production_id = 13), + [64] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_let_expression, 4, .production_id = 13), + [66] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_expression, 3, .production_id = 7), + [68] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [70] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [72] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_expression, 3, .production_id = 7), + [74] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_expression, 4, .production_id = 12), + [76] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [78] = {.entry = {.count = 1, .reusable = false}}, SHIFT(41), + [80] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [82] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_let_expression, 3), + [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_let_expression, 3), + [88] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record_expression, 7, .production_id = 32), + [90] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_record_expression, 7, .production_id = 32), + [92] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_let_expression, 6, .production_id = 25), + [94] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_let_expression, 6, .production_id = 25), + [96] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_expression, 6, .production_id = 24), + [98] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record_expression, 6, .production_id = 23), + [100] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_record_expression, 6, .production_id = 23), + [102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_expression, 6, .production_id = 22), + [104] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_expression, 3), + [106] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_expression, 3), + [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_let_expression, 5, .production_id = 20), + [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_let_expression, 5, .production_id = 20), + [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_literal, 2), + [114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_literal, 2), + [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_let_expression, 5, .production_id = 19), + [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_let_expression, 5, .production_id = 19), + [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record_expression, 3, .production_id = 5), + [122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_record_expression, 3, .production_id = 5), + [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 3, .production_id = 4), + [126] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call, 3, .production_id = 4), + [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_expression, 2), + [130] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_expression, 2), + [132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment_expression, 3, .production_id = 9), + [134] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignment_expression, 3, .production_id = 9), + [136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_expression, 2, .production_id = 1), + [138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 5, .production_id = 18), + [140] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call, 5, .production_id = 18), + [142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_literal, 3), + [144] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_literal, 3), + [146] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 4, .production_id = 10), + [148] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call, 4, .production_id = 10), + [150] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_expression, 8, .production_id = 35), + [152] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_expression, 4, .production_id = 11), + [154] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [156] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_sequence_expression, 4), + [158] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_sequence_expression, 4), + [160] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_let_expression, 4, .production_id = 14), + [162] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_let_expression, 4, .production_id = 14), + [164] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73), + [166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [168] = {.entry = {.count = 1, .reusable = false}}, SHIFT(71), + [170] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11), + [172] = {.entry = {.count = 1, .reusable = false}}, SHIFT(75), + [174] = {.entry = {.count = 1, .reusable = false}}, SHIFT(34), + [176] = {.entry = {.count = 1, .reusable = false}}, SHIFT(72), + [178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [180] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15), + [182] = {.entry = {.count = 1, .reusable = false}}, SHIFT(79), + [184] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7), + [186] = {.entry = {.count = 1, .reusable = false}}, SHIFT(13), + [188] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8), + [190] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81), + [192] = {.entry = {.count = 1, .reusable = false}}, SHIFT(82), + [194] = {.entry = {.count = 1, .reusable = false}}, SHIFT(80), + [196] = {.entry = {.count = 1, .reusable = false}}, SHIFT(77), + [198] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68), + [200] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65), + [202] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78), + [204] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17), + [206] = {.entry = {.count = 1, .reusable = false}}, SHIFT(85), + [208] = {.entry = {.count = 1, .reusable = false}}, SHIFT(23), + [210] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), + [212] = {.entry = {.count = 1, .reusable = false}}, SHIFT(27), + [214] = {.entry = {.count = 1, .reusable = false}}, SHIFT(83), + [216] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76), + [218] = {.entry = {.count = 1, .reusable = false}}, SHIFT(64), + [220] = {.entry = {.count = 1, .reusable = false}}, SHIFT(32), + [222] = {.entry = {.count = 1, .reusable = false}}, SHIFT(10), + [224] = {.entry = {.count = 1, .reusable = false}}, SHIFT(9), + [226] = {.entry = {.count = 1, .reusable = false}}, SHIFT(26), + [228] = {.entry = {.count = 1, .reusable = false}}, SHIFT(31), + [230] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_declaration, 6, .production_id = 31), [232] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_declaration, 4, .production_id = 15), - [234] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_declaration, 6, .production_id = 30), + [234] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 4, .production_id = 16), [236] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__declaration_chunks, 2), - [238] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declaration_chunks, 2), SHIFT_REPEAT(132), - [241] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declaration_chunks, 2), SHIFT_REPEAT(126), + [238] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declaration_chunks, 2), SHIFT_REPEAT(141), + [241] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declaration_chunks, 2), SHIFT_REPEAT(124), [244] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declaration_chunks, 2), SHIFT_REPEAT(125), - [247] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declaration_chunks, 2), SHIFT_REPEAT(140), - [250] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declaration_chunks, 2), SHIFT_REPEAT(124), - [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141), - [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), - [261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), - [271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), - [273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), - [275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140), - [277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), - [279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [247] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declaration_chunks, 2), SHIFT_REPEAT(130), + [250] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declaration_chunks, 2), SHIFT_REPEAT(127), + [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), + [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141), + [261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), + [263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), + [265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), + [267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), + [269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), [281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), [285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_sequence_expression_repeat1, 2), - [287] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_call_repeat1, 2), - [289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_record_expression_repeat1, 4, .production_id = 35), - [291] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [293] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), - [295] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), - [297] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [299] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), - [301] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [287] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_record_expression_repeat1, 4, .production_id = 36), + [289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_call_repeat1, 2), + [291] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [293] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [295] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [297] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [299] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136), + [301] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), [303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__declaration_chunk_repeat2, 2), - [305] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declaration_chunk_repeat2, 2), SHIFT_REPEAT(126), + [305] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declaration_chunk_repeat2, 2), SHIFT_REPEAT(124), [308] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declaration_chunk_repeat2, 2), SHIFT_REPEAT(125), [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__declaration_chunk_repeat1, 2), - [313] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declaration_chunk_repeat1, 2), SHIFT_REPEAT(132), - [316] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 2), - [318] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 4, .production_id = 28), - [320] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_declaration_common, 2, .production_id = 6), - [322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 3, .production_id = 21), - [324] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primitive_declaration, 2, .production_id = 2), - [326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_alias, 1), - [328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record_type, 3, .production_id = 26), - [330] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_declaration, 4, .production_id = 15), - [332] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record_type, 4, .production_id = 33), - [334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_declaration, 2, .production_id = 3), + [313] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declaration_chunk_repeat1, 2), SHIFT_REPEAT(141), + [316] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 3, .production_id = 21), + [318] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_declaration_common, 2, .production_id = 6), + [320] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 2), + [322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 4, .production_id = 29), + [324] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_declaration, 2, .production_id = 3), + [326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record_type, 3, .production_id = 26), + [328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primitive_declaration, 2, .production_id = 2), + [330] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_alias, 1), + [332] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 3, .production_id = 27), + [334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_declaration, 4, .production_id = 15), [336] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record_type, 2), - [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), - [342] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sequence_expression_repeat1, 2), SHIFT_REPEAT(60), - [345] = {.entry = {.count = 1, .reusable = false}}, SHIFT(30), - [347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), - [349] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_record_type_repeat1, 2, .production_id = 29), SHIFT_REPEAT(120), - [352] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_record_type_repeat1, 2, .production_id = 29), - [354] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_literal_repeat1, 2), - [356] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_string_literal_repeat1, 2), SHIFT_REPEAT(103), - [359] = {.entry = {.count = 1, .reusable = false}}, SHIFT(19), - [361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), - [363] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [365] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [367] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [369] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_call_repeat1, 2), SHIFT_REPEAT(56), - [372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), - [374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [376] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_record_expression_repeat1, 2, .production_id = 32), SHIFT_REPEAT(141), - [379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_record_expression_repeat1, 2, .production_id = 32), - [381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), - [385] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [387] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_record_type_repeat1, 2, .production_id = 26), - [389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), - [391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [393] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__typed_field, 3, .production_id = 27), - [395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), - [399] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), - [401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [403] = {.entry = {.count = 1, .reusable = false}}, SHIFT(134), - [405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), - [407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), - [411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), - [413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), - [415] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), - [419] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [421] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [423] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137), - [425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [427] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), - [429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), - [431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), - [433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), - [435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), - [441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), - [443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [338] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record_type, 4, .production_id = 34), + [340] = {.entry = {.count = 1, .reusable = false}}, SHIFT(95), + [342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), + [344] = {.entry = {.count = 1, .reusable = false}}, SHIFT(128), + [346] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_sequence_expression_repeat1, 2), SHIFT_REPEAT(57), + [349] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_literal_repeat1, 2), + [351] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_string_literal_repeat1, 2), SHIFT_REPEAT(102), + [354] = {.entry = {.count = 1, .reusable = false}}, SHIFT(29), + [356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), + [358] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_record_type_repeat1, 2, .production_id = 30), SHIFT_REPEAT(123), + [361] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_record_type_repeat1, 2, .production_id = 30), + [363] = {.entry = {.count = 1, .reusable = false}}, SHIFT(20), + [365] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), + [367] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_call_repeat1, 2), SHIFT_REPEAT(50), + [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_record_type_repeat1, 2, .production_id = 26), + [372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), + [374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), + [376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [378] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_record_expression_repeat1, 2, .production_id = 33), SHIFT_REPEAT(135), + [381] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_record_expression_repeat1, 2, .production_id = 33), + [383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [385] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__typed_field, 3, .production_id = 28), + [387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), + [389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), + [391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), + [395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [399] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), + [405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), + [407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), + [411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), + [413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [415] = {.entry = {.count = 1, .reusable = false}}, SHIFT(145), + [417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), + [419] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [421] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), + [423] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [427] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), + [433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), + [437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137), + [441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143), + [445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), + [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140), }; #ifdef __cplusplus diff --git a/test/corpus/declarations.txt b/test/corpus/declarations.txt index 3108e0f..d07ca12 100644 --- a/test/corpus/declarations.txt +++ b/test/corpus/declarations.txt @@ -81,6 +81,37 @@ type record = { a: int, } type: (identifier) (ERROR)))) +================================================================================ +Array type declaration +================================================================================ + +type array_of_int = array of int + +-------------------------------------------------------------------------------- + +(source_file + (type_declaration + name: (identifier) + value: (array_type + element_type: (identifier)))) + +================================================================================ +Array type declaration non-associativity +================================================================================ + +type array_of_array_of_int = array of array of int + +-------------------------------------------------------------------------------- + +(source_file + (ERROR + (type_declaration + name: (identifier) + value: (array_type + element_type: (identifier))) + (identifier)) + (identifier)) + ================================================================================ Function declaration ================================================================================