From e6ff25ee15e54b66ca1c9cfdc9e2a6569a388bd9 Mon Sep 17 00:00:00 2001 From: Yorick Peterse Date: Wed, 24 Apr 2024 21:35:20 +0200 Subject: [PATCH] Parse extern imports --- bindings/rust/build.rs | 3 + grammar.js | 8 + src/grammar.json | 63 + src/node-types.json | 36 +- src/parser.c | 6813 +++++++++++++++++++------------------- src/tree_sitter/parser.h | 51 +- test/corpus/imports.txt | 13 + 7 files changed, 3645 insertions(+), 3342 deletions(-) diff --git a/bindings/rust/build.rs b/bindings/rust/build.rs index dafb622..6790dbb 100644 --- a/bindings/rust/build.rs +++ b/bindings/rust/build.rs @@ -4,6 +4,9 @@ fn main() { let mut c_config = cc::Build::new(); c_config.std("c11").include(src_dir); + #[cfg(target_env = "msvc")] + c_config.flag("-utf-8"); + let parser_path = src_dir.join("parser.c"); c_config.file(&parser_path); println!("cargo:rerun-if-changed={}", parser_path.to_str().unwrap()); diff --git a/grammar.js b/grammar.js index 6eb9353..108690a 100644 --- a/grammar.js +++ b/grammar.js @@ -27,6 +27,7 @@ module.exports = grammar({ rules: { source_file: $ => repeat($._top_level), _top_level: $ => choice( + $.extern_import, $.import, $.external_function, $.module_method, @@ -52,6 +53,13 @@ module.exports = grammar({ import_as($.constant, $.constant), ), tags: $ => seq('if', list($.identifier, 'and', false)), + extern_import: $ => seq( + 'import', + 'extern', + field('path', alias($.extern_import_path, $.path)), + field('tags', optional($.tags)), + ), + extern_import_path: $ => seq('"', /[^"]*/, '"'), // Methods external_function: $ => seq( diff --git a/src/grammar.json b/src/grammar.json index 326c32d..1ea4209 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -12,6 +12,10 @@ "_top_level": { "type": "CHOICE", "members": [ + { + "type": "SYMBOL", + "name": "extern_import" + }, { "type": "SYMBOL", "name": "import" @@ -332,6 +336,65 @@ } ] }, + "extern_import": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "import" + }, + { + "type": "STRING", + "value": "extern" + }, + { + "type": "FIELD", + "name": "path", + "content": { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "extern_import_path" + }, + "named": true, + "value": "path" + } + }, + { + "type": "FIELD", + "name": "tags", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "tags" + }, + { + "type": "BLANK" + } + ] + } + } + ] + }, + "extern_import_path": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "\"" + }, + { + "type": "PATTERN", + "value": "[^\"]*" + }, + { + "type": "STRING", + "value": "\"" + } + ] + }, "external_function": { "type": "SEQ", "members": [ diff --git a/src/node-types.json b/src/node-types.json index f07376b..623883f 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -239,6 +239,32 @@ ] } }, + { + "type": "extern_import", + "named": true, + "fields": { + "path": { + "multiple": false, + "required": true, + "types": [ + { + "type": "path", + "named": true + } + ] + }, + "tags": { + "multiple": false, + "required": false, + "types": [ + { + "type": "tags", + "named": true + } + ] + } + } + }, { "type": "external_function", "named": true, @@ -826,7 +852,7 @@ "fields": {}, "children": { "multiple": true, - "required": true, + "required": false, "types": [ { "type": "identifier", @@ -971,6 +997,10 @@ "type": "class", "named": true }, + { + "type": "extern_import", + "named": true + }, { "type": "external_function", "named": true @@ -1223,6 +1253,10 @@ } } }, + { + "type": "\"", + "named": false + }, { "type": "(", "named": false diff --git a/src/parser.c b/src/parser.c index 96354ef..acb46e0 100644 --- a/src/parser.c +++ b/src/parser.c @@ -5,15 +5,15 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 429 +#define STATE_COUNT 435 #define LARGE_STATE_COUNT 2 -#define SYMBOL_COUNT 104 +#define SYMBOL_COUNT 108 #define ALIAS_COUNT 1 -#define TOKEN_COUNT 40 +#define TOKEN_COUNT 42 #define EXTERNAL_TOKEN_COUNT 0 #define FIELD_COUNT 16 #define MAX_ALIAS_SEQUENCE_LENGTH 8 -#define PRODUCTION_ID_COUNT 104 +#define PRODUCTION_ID_COUNT 106 enum ts_symbol_identifiers { sym_identifier = 1, @@ -25,101 +25,105 @@ enum ts_symbol_identifiers { anon_sym_as = 7, anon_sym_if = 8, anon_sym_and = 9, - anon_sym_fn = 10, - anon_sym_extern = 11, - anon_sym_COLON = 12, - anon_sym_DOT_DOT_DOT = 13, - anon_sym_DASH_GT = 14, - anon_sym_LBRACK = 15, - anon_sym_RBRACK = 16, - anon_sym_PLUS = 17, - anon_sym_mut = 18, - sym_visibility = 19, - anon_sym_move = 20, - anon_sym_asyncmut = 21, - anon_sym_async = 22, - anon_sym_static = 23, - anon_sym_class = 24, - anon_sym_builtin = 25, - anon_sym_enum = 26, - anon_sym_LBRACE = 27, - anon_sym_RBRACE = 28, - anon_sym_let = 29, - anon_sym_case = 30, - anon_sym_trait = 31, - anon_sym_impl = 32, - anon_sym_for = 33, - anon_sym_ref = 34, - anon_sym_uni = 35, - sym_self = 36, - sym_line_comment = 37, - sym_field_name = 38, - sym_constant = 39, - sym_source_file = 40, - sym__top_level = 41, - sym_import = 42, - sym_path = 43, - sym_symbols = 44, - sym__symbol = 45, - sym_import_as = 46, - sym_tags = 47, - sym_external_function = 48, - sym_extern_arguments = 49, - sym_module_method = 50, - sym_method_arguments = 51, - sym_argument = 52, - sym_rest_argument = 53, - sym__returns = 54, - sym_type_parameters = 55, - sym_type_parameter = 56, - sym_type_parameter_requirements = 57, - sym__type_parameter_requirement = 58, - sym_mutable_requirement = 59, - sym__method_modifier = 60, - sym_class = 61, - sym__class_modifier = 62, - sym_class_body = 63, - sym__class_expression = 64, - sym_field = 65, - sym_case = 66, - sym_case_arguments = 67, - sym_class_method = 68, - sym_trait = 69, - sym_trait_body = 70, - sym_trait_method = 71, - sym__trait_method_modifier = 72, - sym_required_traits = 73, - sym__required_trait = 74, - sym_implement_trait = 75, - sym_implement_trait_body = 76, - sym_bounds = 77, - sym_bound = 78, - sym_bound_requirements = 79, - sym_reopen_class = 80, - sym_reopen_class_body = 81, - sym__type = 82, - sym_generic_type = 83, - sym_type_arguments = 84, - sym_ref_type = 85, - sym_mut_type = 86, - sym_uni_type = 87, - sym_fn_type = 88, - sym_fn_type_arguments = 89, - sym_block = 90, - aux_sym_source_file_repeat1 = 91, - aux_sym_path_repeat1 = 92, - aux_sym_symbols_repeat1 = 93, - aux_sym_tags_repeat1 = 94, - aux_sym_extern_arguments_repeat1 = 95, - aux_sym_type_parameters_repeat1 = 96, - aux_sym_type_parameter_requirements_repeat1 = 97, - aux_sym_class_body_repeat1 = 98, - aux_sym_case_arguments_repeat1 = 99, - aux_sym_trait_body_repeat1 = 100, - aux_sym_required_traits_repeat1 = 101, - aux_sym_implement_trait_body_repeat1 = 102, - aux_sym_bounds_repeat1 = 103, - alias_sym_type = 104, + anon_sym_extern = 10, + anon_sym_DQUOTE = 11, + aux_sym_extern_import_path_token1 = 12, + anon_sym_fn = 13, + anon_sym_COLON = 14, + anon_sym_DOT_DOT_DOT = 15, + anon_sym_DASH_GT = 16, + anon_sym_LBRACK = 17, + anon_sym_RBRACK = 18, + anon_sym_PLUS = 19, + anon_sym_mut = 20, + sym_visibility = 21, + anon_sym_move = 22, + anon_sym_asyncmut = 23, + anon_sym_async = 24, + anon_sym_static = 25, + anon_sym_class = 26, + anon_sym_builtin = 27, + anon_sym_enum = 28, + anon_sym_LBRACE = 29, + anon_sym_RBRACE = 30, + anon_sym_let = 31, + anon_sym_case = 32, + anon_sym_trait = 33, + anon_sym_impl = 34, + anon_sym_for = 35, + anon_sym_ref = 36, + anon_sym_uni = 37, + sym_self = 38, + sym_line_comment = 39, + sym_field_name = 40, + sym_constant = 41, + sym_source_file = 42, + sym__top_level = 43, + sym_import = 44, + sym_path = 45, + sym_symbols = 46, + sym__symbol = 47, + sym_import_as = 48, + sym_tags = 49, + sym_extern_import = 50, + sym_extern_import_path = 51, + sym_external_function = 52, + sym_extern_arguments = 53, + sym_module_method = 54, + sym_method_arguments = 55, + sym_argument = 56, + sym_rest_argument = 57, + sym__returns = 58, + sym_type_parameters = 59, + sym_type_parameter = 60, + sym_type_parameter_requirements = 61, + sym__type_parameter_requirement = 62, + sym_mutable_requirement = 63, + sym__method_modifier = 64, + sym_class = 65, + sym__class_modifier = 66, + sym_class_body = 67, + sym__class_expression = 68, + sym_field = 69, + sym_case = 70, + sym_case_arguments = 71, + sym_class_method = 72, + sym_trait = 73, + sym_trait_body = 74, + sym_trait_method = 75, + sym__trait_method_modifier = 76, + sym_required_traits = 77, + sym__required_trait = 78, + sym_implement_trait = 79, + sym_implement_trait_body = 80, + sym_bounds = 81, + sym_bound = 82, + sym_bound_requirements = 83, + sym_reopen_class = 84, + sym_reopen_class_body = 85, + sym__type = 86, + sym_generic_type = 87, + sym_type_arguments = 88, + sym_ref_type = 89, + sym_mut_type = 90, + sym_uni_type = 91, + sym_fn_type = 92, + sym_fn_type_arguments = 93, + sym_block = 94, + aux_sym_source_file_repeat1 = 95, + aux_sym_path_repeat1 = 96, + aux_sym_symbols_repeat1 = 97, + aux_sym_tags_repeat1 = 98, + aux_sym_extern_arguments_repeat1 = 99, + aux_sym_type_parameters_repeat1 = 100, + aux_sym_type_parameter_requirements_repeat1 = 101, + aux_sym_class_body_repeat1 = 102, + aux_sym_case_arguments_repeat1 = 103, + aux_sym_trait_body_repeat1 = 104, + aux_sym_required_traits_repeat1 = 105, + aux_sym_implement_trait_body_repeat1 = 106, + aux_sym_bounds_repeat1 = 107, + alias_sym_type = 108, }; static const char * const ts_symbol_names[] = { @@ -133,8 +137,10 @@ static const char * const ts_symbol_names[] = { [anon_sym_as] = "as", [anon_sym_if] = "if", [anon_sym_and] = "and", - [anon_sym_fn] = "fn", [anon_sym_extern] = "extern", + [anon_sym_DQUOTE] = "\"", + [aux_sym_extern_import_path_token1] = "extern_import_path_token1", + [anon_sym_fn] = "fn", [anon_sym_COLON] = ":", [anon_sym_DOT_DOT_DOT] = "...", [anon_sym_DASH_GT] = "->", @@ -171,6 +177,8 @@ static const char * const ts_symbol_names[] = { [sym__symbol] = "_symbol", [sym_import_as] = "import_as", [sym_tags] = "tags", + [sym_extern_import] = "extern_import", + [sym_extern_import_path] = "path", [sym_external_function] = "external_function", [sym_extern_arguments] = "arguments", [sym_module_method] = "module_method", @@ -241,8 +249,10 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_as] = anon_sym_as, [anon_sym_if] = anon_sym_if, [anon_sym_and] = anon_sym_and, - [anon_sym_fn] = anon_sym_fn, [anon_sym_extern] = anon_sym_extern, + [anon_sym_DQUOTE] = anon_sym_DQUOTE, + [aux_sym_extern_import_path_token1] = aux_sym_extern_import_path_token1, + [anon_sym_fn] = anon_sym_fn, [anon_sym_COLON] = anon_sym_COLON, [anon_sym_DOT_DOT_DOT] = anon_sym_DOT_DOT_DOT, [anon_sym_DASH_GT] = anon_sym_DASH_GT, @@ -279,6 +289,8 @@ static const TSSymbol ts_symbol_map[] = { [sym__symbol] = sym__symbol, [sym_import_as] = sym_import_as, [sym_tags] = sym_tags, + [sym_extern_import] = sym_extern_import, + [sym_extern_import_path] = sym_path, [sym_external_function] = sym_external_function, [sym_extern_arguments] = sym_extern_arguments, [sym_module_method] = sym_module_method, @@ -379,11 +391,19 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [anon_sym_fn] = { + [anon_sym_extern] = { .visible = true, .named = false, }, - [anon_sym_extern] = { + [anon_sym_DQUOTE] = { + .visible = true, + .named = false, + }, + [aux_sym_extern_import_path_token1] = { + .visible = false, + .named = false, + }, + [anon_sym_fn] = { .visible = true, .named = false, }, @@ -531,6 +551,14 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym_extern_import] = { + .visible = true, + .named = true, + }, + [sym_extern_import_path] = { + .visible = true, + .named = true, + }, [sym_external_function] = { .visible = true, .named = true, @@ -802,555 +830,562 @@ static const char * const ts_field_names[] = { static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [1] = {.index = 0, .length = 1}, - [2] = {.index = 1, .length = 2}, - [3] = {.index = 3, .length = 2}, - [4] = {.index = 5, .length = 1}, - [5] = {.index = 6, .length = 2}, - [6] = {.index = 8, .length = 2}, - [7] = {.index = 10, .length = 3}, - [8] = {.index = 13, .length = 2}, - [9] = {.index = 15, .length = 2}, - [10] = {.index = 17, .length = 2}, - [11] = {.index = 19, .length = 2}, - [12] = {.index = 21, .length = 3}, - [14] = {.index = 24, .length = 1}, - [15] = {.index = 25, .length = 3}, - [16] = {.index = 28, .length = 3}, - [17] = {.index = 31, .length = 3}, - [18] = {.index = 34, .length = 3}, - [19] = {.index = 37, .length = 3}, - [20] = {.index = 40, .length = 3}, - [21] = {.index = 43, .length = 3}, - [22] = {.index = 46, .length = 3}, - [23] = {.index = 49, .length = 3}, - [24] = {.index = 52, .length = 3}, - [25] = {.index = 55, .length = 3}, - [26] = {.index = 58, .length = 4}, - [27] = {.index = 62, .length = 4}, - [28] = {.index = 66, .length = 4}, - [29] = {.index = 70, .length = 1}, - [30] = {.index = 71, .length = 1}, - [31] = {.index = 72, .length = 1}, - [32] = {.index = 73, .length = 2}, - [33] = {.index = 75, .length = 4}, - [34] = {.index = 79, .length = 4}, - [35] = {.index = 83, .length = 4}, - [36] = {.index = 87, .length = 4}, - [37] = {.index = 91, .length = 1}, - [38] = {.index = 92, .length = 4}, - [39] = {.index = 96, .length = 4}, - [40] = {.index = 100, .length = 4}, - [41] = {.index = 104, .length = 3}, - [42] = {.index = 104, .length = 3}, + [2] = {.index = 1, .length = 1}, + [3] = {.index = 2, .length = 2}, + [4] = {.index = 4, .length = 2}, + [5] = {.index = 6, .length = 1}, + [6] = {.index = 7, .length = 2}, + [7] = {.index = 9, .length = 2}, + [8] = {.index = 11, .length = 2}, + [9] = {.index = 13, .length = 3}, + [10] = {.index = 16, .length = 2}, + [11] = {.index = 18, .length = 2}, + [12] = {.index = 20, .length = 2}, + [13] = {.index = 22, .length = 2}, + [14] = {.index = 24, .length = 3}, + [16] = {.index = 27, .length = 1}, + [17] = {.index = 28, .length = 3}, + [18] = {.index = 31, .length = 3}, + [19] = {.index = 34, .length = 3}, + [20] = {.index = 37, .length = 3}, + [21] = {.index = 40, .length = 3}, + [22] = {.index = 43, .length = 3}, + [23] = {.index = 46, .length = 3}, + [24] = {.index = 49, .length = 3}, + [25] = {.index = 52, .length = 3}, + [26] = {.index = 55, .length = 3}, + [27] = {.index = 58, .length = 3}, + [28] = {.index = 61, .length = 4}, + [29] = {.index = 65, .length = 4}, + [30] = {.index = 69, .length = 4}, + [31] = {.index = 73, .length = 1}, + [32] = {.index = 74, .length = 1}, + [33] = {.index = 75, .length = 1}, + [34] = {.index = 76, .length = 2}, + [35] = {.index = 78, .length = 4}, + [36] = {.index = 82, .length = 4}, + [37] = {.index = 86, .length = 4}, + [38] = {.index = 90, .length = 4}, + [39] = {.index = 94, .length = 1}, + [40] = {.index = 95, .length = 4}, + [41] = {.index = 99, .length = 4}, + [42] = {.index = 103, .length = 4}, [43] = {.index = 107, .length = 3}, - [44] = {.index = 110, .length = 4}, - [45] = {.index = 114, .length = 4}, - [46] = {.index = 118, .length = 4}, - [47] = {.index = 122, .length = 4}, - [48] = {.index = 126, .length = 5}, - [49] = {.index = 131, .length = 5}, - [50] = {.index = 136, .length = 5}, - [51] = {.index = 141, .length = 2}, - [52] = {.index = 143, .length = 2}, - [53] = {.index = 145, .length = 5}, - [54] = {.index = 150, .length = 5}, - [55] = {.index = 155, .length = 2}, - [56] = {.index = 157, .length = 5}, - [57] = {.index = 162, .length = 2}, - [58] = {.index = 164, .length = 2}, - [59] = {.index = 166, .length = 2}, - [60] = {.index = 168, .length = 2}, - [61] = {.index = 170, .length = 4}, - [62] = {.index = 170, .length = 4}, - [63] = {.index = 174, .length = 5}, - [64] = {.index = 179, .length = 6}, - [65] = {.index = 185, .length = 2}, - [66] = {.index = 187, .length = 3}, - [67] = {.index = 190, .length = 3}, - [68] = {.index = 193, .length = 3}, - [69] = {.index = 196, .length = 3}, - [70] = {.index = 199, .length = 3}, - [71] = {.index = 202, .length = 3}, - [72] = {.index = 205, .length = 3}, - [73] = {.index = 208, .length = 3}, - [74] = {.index = 211, .length = 3}, - [75] = {.index = 214, .length = 3}, - [76] = {.index = 217, .length = 4}, - [77] = {.index = 221, .length = 4}, - [78] = {.index = 225, .length = 4}, - [79] = {.index = 229, .length = 4}, - [80] = {.index = 233, .length = 4}, - [81] = {.index = 237, .length = 4}, - [82] = {.index = 241, .length = 4}, - [83] = {.index = 245, .length = 4}, - [84] = {.index = 249, .length = 4}, - [85] = {.index = 253, .length = 4}, - [86] = {.index = 257, .length = 4}, - [87] = {.index = 261, .length = 4}, - [88] = {.index = 265, .length = 5}, - [89] = {.index = 270, .length = 5}, - [90] = {.index = 275, .length = 5}, - [91] = {.index = 280, .length = 5}, - [92] = {.index = 285, .length = 5}, - [93] = {.index = 290, .length = 5}, - [94] = {.index = 295, .length = 5}, - [95] = {.index = 300, .length = 5}, - [96] = {.index = 305, .length = 5}, - [97] = {.index = 310, .length = 5}, - [98] = {.index = 315, .length = 6}, - [99] = {.index = 321, .length = 6}, - [100] = {.index = 327, .length = 6}, - [101] = {.index = 333, .length = 6}, - [102] = {.index = 339, .length = 6}, - [103] = {.index = 345, .length = 7}, + [44] = {.index = 107, .length = 3}, + [45] = {.index = 110, .length = 3}, + [46] = {.index = 113, .length = 4}, + [47] = {.index = 117, .length = 4}, + [48] = {.index = 121, .length = 4}, + [49] = {.index = 125, .length = 4}, + [50] = {.index = 129, .length = 5}, + [51] = {.index = 134, .length = 5}, + [52] = {.index = 139, .length = 5}, + [53] = {.index = 144, .length = 2}, + [54] = {.index = 146, .length = 2}, + [55] = {.index = 148, .length = 5}, + [56] = {.index = 153, .length = 5}, + [57] = {.index = 158, .length = 2}, + [58] = {.index = 160, .length = 5}, + [59] = {.index = 165, .length = 2}, + [60] = {.index = 167, .length = 2}, + [61] = {.index = 169, .length = 2}, + [62] = {.index = 171, .length = 2}, + [63] = {.index = 173, .length = 4}, + [64] = {.index = 173, .length = 4}, + [65] = {.index = 177, .length = 5}, + [66] = {.index = 182, .length = 6}, + [67] = {.index = 188, .length = 2}, + [68] = {.index = 190, .length = 3}, + [69] = {.index = 193, .length = 3}, + [70] = {.index = 196, .length = 3}, + [71] = {.index = 199, .length = 3}, + [72] = {.index = 202, .length = 3}, + [73] = {.index = 205, .length = 3}, + [74] = {.index = 208, .length = 3}, + [75] = {.index = 211, .length = 3}, + [76] = {.index = 214, .length = 3}, + [77] = {.index = 217, .length = 3}, + [78] = {.index = 220, .length = 4}, + [79] = {.index = 224, .length = 4}, + [80] = {.index = 228, .length = 4}, + [81] = {.index = 232, .length = 4}, + [82] = {.index = 236, .length = 4}, + [83] = {.index = 240, .length = 4}, + [84] = {.index = 244, .length = 4}, + [85] = {.index = 248, .length = 4}, + [86] = {.index = 252, .length = 4}, + [87] = {.index = 256, .length = 4}, + [88] = {.index = 260, .length = 4}, + [89] = {.index = 264, .length = 4}, + [90] = {.index = 268, .length = 5}, + [91] = {.index = 273, .length = 5}, + [92] = {.index = 278, .length = 5}, + [93] = {.index = 283, .length = 5}, + [94] = {.index = 288, .length = 5}, + [95] = {.index = 293, .length = 5}, + [96] = {.index = 298, .length = 5}, + [97] = {.index = 303, .length = 5}, + [98] = {.index = 308, .length = 5}, + [99] = {.index = 313, .length = 5}, + [100] = {.index = 318, .length = 6}, + [101] = {.index = 324, .length = 6}, + [102] = {.index = 330, .length = 6}, + [103] = {.index = 336, .length = 6}, + [104] = {.index = 342, .length = 6}, + [105] = {.index = 348, .length = 7}, }; static const TSFieldMapEntry ts_field_map_entries[] = { [0] = {field_path, 1}, [1] = + {field_path, 2}, + [2] = {field_path, 1}, {field_symbols, 2}, - [3] = + [4] = {field_path, 1}, {field_tags, 2}, - [5] = - {field_name, 2}, [6] = + {field_name, 2}, + [7] = {field_body, 2}, {field_name, 1}, - [8] = + [9] = {field_arguments, 1}, {field_name, 0}, - [10] = + [11] = + {field_path, 2}, + {field_tags, 3}, + [13] = {field_path, 1}, {field_symbols, 2}, {field_tags, 3}, - [13] = + [16] = {field_arguments, 3}, {field_name, 2}, - [15] = + [18] = {field_name, 2}, {field_returns, 3}, - [17] = + [20] = {field_body, 3}, {field_name, 2}, - [19] = + [22] = {field_name, 3}, {field_visibility, 1}, - [21] = + [24] = {field_body, 3}, {field_name, 2}, {field_visibility, 1}, - [24] = + [27] = {field_name, 0}, - [25] = + [28] = {field_arguments, 2}, {field_body, 3}, {field_name, 1}, - [28] = + [31] = {field_body, 3}, {field_name, 1}, {field_returns, 2}, - [31] = + [34] = {field_body, 3}, {field_name, 1}, {field_type_parameters, 2}, - [34] = + [37] = {field_body, 3}, {field_modifier, 1}, {field_name, 2}, - [37] = + [40] = {field_body, 3}, {field_name, 1}, {field_requirements, 2}, - [40] = + [43] = {field_arguments, 3}, {field_name, 2}, {field_returns, 4}, - [43] = + [46] = {field_arguments, 3}, {field_body, 4}, {field_name, 2}, - [46] = + [49] = {field_body, 4}, {field_name, 2}, {field_returns, 3}, - [49] = + [52] = {field_arguments, 4}, {field_name, 3}, {field_visibility, 1}, - [52] = + [55] = {field_name, 3}, {field_returns, 4}, {field_visibility, 1}, - [55] = + [58] = {field_body, 4}, {field_name, 3}, {field_visibility, 1}, - [58] = + [61] = {field_arguments, 3}, {field_body, 4}, {field_name, 2}, {field_visibility, 1}, - [62] = + [65] = {field_body, 4}, {field_name, 2}, {field_returns, 3}, {field_visibility, 1}, - [66] = + [69] = {field_body, 4}, {field_name, 2}, {field_type_parameters, 3}, {field_visibility, 1}, - [70] = + [73] = {field_returns, 1}, - [71] = + [74] = {field_arguments, 1}, - [72] = + [75] = {field_type, 1}, - [73] = + [76] = {field_name, 0}, {field_requirements, 1}, - [75] = + [78] = {field_arguments, 2}, {field_body, 4}, {field_name, 1}, {field_returns, 3}, - [79] = + [82] = {field_arguments, 3}, {field_body, 4}, {field_name, 1}, {field_type_parameters, 2}, - [83] = + [86] = {field_body, 4}, {field_name, 1}, {field_returns, 3}, {field_type_parameters, 2}, - [87] = + [90] = {field_body, 4}, {field_modifier, 2}, {field_name, 3}, {field_visibility, 1}, - [91] = + [94] = {field_name, 1}, - [92] = + [95] = {field_body, 4}, {field_modifier, 1}, {field_name, 2}, {field_type_parameters, 3}, - [96] = + [99] = {field_body, 4}, {field_name, 2}, {field_requirements, 3}, {field_visibility, 1}, - [100] = + [103] = {field_body, 4}, {field_name, 1}, {field_requirements, 3}, {field_type_parameters, 2}, - [104] = + [107] = {field_body, 4}, {field_class, 3}, {field_trait, 1}, - [107] = + [110] = {field_alias, 1}, {field_alias, 2}, {field_name, 0}, - [110] = + [113] = {field_arguments, 3}, {field_body, 5}, {field_name, 2}, {field_returns, 4}, - [114] = + [117] = {field_arguments, 4}, {field_name, 3}, {field_returns, 5}, {field_visibility, 1}, - [118] = + [121] = {field_arguments, 4}, {field_body, 5}, {field_name, 3}, {field_visibility, 1}, - [122] = + [125] = {field_body, 5}, {field_name, 3}, {field_returns, 4}, {field_visibility, 1}, - [126] = + [129] = {field_arguments, 3}, {field_body, 5}, {field_name, 2}, {field_returns, 4}, {field_visibility, 1}, - [131] = + [134] = {field_arguments, 4}, {field_body, 5}, {field_name, 2}, {field_type_parameters, 3}, {field_visibility, 1}, - [136] = + [139] = {field_body, 5}, {field_name, 2}, {field_returns, 4}, {field_type_parameters, 3}, {field_visibility, 1}, - [141] = + [144] = {field_name, 0}, {field_type, 2}, - [143] = + [146] = {field_arguments, 1}, {field_returns, 2}, - [145] = + [148] = {field_arguments, 3}, {field_body, 5}, {field_name, 1}, {field_returns, 4}, {field_type_parameters, 2}, - [150] = + [153] = {field_body, 5}, {field_modifier, 2}, {field_name, 3}, {field_type_parameters, 4}, {field_visibility, 1}, - [155] = + [158] = {field_arguments, 2}, {field_name, 1}, - [157] = + [160] = {field_body, 5}, {field_name, 2}, {field_requirements, 4}, {field_type_parameters, 3}, {field_visibility, 1}, - [162] = + [165] = {field_name, 2}, {field_visibility, 1}, - [164] = + [167] = {field_name, 1}, {field_returns, 2}, - [166] = + [169] = {field_name, 1}, {field_type_parameters, 2}, - [168] = + [171] = {field_modifier, 1}, {field_name, 2}, - [170] = + [173] = {field_body, 5}, {field_bounds, 4}, {field_class, 3}, {field_trait, 1}, - [174] = + [177] = {field_arguments, 4}, {field_body, 6}, {field_name, 3}, {field_returns, 5}, {field_visibility, 1}, - [179] = + [182] = {field_arguments, 4}, {field_body, 6}, {field_name, 2}, {field_returns, 5}, {field_type_parameters, 3}, {field_visibility, 1}, - [185] = + [188] = {field_name, 1}, {field_type, 3}, - [187] = + [190] = {field_arguments, 3}, {field_name, 2}, {field_visibility, 1}, - [190] = + [193] = {field_name, 2}, {field_returns, 3}, {field_visibility, 1}, - [193] = + [196] = {field_name, 2}, {field_type_parameters, 3}, {field_visibility, 1}, - [196] = + [199] = {field_modifier, 2}, {field_name, 3}, {field_visibility, 1}, - [199] = + [202] = {field_arguments, 2}, {field_name, 1}, {field_returns, 3}, - [202] = + [205] = {field_arguments, 3}, {field_name, 1}, {field_type_parameters, 2}, - [205] = + [208] = {field_name, 1}, {field_returns, 3}, {field_type_parameters, 2}, - [208] = + [211] = {field_arguments, 3}, {field_modifier, 1}, {field_name, 2}, - [211] = + [214] = {field_modifier, 1}, {field_name, 2}, {field_returns, 3}, - [214] = + [217] = {field_modifier, 1}, {field_name, 2}, {field_type_parameters, 3}, - [217] = + [220] = {field_arguments, 3}, {field_body, 4}, {field_modifier, 1}, {field_name, 2}, - [221] = + [224] = {field_body, 4}, {field_modifier, 1}, {field_name, 2}, {field_returns, 3}, - [225] = + [228] = {field_arguments, 3}, {field_name, 2}, {field_returns, 4}, {field_visibility, 1}, - [229] = + [232] = {field_arguments, 4}, {field_name, 2}, {field_type_parameters, 3}, {field_visibility, 1}, - [233] = + [236] = {field_name, 2}, {field_returns, 4}, {field_type_parameters, 3}, {field_visibility, 1}, - [237] = + [240] = {field_arguments, 4}, {field_modifier, 2}, {field_name, 3}, {field_visibility, 1}, - [241] = + [244] = {field_modifier, 2}, {field_name, 3}, {field_returns, 4}, {field_visibility, 1}, - [245] = + [248] = {field_modifier, 2}, {field_name, 3}, {field_type_parameters, 4}, {field_visibility, 1}, - [249] = + [252] = {field_arguments, 3}, {field_name, 1}, {field_returns, 4}, {field_type_parameters, 2}, - [253] = + [256] = {field_arguments, 3}, {field_modifier, 1}, {field_name, 2}, {field_returns, 4}, - [257] = + [260] = {field_arguments, 4}, {field_modifier, 1}, {field_name, 2}, {field_type_parameters, 3}, - [261] = + [264] = {field_modifier, 1}, {field_name, 2}, {field_returns, 4}, {field_type_parameters, 3}, - [265] = + [268] = {field_arguments, 4}, {field_body, 5}, {field_modifier, 2}, {field_name, 3}, {field_visibility, 1}, - [270] = + [273] = {field_body, 5}, {field_modifier, 2}, {field_name, 3}, {field_returns, 4}, {field_visibility, 1}, - [275] = + [278] = {field_arguments, 3}, {field_body, 5}, {field_modifier, 1}, {field_name, 2}, {field_returns, 4}, - [280] = + [283] = {field_arguments, 4}, {field_body, 5}, {field_modifier, 1}, {field_name, 2}, {field_type_parameters, 3}, - [285] = + [288] = {field_body, 5}, {field_modifier, 1}, {field_name, 2}, {field_returns, 4}, {field_type_parameters, 3}, - [290] = + [293] = {field_arguments, 4}, {field_name, 2}, {field_returns, 5}, {field_type_parameters, 3}, {field_visibility, 1}, - [295] = + [298] = {field_arguments, 4}, {field_modifier, 2}, {field_name, 3}, {field_returns, 5}, {field_visibility, 1}, - [300] = + [303] = {field_arguments, 5}, {field_modifier, 2}, {field_name, 3}, {field_type_parameters, 4}, {field_visibility, 1}, - [305] = + [308] = {field_modifier, 2}, {field_name, 3}, {field_returns, 5}, {field_type_parameters, 4}, {field_visibility, 1}, - [310] = + [313] = {field_arguments, 4}, {field_modifier, 1}, {field_name, 2}, {field_returns, 5}, {field_type_parameters, 3}, - [315] = + [318] = {field_arguments, 4}, {field_body, 6}, {field_modifier, 2}, {field_name, 3}, {field_returns, 5}, {field_visibility, 1}, - [321] = + [324] = {field_arguments, 5}, {field_body, 6}, {field_modifier, 2}, {field_name, 3}, {field_type_parameters, 4}, {field_visibility, 1}, - [327] = + [330] = {field_body, 6}, {field_modifier, 2}, {field_name, 3}, {field_returns, 5}, {field_type_parameters, 4}, {field_visibility, 1}, - [333] = + [336] = {field_arguments, 4}, {field_body, 6}, {field_modifier, 1}, {field_name, 2}, {field_returns, 5}, {field_type_parameters, 3}, - [339] = + [342] = {field_arguments, 5}, {field_modifier, 2}, {field_name, 3}, {field_returns, 6}, {field_type_parameters, 4}, {field_visibility, 1}, - [345] = + [348] = {field_arguments, 5}, {field_body, 7}, {field_modifier, 2}, @@ -1362,13 +1397,13 @@ static const TSFieldMapEntry ts_field_map_entries[] = { static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = { [0] = {0}, - [13] = { + [15] = { [0] = alias_sym_type, }, - [41] = { + [43] = { [1] = alias_sym_type, }, - [61] = { + [63] = { [1] = alias_sym_type, }, }; @@ -1807,6 +1842,12 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [426] = 426, [427] = 427, [428] = 428, + [429] = 429, + [430] = 430, + [431] = 431, + [432] = 432, + [433] = 433, + [434] = 434, }; static bool ts_lex(TSLexer *lexer, TSStateId state) { @@ -1815,58 +1856,61 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { switch (state) { case 0: if (eof) ADVANCE(11); - if (lookahead == '#') ADVANCE(26); - if (lookahead == '(') ADVANCE(14); - if (lookahead == ')') ADVANCE(16); - if (lookahead == '+') ADVANCE(22); - if (lookahead == ',') ADVANCE(15); - if (lookahead == '-') ADVANCE(5); - if (lookahead == '.') ADVANCE(13); - if (lookahead == ':') ADVANCE(17); - if (lookahead == '@') ADVANCE(9); - if (lookahead == '[') ADVANCE(20); - if (lookahead == ']') ADVANCE(21); - if (lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(32); - if (lookahead == '{') ADVANCE(24); - if (lookahead == '}') ADVANCE(25); + ADVANCE_MAP( + '"', 17, + '#', 30, + '(', 14, + ')', 16, + '+', 26, + ',', 15, + '-', 5, + '.', 13, + ':', 21, + '@', 9, + '[', 24, + ']', 25, + '{', 28, + '}', 29, + ); if (('\t' <= lookahead && lookahead <= '\r') || - lookahead == ' ') SKIP(0) - if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(34); + lookahead == ' ') SKIP(0); + if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(38); + if (lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(36); END_STATE(); case 1: - if (lookahead == '#') ADVANCE(26); + if (lookahead == '#') ADVANCE(30); if (lookahead == ')') ADVANCE(16); if (lookahead == '.') ADVANCE(3); - if (lookahead == '_' || - ('b' <= lookahead && lookahead <= 'z')) ADVANCE(32); - if (lookahead == 'a') ADVANCE(30); + if (lookahead == 'a') ADVANCE(34); if (('\t' <= lookahead && lookahead <= '\r') || - lookahead == ' ') SKIP(1) + lookahead == ' ') SKIP(1); + if (lookahead == '_' || + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(36); END_STATE(); case 2: - if (lookahead == '#') ADVANCE(26); + if (lookahead == '#') ADVANCE(30); if (lookahead == ')') ADVANCE(16); if (lookahead == '.') ADVANCE(3); - if (lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(32); if (('\t' <= lookahead && lookahead <= '\r') || - lookahead == ' ') SKIP(2) + lookahead == ' ') SKIP(2); + if (lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(36); END_STATE(); case 3: if (lookahead == '.') ADVANCE(4); END_STATE(); case 4: - if (lookahead == '.') ADVANCE(18); + if (lookahead == '.') ADVANCE(22); END_STATE(); case 5: - if (lookahead == '>') ADVANCE(19); + if (lookahead == '>') ADVANCE(23); END_STATE(); case 6: if (lookahead == 'm') ADVANCE(8); END_STATE(); case 7: - if (lookahead == 't') ADVANCE(23); + if (lookahead == 't') ADVANCE(27); END_STATE(); case 8: if (lookahead == 'u') ADVANCE(7); @@ -1875,17 +1919,17 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(33); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(37); END_STATE(); case 10: if (eof) ADVANCE(11); - if (lookahead == '#') ADVANCE(26); + if (lookahead == '#') ADVANCE(30); if (lookahead == '(') ADVANCE(14); if (lookahead == '.') ADVANCE(12); - if (lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(32); if (('\t' <= lookahead && lookahead <= '\r') || - lookahead == ' ') SKIP(10) + lookahead == ' ') SKIP(10); + if (lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(36); END_STATE(); case 11: ACCEPT_TOKEN(ts_builtin_sym_end); @@ -1907,97 +1951,120 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { ACCEPT_TOKEN(anon_sym_RPAREN); END_STATE(); case 17: - ACCEPT_TOKEN(anon_sym_COLON); + ACCEPT_TOKEN(anon_sym_DQUOTE); END_STATE(); case 18: - ACCEPT_TOKEN(anon_sym_DOT_DOT_DOT); + ACCEPT_TOKEN(aux_sym_extern_import_path_token1); + if (lookahead == '\n') ADVANCE(20); + if (lookahead == '"') ADVANCE(30); + if (lookahead != 0) ADVANCE(18); END_STATE(); case 19: - ACCEPT_TOKEN(anon_sym_DASH_GT); + ACCEPT_TOKEN(aux_sym_extern_import_path_token1); + if (lookahead == '#') ADVANCE(18); + if (('\t' <= lookahead && lookahead <= '\r') || + lookahead == ' ') ADVANCE(19); + if (lookahead != 0 && + lookahead != '"' && + lookahead != '#') ADVANCE(20); END_STATE(); case 20: - ACCEPT_TOKEN(anon_sym_LBRACK); + ACCEPT_TOKEN(aux_sym_extern_import_path_token1); + if (lookahead != 0 && + lookahead != '"') ADVANCE(20); END_STATE(); case 21: - ACCEPT_TOKEN(anon_sym_RBRACK); + ACCEPT_TOKEN(anon_sym_COLON); END_STATE(); case 22: - ACCEPT_TOKEN(anon_sym_PLUS); + ACCEPT_TOKEN(anon_sym_DOT_DOT_DOT); END_STATE(); case 23: - ACCEPT_TOKEN(anon_sym_asyncmut); + ACCEPT_TOKEN(anon_sym_DASH_GT); END_STATE(); case 24: - ACCEPT_TOKEN(anon_sym_LBRACE); + ACCEPT_TOKEN(anon_sym_LBRACK); END_STATE(); case 25: - ACCEPT_TOKEN(anon_sym_RBRACE); + ACCEPT_TOKEN(anon_sym_RBRACK); END_STATE(); case 26: + ACCEPT_TOKEN(anon_sym_PLUS); + END_STATE(); + case 27: + ACCEPT_TOKEN(anon_sym_asyncmut); + END_STATE(); + case 28: + ACCEPT_TOKEN(anon_sym_LBRACE); + END_STATE(); + case 29: + ACCEPT_TOKEN(anon_sym_RBRACE); + END_STATE(); + case 30: ACCEPT_TOKEN(sym_line_comment); if (lookahead != 0 && - lookahead != '\n') ADVANCE(26); + lookahead != '\n') ADVANCE(30); END_STATE(); - case 27: + case 31: ACCEPT_TOKEN(sym_identifier); if (lookahead == ' ') ADVANCE(6); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(32); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(36); END_STATE(); - case 28: + case 32: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'c') ADVANCE(27); + if (lookahead == 'c') ADVANCE(31); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(32); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(36); END_STATE(); - case 29: + case 33: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'n') ADVANCE(28); + if (lookahead == 'n') ADVANCE(32); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(32); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(36); END_STATE(); - case 30: + case 34: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 's') ADVANCE(31); + if (lookahead == 's') ADVANCE(35); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(32); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(36); END_STATE(); - case 31: + case 35: ACCEPT_TOKEN(sym_identifier); - if (lookahead == 'y') ADVANCE(29); + if (lookahead == 'y') ADVANCE(33); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(32); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(36); END_STATE(); - case 32: + case 36: ACCEPT_TOKEN(sym_identifier); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(32); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(36); END_STATE(); - case 33: + case 37: ACCEPT_TOKEN(sym_field_name); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(33); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(37); END_STATE(); - case 34: + case 38: ACCEPT_TOKEN(sym_constant); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(34); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(38); END_STATE(); default: return false; @@ -2009,21 +2076,23 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { eof = lexer->eof(lexer); switch (state) { case 0: - if (lookahead == 'a') ADVANCE(1); - if (lookahead == 'b') ADVANCE(2); - if (lookahead == 'c') ADVANCE(3); - if (lookahead == 'e') ADVANCE(4); - if (lookahead == 'f') ADVANCE(5); - if (lookahead == 'i') ADVANCE(6); - if (lookahead == 'l') ADVANCE(7); - if (lookahead == 'm') ADVANCE(8); - if (lookahead == 'p') ADVANCE(9); - if (lookahead == 'r') ADVANCE(10); - if (lookahead == 's') ADVANCE(11); - if (lookahead == 't') ADVANCE(12); - if (lookahead == 'u') ADVANCE(13); + ADVANCE_MAP( + 'a', 1, + 'b', 2, + 'c', 3, + 'e', 4, + 'f', 5, + 'i', 6, + 'l', 7, + 'm', 8, + 'p', 9, + 'r', 10, + 's', 11, + 't', 12, + 'u', 13, + ); if (('\t' <= lookahead && lookahead <= '\r') || - lookahead == ' ') SKIP(0) + lookahead == ' ') SKIP(0); END_STATE(); case 1: if (lookahead == 'n') ADVANCE(14); @@ -2307,26 +2376,26 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [39] = {.lex_state = 0}, [40] = {.lex_state = 0}, [41] = {.lex_state = 0}, - [42] = {.lex_state = 10}, + [42] = {.lex_state = 0}, [43] = {.lex_state = 0}, - [44] = {.lex_state = 0}, + [44] = {.lex_state = 10}, [45] = {.lex_state = 0}, - [46] = {.lex_state = 10}, - [47] = {.lex_state = 0}, + [46] = {.lex_state = 0}, + [47] = {.lex_state = 10}, [48] = {.lex_state = 10}, [49] = {.lex_state = 0}, [50] = {.lex_state = 0}, [51] = {.lex_state = 0}, - [52] = {.lex_state = 0}, + [52] = {.lex_state = 10}, [53] = {.lex_state = 0}, - [54] = {.lex_state = 10}, + [54] = {.lex_state = 0}, [55] = {.lex_state = 0}, [56] = {.lex_state = 0}, [57] = {.lex_state = 0}, [58] = {.lex_state = 0}, [59] = {.lex_state = 0}, - [60] = {.lex_state = 0}, - [61] = {.lex_state = 1}, + [60] = {.lex_state = 1}, + [61] = {.lex_state = 0}, [62] = {.lex_state = 0}, [63] = {.lex_state = 0}, [64] = {.lex_state = 0}, @@ -2348,9 +2417,9 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [80] = {.lex_state = 0}, [81] = {.lex_state = 0}, [82] = {.lex_state = 0}, - [83] = {.lex_state = 0}, + [83] = {.lex_state = 1}, [84] = {.lex_state = 0}, - [85] = {.lex_state = 1}, + [85] = {.lex_state = 0}, [86] = {.lex_state = 0}, [87] = {.lex_state = 0}, [88] = {.lex_state = 0}, @@ -2435,12 +2504,12 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [167] = {.lex_state = 0}, [168] = {.lex_state = 0}, [169] = {.lex_state = 0}, - [170] = {.lex_state = 2}, + [170] = {.lex_state = 0}, [171] = {.lex_state = 0}, - [172] = {.lex_state = 2}, - [173] = {.lex_state = 0}, + [172] = {.lex_state = 0}, + [173] = {.lex_state = 2}, [174] = {.lex_state = 0}, - [175] = {.lex_state = 0}, + [175] = {.lex_state = 2}, [176] = {.lex_state = 0}, [177] = {.lex_state = 0}, [178] = {.lex_state = 0}, @@ -2546,7 +2615,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [278] = {.lex_state = 0}, [279] = {.lex_state = 0}, [280] = {.lex_state = 0}, - [281] = {.lex_state = 1}, + [281] = {.lex_state = 0}, [282] = {.lex_state = 0}, [283] = {.lex_state = 0}, [284] = {.lex_state = 0}, @@ -2563,7 +2632,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [295] = {.lex_state = 0}, [296] = {.lex_state = 0}, [297] = {.lex_state = 0}, - [298] = {.lex_state = 0}, + [298] = {.lex_state = 1}, [299] = {.lex_state = 0}, [300] = {.lex_state = 0}, [301] = {.lex_state = 0}, @@ -2694,6 +2763,12 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [426] = {.lex_state = 0}, [427] = {.lex_state = 0}, [428] = {.lex_state = 0}, + [429] = {.lex_state = 19}, + [430] = {.lex_state = 0}, + [431] = {.lex_state = 0}, + [432] = {.lex_state = 0}, + [433] = {.lex_state = 0}, + [434] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -2708,8 +2783,9 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_as] = ACTIONS(1), [anon_sym_if] = ACTIONS(1), [anon_sym_and] = ACTIONS(1), - [anon_sym_fn] = ACTIONS(1), [anon_sym_extern] = ACTIONS(1), + [anon_sym_DQUOTE] = ACTIONS(1), + [anon_sym_fn] = ACTIONS(1), [anon_sym_COLON] = ACTIONS(1), [anon_sym_DOT_DOT_DOT] = ACTIONS(1), [anon_sym_DASH_GT] = ACTIONS(1), @@ -2739,16 +2815,17 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_constant] = ACTIONS(1), }, [1] = { - [sym_source_file] = STATE(407), - [sym__top_level] = STATE(7), - [sym_import] = STATE(7), - [sym_external_function] = STATE(7), - [sym_module_method] = STATE(7), - [sym_class] = STATE(7), - [sym_trait] = STATE(7), - [sym_implement_trait] = STATE(7), - [sym_reopen_class] = STATE(7), - [aux_sym_source_file_repeat1] = STATE(7), + [sym_source_file] = STATE(416), + [sym__top_level] = STATE(3), + [sym_import] = STATE(3), + [sym_extern_import] = STATE(3), + [sym_external_function] = STATE(3), + [sym_module_method] = STATE(3), + [sym_class] = STATE(3), + [sym_trait] = STATE(3), + [sym_implement_trait] = STATE(3), + [sym_reopen_class] = STATE(3), + [aux_sym_source_file_repeat1] = STATE(3), [ts_builtin_sym_end] = ACTIONS(5), [anon_sym_import] = ACTIONS(7), [anon_sym_fn] = ACTIONS(9), @@ -2767,7 +2844,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(21), 1, anon_sym_DASH_GT, - STATE(5), 1, + STATE(6), 1, sym_fn_type_arguments, STATE(19), 1, sym__returns, @@ -2785,33 +2862,66 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_case, anon_sym_trait, anon_sym_impl, - [31] = 2, + [31] = 8, ACTIONS(3), 1, sym_line_comment, - ACTIONS(23), 15, - ts_builtin_sym_end, + ACTIONS(7), 1, anon_sym_import, - anon_sym_COMMA, - anon_sym_RPAREN, + ACTIONS(9), 1, anon_sym_fn, - anon_sym_RBRACK, - anon_sym_PLUS, + ACTIONS(11), 1, anon_sym_class, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_let, - anon_sym_case, + ACTIONS(13), 1, anon_sym_trait, + ACTIONS(15), 1, anon_sym_impl, - anon_sym_for, - [52] = 4, + ACTIONS(23), 1, + ts_builtin_sym_end, + STATE(4), 10, + sym__top_level, + sym_import, + sym_extern_import, + sym_external_function, + sym_module_method, + sym_class, + sym_trait, + sym_implement_trait, + sym_reopen_class, + aux_sym_source_file_repeat1, + [65] = 8, ACTIONS(3), 1, sym_line_comment, + ACTIONS(25), 1, + ts_builtin_sym_end, ACTIONS(27), 1, + anon_sym_import, + ACTIONS(30), 1, + anon_sym_fn, + ACTIONS(33), 1, + anon_sym_class, + ACTIONS(36), 1, + anon_sym_trait, + ACTIONS(39), 1, + anon_sym_impl, + STATE(4), 10, + sym__top_level, + sym_import, + sym_extern_import, + sym_external_function, + sym_module_method, + sym_class, + sym_trait, + sym_implement_trait, + sym_reopen_class, + aux_sym_source_file_repeat1, + [99] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(44), 1, anon_sym_LBRACK, - STATE(6), 1, + STATE(7), 1, sym_type_arguments, - ACTIONS(25), 13, + ACTIONS(42), 13, ts_builtin_sym_end, anon_sym_import, anon_sym_COMMA, @@ -2825,14 +2935,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_case, anon_sym_trait, anon_sym_impl, - [77] = 4, + [124] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(21), 1, anon_sym_DASH_GT, - STATE(17), 1, + STATE(16), 1, sym__returns, - ACTIONS(29), 13, + ACTIONS(46), 13, ts_builtin_sym_end, anon_sym_import, anon_sym_COMMA, @@ -2846,10 +2956,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_case, anon_sym_trait, anon_sym_impl, - [102] = 2, + [149] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(31), 15, + ACTIONS(48), 15, ts_builtin_sym_end, anon_sym_import, anon_sym_COMMA, @@ -2865,35 +2975,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_trait, anon_sym_impl, anon_sym_for, - [123] = 8, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(7), 1, - anon_sym_import, - ACTIONS(9), 1, - anon_sym_fn, - ACTIONS(11), 1, - anon_sym_class, - ACTIONS(13), 1, - anon_sym_trait, - ACTIONS(15), 1, - anon_sym_impl, - ACTIONS(33), 1, - ts_builtin_sym_end, - STATE(11), 9, - sym__top_level, - sym_import, - sym_external_function, - sym_module_method, - sym_class, - sym_trait, - sym_implement_trait, - sym_reopen_class, - aux_sym_source_file_repeat1, - [156] = 2, + [170] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(35), 15, + ACTIONS(50), 15, ts_builtin_sym_end, anon_sym_import, anon_sym_COMMA, @@ -2909,10 +2994,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_trait, anon_sym_impl, anon_sym_for, - [177] = 2, + [191] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(37), 15, + ACTIONS(52), 15, ts_builtin_sym_end, anon_sym_import, anon_sym_COMMA, @@ -2928,10 +3013,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_trait, anon_sym_impl, anon_sym_for, - [198] = 2, + [212] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(39), 15, + ACTIONS(54), 15, ts_builtin_sym_end, anon_sym_import, anon_sym_COMMA, @@ -2947,32 +3032,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_trait, anon_sym_impl, anon_sym_for, - [219] = 8, + [233] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(41), 1, + ACTIONS(56), 15, ts_builtin_sym_end, - ACTIONS(43), 1, anon_sym_import, - ACTIONS(46), 1, + anon_sym_COMMA, + anon_sym_RPAREN, anon_sym_fn, - ACTIONS(49), 1, + anon_sym_RBRACK, + anon_sym_PLUS, anon_sym_class, - ACTIONS(52), 1, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_let, + anon_sym_case, anon_sym_trait, - ACTIONS(55), 1, anon_sym_impl, - STATE(11), 9, - sym__top_level, - sym_import, - sym_external_function, - sym_module_method, - sym_class, - sym_trait, - sym_implement_trait, - sym_reopen_class, - aux_sym_source_file_repeat1, - [252] = 2, + anon_sym_for, + [254] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(58), 14, @@ -2990,7 +3069,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_case, anon_sym_trait, anon_sym_impl, - [272] = 2, + [274] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(60), 14, @@ -3008,7 +3087,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_case, anon_sym_trait, anon_sym_impl, - [292] = 2, + [294] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(62), 14, @@ -3026,7 +3105,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_case, anon_sym_trait, anon_sym_impl, - [312] = 2, + [314] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(64), 14, @@ -3044,7 +3123,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_case, anon_sym_trait, anon_sym_impl, - [332] = 2, + [334] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(66), 13, @@ -3061,7 +3140,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_case, anon_sym_trait, anon_sym_impl, - [351] = 2, + [353] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(68), 13, @@ -3078,7 +3157,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_case, anon_sym_trait, anon_sym_impl, - [370] = 2, + [372] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(70), 13, @@ -3095,7 +3174,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_case, anon_sym_trait, anon_sym_impl, - [389] = 2, + [391] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(72), 13, @@ -3112,7 +3191,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_case, anon_sym_trait, anon_sym_impl, - [408] = 2, + [410] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(74), 13, @@ -3129,7 +3208,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_case, anon_sym_trait, anon_sym_impl, - [427] = 2, + [429] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(76), 13, @@ -3146,514 +3225,548 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_case, anon_sym_trait, anon_sym_impl, - [446] = 8, + [448] = 8, ACTIONS(3), 1, sym_line_comment, - ACTIONS(21), 1, - anon_sym_DASH_GT, + ACTIONS(78), 1, + anon_sym_fn, ACTIONS(80), 1, - anon_sym_LPAREN, + anon_sym_RBRACK, ACTIONS(82), 1, - anon_sym_LBRACE, - STATE(43), 1, - sym_extern_arguments, - STATE(74), 1, - sym__returns, - STATE(137), 1, - sym_block, - ACTIONS(78), 6, - ts_builtin_sym_end, - anon_sym_import, - anon_sym_fn, - anon_sym_class, - anon_sym_trait, - anon_sym_impl, - [476] = 8, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(84), 1, - anon_sym_RPAREN, - ACTIONS(86), 1, - anon_sym_fn, - ACTIONS(88), 1, anon_sym_mut, - ACTIONS(90), 1, + ACTIONS(84), 1, anon_sym_ref, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_uni, - ACTIONS(94), 1, + ACTIONS(88), 1, sym_constant, - STATE(299), 6, + STATE(303), 6, sym__type, sym_generic_type, sym_ref_type, sym_mut_type, sym_uni_type, sym_fn_type, - [506] = 8, + [478] = 8, ACTIONS(3), 1, sym_line_comment, - ACTIONS(86), 1, + ACTIONS(78), 1, anon_sym_fn, - ACTIONS(88), 1, + ACTIONS(82), 1, anon_sym_mut, - ACTIONS(90), 1, + ACTIONS(84), 1, anon_sym_ref, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_uni, - ACTIONS(94), 1, + ACTIONS(88), 1, sym_constant, - ACTIONS(96), 1, + ACTIONS(90), 1, anon_sym_RPAREN, - STATE(286), 6, + STATE(303), 6, sym__type, sym_generic_type, sym_ref_type, sym_mut_type, sym_uni_type, sym_fn_type, - [536] = 8, + [508] = 8, ACTIONS(3), 1, sym_line_comment, - ACTIONS(86), 1, + ACTIONS(78), 1, anon_sym_fn, - ACTIONS(88), 1, + ACTIONS(82), 1, anon_sym_mut, - ACTIONS(90), 1, + ACTIONS(84), 1, anon_sym_ref, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_uni, - ACTIONS(94), 1, + ACTIONS(88), 1, sym_constant, - ACTIONS(98), 1, - anon_sym_RPAREN, - STATE(277), 6, + ACTIONS(92), 1, + anon_sym_RBRACK, + STATE(286), 6, sym__type, sym_generic_type, sym_ref_type, sym_mut_type, sym_uni_type, sym_fn_type, - [566] = 8, + [538] = 8, ACTIONS(3), 1, sym_line_comment, - ACTIONS(86), 1, + ACTIONS(78), 1, anon_sym_fn, - ACTIONS(88), 1, + ACTIONS(82), 1, anon_sym_mut, - ACTIONS(90), 1, + ACTIONS(84), 1, anon_sym_ref, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_uni, - ACTIONS(94), 1, + ACTIONS(88), 1, sym_constant, - ACTIONS(100), 1, + ACTIONS(94), 1, anon_sym_RPAREN, - STATE(286), 6, + STATE(303), 6, sym__type, sym_generic_type, sym_ref_type, sym_mut_type, sym_uni_type, sym_fn_type, - [596] = 8, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(21), 1, - anon_sym_DASH_GT, - ACTIONS(80), 1, - anon_sym_LPAREN, - ACTIONS(82), 1, - anon_sym_LBRACE, - STATE(44), 1, - sym_extern_arguments, - STATE(55), 1, - sym__returns, - STATE(151), 1, - sym_block, - ACTIONS(102), 6, - ts_builtin_sym_end, - anon_sym_import, - anon_sym_fn, - anon_sym_class, - anon_sym_trait, - anon_sym_impl, - [626] = 8, + [568] = 8, ACTIONS(3), 1, sym_line_comment, - ACTIONS(86), 1, + ACTIONS(78), 1, anon_sym_fn, - ACTIONS(88), 1, + ACTIONS(82), 1, anon_sym_mut, - ACTIONS(90), 1, + ACTIONS(84), 1, anon_sym_ref, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_uni, - ACTIONS(94), 1, + ACTIONS(88), 1, sym_constant, - ACTIONS(104), 1, + ACTIONS(96), 1, anon_sym_RPAREN, - STATE(286), 6, + STATE(303), 6, sym__type, sym_generic_type, sym_ref_type, sym_mut_type, sym_uni_type, sym_fn_type, - [656] = 8, + [598] = 8, ACTIONS(3), 1, sym_line_comment, - ACTIONS(86), 1, + ACTIONS(78), 1, anon_sym_fn, - ACTIONS(88), 1, + ACTIONS(82), 1, anon_sym_mut, - ACTIONS(90), 1, + ACTIONS(84), 1, anon_sym_ref, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_uni, - ACTIONS(94), 1, + ACTIONS(88), 1, sym_constant, - ACTIONS(106), 1, + ACTIONS(98), 1, anon_sym_RPAREN, - STATE(286), 6, + STATE(303), 6, sym__type, sym_generic_type, sym_ref_type, sym_mut_type, sym_uni_type, sym_fn_type, - [686] = 8, + [628] = 8, ACTIONS(3), 1, sym_line_comment, - ACTIONS(86), 1, + ACTIONS(78), 1, anon_sym_fn, - ACTIONS(88), 1, + ACTIONS(82), 1, anon_sym_mut, - ACTIONS(90), 1, + ACTIONS(84), 1, anon_sym_ref, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_uni, - ACTIONS(94), 1, + ACTIONS(88), 1, sym_constant, - ACTIONS(108), 1, - anon_sym_RBRACK, - STATE(286), 6, + ACTIONS(100), 1, + anon_sym_RPAREN, + STATE(311), 6, sym__type, sym_generic_type, sym_ref_type, sym_mut_type, sym_uni_type, sym_fn_type, - [716] = 8, + [658] = 8, ACTIONS(3), 1, sym_line_comment, - ACTIONS(86), 1, + ACTIONS(78), 1, anon_sym_fn, - ACTIONS(88), 1, + ACTIONS(82), 1, anon_sym_mut, - ACTIONS(90), 1, + ACTIONS(84), 1, anon_sym_ref, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_uni, - ACTIONS(94), 1, + ACTIONS(88), 1, sym_constant, - ACTIONS(110), 1, + ACTIONS(102), 1, anon_sym_RBRACK, - STATE(284), 6, + STATE(303), 6, sym__type, sym_generic_type, sym_ref_type, sym_mut_type, sym_uni_type, sym_fn_type, - [746] = 8, + [688] = 8, ACTIONS(3), 1, sym_line_comment, - ACTIONS(86), 1, + ACTIONS(21), 1, + anon_sym_DASH_GT, + ACTIONS(106), 1, + anon_sym_LPAREN, + ACTIONS(108), 1, + anon_sym_LBRACE, + STATE(40), 1, + sym_extern_arguments, + STATE(73), 1, + sym__returns, + STATE(150), 1, + sym_block, + ACTIONS(104), 6, + ts_builtin_sym_end, + anon_sym_import, anon_sym_fn, - ACTIONS(88), 1, + anon_sym_class, + anon_sym_trait, + anon_sym_impl, + [718] = 8, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(21), 1, + anon_sym_DASH_GT, + ACTIONS(106), 1, + anon_sym_LPAREN, + ACTIONS(108), 1, + anon_sym_LBRACE, + STATE(45), 1, + sym_extern_arguments, + STATE(74), 1, + sym__returns, + STATE(143), 1, + sym_block, + ACTIONS(110), 6, + ts_builtin_sym_end, + anon_sym_import, + anon_sym_fn, + anon_sym_class, + anon_sym_trait, + anon_sym_impl, + [748] = 8, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(78), 1, + anon_sym_fn, + ACTIONS(82), 1, anon_sym_mut, - ACTIONS(90), 1, + ACTIONS(84), 1, anon_sym_ref, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_uni, - ACTIONS(94), 1, + ACTIONS(88), 1, sym_constant, ACTIONS(112), 1, - anon_sym_RBRACK, - STATE(286), 6, + anon_sym_RPAREN, + STATE(305), 6, sym__type, sym_generic_type, sym_ref_type, sym_mut_type, sym_uni_type, sym_fn_type, - [776] = 7, + [778] = 7, ACTIONS(3), 1, sym_line_comment, - ACTIONS(86), 1, + ACTIONS(78), 1, anon_sym_fn, - ACTIONS(88), 1, + ACTIONS(82), 1, anon_sym_mut, - ACTIONS(90), 1, + ACTIONS(84), 1, anon_sym_ref, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_uni, - ACTIONS(94), 1, + ACTIONS(88), 1, sym_constant, - STATE(21), 6, + STATE(262), 6, sym__type, sym_generic_type, sym_ref_type, sym_mut_type, sym_uni_type, sym_fn_type, - [803] = 7, + [805] = 7, ACTIONS(3), 1, sym_line_comment, - ACTIONS(86), 1, + ACTIONS(78), 1, anon_sym_fn, - ACTIONS(88), 1, + ACTIONS(82), 1, anon_sym_mut, - ACTIONS(90), 1, + ACTIONS(84), 1, anon_sym_ref, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_uni, - ACTIONS(94), 1, + ACTIONS(88), 1, sym_constant, - STATE(20), 6, + STATE(17), 6, sym__type, sym_generic_type, sym_ref_type, sym_mut_type, sym_uni_type, sym_fn_type, - [830] = 7, + [832] = 7, ACTIONS(3), 1, sym_line_comment, - ACTIONS(86), 1, + ACTIONS(78), 1, anon_sym_fn, - ACTIONS(88), 1, + ACTIONS(82), 1, anon_sym_mut, - ACTIONS(90), 1, + ACTIONS(84), 1, anon_sym_ref, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_uni, - ACTIONS(94), 1, + ACTIONS(88), 1, sym_constant, - STATE(16), 6, + STATE(21), 6, sym__type, sym_generic_type, sym_ref_type, sym_mut_type, sym_uni_type, sym_fn_type, - [857] = 7, + [859] = 7, ACTIONS(3), 1, sym_line_comment, - ACTIONS(86), 1, + ACTIONS(78), 1, anon_sym_fn, - ACTIONS(88), 1, + ACTIONS(82), 1, anon_sym_mut, - ACTIONS(90), 1, + ACTIONS(84), 1, anon_sym_ref, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_uni, - ACTIONS(94), 1, + ACTIONS(88), 1, sym_constant, - STATE(390), 6, + STATE(20), 6, sym__type, sym_generic_type, sym_ref_type, sym_mut_type, sym_uni_type, sym_fn_type, - [884] = 7, + [886] = 7, ACTIONS(3), 1, sym_line_comment, - ACTIONS(86), 1, + ACTIONS(78), 1, anon_sym_fn, - ACTIONS(88), 1, + ACTIONS(82), 1, anon_sym_mut, - ACTIONS(90), 1, + ACTIONS(84), 1, anon_sym_ref, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_uni, - ACTIONS(94), 1, + ACTIONS(88), 1, sym_constant, - STATE(286), 6, + STATE(303), 6, sym__type, sym_generic_type, sym_ref_type, sym_mut_type, sym_uni_type, sym_fn_type, - [911] = 7, + [913] = 7, ACTIONS(3), 1, sym_line_comment, - ACTIONS(86), 1, + ACTIONS(78), 1, anon_sym_fn, - ACTIONS(88), 1, + ACTIONS(82), 1, anon_sym_mut, - ACTIONS(90), 1, + ACTIONS(84), 1, anon_sym_ref, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_uni, - ACTIONS(94), 1, + ACTIONS(88), 1, sym_constant, - STATE(18), 6, + STATE(365), 6, sym__type, sym_generic_type, sym_ref_type, sym_mut_type, sym_uni_type, sym_fn_type, - [938] = 7, + [940] = 7, ACTIONS(3), 1, sym_line_comment, - ACTIONS(86), 1, + ACTIONS(78), 1, anon_sym_fn, - ACTIONS(88), 1, + ACTIONS(82), 1, anon_sym_mut, - ACTIONS(90), 1, + ACTIONS(84), 1, anon_sym_ref, - ACTIONS(92), 1, + ACTIONS(86), 1, anon_sym_uni, - ACTIONS(94), 1, + ACTIONS(88), 1, sym_constant, - STATE(221), 6, + STATE(18), 6, sym__type, sym_generic_type, sym_ref_type, sym_mut_type, sym_uni_type, sym_fn_type, - [965] = 10, + [967] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(21), 1, anon_sym_DASH_GT, - ACTIONS(82), 1, + ACTIONS(108), 1, + anon_sym_LBRACE, + STATE(77), 1, + sym__returns, + STATE(139), 1, + sym_block, + ACTIONS(114), 6, + ts_builtin_sym_end, + anon_sym_import, + anon_sym_fn, + anon_sym_class, + anon_sym_trait, + anon_sym_impl, + [991] = 10, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(21), 1, + anon_sym_DASH_GT, + ACTIONS(108), 1, anon_sym_LBRACE, - ACTIONS(114), 1, + ACTIONS(116), 1, anon_sym_LPAREN, - ACTIONS(118), 1, + ACTIONS(120), 1, anon_sym_LBRACK, - STATE(63), 1, + STATE(58), 1, sym_type_parameters, - STATE(112), 1, + STATE(115), 1, sym_method_arguments, - STATE(206), 1, + STATE(260), 1, sym__returns, - STATE(332), 1, + STATE(358), 1, sym_block, - ACTIONS(116), 2, + ACTIONS(118), 2, anon_sym_fn, anon_sym_RBRACE, - [997] = 10, + [1023] = 10, ACTIONS(3), 1, sym_line_comment, ACTIONS(21), 1, anon_sym_DASH_GT, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - ACTIONS(114), 1, + ACTIONS(116), 1, anon_sym_LPAREN, - ACTIONS(118), 1, + ACTIONS(120), 1, anon_sym_LBRACK, - STATE(78), 1, + STATE(67), 1, sym_type_parameters, - STATE(96), 1, + STATE(97), 1, sym_method_arguments, - STATE(259), 1, + STATE(224), 1, sym__returns, - STATE(361), 1, + STATE(367), 1, sym_block, - ACTIONS(120), 2, + ACTIONS(122), 2, anon_sym_fn, anon_sym_RBRACE, - [1029] = 4, + [1055] = 10, ACTIONS(3), 1, sym_line_comment, - ACTIONS(124), 1, - anon_sym_DOT, - STATE(46), 1, - aux_sym_path_repeat1, - ACTIONS(122), 8, - ts_builtin_sym_end, - anon_sym_import, + ACTIONS(21), 1, + anon_sym_DASH_GT, + ACTIONS(108), 1, + anon_sym_LBRACE, + ACTIONS(116), 1, + anon_sym_LPAREN, + ACTIONS(120), 1, + anon_sym_LBRACK, + STATE(55), 1, + sym_type_parameters, + STATE(108), 1, + sym_method_arguments, + STATE(255), 1, + sym__returns, + STATE(328), 1, + sym_block, + ACTIONS(124), 2, + anon_sym_fn, + anon_sym_RBRACE, + [1087] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(128), 1, + anon_sym_DOT, + STATE(44), 1, + aux_sym_path_repeat1, + ACTIONS(126), 8, + ts_builtin_sym_end, + anon_sym_import, anon_sym_LPAREN, anon_sym_if, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [1049] = 6, + [1107] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(21), 1, anon_sym_DASH_GT, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - STATE(57), 1, + STATE(70), 1, sym__returns, - STATE(152), 1, + STATE(158), 1, sym_block, - ACTIONS(126), 6, + ACTIONS(131), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [1073] = 6, + [1131] = 6, ACTIONS(3), 1, sym_line_comment, - ACTIONS(21), 1, - anon_sym_DASH_GT, - ACTIONS(82), 1, - anon_sym_LBRACE, - STATE(76), 1, - sym__returns, - STATE(133), 1, - sym_block, - ACTIONS(128), 6, + ACTIONS(135), 1, + anon_sym_LPAREN, + ACTIONS(137), 1, + anon_sym_if, + STATE(80), 1, + sym_symbols, + STATE(131), 1, + sym_tags, + ACTIONS(133), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [1097] = 10, + [1155] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(21), 1, - anon_sym_DASH_GT, - ACTIONS(82), 1, - anon_sym_LBRACE, - ACTIONS(114), 1, + ACTIONS(141), 1, + anon_sym_DOT, + STATE(44), 1, + aux_sym_path_repeat1, + ACTIONS(139), 8, + ts_builtin_sym_end, + anon_sym_import, anon_sym_LPAREN, - ACTIONS(118), 1, - anon_sym_LBRACK, - STATE(72), 1, - sym_type_parameters, - STATE(107), 1, - sym_method_arguments, - STATE(184), 1, - sym__returns, - STATE(327), 1, - sym_block, - ACTIONS(130), 2, + anon_sym_if, anon_sym_fn, - anon_sym_RBRACE, - [1129] = 4, + anon_sym_class, + anon_sym_trait, + anon_sym_impl, + [1175] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(134), 1, + ACTIONS(141), 1, anon_sym_DOT, - STATE(46), 1, + STATE(47), 1, aux_sym_path_repeat1, - ACTIONS(132), 8, + ACTIONS(143), 8, ts_builtin_sym_end, anon_sym_import, anon_sym_LPAREN, @@ -3662,130 +3775,66 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_class, anon_sym_trait, anon_sym_impl, - [1149] = 10, + [1195] = 10, ACTIONS(3), 1, sym_line_comment, ACTIONS(21), 1, anon_sym_DASH_GT, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - ACTIONS(114), 1, + ACTIONS(116), 1, anon_sym_LPAREN, - ACTIONS(118), 1, + ACTIONS(120), 1, anon_sym_LBRACK, - STATE(79), 1, + STATE(75), 1, sym_type_parameters, - STATE(132), 1, + STATE(135), 1, sym_method_arguments, - STATE(251), 1, + STATE(257), 1, sym__returns, - STATE(369), 1, + STATE(320), 1, sym_block, - ACTIONS(137), 2, + ACTIONS(145), 2, anon_sym_fn, anon_sym_RBRACE, - [1181] = 4, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(124), 1, - anon_sym_DOT, - STATE(42), 1, - aux_sym_path_repeat1, - ACTIONS(139), 8, - ts_builtin_sym_end, - anon_sym_import, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_fn, - anon_sym_class, - anon_sym_trait, - anon_sym_impl, - [1201] = 6, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(143), 1, - anon_sym_LPAREN, - ACTIONS(145), 1, - anon_sym_if, - STATE(73), 1, - sym_symbols, - STATE(122), 1, - sym_tags, - ACTIONS(141), 6, - ts_builtin_sym_end, - anon_sym_import, - anon_sym_fn, - anon_sym_class, - anon_sym_trait, - anon_sym_impl, - [1225] = 6, + [1227] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(147), 1, anon_sym_fn, - ACTIONS(149), 1, + ACTIONS(150), 1, anon_sym_RBRACE, - ACTIONS(151), 1, + ACTIONS(152), 1, anon_sym_let, - ACTIONS(153), 1, + ACTIONS(155), 1, anon_sym_case, - STATE(52), 5, + STATE(50), 5, sym__class_expression, sym_field, sym_case, sym_class_method, aux_sym_class_body_repeat1, - [1248] = 2, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(155), 9, - ts_builtin_sym_end, - anon_sym_import, - anon_sym_fn, - anon_sym_class, - anon_sym_RBRACE, - anon_sym_let, - anon_sym_case, - anon_sym_trait, - anon_sym_impl, - [1263] = 6, + [1250] = 6, ACTIONS(3), 1, sym_line_comment, - ACTIONS(147), 1, + ACTIONS(158), 1, anon_sym_fn, - ACTIONS(151), 1, - anon_sym_let, - ACTIONS(153), 1, - anon_sym_case, - ACTIONS(157), 1, + ACTIONS(160), 1, anon_sym_RBRACE, - STATE(53), 5, - sym__class_expression, - sym_field, - sym_case, - sym_class_method, - aux_sym_class_body_repeat1, - [1286] = 6, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(159), 1, - anon_sym_fn, ACTIONS(162), 1, - anon_sym_RBRACE, - ACTIONS(164), 1, anon_sym_let, - ACTIONS(167), 1, + ACTIONS(164), 1, anon_sym_case, - STATE(53), 5, + STATE(54), 5, sym__class_expression, sym_field, sym_case, sym_class_method, aux_sym_class_body_repeat1, - [1309] = 2, + [1273] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(132), 9, + ACTIONS(126), 9, ts_builtin_sym_end, anon_sym_import, anon_sym_DOT, @@ -3795,226 +3844,187 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_class, anon_sym_trait, anon_sym_impl, - [1324] = 4, + [1288] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, - anon_sym_LBRACE, - STATE(90), 1, - sym_block, - ACTIONS(170), 6, + ACTIONS(166), 9, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, + anon_sym_RBRACE, + anon_sym_let, + anon_sym_case, anon_sym_trait, anon_sym_impl, - [1342] = 2, + [1303] = 6, ACTIONS(3), 1, sym_line_comment, - ACTIONS(172), 8, - ts_builtin_sym_end, - anon_sym_import, + ACTIONS(158), 1, anon_sym_fn, - anon_sym_DASH_GT, - anon_sym_class, - anon_sym_LBRACE, - anon_sym_trait, - anon_sym_impl, - [1356] = 4, + ACTIONS(162), 1, + anon_sym_let, + ACTIONS(164), 1, + anon_sym_case, + ACTIONS(168), 1, + anon_sym_RBRACE, + STATE(50), 5, + sym__class_expression, + sym_field, + sym_case, + sym_class_method, + aux_sym_class_body_repeat1, + [1326] = 8, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, + ACTIONS(21), 1, + anon_sym_DASH_GT, + ACTIONS(108), 1, anon_sym_LBRACE, - STATE(124), 1, + ACTIONS(116), 1, + anon_sym_LPAREN, + STATE(96), 1, + sym_method_arguments, + STATE(218), 1, + sym__returns, + STATE(319), 1, sym_block, - ACTIONS(174), 6, - ts_builtin_sym_end, - anon_sym_import, - anon_sym_fn, - anon_sym_class, - anon_sym_trait, - anon_sym_impl, - [1374] = 2, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(176), 8, - ts_builtin_sym_end, - anon_sym_import, + ACTIONS(170), 2, anon_sym_fn, - anon_sym_DASH_GT, - anon_sym_class, - anon_sym_LBRACE, - anon_sym_trait, - anon_sym_impl, - [1388] = 9, + anon_sym_RBRACE, + [1352] = 9, ACTIONS(3), 1, sym_line_comment, ACTIONS(21), 1, anon_sym_DASH_GT, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - ACTIONS(114), 1, + ACTIONS(116), 1, anon_sym_LPAREN, - ACTIONS(118), 1, + ACTIONS(120), 1, anon_sym_LBRACK, - STATE(138), 1, + STATE(116), 1, sym_type_parameters, - STATE(237), 1, - sym_method_arguments, - STATE(240), 1, + STATE(263), 1, sym_block, - STATE(382), 1, + STATE(266), 1, + sym_method_arguments, + STATE(380), 1, sym__returns, - [1416] = 9, + [1380] = 9, ACTIONS(3), 1, sym_line_comment, ACTIONS(21), 1, anon_sym_DASH_GT, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - ACTIONS(114), 1, + ACTIONS(116), 1, anon_sym_LPAREN, - ACTIONS(118), 1, + ACTIONS(120), 1, anon_sym_LBRACK, - STATE(117), 1, + STATE(144), 1, sym_type_parameters, - STATE(260), 1, - sym_block, - STATE(263), 1, + STATE(243), 1, sym_method_arguments, - STATE(344), 1, + STATE(246), 1, + sym_block, + STATE(343), 1, sym__returns, - [1444] = 6, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(178), 1, - sym_identifier, - ACTIONS(182), 1, - sym_visibility, - ACTIONS(184), 1, - anon_sym_asyncmut, - STATE(419), 1, - sym__method_modifier, - ACTIONS(180), 4, - anon_sym_mut, - anon_sym_move, - anon_sym_async, - anon_sym_static, - [1466] = 2, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(186), 8, - ts_builtin_sym_end, - anon_sym_import, - anon_sym_fn, - anon_sym_DASH_GT, - anon_sym_class, - anon_sym_LBRACE, - anon_sym_trait, - anon_sym_impl, - [1480] = 8, + [1408] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(21), 1, anon_sym_DASH_GT, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - ACTIONS(114), 1, + ACTIONS(116), 1, anon_sym_LPAREN, - STATE(97), 1, + STATE(100), 1, sym_method_arguments, - STATE(266), 1, + STATE(227), 1, sym__returns, - STATE(357), 1, + STATE(363), 1, sym_block, - ACTIONS(188), 2, + ACTIONS(172), 2, anon_sym_fn, anon_sym_RBRACE, - [1506] = 9, + [1434] = 9, ACTIONS(3), 1, sym_line_comment, ACTIONS(21), 1, anon_sym_DASH_GT, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - ACTIONS(114), 1, + ACTIONS(116), 1, anon_sym_LPAREN, - ACTIONS(118), 1, + ACTIONS(120), 1, anon_sym_LBRACK, - STATE(131), 1, + STATE(101), 1, sym_type_parameters, - STATE(135), 1, + STATE(239), 1, sym_block, - STATE(255), 1, + STATE(240), 1, sym_method_arguments, - STATE(366), 1, + STATE(347), 1, sym__returns, - [1534] = 4, + [1462] = 6, ACTIONS(3), 1, sym_line_comment, - ACTIONS(192), 1, - anon_sym_and, - STATE(66), 1, - aux_sym_tags_repeat1, - ACTIONS(190), 6, + ACTIONS(174), 1, + sym_identifier, + ACTIONS(178), 1, + sym_visibility, + ACTIONS(180), 1, + anon_sym_asyncmut, + STATE(410), 1, + sym__method_modifier, + ACTIONS(176), 4, + anon_sym_mut, + anon_sym_move, + anon_sym_async, + anon_sym_static, + [1484] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(182), 8, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, + anon_sym_DASH_GT, anon_sym_class, + anon_sym_LBRACE, anon_sym_trait, anon_sym_impl, - [1552] = 4, + [1498] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(192), 1, + ACTIONS(186), 1, anon_sym_and, - STATE(68), 1, + STATE(62), 1, aux_sym_tags_repeat1, - ACTIONS(194), 6, + ACTIONS(184), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [1570] = 9, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(21), 1, - anon_sym_DASH_GT, - ACTIONS(82), 1, - anon_sym_LBRACE, - ACTIONS(114), 1, - anon_sym_LPAREN, - ACTIONS(118), 1, - anon_sym_LBRACK, - STATE(115), 1, - sym_type_parameters, - STATE(222), 1, - sym_block, - STATE(231), 1, - sym_method_arguments, - STATE(338), 1, - sym__returns, - [1598] = 4, + [1516] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(198), 1, - anon_sym_and, - STATE(68), 1, - aux_sym_tags_repeat1, - ACTIONS(196), 6, + ACTIONS(189), 8, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, + anon_sym_DASH_GT, anon_sym_class, + anon_sym_LBRACE, anon_sym_trait, anon_sym_impl, - [1616] = 2, + [1530] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(201), 8, + ACTIONS(191), 8, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, @@ -4023,29 +4033,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_trait, anon_sym_impl, - [1630] = 9, + [1544] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(21), 1, - anon_sym_DASH_GT, - ACTIONS(82), 1, - anon_sym_LBRACE, - ACTIONS(114), 1, - anon_sym_LPAREN, - ACTIONS(118), 1, - anon_sym_LBRACK, - STATE(144), 1, - sym_block, - STATE(148), 1, - sym_type_parameters, - STATE(254), 1, - sym_method_arguments, - STATE(388), 1, - sym__returns, - [1658] = 2, + ACTIONS(137), 1, + anon_sym_if, + STATE(159), 1, + sym_tags, + ACTIONS(193), 6, + ts_builtin_sym_end, + anon_sym_import, + anon_sym_fn, + anon_sym_class, + anon_sym_trait, + anon_sym_impl, + [1562] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(203), 8, + ACTIONS(195), 8, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, @@ -4054,175 +4059,225 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, anon_sym_trait, anon_sym_impl, - [1672] = 8, + [1576] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(21), 1, anon_sym_DASH_GT, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - ACTIONS(114), 1, + ACTIONS(116), 1, anon_sym_LPAREN, STATE(93), 1, sym_method_arguments, - STATE(249), 1, + STATE(193), 1, sym__returns, - STATE(371), 1, + STATE(396), 1, sym_block, - ACTIONS(205), 2, + ACTIONS(197), 2, anon_sym_fn, anon_sym_RBRACE, - [1698] = 4, + [1602] = 9, ACTIONS(3), 1, sym_line_comment, - ACTIONS(145), 1, - anon_sym_if, - STATE(153), 1, - sym_tags, - ACTIONS(207), 6, + ACTIONS(21), 1, + anon_sym_DASH_GT, + ACTIONS(108), 1, + anon_sym_LBRACE, + ACTIONS(116), 1, + anon_sym_LPAREN, + ACTIONS(120), 1, + anon_sym_LBRACK, + STATE(141), 1, + sym_type_parameters, + STATE(142), 1, + sym_block, + STATE(254), 1, + sym_method_arguments, + STATE(341), 1, + sym__returns, + [1630] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(201), 1, + anon_sym_and, + STATE(79), 1, + aux_sym_tags_repeat1, + ACTIONS(199), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [1716] = 4, + [1648] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - STATE(156), 1, + STATE(126), 1, sym_block, - ACTIONS(209), 6, + ACTIONS(203), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [1734] = 9, + [1666] = 9, ACTIONS(3), 1, sym_line_comment, ACTIONS(21), 1, anon_sym_DASH_GT, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - ACTIONS(114), 1, + ACTIONS(116), 1, anon_sym_LPAREN, - ACTIONS(118), 1, + ACTIONS(120), 1, anon_sym_LBRACK, - STATE(101), 1, + STATE(119), 1, sym_type_parameters, - STATE(229), 1, - sym_method_arguments, - STATE(234), 1, + STATE(273), 1, sym_block, - STATE(336), 1, + STATE(274), 1, + sym_method_arguments, + STATE(401), 1, sym__returns, - [1762] = 4, + [1694] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, + ACTIONS(205), 8, + ts_builtin_sym_end, + anon_sym_import, + anon_sym_fn, + anon_sym_DASH_GT, + anon_sym_class, + anon_sym_LBRACE, + anon_sym_trait, + anon_sym_impl, + [1708] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(108), 1, anon_sym_LBRACE, - STATE(121), 1, + STATE(140), 1, sym_block, - ACTIONS(211), 6, + ACTIONS(207), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [1780] = 2, + [1726] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(213), 8, + ACTIONS(108), 1, + anon_sym_LBRACE, + STATE(164), 1, + sym_block, + ACTIONS(209), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, - anon_sym_DASH_GT, anon_sym_class, - anon_sym_LBRACE, anon_sym_trait, anon_sym_impl, - [1794] = 8, + [1744] = 8, ACTIONS(3), 1, sym_line_comment, ACTIONS(21), 1, anon_sym_DASH_GT, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - ACTIONS(114), 1, + ACTIONS(116), 1, anon_sym_LPAREN, - STATE(91), 1, + STATE(110), 1, sym_method_arguments, - STATE(205), 1, + STATE(256), 1, sym__returns, - STATE(370), 1, + STATE(324), 1, sym_block, - ACTIONS(215), 2, + ACTIONS(211), 2, anon_sym_fn, anon_sym_RBRACE, - [1820] = 8, + [1770] = 9, ACTIONS(3), 1, sym_line_comment, ACTIONS(21), 1, anon_sym_DASH_GT, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - ACTIONS(114), 1, + ACTIONS(116), 1, anon_sym_LPAREN, - STATE(111), 1, + ACTIONS(120), 1, + anon_sym_LBRACK, + STATE(92), 1, + sym_block, + STATE(138), 1, + sym_type_parameters, + STATE(248), 1, sym_method_arguments, - STATE(193), 1, + STATE(339), 1, sym__returns, - STATE(399), 1, + [1798] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(108), 1, + anon_sym_LBRACE, + STATE(91), 1, sym_block, - ACTIONS(217), 2, + ACTIONS(213), 6, + ts_builtin_sym_end, + anon_sym_import, anon_sym_fn, - anon_sym_RBRACE, - [1846] = 4, + anon_sym_class, + anon_sym_trait, + anon_sym_impl, + [1816] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(219), 1, + ACTIONS(215), 8, ts_builtin_sym_end, - ACTIONS(221), 1, - sym_identifier, - ACTIONS(223), 5, anon_sym_import, anon_sym_fn, + anon_sym_DASH_GT, anon_sym_class, + anon_sym_LBRACE, anon_sym_trait, anon_sym_impl, - [1863] = 2, + [1830] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(196), 7, + ACTIONS(201), 1, + anon_sym_and, + STATE(62), 1, + aux_sym_tags_repeat1, + ACTIONS(217), 6, ts_builtin_sym_end, anon_sym_import, - anon_sym_and, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [1876] = 5, + [1848] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(227), 1, - anon_sym_mut, - ACTIONS(229), 1, - sym_constant, - ACTIONS(225), 2, - anon_sym_COMMA, - anon_sym_LBRACE, - STATE(179), 3, - sym__type_parameter_requirement, - sym_mutable_requirement, - sym_generic_type, - [1895] = 2, + ACTIONS(137), 1, + anon_sym_if, + STATE(155), 1, + sym_tags, + ACTIONS(219), 6, + ts_builtin_sym_end, + anon_sym_import, + anon_sym_fn, + anon_sym_class, + anon_sym_trait, + anon_sym_impl, + [1866] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(231), 7, + ACTIONS(221), 7, ts_builtin_sym_end, anon_sym_import, anon_sym_if, @@ -4230,49 +4285,48 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_class, anon_sym_trait, anon_sym_impl, - [1908] = 5, + [1879] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(227), 1, - anon_sym_mut, - ACTIONS(229), 1, - sym_constant, - ACTIONS(233), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - STATE(228), 3, - sym__type_parameter_requirement, - sym_mutable_requirement, - sym_generic_type, - [1927] = 5, + ACTIONS(223), 7, + ts_builtin_sym_end, + anon_sym_import, + anon_sym_if, + anon_sym_fn, + anon_sym_class, + anon_sym_trait, + anon_sym_impl, + [1892] = 5, ACTIONS(3), 1, sym_line_comment, - ACTIONS(184), 1, + ACTIONS(180), 1, anon_sym_asyncmut, - ACTIONS(235), 1, + ACTIONS(225), 1, sym_identifier, - STATE(401), 1, + STATE(422), 1, sym__method_modifier, - ACTIONS(180), 4, + ACTIONS(176), 4, anon_sym_mut, anon_sym_move, anon_sym_async, anon_sym_static, - [1946] = 2, + [1911] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(237), 7, + ACTIONS(227), 1, ts_builtin_sym_end, + ACTIONS(229), 1, + sym_identifier, + ACTIONS(231), 5, anon_sym_import, - anon_sym_if, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [1959] = 2, + [1928] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(239), 7, + ACTIONS(233), 7, ts_builtin_sym_end, anon_sym_import, anon_sym_if, @@ -4280,7 +4334,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_class, anon_sym_trait, anon_sym_impl, - [1972] = 2, + [1941] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(237), 1, + anon_sym_mut, + ACTIONS(239), 1, + sym_constant, + ACTIONS(235), 2, + anon_sym_COMMA, + anon_sym_LBRACE, + STATE(217), 3, + sym__type_parameter_requirement, + sym_mutable_requirement, + sym_generic_type, + [1960] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(241), 7, @@ -4291,196 +4359,217 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_class, anon_sym_trait, anon_sym_impl, - [1985] = 2, + [1973] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(184), 7, + ts_builtin_sym_end, + anon_sym_import, + anon_sym_and, + anon_sym_fn, + anon_sym_class, + anon_sym_trait, + anon_sym_impl, + [1986] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(237), 1, + anon_sym_mut, + ACTIONS(239), 1, + sym_constant, + ACTIONS(243), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + STATE(234), 3, + sym__type_parameter_requirement, + sym_mutable_requirement, + sym_generic_type, + [2005] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(245), 7, + ts_builtin_sym_end, + anon_sym_import, + anon_sym_if, + anon_sym_fn, + anon_sym_class, + anon_sym_trait, + anon_sym_impl, + [2018] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(243), 6, + ACTIONS(247), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [1997] = 2, + [2030] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(245), 6, + ACTIONS(249), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2009] = 6, + [2042] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(21), 1, anon_sym_DASH_GT, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - STATE(185), 1, + STATE(184), 1, sym__returns, - STATE(328), 1, + STATE(329), 1, sym_block, - ACTIONS(247), 2, + ACTIONS(251), 2, + anon_sym_fn, + anon_sym_RBRACE, + [2062] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(253), 6, + anon_sym_LPAREN, anon_sym_fn, + anon_sym_COLON, + anon_sym_DASH_GT, + anon_sym_LBRACE, anon_sym_RBRACE, - [2029] = 5, + [2074] = 5, ACTIONS(3), 1, sym_line_comment, - ACTIONS(249), 1, + ACTIONS(255), 1, sym_visibility, - ACTIONS(253), 1, + ACTIONS(259), 1, sym_constant, - STATE(427), 1, + STATE(430), 1, sym__class_modifier, - ACTIONS(251), 3, + ACTIONS(257), 3, anon_sym_async, anon_sym_builtin, anon_sym_enum, - [2047] = 6, + [2092] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(21), 1, anon_sym_DASH_GT, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - STATE(199), 1, + STATE(192), 1, sym__returns, - STATE(356), 1, + STATE(383), 1, + sym_block, + ACTIONS(261), 2, + anon_sym_fn, + anon_sym_RBRACE, + [2112] = 6, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(21), 1, + anon_sym_DASH_GT, + ACTIONS(108), 1, + anon_sym_LBRACE, + STATE(195), 1, + sym__returns, + STATE(398), 1, sym_block, - ACTIONS(255), 2, + ACTIONS(263), 2, anon_sym_fn, anon_sym_RBRACE, - [2067] = 2, + [2132] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(257), 6, + ACTIONS(265), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2079] = 2, + [2144] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(259), 6, + ACTIONS(267), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2091] = 6, + [2156] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(21), 1, anon_sym_DASH_GT, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - STATE(207), 1, + STATE(196), 1, sym__returns, - STATE(384), 1, + STATE(404), 1, sym_block, - ACTIONS(261), 2, + ACTIONS(269), 2, anon_sym_fn, anon_sym_RBRACE, - [2111] = 6, + [2176] = 7, ACTIONS(3), 1, sym_line_comment, ACTIONS(21), 1, anon_sym_DASH_GT, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - STATE(208), 1, - sym__returns, - STATE(398), 1, + ACTIONS(116), 1, + anon_sym_LPAREN, + STATE(205), 1, sym_block, - ACTIONS(263), 2, - anon_sym_fn, - anon_sym_RBRACE, - [2131] = 2, + STATE(207), 1, + sym_method_arguments, + STATE(393), 1, + sym__returns, + [2198] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(265), 6, + ACTIONS(271), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2143] = 2, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(267), 6, - anon_sym_LPAREN, - anon_sym_fn, - anon_sym_COLON, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - [2155] = 2, + [2210] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(269), 6, + ACTIONS(273), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2167] = 7, + [2222] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(21), 1, - anon_sym_DASH_GT, - ACTIONS(82), 1, - anon_sym_LBRACE, - ACTIONS(114), 1, - anon_sym_LPAREN, - STATE(220), 1, - sym_block, - STATE(227), 1, - sym_method_arguments, - STATE(387), 1, - sym__returns, - [2189] = 2, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(271), 6, + ACTIONS(275), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2201] = 2, + [2234] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(273), 6, + ACTIONS(277), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2213] = 7, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(118), 1, - anon_sym_LBRACK, - ACTIONS(275), 1, - anon_sym_COLON, - ACTIONS(277), 1, - anon_sym_LBRACE, - STATE(109), 1, - sym_trait_body, - STATE(211), 1, - sym_type_parameters, - STATE(400), 1, - sym_required_traits, - [2235] = 2, + [2246] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(279), 6, @@ -4490,7 +4579,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_class, anon_sym_trait, anon_sym_impl, - [2247] = 2, + [2258] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(281), 6, @@ -4500,21 +4589,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_class, anon_sym_trait, anon_sym_impl, - [2259] = 6, + [2270] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(21), 1, anon_sym_DASH_GT, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - STATE(253), 1, + STATE(219), 1, sym__returns, - STATE(367), 1, + STATE(373), 1, sym_block, ACTIONS(283), 2, anon_sym_fn, anon_sym_RBRACE, - [2279] = 2, + [2290] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(285), 6, @@ -4524,17 +4613,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_class, anon_sym_trait, anon_sym_impl, - [2291] = 2, + [2302] = 6, ACTIONS(3), 1, sym_line_comment, - ACTIONS(287), 6, - ts_builtin_sym_end, - anon_sym_import, + ACTIONS(21), 1, + anon_sym_DASH_GT, + ACTIONS(108), 1, + anon_sym_LBRACE, + STATE(221), 1, + sym__returns, + STATE(370), 1, + sym_block, + ACTIONS(287), 2, anon_sym_fn, - anon_sym_class, - anon_sym_trait, - anon_sym_impl, - [2303] = 2, + anon_sym_RBRACE, + [2322] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(289), 6, @@ -4544,35 +4637,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_class, anon_sym_trait, anon_sym_impl, - [2315] = 6, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(21), 1, - anon_sym_DASH_GT, - ACTIONS(82), 1, - anon_sym_LBRACE, - STATE(257), 1, - sym__returns, - STATE(314), 1, - sym_block, - ACTIONS(291), 2, - anon_sym_fn, - anon_sym_RBRACE, - [2335] = 6, + [2334] = 7, ACTIONS(3), 1, sym_line_comment, - ACTIONS(21), 1, - anon_sym_DASH_GT, - ACTIONS(82), 1, + ACTIONS(120), 1, + anon_sym_LBRACK, + ACTIONS(291), 1, + anon_sym_COLON, + ACTIONS(293), 1, anon_sym_LBRACE, - STATE(267), 1, - sym__returns, - STATE(353), 1, - sym_block, - ACTIONS(293), 2, - anon_sym_fn, - anon_sym_RBRACE, - [2355] = 2, + STATE(123), 1, + sym_trait_body, + STATE(212), 1, + sym_type_parameters, + STATE(395), 1, + sym_required_traits, + [2356] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(295), 6, @@ -4582,7 +4662,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_class, anon_sym_trait, anon_sym_impl, - [2367] = 2, + [2368] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(297), 6, @@ -4592,1569 +4672,1571 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_class, anon_sym_trait, anon_sym_impl, - [2379] = 7, + [2380] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(21), 1, anon_sym_DASH_GT, - ACTIONS(82), 1, + ACTIONS(108), 1, + anon_sym_LBRACE, + STATE(228), 1, + sym__returns, + STATE(359), 1, + sym_block, + ACTIONS(299), 2, + anon_sym_fn, + anon_sym_RBRACE, + [2400] = 7, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(21), 1, + anon_sym_DASH_GT, + ACTIONS(108), 1, anon_sym_LBRACE, - ACTIONS(114), 1, + ACTIONS(116), 1, anon_sym_LPAREN, - STATE(272), 1, + STATE(230), 1, sym_block, - STATE(274), 1, + STATE(231), 1, sym_method_arguments, - STATE(347), 1, + STATE(354), 1, sym__returns, - [2401] = 2, + [2422] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(301), 1, + anon_sym_LPAREN, + STATE(250), 1, + sym_case_arguments, + ACTIONS(303), 4, + anon_sym_fn, + anon_sym_RBRACE, + anon_sym_let, + anon_sym_case, + [2438] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(299), 6, + ACTIONS(305), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2413] = 7, + [2450] = 7, ACTIONS(3), 1, sym_line_comment, ACTIONS(21), 1, anon_sym_DASH_GT, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - ACTIONS(114), 1, + ACTIONS(116), 1, anon_sym_LPAREN, - STATE(203), 1, - sym_method_arguments, - STATE(224), 1, + STATE(242), 1, sym_block, - STATE(333), 1, + STATE(244), 1, + sym_method_arguments, + STATE(344), 1, sym__returns, - [2435] = 2, + [2472] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(301), 6, + ACTIONS(307), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2447] = 2, + [2484] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(303), 6, + ACTIONS(309), 6, anon_sym_LPAREN, anon_sym_fn, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, - [2459] = 2, + [2496] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(305), 6, + ACTIONS(311), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2471] = 2, + [2508] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(307), 6, + ACTIONS(313), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2483] = 2, + [2520] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(309), 6, + ACTIONS(315), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2495] = 2, + [2532] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(311), 6, + ACTIONS(317), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2507] = 2, + [2544] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(313), 6, + ACTIONS(319), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2519] = 2, + [2556] = 7, ACTIONS(3), 1, sym_line_comment, - ACTIONS(315), 6, + ACTIONS(120), 1, + anon_sym_LBRACK, + ACTIONS(291), 1, + anon_sym_COLON, + ACTIONS(293), 1, + anon_sym_LBRACE, + STATE(113), 1, + sym_trait_body, + STATE(258), 1, + sym_type_parameters, + STATE(377), 1, + sym_required_traits, + [2578] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(323), 1, + anon_sym_RPAREN, + ACTIONS(325), 1, + sym_constant, + ACTIONS(321), 2, + sym_self, + sym_identifier, + STATE(308), 2, + sym__symbol, + sym_import_as, + [2596] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(327), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2531] = 5, + [2608] = 5, ACTIONS(3), 1, sym_line_comment, - ACTIONS(319), 1, - anon_sym_RPAREN, - ACTIONS(321), 1, + ACTIONS(325), 1, sym_constant, - ACTIONS(317), 2, + ACTIONS(329), 1, + anon_sym_RPAREN, + ACTIONS(321), 2, sym_self, sym_identifier, - STATE(397), 2, + STATE(387), 2, sym__symbol, sym_import_as, - [2549] = 4, + [2626] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(323), 1, - anon_sym_LPAREN, - STATE(244), 1, - sym_case_arguments, - ACTIONS(325), 4, + ACTIONS(331), 6, + ts_builtin_sym_end, + anon_sym_import, anon_sym_fn, - anon_sym_RBRACE, - anon_sym_let, - anon_sym_case, - [2565] = 2, + anon_sym_class, + anon_sym_trait, + anon_sym_impl, + [2638] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(327), 6, + ACTIONS(333), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2577] = 2, + [2650] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(329), 6, + ACTIONS(335), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2589] = 2, + [2662] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(331), 6, + ACTIONS(337), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2601] = 7, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(21), 1, - anon_sym_DASH_GT, - ACTIONS(82), 1, - anon_sym_LBRACE, - ACTIONS(114), 1, - anon_sym_LPAREN, - STATE(98), 1, - sym_block, - STATE(250), 1, - sym_method_arguments, - STATE(358), 1, - sym__returns, - [2623] = 6, + [2674] = 6, ACTIONS(3), 1, sym_line_comment, ACTIONS(21), 1, anon_sym_DASH_GT, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - STATE(194), 1, + STATE(259), 1, sym__returns, - STATE(319), 1, + STATE(321), 1, sym_block, - ACTIONS(333), 2, + ACTIONS(339), 2, anon_sym_fn, anon_sym_RBRACE, - [2643] = 2, + [2694] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(335), 6, + ACTIONS(341), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2655] = 2, + [2706] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(337), 6, + ACTIONS(343), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2667] = 2, + [2718] = 7, ACTIONS(3), 1, sym_line_comment, - ACTIONS(339), 6, - ts_builtin_sym_end, - anon_sym_import, - anon_sym_fn, - anon_sym_class, - anon_sym_trait, - anon_sym_impl, - [2679] = 2, + ACTIONS(21), 1, + anon_sym_DASH_GT, + ACTIONS(108), 1, + anon_sym_LBRACE, + ACTIONS(116), 1, + anon_sym_LPAREN, + STATE(149), 1, + sym_block, + STATE(245), 1, + sym_method_arguments, + STATE(346), 1, + sym__returns, + [2740] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(341), 6, + ACTIONS(345), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2691] = 2, + [2752] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(343), 6, + ACTIONS(347), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2703] = 7, + [2764] = 7, ACTIONS(3), 1, sym_line_comment, ACTIONS(21), 1, anon_sym_DASH_GT, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - ACTIONS(114), 1, + ACTIONS(116), 1, anon_sym_LPAREN, - STATE(232), 1, + STATE(102), 1, sym_block, - STATE(242), 1, + STATE(226), 1, sym_method_arguments, - STATE(339), 1, + STATE(361), 1, sym__returns, - [2725] = 2, + [2786] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(345), 6, + ACTIONS(349), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2737] = 2, + [2798] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(347), 6, + ACTIONS(351), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2749] = 2, + [2810] = 7, ACTIONS(3), 1, sym_line_comment, - ACTIONS(349), 6, + ACTIONS(21), 1, + anon_sym_DASH_GT, + ACTIONS(108), 1, + anon_sym_LBRACE, + ACTIONS(116), 1, + anon_sym_LPAREN, + STATE(267), 1, + sym_block, + STATE(270), 1, + sym_method_arguments, + STATE(381), 1, + sym__returns, + [2832] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(353), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2761] = 2, + [2844] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(351), 6, + ACTIONS(355), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2773] = 2, + [2856] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(353), 6, + ACTIONS(357), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2785] = 2, + [2868] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(355), 6, + ACTIONS(359), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2797] = 2, + [2880] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(357), 6, + ACTIONS(361), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2809] = 2, + [2892] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(359), 6, + ACTIONS(363), 6, + ts_builtin_sym_end, + anon_sym_import, + anon_sym_fn, + anon_sym_class, + anon_sym_trait, + anon_sym_impl, + [2904] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(365), 6, anon_sym_LPAREN, anon_sym_fn, anon_sym_COLON, anon_sym_DASH_GT, anon_sym_LBRACE, anon_sym_RBRACE, - [2821] = 4, + [2916] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(27), 1, + ACTIONS(44), 1, anon_sym_LBRACK, - STATE(6), 1, + STATE(7), 1, sym_type_arguments, - ACTIONS(361), 4, + ACTIONS(367), 4, anon_sym_COMMA, anon_sym_RBRACK, anon_sym_PLUS, anon_sym_LBRACE, - [2837] = 7, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(21), 1, - anon_sym_DASH_GT, - ACTIONS(82), 1, - anon_sym_LBRACE, - ACTIONS(114), 1, - anon_sym_LPAREN, - STATE(143), 1, - sym_block, - STATE(239), 1, - sym_method_arguments, - STATE(385), 1, - sym__returns, - [2859] = 7, + [2932] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(118), 1, - anon_sym_LBRACK, - ACTIONS(275), 1, - anon_sym_COLON, - ACTIONS(277), 1, - anon_sym_LBRACE, - STATE(106), 1, - sym_trait_body, - STATE(183), 1, - sym_type_parameters, - STATE(321), 1, - sym_required_traits, - [2881] = 2, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(363), 6, + ACTIONS(369), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2893] = 2, + [2944] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(365), 6, + ACTIONS(371), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2905] = 2, + [2956] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(367), 6, + ACTIONS(373), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2917] = 2, + [2968] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(369), 6, + ACTIONS(375), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2929] = 2, + [2980] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(371), 6, + ACTIONS(377), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2941] = 2, + [2992] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(373), 6, + ACTIONS(379), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2953] = 2, + [3004] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(375), 6, + ACTIONS(381), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2965] = 2, + [3016] = 5, ACTIONS(3), 1, sym_line_comment, - ACTIONS(377), 6, - anon_sym_LPAREN, - anon_sym_fn, - anon_sym_COLON, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - [2977] = 2, + ACTIONS(325), 1, + sym_constant, + ACTIONS(383), 1, + anon_sym_RPAREN, + ACTIONS(321), 2, + sym_self, + sym_identifier, + STATE(387), 2, + sym__symbol, + sym_import_as, + [3034] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(379), 6, + ACTIONS(385), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [2989] = 2, + [3046] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(381), 6, + ACTIONS(387), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [3001] = 2, + [3058] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(389), 6, + anon_sym_LPAREN, + anon_sym_fn, + anon_sym_COLON, + anon_sym_DASH_GT, + anon_sym_LBRACE, + anon_sym_RBRACE, + [3070] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(383), 6, + ACTIONS(391), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [3013] = 2, + [3082] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(385), 6, + ACTIONS(393), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [3025] = 2, + [3094] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(387), 6, + ACTIONS(395), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [3037] = 2, + [3106] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(389), 6, + ACTIONS(397), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [3049] = 2, + [3118] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(391), 6, + ACTIONS(399), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [3061] = 2, + [3130] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(393), 6, + ACTIONS(401), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [3073] = 2, + [3142] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(395), 6, + ACTIONS(403), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [3085] = 5, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(321), 1, - sym_constant, - ACTIONS(397), 1, - anon_sym_RPAREN, - ACTIONS(317), 2, - sym_self, - sym_identifier, - STATE(313), 2, - sym__symbol, - sym_import_as, - [3103] = 2, + [3154] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(399), 6, + ACTIONS(405), 6, ts_builtin_sym_end, anon_sym_import, anon_sym_fn, anon_sym_class, anon_sym_trait, anon_sym_impl, - [3115] = 5, + [3166] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(321), 1, - sym_constant, - ACTIONS(401), 1, - anon_sym_RPAREN, - ACTIONS(317), 2, - sym_self, - sym_identifier, - STATE(397), 2, - sym__symbol, - sym_import_as, - [3133] = 6, + ACTIONS(407), 6, + ts_builtin_sym_end, + anon_sym_import, + anon_sym_fn, + anon_sym_class, + anon_sym_trait, + anon_sym_impl, + [3178] = 6, ACTIONS(3), 1, sym_line_comment, - ACTIONS(403), 1, + ACTIONS(409), 1, sym_identifier, - ACTIONS(405), 1, + ACTIONS(411), 1, anon_sym_RPAREN, - ACTIONS(407), 1, + ACTIONS(413), 1, anon_sym_DOT_DOT_DOT, - STATE(352), 1, + STATE(334), 1, sym_rest_argument, - STATE(389), 1, + STATE(364), 1, sym_argument, - [3152] = 4, + [3197] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(321), 1, + ACTIONS(325), 1, sym_constant, - ACTIONS(317), 2, + ACTIONS(321), 2, sym_self, sym_identifier, - STATE(397), 2, + STATE(387), 2, sym__symbol, sym_import_as, - [3167] = 6, + [3212] = 6, ACTIONS(3), 1, sym_line_comment, - ACTIONS(403), 1, + ACTIONS(409), 1, sym_identifier, - ACTIONS(407), 1, + ACTIONS(413), 1, anon_sym_DOT_DOT_DOT, - ACTIONS(409), 1, + ACTIONS(415), 1, anon_sym_RPAREN, - STATE(324), 1, + STATE(335), 1, sym_rest_argument, - STATE(389), 1, + STATE(364), 1, sym_argument, - [3186] = 4, + [3231] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(227), 1, + ACTIONS(237), 1, anon_sym_mut, - ACTIONS(229), 1, + ACTIONS(239), 1, sym_constant, - STATE(246), 3, + STATE(252), 3, sym__type_parameter_requirement, sym_mutable_requirement, sym_generic_type, - [3201] = 5, + [3246] = 5, ACTIONS(3), 1, sym_line_comment, - ACTIONS(411), 1, + ACTIONS(417), 1, sym_identifier, - ACTIONS(415), 1, + ACTIONS(421), 1, sym_visibility, - STATE(413), 1, + STATE(411), 1, sym__trait_method_modifier, - ACTIONS(413), 2, + ACTIONS(419), 2, anon_sym_mut, anon_sym_move, - [3218] = 6, + [3263] = 6, ACTIONS(3), 1, sym_line_comment, - ACTIONS(27), 1, + ACTIONS(44), 1, anon_sym_LBRACK, - ACTIONS(417), 1, + ACTIONS(423), 1, anon_sym_LBRACE, - ACTIONS(419), 1, + ACTIONS(425), 1, anon_sym_for, - STATE(6), 1, + STATE(7), 1, sym_type_arguments, - STATE(155), 1, + STATE(129), 1, sym_reopen_class_body, - [3237] = 4, + [3282] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(421), 1, + ACTIONS(427), 1, sym_constant, - STATE(402), 1, + STATE(425), 1, sym__class_modifier, - ACTIONS(251), 3, + ACTIONS(257), 3, anon_sym_async, anon_sym_builtin, anon_sym_enum, - [3252] = 4, + [3297] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(425), 1, + ACTIONS(431), 1, anon_sym_PLUS, - STATE(177), 1, + STATE(180), 1, aux_sym_type_parameter_requirements_repeat1, - ACTIONS(423), 3, + ACTIONS(429), 3, anon_sym_COMMA, anon_sym_RBRACK, anon_sym_LBRACE, - [3267] = 2, + [3312] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(428), 4, + ACTIONS(434), 4, anon_sym_fn, anon_sym_RBRACE, anon_sym_let, anon_sym_case, - [3277] = 4, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(432), 1, - anon_sym_PLUS, - STATE(197), 1, - aux_sym_type_parameter_requirements_repeat1, - ACTIONS(430), 2, - anon_sym_COMMA, - anon_sym_LBRACE, - [3291] = 5, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(403), 1, - sym_identifier, - ACTIONS(434), 1, - anon_sym_COMMA, - ACTIONS(436), 1, - anon_sym_RPAREN, - STATE(283), 1, - sym_argument, - [3307] = 5, + [3322] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(118), 1, + ACTIONS(44), 1, anon_sym_LBRACK, - ACTIONS(438), 1, + STATE(7), 1, + sym_type_arguments, + ACTIONS(436), 2, + anon_sym_PLUS, anon_sym_LBRACE, - STATE(141), 1, - sym_class_body, - STATE(381), 1, - sym_type_parameters, - [3323] = 2, + [3336] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(440), 4, + ACTIONS(438), 4, anon_sym_fn, anon_sym_RBRACE, anon_sym_let, anon_sym_case, - [3333] = 5, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(275), 1, - anon_sym_COLON, - ACTIONS(277), 1, - anon_sym_LBRACE, - STATE(110), 1, - sym_trait_body, - STATE(349), 1, - sym_required_traits, - [3349] = 4, + [3346] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - STATE(368), 1, + STATE(323), 1, sym_block, - ACTIONS(442), 2, + ACTIONS(440), 2, anon_sym_fn, anon_sym_RBRACE, - [3363] = 4, + [3360] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, - anon_sym_LBRACE, - STATE(316), 1, - sym_block, - ACTIONS(444), 2, + ACTIONS(442), 4, anon_sym_fn, anon_sym_RBRACE, - [3377] = 2, + anon_sym_let, + anon_sym_case, + [3370] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(446), 4, + ACTIONS(444), 4, anon_sym_fn, anon_sym_RBRACE, anon_sym_let, anon_sym_case, - [3387] = 2, + [3380] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(448), 4, + ACTIONS(446), 4, anon_sym_fn, anon_sym_RBRACE, anon_sym_let, anon_sym_case, - [3397] = 4, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(27), 1, - anon_sym_LBRACK, - STATE(6), 1, - sym_type_arguments, - ACTIONS(450), 2, - anon_sym_PLUS, - anon_sym_LBRACE, - [3411] = 2, + [3390] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(452), 4, + ACTIONS(448), 4, anon_sym_fn, anon_sym_RBRACE, anon_sym_let, anon_sym_case, - [3421] = 2, + [3400] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(454), 4, + ACTIONS(450), 4, anon_sym_fn, anon_sym_RBRACE, anon_sym_let, anon_sym_case, - [3431] = 2, + [3410] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(456), 4, + ACTIONS(452), 4, anon_sym_fn, anon_sym_RBRACE, anon_sym_let, anon_sym_case, - [3441] = 2, + [3420] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(456), 1, + anon_sym_PLUS, + STATE(180), 1, + aux_sym_type_parameter_requirements_repeat1, + ACTIONS(454), 2, + anon_sym_COMMA, + anon_sym_LBRACE, + [3434] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(458), 4, + ACTIONS(108), 1, + anon_sym_LBRACE, + STATE(326), 1, + sym_block, + ACTIONS(458), 2, anon_sym_fn, anon_sym_RBRACE, - anon_sym_let, - anon_sym_case, - [3451] = 4, + [3448] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - STATE(365), 1, + STATE(327), 1, sym_block, ACTIONS(460), 2, anon_sym_fn, anon_sym_RBRACE, - [3465] = 4, + [3462] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, + ACTIONS(464), 1, + anon_sym_COLON, + STATE(333), 1, + sym_type_parameter_requirements, + ACTIONS(462), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [3476] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(108), 1, anon_sym_LBRACE, - STATE(362), 1, + STATE(330), 1, sym_block, - ACTIONS(462), 2, + ACTIONS(466), 2, + anon_sym_fn, + anon_sym_RBRACE, + [3490] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(108), 1, + anon_sym_LBRACE, + STATE(332), 1, + sym_block, + ACTIONS(468), 2, + anon_sym_fn, + anon_sym_RBRACE, + [3504] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(470), 4, + anon_sym_fn, + anon_sym_RBRACE, + anon_sym_let, + anon_sym_case, + [3514] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(472), 4, anon_sym_fn, anon_sym_RBRACE, - [3479] = 2, + anon_sym_let, + anon_sym_case, + [3524] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(464), 4, + ACTIONS(474), 4, anon_sym_fn, anon_sym_RBRACE, anon_sym_let, anon_sym_case, - [3489] = 4, + [3534] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(466), 1, + ACTIONS(476), 1, sym_identifier, - STATE(404), 1, + STATE(432), 1, sym__trait_method_modifier, - ACTIONS(413), 2, + ACTIONS(419), 2, anon_sym_mut, anon_sym_move, - [3503] = 4, + [3548] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(432), 1, - anon_sym_PLUS, - STATE(177), 1, - aux_sym_type_parameter_requirements_repeat1, - ACTIONS(468), 2, - anon_sym_COMMA, - anon_sym_LBRACE, - [3517] = 4, + ACTIONS(158), 1, + anon_sym_fn, + ACTIONS(478), 1, + anon_sym_RBRACE, + STATE(222), 2, + sym_class_method, + aux_sym_implement_trait_body_repeat1, + [3562] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(470), 1, + ACTIONS(480), 4, anon_sym_fn, - ACTIONS(473), 1, anon_sym_RBRACE, - STATE(198), 2, - sym_trait_method, - aux_sym_trait_body_repeat1, - [3531] = 4, + anon_sym_let, + anon_sym_case, + [3572] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, - anon_sym_LBRACE, - STATE(322), 1, - sym_block, - ACTIONS(475), 2, + ACTIONS(482), 1, anon_sym_fn, + ACTIONS(485), 1, anon_sym_RBRACE, - [3545] = 4, + STATE(203), 2, + sym_trait_method, + aux_sym_trait_body_repeat1, + [3586] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(147), 1, + ACTIONS(487), 4, anon_sym_fn, - ACTIONS(477), 1, anon_sym_RBRACE, - STATE(265), 2, - sym_class_method, - aux_sym_implement_trait_body_repeat1, - [3559] = 2, + anon_sym_let, + anon_sym_case, + [3596] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(479), 4, + ACTIONS(489), 4, anon_sym_fn, anon_sym_RBRACE, anon_sym_let, anon_sym_case, - [3569] = 4, + [3606] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(481), 1, + ACTIONS(491), 1, anon_sym_fn, - ACTIONS(484), 1, + ACTIONS(494), 1, anon_sym_RBRACE, - STATE(202), 2, + STATE(206), 2, sym_class_method, aux_sym_implement_trait_body_repeat1, - [3583] = 5, + [3620] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(21), 1, anon_sym_DASH_GT, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - STATE(238), 1, + STATE(188), 1, sym_block, - STATE(380), 1, + STATE(345), 1, sym__returns, - [3599] = 4, + [3636] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(147), 1, + ACTIONS(158), 1, anon_sym_fn, - ACTIONS(486), 1, + ACTIONS(496), 1, anon_sym_RBRACE, - STATE(262), 2, + STATE(268), 2, sym_class_method, aux_sym_implement_trait_body_repeat1, - [3613] = 4, + [3650] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, - anon_sym_LBRACE, - STATE(323), 1, - sym_block, - ACTIONS(488), 2, + ACTIONS(498), 4, anon_sym_fn, anon_sym_RBRACE, - [3627] = 4, + anon_sym_let, + anon_sym_case, + [3660] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, - anon_sym_LBRACE, - STATE(354), 1, - sym_block, - ACTIONS(490), 2, + ACTIONS(500), 4, anon_sym_fn, anon_sym_RBRACE, - [3641] = 4, + anon_sym_let, + anon_sym_case, + [3670] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, - anon_sym_LBRACE, - STATE(334), 1, - sym_block, - ACTIONS(492), 2, + ACTIONS(502), 4, anon_sym_fn, anon_sym_RBRACE, - [3655] = 4, + anon_sym_let, + anon_sym_case, + [3680] = 5, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, + ACTIONS(291), 1, + anon_sym_COLON, + ACTIONS(293), 1, anon_sym_LBRACE, - STATE(337), 1, - sym_block, - ACTIONS(494), 2, + STATE(120), 1, + sym_trait_body, + STATE(400), 1, + sym_required_traits, + [3696] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(504), 4, anon_sym_fn, anon_sym_RBRACE, - [3669] = 2, + anon_sym_let, + anon_sym_case, + [3706] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(496), 4, + ACTIONS(506), 4, anon_sym_fn, anon_sym_RBRACE, anon_sym_let, anon_sym_case, - [3679] = 4, + [3716] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(498), 1, + ACTIONS(508), 1, anon_sym_fn, - ACTIONS(500), 1, + ACTIONS(510), 1, anon_sym_RBRACE, - STATE(198), 2, + STATE(265), 2, sym_trait_method, aux_sym_trait_body_repeat1, - [3693] = 5, + [3730] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(275), 1, - anon_sym_COLON, - ACTIONS(277), 1, + ACTIONS(512), 1, anon_sym_LBRACE, - STATE(116), 1, - sym_trait_body, - STATE(335), 1, - sym_required_traits, - [3709] = 4, + ACTIONS(514), 1, + sym_constant, + STATE(306), 2, + sym__required_trait, + sym_generic_type, + [3744] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(456), 1, + anon_sym_PLUS, + STATE(191), 1, + aux_sym_type_parameter_requirements_repeat1, + ACTIONS(516), 2, + anon_sym_COMMA, + anon_sym_LBRACE, + [3758] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(498), 1, + ACTIONS(108), 1, + anon_sym_LBRACE, + STATE(366), 1, + sym_block, + ACTIONS(518), 2, anon_sym_fn, - ACTIONS(502), 1, anon_sym_RBRACE, - STATE(210), 2, - sym_trait_method, - aux_sym_trait_body_repeat1, - [3723] = 2, + [3772] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(504), 4, + ACTIONS(108), 1, + anon_sym_LBRACE, + STATE(385), 1, + sym_block, + ACTIONS(520), 2, anon_sym_fn, anon_sym_RBRACE, - anon_sym_let, - anon_sym_case, - [3733] = 2, + [3786] = 5, ACTIONS(3), 1, sym_line_comment, - ACTIONS(506), 4, + ACTIONS(120), 1, + anon_sym_LBRACK, + ACTIONS(522), 1, + anon_sym_LBRACE, + STATE(111), 1, + sym_class_body, + STATE(325), 1, + sym_type_parameters, + [3802] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(108), 1, + anon_sym_LBRACE, + STATE(392), 1, + sym_block, + ACTIONS(524), 2, anon_sym_fn, anon_sym_RBRACE, - anon_sym_let, - anon_sym_case, - [3743] = 2, + [3816] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(508), 4, + ACTIONS(158), 1, anon_sym_fn, + ACTIONS(526), 1, anon_sym_RBRACE, - anon_sym_let, - anon_sym_case, - [3753] = 4, + STATE(206), 2, + sym_class_method, + aux_sym_implement_trait_body_repeat1, + [3830] = 5, ACTIONS(3), 1, sym_line_comment, - ACTIONS(510), 1, - anon_sym_LBRACE, - ACTIONS(512), 1, - sym_constant, - STATE(306), 2, - sym__required_trait, - sym_generic_type, - [3767] = 2, + ACTIONS(409), 1, + sym_identifier, + ACTIONS(528), 1, + anon_sym_COMMA, + ACTIONS(530), 1, + anon_sym_RPAREN, + STATE(315), 1, + sym_argument, + [3846] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(514), 4, + ACTIONS(108), 1, + anon_sym_LBRACE, + STATE(397), 1, + sym_block, + ACTIONS(532), 2, anon_sym_fn, anon_sym_RBRACE, - anon_sym_let, - anon_sym_case, - [3777] = 2, + [3860] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(516), 4, + ACTIONS(534), 4, anon_sym_fn, + anon_sym_DASH_GT, + anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_let, - anon_sym_case, - [3787] = 2, + [3870] = 5, ACTIONS(3), 1, sym_line_comment, - ACTIONS(518), 4, - anon_sym_fn, + ACTIONS(21), 1, anon_sym_DASH_GT, + ACTIONS(108), 1, anon_sym_LBRACE, - anon_sym_RBRACE, - [3797] = 2, + STATE(167), 1, + sym_block, + STATE(350), 1, + sym__returns, + [3886] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(520), 4, + ACTIONS(108), 1, + anon_sym_LBRACE, + STATE(399), 1, + sym_block, + ACTIONS(536), 2, anon_sym_fn, anon_sym_RBRACE, - anon_sym_let, - anon_sym_case, - [3807] = 2, + [3900] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(522), 4, + ACTIONS(108), 1, + anon_sym_LBRACE, + STATE(402), 1, + sym_block, + ACTIONS(538), 2, anon_sym_fn, anon_sym_RBRACE, - anon_sym_let, - anon_sym_case, - [3817] = 2, + [3914] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(524), 4, + ACTIONS(540), 4, anon_sym_fn, anon_sym_RBRACE, anon_sym_let, anon_sym_case, - [3827] = 5, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(526), 1, - anon_sym_if, - ACTIONS(528), 1, - anon_sym_LBRACE, - STATE(154), 1, - sym_implement_trait_body, - STATE(372), 1, - sym_bounds, - [3843] = 2, + [3924] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(530), 4, + ACTIONS(542), 4, anon_sym_fn, anon_sym_RBRACE, anon_sym_let, anon_sym_case, - [3853] = 5, + [3934] = 5, ACTIONS(3), 1, sym_line_comment, - ACTIONS(118), 1, - anon_sym_LBRACK, - ACTIONS(438), 1, + ACTIONS(21), 1, + anon_sym_DASH_GT, + ACTIONS(108), 1, anon_sym_LBRACE, - STATE(105), 1, - sym_class_body, - STATE(325), 1, - sym_type_parameters, - [3869] = 2, + STATE(199), 1, + sym_block, + STATE(318), 1, + sym__returns, + [3950] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(532), 4, + ACTIONS(544), 4, anon_sym_COMMA, anon_sym_RBRACK, anon_sym_PLUS, anon_sym_LBRACE, - [3879] = 5, + [3960] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(21), 1, - anon_sym_DASH_GT, - ACTIONS(82), 1, - anon_sym_LBRACE, - STATE(190), 1, - sym_block, - STATE(346), 1, - sym__returns, - [3895] = 4, + ACTIONS(546), 4, + anon_sym_fn, + anon_sym_RBRACE, + anon_sym_let, + anon_sym_case, + [3970] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(432), 1, + ACTIONS(456), 1, anon_sym_PLUS, - STATE(268), 1, + STATE(275), 1, aux_sym_type_parameter_requirements_repeat1, - ACTIONS(534), 2, + ACTIONS(548), 2, anon_sym_COMMA, anon_sym_RBRACK, - [3909] = 5, + [3984] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(21), 1, + ACTIONS(550), 4, + anon_sym_fn, anon_sym_DASH_GT, - ACTIONS(82), 1, anon_sym_LBRACE, - STATE(235), 1, - sym_block, - STATE(383), 1, - sym__returns, - [3925] = 2, + anon_sym_RBRACE, + [3994] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(536), 4, + ACTIONS(552), 4, anon_sym_fn, anon_sym_RBRACE, anon_sym_let, anon_sym_case, - [3935] = 5, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(21), 1, - anon_sym_DASH_GT, - ACTIONS(82), 1, - anon_sym_LBRACE, - STATE(264), 1, - sym_block, - STATE(343), 1, - sym__returns, - [3951] = 2, + [4004] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(538), 4, + ACTIONS(554), 4, anon_sym_fn, anon_sym_RBRACE, anon_sym_let, anon_sym_case, - [3961] = 2, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(540), 4, - anon_sym_fn, - anon_sym_DASH_GT, - anon_sym_LBRACE, - anon_sym_RBRACE, - [3971] = 2, + [4014] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(542), 4, + ACTIONS(556), 4, anon_sym_fn, anon_sym_RBRACE, anon_sym_let, anon_sym_case, - [3981] = 2, + [4024] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(544), 4, + ACTIONS(558), 4, anon_sym_fn, anon_sym_RBRACE, anon_sym_let, anon_sym_case, - [3991] = 2, + [4034] = 5, ACTIONS(3), 1, sym_line_comment, - ACTIONS(546), 4, + ACTIONS(21), 1, + anon_sym_DASH_GT, + ACTIONS(108), 1, + anon_sym_LBRACE, + STATE(210), 1, + sym_block, + STATE(389), 1, + sym__returns, + [4050] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(120), 1, + anon_sym_LBRACK, + ACTIONS(522), 1, + anon_sym_LBRACE, + STATE(104), 1, + sym_class_body, + STATE(348), 1, + sym_type_parameters, + [4066] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(560), 4, anon_sym_fn, anon_sym_RBRACE, anon_sym_let, anon_sym_case, - [4001] = 5, + [4076] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(21), 1, anon_sym_DASH_GT, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - STATE(247), 1, + STATE(272), 1, sym_block, - STATE(341), 1, + STATE(394), 1, sym__returns, - [4017] = 2, + [4092] = 5, ACTIONS(3), 1, sym_line_comment, - ACTIONS(548), 4, - anon_sym_fn, - anon_sym_RBRACE, - anon_sym_let, - anon_sym_case, - [4027] = 5, + ACTIONS(21), 1, + anon_sym_DASH_GT, + ACTIONS(108), 1, + anon_sym_LBRACE, + STATE(213), 1, + sym_block, + STATE(386), 1, + sym__returns, + [4108] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(21), 1, anon_sym_DASH_GT, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - STATE(134), 1, + STATE(154), 1, sym_block, - STATE(392), 1, + STATE(369), 1, sym__returns, - [4043] = 2, + [4124] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(550), 4, + ACTIONS(562), 4, anon_sym_fn, anon_sym_RBRACE, anon_sym_let, anon_sym_case, - [4053] = 2, + [4134] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(552), 4, + ACTIONS(564), 4, anon_sym_fn, anon_sym_RBRACE, anon_sym_let, anon_sym_case, - [4063] = 5, + [4144] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(21), 1, anon_sym_DASH_GT, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - STATE(256), 1, + STATE(145), 1, sym_block, - STATE(340), 1, + STATE(342), 1, sym__returns, - [4079] = 5, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(118), 1, - anon_sym_LBRACK, - ACTIONS(438), 1, - anon_sym_LBRACE, - STATE(100), 1, - sym_class_body, - STATE(355), 1, - sym_type_parameters, - [4095] = 2, + [4160] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(554), 4, + ACTIONS(566), 4, anon_sym_fn, anon_sym_RBRACE, anon_sym_let, anon_sym_case, - [4105] = 2, + [4170] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(556), 4, + ACTIONS(568), 4, anon_sym_fn, anon_sym_RBRACE, anon_sym_let, anon_sym_case, - [4115] = 2, + [4180] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(120), 1, + anon_sym_LBRACK, + ACTIONS(522), 1, + anon_sym_LBRACE, + STATE(171), 1, + sym_class_body, + STATE(353), 1, + sym_type_parameters, + [4196] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(423), 4, + ACTIONS(429), 4, anon_sym_COMMA, anon_sym_RBRACK, anon_sym_PLUS, anon_sym_LBRACE, - [4125] = 2, + [4206] = 5, ACTIONS(3), 1, sym_line_comment, - ACTIONS(558), 4, - anon_sym_fn, - anon_sym_RBRACE, - anon_sym_let, - anon_sym_case, - [4135] = 2, + ACTIONS(120), 1, + anon_sym_LBRACK, + ACTIONS(522), 1, + anon_sym_LBRACE, + STATE(105), 1, + sym_class_body, + STATE(356), 1, + sym_type_parameters, + [4222] = 5, ACTIONS(3), 1, sym_line_comment, - ACTIONS(560), 4, - anon_sym_fn, + ACTIONS(21), 1, anon_sym_DASH_GT, + ACTIONS(108), 1, anon_sym_LBRACE, - anon_sym_RBRACE, - [4145] = 4, + STATE(98), 1, + sym_block, + STATE(375), 1, + sym__returns, + [4238] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - STATE(351), 1, + STATE(374), 1, sym_block, - ACTIONS(562), 2, + ACTIONS(570), 2, anon_sym_fn, anon_sym_RBRACE, - [4159] = 5, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(21), 1, - anon_sym_DASH_GT, - ACTIONS(82), 1, - anon_sym_LBRACE, - STATE(161), 1, - sym_block, - STATE(317), 1, - sym__returns, - [4175] = 4, + [4252] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - STATE(320), 1, + STATE(371), 1, sym_block, - ACTIONS(564), 2, - anon_sym_fn, - anon_sym_RBRACE, - [4189] = 2, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(566), 4, + ACTIONS(572), 2, anon_sym_fn, anon_sym_RBRACE, - anon_sym_let, - anon_sym_case, - [4199] = 4, + [4266] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - STATE(360), 1, + STATE(322), 1, sym_block, - ACTIONS(568), 2, + ACTIONS(574), 2, anon_sym_fn, anon_sym_RBRACE, - [4213] = 5, + [4280] = 5, ACTIONS(3), 1, sym_line_comment, - ACTIONS(21), 1, - anon_sym_DASH_GT, - ACTIONS(82), 1, + ACTIONS(291), 1, + anon_sym_COLON, + ACTIONS(293), 1, anon_sym_LBRACE, - STATE(139), 1, - sym_block, - STATE(375), 1, - sym__returns, - [4229] = 5, + STATE(136), 1, + sym_trait_body, + STATE(403), 1, + sym_required_traits, + [4296] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(21), 1, - anon_sym_DASH_GT, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - STATE(94), 1, + STATE(368), 1, sym_block, - STATE(395), 1, - sym__returns, - [4245] = 2, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(570), 4, + ACTIONS(576), 2, anon_sym_fn, anon_sym_RBRACE, - anon_sym_let, - anon_sym_case, - [4255] = 4, + [4310] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - STATE(364), 1, + STATE(360), 1, sym_block, - ACTIONS(572), 2, + ACTIONS(578), 2, anon_sym_fn, anon_sym_RBRACE, - [4269] = 4, + [4324] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(574), 1, - anon_sym_COMMA, - STATE(258), 1, - aux_sym_case_arguments_repeat1, - ACTIONS(577), 2, - anon_sym_RPAREN, - anon_sym_RBRACK, - [4283] = 4, + ACTIONS(580), 4, + anon_sym_fn, + anon_sym_RBRACE, + anon_sym_let, + anon_sym_case, + [4334] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, - anon_sym_LBRACE, - STATE(379), 1, - sym_block, - ACTIONS(579), 2, + ACTIONS(582), 4, anon_sym_fn, anon_sym_RBRACE, - [4297] = 2, + anon_sym_let, + anon_sym_case, + [4344] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(581), 4, + ACTIONS(584), 4, anon_sym_fn, anon_sym_RBRACE, anon_sym_let, anon_sym_case, - [4307] = 5, + [4354] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(118), 1, - anon_sym_LBRACK, - ACTIONS(438), 1, - anon_sym_LBRACE, - STATE(165), 1, - sym_class_body, - STATE(331), 1, - sym_type_parameters, - [4323] = 4, + ACTIONS(586), 1, + anon_sym_COMMA, + STATE(264), 1, + aux_sym_case_arguments_repeat1, + ACTIONS(589), 2, + anon_sym_RPAREN, + anon_sym_RBRACK, + [4368] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(147), 1, + ACTIONS(508), 1, anon_sym_fn, - ACTIONS(583), 1, + ACTIONS(591), 1, anon_sym_RBRACE, - STATE(202), 2, - sym_class_method, - aux_sym_implement_trait_body_repeat1, - [4337] = 5, + STATE(203), 2, + sym_trait_method, + aux_sym_trait_body_repeat1, + [4382] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(21), 1, anon_sym_DASH_GT, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - STATE(195), 1, + STATE(236), 1, sym_block, - STATE(329), 1, + STATE(351), 1, sym__returns, - [4353] = 2, + [4398] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(585), 4, + ACTIONS(593), 4, anon_sym_fn, anon_sym_RBRACE, anon_sym_let, anon_sym_case, - [4363] = 4, + [4408] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(147), 1, + ACTIONS(158), 1, anon_sym_fn, - ACTIONS(587), 1, + ACTIONS(595), 1, anon_sym_RBRACE, - STATE(202), 2, + STATE(206), 2, sym_class_method, aux_sym_implement_trait_body_repeat1, - [4377] = 4, + [4422] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, - anon_sym_LBRACE, - STATE(315), 1, - sym_block, - ACTIONS(589), 2, + ACTIONS(597), 4, anon_sym_fn, - anon_sym_RBRACE, - [4391] = 4, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(82), 1, + anon_sym_DASH_GT, anon_sym_LBRACE, - STATE(396), 1, - sym_block, - ACTIONS(591), 2, - anon_sym_fn, anon_sym_RBRACE, - [4405] = 4, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(432), 1, - anon_sym_PLUS, - STATE(177), 1, - aux_sym_type_parameter_requirements_repeat1, - ACTIONS(593), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [4419] = 5, + [4432] = 5, ACTIONS(3), 1, sym_line_comment, - ACTIONS(526), 1, - anon_sym_if, - ACTIONS(528), 1, + ACTIONS(21), 1, + anon_sym_DASH_GT, + ACTIONS(108), 1, anon_sym_LBRACE, - STATE(150), 1, - sym_implement_trait_body, - STATE(359), 1, - sym_bounds, - [4435] = 4, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(597), 1, - anon_sym_COLON, - STATE(330), 1, - sym_type_parameter_requirements, - ACTIONS(595), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [4449] = 2, + STATE(237), 1, + sym_block, + STATE(349), 1, + sym__returns, + [4448] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(599), 4, @@ -6162,7 +6244,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_let, anon_sym_case, - [4459] = 2, + [4458] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(601), 4, @@ -6170,1934 +6252,1999 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_let, anon_sym_case, - [4469] = 2, + [4468] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(603), 4, anon_sym_fn, - anon_sym_DASH_GT, - anon_sym_LBRACE, anon_sym_RBRACE, - [4479] = 5, + anon_sym_let, + anon_sym_case, + [4478] = 5, ACTIONS(3), 1, sym_line_comment, ACTIONS(21), 1, anon_sym_DASH_GT, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - STATE(214), 1, + STATE(249), 1, sym_block, - STATE(391), 1, + STATE(340), 1, sym__returns, - [4495] = 2, + [4494] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(456), 1, + anon_sym_PLUS, + STATE(180), 1, + aux_sym_type_parameter_requirements_repeat1, + ACTIONS(605), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [4508] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(605), 4, + ACTIONS(607), 4, anon_sym_fn, + anon_sym_DASH_GT, + anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_let, - anon_sym_case, - [4505] = 4, + [4518] = 5, ACTIONS(3), 1, sym_line_comment, - ACTIONS(607), 1, - anon_sym_COMMA, ACTIONS(609), 1, - anon_sym_RPAREN, - STATE(285), 1, - aux_sym_extern_arguments_repeat1, - [4518] = 4, + anon_sym_if, + ACTIONS(611), 1, + anon_sym_LBRACE, + STATE(166), 1, + sym_implement_trait_body, + STATE(390), 1, + sym_bounds, + [4534] = 5, ACTIONS(3), 1, sym_line_comment, + ACTIONS(609), 1, + anon_sym_if, ACTIONS(611), 1, - anon_sym_COMMA, - ACTIONS(613), 1, - anon_sym_RPAREN, - STATE(294), 1, - aux_sym_case_arguments_repeat1, - [4531] = 4, + anon_sym_LBRACE, + STATE(162), 1, + sym_implement_trait_body, + STATE(391), 1, + sym_bounds, + [4550] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(106), 1, - anon_sym_RPAREN, + ACTIONS(613), 1, + anon_sym_COMMA, ACTIONS(615), 1, + anon_sym_LBRACE, + STATE(296), 1, + aux_sym_bounds_repeat1, + [4563] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(619), 1, + anon_sym_as, + ACTIONS(617), 2, anon_sym_COMMA, - STATE(258), 1, - aux_sym_case_arguments_repeat1, - [4544] = 4, + anon_sym_RPAREN, + [4574] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(403), 1, - sym_identifier, - ACTIONS(617), 1, + ACTIONS(621), 1, + anon_sym_as, + ACTIONS(617), 2, + anon_sym_COMMA, anon_sym_RPAREN, - STATE(287), 1, - sym_argument, - [4557] = 4, + [4585] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(619), 1, + ACTIONS(623), 1, anon_sym_RBRACK, - ACTIONS(621), 1, + ACTIONS(625), 1, sym_constant, - STATE(301), 1, + STATE(352), 1, sym_type_parameter, - [4570] = 4, + [4598] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(407), 1, - anon_sym_DOT_DOT_DOT, - ACTIONS(623), 1, + ACTIONS(96), 1, anon_sym_RPAREN, - STATE(393), 1, - sym_rest_argument, - [4583] = 3, + ACTIONS(627), 1, + anon_sym_COMMA, + STATE(264), 1, + aux_sym_case_arguments_repeat1, + [4611] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(627), 1, - anon_sym_as, - ACTIONS(625), 2, + ACTIONS(629), 1, anon_sym_COMMA, + ACTIONS(631), 1, anon_sym_RPAREN, - [4594] = 4, + STATE(316), 1, + aux_sym_extern_arguments_repeat1, + [4624] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(623), 1, - anon_sym_RPAREN, - ACTIONS(629), 1, + anon_sym_RBRACK, + ACTIONS(633), 1, anon_sym_COMMA, - STATE(298), 1, - aux_sym_extern_arguments_repeat1, - [4607] = 4, + STATE(314), 1, + aux_sym_type_parameters_repeat1, + [4637] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(631), 1, + ACTIONS(635), 1, anon_sym_COMMA, - ACTIONS(633), 1, + ACTIONS(637), 1, anon_sym_RBRACK, - STATE(303), 1, + STATE(291), 1, aux_sym_case_arguments_repeat1, - [4620] = 4, + [4650] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(635), 1, - anon_sym_COMMA, - ACTIONS(638), 1, - anon_sym_RPAREN, - STATE(285), 1, - aux_sym_extern_arguments_repeat1, - [4633] = 2, + ACTIONS(639), 1, + sym_identifier, + ACTIONS(641), 1, + anon_sym_extern, + ACTIONS(643), 1, + sym_visibility, + [4663] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(577), 3, + ACTIONS(645), 1, anon_sym_COMMA, - anon_sym_RPAREN, + ACTIONS(647), 1, anon_sym_RBRACK, - [4642] = 4, + STATE(285), 1, + aux_sym_type_parameters_repeat1, + [4676] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(640), 1, - anon_sym_COMMA, - ACTIONS(642), 1, - anon_sym_RPAREN, - STATE(276), 1, - aux_sym_extern_arguments_repeat1, - [4655] = 4, + ACTIONS(514), 1, + sym_constant, + STATE(338), 2, + sym__required_trait, + sym_generic_type, + [4687] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(644), 1, + ACTIONS(649), 1, anon_sym_PLUS, - ACTIONS(647), 1, + ACTIONS(651), 1, anon_sym_LBRACE, - STATE(288), 1, + STATE(313), 1, aux_sym_required_traits_repeat1, - [4668] = 4, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(649), 1, - anon_sym_LBRACE, - ACTIONS(651), 1, - sym_constant, - STATE(373), 1, - sym_bound, - [4681] = 4, + [4700] = 4, ACTIONS(3), 1, sym_line_comment, + ACTIONS(80), 1, + anon_sym_RBRACK, ACTIONS(653), 1, anon_sym_COMMA, - ACTIONS(656), 1, - anon_sym_LBRACE, - STATE(290), 1, - aux_sym_bounds_repeat1, - [4694] = 4, + STATE(264), 1, + aux_sym_case_arguments_repeat1, + [4713] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(403), 1, + ACTIONS(655), 1, sym_identifier, - ACTIONS(609), 1, - anon_sym_RPAREN, - STATE(389), 1, - sym_argument, - [4707] = 4, + ACTIONS(657), 1, + anon_sym_extern, + STATE(46), 1, + sym_path, + [4726] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(658), 1, - anon_sym_COMMA, + ACTIONS(659), 1, + anon_sym_LBRACE, ACTIONS(661), 1, - anon_sym_RBRACK, - STATE(292), 1, - aux_sym_type_parameters_repeat1, - [4720] = 4, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(621), 1, sym_constant, - ACTIONS(663), 1, - anon_sym_RBRACK, - STATE(386), 1, - sym_type_parameter, - [4733] = 4, + STATE(299), 1, + sym_bound, + [4739] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(100), 1, - anon_sym_RPAREN, - ACTIONS(665), 1, + ACTIONS(663), 1, anon_sym_COMMA, - STATE(258), 1, - aux_sym_case_arguments_repeat1, - [4746] = 4, + ACTIONS(666), 1, + anon_sym_RPAREN, + STATE(294), 1, + aux_sym_symbols_repeat1, + [4752] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(319), 1, + ACTIONS(329), 1, anon_sym_RPAREN, - ACTIONS(667), 1, + ACTIONS(668), 1, anon_sym_COMMA, - STATE(300), 1, + STATE(294), 1, aux_sym_symbols_repeat1, - [4759] = 4, + [4765] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(669), 1, + ACTIONS(670), 1, anon_sym_COMMA, - ACTIONS(671), 1, + ACTIONS(673), 1, anon_sym_LBRACE, - STATE(312), 1, + STATE(296), 1, aux_sym_bounds_repeat1, - [4772] = 4, + [4778] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(403), 1, - sym_identifier, - ACTIONS(673), 1, + ACTIONS(661), 1, + sym_constant, + ACTIONS(675), 1, + anon_sym_LBRACE, + STATE(379), 1, + sym_bound, + [4791] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(413), 1, + anon_sym_DOT_DOT_DOT, + ACTIONS(677), 1, anon_sym_RPAREN, - STATE(389), 1, - sym_argument, - [4785] = 4, + STATE(376), 1, + sym_rest_argument, + [4804] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(405), 1, + ACTIONS(679), 1, + anon_sym_COMMA, + ACTIONS(681), 1, + anon_sym_LBRACE, + STATE(279), 1, + aux_sym_bounds_repeat1, + [4817] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(411), 1, anon_sym_RPAREN, - ACTIONS(675), 1, + ACTIONS(683), 1, anon_sym_COMMA, - STATE(285), 1, + STATE(302), 1, aux_sym_extern_arguments_repeat1, - [4798] = 4, + [4830] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(677), 1, - anon_sym_COMMA, - ACTIONS(679), 1, + ACTIONS(409), 1, + sym_identifier, + ACTIONS(685), 1, anon_sym_RPAREN, - STATE(278), 1, - aux_sym_case_arguments_repeat1, - [4811] = 4, + STATE(364), 1, + sym_argument, + [4843] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(681), 1, + ACTIONS(687), 1, anon_sym_COMMA, - ACTIONS(684), 1, + ACTIONS(690), 1, anon_sym_RPAREN, - STATE(300), 1, - aux_sym_symbols_repeat1, - [4824] = 4, + STATE(302), 1, + aux_sym_extern_arguments_repeat1, + [4856] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(686), 1, + ACTIONS(589), 3, anon_sym_COMMA, - ACTIONS(688), 1, + anon_sym_RPAREN, anon_sym_RBRACK, - STATE(309), 1, - aux_sym_type_parameters_repeat1, - [4837] = 4, + [4865] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(651), 1, - sym_constant, - ACTIONS(690), 1, - anon_sym_LBRACE, - STATE(296), 1, - sym_bound, - [4850] = 4, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(112), 1, - anon_sym_RBRACK, + ACTIONS(409), 1, + sym_identifier, ACTIONS(692), 1, - anon_sym_COMMA, - STATE(258), 1, - aux_sym_case_arguments_repeat1, - [4863] = 4, + anon_sym_RPAREN, + STATE(284), 1, + sym_argument, + [4878] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(694), 1, - sym_identifier, + anon_sym_COMMA, ACTIONS(696), 1, - anon_sym_extern, - ACTIONS(698), 1, - sym_visibility, - [4876] = 4, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(700), 1, - anon_sym_PLUS, - ACTIONS(702), 1, - anon_sym_LBRACE, - STATE(288), 1, - aux_sym_required_traits_repeat1, - [4889] = 4, + anon_sym_RPAREN, + STATE(309), 1, + aux_sym_case_arguments_repeat1, + [4891] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(700), 1, + ACTIONS(649), 1, anon_sym_PLUS, - ACTIONS(704), 1, + ACTIONS(698), 1, anon_sym_LBRACE, - STATE(305), 1, + STATE(290), 1, aux_sym_required_traits_repeat1, - [4902] = 3, + [4904] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(512), 1, + ACTIONS(625), 1, sym_constant, - STATE(374), 2, - sym__required_trait, - sym_generic_type, - [4913] = 3, + ACTIONS(700), 1, + anon_sym_RBRACK, + STATE(288), 1, + sym_type_parameter, + [4917] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(706), 1, - anon_sym_as, - ACTIONS(625), 2, + ACTIONS(702), 1, anon_sym_COMMA, + ACTIONS(704), 1, anon_sym_RPAREN, - [4924] = 4, + STATE(295), 1, + aux_sym_symbols_repeat1, + [4930] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(708), 1, + ACTIONS(98), 1, + anon_sym_RPAREN, + ACTIONS(706), 1, anon_sym_COMMA, - ACTIONS(710), 1, - anon_sym_RBRACK, - STATE(292), 1, - aux_sym_type_parameters_repeat1, - [4937] = 4, + STATE(264), 1, + aux_sym_case_arguments_repeat1, + [4943] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(621), 1, + ACTIONS(625), 1, sym_constant, - ACTIONS(710), 1, + ACTIONS(708), 1, anon_sym_RBRACK, - STATE(386), 1, + STATE(352), 1, sym_type_parameter, - [4950] = 4, + [4956] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(651), 1, - sym_constant, + ACTIONS(710), 1, + anon_sym_COMMA, ACTIONS(712), 1, - anon_sym_LBRACE, - STATE(373), 1, - sym_bound, - [4963] = 4, + anon_sym_RPAREN, + STATE(283), 1, + aux_sym_case_arguments_repeat1, + [4969] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(712), 1, - anon_sym_LBRACE, + ACTIONS(409), 1, + sym_identifier, ACTIONS(714), 1, - anon_sym_COMMA, - STATE(290), 1, - aux_sym_bounds_repeat1, - [4976] = 4, + anon_sym_RPAREN, + STATE(364), 1, + sym_argument, + [4982] = 4, ACTIONS(3), 1, sym_line_comment, ACTIONS(716), 1, - anon_sym_COMMA, - ACTIONS(718), 1, - anon_sym_RPAREN, - STATE(295), 1, - aux_sym_symbols_repeat1, - [4989] = 2, + anon_sym_PLUS, + ACTIONS(719), 1, + anon_sym_LBRACE, + STATE(313), 1, + aux_sym_required_traits_repeat1, + [4995] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(720), 2, - anon_sym_fn, - anon_sym_RBRACE, - [4997] = 2, + ACTIONS(721), 1, + anon_sym_COMMA, + ACTIONS(724), 1, + anon_sym_RBRACK, + STATE(314), 1, + aux_sym_type_parameters_repeat1, + [5008] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(722), 2, - anon_sym_fn, - anon_sym_RBRACE, - [5005] = 2, + ACTIONS(677), 1, + anon_sym_RPAREN, + ACTIONS(726), 1, + anon_sym_COMMA, + STATE(300), 1, + aux_sym_extern_arguments_repeat1, + [5021] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(724), 2, - anon_sym_fn, - anon_sym_RBRACE, - [5013] = 3, + ACTIONS(714), 1, + anon_sym_RPAREN, + ACTIONS(728), 1, + anon_sym_COMMA, + STATE(302), 1, + aux_sym_extern_arguments_repeat1, + [5034] = 4, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, + ACTIONS(615), 1, anon_sym_LBRACE, - STATE(145), 1, - sym_block, - [5023] = 2, + ACTIONS(661), 1, + sym_constant, + STATE(379), 1, + sym_bound, + [5047] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(726), 2, - anon_sym_COMMA, + ACTIONS(108), 1, anon_sym_LBRACE, - [5031] = 2, + STATE(186), 1, + sym_block, + [5057] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(728), 2, + ACTIONS(730), 2, anon_sym_fn, anon_sym_RBRACE, - [5039] = 2, + [5065] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(730), 2, + ACTIONS(732), 2, anon_sym_fn, anon_sym_RBRACE, - [5047] = 3, + [5073] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(277), 1, - anon_sym_LBRACE, - STATE(108), 1, - sym_trait_body, - [5057] = 2, + ACTIONS(734), 2, + anon_sym_fn, + anon_sym_RBRACE, + [5081] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(732), 2, + ACTIONS(736), 2, anon_sym_fn, anon_sym_RBRACE, - [5065] = 2, + [5089] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(734), 2, + ACTIONS(738), 2, anon_sym_fn, anon_sym_RBRACE, - [5073] = 3, + [5097] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(736), 1, - anon_sym_COMMA, - ACTIONS(738), 1, - anon_sym_RPAREN, - [5083] = 3, + ACTIONS(740), 2, + anon_sym_fn, + anon_sym_RBRACE, + [5105] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(438), 1, + ACTIONS(522), 1, anon_sym_LBRACE, - STATE(113), 1, + STATE(103), 1, sym_class_body, - [5093] = 3, + [5115] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(740), 1, - sym_identifier, - ACTIONS(742), 1, - anon_sym_extern, - [5103] = 2, + ACTIONS(742), 2, + anon_sym_fn, + anon_sym_RBRACE, + [5123] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(744), 2, anon_sym_fn, anon_sym_RBRACE, - [5111] = 2, + [5131] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(746), 2, anon_sym_fn, anon_sym_RBRACE, - [5119] = 3, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(82), 1, - anon_sym_LBRACE, - STATE(241), 1, - sym_block, - [5129] = 2, + [5139] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(748), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [5137] = 3, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(438), 1, - anon_sym_LBRACE, - STATE(142), 1, - sym_class_body, + anon_sym_fn, + anon_sym_RBRACE, [5147] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(750), 2, anon_sym_fn, anon_sym_RBRACE, - [5155] = 3, + [5155] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, + ACTIONS(752), 2, + anon_sym_COMMA, anon_sym_LBRACE, - STATE(236), 1, - sym_block, - [5165] = 2, + [5163] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(752), 2, + ACTIONS(754), 2, anon_sym_fn, anon_sym_RBRACE, - [5173] = 3, + [5171] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(277), 1, - anon_sym_LBRACE, - STATE(164), 1, - sym_trait_body, - [5183] = 3, + ACTIONS(756), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [5179] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, - anon_sym_LBRACE, - STATE(230), 1, - sym_block, - [5193] = 2, + ACTIONS(415), 1, + anon_sym_RPAREN, + ACTIONS(758), 1, + anon_sym_COMMA, + [5189] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(754), 2, - anon_sym_fn, - anon_sym_RBRACE, - [5201] = 3, + ACTIONS(760), 1, + anon_sym_COMMA, + ACTIONS(762), 1, + anon_sym_RPAREN, + [5199] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, - anon_sym_LBRACE, - STATE(275), 1, - sym_block, - [5211] = 3, + ACTIONS(764), 1, + sym_identifier, + ACTIONS(766), 1, + anon_sym_extern, + [5209] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, - anon_sym_LBRACE, - STATE(178), 1, - sym_block, - [5221] = 3, + ACTIONS(625), 1, + sym_constant, + STATE(352), 1, + sym_type_parameter, + [5219] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, + ACTIONS(719), 2, + anon_sym_PLUS, anon_sym_LBRACE, - STATE(218), 1, - sym_block, - [5231] = 3, + [5227] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - STATE(252), 1, + STATE(146), 1, sym_block, - [5241] = 3, + [5237] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(756), 1, - sym_identifier, - STATE(49), 1, - sym_path, - [5251] = 3, + ACTIONS(108), 1, + anon_sym_LBRACE, + STATE(214), 1, + sym_block, + [5247] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - STATE(217), 1, + STATE(99), 1, sym_block, - [5261] = 3, + [5257] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - STATE(201), 1, + STATE(172), 1, sym_block, - [5271] = 3, + [5267] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(621), 1, - sym_constant, - STATE(386), 1, - sym_type_parameter, - [5281] = 3, + ACTIONS(108), 1, + anon_sym_LBRACE, + STATE(271), 1, + sym_block, + [5277] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - STATE(182), 1, + STATE(211), 1, sym_block, - [5291] = 3, + [5287] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - STATE(213), 1, + STATE(183), 1, sym_block, - [5301] = 3, + [5297] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(403), 1, - sym_identifier, - STATE(389), 1, - sym_argument, - [5311] = 3, + ACTIONS(108), 1, + anon_sym_LBRACE, + STATE(153), 1, + sym_block, + [5307] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(277), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - STATE(136), 1, - sym_trait_body, - [5321] = 3, + STATE(209), 1, + sym_block, + [5317] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(651), 1, - sym_constant, - STATE(373), 1, - sym_bound, - [5331] = 2, + ACTIONS(522), 1, + anon_sym_LBRACE, + STATE(169), 1, + sym_class_body, + [5327] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(758), 2, - anon_sym_fn, - anon_sym_RBRACE, - [5339] = 3, + ACTIONS(108), 1, + anon_sym_LBRACE, + STATE(204), 1, + sym_block, + [5337] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(409), 1, - anon_sym_RPAREN, - ACTIONS(760), 1, - anon_sym_COMMA, - [5349] = 2, + ACTIONS(108), 1, + anon_sym_LBRACE, + STATE(148), 1, + sym_block, + [5347] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(762), 2, - anon_sym_fn, - anon_sym_RBRACE, + ACTIONS(108), 1, + anon_sym_LBRACE, + STATE(202), 1, + sym_block, [5357] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(764), 2, - anon_sym_fn, - anon_sym_RBRACE, + ACTIONS(724), 2, + anon_sym_COMMA, + anon_sym_RBRACK, [5365] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(438), 1, + ACTIONS(522), 1, anon_sym_LBRACE, - STATE(163), 1, + STATE(147), 1, sym_class_body, - [5375] = 2, + [5375] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(766), 2, - anon_sym_fn, - anon_sym_RBRACE, - [5383] = 2, + ACTIONS(108), 1, + anon_sym_LBRACE, + STATE(198), 1, + sym_block, + [5385] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(768), 2, - anon_sym_fn, - anon_sym_RBRACE, - [5391] = 3, + ACTIONS(768), 1, + anon_sym_DQUOTE, + STATE(65), 1, + sym_extern_import_path, + [5395] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, + ACTIONS(522), 1, anon_sym_LBRACE, - STATE(162), 1, - sym_block, - [5401] = 3, + STATE(109), 1, + sym_class_body, + [5405] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(528), 1, - anon_sym_LBRACE, - STATE(129), 1, - sym_implement_trait_body, - [5411] = 2, + ACTIONS(409), 1, + sym_identifier, + STATE(364), 1, + sym_argument, + [5415] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(770), 2, anon_sym_fn, anon_sym_RBRACE, - [5419] = 2, + [5423] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(772), 2, anon_sym_fn, anon_sym_RBRACE, - [5427] = 2, + [5431] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(774), 2, anon_sym_fn, anon_sym_RBRACE, - [5435] = 3, + [5439] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(776), 1, - anon_sym_COLON, - STATE(318), 1, - sym_bound_requirements, - [5445] = 2, + ACTIONS(108), 1, + anon_sym_LBRACE, + STATE(168), 1, + sym_block, + [5449] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(778), 2, + ACTIONS(661), 1, + sym_constant, + STATE(379), 1, + sym_bound, + [5459] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(776), 2, anon_sym_fn, anon_sym_RBRACE, - [5453] = 2, + [5467] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(690), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + [5475] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(778), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + [5483] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(780), 2, anon_sym_fn, anon_sym_RBRACE, - [5461] = 3, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(82), 1, - anon_sym_LBRACE, - STATE(95), 1, - sym_block, - [5471] = 2, + [5491] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(782), 2, anon_sym_fn, anon_sym_RBRACE, - [5479] = 2, + [5499] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(784), 2, anon_sym_fn, anon_sym_RBRACE, - [5487] = 2, + [5507] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(108), 1, + anon_sym_LBRACE, + STATE(125), 1, + sym_block, + [5517] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(786), 2, anon_sym_fn, anon_sym_RBRACE, - [5495] = 2, + [5525] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(788), 2, anon_sym_fn, anon_sym_RBRACE, - [5503] = 2, + [5533] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(790), 1, + anon_sym_COLON, + STATE(331), 1, + sym_bound_requirements, + [5543] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(790), 2, + ACTIONS(792), 2, anon_sym_fn, anon_sym_RBRACE, - [5511] = 3, + [5551] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(528), 1, - anon_sym_LBRACE, - STATE(128), 1, - sym_implement_trait_body, - [5521] = 2, + ACTIONS(794), 2, + anon_sym_fn, + anon_sym_RBRACE, + [5559] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(656), 2, - anon_sym_COMMA, + ACTIONS(108), 1, anon_sym_LBRACE, - [5529] = 2, + STATE(165), 1, + sym_block, + [5569] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(647), 2, - anon_sym_PLUS, - anon_sym_LBRACE, - [5537] = 3, + ACTIONS(411), 1, + anon_sym_RPAREN, + ACTIONS(796), 1, + anon_sym_COMMA, + [5579] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - STATE(160), 1, - sym_block, - [5547] = 3, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(792), 1, - sym_constant, - STATE(423), 1, - sym_generic_type, - [5557] = 2, + STATE(157), 1, + sym_trait_body, + [5589] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(794), 2, + ACTIONS(798), 2, anon_sym_COMMA, anon_sym_RPAREN, - [5565] = 3, + [5597] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(796), 1, - sym_visibility, - ACTIONS(798), 1, - sym_constant, - [5575] = 2, + ACTIONS(673), 2, + anon_sym_COMMA, + anon_sym_LBRACE, + [5605] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(800), 2, - anon_sym_fn, - anon_sym_RBRACE, - [5583] = 3, + ACTIONS(108), 1, + anon_sym_LBRACE, + STATE(233), 1, + sym_block, + [5615] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - STATE(192), 1, + STATE(181), 1, sym_block, - [5593] = 3, + [5625] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(438), 1, - anon_sym_LBRACE, - STATE(103), 1, - sym_class_body, - [5603] = 3, + ACTIONS(800), 1, + sym_constant, + STATE(414), 1, + sym_generic_type, + [5635] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, - anon_sym_LBRACE, - STATE(245), 1, - sym_block, - [5613] = 3, + ACTIONS(802), 2, + anon_sym_fn, + anon_sym_RBRACE, + [5643] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, - anon_sym_LBRACE, - STATE(191), 1, - sym_block, - [5623] = 2, + ACTIONS(804), 1, + sym_visibility, + ACTIONS(806), 1, + sym_constant, + [5653] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(802), 2, + ACTIONS(808), 2, anon_sym_fn, anon_sym_RBRACE, - [5631] = 3, + [5661] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - STATE(168), 1, + STATE(190), 1, sym_block, - [5641] = 2, + [5671] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(661), 2, + ACTIONS(666), 2, anon_sym_COMMA, - anon_sym_RBRACK, - [5649] = 3, + anon_sym_RPAREN, + [5679] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, + ACTIONS(810), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + [5687] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(108), 1, anon_sym_LBRACE, STATE(189), 1, sym_block, - [5659] = 3, + [5697] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, + ACTIONS(611), 1, anon_sym_LBRACE, - STATE(140), 1, - sym_block, - [5669] = 2, + STATE(132), 1, + sym_implement_trait_body, + [5707] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(638), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - [5677] = 2, + ACTIONS(611), 1, + anon_sym_LBRACE, + STATE(133), 1, + sym_implement_trait_body, + [5717] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(804), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - [5685] = 3, + ACTIONS(812), 2, + anon_sym_fn, + anon_sym_RBRACE, + [5725] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, STATE(187), 1, sym_block, - [5695] = 3, + [5735] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(82), 1, + ACTIONS(108), 1, anon_sym_LBRACE, - STATE(123), 1, + STATE(238), 1, sym_block, - [5705] = 3, + [5745] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(405), 1, - anon_sym_RPAREN, - ACTIONS(806), 1, - anon_sym_COMMA, - [5715] = 2, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(808), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - [5723] = 3, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(82), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - STATE(159), 1, - sym_block, - [5733] = 2, + STATE(122), 1, + sym_trait_body, + [5755] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(810), 2, + ACTIONS(814), 2, anon_sym_fn, anon_sym_RBRACE, - [5741] = 2, + [5763] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(684), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - [5749] = 2, + ACTIONS(816), 2, + anon_sym_fn, + anon_sym_RBRACE, + [5771] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(812), 2, + ACTIONS(818), 2, anon_sym_fn, anon_sym_RBRACE, - [5757] = 2, + [5779] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(814), 2, + ACTIONS(820), 2, anon_sym_fn, anon_sym_RBRACE, - [5765] = 3, + [5787] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(277), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - STATE(118), 1, + STATE(161), 1, sym_trait_body, - [5775] = 2, + [5797] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(816), 1, - sym_identifier, - [5782] = 2, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(818), 1, - sym_constant, - [5789] = 2, + ACTIONS(108), 1, + anon_sym_LBRACE, + STATE(247), 1, + sym_block, + [5807] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(820), 1, - anon_sym_RPAREN, - [5796] = 2, + ACTIONS(822), 2, + anon_sym_fn, + anon_sym_RBRACE, + [5815] = 3, ACTIONS(3), 1, sym_line_comment, - ACTIONS(822), 1, - sym_identifier, - [5803] = 2, + ACTIONS(293), 1, + anon_sym_LBRACE, + STATE(137), 1, + sym_trait_body, + [5825] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(824), 1, - anon_sym_COLON, - [5810] = 2, + ACTIONS(824), 2, + anon_sym_fn, + anon_sym_RBRACE, + [5833] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(826), 1, - anon_sym_RBRACE, - [5817] = 2, + sym_constant, + [5840] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(828), 1, - ts_builtin_sym_end, - [5824] = 2, + sym_field_name, + [5847] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(830), 1, sym_identifier, - [5831] = 2, + [5854] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(409), 1, - anon_sym_RPAREN, - [5838] = 2, + ACTIONS(826), 1, + sym_identifier, + [5861] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(832), 1, - sym_constant, - [5845] = 2, + anon_sym_COLON, + [5868] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(834), 1, - sym_constant, - [5852] = 2, - ACTIONS(3), 1, - sym_line_comment, - ACTIONS(832), 1, sym_identifier, - [5859] = 2, + [5875] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(836), 1, sym_identifier, - [5866] = 2, + [5882] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(838), 1, - sym_identifier, - [5873] = 2, + sym_constant, + [5889] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(840), 1, sym_identifier, - [5880] = 2, + [5896] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(842), 1, - sym_identifier, - [5887] = 2, + anon_sym_for, + [5903] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(844), 1, - sym_constant, - [5894] = 2, + anon_sym_RPAREN, + [5910] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(846), 1, - anon_sym_COLON, - [5901] = 2, + ts_builtin_sym_end, + [5917] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(848), 1, sym_identifier, - [5908] = 2, + [5924] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(850), 1, sym_identifier, - [5915] = 2, + [5931] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(852), 1, - sym_field_name, - [5922] = 2, + sym_constant, + [5938] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(415), 1, + anon_sym_RPAREN, + [5945] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(854), 1, - sym_identifier, - [5929] = 2, + sym_constant, + [5952] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(856), 1, - anon_sym_for, - [5936] = 2, + sym_identifier, + [5959] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(858), 1, - sym_constant, - [5943] = 2, + sym_identifier, + [5966] = 2, ACTIONS(3), 1, sym_line_comment, - ACTIONS(738), 1, + ACTIONS(762), 1, anon_sym_RPAREN, - [5950] = 2, + [5973] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(860), 1, sym_constant, - [5957] = 2, + [5980] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(862), 1, - sym_constant, - [5964] = 2, + anon_sym_DQUOTE, + [5987] = 2, ACTIONS(3), 1, sym_line_comment, ACTIONS(864), 1, + anon_sym_COLON, + [5994] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(866), 1, sym_constant, + [6001] = 2, + ACTIONS(868), 1, + aux_sym_extern_import_path_token1, + ACTIONS(870), 1, + sym_line_comment, + [6008] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(872), 1, + sym_constant, + [6015] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(874), 1, + sym_constant, + [6022] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(876), 1, + sym_identifier, + [6029] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(878), 1, + sym_identifier, + [6036] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(880), 1, + anon_sym_RBRACE, }; static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(2)] = 0, [SMALL_STATE(3)] = 31, - [SMALL_STATE(4)] = 52, - [SMALL_STATE(5)] = 77, - [SMALL_STATE(6)] = 102, - [SMALL_STATE(7)] = 123, - [SMALL_STATE(8)] = 156, - [SMALL_STATE(9)] = 177, - [SMALL_STATE(10)] = 198, - [SMALL_STATE(11)] = 219, - [SMALL_STATE(12)] = 252, - [SMALL_STATE(13)] = 272, - [SMALL_STATE(14)] = 292, - [SMALL_STATE(15)] = 312, - [SMALL_STATE(16)] = 332, - [SMALL_STATE(17)] = 351, - [SMALL_STATE(18)] = 370, - [SMALL_STATE(19)] = 389, - [SMALL_STATE(20)] = 408, - [SMALL_STATE(21)] = 427, - [SMALL_STATE(22)] = 446, - [SMALL_STATE(23)] = 476, - [SMALL_STATE(24)] = 506, - [SMALL_STATE(25)] = 536, - [SMALL_STATE(26)] = 566, - [SMALL_STATE(27)] = 596, - [SMALL_STATE(28)] = 626, - [SMALL_STATE(29)] = 656, - [SMALL_STATE(30)] = 686, - [SMALL_STATE(31)] = 716, - [SMALL_STATE(32)] = 746, - [SMALL_STATE(33)] = 776, - [SMALL_STATE(34)] = 803, - [SMALL_STATE(35)] = 830, - [SMALL_STATE(36)] = 857, - [SMALL_STATE(37)] = 884, - [SMALL_STATE(38)] = 911, - [SMALL_STATE(39)] = 938, - [SMALL_STATE(40)] = 965, - [SMALL_STATE(41)] = 997, - [SMALL_STATE(42)] = 1029, - [SMALL_STATE(43)] = 1049, - [SMALL_STATE(44)] = 1073, - [SMALL_STATE(45)] = 1097, - [SMALL_STATE(46)] = 1129, - [SMALL_STATE(47)] = 1149, - [SMALL_STATE(48)] = 1181, - [SMALL_STATE(49)] = 1201, - [SMALL_STATE(50)] = 1225, - [SMALL_STATE(51)] = 1248, - [SMALL_STATE(52)] = 1263, - [SMALL_STATE(53)] = 1286, - [SMALL_STATE(54)] = 1309, - [SMALL_STATE(55)] = 1324, - [SMALL_STATE(56)] = 1342, - [SMALL_STATE(57)] = 1356, - [SMALL_STATE(58)] = 1374, - [SMALL_STATE(59)] = 1388, - [SMALL_STATE(60)] = 1416, - [SMALL_STATE(61)] = 1444, - [SMALL_STATE(62)] = 1466, - [SMALL_STATE(63)] = 1480, - [SMALL_STATE(64)] = 1506, - [SMALL_STATE(65)] = 1534, - [SMALL_STATE(66)] = 1552, - [SMALL_STATE(67)] = 1570, - [SMALL_STATE(68)] = 1598, - [SMALL_STATE(69)] = 1616, - [SMALL_STATE(70)] = 1630, - [SMALL_STATE(71)] = 1658, - [SMALL_STATE(72)] = 1672, - [SMALL_STATE(73)] = 1698, - [SMALL_STATE(74)] = 1716, - [SMALL_STATE(75)] = 1734, - [SMALL_STATE(76)] = 1762, - [SMALL_STATE(77)] = 1780, - [SMALL_STATE(78)] = 1794, - [SMALL_STATE(79)] = 1820, - [SMALL_STATE(80)] = 1846, - [SMALL_STATE(81)] = 1863, - [SMALL_STATE(82)] = 1876, - [SMALL_STATE(83)] = 1895, - [SMALL_STATE(84)] = 1908, - [SMALL_STATE(85)] = 1927, - [SMALL_STATE(86)] = 1946, - [SMALL_STATE(87)] = 1959, - [SMALL_STATE(88)] = 1972, - [SMALL_STATE(89)] = 1985, - [SMALL_STATE(90)] = 1997, - [SMALL_STATE(91)] = 2009, - [SMALL_STATE(92)] = 2029, - [SMALL_STATE(93)] = 2047, - [SMALL_STATE(94)] = 2067, - [SMALL_STATE(95)] = 2079, - [SMALL_STATE(96)] = 2091, - [SMALL_STATE(97)] = 2111, - [SMALL_STATE(98)] = 2131, - [SMALL_STATE(99)] = 2143, - [SMALL_STATE(100)] = 2155, - [SMALL_STATE(101)] = 2167, - [SMALL_STATE(102)] = 2189, - [SMALL_STATE(103)] = 2201, - [SMALL_STATE(104)] = 2213, - [SMALL_STATE(105)] = 2235, - [SMALL_STATE(106)] = 2247, - [SMALL_STATE(107)] = 2259, - [SMALL_STATE(108)] = 2279, - [SMALL_STATE(109)] = 2291, - [SMALL_STATE(110)] = 2303, - [SMALL_STATE(111)] = 2315, - [SMALL_STATE(112)] = 2335, - [SMALL_STATE(113)] = 2355, - [SMALL_STATE(114)] = 2367, - [SMALL_STATE(115)] = 2379, - [SMALL_STATE(116)] = 2401, - [SMALL_STATE(117)] = 2413, - [SMALL_STATE(118)] = 2435, - [SMALL_STATE(119)] = 2447, - [SMALL_STATE(120)] = 2459, - [SMALL_STATE(121)] = 2471, - [SMALL_STATE(122)] = 2483, - [SMALL_STATE(123)] = 2495, - [SMALL_STATE(124)] = 2507, - [SMALL_STATE(125)] = 2519, - [SMALL_STATE(126)] = 2531, - [SMALL_STATE(127)] = 2549, - [SMALL_STATE(128)] = 2565, - [SMALL_STATE(129)] = 2577, - [SMALL_STATE(130)] = 2589, - [SMALL_STATE(131)] = 2601, - [SMALL_STATE(132)] = 2623, - [SMALL_STATE(133)] = 2643, - [SMALL_STATE(134)] = 2655, - [SMALL_STATE(135)] = 2667, - [SMALL_STATE(136)] = 2679, - [SMALL_STATE(137)] = 2691, - [SMALL_STATE(138)] = 2703, - [SMALL_STATE(139)] = 2725, - [SMALL_STATE(140)] = 2737, - [SMALL_STATE(141)] = 2749, - [SMALL_STATE(142)] = 2761, - [SMALL_STATE(143)] = 2773, - [SMALL_STATE(144)] = 2785, - [SMALL_STATE(145)] = 2797, - [SMALL_STATE(146)] = 2809, - [SMALL_STATE(147)] = 2821, - [SMALL_STATE(148)] = 2837, - [SMALL_STATE(149)] = 2859, - [SMALL_STATE(150)] = 2881, - [SMALL_STATE(151)] = 2893, - [SMALL_STATE(152)] = 2905, - [SMALL_STATE(153)] = 2917, - [SMALL_STATE(154)] = 2929, - [SMALL_STATE(155)] = 2941, - [SMALL_STATE(156)] = 2953, - [SMALL_STATE(157)] = 2965, - [SMALL_STATE(158)] = 2977, - [SMALL_STATE(159)] = 2989, - [SMALL_STATE(160)] = 3001, - [SMALL_STATE(161)] = 3013, - [SMALL_STATE(162)] = 3025, - [SMALL_STATE(163)] = 3037, - [SMALL_STATE(164)] = 3049, - [SMALL_STATE(165)] = 3061, - [SMALL_STATE(166)] = 3073, - [SMALL_STATE(167)] = 3085, - [SMALL_STATE(168)] = 3103, - [SMALL_STATE(169)] = 3115, - [SMALL_STATE(170)] = 3133, - [SMALL_STATE(171)] = 3152, - [SMALL_STATE(172)] = 3167, - [SMALL_STATE(173)] = 3186, - [SMALL_STATE(174)] = 3201, - [SMALL_STATE(175)] = 3218, - [SMALL_STATE(176)] = 3237, - [SMALL_STATE(177)] = 3252, - [SMALL_STATE(178)] = 3267, - [SMALL_STATE(179)] = 3277, - [SMALL_STATE(180)] = 3291, - [SMALL_STATE(181)] = 3307, - [SMALL_STATE(182)] = 3323, - [SMALL_STATE(183)] = 3333, - [SMALL_STATE(184)] = 3349, - [SMALL_STATE(185)] = 3363, - [SMALL_STATE(186)] = 3377, - [SMALL_STATE(187)] = 3387, - [SMALL_STATE(188)] = 3397, - [SMALL_STATE(189)] = 3411, - [SMALL_STATE(190)] = 3421, - [SMALL_STATE(191)] = 3431, - [SMALL_STATE(192)] = 3441, - [SMALL_STATE(193)] = 3451, - [SMALL_STATE(194)] = 3465, - [SMALL_STATE(195)] = 3479, - [SMALL_STATE(196)] = 3489, - [SMALL_STATE(197)] = 3503, - [SMALL_STATE(198)] = 3517, - [SMALL_STATE(199)] = 3531, - [SMALL_STATE(200)] = 3545, - [SMALL_STATE(201)] = 3559, - [SMALL_STATE(202)] = 3569, - [SMALL_STATE(203)] = 3583, - [SMALL_STATE(204)] = 3599, - [SMALL_STATE(205)] = 3613, - [SMALL_STATE(206)] = 3627, - [SMALL_STATE(207)] = 3641, - [SMALL_STATE(208)] = 3655, - [SMALL_STATE(209)] = 3669, - [SMALL_STATE(210)] = 3679, - [SMALL_STATE(211)] = 3693, - [SMALL_STATE(212)] = 3709, - [SMALL_STATE(213)] = 3723, - [SMALL_STATE(214)] = 3733, - [SMALL_STATE(215)] = 3743, - [SMALL_STATE(216)] = 3753, - [SMALL_STATE(217)] = 3767, - [SMALL_STATE(218)] = 3777, - [SMALL_STATE(219)] = 3787, - [SMALL_STATE(220)] = 3797, - [SMALL_STATE(221)] = 3807, - [SMALL_STATE(222)] = 3817, - [SMALL_STATE(223)] = 3827, - [SMALL_STATE(224)] = 3843, - [SMALL_STATE(225)] = 3853, - [SMALL_STATE(226)] = 3869, - [SMALL_STATE(227)] = 3879, - [SMALL_STATE(228)] = 3895, - [SMALL_STATE(229)] = 3909, - [SMALL_STATE(230)] = 3925, - [SMALL_STATE(231)] = 3935, - [SMALL_STATE(232)] = 3951, - [SMALL_STATE(233)] = 3961, - [SMALL_STATE(234)] = 3971, - [SMALL_STATE(235)] = 3981, - [SMALL_STATE(236)] = 3991, - [SMALL_STATE(237)] = 4001, - [SMALL_STATE(238)] = 4017, - [SMALL_STATE(239)] = 4027, - [SMALL_STATE(240)] = 4043, - [SMALL_STATE(241)] = 4053, - [SMALL_STATE(242)] = 4063, - [SMALL_STATE(243)] = 4079, - [SMALL_STATE(244)] = 4095, - [SMALL_STATE(245)] = 4105, - [SMALL_STATE(246)] = 4115, - [SMALL_STATE(247)] = 4125, - [SMALL_STATE(248)] = 4135, - [SMALL_STATE(249)] = 4145, - [SMALL_STATE(250)] = 4159, - [SMALL_STATE(251)] = 4175, - [SMALL_STATE(252)] = 4189, - [SMALL_STATE(253)] = 4199, - [SMALL_STATE(254)] = 4213, - [SMALL_STATE(255)] = 4229, - [SMALL_STATE(256)] = 4245, - [SMALL_STATE(257)] = 4255, - [SMALL_STATE(258)] = 4269, - [SMALL_STATE(259)] = 4283, - [SMALL_STATE(260)] = 4297, - [SMALL_STATE(261)] = 4307, - [SMALL_STATE(262)] = 4323, - [SMALL_STATE(263)] = 4337, - [SMALL_STATE(264)] = 4353, - [SMALL_STATE(265)] = 4363, - [SMALL_STATE(266)] = 4377, - [SMALL_STATE(267)] = 4391, - [SMALL_STATE(268)] = 4405, - [SMALL_STATE(269)] = 4419, - [SMALL_STATE(270)] = 4435, - [SMALL_STATE(271)] = 4449, - [SMALL_STATE(272)] = 4459, - [SMALL_STATE(273)] = 4469, - [SMALL_STATE(274)] = 4479, - [SMALL_STATE(275)] = 4495, - [SMALL_STATE(276)] = 4505, + [SMALL_STATE(4)] = 65, + [SMALL_STATE(5)] = 99, + [SMALL_STATE(6)] = 124, + [SMALL_STATE(7)] = 149, + [SMALL_STATE(8)] = 170, + [SMALL_STATE(9)] = 191, + [SMALL_STATE(10)] = 212, + [SMALL_STATE(11)] = 233, + [SMALL_STATE(12)] = 254, + [SMALL_STATE(13)] = 274, + [SMALL_STATE(14)] = 294, + [SMALL_STATE(15)] = 314, + [SMALL_STATE(16)] = 334, + [SMALL_STATE(17)] = 353, + [SMALL_STATE(18)] = 372, + [SMALL_STATE(19)] = 391, + [SMALL_STATE(20)] = 410, + [SMALL_STATE(21)] = 429, + [SMALL_STATE(22)] = 448, + [SMALL_STATE(23)] = 478, + [SMALL_STATE(24)] = 508, + [SMALL_STATE(25)] = 538, + [SMALL_STATE(26)] = 568, + [SMALL_STATE(27)] = 598, + [SMALL_STATE(28)] = 628, + [SMALL_STATE(29)] = 658, + [SMALL_STATE(30)] = 688, + [SMALL_STATE(31)] = 718, + [SMALL_STATE(32)] = 748, + [SMALL_STATE(33)] = 778, + [SMALL_STATE(34)] = 805, + [SMALL_STATE(35)] = 832, + [SMALL_STATE(36)] = 859, + [SMALL_STATE(37)] = 886, + [SMALL_STATE(38)] = 913, + [SMALL_STATE(39)] = 940, + [SMALL_STATE(40)] = 967, + [SMALL_STATE(41)] = 991, + [SMALL_STATE(42)] = 1023, + [SMALL_STATE(43)] = 1055, + [SMALL_STATE(44)] = 1087, + [SMALL_STATE(45)] = 1107, + [SMALL_STATE(46)] = 1131, + [SMALL_STATE(47)] = 1155, + [SMALL_STATE(48)] = 1175, + [SMALL_STATE(49)] = 1195, + [SMALL_STATE(50)] = 1227, + [SMALL_STATE(51)] = 1250, + [SMALL_STATE(52)] = 1273, + [SMALL_STATE(53)] = 1288, + [SMALL_STATE(54)] = 1303, + [SMALL_STATE(55)] = 1326, + [SMALL_STATE(56)] = 1352, + [SMALL_STATE(57)] = 1380, + [SMALL_STATE(58)] = 1408, + [SMALL_STATE(59)] = 1434, + [SMALL_STATE(60)] = 1462, + [SMALL_STATE(61)] = 1484, + [SMALL_STATE(62)] = 1498, + [SMALL_STATE(63)] = 1516, + [SMALL_STATE(64)] = 1530, + [SMALL_STATE(65)] = 1544, + [SMALL_STATE(66)] = 1562, + [SMALL_STATE(67)] = 1576, + [SMALL_STATE(68)] = 1602, + [SMALL_STATE(69)] = 1630, + [SMALL_STATE(70)] = 1648, + [SMALL_STATE(71)] = 1666, + [SMALL_STATE(72)] = 1694, + [SMALL_STATE(73)] = 1708, + [SMALL_STATE(74)] = 1726, + [SMALL_STATE(75)] = 1744, + [SMALL_STATE(76)] = 1770, + [SMALL_STATE(77)] = 1798, + [SMALL_STATE(78)] = 1816, + [SMALL_STATE(79)] = 1830, + [SMALL_STATE(80)] = 1848, + [SMALL_STATE(81)] = 1866, + [SMALL_STATE(82)] = 1879, + [SMALL_STATE(83)] = 1892, + [SMALL_STATE(84)] = 1911, + [SMALL_STATE(85)] = 1928, + [SMALL_STATE(86)] = 1941, + [SMALL_STATE(87)] = 1960, + [SMALL_STATE(88)] = 1973, + [SMALL_STATE(89)] = 1986, + [SMALL_STATE(90)] = 2005, + [SMALL_STATE(91)] = 2018, + [SMALL_STATE(92)] = 2030, + [SMALL_STATE(93)] = 2042, + [SMALL_STATE(94)] = 2062, + [SMALL_STATE(95)] = 2074, + [SMALL_STATE(96)] = 2092, + [SMALL_STATE(97)] = 2112, + [SMALL_STATE(98)] = 2132, + [SMALL_STATE(99)] = 2144, + [SMALL_STATE(100)] = 2156, + [SMALL_STATE(101)] = 2176, + [SMALL_STATE(102)] = 2198, + [SMALL_STATE(103)] = 2210, + [SMALL_STATE(104)] = 2222, + [SMALL_STATE(105)] = 2234, + [SMALL_STATE(106)] = 2246, + [SMALL_STATE(107)] = 2258, + [SMALL_STATE(108)] = 2270, + [SMALL_STATE(109)] = 2290, + [SMALL_STATE(110)] = 2302, + [SMALL_STATE(111)] = 2322, + [SMALL_STATE(112)] = 2334, + [SMALL_STATE(113)] = 2356, + [SMALL_STATE(114)] = 2368, + [SMALL_STATE(115)] = 2380, + [SMALL_STATE(116)] = 2400, + [SMALL_STATE(117)] = 2422, + [SMALL_STATE(118)] = 2438, + [SMALL_STATE(119)] = 2450, + [SMALL_STATE(120)] = 2472, + [SMALL_STATE(121)] = 2484, + [SMALL_STATE(122)] = 2496, + [SMALL_STATE(123)] = 2508, + [SMALL_STATE(124)] = 2520, + [SMALL_STATE(125)] = 2532, + [SMALL_STATE(126)] = 2544, + [SMALL_STATE(127)] = 2556, + [SMALL_STATE(128)] = 2578, + [SMALL_STATE(129)] = 2596, + [SMALL_STATE(130)] = 2608, + [SMALL_STATE(131)] = 2626, + [SMALL_STATE(132)] = 2638, + [SMALL_STATE(133)] = 2650, + [SMALL_STATE(134)] = 2662, + [SMALL_STATE(135)] = 2674, + [SMALL_STATE(136)] = 2694, + [SMALL_STATE(137)] = 2706, + [SMALL_STATE(138)] = 2718, + [SMALL_STATE(139)] = 2740, + [SMALL_STATE(140)] = 2752, + [SMALL_STATE(141)] = 2764, + [SMALL_STATE(142)] = 2786, + [SMALL_STATE(143)] = 2798, + [SMALL_STATE(144)] = 2810, + [SMALL_STATE(145)] = 2832, + [SMALL_STATE(146)] = 2844, + [SMALL_STATE(147)] = 2856, + [SMALL_STATE(148)] = 2868, + [SMALL_STATE(149)] = 2880, + [SMALL_STATE(150)] = 2892, + [SMALL_STATE(151)] = 2904, + [SMALL_STATE(152)] = 2916, + [SMALL_STATE(153)] = 2932, + [SMALL_STATE(154)] = 2944, + [SMALL_STATE(155)] = 2956, + [SMALL_STATE(156)] = 2968, + [SMALL_STATE(157)] = 2980, + [SMALL_STATE(158)] = 2992, + [SMALL_STATE(159)] = 3004, + [SMALL_STATE(160)] = 3016, + [SMALL_STATE(161)] = 3034, + [SMALL_STATE(162)] = 3046, + [SMALL_STATE(163)] = 3058, + [SMALL_STATE(164)] = 3070, + [SMALL_STATE(165)] = 3082, + [SMALL_STATE(166)] = 3094, + [SMALL_STATE(167)] = 3106, + [SMALL_STATE(168)] = 3118, + [SMALL_STATE(169)] = 3130, + [SMALL_STATE(170)] = 3142, + [SMALL_STATE(171)] = 3154, + [SMALL_STATE(172)] = 3166, + [SMALL_STATE(173)] = 3178, + [SMALL_STATE(174)] = 3197, + [SMALL_STATE(175)] = 3212, + [SMALL_STATE(176)] = 3231, + [SMALL_STATE(177)] = 3246, + [SMALL_STATE(178)] = 3263, + [SMALL_STATE(179)] = 3282, + [SMALL_STATE(180)] = 3297, + [SMALL_STATE(181)] = 3312, + [SMALL_STATE(182)] = 3322, + [SMALL_STATE(183)] = 3336, + [SMALL_STATE(184)] = 3346, + [SMALL_STATE(185)] = 3360, + [SMALL_STATE(186)] = 3370, + [SMALL_STATE(187)] = 3380, + [SMALL_STATE(188)] = 3390, + [SMALL_STATE(189)] = 3400, + [SMALL_STATE(190)] = 3410, + [SMALL_STATE(191)] = 3420, + [SMALL_STATE(192)] = 3434, + [SMALL_STATE(193)] = 3448, + [SMALL_STATE(194)] = 3462, + [SMALL_STATE(195)] = 3476, + [SMALL_STATE(196)] = 3490, + [SMALL_STATE(197)] = 3504, + [SMALL_STATE(198)] = 3514, + [SMALL_STATE(199)] = 3524, + [SMALL_STATE(200)] = 3534, + [SMALL_STATE(201)] = 3548, + [SMALL_STATE(202)] = 3562, + [SMALL_STATE(203)] = 3572, + [SMALL_STATE(204)] = 3586, + [SMALL_STATE(205)] = 3596, + [SMALL_STATE(206)] = 3606, + [SMALL_STATE(207)] = 3620, + [SMALL_STATE(208)] = 3636, + [SMALL_STATE(209)] = 3650, + [SMALL_STATE(210)] = 3660, + [SMALL_STATE(211)] = 3670, + [SMALL_STATE(212)] = 3680, + [SMALL_STATE(213)] = 3696, + [SMALL_STATE(214)] = 3706, + [SMALL_STATE(215)] = 3716, + [SMALL_STATE(216)] = 3730, + [SMALL_STATE(217)] = 3744, + [SMALL_STATE(218)] = 3758, + [SMALL_STATE(219)] = 3772, + [SMALL_STATE(220)] = 3786, + [SMALL_STATE(221)] = 3802, + [SMALL_STATE(222)] = 3816, + [SMALL_STATE(223)] = 3830, + [SMALL_STATE(224)] = 3846, + [SMALL_STATE(225)] = 3860, + [SMALL_STATE(226)] = 3870, + [SMALL_STATE(227)] = 3886, + [SMALL_STATE(228)] = 3900, + [SMALL_STATE(229)] = 3914, + [SMALL_STATE(230)] = 3924, + [SMALL_STATE(231)] = 3934, + [SMALL_STATE(232)] = 3950, + [SMALL_STATE(233)] = 3960, + [SMALL_STATE(234)] = 3970, + [SMALL_STATE(235)] = 3984, + [SMALL_STATE(236)] = 3994, + [SMALL_STATE(237)] = 4004, + [SMALL_STATE(238)] = 4014, + [SMALL_STATE(239)] = 4024, + [SMALL_STATE(240)] = 4034, + [SMALL_STATE(241)] = 4050, + [SMALL_STATE(242)] = 4066, + [SMALL_STATE(243)] = 4076, + [SMALL_STATE(244)] = 4092, + [SMALL_STATE(245)] = 4108, + [SMALL_STATE(246)] = 4124, + [SMALL_STATE(247)] = 4134, + [SMALL_STATE(248)] = 4144, + [SMALL_STATE(249)] = 4160, + [SMALL_STATE(250)] = 4170, + [SMALL_STATE(251)] = 4180, + [SMALL_STATE(252)] = 4196, + [SMALL_STATE(253)] = 4206, + [SMALL_STATE(254)] = 4222, + [SMALL_STATE(255)] = 4238, + [SMALL_STATE(256)] = 4252, + [SMALL_STATE(257)] = 4266, + [SMALL_STATE(258)] = 4280, + [SMALL_STATE(259)] = 4296, + [SMALL_STATE(260)] = 4310, + [SMALL_STATE(261)] = 4324, + [SMALL_STATE(262)] = 4334, + [SMALL_STATE(263)] = 4344, + [SMALL_STATE(264)] = 4354, + [SMALL_STATE(265)] = 4368, + [SMALL_STATE(266)] = 4382, + [SMALL_STATE(267)] = 4398, + [SMALL_STATE(268)] = 4408, + [SMALL_STATE(269)] = 4422, + [SMALL_STATE(270)] = 4432, + [SMALL_STATE(271)] = 4448, + [SMALL_STATE(272)] = 4458, + [SMALL_STATE(273)] = 4468, + [SMALL_STATE(274)] = 4478, + [SMALL_STATE(275)] = 4494, + [SMALL_STATE(276)] = 4508, [SMALL_STATE(277)] = 4518, - [SMALL_STATE(278)] = 4531, - [SMALL_STATE(279)] = 4544, - [SMALL_STATE(280)] = 4557, - [SMALL_STATE(281)] = 4570, - [SMALL_STATE(282)] = 4583, - [SMALL_STATE(283)] = 4594, - [SMALL_STATE(284)] = 4607, - [SMALL_STATE(285)] = 4620, - [SMALL_STATE(286)] = 4633, - [SMALL_STATE(287)] = 4642, - [SMALL_STATE(288)] = 4655, - [SMALL_STATE(289)] = 4668, - [SMALL_STATE(290)] = 4681, - [SMALL_STATE(291)] = 4694, - [SMALL_STATE(292)] = 4707, - [SMALL_STATE(293)] = 4720, - [SMALL_STATE(294)] = 4733, - [SMALL_STATE(295)] = 4746, - [SMALL_STATE(296)] = 4759, - [SMALL_STATE(297)] = 4772, - [SMALL_STATE(298)] = 4785, - [SMALL_STATE(299)] = 4798, - [SMALL_STATE(300)] = 4811, - [SMALL_STATE(301)] = 4824, - [SMALL_STATE(302)] = 4837, - [SMALL_STATE(303)] = 4850, - [SMALL_STATE(304)] = 4863, - [SMALL_STATE(305)] = 4876, - [SMALL_STATE(306)] = 4889, - [SMALL_STATE(307)] = 4902, - [SMALL_STATE(308)] = 4913, - [SMALL_STATE(309)] = 4924, - [SMALL_STATE(310)] = 4937, - [SMALL_STATE(311)] = 4950, - [SMALL_STATE(312)] = 4963, - [SMALL_STATE(313)] = 4976, - [SMALL_STATE(314)] = 4989, - [SMALL_STATE(315)] = 4997, - [SMALL_STATE(316)] = 5005, - [SMALL_STATE(317)] = 5013, - [SMALL_STATE(318)] = 5023, - [SMALL_STATE(319)] = 5031, - [SMALL_STATE(320)] = 5039, - [SMALL_STATE(321)] = 5047, - [SMALL_STATE(322)] = 5057, - [SMALL_STATE(323)] = 5065, - [SMALL_STATE(324)] = 5073, - [SMALL_STATE(325)] = 5083, - [SMALL_STATE(326)] = 5093, - [SMALL_STATE(327)] = 5103, - [SMALL_STATE(328)] = 5111, - [SMALL_STATE(329)] = 5119, - [SMALL_STATE(330)] = 5129, - [SMALL_STATE(331)] = 5137, - [SMALL_STATE(332)] = 5147, - [SMALL_STATE(333)] = 5155, - [SMALL_STATE(334)] = 5165, - [SMALL_STATE(335)] = 5173, - [SMALL_STATE(336)] = 5183, - [SMALL_STATE(337)] = 5193, - [SMALL_STATE(338)] = 5201, - [SMALL_STATE(339)] = 5211, - [SMALL_STATE(340)] = 5221, - [SMALL_STATE(341)] = 5231, - [SMALL_STATE(342)] = 5241, - [SMALL_STATE(343)] = 5251, - [SMALL_STATE(344)] = 5261, - [SMALL_STATE(345)] = 5271, - [SMALL_STATE(346)] = 5281, - [SMALL_STATE(347)] = 5291, - [SMALL_STATE(348)] = 5301, - [SMALL_STATE(349)] = 5311, - [SMALL_STATE(350)] = 5321, - [SMALL_STATE(351)] = 5331, - [SMALL_STATE(352)] = 5339, - [SMALL_STATE(353)] = 5349, - [SMALL_STATE(354)] = 5357, - [SMALL_STATE(355)] = 5365, - [SMALL_STATE(356)] = 5375, - [SMALL_STATE(357)] = 5383, - [SMALL_STATE(358)] = 5391, - [SMALL_STATE(359)] = 5401, - [SMALL_STATE(360)] = 5411, - [SMALL_STATE(361)] = 5419, - [SMALL_STATE(362)] = 5427, - [SMALL_STATE(363)] = 5435, - [SMALL_STATE(364)] = 5445, - [SMALL_STATE(365)] = 5453, - [SMALL_STATE(366)] = 5461, - [SMALL_STATE(367)] = 5471, - [SMALL_STATE(368)] = 5479, - [SMALL_STATE(369)] = 5487, - [SMALL_STATE(370)] = 5495, - [SMALL_STATE(371)] = 5503, - [SMALL_STATE(372)] = 5511, - [SMALL_STATE(373)] = 5521, - [SMALL_STATE(374)] = 5529, - [SMALL_STATE(375)] = 5537, - [SMALL_STATE(376)] = 5547, - [SMALL_STATE(377)] = 5557, - [SMALL_STATE(378)] = 5565, - [SMALL_STATE(379)] = 5575, - [SMALL_STATE(380)] = 5583, - [SMALL_STATE(381)] = 5593, - [SMALL_STATE(382)] = 5603, - [SMALL_STATE(383)] = 5613, - [SMALL_STATE(384)] = 5623, - [SMALL_STATE(385)] = 5631, - [SMALL_STATE(386)] = 5641, - [SMALL_STATE(387)] = 5649, - [SMALL_STATE(388)] = 5659, - [SMALL_STATE(389)] = 5669, - [SMALL_STATE(390)] = 5677, - [SMALL_STATE(391)] = 5685, - [SMALL_STATE(392)] = 5695, - [SMALL_STATE(393)] = 5705, - [SMALL_STATE(394)] = 5715, - [SMALL_STATE(395)] = 5723, - [SMALL_STATE(396)] = 5733, - [SMALL_STATE(397)] = 5741, - [SMALL_STATE(398)] = 5749, - [SMALL_STATE(399)] = 5757, - [SMALL_STATE(400)] = 5765, - [SMALL_STATE(401)] = 5775, - [SMALL_STATE(402)] = 5782, - [SMALL_STATE(403)] = 5789, - [SMALL_STATE(404)] = 5796, - [SMALL_STATE(405)] = 5803, - [SMALL_STATE(406)] = 5810, - [SMALL_STATE(407)] = 5817, - [SMALL_STATE(408)] = 5824, - [SMALL_STATE(409)] = 5831, - [SMALL_STATE(410)] = 5838, - [SMALL_STATE(411)] = 5845, - [SMALL_STATE(412)] = 5852, - [SMALL_STATE(413)] = 5859, - [SMALL_STATE(414)] = 5866, - [SMALL_STATE(415)] = 5873, - [SMALL_STATE(416)] = 5880, - [SMALL_STATE(417)] = 5887, - [SMALL_STATE(418)] = 5894, - [SMALL_STATE(419)] = 5901, - [SMALL_STATE(420)] = 5908, - [SMALL_STATE(421)] = 5915, - [SMALL_STATE(422)] = 5922, - [SMALL_STATE(423)] = 5929, - [SMALL_STATE(424)] = 5936, - [SMALL_STATE(425)] = 5943, - [SMALL_STATE(426)] = 5950, - [SMALL_STATE(427)] = 5957, - [SMALL_STATE(428)] = 5964, + [SMALL_STATE(278)] = 4534, + [SMALL_STATE(279)] = 4550, + [SMALL_STATE(280)] = 4563, + [SMALL_STATE(281)] = 4574, + [SMALL_STATE(282)] = 4585, + [SMALL_STATE(283)] = 4598, + [SMALL_STATE(284)] = 4611, + [SMALL_STATE(285)] = 4624, + [SMALL_STATE(286)] = 4637, + [SMALL_STATE(287)] = 4650, + [SMALL_STATE(288)] = 4663, + [SMALL_STATE(289)] = 4676, + [SMALL_STATE(290)] = 4687, + [SMALL_STATE(291)] = 4700, + [SMALL_STATE(292)] = 4713, + [SMALL_STATE(293)] = 4726, + [SMALL_STATE(294)] = 4739, + [SMALL_STATE(295)] = 4752, + [SMALL_STATE(296)] = 4765, + [SMALL_STATE(297)] = 4778, + [SMALL_STATE(298)] = 4791, + [SMALL_STATE(299)] = 4804, + [SMALL_STATE(300)] = 4817, + [SMALL_STATE(301)] = 4830, + [SMALL_STATE(302)] = 4843, + [SMALL_STATE(303)] = 4856, + [SMALL_STATE(304)] = 4865, + [SMALL_STATE(305)] = 4878, + [SMALL_STATE(306)] = 4891, + [SMALL_STATE(307)] = 4904, + [SMALL_STATE(308)] = 4917, + [SMALL_STATE(309)] = 4930, + [SMALL_STATE(310)] = 4943, + [SMALL_STATE(311)] = 4956, + [SMALL_STATE(312)] = 4969, + [SMALL_STATE(313)] = 4982, + [SMALL_STATE(314)] = 4995, + [SMALL_STATE(315)] = 5008, + [SMALL_STATE(316)] = 5021, + [SMALL_STATE(317)] = 5034, + [SMALL_STATE(318)] = 5047, + [SMALL_STATE(319)] = 5057, + [SMALL_STATE(320)] = 5065, + [SMALL_STATE(321)] = 5073, + [SMALL_STATE(322)] = 5081, + [SMALL_STATE(323)] = 5089, + [SMALL_STATE(324)] = 5097, + [SMALL_STATE(325)] = 5105, + [SMALL_STATE(326)] = 5115, + [SMALL_STATE(327)] = 5123, + [SMALL_STATE(328)] = 5131, + [SMALL_STATE(329)] = 5139, + [SMALL_STATE(330)] = 5147, + [SMALL_STATE(331)] = 5155, + [SMALL_STATE(332)] = 5163, + [SMALL_STATE(333)] = 5171, + [SMALL_STATE(334)] = 5179, + [SMALL_STATE(335)] = 5189, + [SMALL_STATE(336)] = 5199, + [SMALL_STATE(337)] = 5209, + [SMALL_STATE(338)] = 5219, + [SMALL_STATE(339)] = 5227, + [SMALL_STATE(340)] = 5237, + [SMALL_STATE(341)] = 5247, + [SMALL_STATE(342)] = 5257, + [SMALL_STATE(343)] = 5267, + [SMALL_STATE(344)] = 5277, + [SMALL_STATE(345)] = 5287, + [SMALL_STATE(346)] = 5297, + [SMALL_STATE(347)] = 5307, + [SMALL_STATE(348)] = 5317, + [SMALL_STATE(349)] = 5327, + [SMALL_STATE(350)] = 5337, + [SMALL_STATE(351)] = 5347, + [SMALL_STATE(352)] = 5357, + [SMALL_STATE(353)] = 5365, + [SMALL_STATE(354)] = 5375, + [SMALL_STATE(355)] = 5385, + [SMALL_STATE(356)] = 5395, + [SMALL_STATE(357)] = 5405, + [SMALL_STATE(358)] = 5415, + [SMALL_STATE(359)] = 5423, + [SMALL_STATE(360)] = 5431, + [SMALL_STATE(361)] = 5439, + [SMALL_STATE(362)] = 5449, + [SMALL_STATE(363)] = 5459, + [SMALL_STATE(364)] = 5467, + [SMALL_STATE(365)] = 5475, + [SMALL_STATE(366)] = 5483, + [SMALL_STATE(367)] = 5491, + [SMALL_STATE(368)] = 5499, + [SMALL_STATE(369)] = 5507, + [SMALL_STATE(370)] = 5517, + [SMALL_STATE(371)] = 5525, + [SMALL_STATE(372)] = 5533, + [SMALL_STATE(373)] = 5543, + [SMALL_STATE(374)] = 5551, + [SMALL_STATE(375)] = 5559, + [SMALL_STATE(376)] = 5569, + [SMALL_STATE(377)] = 5579, + [SMALL_STATE(378)] = 5589, + [SMALL_STATE(379)] = 5597, + [SMALL_STATE(380)] = 5605, + [SMALL_STATE(381)] = 5615, + [SMALL_STATE(382)] = 5625, + [SMALL_STATE(383)] = 5635, + [SMALL_STATE(384)] = 5643, + [SMALL_STATE(385)] = 5653, + [SMALL_STATE(386)] = 5661, + [SMALL_STATE(387)] = 5671, + [SMALL_STATE(388)] = 5679, + [SMALL_STATE(389)] = 5687, + [SMALL_STATE(390)] = 5697, + [SMALL_STATE(391)] = 5707, + [SMALL_STATE(392)] = 5717, + [SMALL_STATE(393)] = 5725, + [SMALL_STATE(394)] = 5735, + [SMALL_STATE(395)] = 5745, + [SMALL_STATE(396)] = 5755, + [SMALL_STATE(397)] = 5763, + [SMALL_STATE(398)] = 5771, + [SMALL_STATE(399)] = 5779, + [SMALL_STATE(400)] = 5787, + [SMALL_STATE(401)] = 5797, + [SMALL_STATE(402)] = 5807, + [SMALL_STATE(403)] = 5815, + [SMALL_STATE(404)] = 5825, + [SMALL_STATE(405)] = 5833, + [SMALL_STATE(406)] = 5840, + [SMALL_STATE(407)] = 5847, + [SMALL_STATE(408)] = 5854, + [SMALL_STATE(409)] = 5861, + [SMALL_STATE(410)] = 5868, + [SMALL_STATE(411)] = 5875, + [SMALL_STATE(412)] = 5882, + [SMALL_STATE(413)] = 5889, + [SMALL_STATE(414)] = 5896, + [SMALL_STATE(415)] = 5903, + [SMALL_STATE(416)] = 5910, + [SMALL_STATE(417)] = 5917, + [SMALL_STATE(418)] = 5924, + [SMALL_STATE(419)] = 5931, + [SMALL_STATE(420)] = 5938, + [SMALL_STATE(421)] = 5945, + [SMALL_STATE(422)] = 5952, + [SMALL_STATE(423)] = 5959, + [SMALL_STATE(424)] = 5966, + [SMALL_STATE(425)] = 5973, + [SMALL_STATE(426)] = 5980, + [SMALL_STATE(427)] = 5987, + [SMALL_STATE(428)] = 5994, + [SMALL_STATE(429)] = 6001, + [SMALL_STATE(430)] = 6008, + [SMALL_STATE(431)] = 6015, + [SMALL_STATE(432)] = 6022, + [SMALL_STATE(433)] = 6029, + [SMALL_STATE(434)] = 6036, }; static const TSParseActionEntry ts_parse_actions[] = { [0] = {.entry = {.count = 0, .reusable = false}}, [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(), [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(), - [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 0), - [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(342), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(304), - [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(378), - [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(376), - [17] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fn_type, 1), - [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [23] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_arguments, 2), - [25] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1, .production_id = 13), - [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [29] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fn_type, 2, .production_id = 30), - [31] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generic_type, 2, .production_id = 6), - [33] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [35] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_arguments, 3), - [37] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_arguments, 4), - [39] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_arguments, 5), - [41] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), - [43] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(342), - [46] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(304), - [49] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(92), - [52] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(378), - [55] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(376), - [58] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fn_type_arguments, 3), - [60] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fn_type_arguments, 5), - [62] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fn_type_arguments, 2), - [64] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fn_type_arguments, 4), - [66] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_mut_type, 2, .production_id = 31), - [68] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fn_type, 3, .production_id = 52), - [70] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__returns, 2), - [72] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fn_type, 2, .production_id = 29), - [74] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ref_type, 2, .production_id = 31), - [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_uni_type, 2, .production_id = 31), - [78] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_external_function, 4, .production_id = 11), - [80] = {.entry = {.count = 1, .reusable = true}}, SHIFT(180), - [82] = {.entry = {.count = 1, .reusable = true}}, SHIFT(406), - [84] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215), - [86] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [88] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [90] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [92] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [94] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [96] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), - [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 0, 0, 0), + [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(292), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(287), + [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(384), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(382), + [17] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fn_type, 1, 0, 0), + [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [23] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, 0, 0), + [25] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), + [27] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(292), + [30] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(287), + [33] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(95), + [36] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(384), + [39] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(382), + [42] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type, 1, 0, 15), + [44] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [46] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fn_type, 2, 0, 32), + [48] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generic_type, 2, 0, 7), + [50] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_arguments, 3, 0, 0), + [52] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_arguments, 5, 0, 0), + [54] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_arguments, 4, 0, 0), + [56] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_arguments, 2, 0, 0), + [58] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fn_type_arguments, 3, 0, 0), + [60] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fn_type_arguments, 5, 0, 0), + [62] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fn_type_arguments, 4, 0, 0), + [64] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fn_type_arguments, 2, 0, 0), + [66] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fn_type, 3, 0, 54), + [68] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_uni_type, 2, 0, 33), + [70] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__returns, 2, 0, 0), + [72] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_fn_type, 2, 0, 31), + [74] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_mut_type, 2, 0, 33), + [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ref_type, 2, 0, 33), + [78] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [80] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), + [82] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [84] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [86] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [88] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [90] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), + [92] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), + [94] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), + [96] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(197), [100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_external_function, 3, .production_id = 4), - [104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209), - [108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), - [110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [112] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [114] = {.entry = {.count = 1, .reusable = true}}, SHIFT(279), - [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 3, .production_id = 57), - [118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(280), - [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 4, .production_id = 69), - [122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_path, 2), - [124] = {.entry = {.count = 1, .reusable = true}}, SHIFT(422), - [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_external_function, 5, .production_id = 23), - [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_external_function, 4, .production_id = 8), - [130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 3, .production_id = 60), - [132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_path_repeat1, 2), - [134] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_path_repeat1, 2), SHIFT_REPEAT(422), - [137] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 2, .production_id = 37), - [139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_path, 1), - [141] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import, 2, .production_id = 1), - [143] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), - [145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), - [147] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [149] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), - [151] = {.entry = {.count = 1, .reusable = true}}, SHIFT(421), - [153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(424), - [155] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [157] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), - [159] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_class_body_repeat1, 2), SHIFT_REPEAT(61), - [162] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_class_body_repeat1, 2), - [164] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_class_body_repeat1, 2), SHIFT_REPEAT(421), - [167] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_class_body_repeat1, 2), SHIFT_REPEAT(424), - [170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_external_function, 4, .production_id = 9), - [172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_extern_arguments, 4), - [174] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_external_function, 6, .production_id = 45), - [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_extern_arguments, 7), - [178] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), - [180] = {.entry = {.count = 1, .reusable = false}}, SHIFT(420), - [182] = {.entry = {.count = 1, .reusable = false}}, SHIFT(85), - [184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(420), - [186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_extern_arguments, 3), - [188] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 4, .production_id = 68), - [190] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tags, 2), - [192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(408), - [194] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tags, 3), - [196] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_tags_repeat1, 2), - [198] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_tags_repeat1, 2), SHIFT_REPEAT(408), - [201] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_extern_arguments, 5), - [203] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_extern_arguments, 6), - [205] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 4, .production_id = 75), - [207] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import, 3, .production_id = 2), - [209] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_external_function, 5, .production_id = 24), - [211] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_external_function, 5, .production_id = 20), - [213] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_extern_arguments, 2), - [215] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, .production_id = 83), - [217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 3, .production_id = 59), - [219] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tags, 1), - [221] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65), - [223] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tags, 1), - [225] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bound_requirements, 1), - [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(226), - [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147), - [231] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_symbols, 5), - [233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameter_requirements, 1), - [235] = {.entry = {.count = 1, .reusable = false}}, SHIFT(60), - [237] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_symbols, 2), - [239] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_symbols, 4), - [241] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_symbols, 3), - [243] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_implement_trait_body, 3), - [245] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_external_function, 5, .production_id = 22), - [247] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 6, .production_id = 95), - [249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), - [251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(426), - [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181), - [255] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, .production_id = 86), - [257] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_method, 4, .production_id = 15), - [259] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_method, 4, .production_id = 16), - [261] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, .production_id = 81), - [263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, .production_id = 79), - [265] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_method, 4, .production_id = 17), - [267] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 2), - [269] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class, 4, .production_id = 12), - [271] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_body, 2), - [273] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class, 4, .production_id = 17), - [275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(216), - [277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212), - [279] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class, 4, .production_id = 18), - [281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait, 4, .production_id = 12), - [283] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 4, .production_id = 73), - [285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait, 5, .production_id = 39), - [287] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait, 3, .production_id = 5), - [289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait, 5, .production_id = 28), - [291] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 4, .production_id = 71), - [293] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 4, .production_id = 66), - [295] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class, 5, .production_id = 38), - [297] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_body, 2), - [299] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait, 4, .production_id = 17), - [301] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait, 4, .production_id = 19), - [303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 5), - [305] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_reopen_class_body, 2), - [307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_external_function, 6, .production_id = 44), - [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import, 3, .production_id = 3), - [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_method, 7, .production_id = 64), - [313] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_external_function, 7, .production_id = 63), - [315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_body, 3), - [317] = {.entry = {.count = 1, .reusable = false}}, SHIFT(308), - [319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), - [321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(282), - [323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case, 2, .production_id = 37), - [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_implement_trait, 6, .production_id = 62), - [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_implement_trait, 6, .production_id = 61), - [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_implement_trait_body, 2), - [333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 3, .production_id = 55), - [335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_external_function, 5, .production_id = 21), - [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_method, 6, .production_id = 49), - [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_method, 3, .production_id = 5), - [341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait, 6, .production_id = 56), - [343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_external_function, 5, .production_id = 25), - [345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_method, 5, .production_id = 26), - [347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_method, 5, .production_id = 27), - [349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class, 3, .production_id = 5), - [351] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class, 6, .production_id = 54), - [353] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_method, 5, .production_id = 28), - [355] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_method, 4, .production_id = 12), - [357] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_method, 6, .production_id = 53), - [359] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 4), - [361] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_parameter_requirement, 1, .production_id = 13), - [363] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_implement_trait, 5, .production_id = 41), - [365] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_external_function, 4, .production_id = 10), - [367] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_external_function, 6, .production_id = 46), - [369] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import, 4, .production_id = 7), - [371] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_implement_trait, 5, .production_id = 42), - [373] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_reopen_class, 3, .production_id = 5), - [375] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_external_function, 6, .production_id = 47), - [377] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 3), - [379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_body, 3), - [381] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_method, 5, .production_id = 33), - [383] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_method, 6, .production_id = 48), - [385] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_method, 5, .production_id = 34), - [387] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_method, 5, .production_id = 35), - [389] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class, 5, .production_id = 28), - [391] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait, 5, .production_id = 40), - [393] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class, 5, .production_id = 36), - [395] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_reopen_class_body, 3), - [397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), - [399] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_method, 6, .production_id = 50), - [401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), - [403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(405), - [405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(394), - [409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [411] = {.entry = {.count = 1, .reusable = false}}, SHIFT(47), - [413] = {.entry = {.count = 1, .reusable = false}}, SHIFT(414), - [415] = {.entry = {.count = 1, .reusable = false}}, SHIFT(196), - [417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(200), - [419] = {.entry = {.count = 1, .reusable = true}}, SHIFT(411), - [421] = {.entry = {.count = 1, .reusable = true}}, SHIFT(243), - [423] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_parameter_requirements_repeat1, 2), - [425] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_parameter_requirements_repeat1, 2), SHIFT_REPEAT(173), - [428] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 5, .production_id = 35), - [430] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bound_requirements, 2), - [432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), - [434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(281), - [436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), - [438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [440] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 8, .production_id = 103), - [442] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 4, .production_id = 74), - [444] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 7, .production_id = 102), - [446] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_arguments, 5), - [448] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 7, .production_id = 101), - [450] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__required_trait, 1, .production_id = 13), - [452] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 7, .production_id = 100), - [454] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 7, .production_id = 99), - [456] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 7, .production_id = 98), - [458] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 7, .production_id = 64), - [460] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 4, .production_id = 72), - [462] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 4, .production_id = 70), - [464] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 5, .production_id = 26), - [466] = {.entry = {.count = 1, .reusable = false}}, SHIFT(40), - [468] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bound_requirements, 3), - [470] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_trait_body_repeat1, 2), SHIFT_REPEAT(174), - [473] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_trait_body_repeat1, 2), - [475] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 6, .production_id = 97), - [477] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), - [479] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 5, .production_id = 27), - [481] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_implement_trait_body_repeat1, 2), SHIFT_REPEAT(61), - [484] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_implement_trait_body_repeat1, 2), - [486] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), - [488] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 6, .production_id = 96), - [490] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 4, .production_id = 67), - [492] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 6, .production_id = 94), - [494] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 6, .production_id = 93), - [496] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_arguments, 4), - [498] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174), - [500] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), - [502] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), - [504] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 6, .production_id = 92), - [506] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 6, .production_id = 91), - [508] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_arguments, 2), - [510] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_required_traits, 1), - [512] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188), - [514] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 6, .production_id = 90), - [516] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 6, .production_id = 53), - [518] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_arguments, 4), - [520] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 6, .production_id = 54), - [522] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field, 4, .production_id = 65), - [524] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 4, .production_id = 18), - [526] = {.entry = {.count = 1, .reusable = true}}, SHIFT(302), - [528] = {.entry = {.count = 1, .reusable = true}}, SHIFT(204), - [530] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 5, .production_id = 28), - [532] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_mutable_requirement, 1), - [534] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameter_requirements, 2), - [536] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 6, .production_id = 89), - [538] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 4, .production_id = 17), - [540] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_arguments, 3), - [542] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 5, .production_id = 36), - [544] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 6, .production_id = 88), - [546] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 6, .production_id = 50), - [548] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 6, .production_id = 49), - [550] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 3, .production_id = 5), - [552] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 6, .production_id = 48), - [554] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case, 3, .production_id = 55), - [556] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 4, .production_id = 16), - [558] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 4, .production_id = 15), - [560] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_arguments, 2), - [562] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, .production_id = 87), - [564] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 3, .production_id = 58), - [566] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 5, .production_id = 33), - [568] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, .production_id = 85), - [570] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 5, .production_id = 34), - [572] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, .production_id = 84), - [574] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_arguments_repeat1, 2), SHIFT_REPEAT(37), - [577] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_case_arguments_repeat1, 2), - [579] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, .production_id = 82), - [581] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 4, .production_id = 12), - [583] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), - [585] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 5, .production_id = 76), - [587] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), - [589] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, .production_id = 80), - [591] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, .production_id = 78), - [593] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameter_requirements, 3), - [595] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameter, 1, .production_id = 14), - [597] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), - [599] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_arguments, 3), - [601] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 5, .production_id = 38), - [603] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_arguments, 5), - [605] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 5, .production_id = 77), - [607] = {.entry = {.count = 1, .reusable = true}}, SHIFT(297), - [609] = {.entry = {.count = 1, .reusable = true}}, SHIFT(219), - [611] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [613] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [615] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [617] = {.entry = {.count = 1, .reusable = true}}, SHIFT(248), - [619] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), - [621] = {.entry = {.count = 1, .reusable = true}}, SHIFT(270), - [623] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), - [625] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__symbol, 1), - [627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(410), - [629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170), - [631] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [635] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_extern_arguments_repeat1, 2), SHIFT_REPEAT(348), - [638] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_extern_arguments_repeat1, 2), - [640] = {.entry = {.count = 1, .reusable = true}}, SHIFT(291), - [642] = {.entry = {.count = 1, .reusable = true}}, SHIFT(233), - [644] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_required_traits_repeat1, 2), SHIFT_REPEAT(307), - [647] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_required_traits_repeat1, 2), - [649] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bounds, 4), - [651] = {.entry = {.count = 1, .reusable = true}}, SHIFT(363), - [653] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_bounds_repeat1, 2), SHIFT_REPEAT(350), - [656] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_bounds_repeat1, 2), - [658] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2), SHIFT_REPEAT(345), - [661] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2), - [663] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), - [665] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [667] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169), - [669] = {.entry = {.count = 1, .reusable = true}}, SHIFT(311), - [671] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bounds, 2), - [673] = {.entry = {.count = 1, .reusable = true}}, SHIFT(273), - [675] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172), - [677] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [679] = {.entry = {.count = 1, .reusable = true}}, SHIFT(271), - [681] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_symbols_repeat1, 2), SHIFT_REPEAT(171), - [684] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_symbols_repeat1, 2), - [686] = {.entry = {.count = 1, .reusable = true}}, SHIFT(310), - [688] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), - [690] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bounds, 1), - [692] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [694] = {.entry = {.count = 1, .reusable = false}}, SHIFT(64), - [696] = {.entry = {.count = 1, .reusable = false}}, SHIFT(415), - [698] = {.entry = {.count = 1, .reusable = false}}, SHIFT(326), - [700] = {.entry = {.count = 1, .reusable = true}}, SHIFT(307), - [702] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_required_traits, 3), - [704] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_required_traits, 2), - [706] = {.entry = {.count = 1, .reusable = true}}, SHIFT(412), - [708] = {.entry = {.count = 1, .reusable = true}}, SHIFT(293), - [710] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), - [712] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bounds, 3), - [714] = {.entry = {.count = 1, .reusable = true}}, SHIFT(289), - [716] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), - [718] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [720] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, .production_id = 34), - [722] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 6, .production_id = 50), - [724] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 8, .production_id = 103), - [726] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bound, 2, .production_id = 32), - [728] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 4, .production_id = 15), - [730] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 4, .production_id = 16), - [732] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 7, .production_id = 101), - [734] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 7, .production_id = 100), - [736] = {.entry = {.count = 1, .reusable = true}}, SHIFT(403), - [738] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [740] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70), - [742] = {.entry = {.count = 1, .reusable = false}}, SHIFT(416), - [744] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 4, .production_id = 18), - [746] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 7, .production_id = 99), - [748] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameter, 2, .production_id = 32), - [750] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 4, .production_id = 12), - [752] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 7, .production_id = 98), - [754] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 7, .production_id = 64), - [756] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [758] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 6, .production_id = 92), - [760] = {.entry = {.count = 1, .reusable = true}}, SHIFT(425), - [762] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, .production_id = 26), - [764] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, .production_id = 27), - [766] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 6, .production_id = 91), - [768] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, .production_id = 28), - [770] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 6, .production_id = 90), - [772] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, .production_id = 36), - [774] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, .production_id = 33), - [776] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), - [778] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 6, .production_id = 53), - [780] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, .production_id = 35), - [782] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, .production_id = 76), - [784] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, .production_id = 77), - [786] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 3, .production_id = 5), - [788] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 6, .production_id = 54), - [790] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, .production_id = 38), - [792] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175), - [794] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_as, 3, .production_id = 43), - [796] = {.entry = {.count = 1, .reusable = true}}, SHIFT(428), - [798] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), - [800] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 6, .production_id = 89), - [802] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 6, .production_id = 88), - [804] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument, 3, .production_id = 51), - [806] = {.entry = {.count = 1, .reusable = true}}, SHIFT(409), - [808] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_rest_argument, 1), - [810] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 6, .production_id = 48), - [812] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 6, .production_id = 49), - [814] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 4, .production_id = 17), - [816] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [818] = {.entry = {.count = 1, .reusable = true}}, SHIFT(261), - [820] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [822] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [824] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [826] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [828] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [830] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), - [832] = {.entry = {.count = 1, .reusable = true}}, SHIFT(377), - [834] = {.entry = {.count = 1, .reusable = true}}, SHIFT(269), - [836] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [838] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__trait_method_modifier, 1), - [840] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [842] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [844] = {.entry = {.count = 1, .reusable = true}}, SHIFT(223), - [846] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [848] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [850] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__method_modifier, 1), - [852] = {.entry = {.count = 1, .reusable = true}}, SHIFT(418), - [854] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [856] = {.entry = {.count = 1, .reusable = true}}, SHIFT(417), - [858] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), - [860] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__class_modifier, 1), - [862] = {.entry = {.count = 1, .reusable = true}}, SHIFT(225), - [864] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), + [102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [104] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_external_function, 3, 0, 5), + [106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(223), + [108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(434), + [110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_external_function, 4, 0, 13), + [112] = {.entry = {.count = 1, .reusable = true}}, SHIFT(261), + [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_external_function, 4, 0, 10), + [116] = {.entry = {.count = 1, .reusable = true}}, SHIFT(304), + [118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 3, 0, 59), + [120] = {.entry = {.count = 1, .reusable = true}}, SHIFT(307), + [122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 4, 0, 71), + [124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 3, 0, 62), + [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_path_repeat1, 2, 0, 0), + [128] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_path_repeat1, 2, 0, 0), SHIFT_REPEAT(433), + [131] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_external_function, 5, 0, 25), + [133] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import, 2, 0, 1), + [135] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), + [137] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), + [139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_path, 2, 0, 0), + [141] = {.entry = {.count = 1, .reusable = true}}, SHIFT(433), + [143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_path, 1, 0, 0), + [145] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 2, 0, 39), + [147] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_class_body_repeat1, 2, 0, 0), SHIFT_REPEAT(60), + [150] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_class_body_repeat1, 2, 0, 0), + [152] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_class_body_repeat1, 2, 0, 0), SHIFT_REPEAT(406), + [155] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_class_body_repeat1, 2, 0, 0), SHIFT_REPEAT(421), + [158] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [160] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), + [162] = {.entry = {.count = 1, .reusable = true}}, SHIFT(406), + [164] = {.entry = {.count = 1, .reusable = true}}, SHIFT(421), + [166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2, 0, 0), + [168] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), + [170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 4, 0, 77), + [172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 4, 0, 70), + [174] = {.entry = {.count = 1, .reusable = false}}, SHIFT(57), + [176] = {.entry = {.count = 1, .reusable = false}}, SHIFT(417), + [178] = {.entry = {.count = 1, .reusable = false}}, SHIFT(83), + [180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(417), + [182] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_extern_arguments, 5, 0, 0), + [184] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_tags_repeat1, 2, 0, 0), + [186] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_tags_repeat1, 2, 0, 0), SHIFT_REPEAT(413), + [189] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_extern_arguments, 3, 0, 0), + [191] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_extern_arguments, 7, 0, 0), + [193] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_extern_import, 3, 0, 2), + [195] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_extern_arguments, 4, 0, 0), + [197] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, 0, 85), + [199] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tags, 2, 0, 0), + [201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(413), + [203] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_external_function, 6, 0, 47), + [205] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_extern_arguments, 6, 0, 0), + [207] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_external_function, 4, 0, 11), + [209] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_external_function, 5, 0, 26), + [211] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 3, 0, 61), + [213] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_external_function, 5, 0, 22), + [215] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_extern_arguments, 2, 0, 0), + [217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tags, 3, 0, 0), + [219] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import, 3, 0, 3), + [221] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_symbols, 3, 0, 0), + [223] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_extern_import_path, 3, 0, 0), + [225] = {.entry = {.count = 1, .reusable = false}}, SHIFT(71), + [227] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tags, 1, 0, 0), + [229] = {.entry = {.count = 1, .reusable = false}}, SHIFT(69), + [231] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tags, 1, 0, 0), + [233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_symbols, 5, 0, 0), + [235] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bound_requirements, 1, 0, 0), + [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(232), + [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), + [241] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_symbols, 2, 0, 0), + [243] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameter_requirements, 1, 0, 0), + [245] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_symbols, 4, 0, 0), + [247] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_external_function, 6, 0, 46), + [249] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_method, 4, 0, 14), + [251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 6, 0, 97), + [253] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 2, 0, 0), + [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179), + [257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(428), + [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(253), + [261] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, 0, 88), + [263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, 0, 83), + [265] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_method, 4, 0, 17), + [267] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_method, 4, 0, 18), + [269] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, 0, 81), + [271] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_method, 4, 0, 19), + [273] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class, 5, 0, 40), + [275] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class, 4, 0, 14), + [277] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class, 3, 0, 6), + [279] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_body, 2, 0, 0), + [281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_implement_trait_body, 3, 0, 0), + [283] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 4, 0, 75), + [285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class, 4, 0, 19), + [287] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 4, 0, 73), + [289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class, 4, 0, 20), + [291] = {.entry = {.count = 1, .reusable = true}}, SHIFT(216), + [293] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215), + [295] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait, 4, 0, 14), + [297] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_body, 3, 0, 0), + [299] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 4, 0, 68), + [301] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case, 2, 0, 39), + [305] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_body, 2, 0, 0), + [307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait, 4, 0, 19), + [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 5, 0, 0), + [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait, 4, 0, 21), + [313] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait, 3, 0, 6), + [315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_reopen_class_body, 2, 0, 0), + [317] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_method, 7, 0, 66), + [319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_external_function, 7, 0, 65), + [321] = {.entry = {.count = 1, .reusable = false}}, SHIFT(281), + [323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), + [325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(280), + [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_reopen_class, 3, 0, 6), + [329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), + [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import, 3, 0, 4), + [333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_implement_trait, 6, 0, 64), + [335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_implement_trait, 6, 0, 63), + [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_implement_trait_body, 2, 0, 0), + [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 3, 0, 57), + [341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait, 5, 0, 30), + [343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait, 6, 0, 58), + [345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_external_function, 5, 0, 23), + [347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_external_function, 5, 0, 24), + [349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_method, 3, 0, 6), + [351] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_external_function, 5, 0, 27), + [353] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_method, 5, 0, 28), + [355] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_method, 5, 0, 29), + [357] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class, 6, 0, 56), + [359] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_method, 6, 0, 55), + [361] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_method, 5, 0, 30), + [363] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_external_function, 4, 0, 12), + [365] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 4, 0, 0), + [367] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_parameter_requirement, 1, 0, 15), + [369] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_method, 6, 0, 52), + [371] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_method, 6, 0, 51), + [373] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import, 4, 0, 9), + [375] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_reopen_class_body, 3, 0, 0), + [377] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait, 5, 0, 41), + [379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_external_function, 6, 0, 48), + [381] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_extern_import, 4, 0, 8), + [383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), + [385] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait, 5, 0, 42), + [387] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_implement_trait, 5, 0, 43), + [389] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 3, 0, 0), + [391] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_external_function, 6, 0, 49), + [393] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_method, 5, 0, 35), + [395] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_implement_trait, 5, 0, 44), + [397] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_method, 5, 0, 36), + [399] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_method, 5, 0, 37), + [401] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class, 5, 0, 30), + [403] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_body, 3, 0, 0), + [405] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class, 5, 0, 38), + [407] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_method, 6, 0, 50), + [409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(427), + [411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(378), + [415] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [417] = {.entry = {.count = 1, .reusable = false}}, SHIFT(49), + [419] = {.entry = {.count = 1, .reusable = false}}, SHIFT(407), + [421] = {.entry = {.count = 1, .reusable = false}}, SHIFT(200), + [423] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201), + [425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(419), + [427] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241), + [429] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_parameter_requirements_repeat1, 2, 0, 0), + [431] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_parameter_requirements_repeat1, 2, 0, 0), SHIFT_REPEAT(176), + [434] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 5, 0, 37), + [436] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__required_trait, 1, 0, 15), + [438] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 8, 0, 105), + [440] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 7, 0, 104), + [442] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_arguments, 5, 0, 0), + [444] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 7, 0, 103), + [446] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 7, 0, 102), + [448] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 7, 0, 101), + [450] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 7, 0, 100), + [452] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 7, 0, 66), + [454] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bound_requirements, 3, 0, 0), + [456] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), + [458] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 6, 0, 99), + [460] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 6, 0, 98), + [462] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameter, 1, 0, 16), + [464] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [466] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 6, 0, 96), + [468] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 6, 0, 95), + [470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_arguments, 4, 0, 0), + [472] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 6, 0, 94), + [474] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 6, 0, 93), + [476] = {.entry = {.count = 1, .reusable = false}}, SHIFT(41), + [478] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), + [480] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 6, 0, 92), + [482] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_trait_body_repeat1, 2, 0, 0), SHIFT_REPEAT(177), + [485] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_trait_body_repeat1, 2, 0, 0), + [487] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 6, 0, 55), + [489] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 6, 0, 56), + [491] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_implement_trait_body_repeat1, 2, 0, 0), SHIFT_REPEAT(60), + [494] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_implement_trait_body_repeat1, 2, 0, 0), + [496] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), + [498] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 6, 0, 91), + [500] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 6, 0, 90), + [502] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 6, 0, 52), + [504] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 6, 0, 51), + [506] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 6, 0, 50), + [508] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177), + [510] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), + [512] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_required_traits, 1, 0, 0), + [514] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182), + [516] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bound_requirements, 2, 0, 0), + [518] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, 0, 89), + [520] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, 0, 87), + [522] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [524] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, 0, 86), + [526] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), + [528] = {.entry = {.count = 1, .reusable = true}}, SHIFT(298), + [530] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [532] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, 0, 84), + [534] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_arguments, 4, 0, 0), + [536] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, 0, 82), + [538] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, 0, 80), + [540] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_arguments, 3, 0, 0), + [542] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 5, 0, 40), + [544] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_mutable_requirement, 1, 0, 0), + [546] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 5, 0, 79), + [548] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameter_requirements, 2, 0, 0), + [550] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_arguments, 3, 0, 0), + [552] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 5, 0, 78), + [554] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 5, 0, 36), + [556] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 5, 0, 35), + [558] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 5, 0, 38), + [560] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 5, 0, 30), + [562] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 3, 0, 6), + [564] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 5, 0, 29), + [566] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 5, 0, 28), + [568] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case, 3, 0, 57), + [570] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 4, 0, 76), + [572] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 4, 0, 74), + [574] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 3, 0, 60), + [576] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 4, 0, 72), + [578] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 4, 0, 69), + [580] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_arguments, 2, 0, 0), + [582] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field, 4, 0, 67), + [584] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 4, 0, 20), + [586] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_arguments_repeat1, 2, 0, 0), SHIFT_REPEAT(37), + [589] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_case_arguments_repeat1, 2, 0, 0), + [591] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170), + [593] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 4, 0, 19), + [595] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), + [597] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_arguments, 2, 0, 0), + [599] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 4, 0, 18), + [601] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 4, 0, 17), + [603] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_method, 4, 0, 14), + [605] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameter_requirements, 3, 0, 0), + [607] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_arguments, 5, 0, 0), + [609] = {.entry = {.count = 1, .reusable = true}}, SHIFT(293), + [611] = {.entry = {.count = 1, .reusable = true}}, SHIFT(208), + [613] = {.entry = {.count = 1, .reusable = true}}, SHIFT(297), + [615] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bounds, 3, 0, 0), + [617] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__symbol, 1, 0, 0), + [619] = {.entry = {.count = 1, .reusable = true}}, SHIFT(405), + [621] = {.entry = {.count = 1, .reusable = true}}, SHIFT(408), + [623] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), + [625] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194), + [627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(312), + [631] = {.entry = {.count = 1, .reusable = true}}, SHIFT(235), + [633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(310), + [635] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [637] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [639] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68), + [641] = {.entry = {.count = 1, .reusable = false}}, SHIFT(423), + [643] = {.entry = {.count = 1, .reusable = false}}, SHIFT(336), + [645] = {.entry = {.count = 1, .reusable = true}}, SHIFT(282), + [647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163), + [649] = {.entry = {.count = 1, .reusable = true}}, SHIFT(289), + [651] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_required_traits, 3, 0, 0), + [653] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [655] = {.entry = {.count = 1, .reusable = false}}, SHIFT(48), + [657] = {.entry = {.count = 1, .reusable = false}}, SHIFT(355), + [659] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bounds, 1, 0, 0), + [661] = {.entry = {.count = 1, .reusable = true}}, SHIFT(372), + [663] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_symbols_repeat1, 2, 0, 0), SHIFT_REPEAT(174), + [666] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_symbols_repeat1, 2, 0, 0), + [668] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), + [670] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_bounds_repeat1, 2, 0, 0), SHIFT_REPEAT(362), + [673] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_bounds_repeat1, 2, 0, 0), + [675] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bounds, 4, 0, 0), + [677] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [679] = {.entry = {.count = 1, .reusable = true}}, SHIFT(317), + [681] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bounds, 2, 0, 0), + [683] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175), + [685] = {.entry = {.count = 1, .reusable = true}}, SHIFT(276), + [687] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_extern_arguments_repeat1, 2, 0, 0), SHIFT_REPEAT(357), + [690] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_extern_arguments_repeat1, 2, 0, 0), + [692] = {.entry = {.count = 1, .reusable = true}}, SHIFT(269), + [694] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [696] = {.entry = {.count = 1, .reusable = true}}, SHIFT(229), + [698] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_required_traits, 2, 0, 0), + [700] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [702] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), + [704] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), + [706] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [708] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), + [710] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [712] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [714] = {.entry = {.count = 1, .reusable = true}}, SHIFT(225), + [716] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_required_traits_repeat1, 2, 0, 0), SHIFT_REPEAT(289), + [719] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_required_traits_repeat1, 2, 0, 0), + [721] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2, 0, 0), SHIFT_REPEAT(337), + [724] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2, 0, 0), + [726] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), + [728] = {.entry = {.count = 1, .reusable = true}}, SHIFT(301), + [730] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, 0, 40), + [732] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 3, 0, 6), + [734] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 4, 0, 17), + [736] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 4, 0, 18), + [738] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 8, 0, 105), + [740] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 4, 0, 19), + [742] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 7, 0, 103), + [744] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 7, 0, 102), + [746] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 4, 0, 20), + [748] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 7, 0, 101), + [750] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 7, 0, 100), + [752] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bound, 2, 0, 34), + [754] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 7, 0, 66), + [756] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameter, 2, 0, 34), + [758] = {.entry = {.count = 1, .reusable = true}}, SHIFT(424), + [760] = {.entry = {.count = 1, .reusable = true}}, SHIFT(415), + [762] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [764] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76), + [766] = {.entry = {.count = 1, .reusable = false}}, SHIFT(418), + [768] = {.entry = {.count = 1, .reusable = true}}, SHIFT(429), + [770] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 4, 0, 14), + [772] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, 0, 28), + [774] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, 0, 29), + [776] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, 0, 30), + [778] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument, 3, 0, 53), + [780] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 6, 0, 94), + [782] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, 0, 38), + [784] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, 0, 35), + [786] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, 0, 36), + [788] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, 0, 37), + [790] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), + [792] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, 0, 78), + [794] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 5, 0, 79), + [796] = {.entry = {.count = 1, .reusable = true}}, SHIFT(420), + [798] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_rest_argument, 1, 0, 0), + [800] = {.entry = {.count = 1, .reusable = true}}, SHIFT(178), + [802] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 6, 0, 93), + [804] = {.entry = {.count = 1, .reusable = true}}, SHIFT(431), + [806] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), + [808] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 6, 0, 92), + [810] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_as, 3, 0, 45), + [812] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 6, 0, 55), + [814] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 6, 0, 56), + [816] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 6, 0, 91), + [818] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 6, 0, 90), + [820] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 6, 0, 52), + [822] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 6, 0, 50), + [824] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_trait_method, 6, 0, 51), + [826] = {.entry = {.count = 1, .reusable = true}}, SHIFT(388), + [828] = {.entry = {.count = 1, .reusable = true}}, SHIFT(409), + [830] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__trait_method_modifier, 1, 0, 0), + [832] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [834] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [836] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [838] = {.entry = {.count = 1, .reusable = true}}, SHIFT(277), + [840] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), + [842] = {.entry = {.count = 1, .reusable = true}}, SHIFT(412), + [844] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [846] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [848] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__method_modifier, 1, 0, 0), + [850] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [852] = {.entry = {.count = 1, .reusable = true}}, SHIFT(278), + [854] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), + [856] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [858] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [860] = {.entry = {.count = 1, .reusable = true}}, SHIFT(251), + [862] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [864] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [866] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__class_modifier, 1, 0, 0), + [868] = {.entry = {.count = 1, .reusable = false}}, SHIFT(426), + [870] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), + [872] = {.entry = {.count = 1, .reusable = true}}, SHIFT(220), + [874] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), + [876] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [878] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [880] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), }; #ifdef __cplusplus @@ -8111,7 +8258,7 @@ extern "C" { #define TS_PUBLIC __attribute__((visibility("default"))) #endif -TS_PUBLIC const TSLanguage *tree_sitter_inko() { +TS_PUBLIC const TSLanguage *tree_sitter_inko(void) { static const TSLanguage language = { .version = LANGUAGE_VERSION, .symbol_count = SYMBOL_COUNT, diff --git a/src/tree_sitter/parser.h b/src/tree_sitter/parser.h index 17b4fde..17f0e94 100644 --- a/src/tree_sitter/parser.h +++ b/src/tree_sitter/parser.h @@ -86,6 +86,11 @@ typedef union { } entry; } TSParseActionEntry; +typedef struct { + int32_t start; + int32_t end; +} TSCharacterRange; + struct TSLanguage { uint32_t version; uint32_t symbol_count; @@ -125,6 +130,24 @@ struct TSLanguage { const TSStateId *primary_state_ids; }; +static inline bool set_contains(TSCharacterRange *ranges, uint32_t len, int32_t lookahead) { + uint32_t index = 0; + uint32_t size = len - index; + while (size > 1) { + uint32_t half_size = size / 2; + uint32_t mid_index = index + half_size; + TSCharacterRange *range = &ranges[mid_index]; + if (lookahead >= range->start && lookahead <= range->end) { + return true; + } else if (lookahead > range->end) { + index = mid_index; + } + size -= half_size; + } + TSCharacterRange *range = &ranges[index]; + return (lookahead >= range->start && lookahead <= range->end); +} + /* * Lexer Macros */ @@ -154,6 +177,17 @@ struct TSLanguage { goto next_state; \ } +#define ADVANCE_MAP(...) \ + { \ + static const uint16_t map[] = { __VA_ARGS__ }; \ + for (uint32_t i = 0; i < sizeof(map) / sizeof(map[0]); i += 2) { \ + if (map[i] == lookahead) { \ + state = map[i + 1]; \ + goto next_state; \ + } \ + } \ + } + #define SKIP(state_value) \ { \ skip = true; \ @@ -203,14 +237,15 @@ struct TSLanguage { } \ }} -#define REDUCE(symbol_val, child_count_val, ...) \ - {{ \ - .reduce = { \ - .type = TSParseActionTypeReduce, \ - .symbol = symbol_val, \ - .child_count = child_count_val, \ - __VA_ARGS__ \ - }, \ +#define REDUCE(symbol_name, children, precedence, prod_id) \ + {{ \ + .reduce = { \ + .type = TSParseActionTypeReduce, \ + .symbol = symbol_name, \ + .child_count = children, \ + .dynamic_precedence = precedence, \ + .production_id = prod_id \ + }, \ }} #define RECOVER() \ diff --git a/test/corpus/imports.txt b/test/corpus/imports.txt index f0277e8..b3cda1c 100644 --- a/test/corpus/imports.txt +++ b/test/corpus/imports.txt @@ -71,3 +71,16 @@ import foo if tag1 and tag2 (import path: (path (identifier)) tags: (tags (identifier) (identifier)))) + +=== +Extern imports +=== + +import extern "c" +import extern "c" if tag1 and tag2 + +--- + +(source_file + (extern_import path: (path)) + (extern_import path: (path) tags: (tags (identifier) (identifier))))