From 59a9d4c39fb0b2476ec10e1e2df465e41c7d90b0 Mon Sep 17 00:00:00 2001 From: Maksim Kurnikov Date: Wed, 3 Jun 2020 14:07:25 +0300 Subject: [PATCH] Tree sitter ast (#77) * draft tree sitter AST * remove jinja2 file * add more expressions * lints, some more expressions * add more expressions * more * simplify build script --- .github/workflows/release.yaml | 2 +- Cargo.lock | 26 +- Cargo.toml | 1 + crates/syntax/Cargo.toml | 12 + crates/syntax/build.rs | 11 + crates/syntax/resources/parser.c | 26096 +++++++++++++++++ crates/syntax/resources/tree_sitter/parser.h | 235 + crates/syntax/src/ast.rs | 595 + crates/syntax/src/bin/parser.rs | 26 + crates/syntax/src/lib.rs | 1 + 10 files changed, 27000 insertions(+), 5 deletions(-) create mode 100644 crates/syntax/Cargo.toml create mode 100644 crates/syntax/build.rs create mode 100644 crates/syntax/resources/parser.c create mode 100644 crates/syntax/resources/tree_sitter/parser.h create mode 100644 crates/syntax/src/ast.rs create mode 100644 crates/syntax/src/bin/parser.rs create mode 100644 crates/syntax/src/lib.rs diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 022ee613..9f92ee86 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -79,7 +79,7 @@ jobs: asset_name: move-executor-${{ matrix.platform }} asset_content_type: application/octet-stream - - name: Language Server - upload binary as Release Asset (windows) + - name: Executor - upload binary as Release Asset (windows) if: matrix.os == 'windows-latest' uses: actions/upload-release-asset@v1 env: diff --git a/Cargo.lock b/Cargo.lock index 48105609..39eedf85 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2957,9 +2957,9 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] name = "serde" -version = "1.0.110" +version = "1.0.111" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99e7b308464d16b56eba9964e4972a3eee817760ab60d88c3f86e1fecb08204c" +checksum = "c9124df5b40cbd380080b2cc6ab894c040a3070d995f5c9dc77e18c34a8ae37d" dependencies = [ "serde_derive", ] @@ -2975,9 +2975,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.110" +version = "1.0.111" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "818fbf6bfa9a42d3bfcaca148547aa00c7b915bec71d1757aa2d44ca68771984" +checksum = "3f2c3ac8e6ca1e9c80b8be1023940162bf81ae3cffbb1809474152f2ce1eb250" dependencies = [ "proc-macro2 1.0.17", "quote 1.0.6", @@ -3226,6 +3226,14 @@ dependencies = [ "unicode-xid 0.2.0", ] +[[package]] +name = "syntax" +version = "0.1.0" +dependencies = [ + "cc", + "tree-sitter", +] + [[package]] name = "tempfile" version = "3.1.0" @@ -3677,6 +3685,16 @@ dependencies = [ "vm 0.1.0 (git+https://github.com/dfinance/libra.git?branch=22.05.2020.original)", ] +[[package]] +name = "tree-sitter" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02eca2a556ed0fc50fdfa0610f2ff8564414c76e572653ad2ad746f5ed6cbd2f" +dependencies = [ + "cc", + "regex", +] + [[package]] name = "try-lock" version = "0.2.2" diff --git a/Cargo.toml b/Cargo.toml index d09e64e8..7519767b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,4 +8,5 @@ members = [ "crates/dialects/lang", "crates/utils", "crates/integration_tests", + "crates/syntax", ] diff --git a/crates/syntax/Cargo.toml b/crates/syntax/Cargo.toml new file mode 100644 index 00000000..c4e7291d --- /dev/null +++ b/crates/syntax/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "syntax" +version = "0.1.0" +authors = ["Maksim Kurnikov "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +[build-dependencies] +cc = "1.0.54" + +[dependencies] +tree-sitter = "0.16.0" diff --git a/crates/syntax/build.rs b/crates/syntax/build.rs new file mode 100644 index 00000000..cb51752c --- /dev/null +++ b/crates/syntax/build.rs @@ -0,0 +1,11 @@ +fn main() { + let resources_dir = std::env::current_dir().unwrap().join("resources"); + let move_parser_file = resources_dir.join("parser.c"); + + println!("cargo:rerun-if-changed={}", resources_dir.to_str().unwrap()); // <1> + + cc::Build::new() + .file(move_parser_file) + .include(&resources_dir) + .compile("tree-sitter-move"); +} diff --git a/crates/syntax/resources/parser.c b/crates/syntax/resources/parser.c new file mode 100644 index 00000000..eea369ad --- /dev/null +++ b/crates/syntax/resources/parser.c @@ -0,0 +1,26096 @@ +#include + +#if defined(__GNUC__) || defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmissing-field-initializers" +#endif + +#ifdef _MSC_VER +#pragma optimize("", off) +#elif defined(__clang__) +#pragma clang optimize off +#elif defined(__GNUC__) +#pragma GCC optimize ("O0") +#endif + +#define LANGUAGE_VERSION 11 +#define STATE_COUNT 666 +#define LARGE_STATE_COUNT 16 +#define SYMBOL_COUNT 211 +#define ALIAS_COUNT 8 +#define TOKEN_COUNT 93 +#define EXTERNAL_TOKEN_COUNT 0 +#define FIELD_COUNT 35 +#define MAX_ALIAS_SEQUENCE_LENGTH 11 + +enum { + anon_sym_address = 1, + anon_sym_LBRACE = 2, + anon_sym_RBRACE = 3, + anon_sym_script = 4, + anon_sym_use = 5, + anon_sym_COLON_COLON = 6, + anon_sym_COMMA = 7, + anon_sym_SEMI = 8, + anon_sym_as = 9, + anon_sym_module = 10, + anon_sym_native = 11, + anon_sym_COLON = 12, + anon_sym_resource = 13, + anon_sym_struct = 14, + anon_sym_public = 15, + anon_sym_fun = 16, + anon_sym_LPAREN = 17, + anon_sym_RPAREN = 18, + anon_sym_acquires = 19, + anon_sym_spec = 20, + anon_sym_schema = 21, + anon_sym_assert = 22, + anon_sym_assume = 23, + anon_sym_decreases = 24, + anon_sym_aborts_if = 25, + anon_sym_ensures = 26, + anon_sym_requires = 27, + anon_sym_invariant = 28, + anon_sym_update = 29, + anon_sym_pack = 30, + anon_sym_unpack = 31, + anon_sym_include = 32, + anon_sym_apply = 33, + anon_sym_to = 34, + anon_sym_except = 35, + anon_sym_internal = 36, + sym_spec_apply_name_pattern = 37, + anon_sym_pragma = 38, + anon_sym_EQ = 39, + anon_sym_global = 40, + anon_sym_local = 41, + anon_sym_define = 42, + anon_sym_AMP = 43, + anon_sym_AMPmut = 44, + anon_sym_u8 = 45, + anon_sym_u64 = 46, + anon_sym_u128 = 47, + anon_sym_bool = 48, + anon_sym_signer = 49, + anon_sym_bytearray = 50, + anon_sym_LT = 51, + anon_sym_GT = 52, + anon_sym_PIPE = 53, + anon_sym_copyable = 54, + anon_sym_let = 55, + anon_sym_if = 56, + anon_sym_else = 57, + anon_sym_while = 58, + anon_sym_loop = 59, + anon_sym_return = 60, + anon_sym_abort = 61, + anon_sym_EQ_EQ_GT = 62, + anon_sym_PIPE_PIPE = 63, + anon_sym_AMP_AMP = 64, + anon_sym_EQ_EQ = 65, + anon_sym_BANG_EQ = 66, + anon_sym_LT_EQ = 67, + anon_sym_GT_EQ = 68, + anon_sym_DOT_DOT = 69, + anon_sym_CARET = 70, + anon_sym_LT_LT = 71, + anon_sym_GT_GT = 72, + anon_sym_PLUS = 73, + anon_sym_DASH = 74, + anon_sym_STAR = 75, + anon_sym_SLASH = 76, + anon_sym_PERCENT = 77, + anon_sym_BANG = 78, + anon_sym_move = 79, + anon_sym_copy = 80, + anon_sym_break = 81, + anon_sym_continue = 82, + anon_sym_DOT = 83, + anon_sym_LBRACK = 84, + anon_sym_RBRACK = 85, + sym_address_literal = 86, + anon_sym_true = 87, + anon_sym_false = 88, + sym_num_literal = 89, + sym_byte_string_literal = 90, + sym_identifier = 91, + sym_line_comment = 92, + sym_source_file = 93, + sym__statement = 94, + sym_address_block = 95, + sym_script_block = 96, + sym_use_decl = 97, + sym_use_member = 98, + sym__use_alias = 99, + sym_module_definition = 100, + sym_module_body = 101, + sym__struct_definition = 102, + sym_native_struct_definition = 103, + sym_struct_definition = 104, + sym_struct_def_fields = 105, + sym_field_annotation = 106, + sym__struct_signature = 107, + sym__function_definition = 108, + sym_native_function_definition = 109, + sym_usual_function_definition = 110, + sym__function_signature = 111, + sym_func_params = 112, + sym_resource_accquires = 113, + sym_spec_block = 114, + sym_spec_body = 115, + sym__spec_block_memeber = 116, + sym_spec_condition = 117, + sym_spec_invariant = 118, + sym_spec_include = 119, + sym_spec_apply = 120, + sym_spec_apply_pattern = 121, + sym_spec_pragma = 122, + sym_spec_pragma_property = 123, + sym_spec_variable = 124, + sym__spec_function = 125, + sym_native_spec_function = 126, + sym_usual_spec_function = 127, + sym__spec_function_signature = 128, + sym__type = 129, + sym_apply_type = 130, + sym_ref_type = 131, + sym_tuple_type = 132, + sym_module_access = 133, + sym__module_ident = 134, + sym_type_arguments = 135, + sym_function_type = 136, + sym_function_type_params = 137, + sym_function_parameter = 138, + sym_type_parameters = 139, + sym_type_parameter = 140, + sym_block = 141, + sym__block_item = 142, + sym_let_statement = 143, + sym__expression = 144, + sym_lambda_expression = 145, + sym_lambda_bindings = 146, + sym_if_expression = 147, + sym_while_expression = 148, + sym_loop_expression = 149, + sym_return_expression = 150, + sym_abort_expression = 151, + sym_assign_expression = 152, + sym__binary_operand = 153, + sym_binary_expression = 154, + sym__unary_expression = 155, + sym_unary_expression = 156, + sym_unary_op = 157, + sym_dereference_expression = 158, + sym_borrow_expression = 159, + sym_move_or_copy_expression = 160, + sym__expression_term = 161, + sym_break_expression = 162, + sym_continue_expression = 163, + sym__name_exp = 164, + sym_name_expression = 165, + sym_pack_expression = 166, + sym_field_initialize_list = 167, + sym_call_expression = 168, + sym_arg_list = 169, + sym_expression_list = 170, + sym_unit_expression = 171, + sym_cast_expression = 172, + sym_annotate_expression = 173, + sym_dot_expression = 174, + sym_index_expression = 175, + sym_exp_field = 176, + sym_bind_list = 177, + sym__bind = 178, + sym_bind_unpack = 179, + sym_bind_fields = 180, + sym_bind_field = 181, + sym__literal_value = 182, + sym_bool_literal = 183, + sym__module_identifier = 184, + sym__struct_identifier = 185, + sym__function_identifier = 186, + sym__variable_identifier = 187, + sym__field_identifier = 188, + sym__type_parameter_identifier = 189, + aux_sym_source_file_repeat1 = 190, + aux_sym_address_block_repeat1 = 191, + aux_sym_script_block_repeat1 = 192, + aux_sym_script_block_repeat2 = 193, + aux_sym_use_decl_repeat1 = 194, + aux_sym_module_body_repeat1 = 195, + aux_sym_struct_def_fields_repeat1 = 196, + aux_sym_func_params_repeat1 = 197, + aux_sym_resource_accquires_repeat1 = 198, + aux_sym_spec_body_repeat1 = 199, + aux_sym_spec_apply_repeat1 = 200, + aux_sym_spec_pragma_repeat1 = 201, + aux_sym_tuple_type_repeat1 = 202, + aux_sym_function_type_params_repeat1 = 203, + aux_sym_type_parameters_repeat1 = 204, + aux_sym_block_repeat1 = 205, + aux_sym_lambda_bindings_repeat1 = 206, + aux_sym_field_initialize_list_repeat1 = 207, + aux_sym_arg_list_repeat1 = 208, + aux_sym_expression_list_repeat1 = 209, + aux_sym_bind_fields_repeat1 = 210, + alias_sym_binary_operator = 211, + alias_sym_bind_var = 212, + alias_sym_field_identifier = 213, + alias_sym_function_identifier = 214, + alias_sym_module_identifier = 215, + alias_sym_struct_identifier = 216, + alias_sym_type_parameter_identifier = 217, + alias_sym_variable_identifier = 218, +}; + +static const char *ts_symbol_names[] = { + [ts_builtin_sym_end] = "end", + [anon_sym_address] = "address", + [anon_sym_LBRACE] = "{", + [anon_sym_RBRACE] = "}", + [anon_sym_script] = "script", + [anon_sym_use] = "use", + [anon_sym_COLON_COLON] = "::", + [anon_sym_COMMA] = ",", + [anon_sym_SEMI] = ";", + [anon_sym_as] = "as", + [anon_sym_module] = "module", + [anon_sym_native] = "native", + [anon_sym_COLON] = ":", + [anon_sym_resource] = "resource", + [anon_sym_struct] = "struct", + [anon_sym_public] = "public", + [anon_sym_fun] = "fun", + [anon_sym_LPAREN] = "(", + [anon_sym_RPAREN] = ")", + [anon_sym_acquires] = "acquires", + [anon_sym_spec] = "spec", + [anon_sym_schema] = "schema", + [anon_sym_assert] = "assert", + [anon_sym_assume] = "assume", + [anon_sym_decreases] = "decreases", + [anon_sym_aborts_if] = "aborts_if", + [anon_sym_ensures] = "ensures", + [anon_sym_requires] = "requires", + [anon_sym_invariant] = "invariant", + [anon_sym_update] = "update", + [anon_sym_pack] = "pack", + [anon_sym_unpack] = "unpack", + [anon_sym_include] = "include", + [anon_sym_apply] = "apply", + [anon_sym_to] = "to", + [anon_sym_except] = "except", + [anon_sym_internal] = "internal", + [sym_spec_apply_name_pattern] = "spec_apply_name_pattern", + [anon_sym_pragma] = "pragma", + [anon_sym_EQ] = "=", + [anon_sym_global] = "global", + [anon_sym_local] = "local", + [anon_sym_define] = "define", + [anon_sym_AMP] = "&", + [anon_sym_AMPmut] = "&mut", + [anon_sym_u8] = "u8", + [anon_sym_u64] = "u64", + [anon_sym_u128] = "u128", + [anon_sym_bool] = "bool", + [anon_sym_signer] = "signer", + [anon_sym_bytearray] = "bytearray", + [anon_sym_LT] = "<", + [anon_sym_GT] = ">", + [anon_sym_PIPE] = "|", + [anon_sym_copyable] = "copyable", + [anon_sym_let] = "let", + [anon_sym_if] = "if", + [anon_sym_else] = "else", + [anon_sym_while] = "while", + [anon_sym_loop] = "loop", + [anon_sym_return] = "return", + [anon_sym_abort] = "abort", + [anon_sym_EQ_EQ_GT] = "binary_operator", + [anon_sym_PIPE_PIPE] = "binary_operator", + [anon_sym_AMP_AMP] = "binary_operator", + [anon_sym_EQ_EQ] = "binary_operator", + [anon_sym_BANG_EQ] = "binary_operator", + [anon_sym_LT_EQ] = "binary_operator", + [anon_sym_GT_EQ] = "binary_operator", + [anon_sym_DOT_DOT] = "binary_operator", + [anon_sym_CARET] = "binary_operator", + [anon_sym_LT_LT] = "binary_operator", + [anon_sym_GT_GT] = "binary_operator", + [anon_sym_PLUS] = "binary_operator", + [anon_sym_DASH] = "binary_operator", + [anon_sym_STAR] = "*", + [anon_sym_SLASH] = "binary_operator", + [anon_sym_PERCENT] = "binary_operator", + [anon_sym_BANG] = "!", + [anon_sym_move] = "move", + [anon_sym_copy] = "copy", + [anon_sym_break] = "break", + [anon_sym_continue] = "continue", + [anon_sym_DOT] = ".", + [anon_sym_LBRACK] = "[", + [anon_sym_RBRACK] = "]", + [sym_address_literal] = "address_literal", + [anon_sym_true] = "true", + [anon_sym_false] = "false", + [sym_num_literal] = "num_literal", + [sym_byte_string_literal] = "byte_string_literal", + [sym_identifier] = "identifier", + [sym_line_comment] = "line_comment", + [sym_source_file] = "source_file", + [sym__statement] = "_statement", + [sym_address_block] = "address_block", + [sym_script_block] = "script_block", + [sym_use_decl] = "use_decl", + [sym_use_member] = "use_member", + [sym__use_alias] = "_use_alias", + [sym_module_definition] = "module_definition", + [sym_module_body] = "module_body", + [sym__struct_definition] = "_struct_definition", + [sym_native_struct_definition] = "native_struct_definition", + [sym_struct_definition] = "struct_definition", + [sym_struct_def_fields] = "struct_def_fields", + [sym_field_annotation] = "field_annotation", + [sym__struct_signature] = "_struct_signature", + [sym__function_definition] = "_function_definition", + [sym_native_function_definition] = "native_function_definition", + [sym_usual_function_definition] = "usual_function_definition", + [sym__function_signature] = "_function_signature", + [sym_func_params] = "func_params", + [sym_resource_accquires] = "resource_accquires", + [sym_spec_block] = "spec_block", + [sym_spec_body] = "spec_body", + [sym__spec_block_memeber] = "_spec_block_memeber", + [sym_spec_condition] = "spec_condition", + [sym_spec_invariant] = "spec_invariant", + [sym_spec_include] = "spec_include", + [sym_spec_apply] = "spec_apply", + [sym_spec_apply_pattern] = "spec_apply_pattern", + [sym_spec_pragma] = "spec_pragma", + [sym_spec_pragma_property] = "spec_pragma_property", + [sym_spec_variable] = "spec_variable", + [sym__spec_function] = "_spec_function", + [sym_native_spec_function] = "native_spec_function", + [sym_usual_spec_function] = "usual_spec_function", + [sym__spec_function_signature] = "_spec_function_signature", + [sym__type] = "_type", + [sym_apply_type] = "apply_type", + [sym_ref_type] = "ref_type", + [sym_tuple_type] = "tuple_type", + [sym_module_access] = "module_access", + [sym__module_ident] = "_module_ident", + [sym_type_arguments] = "type_arguments", + [sym_function_type] = "function_type", + [sym_function_type_params] = "function_type_params", + [sym_function_parameter] = "function_parameter", + [sym_type_parameters] = "type_parameters", + [sym_type_parameter] = "type_parameter", + [sym_block] = "block", + [sym__block_item] = "_block_item", + [sym_let_statement] = "let_statement", + [sym__expression] = "_expression", + [sym_lambda_expression] = "lambda_expression", + [sym_lambda_bindings] = "lambda_bindings", + [sym_if_expression] = "if_expression", + [sym_while_expression] = "while_expression", + [sym_loop_expression] = "loop_expression", + [sym_return_expression] = "return_expression", + [sym_abort_expression] = "abort_expression", + [sym_assign_expression] = "assign_expression", + [sym__binary_operand] = "_binary_operand", + [sym_binary_expression] = "binary_expression", + [sym__unary_expression] = "_unary_expression", + [sym_unary_expression] = "unary_expression", + [sym_unary_op] = "unary_op", + [sym_dereference_expression] = "dereference_expression", + [sym_borrow_expression] = "borrow_expression", + [sym_move_or_copy_expression] = "move_or_copy_expression", + [sym__expression_term] = "_expression_term", + [sym_break_expression] = "break_expression", + [sym_continue_expression] = "continue_expression", + [sym__name_exp] = "_name_exp", + [sym_name_expression] = "name_expression", + [sym_pack_expression] = "pack_expression", + [sym_field_initialize_list] = "field_initialize_list", + [sym_call_expression] = "call_expression", + [sym_arg_list] = "arg_list", + [sym_expression_list] = "expression_list", + [sym_unit_expression] = "unit_expression", + [sym_cast_expression] = "cast_expression", + [sym_annotate_expression] = "annotate_expression", + [sym_dot_expression] = "dot_expression", + [sym_index_expression] = "index_expression", + [sym_exp_field] = "exp_field", + [sym_bind_list] = "bind_list", + [sym__bind] = "_bind", + [sym_bind_unpack] = "bind_unpack", + [sym_bind_fields] = "bind_fields", + [sym_bind_field] = "bind_field", + [sym__literal_value] = "_literal_value", + [sym_bool_literal] = "bool_literal", + [sym__module_identifier] = "_module_identifier", + [sym__struct_identifier] = "_struct_identifier", + [sym__function_identifier] = "_function_identifier", + [sym__variable_identifier] = "_variable_identifier", + [sym__field_identifier] = "_field_identifier", + [sym__type_parameter_identifier] = "_type_parameter_identifier", + [aux_sym_source_file_repeat1] = "source_file_repeat1", + [aux_sym_address_block_repeat1] = "address_block_repeat1", + [aux_sym_script_block_repeat1] = "script_block_repeat1", + [aux_sym_script_block_repeat2] = "script_block_repeat2", + [aux_sym_use_decl_repeat1] = "use_decl_repeat1", + [aux_sym_module_body_repeat1] = "module_body_repeat1", + [aux_sym_struct_def_fields_repeat1] = "struct_def_fields_repeat1", + [aux_sym_func_params_repeat1] = "func_params_repeat1", + [aux_sym_resource_accquires_repeat1] = "resource_accquires_repeat1", + [aux_sym_spec_body_repeat1] = "spec_body_repeat1", + [aux_sym_spec_apply_repeat1] = "spec_apply_repeat1", + [aux_sym_spec_pragma_repeat1] = "spec_pragma_repeat1", + [aux_sym_tuple_type_repeat1] = "tuple_type_repeat1", + [aux_sym_function_type_params_repeat1] = "function_type_params_repeat1", + [aux_sym_type_parameters_repeat1] = "type_parameters_repeat1", + [aux_sym_block_repeat1] = "block_repeat1", + [aux_sym_lambda_bindings_repeat1] = "lambda_bindings_repeat1", + [aux_sym_field_initialize_list_repeat1] = "field_initialize_list_repeat1", + [aux_sym_arg_list_repeat1] = "arg_list_repeat1", + [aux_sym_expression_list_repeat1] = "expression_list_repeat1", + [aux_sym_bind_fields_repeat1] = "bind_fields_repeat1", + [alias_sym_binary_operator] = "binary_operator", + [alias_sym_bind_var] = "bind_var", + [alias_sym_field_identifier] = "field_identifier", + [alias_sym_function_identifier] = "function_identifier", + [alias_sym_module_identifier] = "module_identifier", + [alias_sym_struct_identifier] = "struct_identifier", + [alias_sym_type_parameter_identifier] = "type_parameter_identifier", + [alias_sym_variable_identifier] = "variable_identifier", +}; + +static TSSymbol ts_symbol_map[] = { + [ts_builtin_sym_end] = ts_builtin_sym_end, + [anon_sym_address] = anon_sym_address, + [anon_sym_LBRACE] = anon_sym_LBRACE, + [anon_sym_RBRACE] = anon_sym_RBRACE, + [anon_sym_script] = anon_sym_script, + [anon_sym_use] = anon_sym_use, + [anon_sym_COLON_COLON] = anon_sym_COLON_COLON, + [anon_sym_COMMA] = anon_sym_COMMA, + [anon_sym_SEMI] = anon_sym_SEMI, + [anon_sym_as] = anon_sym_as, + [anon_sym_module] = anon_sym_module, + [anon_sym_native] = anon_sym_native, + [anon_sym_COLON] = anon_sym_COLON, + [anon_sym_resource] = anon_sym_resource, + [anon_sym_struct] = anon_sym_struct, + [anon_sym_public] = anon_sym_public, + [anon_sym_fun] = anon_sym_fun, + [anon_sym_LPAREN] = anon_sym_LPAREN, + [anon_sym_RPAREN] = anon_sym_RPAREN, + [anon_sym_acquires] = anon_sym_acquires, + [anon_sym_spec] = anon_sym_spec, + [anon_sym_schema] = anon_sym_schema, + [anon_sym_assert] = anon_sym_assert, + [anon_sym_assume] = anon_sym_assume, + [anon_sym_decreases] = anon_sym_decreases, + [anon_sym_aborts_if] = anon_sym_aborts_if, + [anon_sym_ensures] = anon_sym_ensures, + [anon_sym_requires] = anon_sym_requires, + [anon_sym_invariant] = anon_sym_invariant, + [anon_sym_update] = anon_sym_update, + [anon_sym_pack] = anon_sym_pack, + [anon_sym_unpack] = anon_sym_unpack, + [anon_sym_include] = anon_sym_include, + [anon_sym_apply] = anon_sym_apply, + [anon_sym_to] = anon_sym_to, + [anon_sym_except] = anon_sym_except, + [anon_sym_internal] = anon_sym_internal, + [sym_spec_apply_name_pattern] = sym_spec_apply_name_pattern, + [anon_sym_pragma] = anon_sym_pragma, + [anon_sym_EQ] = anon_sym_EQ, + [anon_sym_global] = anon_sym_global, + [anon_sym_local] = anon_sym_local, + [anon_sym_define] = anon_sym_define, + [anon_sym_AMP] = anon_sym_AMP, + [anon_sym_AMPmut] = anon_sym_AMPmut, + [anon_sym_u8] = anon_sym_u8, + [anon_sym_u64] = anon_sym_u64, + [anon_sym_u128] = anon_sym_u128, + [anon_sym_bool] = anon_sym_bool, + [anon_sym_signer] = anon_sym_signer, + [anon_sym_bytearray] = anon_sym_bytearray, + [anon_sym_LT] = anon_sym_LT, + [anon_sym_GT] = anon_sym_GT, + [anon_sym_PIPE] = anon_sym_PIPE, + [anon_sym_copyable] = anon_sym_copyable, + [anon_sym_let] = anon_sym_let, + [anon_sym_if] = anon_sym_if, + [anon_sym_else] = anon_sym_else, + [anon_sym_while] = anon_sym_while, + [anon_sym_loop] = anon_sym_loop, + [anon_sym_return] = anon_sym_return, + [anon_sym_abort] = anon_sym_abort, + [anon_sym_EQ_EQ_GT] = anon_sym_EQ_EQ_GT, + [anon_sym_PIPE_PIPE] = anon_sym_EQ_EQ_GT, + [anon_sym_AMP_AMP] = anon_sym_EQ_EQ_GT, + [anon_sym_EQ_EQ] = anon_sym_EQ_EQ_GT, + [anon_sym_BANG_EQ] = anon_sym_EQ_EQ_GT, + [anon_sym_LT_EQ] = anon_sym_EQ_EQ_GT, + [anon_sym_GT_EQ] = anon_sym_EQ_EQ_GT, + [anon_sym_DOT_DOT] = anon_sym_EQ_EQ_GT, + [anon_sym_CARET] = anon_sym_EQ_EQ_GT, + [anon_sym_LT_LT] = anon_sym_EQ_EQ_GT, + [anon_sym_GT_GT] = anon_sym_EQ_EQ_GT, + [anon_sym_PLUS] = anon_sym_EQ_EQ_GT, + [anon_sym_DASH] = anon_sym_EQ_EQ_GT, + [anon_sym_STAR] = anon_sym_STAR, + [anon_sym_SLASH] = anon_sym_EQ_EQ_GT, + [anon_sym_PERCENT] = anon_sym_EQ_EQ_GT, + [anon_sym_BANG] = anon_sym_BANG, + [anon_sym_move] = anon_sym_move, + [anon_sym_copy] = anon_sym_copy, + [anon_sym_break] = anon_sym_break, + [anon_sym_continue] = anon_sym_continue, + [anon_sym_DOT] = anon_sym_DOT, + [anon_sym_LBRACK] = anon_sym_LBRACK, + [anon_sym_RBRACK] = anon_sym_RBRACK, + [sym_address_literal] = sym_address_literal, + [anon_sym_true] = anon_sym_true, + [anon_sym_false] = anon_sym_false, + [sym_num_literal] = sym_num_literal, + [sym_byte_string_literal] = sym_byte_string_literal, + [sym_identifier] = sym_identifier, + [sym_line_comment] = sym_line_comment, + [sym_source_file] = sym_source_file, + [sym__statement] = sym__statement, + [sym_address_block] = sym_address_block, + [sym_script_block] = sym_script_block, + [sym_use_decl] = sym_use_decl, + [sym_use_member] = sym_use_member, + [sym__use_alias] = sym__use_alias, + [sym_module_definition] = sym_module_definition, + [sym_module_body] = sym_module_body, + [sym__struct_definition] = sym__struct_definition, + [sym_native_struct_definition] = sym_native_struct_definition, + [sym_struct_definition] = sym_struct_definition, + [sym_struct_def_fields] = sym_struct_def_fields, + [sym_field_annotation] = sym_field_annotation, + [sym__struct_signature] = sym__struct_signature, + [sym__function_definition] = sym__function_definition, + [sym_native_function_definition] = sym_native_function_definition, + [sym_usual_function_definition] = sym_usual_function_definition, + [sym__function_signature] = sym__function_signature, + [sym_func_params] = sym_func_params, + [sym_resource_accquires] = sym_resource_accquires, + [sym_spec_block] = sym_spec_block, + [sym_spec_body] = sym_spec_body, + [sym__spec_block_memeber] = sym__spec_block_memeber, + [sym_spec_condition] = sym_spec_condition, + [sym_spec_invariant] = sym_spec_invariant, + [sym_spec_include] = sym_spec_include, + [sym_spec_apply] = sym_spec_apply, + [sym_spec_apply_pattern] = sym_spec_apply_pattern, + [sym_spec_pragma] = sym_spec_pragma, + [sym_spec_pragma_property] = sym_spec_pragma_property, + [sym_spec_variable] = sym_spec_variable, + [sym__spec_function] = sym__spec_function, + [sym_native_spec_function] = sym_native_spec_function, + [sym_usual_spec_function] = sym_usual_spec_function, + [sym__spec_function_signature] = sym__spec_function_signature, + [sym__type] = sym__type, + [sym_apply_type] = sym_apply_type, + [sym_ref_type] = sym_ref_type, + [sym_tuple_type] = sym_tuple_type, + [sym_module_access] = sym_module_access, + [sym__module_ident] = sym__module_ident, + [sym_type_arguments] = sym_type_arguments, + [sym_function_type] = sym_function_type, + [sym_function_type_params] = sym_function_type_params, + [sym_function_parameter] = sym_function_parameter, + [sym_type_parameters] = sym_type_parameters, + [sym_type_parameter] = sym_type_parameter, + [sym_block] = sym_block, + [sym__block_item] = sym__block_item, + [sym_let_statement] = sym_let_statement, + [sym__expression] = sym__expression, + [sym_lambda_expression] = sym_lambda_expression, + [sym_lambda_bindings] = sym_lambda_bindings, + [sym_if_expression] = sym_if_expression, + [sym_while_expression] = sym_while_expression, + [sym_loop_expression] = sym_loop_expression, + [sym_return_expression] = sym_return_expression, + [sym_abort_expression] = sym_abort_expression, + [sym_assign_expression] = sym_assign_expression, + [sym__binary_operand] = sym__binary_operand, + [sym_binary_expression] = sym_binary_expression, + [sym__unary_expression] = sym__unary_expression, + [sym_unary_expression] = sym_unary_expression, + [sym_unary_op] = sym_unary_op, + [sym_dereference_expression] = sym_dereference_expression, + [sym_borrow_expression] = sym_borrow_expression, + [sym_move_or_copy_expression] = sym_move_or_copy_expression, + [sym__expression_term] = sym__expression_term, + [sym_break_expression] = sym_break_expression, + [sym_continue_expression] = sym_continue_expression, + [sym__name_exp] = sym__name_exp, + [sym_name_expression] = sym_name_expression, + [sym_pack_expression] = sym_pack_expression, + [sym_field_initialize_list] = sym_field_initialize_list, + [sym_call_expression] = sym_call_expression, + [sym_arg_list] = sym_arg_list, + [sym_expression_list] = sym_expression_list, + [sym_unit_expression] = sym_unit_expression, + [sym_cast_expression] = sym_cast_expression, + [sym_annotate_expression] = sym_annotate_expression, + [sym_dot_expression] = sym_dot_expression, + [sym_index_expression] = sym_index_expression, + [sym_exp_field] = sym_exp_field, + [sym_bind_list] = sym_bind_list, + [sym__bind] = sym__bind, + [sym_bind_unpack] = sym_bind_unpack, + [sym_bind_fields] = sym_bind_fields, + [sym_bind_field] = sym_bind_field, + [sym__literal_value] = sym__literal_value, + [sym_bool_literal] = sym_bool_literal, + [sym__module_identifier] = sym__module_identifier, + [sym__struct_identifier] = sym__struct_identifier, + [sym__function_identifier] = sym__function_identifier, + [sym__variable_identifier] = sym__variable_identifier, + [sym__field_identifier] = sym__field_identifier, + [sym__type_parameter_identifier] = sym__type_parameter_identifier, + [aux_sym_source_file_repeat1] = aux_sym_source_file_repeat1, + [aux_sym_address_block_repeat1] = aux_sym_address_block_repeat1, + [aux_sym_script_block_repeat1] = aux_sym_script_block_repeat1, + [aux_sym_script_block_repeat2] = aux_sym_script_block_repeat2, + [aux_sym_use_decl_repeat1] = aux_sym_use_decl_repeat1, + [aux_sym_module_body_repeat1] = aux_sym_module_body_repeat1, + [aux_sym_struct_def_fields_repeat1] = aux_sym_struct_def_fields_repeat1, + [aux_sym_func_params_repeat1] = aux_sym_func_params_repeat1, + [aux_sym_resource_accquires_repeat1] = aux_sym_resource_accquires_repeat1, + [aux_sym_spec_body_repeat1] = aux_sym_spec_body_repeat1, + [aux_sym_spec_apply_repeat1] = aux_sym_spec_apply_repeat1, + [aux_sym_spec_pragma_repeat1] = aux_sym_spec_pragma_repeat1, + [aux_sym_tuple_type_repeat1] = aux_sym_tuple_type_repeat1, + [aux_sym_function_type_params_repeat1] = aux_sym_function_type_params_repeat1, + [aux_sym_type_parameters_repeat1] = aux_sym_type_parameters_repeat1, + [aux_sym_block_repeat1] = aux_sym_block_repeat1, + [aux_sym_lambda_bindings_repeat1] = aux_sym_lambda_bindings_repeat1, + [aux_sym_field_initialize_list_repeat1] = aux_sym_field_initialize_list_repeat1, + [aux_sym_arg_list_repeat1] = aux_sym_arg_list_repeat1, + [aux_sym_expression_list_repeat1] = aux_sym_expression_list_repeat1, + [aux_sym_bind_fields_repeat1] = aux_sym_bind_fields_repeat1, + [alias_sym_binary_operator] = alias_sym_binary_operator, + [alias_sym_bind_var] = alias_sym_bind_var, + [alias_sym_field_identifier] = alias_sym_field_identifier, + [alias_sym_function_identifier] = alias_sym_function_identifier, + [alias_sym_module_identifier] = alias_sym_module_identifier, + [alias_sym_struct_identifier] = alias_sym_struct_identifier, + [alias_sym_type_parameter_identifier] = alias_sym_type_parameter_identifier, + [alias_sym_variable_identifier] = alias_sym_variable_identifier, +}; + +static const TSSymbolMetadata ts_symbol_metadata[] = { + [ts_builtin_sym_end] = { + .visible = false, + .named = true, + }, + [anon_sym_address] = { + .visible = true, + .named = false, + }, + [anon_sym_LBRACE] = { + .visible = true, + .named = false, + }, + [anon_sym_RBRACE] = { + .visible = true, + .named = false, + }, + [anon_sym_script] = { + .visible = true, + .named = false, + }, + [anon_sym_use] = { + .visible = true, + .named = false, + }, + [anon_sym_COLON_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_COMMA] = { + .visible = true, + .named = false, + }, + [anon_sym_SEMI] = { + .visible = true, + .named = false, + }, + [anon_sym_as] = { + .visible = true, + .named = false, + }, + [anon_sym_module] = { + .visible = true, + .named = false, + }, + [anon_sym_native] = { + .visible = true, + .named = false, + }, + [anon_sym_COLON] = { + .visible = true, + .named = false, + }, + [anon_sym_resource] = { + .visible = true, + .named = false, + }, + [anon_sym_struct] = { + .visible = true, + .named = false, + }, + [anon_sym_public] = { + .visible = true, + .named = false, + }, + [anon_sym_fun] = { + .visible = true, + .named = false, + }, + [anon_sym_LPAREN] = { + .visible = true, + .named = false, + }, + [anon_sym_RPAREN] = { + .visible = true, + .named = false, + }, + [anon_sym_acquires] = { + .visible = true, + .named = false, + }, + [anon_sym_spec] = { + .visible = true, + .named = false, + }, + [anon_sym_schema] = { + .visible = true, + .named = false, + }, + [anon_sym_assert] = { + .visible = true, + .named = false, + }, + [anon_sym_assume] = { + .visible = true, + .named = false, + }, + [anon_sym_decreases] = { + .visible = true, + .named = false, + }, + [anon_sym_aborts_if] = { + .visible = true, + .named = false, + }, + [anon_sym_ensures] = { + .visible = true, + .named = false, + }, + [anon_sym_requires] = { + .visible = true, + .named = false, + }, + [anon_sym_invariant] = { + .visible = true, + .named = false, + }, + [anon_sym_update] = { + .visible = true, + .named = false, + }, + [anon_sym_pack] = { + .visible = true, + .named = false, + }, + [anon_sym_unpack] = { + .visible = true, + .named = false, + }, + [anon_sym_include] = { + .visible = true, + .named = false, + }, + [anon_sym_apply] = { + .visible = true, + .named = false, + }, + [anon_sym_to] = { + .visible = true, + .named = false, + }, + [anon_sym_except] = { + .visible = true, + .named = false, + }, + [anon_sym_internal] = { + .visible = true, + .named = false, + }, + [sym_spec_apply_name_pattern] = { + .visible = true, + .named = true, + }, + [anon_sym_pragma] = { + .visible = true, + .named = false, + }, + [anon_sym_EQ] = { + .visible = true, + .named = false, + }, + [anon_sym_global] = { + .visible = true, + .named = false, + }, + [anon_sym_local] = { + .visible = true, + .named = false, + }, + [anon_sym_define] = { + .visible = true, + .named = false, + }, + [anon_sym_AMP] = { + .visible = true, + .named = false, + }, + [anon_sym_AMPmut] = { + .visible = true, + .named = false, + }, + [anon_sym_u8] = { + .visible = true, + .named = false, + }, + [anon_sym_u64] = { + .visible = true, + .named = false, + }, + [anon_sym_u128] = { + .visible = true, + .named = false, + }, + [anon_sym_bool] = { + .visible = true, + .named = false, + }, + [anon_sym_signer] = { + .visible = true, + .named = false, + }, + [anon_sym_bytearray] = { + .visible = true, + .named = false, + }, + [anon_sym_LT] = { + .visible = true, + .named = false, + }, + [anon_sym_GT] = { + .visible = true, + .named = false, + }, + [anon_sym_PIPE] = { + .visible = true, + .named = false, + }, + [anon_sym_copyable] = { + .visible = true, + .named = false, + }, + [anon_sym_let] = { + .visible = true, + .named = false, + }, + [anon_sym_if] = { + .visible = true, + .named = false, + }, + [anon_sym_else] = { + .visible = true, + .named = false, + }, + [anon_sym_while] = { + .visible = true, + .named = false, + }, + [anon_sym_loop] = { + .visible = true, + .named = false, + }, + [anon_sym_return] = { + .visible = true, + .named = false, + }, + [anon_sym_abort] = { + .visible = true, + .named = false, + }, + [anon_sym_EQ_EQ_GT] = { + .visible = true, + .named = true, + }, + [anon_sym_PIPE_PIPE] = { + .visible = true, + .named = true, + }, + [anon_sym_AMP_AMP] = { + .visible = true, + .named = true, + }, + [anon_sym_EQ_EQ] = { + .visible = true, + .named = true, + }, + [anon_sym_BANG_EQ] = { + .visible = true, + .named = true, + }, + [anon_sym_LT_EQ] = { + .visible = true, + .named = true, + }, + [anon_sym_GT_EQ] = { + .visible = true, + .named = true, + }, + [anon_sym_DOT_DOT] = { + .visible = true, + .named = true, + }, + [anon_sym_CARET] = { + .visible = true, + .named = true, + }, + [anon_sym_LT_LT] = { + .visible = true, + .named = true, + }, + [anon_sym_GT_GT] = { + .visible = true, + .named = true, + }, + [anon_sym_PLUS] = { + .visible = true, + .named = true, + }, + [anon_sym_DASH] = { + .visible = true, + .named = true, + }, + [anon_sym_STAR] = { + .visible = true, + .named = false, + }, + [anon_sym_SLASH] = { + .visible = true, + .named = true, + }, + [anon_sym_PERCENT] = { + .visible = true, + .named = true, + }, + [anon_sym_BANG] = { + .visible = true, + .named = false, + }, + [anon_sym_move] = { + .visible = true, + .named = false, + }, + [anon_sym_copy] = { + .visible = true, + .named = false, + }, + [anon_sym_break] = { + .visible = true, + .named = false, + }, + [anon_sym_continue] = { + .visible = true, + .named = false, + }, + [anon_sym_DOT] = { + .visible = true, + .named = false, + }, + [anon_sym_LBRACK] = { + .visible = true, + .named = false, + }, + [anon_sym_RBRACK] = { + .visible = true, + .named = false, + }, + [sym_address_literal] = { + .visible = true, + .named = true, + }, + [anon_sym_true] = { + .visible = true, + .named = false, + }, + [anon_sym_false] = { + .visible = true, + .named = false, + }, + [sym_num_literal] = { + .visible = true, + .named = true, + }, + [sym_byte_string_literal] = { + .visible = true, + .named = true, + }, + [sym_identifier] = { + .visible = true, + .named = true, + }, + [sym_line_comment] = { + .visible = true, + .named = true, + }, + [sym_source_file] = { + .visible = true, + .named = true, + }, + [sym__statement] = { + .visible = false, + .named = true, + }, + [sym_address_block] = { + .visible = true, + .named = true, + }, + [sym_script_block] = { + .visible = true, + .named = true, + }, + [sym_use_decl] = { + .visible = true, + .named = true, + }, + [sym_use_member] = { + .visible = true, + .named = true, + }, + [sym__use_alias] = { + .visible = false, + .named = true, + }, + [sym_module_definition] = { + .visible = true, + .named = true, + }, + [sym_module_body] = { + .visible = true, + .named = true, + }, + [sym__struct_definition] = { + .visible = false, + .named = true, + }, + [sym_native_struct_definition] = { + .visible = true, + .named = true, + }, + [sym_struct_definition] = { + .visible = true, + .named = true, + }, + [sym_struct_def_fields] = { + .visible = true, + .named = true, + }, + [sym_field_annotation] = { + .visible = true, + .named = true, + }, + [sym__struct_signature] = { + .visible = false, + .named = true, + }, + [sym__function_definition] = { + .visible = false, + .named = true, + }, + [sym_native_function_definition] = { + .visible = true, + .named = true, + }, + [sym_usual_function_definition] = { + .visible = true, + .named = true, + }, + [sym__function_signature] = { + .visible = false, + .named = true, + }, + [sym_func_params] = { + .visible = true, + .named = true, + }, + [sym_resource_accquires] = { + .visible = true, + .named = true, + }, + [sym_spec_block] = { + .visible = true, + .named = true, + }, + [sym_spec_body] = { + .visible = true, + .named = true, + }, + [sym__spec_block_memeber] = { + .visible = false, + .named = true, + }, + [sym_spec_condition] = { + .visible = true, + .named = true, + }, + [sym_spec_invariant] = { + .visible = true, + .named = true, + }, + [sym_spec_include] = { + .visible = true, + .named = true, + }, + [sym_spec_apply] = { + .visible = true, + .named = true, + }, + [sym_spec_apply_pattern] = { + .visible = true, + .named = true, + }, + [sym_spec_pragma] = { + .visible = true, + .named = true, + }, + [sym_spec_pragma_property] = { + .visible = true, + .named = true, + }, + [sym_spec_variable] = { + .visible = true, + .named = true, + }, + [sym__spec_function] = { + .visible = false, + .named = true, + }, + [sym_native_spec_function] = { + .visible = true, + .named = true, + }, + [sym_usual_spec_function] = { + .visible = true, + .named = true, + }, + [sym__spec_function_signature] = { + .visible = false, + .named = true, + }, + [sym__type] = { + .visible = false, + .named = true, + }, + [sym_apply_type] = { + .visible = true, + .named = true, + }, + [sym_ref_type] = { + .visible = true, + .named = true, + }, + [sym_tuple_type] = { + .visible = true, + .named = true, + }, + [sym_module_access] = { + .visible = true, + .named = true, + }, + [sym__module_ident] = { + .visible = false, + .named = true, + }, + [sym_type_arguments] = { + .visible = true, + .named = true, + }, + [sym_function_type] = { + .visible = true, + .named = true, + }, + [sym_function_type_params] = { + .visible = true, + .named = true, + }, + [sym_function_parameter] = { + .visible = true, + .named = true, + }, + [sym_type_parameters] = { + .visible = true, + .named = true, + }, + [sym_type_parameter] = { + .visible = true, + .named = true, + }, + [sym_block] = { + .visible = true, + .named = true, + }, + [sym__block_item] = { + .visible = false, + .named = true, + }, + [sym_let_statement] = { + .visible = true, + .named = true, + }, + [sym__expression] = { + .visible = false, + .named = true, + }, + [sym_lambda_expression] = { + .visible = true, + .named = true, + }, + [sym_lambda_bindings] = { + .visible = true, + .named = true, + }, + [sym_if_expression] = { + .visible = true, + .named = true, + }, + [sym_while_expression] = { + .visible = true, + .named = true, + }, + [sym_loop_expression] = { + .visible = true, + .named = true, + }, + [sym_return_expression] = { + .visible = true, + .named = true, + }, + [sym_abort_expression] = { + .visible = true, + .named = true, + }, + [sym_assign_expression] = { + .visible = true, + .named = true, + }, + [sym__binary_operand] = { + .visible = false, + .named = true, + }, + [sym_binary_expression] = { + .visible = true, + .named = true, + }, + [sym__unary_expression] = { + .visible = false, + .named = true, + }, + [sym_unary_expression] = { + .visible = true, + .named = true, + }, + [sym_unary_op] = { + .visible = true, + .named = true, + }, + [sym_dereference_expression] = { + .visible = true, + .named = true, + }, + [sym_borrow_expression] = { + .visible = true, + .named = true, + }, + [sym_move_or_copy_expression] = { + .visible = true, + .named = true, + }, + [sym__expression_term] = { + .visible = false, + .named = true, + }, + [sym_break_expression] = { + .visible = true, + .named = true, + }, + [sym_continue_expression] = { + .visible = true, + .named = true, + }, + [sym__name_exp] = { + .visible = false, + .named = true, + }, + [sym_name_expression] = { + .visible = true, + .named = true, + }, + [sym_pack_expression] = { + .visible = true, + .named = true, + }, + [sym_field_initialize_list] = { + .visible = true, + .named = true, + }, + [sym_call_expression] = { + .visible = true, + .named = true, + }, + [sym_arg_list] = { + .visible = true, + .named = true, + }, + [sym_expression_list] = { + .visible = true, + .named = true, + }, + [sym_unit_expression] = { + .visible = true, + .named = true, + }, + [sym_cast_expression] = { + .visible = true, + .named = true, + }, + [sym_annotate_expression] = { + .visible = true, + .named = true, + }, + [sym_dot_expression] = { + .visible = true, + .named = true, + }, + [sym_index_expression] = { + .visible = true, + .named = true, + }, + [sym_exp_field] = { + .visible = true, + .named = true, + }, + [sym_bind_list] = { + .visible = true, + .named = true, + }, + [sym__bind] = { + .visible = false, + .named = true, + }, + [sym_bind_unpack] = { + .visible = true, + .named = true, + }, + [sym_bind_fields] = { + .visible = true, + .named = true, + }, + [sym_bind_field] = { + .visible = true, + .named = true, + }, + [sym__literal_value] = { + .visible = false, + .named = true, + }, + [sym_bool_literal] = { + .visible = true, + .named = true, + }, + [sym__module_identifier] = { + .visible = false, + .named = true, + }, + [sym__struct_identifier] = { + .visible = false, + .named = true, + }, + [sym__function_identifier] = { + .visible = false, + .named = true, + }, + [sym__variable_identifier] = { + .visible = false, + .named = true, + }, + [sym__field_identifier] = { + .visible = false, + .named = true, + }, + [sym__type_parameter_identifier] = { + .visible = false, + .named = true, + }, + [aux_sym_source_file_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_address_block_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_script_block_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_script_block_repeat2] = { + .visible = false, + .named = false, + }, + [aux_sym_use_decl_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_module_body_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_struct_def_fields_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_func_params_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_resource_accquires_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_spec_body_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_spec_apply_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_spec_pragma_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_tuple_type_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_function_type_params_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_type_parameters_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_block_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_lambda_bindings_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_field_initialize_list_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_arg_list_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_expression_list_repeat1] = { + .visible = false, + .named = false, + }, + [aux_sym_bind_fields_repeat1] = { + .visible = false, + .named = false, + }, + [alias_sym_binary_operator] = { + .visible = true, + .named = true, + }, + [alias_sym_bind_var] = { + .visible = true, + .named = true, + }, + [alias_sym_field_identifier] = { + .visible = true, + .named = true, + }, + [alias_sym_function_identifier] = { + .visible = true, + .named = true, + }, + [alias_sym_module_identifier] = { + .visible = true, + .named = true, + }, + [alias_sym_struct_identifier] = { + .visible = true, + .named = true, + }, + [alias_sym_type_parameter_identifier] = { + .visible = true, + .named = true, + }, + [alias_sym_variable_identifier] = { + .visible = true, + .named = true, + }, +}; + +enum { + field_abort = 1, + field_acquires = 2, + field_address = 3, + field_args = 4, + field_as = 5, + field_bind = 6, + field_bind_fields = 7, + field_bindings = 8, + field_binds = 9, + field_body = 10, + field_e = 11, + field_eb = 12, + field_ef = 13, + field_et = 14, + field_exp = 15, + field_f = 16, + field_field = 17, + field_fields = 18, + field_idx = 19, + field_lhs = 20, + field_member = 21, + field_module = 22, + field_name = 23, + field_name_pattern = 24, + field_op = 25, + field_operator = 26, + field_param_types = 27, + field_params = 28, + field_return = 29, + field_return_type = 30, + field_rhs = 31, + field_ty = 32, + field_type = 33, + field_type_arguments = 34, + field_type_parameters = 35, +}; + +static const char *ts_field_names[] = { + [0] = NULL, + [field_abort] = "abort", + [field_acquires] = "acquires", + [field_address] = "address", + [field_args] = "args", + [field_as] = "as", + [field_bind] = "bind", + [field_bind_fields] = "bind_fields", + [field_bindings] = "bindings", + [field_binds] = "binds", + [field_body] = "body", + [field_e] = "e", + [field_eb] = "eb", + [field_ef] = "ef", + [field_et] = "et", + [field_exp] = "exp", + [field_f] = "f", + [field_field] = "field", + [field_fields] = "fields", + [field_idx] = "idx", + [field_lhs] = "lhs", + [field_member] = "member", + [field_module] = "module", + [field_name] = "name", + [field_name_pattern] = "name_pattern", + [field_op] = "op", + [field_operator] = "operator", + [field_param_types] = "param_types", + [field_params] = "params", + [field_return] = "return", + [field_return_type] = "return_type", + [field_rhs] = "rhs", + [field_ty] = "ty", + [field_type] = "type", + [field_type_arguments] = "type_arguments", + [field_type_parameters] = "type_parameters", +}; + +static const TSFieldMapSlice ts_field_map_slices[85] = { + [3] = {.index = 0, .length = 1}, + [5] = {.index = 1, .length = 1}, + [6] = {.index = 2, .length = 1}, + [9] = {.index = 3, .length = 1}, + [10] = {.index = 4, .length = 1}, + [11] = {.index = 5, .length = 1}, + [12] = {.index = 6, .length = 3}, + [13] = {.index = 9, .length = 6}, + [14] = {.index = 15, .length = 1}, + [15] = {.index = 16, .length = 2}, + [16] = {.index = 18, .length = 2}, + [17] = {.index = 20, .length = 1}, + [18] = {.index = 21, .length = 2}, + [19] = {.index = 23, .length = 2}, + [20] = {.index = 25, .length = 2}, + [21] = {.index = 27, .length = 5}, + [22] = {.index = 32, .length = 1}, + [23] = {.index = 33, .length = 2}, + [24] = {.index = 35, .length = 2}, + [25] = {.index = 37, .length = 1}, + [26] = {.index = 38, .length = 1}, + [27] = {.index = 39, .length = 2}, + [29] = {.index = 41, .length = 2}, + [30] = {.index = 43, .length = 3}, + [31] = {.index = 43, .length = 3}, + [32] = {.index = 46, .length = 2}, + [33] = {.index = 48, .length = 2}, + [34] = {.index = 50, .length = 1}, + [35] = {.index = 51, .length = 1}, + [36] = {.index = 52, .length = 1}, + [37] = {.index = 53, .length = 1}, + [38] = {.index = 54, .length = 1}, + [39] = {.index = 55, .length = 3}, + [40] = {.index = 58, .length = 2}, + [42] = {.index = 60, .length = 2}, + [43] = {.index = 62, .length = 3}, + [44] = {.index = 65, .length = 3}, + [45] = {.index = 68, .length = 1}, + [46] = {.index = 69, .length = 2}, + [47] = {.index = 71, .length = 2}, + [48] = {.index = 73, .length = 2}, + [49] = {.index = 75, .length = 2}, + [50] = {.index = 77, .length = 2}, + [51] = {.index = 79, .length = 2}, + [52] = {.index = 81, .length = 3}, + [53] = {.index = 84, .length = 3}, + [54] = {.index = 87, .length = 3}, + [55] = {.index = 90, .length = 4}, + [56] = {.index = 94, .length = 2}, + [57] = {.index = 96, .length = 5}, + [58] = {.index = 101, .length = 2}, + [59] = {.index = 103, .length = 2}, + [60] = {.index = 105, .length = 2}, + [61] = {.index = 107, .length = 2}, + [62] = {.index = 109, .length = 2}, + [63] = {.index = 111, .length = 3}, + [64] = {.index = 114, .length = 4}, + [65] = {.index = 118, .length = 2}, + [66] = {.index = 120, .length = 4}, + [67] = {.index = 124, .length = 4}, + [68] = {.index = 128, .length = 4}, + [69] = {.index = 132, .length = 1}, + [70] = {.index = 133, .length = 2}, + [71] = {.index = 135, .length = 3}, + [72] = {.index = 138, .length = 4}, + [73] = {.index = 142, .length = 4}, + [74] = {.index = 146, .length = 5}, + [75] = {.index = 151, .length = 1}, + [76] = {.index = 152, .length = 2}, + [77] = {.index = 154, .length = 2}, + [78] = {.index = 156, .length = 3}, + [79] = {.index = 159, .length = 3}, + [80] = {.index = 162, .length = 3}, + [81] = {.index = 165, .length = 5}, + [82] = {.index = 170, .length = 2}, + [83] = {.index = 172, .length = 3}, + [84] = {.index = 175, .length = 4}, +}; + +static const TSFieldMapEntry ts_field_map_entries[] = { + [0] = + {field_name, 1}, + [1] = + {field_body, 1}, + [2] = + {field_exp, 1}, + [3] = + {field_binds, 1}, + [4] = + {field_return, 1}, + [5] = + {field_abort, 1}, + [6] = + {field_fields, 1}, + {field_name, 0, .inherited = true}, + {field_type_parameters, 0, .inherited = true}, + [9] = + {field_acquires, 0, .inherited = true}, + {field_body, 1}, + {field_name, 0, .inherited = true}, + {field_params, 0, .inherited = true}, + {field_return_type, 0, .inherited = true}, + {field_type_parameters, 0, .inherited = true}, + [15] = + {field_type_arguments, 1}, + [16] = + {field_bindings, 0}, + {field_exp, 1}, + [18] = + {field_exp, 1}, + {field_op, 0}, + [20] = + {field_args, 1}, + [21] = + {field_address, 1, .inherited = true}, + {field_module, 1, .inherited = true}, + [23] = + {field_body, 2}, + {field_name, 1}, + [25] = + {field_name, 1, .inherited = true}, + {field_type_parameters, 1, .inherited = true}, + [27] = + {field_acquires, 1, .inherited = true}, + {field_name, 1, .inherited = true}, + {field_params, 1, .inherited = true}, + {field_return_type, 1, .inherited = true}, + {field_type_parameters, 1, .inherited = true}, + [32] = + {field_name, 2}, + [33] = + {field_name, 1}, + {field_type_parameters, 2}, + [35] = + {field_name, 1}, + {field_params, 2}, + [37] = + {field_body, 2}, + [38] = + {field_bind_fields, 1}, + [39] = + {field_address, 0}, + {field_module, 2}, + [41] = + {field_address, 0, .inherited = true}, + {field_module, 0, .inherited = true}, + [43] = + {field_lhs, 0}, + {field_operator, 1}, + {field_rhs, 2}, + [46] = + {field_lhs, 0}, + {field_rhs, 2}, + [48] = + {field_e, 0}, + {field_f, 2}, + [50] = + {field_field, 0}, + [51] = + {field_module, 0}, + [52] = + {field_address, 1}, + [53] = + {field_member, 0}, + [54] = + {field_as, 1}, + [55] = + {field_address, 1, .inherited = true}, + {field_as, 2, .inherited = true}, + {field_module, 1, .inherited = true}, + [58] = + {field_name, 2}, + {field_type_parameters, 3}, + [60] = + {field_name, 2}, + {field_params, 3}, + [62] = + {field_acquires, 3}, + {field_name, 1}, + {field_params, 2}, + [65] = + {field_name, 1}, + {field_params, 3}, + {field_type_parameters, 2}, + [68] = + {field_body, 3}, + [69] = + {field_bind_fields, 2}, + {field_type_arguments, 1}, + [71] = + {field_binds, 1}, + {field_type, 3}, + [73] = + {field_binds, 1}, + {field_exp, 3}, + [75] = + {field_param_types, 0}, + {field_return_type, 1}, + [77] = + {field_e, 0}, + {field_idx, 2}, + [79] = + {field_as, 1, .inherited = true}, + {field_member, 0}, + [81] = + {field_acquires, 4}, + {field_name, 2}, + {field_params, 3}, + [84] = + {field_name, 2}, + {field_params, 4}, + {field_type_parameters, 3}, + [87] = + {field_name, 1}, + {field_params, 2}, + {field_return_type, 4}, + [90] = + {field_acquires, 4}, + {field_name, 1}, + {field_params, 3}, + {field_type_parameters, 2}, + [94] = + {field_exp, 1}, + {field_ty, 3}, + [96] = + {field_body, 2}, + {field_name, 1, .inherited = true}, + {field_params, 1, .inherited = true}, + {field_return_type, 1, .inherited = true}, + {field_type_parameters, 1, .inherited = true}, + [101] = + {field_body, 4}, + {field_type_parameters, 3}, + [103] = + {field_eb, 2}, + {field_et, 4}, + [105] = + {field_body, 4}, + {field_eb, 2}, + [107] = + {field_field, 0}, + {field_type, 2}, + [109] = + {field_exp, 2}, + {field_field, 0}, + [111] = + {field_name, 2}, + {field_params, 3}, + {field_return_type, 5}, + [114] = + {field_acquires, 5}, + {field_name, 2}, + {field_params, 4}, + {field_type_parameters, 3}, + [118] = + {field_name, 0}, + {field_type, 2}, + [120] = + {field_acquires, 5}, + {field_name, 1}, + {field_params, 2}, + {field_return_type, 4}, + [124] = + {field_name, 1}, + {field_params, 3}, + {field_return_type, 5}, + {field_type_parameters, 2}, + [128] = + {field_name, 2, .inherited = true}, + {field_params, 2, .inherited = true}, + {field_return_type, 2, .inherited = true}, + {field_type_parameters, 2, .inherited = true}, + [132] = + {field_name_pattern, 0}, + [133] = + {field_bind, 2}, + {field_field, 0}, + [135] = + {field_binds, 1}, + {field_exp, 5}, + {field_type, 3}, + [138] = + {field_acquires, 6}, + {field_name, 2}, + {field_params, 3}, + {field_return_type, 5}, + [142] = + {field_name, 2}, + {field_params, 4}, + {field_return_type, 6}, + {field_type_parameters, 3}, + [146] = + {field_acquires, 6}, + {field_name, 1}, + {field_params, 3}, + {field_return_type, 5}, + {field_type_parameters, 2}, + [151] = + {field_name_pattern, 1}, + [152] = + {field_name_pattern, 0}, + {field_type_parameters, 1}, + [154] = + {field_name, 1}, + {field_type, 3}, + [156] = + {field_name, 0}, + {field_params, 1}, + {field_return_type, 3}, + [159] = + {field_name, 0}, + {field_type, 3}, + {field_type_parameters, 1}, + [162] = + {field_eb, 2}, + {field_ef, 6}, + {field_et, 4}, + [165] = + {field_acquires, 7}, + {field_name, 2}, + {field_params, 4}, + {field_return_type, 6}, + {field_type_parameters, 3}, + [170] = + {field_name_pattern, 1}, + {field_type_parameters, 2}, + [172] = + {field_name, 1}, + {field_type, 4}, + {field_type_parameters, 2}, + [175] = + {field_name, 0}, + {field_params, 2}, + {field_return_type, 4}, + {field_type_parameters, 1}, +}; + +static TSSymbol ts_alias_sequences[85][MAX_ALIAS_SEQUENCE_LENGTH] = { + [0] = {0}, + [1] = { + [0] = alias_sym_module_identifier, + }, + [2] = { + [0] = alias_sym_struct_identifier, + }, + [4] = { + [0] = alias_sym_function_identifier, + }, + [7] = { + [0] = alias_sym_variable_identifier, + }, + [8] = { + [0] = alias_sym_bind_var, + }, + [28] = { + [0] = alias_sym_field_identifier, + }, + [30] = { + [1] = alias_sym_binary_operator, + }, + [41] = { + [0] = alias_sym_type_parameter_identifier, + }, +}; + +static bool ts_lex(TSLexer *lexer, TSStateId state) { + START_LEXER(); + eof = lexer->eof(lexer); + switch (state) { + case 0: + if (eof) ADVANCE(221); + if (lookahead == '!') ADVANCE(359); + if (lookahead == '%') ADVANCE(357); + if (lookahead == '&') ADVANCE(312); + if (lookahead == '(') ADVANCE(250); + if (lookahead == ')') ADVANCE(251); + if (lookahead == '*') ADVANCE(355); + if (lookahead == '+') ADVANCE(353); + if (lookahead == ',') ADVANCE(231); + if (lookahead == '-') ADVANCE(354); + if (lookahead == '.') ADVANCE(368); + if (lookahead == '/') ADVANCE(356); + if (lookahead == '0') ADVANCE(377); + if (lookahead == ':') ADVANCE(240); + if (lookahead == ';') ADVANCE(232); + if (lookahead == '<') ADVANCE(322); + if (lookahead == '=') ADVANCE(304); + if (lookahead == '>') ADVANCE(324); + if (lookahead == '[') ADVANCE(369); + if (lookahead == ']') ADVANCE(370); + if (lookahead == '^') ADVANCE(350); + if (lookahead == 'a') ADVANCE(50); + if (lookahead == 'b') ADVANCE(150); + if (lookahead == 'c') ADVANCE(144); + if (lookahead == 'd') ADVANCE(71); + if (lookahead == 'e') ADVANCE(120); + if (lookahead == 'f') ADVANCE(34); + if (lookahead == 'g') ADVANCE(127); + if (lookahead == 'i') ADVANCE(102); + if (lookahead == 'l') ADVANCE(87); + if (lookahead == 'm') ADVANCE(145); + if (lookahead == 'n') ADVANCE(38); + if (lookahead == 'p') ADVANCE(35); + if (lookahead == 'r') ADVANCE(72); + if (lookahead == 's') ADVANCE(56); + if (lookahead == 't') ADVANCE(147); + if (lookahead == 'u') ADVANCE(22); + if (lookahead == 'w') ADVANCE(105); + if (lookahead == 'x') ADVANCE(12); + if (lookahead == '{') ADVANCE(224); + if (lookahead == '|') ADVANCE(326); + if (lookahead == '}') ADVANCE(225); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(0) + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(378); + END_STATE(); + case 1: + if (lookahead == '!') ADVANCE(358); + if (lookahead == '&') ADVANCE(313); + if (lookahead == '(') ADVANCE(250); + if (lookahead == ')') ADVANCE(251); + if (lookahead == '*') ADVANCE(355); + if (lookahead == ',') ADVANCE(231); + if (lookahead == '/') ADVANCE(17); + if (lookahead == '0') ADVANCE(377); + if (lookahead == ':') ADVANCE(240); + if (lookahead == 'a') ADVANCE(398); + if (lookahead == 'b') ADVANCE(498); + if (lookahead == 'c') ADVANCE(480); + if (lookahead == 'e') ADVANCE(468); + if (lookahead == 'f') ADVANCE(383); + if (lookahead == 'i') ADVANCE(443); + if (lookahead == 'l') ADVANCE(486); + if (lookahead == 'm') ADVANCE(489); + if (lookahead == 'r') ADVANCE(437); + if (lookahead == 's') ADVANCE(492); + if (lookahead == 't') ADVANCE(497); + if (lookahead == 'w') ADVANCE(446); + if (lookahead == 'x') ADVANCE(380); + if (lookahead == '{') ADVANCE(224); + if (lookahead == '|') ADVANCE(325); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(1) + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(378); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('d' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 2: + if (lookahead == '!') ADVANCE(358); + if (lookahead == '&') ADVANCE(313); + if (lookahead == '(') ADVANCE(250); + if (lookahead == ')') ADVANCE(251); + if (lookahead == '*') ADVANCE(355); + if (lookahead == ',') ADVANCE(231); + if (lookahead == '/') ADVANCE(17); + if (lookahead == '0') ADVANCE(377); + if (lookahead == ':') ADVANCE(240); + if (lookahead == 'a') ADVANCE(398); + if (lookahead == 'b') ADVANCE(498); + if (lookahead == 'c') ADVANCE(480); + if (lookahead == 'f') ADVANCE(383); + if (lookahead == 'i') ADVANCE(443); + if (lookahead == 'l') ADVANCE(486); + if (lookahead == 'm') ADVANCE(489); + if (lookahead == 'r') ADVANCE(437); + if (lookahead == 's') ADVANCE(492); + if (lookahead == 't') ADVANCE(497); + if (lookahead == 'w') ADVANCE(446); + if (lookahead == 'x') ADVANCE(380); + if (lookahead == '{') ADVANCE(224); + if (lookahead == '|') ADVANCE(325); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(2) + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(378); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('d' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 3: + if (lookahead == '!') ADVANCE(358); + if (lookahead == '&') ADVANCE(313); + if (lookahead == '(') ADVANCE(250); + if (lookahead == ')') ADVANCE(251); + if (lookahead == '*') ADVANCE(355); + if (lookahead == ',') ADVANCE(231); + if (lookahead == '/') ADVANCE(17); + if (lookahead == '0') ADVANCE(377); + if (lookahead == ':') ADVANCE(30); + if (lookahead == ';') ADVANCE(232); + if (lookahead == ']') ADVANCE(370); + if (lookahead == 'a') ADVANCE(399); + if (lookahead == 'b') ADVANCE(498); + if (lookahead == 'c') ADVANCE(480); + if (lookahead == 'e') ADVANCE(468); + if (lookahead == 'f') ADVANCE(383); + if (lookahead == 'i') ADVANCE(443); + if (lookahead == 'l') ADVANCE(486); + if (lookahead == 'm') ADVANCE(489); + if (lookahead == 'r') ADVANCE(437); + if (lookahead == 's') ADVANCE(492); + if (lookahead == 't') ADVANCE(497); + if (lookahead == 'w') ADVANCE(446); + if (lookahead == 'x') ADVANCE(380); + if (lookahead == '{') ADVANCE(224); + if (lookahead == '|') ADVANCE(325); + if (lookahead == '}') ADVANCE(225); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(3) + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(378); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('d' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 4: + if (lookahead == '!') ADVANCE(358); + if (lookahead == '&') ADVANCE(313); + if (lookahead == '(') ADVANCE(250); + if (lookahead == ')') ADVANCE(251); + if (lookahead == '*') ADVANCE(355); + if (lookahead == ',') ADVANCE(231); + if (lookahead == '/') ADVANCE(17); + if (lookahead == '0') ADVANCE(377); + if (lookahead == ':') ADVANCE(30); + if (lookahead == ';') ADVANCE(232); + if (lookahead == ']') ADVANCE(370); + if (lookahead == 'a') ADVANCE(399); + if (lookahead == 'b') ADVANCE(498); + if (lookahead == 'c') ADVANCE(480); + if (lookahead == 'f') ADVANCE(383); + if (lookahead == 'i') ADVANCE(443); + if (lookahead == 'l') ADVANCE(486); + if (lookahead == 'm') ADVANCE(489); + if (lookahead == 'r') ADVANCE(437); + if (lookahead == 's') ADVANCE(492); + if (lookahead == 't') ADVANCE(497); + if (lookahead == 'w') ADVANCE(446); + if (lookahead == 'x') ADVANCE(380); + if (lookahead == '{') ADVANCE(224); + if (lookahead == '|') ADVANCE(325); + if (lookahead == '}') ADVANCE(225); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(4) + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(378); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('d' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 5: + if (lookahead == '!') ADVANCE(358); + if (lookahead == '&') ADVANCE(313); + if (lookahead == '(') ADVANCE(250); + if (lookahead == '*') ADVANCE(355); + if (lookahead == '/') ADVANCE(17); + if (lookahead == '0') ADVANCE(377); + if (lookahead == ':') ADVANCE(30); + if (lookahead == 'a') ADVANCE(399); + if (lookahead == 'b') ADVANCE(498); + if (lookahead == 'c') ADVANCE(480); + if (lookahead == 'e') ADVANCE(468); + if (lookahead == 'f') ADVANCE(383); + if (lookahead == 'i') ADVANCE(443); + if (lookahead == 'l') ADVANCE(486); + if (lookahead == 'm') ADVANCE(489); + if (lookahead == 'r') ADVANCE(437); + if (lookahead == 's') ADVANCE(492); + if (lookahead == 't') ADVANCE(483); + if (lookahead == 'w') ADVANCE(446); + if (lookahead == 'x') ADVANCE(380); + if (lookahead == '{') ADVANCE(224); + if (lookahead == '|') ADVANCE(325); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(5) + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(378); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('d' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 6: + if (lookahead == '!') ADVANCE(358); + if (lookahead == '&') ADVANCE(313); + if (lookahead == '(') ADVANCE(250); + if (lookahead == '*') ADVANCE(355); + if (lookahead == '/') ADVANCE(17); + if (lookahead == '0') ADVANCE(377); + if (lookahead == ':') ADVANCE(30); + if (lookahead == 'a') ADVANCE(399); + if (lookahead == 'b') ADVANCE(498); + if (lookahead == 'c') ADVANCE(480); + if (lookahead == 'f') ADVANCE(383); + if (lookahead == 'i') ADVANCE(443); + if (lookahead == 'l') ADVANCE(416); + if (lookahead == 'm') ADVANCE(489); + if (lookahead == 'r') ADVANCE(437); + if (lookahead == 's') ADVANCE(492); + if (lookahead == 't') ADVANCE(497); + if (lookahead == 'w') ADVANCE(446); + if (lookahead == 'x') ADVANCE(380); + if (lookahead == '{') ADVANCE(224); + if (lookahead == '|') ADVANCE(325); + if (lookahead == '}') ADVANCE(225); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(6) + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(378); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('d' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 7: + if (lookahead == '!') ADVANCE(358); + if (lookahead == '&') ADVANCE(313); + if (lookahead == '(') ADVANCE(250); + if (lookahead == '*') ADVANCE(355); + if (lookahead == '/') ADVANCE(17); + if (lookahead == '0') ADVANCE(377); + if (lookahead == ':') ADVANCE(30); + if (lookahead == 'a') ADVANCE(399); + if (lookahead == 'b') ADVANCE(498); + if (lookahead == 'c') ADVANCE(480); + if (lookahead == 'f') ADVANCE(383); + if (lookahead == 'i') ADVANCE(443); + if (lookahead == 'l') ADVANCE(486); + if (lookahead == 'm') ADVANCE(489); + if (lookahead == 'p') ADVANCE(388); + if (lookahead == 'r') ADVANCE(437); + if (lookahead == 's') ADVANCE(492); + if (lookahead == 't') ADVANCE(497); + if (lookahead == 'u') ADVANCE(474); + if (lookahead == 'w') ADVANCE(446); + if (lookahead == 'x') ADVANCE(380); + if (lookahead == '{') ADVANCE(224); + if (lookahead == '|') ADVANCE(325); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(7) + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(378); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('d' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 8: + if (lookahead == '!') ADVANCE(358); + if (lookahead == '&') ADVANCE(313); + if (lookahead == '(') ADVANCE(250); + if (lookahead == '*') ADVANCE(355); + if (lookahead == '/') ADVANCE(17); + if (lookahead == '0') ADVANCE(377); + if (lookahead == ':') ADVANCE(30); + if (lookahead == 'a') ADVANCE(399); + if (lookahead == 'b') ADVANCE(498); + if (lookahead == 'c') ADVANCE(480); + if (lookahead == 'f') ADVANCE(383); + if (lookahead == 'i') ADVANCE(443); + if (lookahead == 'l') ADVANCE(486); + if (lookahead == 'm') ADVANCE(489); + if (lookahead == 'r') ADVANCE(437); + if (lookahead == 's') ADVANCE(492); + if (lookahead == 't') ADVANCE(483); + if (lookahead == 'w') ADVANCE(446); + if (lookahead == 'x') ADVANCE(380); + if (lookahead == '{') ADVANCE(224); + if (lookahead == '|') ADVANCE(325); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(8) + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(378); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('d' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 9: + if (lookahead == '!') ADVANCE(358); + if (lookahead == '&') ADVANCE(313); + if (lookahead == '(') ADVANCE(250); + if (lookahead == '*') ADVANCE(355); + if (lookahead == '/') ADVANCE(17); + if (lookahead == '0') ADVANCE(377); + if (lookahead == ':') ADVANCE(30); + if (lookahead == 'b') ADVANCE(498); + if (lookahead == 'c') ADVANCE(480); + if (lookahead == 'f') ADVANCE(383); + if (lookahead == 'm') ADVANCE(489); + if (lookahead == 's') ADVANCE(492); + if (lookahead == 't') ADVANCE(497); + if (lookahead == 'x') ADVANCE(380); + if (lookahead == '{') ADVANCE(224); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(9) + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(378); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 10: + if (lookahead == '!') ADVANCE(31); + if (lookahead == '%') ADVANCE(357); + if (lookahead == '&') ADVANCE(311); + if (lookahead == '(') ADVANCE(250); + if (lookahead == ')') ADVANCE(251); + if (lookahead == '*') ADVANCE(355); + if (lookahead == '+') ADVANCE(353); + if (lookahead == ',') ADVANCE(231); + if (lookahead == '-') ADVANCE(354); + if (lookahead == '.') ADVANCE(368); + if (lookahead == '/') ADVANCE(356); + if (lookahead == ':') ADVANCE(240); + if (lookahead == ';') ADVANCE(232); + if (lookahead == '<') ADVANCE(322); + if (lookahead == '=') ADVANCE(304); + if (lookahead == '>') ADVANCE(324); + if (lookahead == '[') ADVANCE(369); + if (lookahead == ']') ADVANCE(370); + if (lookahead == '^') ADVANCE(350); + if (lookahead == 'a') ADVANCE(55); + if (lookahead == 'e') ADVANCE(119); + if (lookahead == 't') ADVANCE(146); + if (lookahead == '{') ADVANCE(224); + if (lookahead == '|') ADVANCE(326); + if (lookahead == '}') ADVANCE(225); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(10) + END_STATE(); + case 11: + if (lookahead == '!') ADVANCE(31); + if (lookahead == '%') ADVANCE(357); + if (lookahead == '&') ADVANCE(311); + if (lookahead == '(') ADVANCE(250); + if (lookahead == ')') ADVANCE(251); + if (lookahead == '*') ADVANCE(355); + if (lookahead == '+') ADVANCE(353); + if (lookahead == ',') ADVANCE(231); + if (lookahead == '-') ADVANCE(354); + if (lookahead == '.') ADVANCE(368); + if (lookahead == '/') ADVANCE(356); + if (lookahead == ':') ADVANCE(239); + if (lookahead == ';') ADVANCE(232); + if (lookahead == '<') ADVANCE(322); + if (lookahead == '=') ADVANCE(304); + if (lookahead == '>') ADVANCE(324); + if (lookahead == '[') ADVANCE(369); + if (lookahead == ']') ADVANCE(370); + if (lookahead == '^') ADVANCE(350); + if (lookahead == 'a') ADVANCE(55); + if (lookahead == 'c') ADVANCE(152); + if (lookahead == 'e') ADVANCE(121); + if (lookahead == 'f') ADVANCE(200); + if (lookahead == 'n') ADVANCE(38); + if (lookahead == 'p') ADVANCE(201); + if (lookahead == 'r') ADVANCE(98); + if (lookahead == 's') ADVANCE(156); + if (lookahead == 't') ADVANCE(146); + if (lookahead == 'u') ADVANCE(184); + if (lookahead == '{') ADVANCE(224); + if (lookahead == '|') ADVANCE(326); + if (lookahead == '}') ADVANCE(225); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(11) + END_STATE(); + case 12: + if (lookahead == '"') ADVANCE(13); + END_STATE(); + case 13: + if (lookahead == '"') ADVANCE(379); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(13); + END_STATE(); + case 14: + if (lookahead == '&') ADVANCE(313); + if (lookahead == '(') ADVANCE(250); + if (lookahead == ')') ADVANCE(251); + if (lookahead == '/') ADVANCE(17); + if (lookahead == '0') ADVANCE(214); + if (lookahead == ':') ADVANCE(30); + if (lookahead == ';') ADVANCE(232); + if (lookahead == '>') ADVANCE(323); + if (lookahead == '{') ADVANCE(224); + if (lookahead == '|') ADVANCE(325); + if (lookahead == '}') ADVANCE(225); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(14) + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 15: + if (lookahead == ')') ADVANCE(251); + if (lookahead == ',') ADVANCE(231); + if (lookahead == '/') ADVANCE(17); + if (lookahead == ':') ADVANCE(239); + if (lookahead == ';') ADVANCE(232); + if (lookahead == '=') ADVANCE(303); + if (lookahead == '>') ADVANCE(323); + if (lookahead == 'a') ADVANCE(400); + if (lookahead == 'd') ADVANCE(430); + if (lookahead == 'e') ADVANCE(475); + if (lookahead == 'g') ADVANCE(464); + if (lookahead == 'i') ADVANCE(473); + if (lookahead == 'l') ADVANCE(487); + if (lookahead == 'n') ADVANCE(387); + if (lookahead == 'p') ADVANCE(503); + if (lookahead == 'r') ADVANCE(431); + if (lookahead == 'u') ADVANCE(519); + if (lookahead == '|') ADVANCE(325); + if (lookahead == '}') ADVANCE(225); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(15) + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 16: + if (lookahead == ')') ADVANCE(251); + if (lookahead == ',') ADVANCE(231); + if (lookahead == '/') ADVANCE(17); + if (lookahead == ';') ADVANCE(232); + if (lookahead == '=') ADVANCE(303); + if (lookahead == '>') ADVANCE(323); + if (lookahead == 'a') ADVANCE(54); + if (lookahead == '{') ADVANCE(224); + if (lookahead == '|') ADVANCE(325); + if (lookahead == '}') ADVANCE(225); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(16) + END_STATE(); + case 17: + if (lookahead == '/') ADVANCE(551); + END_STATE(); + case 18: + if (lookahead == '/') ADVANCE(17); + if (lookahead == ';') ADVANCE(232); + if (lookahead == 'e') ADVANCE(299); + if (lookahead == 'i') ADVANCE(292); + if (lookahead == 'p') ADVANCE(298); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(18) + if (lookahead == '*' || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(300); + END_STATE(); + case 19: + if (lookahead == '/') ADVANCE(17); + if (lookahead == ';') ADVANCE(232); + if (lookahead == 'i') ADVANCE(292); + if (lookahead == 'p') ADVANCE(298); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(19) + if (lookahead == '*' || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(300); + END_STATE(); + case 20: + if (lookahead == '/') ADVANCE(17); + if (lookahead == 'a') ADVANCE(400); + if (lookahead == 'd') ADVANCE(430); + if (lookahead == 'e') ADVANCE(475); + if (lookahead == 'g') ADVANCE(464); + if (lookahead == 'i') ADVANCE(473); + if (lookahead == 'l') ADVANCE(487); + if (lookahead == 'n') ADVANCE(387); + if (lookahead == 'p') ADVANCE(503); + if (lookahead == 'r') ADVANCE(431); + if (lookahead == '}') ADVANCE(225); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(20) + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 21: + if (lookahead == '/') ADVANCE(17); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(21) + if (lookahead == '*' || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(300); + END_STATE(); + case 22: + if (lookahead == '1') ADVANCE(24); + if (lookahead == '6') ADVANCE(27); + if (lookahead == '8') ADVANCE(315); + if (lookahead == 'n') ADVANCE(158); + if (lookahead == 'p') ADVANCE(70); + if (lookahead == 's') ADVANCE(73); + END_STATE(); + case 23: + if (lookahead == '1') ADVANCE(25); + if (lookahead == '6') ADVANCE(26); + if (lookahead == '8') ADVANCE(376); + END_STATE(); + case 24: + if (lookahead == '2') ADVANCE(29); + END_STATE(); + case 25: + if (lookahead == '2') ADVANCE(28); + END_STATE(); + case 26: + if (lookahead == '4') ADVANCE(376); + END_STATE(); + case 27: + if (lookahead == '4') ADVANCE(316); + END_STATE(); + case 28: + if (lookahead == '8') ADVANCE(376); + END_STATE(); + case 29: + if (lookahead == '8') ADVANCE(317); + END_STATE(); + case 30: + if (lookahead == ':') ADVANCE(230); + END_STATE(); + case 31: + if (lookahead == '=') ADVANCE(346); + END_STATE(); + case 32: + if (lookahead == 'a') ADVANCE(301); + END_STATE(); + case 33: + if (lookahead == 'a') ADVANCE(255); + END_STATE(); + case 34: + if (lookahead == 'a') ADVANCE(133); + if (lookahead == 'u') ADVANCE(136); + END_STATE(); + case 35: + if (lookahead == 'a') ADVANCE(57); + if (lookahead == 'r') ADVANCE(36); + if (lookahead == 'u') ADVANCE(51); + END_STATE(); + case 36: + if (lookahead == 'a') ADVANCE(103); + END_STATE(); + case 37: + if (lookahead == 'a') ADVANCE(117); + END_STATE(); + case 38: + if (lookahead == 'a') ADVANCE(196); + END_STATE(); + case 39: + if (lookahead == 'a') ADVANCE(217); + END_STATE(); + case 40: + if (lookahead == 'a') ADVANCE(60); + END_STATE(); + case 41: + if (lookahead == 'a') ADVANCE(138); + END_STATE(); + case 42: + if (lookahead == 'a') ADVANCE(168); + END_STATE(); + case 43: + if (lookahead == 'a') ADVANCE(123); + END_STATE(); + case 44: + if (lookahead == 'a') ADVANCE(170); + END_STATE(); + case 45: + if (lookahead == 'a') ADVANCE(124); + END_STATE(); + case 46: + if (lookahead == 'a') ADVANCE(125); + END_STATE(); + case 47: + if (lookahead == 'a') ADVANCE(198); + END_STATE(); + case 48: + if (lookahead == 'a') ADVANCE(53); + END_STATE(); + case 49: + if (lookahead == 'a') ADVANCE(188); + END_STATE(); + case 50: + if (lookahead == 'b') ADVANCE(149); + if (lookahead == 'c') ADVANCE(161); + if (lookahead == 'd') ADVANCE(67); + if (lookahead == 'p') ADVANCE(155); + if (lookahead == 's') ADVANCE(233); + END_STATE(); + case 51: + if (lookahead == 'b') ADVANCE(128); + END_STATE(); + case 52: + if (lookahead == 'b') ADVANCE(45); + END_STATE(); + case 53: + if (lookahead == 'b') ADVANCE(132); + END_STATE(); + case 54: + if (lookahead == 'c') ADVANCE(161); + END_STATE(); + case 55: + if (lookahead == 'c') ADVANCE(161); + if (lookahead == 's') ADVANCE(233); + END_STATE(); + case 56: + if (lookahead == 'c') ADVANCE(106); + if (lookahead == 'i') ADVANCE(104); + if (lookahead == 'p') ADVANCE(90); + if (lookahead == 't') ADVANCE(167); + END_STATE(); + case 57: + if (lookahead == 'c') ADVANCE(116); + END_STATE(); + case 58: + if (lookahead == 'c') ADVANCE(253); + END_STATE(); + case 59: + if (lookahead == 'c') ADVANCE(245); + END_STATE(); + case 60: + if (lookahead == 'c') ADVANCE(118); + END_STATE(); + case 61: + if (lookahead == 'c') ADVANCE(176); + if (lookahead == 'f') ADVANCE(112); + END_STATE(); + case 62: + if (lookahead == 'c') ADVANCE(129); + if (lookahead == 't') ADVANCE(93); + if (lookahead == 'v') ADVANCE(42); + END_STATE(); + case 63: + if (lookahead == 'c') ADVANCE(43); + if (lookahead == 'o') ADVANCE(154); + END_STATE(); + case 64: + if (lookahead == 'c') ADVANCE(91); + END_STATE(); + case 65: + if (lookahead == 'c') ADVANCE(194); + END_STATE(); + case 66: + if (lookahead == 'c') ADVANCE(85); + END_STATE(); + case 67: + if (lookahead == 'd') ADVANCE(171); + END_STATE(); + case 68: + if (lookahead == 'd') ADVANCE(211); + if (lookahead == 'v') ADVANCE(75); + END_STATE(); + case 69: + if (lookahead == 'd') ADVANCE(83); + END_STATE(); + case 70: + if (lookahead == 'd') ADVANCE(47); + END_STATE(); + case 71: + if (lookahead == 'e') ADVANCE(61); + END_STATE(); + case 72: + if (lookahead == 'e') ADVANCE(162); + END_STATE(); + case 73: + if (lookahead == 'e') ADVANCE(228); + END_STATE(); + case 74: + if (lookahead == 'e') ADVANCE(332); + END_STATE(); + case 75: + if (lookahead == 'e') ADVANCE(360); + END_STATE(); + case 76: + if (lookahead == 'e') ADVANCE(372); + END_STATE(); + case 77: + if (lookahead == 'e') ADVANCE(374); + END_STATE(); + case 78: + if (lookahead == 'e') ADVANCE(334); + END_STATE(); + case 79: + if (lookahead == 'e') ADVANCE(309); + END_STATE(); + case 80: + if (lookahead == 'e') ADVANCE(235); + END_STATE(); + case 81: + if (lookahead == 'e') ADVANCE(237); + END_STATE(); + case 82: + if (lookahead == 'e') ADVANCE(267); + END_STATE(); + case 83: + if (lookahead == 'e') ADVANCE(273); + END_STATE(); + case 84: + if (lookahead == 'e') ADVANCE(366); + END_STATE(); + case 85: + if (lookahead == 'e') ADVANCE(241); + END_STATE(); + case 86: + if (lookahead == 'e') ADVANCE(327); + END_STATE(); + case 87: + if (lookahead == 'e') ADVANCE(189); + if (lookahead == 'o') ADVANCE(63); + END_STATE(); + case 88: + if (lookahead == 'e') ADVANCE(37); + END_STATE(); + case 89: + if (lookahead == 'e') ADVANCE(183); + END_STATE(); + case 90: + if (lookahead == 'e') ADVANCE(58); + END_STATE(); + case 91: + if (lookahead == 'e') ADVANCE(159); + END_STATE(); + case 92: + if (lookahead == 'e') ADVANCE(178); + END_STATE(); + case 93: + if (lookahead == 'e') ADVANCE(164); + END_STATE(); + case 94: + if (lookahead == 'e') ADVANCE(179); + END_STATE(); + case 95: + if (lookahead == 'e') ADVANCE(49); + END_STATE(); + case 96: + if (lookahead == 'e') ADVANCE(180); + END_STATE(); + case 97: + if (lookahead == 'e') ADVANCE(181); + END_STATE(); + case 98: + if (lookahead == 'e') ADVANCE(185); + END_STATE(); + case 99: + if (lookahead == 'e') ADVANCE(163); + END_STATE(); + case 100: + if (lookahead == 'e') ADVANCE(135); + END_STATE(); + case 101: + if (lookahead == 'e') ADVANCE(44); + END_STATE(); + case 102: + if (lookahead == 'f') ADVANCE(330); + if (lookahead == 'n') ADVANCE(62); + END_STATE(); + case 103: + if (lookahead == 'g') ADVANCE(134); + END_STATE(); + case 104: + if (lookahead == 'g') ADVANCE(139); + END_STATE(); + case 105: + if (lookahead == 'h') ADVANCE(110); + END_STATE(); + case 106: + if (lookahead == 'h') ADVANCE(100); + if (lookahead == 'r') ADVANCE(113); + END_STATE(); + case 107: + if (lookahead == 'i') ADVANCE(213); + END_STATE(); + case 108: + if (lookahead == 'i') ADVANCE(141); + END_STATE(); + case 109: + if (lookahead == 'i') ADVANCE(59); + END_STATE(); + case 110: + if (lookahead == 'i') ADVANCE(130); + END_STATE(); + case 111: + if (lookahead == 'i') ADVANCE(41); + END_STATE(); + case 112: + if (lookahead == 'i') ADVANCE(140); + END_STATE(); + case 113: + if (lookahead == 'i') ADVANCE(160); + END_STATE(); + case 114: + if (lookahead == 'i') ADVANCE(173); + END_STATE(); + case 115: + if (lookahead == 'i') ADVANCE(174); + END_STATE(); + case 116: + if (lookahead == 'k') ADVANCE(269); + END_STATE(); + case 117: + if (lookahead == 'k') ADVANCE(364); + END_STATE(); + case 118: + if (lookahead == 'k') ADVANCE(271); + END_STATE(); + case 119: + if (lookahead == 'l') ADVANCE(186); + END_STATE(); + case 120: + if (lookahead == 'l') ADVANCE(186); + if (lookahead == 'n') ADVANCE(182); + if (lookahead == 'x') ADVANCE(64); + END_STATE(); + case 121: + if (lookahead == 'l') ADVANCE(186); + if (lookahead == 'x') ADVANCE(64); + END_STATE(); + case 122: + if (lookahead == 'l') ADVANCE(318); + END_STATE(); + case 123: + if (lookahead == 'l') ADVANCE(307); + END_STATE(); + case 124: + if (lookahead == 'l') ADVANCE(305); + END_STATE(); + case 125: + if (lookahead == 'l') ADVANCE(281); + END_STATE(); + case 126: + if (lookahead == 'l') ADVANCE(216); + END_STATE(); + case 127: + if (lookahead == 'l') ADVANCE(148); + END_STATE(); + case 128: + if (lookahead == 'l') ADVANCE(109); + END_STATE(); + case 129: + if (lookahead == 'l') ADVANCE(202); + END_STATE(); + case 130: + if (lookahead == 'l') ADVANCE(78); + END_STATE(); + case 131: + if (lookahead == 'l') ADVANCE(80); + END_STATE(); + case 132: + if (lookahead == 'l') ADVANCE(86); + END_STATE(); + case 133: + if (lookahead == 'l') ADVANCE(187); + END_STATE(); + case 134: + if (lookahead == 'm') ADVANCE(32); + END_STATE(); + case 135: + if (lookahead == 'm') ADVANCE(33); + END_STATE(); + case 136: + if (lookahead == 'n') ADVANCE(248); + END_STATE(); + case 137: + if (lookahead == 'n') ADVANCE(338); + END_STATE(); + case 138: + if (lookahead == 'n') ADVANCE(195); + END_STATE(); + case 139: + if (lookahead == 'n') ADVANCE(99); + END_STATE(); + case 140: + if (lookahead == 'n') ADVANCE(79); + END_STATE(); + case 141: + if (lookahead == 'n') ADVANCE(209); + END_STATE(); + case 142: + if (lookahead == 'n') ADVANCE(197); + if (lookahead == 'p') ADVANCE(215); + END_STATE(); + case 143: + if (lookahead == 'n') ADVANCE(46); + END_STATE(); + case 144: + if (lookahead == 'o') ADVANCE(142); + END_STATE(); + case 145: + if (lookahead == 'o') ADVANCE(68); + END_STATE(); + case 146: + if (lookahead == 'o') ADVANCE(277); + END_STATE(); + case 147: + if (lookahead == 'o') ADVANCE(277); + if (lookahead == 'r') ADVANCE(208); + END_STATE(); + case 148: + if (lookahead == 'o') ADVANCE(52); + END_STATE(); + case 149: + if (lookahead == 'o') ADVANCE(165); + END_STATE(); + case 150: + if (lookahead == 'o') ADVANCE(151); + if (lookahead == 'r') ADVANCE(88); + if (lookahead == 'y') ADVANCE(199); + END_STATE(); + case 151: + if (lookahead == 'o') ADVANCE(122); + END_STATE(); + case 152: + if (lookahead == 'o') ADVANCE(157); + END_STATE(); + case 153: + if (lookahead == 'o') ADVANCE(207); + END_STATE(); + case 154: + if (lookahead == 'p') ADVANCE(336); + END_STATE(); + case 155: + if (lookahead == 'p') ADVANCE(126); + END_STATE(); + case 156: + if (lookahead == 'p') ADVANCE(90); + if (lookahead == 't') ADVANCE(167); + END_STATE(); + case 157: + if (lookahead == 'p') ADVANCE(218); + END_STATE(); + case 158: + if (lookahead == 'p') ADVANCE(40); + END_STATE(); + case 159: + if (lookahead == 'p') ADVANCE(192); + END_STATE(); + case 160: + if (lookahead == 'p') ADVANCE(193); + END_STATE(); + case 161: + if (lookahead == 'q') ADVANCE(205); + END_STATE(); + case 162: + if (lookahead == 'q') ADVANCE(212); + if (lookahead == 's') ADVANCE(153); + if (lookahead == 't') ADVANCE(206); + END_STATE(); + case 163: + if (lookahead == 'r') ADVANCE(319); + END_STATE(); + case 164: + if (lookahead == 'r') ADVANCE(143); + END_STATE(); + case 165: + if (lookahead == 'r') ADVANCE(191); + END_STATE(); + case 166: + if (lookahead == 'r') ADVANCE(137); + END_STATE(); + case 167: + if (lookahead == 'r') ADVANCE(204); + END_STATE(); + case 168: + if (lookahead == 'r') ADVANCE(111); + END_STATE(); + case 169: + if (lookahead == 'r') ADVANCE(39); + END_STATE(); + case 170: + if (lookahead == 'r') ADVANCE(169); + END_STATE(); + case 171: + if (lookahead == 'r') ADVANCE(89); + END_STATE(); + case 172: + if (lookahead == 'r') ADVANCE(92); + END_STATE(); + case 173: + if (lookahead == 'r') ADVANCE(94); + END_STATE(); + case 174: + if (lookahead == 'r') ADVANCE(96); + END_STATE(); + case 175: + if (lookahead == 'r') ADVANCE(66); + END_STATE(); + case 176: + if (lookahead == 'r') ADVANCE(95); + END_STATE(); + case 177: + if (lookahead == 's') ADVANCE(222); + END_STATE(); + case 178: + if (lookahead == 's') ADVANCE(261); + END_STATE(); + case 179: + if (lookahead == 's') ADVANCE(252); + END_STATE(); + case 180: + if (lookahead == 's') ADVANCE(263); + END_STATE(); + case 181: + if (lookahead == 's') ADVANCE(258); + END_STATE(); + case 182: + if (lookahead == 's') ADVANCE(210); + END_STATE(); + case 183: + if (lookahead == 's') ADVANCE(177); + END_STATE(); + case 184: + if (lookahead == 's') ADVANCE(73); + END_STATE(); + case 185: + if (lookahead == 's') ADVANCE(153); + END_STATE(); + case 186: + if (lookahead == 's') ADVANCE(74); + END_STATE(); + case 187: + if (lookahead == 's') ADVANCE(77); + END_STATE(); + case 188: + if (lookahead == 's') ADVANCE(97); + END_STATE(); + case 189: + if (lookahead == 't') ADVANCE(328); + END_STATE(); + case 190: + if (lookahead == 't') ADVANCE(314); + END_STATE(); + case 191: + if (lookahead == 't') ADVANCE(340); + END_STATE(); + case 192: + if (lookahead == 't') ADVANCE(279); + END_STATE(); + case 193: + if (lookahead == 't') ADVANCE(226); + END_STATE(); + case 194: + if (lookahead == 't') ADVANCE(243); + END_STATE(); + case 195: + if (lookahead == 't') ADVANCE(265); + END_STATE(); + case 196: + if (lookahead == 't') ADVANCE(107); + END_STATE(); + case 197: + if (lookahead == 't') ADVANCE(108); + END_STATE(); + case 198: + if (lookahead == 't') ADVANCE(82); + END_STATE(); + case 199: + if (lookahead == 't') ADVANCE(101); + END_STATE(); + case 200: + if (lookahead == 'u') ADVANCE(136); + END_STATE(); + case 201: + if (lookahead == 'u') ADVANCE(51); + END_STATE(); + case 202: + if (lookahead == 'u') ADVANCE(69); + END_STATE(); + case 203: + if (lookahead == 'u') ADVANCE(190); + END_STATE(); + case 204: + if (lookahead == 'u') ADVANCE(65); + END_STATE(); + case 205: + if (lookahead == 'u') ADVANCE(114); + END_STATE(); + case 206: + if (lookahead == 'u') ADVANCE(166); + END_STATE(); + case 207: + if (lookahead == 'u') ADVANCE(175); + END_STATE(); + case 208: + if (lookahead == 'u') ADVANCE(76); + END_STATE(); + case 209: + if (lookahead == 'u') ADVANCE(84); + END_STATE(); + case 210: + if (lookahead == 'u') ADVANCE(172); + END_STATE(); + case 211: + if (lookahead == 'u') ADVANCE(131); + END_STATE(); + case 212: + if (lookahead == 'u') ADVANCE(115); + END_STATE(); + case 213: + if (lookahead == 'v') ADVANCE(81); + END_STATE(); + case 214: + if (lookahead == 'x') ADVANCE(219); + END_STATE(); + case 215: + if (lookahead == 'y') ADVANCE(362); + END_STATE(); + case 216: + if (lookahead == 'y') ADVANCE(275); + END_STATE(); + case 217: + if (lookahead == 'y') ADVANCE(320); + END_STATE(); + case 218: + if (lookahead == 'y') ADVANCE(48); + END_STATE(); + case 219: + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(371); + END_STATE(); + case 220: + if (eof) ADVANCE(221); + if (lookahead == '!') ADVANCE(358); + if (lookahead == '&') ADVANCE(313); + if (lookahead == '(') ADVANCE(250); + if (lookahead == ')') ADVANCE(251); + if (lookahead == '*') ADVANCE(355); + if (lookahead == ',') ADVANCE(231); + if (lookahead == '/') ADVANCE(17); + if (lookahead == '0') ADVANCE(377); + if (lookahead == ':') ADVANCE(240); + if (lookahead == ';') ADVANCE(232); + if (lookahead == '<') ADVANCE(321); + if (lookahead == '=') ADVANCE(303); + if (lookahead == '>') ADVANCE(323); + if (lookahead == 'a') ADVANCE(397); + if (lookahead == 'b') ADVANCE(498); + if (lookahead == 'c') ADVANCE(480); + if (lookahead == 'f') ADVANCE(382); + if (lookahead == 'i') ADVANCE(443); + if (lookahead == 'l') ADVANCE(416); + if (lookahead == 'm') ADVANCE(481); + if (lookahead == 'n') ADVANCE(387); + if (lookahead == 'p') ADVANCE(536); + if (lookahead == 'r') ADVANCE(417); + if (lookahead == 's') ADVANCE(405); + if (lookahead == 't') ADVANCE(497); + if (lookahead == 'u') ADVANCE(519); + if (lookahead == 'w') ADVANCE(446); + if (lookahead == 'x') ADVANCE(380); + if (lookahead == '{') ADVANCE(224); + if (lookahead == '|') ADVANCE(325); + if (lookahead == '}') ADVANCE(225); + if (lookahead == '\t' || + lookahead == '\n' || + lookahead == '\r' || + lookahead == ' ') SKIP(220) + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(378); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('d' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 221: + ACCEPT_TOKEN(ts_builtin_sym_end); + END_STATE(); + case 222: + ACCEPT_TOKEN(anon_sym_address); + END_STATE(); + case 223: + ACCEPT_TOKEN(anon_sym_address); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 224: + ACCEPT_TOKEN(anon_sym_LBRACE); + END_STATE(); + case 225: + ACCEPT_TOKEN(anon_sym_RBRACE); + END_STATE(); + case 226: + ACCEPT_TOKEN(anon_sym_script); + END_STATE(); + case 227: + ACCEPT_TOKEN(anon_sym_script); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 228: + ACCEPT_TOKEN(anon_sym_use); + END_STATE(); + case 229: + ACCEPT_TOKEN(anon_sym_use); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 230: + ACCEPT_TOKEN(anon_sym_COLON_COLON); + END_STATE(); + case 231: + ACCEPT_TOKEN(anon_sym_COMMA); + END_STATE(); + case 232: + ACCEPT_TOKEN(anon_sym_SEMI); + END_STATE(); + case 233: + ACCEPT_TOKEN(anon_sym_as); + END_STATE(); + case 234: + ACCEPT_TOKEN(anon_sym_as); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 235: + ACCEPT_TOKEN(anon_sym_module); + END_STATE(); + case 236: + ACCEPT_TOKEN(anon_sym_module); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 237: + ACCEPT_TOKEN(anon_sym_native); + END_STATE(); + case 238: + ACCEPT_TOKEN(anon_sym_native); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 239: + ACCEPT_TOKEN(anon_sym_COLON); + END_STATE(); + case 240: + ACCEPT_TOKEN(anon_sym_COLON); + if (lookahead == ':') ADVANCE(230); + END_STATE(); + case 241: + ACCEPT_TOKEN(anon_sym_resource); + END_STATE(); + case 242: + ACCEPT_TOKEN(anon_sym_resource); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 243: + ACCEPT_TOKEN(anon_sym_struct); + END_STATE(); + case 244: + ACCEPT_TOKEN(anon_sym_struct); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 245: + ACCEPT_TOKEN(anon_sym_public); + END_STATE(); + case 246: + ACCEPT_TOKEN(anon_sym_public); + if (lookahead == '*' || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(300); + END_STATE(); + case 247: + ACCEPT_TOKEN(anon_sym_public); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 248: + ACCEPT_TOKEN(anon_sym_fun); + END_STATE(); + case 249: + ACCEPT_TOKEN(anon_sym_fun); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 250: + ACCEPT_TOKEN(anon_sym_LPAREN); + END_STATE(); + case 251: + ACCEPT_TOKEN(anon_sym_RPAREN); + END_STATE(); + case 252: + ACCEPT_TOKEN(anon_sym_acquires); + END_STATE(); + case 253: + ACCEPT_TOKEN(anon_sym_spec); + END_STATE(); + case 254: + ACCEPT_TOKEN(anon_sym_spec); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 255: + ACCEPT_TOKEN(anon_sym_schema); + END_STATE(); + case 256: + ACCEPT_TOKEN(anon_sym_assert); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 257: + ACCEPT_TOKEN(anon_sym_assume); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 258: + ACCEPT_TOKEN(anon_sym_decreases); + END_STATE(); + case 259: + ACCEPT_TOKEN(anon_sym_decreases); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 260: + ACCEPT_TOKEN(anon_sym_aborts_if); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 261: + ACCEPT_TOKEN(anon_sym_ensures); + END_STATE(); + case 262: + ACCEPT_TOKEN(anon_sym_ensures); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 263: + ACCEPT_TOKEN(anon_sym_requires); + END_STATE(); + case 264: + ACCEPT_TOKEN(anon_sym_requires); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 265: + ACCEPT_TOKEN(anon_sym_invariant); + END_STATE(); + case 266: + ACCEPT_TOKEN(anon_sym_invariant); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 267: + ACCEPT_TOKEN(anon_sym_update); + END_STATE(); + case 268: + ACCEPT_TOKEN(anon_sym_update); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 269: + ACCEPT_TOKEN(anon_sym_pack); + END_STATE(); + case 270: + ACCEPT_TOKEN(anon_sym_pack); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 271: + ACCEPT_TOKEN(anon_sym_unpack); + END_STATE(); + case 272: + ACCEPT_TOKEN(anon_sym_unpack); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 273: + ACCEPT_TOKEN(anon_sym_include); + END_STATE(); + case 274: + ACCEPT_TOKEN(anon_sym_include); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 275: + ACCEPT_TOKEN(anon_sym_apply); + END_STATE(); + case 276: + ACCEPT_TOKEN(anon_sym_apply); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 277: + ACCEPT_TOKEN(anon_sym_to); + END_STATE(); + case 278: + ACCEPT_TOKEN(anon_sym_to); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 279: + ACCEPT_TOKEN(anon_sym_except); + END_STATE(); + case 280: + ACCEPT_TOKEN(anon_sym_except); + if (lookahead == '*' || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(300); + END_STATE(); + case 281: + ACCEPT_TOKEN(anon_sym_internal); + END_STATE(); + case 282: + ACCEPT_TOKEN(anon_sym_internal); + if (lookahead == '*' || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(300); + END_STATE(); + case 283: + ACCEPT_TOKEN(sym_spec_apply_name_pattern); + if (lookahead == 'a') ADVANCE(291); + if (lookahead == '*' || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(300); + END_STATE(); + case 284: + ACCEPT_TOKEN(sym_spec_apply_name_pattern); + if (lookahead == 'b') ADVANCE(290); + if (lookahead == '*' || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(300); + END_STATE(); + case 285: + ACCEPT_TOKEN(sym_spec_apply_name_pattern); + if (lookahead == 'c') ADVANCE(287); + if (lookahead == '*' || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(300); + END_STATE(); + case 286: + ACCEPT_TOKEN(sym_spec_apply_name_pattern); + if (lookahead == 'c') ADVANCE(246); + if (lookahead == '*' || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(300); + END_STATE(); + case 287: + ACCEPT_TOKEN(sym_spec_apply_name_pattern); + if (lookahead == 'e') ADVANCE(294); + if (lookahead == '*' || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(300); + END_STATE(); + case 288: + ACCEPT_TOKEN(sym_spec_apply_name_pattern); + if (lookahead == 'e') ADVANCE(295); + if (lookahead == '*' || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(300); + END_STATE(); + case 289: + ACCEPT_TOKEN(sym_spec_apply_name_pattern); + if (lookahead == 'i') ADVANCE(286); + if (lookahead == '*' || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(300); + END_STATE(); + case 290: + ACCEPT_TOKEN(sym_spec_apply_name_pattern); + if (lookahead == 'l') ADVANCE(289); + if (lookahead == '*' || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(300); + END_STATE(); + case 291: + ACCEPT_TOKEN(sym_spec_apply_name_pattern); + if (lookahead == 'l') ADVANCE(282); + if (lookahead == '*' || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(300); + END_STATE(); + case 292: + ACCEPT_TOKEN(sym_spec_apply_name_pattern); + if (lookahead == 'n') ADVANCE(297); + if (lookahead == '*' || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(300); + END_STATE(); + case 293: + ACCEPT_TOKEN(sym_spec_apply_name_pattern); + if (lookahead == 'n') ADVANCE(283); + if (lookahead == '*' || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(300); + END_STATE(); + case 294: + ACCEPT_TOKEN(sym_spec_apply_name_pattern); + if (lookahead == 'p') ADVANCE(296); + if (lookahead == '*' || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(300); + END_STATE(); + case 295: + ACCEPT_TOKEN(sym_spec_apply_name_pattern); + if (lookahead == 'r') ADVANCE(293); + if (lookahead == '*' || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(300); + END_STATE(); + case 296: + ACCEPT_TOKEN(sym_spec_apply_name_pattern); + if (lookahead == 't') ADVANCE(280); + if (lookahead == '*' || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(300); + END_STATE(); + case 297: + ACCEPT_TOKEN(sym_spec_apply_name_pattern); + if (lookahead == 't') ADVANCE(288); + if (lookahead == '*' || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(300); + END_STATE(); + case 298: + ACCEPT_TOKEN(sym_spec_apply_name_pattern); + if (lookahead == 'u') ADVANCE(284); + if (lookahead == '*' || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(300); + END_STATE(); + case 299: + ACCEPT_TOKEN(sym_spec_apply_name_pattern); + if (lookahead == 'x') ADVANCE(285); + if (lookahead == '*' || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(300); + END_STATE(); + case 300: + ACCEPT_TOKEN(sym_spec_apply_name_pattern); + if (lookahead == '*' || + ('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(300); + END_STATE(); + case 301: + ACCEPT_TOKEN(anon_sym_pragma); + END_STATE(); + case 302: + ACCEPT_TOKEN(anon_sym_pragma); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 303: + ACCEPT_TOKEN(anon_sym_EQ); + END_STATE(); + case 304: + ACCEPT_TOKEN(anon_sym_EQ); + if (lookahead == '=') ADVANCE(345); + END_STATE(); + case 305: + ACCEPT_TOKEN(anon_sym_global); + END_STATE(); + case 306: + ACCEPT_TOKEN(anon_sym_global); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 307: + ACCEPT_TOKEN(anon_sym_local); + END_STATE(); + case 308: + ACCEPT_TOKEN(anon_sym_local); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 309: + ACCEPT_TOKEN(anon_sym_define); + END_STATE(); + case 310: + ACCEPT_TOKEN(anon_sym_define); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 311: + ACCEPT_TOKEN(anon_sym_AMP); + if (lookahead == '&') ADVANCE(344); + END_STATE(); + case 312: + ACCEPT_TOKEN(anon_sym_AMP); + if (lookahead == '&') ADVANCE(344); + if (lookahead == 'm') ADVANCE(203); + END_STATE(); + case 313: + ACCEPT_TOKEN(anon_sym_AMP); + if (lookahead == 'm') ADVANCE(203); + END_STATE(); + case 314: + ACCEPT_TOKEN(anon_sym_AMPmut); + END_STATE(); + case 315: + ACCEPT_TOKEN(anon_sym_u8); + END_STATE(); + case 316: + ACCEPT_TOKEN(anon_sym_u64); + END_STATE(); + case 317: + ACCEPT_TOKEN(anon_sym_u128); + END_STATE(); + case 318: + ACCEPT_TOKEN(anon_sym_bool); + END_STATE(); + case 319: + ACCEPT_TOKEN(anon_sym_signer); + END_STATE(); + case 320: + ACCEPT_TOKEN(anon_sym_bytearray); + END_STATE(); + case 321: + ACCEPT_TOKEN(anon_sym_LT); + END_STATE(); + case 322: + ACCEPT_TOKEN(anon_sym_LT); + if (lookahead == '<') ADVANCE(351); + if (lookahead == '=') ADVANCE(347); + END_STATE(); + case 323: + ACCEPT_TOKEN(anon_sym_GT); + END_STATE(); + case 324: + ACCEPT_TOKEN(anon_sym_GT); + if (lookahead == '=') ADVANCE(348); + if (lookahead == '>') ADVANCE(352); + END_STATE(); + case 325: + ACCEPT_TOKEN(anon_sym_PIPE); + END_STATE(); + case 326: + ACCEPT_TOKEN(anon_sym_PIPE); + if (lookahead == '|') ADVANCE(343); + END_STATE(); + case 327: + ACCEPT_TOKEN(anon_sym_copyable); + END_STATE(); + case 328: + ACCEPT_TOKEN(anon_sym_let); + END_STATE(); + case 329: + ACCEPT_TOKEN(anon_sym_let); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 330: + ACCEPT_TOKEN(anon_sym_if); + END_STATE(); + case 331: + ACCEPT_TOKEN(anon_sym_if); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 332: + ACCEPT_TOKEN(anon_sym_else); + END_STATE(); + case 333: + ACCEPT_TOKEN(anon_sym_else); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 334: + ACCEPT_TOKEN(anon_sym_while); + END_STATE(); + case 335: + ACCEPT_TOKEN(anon_sym_while); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 336: + ACCEPT_TOKEN(anon_sym_loop); + END_STATE(); + case 337: + ACCEPT_TOKEN(anon_sym_loop); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 338: + ACCEPT_TOKEN(anon_sym_return); + END_STATE(); + case 339: + ACCEPT_TOKEN(anon_sym_return); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 340: + ACCEPT_TOKEN(anon_sym_abort); + END_STATE(); + case 341: + ACCEPT_TOKEN(anon_sym_abort); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 342: + ACCEPT_TOKEN(anon_sym_EQ_EQ_GT); + END_STATE(); + case 343: + ACCEPT_TOKEN(anon_sym_PIPE_PIPE); + END_STATE(); + case 344: + ACCEPT_TOKEN(anon_sym_AMP_AMP); + END_STATE(); + case 345: + ACCEPT_TOKEN(anon_sym_EQ_EQ); + if (lookahead == '>') ADVANCE(342); + END_STATE(); + case 346: + ACCEPT_TOKEN(anon_sym_BANG_EQ); + END_STATE(); + case 347: + ACCEPT_TOKEN(anon_sym_LT_EQ); + END_STATE(); + case 348: + ACCEPT_TOKEN(anon_sym_GT_EQ); + END_STATE(); + case 349: + ACCEPT_TOKEN(anon_sym_DOT_DOT); + END_STATE(); + case 350: + ACCEPT_TOKEN(anon_sym_CARET); + END_STATE(); + case 351: + ACCEPT_TOKEN(anon_sym_LT_LT); + END_STATE(); + case 352: + ACCEPT_TOKEN(anon_sym_GT_GT); + END_STATE(); + case 353: + ACCEPT_TOKEN(anon_sym_PLUS); + END_STATE(); + case 354: + ACCEPT_TOKEN(anon_sym_DASH); + END_STATE(); + case 355: + ACCEPT_TOKEN(anon_sym_STAR); + END_STATE(); + case 356: + ACCEPT_TOKEN(anon_sym_SLASH); + if (lookahead == '/') ADVANCE(551); + END_STATE(); + case 357: + ACCEPT_TOKEN(anon_sym_PERCENT); + END_STATE(); + case 358: + ACCEPT_TOKEN(anon_sym_BANG); + END_STATE(); + case 359: + ACCEPT_TOKEN(anon_sym_BANG); + if (lookahead == '=') ADVANCE(346); + END_STATE(); + case 360: + ACCEPT_TOKEN(anon_sym_move); + END_STATE(); + case 361: + ACCEPT_TOKEN(anon_sym_move); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 362: + ACCEPT_TOKEN(anon_sym_copy); + END_STATE(); + case 363: + ACCEPT_TOKEN(anon_sym_copy); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 364: + ACCEPT_TOKEN(anon_sym_break); + END_STATE(); + case 365: + ACCEPT_TOKEN(anon_sym_break); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 366: + ACCEPT_TOKEN(anon_sym_continue); + END_STATE(); + case 367: + ACCEPT_TOKEN(anon_sym_continue); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 368: + ACCEPT_TOKEN(anon_sym_DOT); + if (lookahead == '.') ADVANCE(349); + END_STATE(); + case 369: + ACCEPT_TOKEN(anon_sym_LBRACK); + END_STATE(); + case 370: + ACCEPT_TOKEN(anon_sym_RBRACK); + END_STATE(); + case 371: + ACCEPT_TOKEN(sym_address_literal); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(371); + END_STATE(); + case 372: + ACCEPT_TOKEN(anon_sym_true); + END_STATE(); + case 373: + ACCEPT_TOKEN(anon_sym_true); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 374: + ACCEPT_TOKEN(anon_sym_false); + END_STATE(); + case 375: + ACCEPT_TOKEN(anon_sym_false); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 376: + ACCEPT_TOKEN(sym_num_literal); + END_STATE(); + case 377: + ACCEPT_TOKEN(sym_num_literal); + if (lookahead == 'u') ADVANCE(23); + if (lookahead == 'x') ADVANCE(219); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(378); + END_STATE(); + case 378: + ACCEPT_TOKEN(sym_num_literal); + if (lookahead == 'u') ADVANCE(23); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(378); + END_STATE(); + case 379: + ACCEPT_TOKEN(sym_byte_string_literal); + END_STATE(); + case 380: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == '"') ADVANCE(13); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 381: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == '_') ADVANCE(448); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 382: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'a') ADVANCE(467); + if (lookahead == 'u') ADVANCE(471); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 383: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'a') ADVANCE(467); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 384: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'a') ADVANCE(456); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 385: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'a') ADVANCE(445); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 386: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'a') ADVANCE(302); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 387: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'a') ADVANCE(531); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 388: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'a') ADVANCE(404); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 389: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'a') ADVANCE(406); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 390: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'a') ADVANCE(459); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 391: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'a') ADVANCE(476); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 392: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'a') ADVANCE(535); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 393: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'a') ADVANCE(460); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 394: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'a') ADVANCE(507); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 395: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'a') ADVANCE(524); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 396: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'b') ADVANCE(462); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 397: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'b') ADVANCE(485); + if (lookahead == 'd') ADVANCE(414); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 398: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'b') ADVANCE(485); + if (lookahead == 's') ADVANCE(234); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 399: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'b') ADVANCE(485); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 400: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'b') ADVANCE(488); + if (lookahead == 'p') ADVANCE(494); + if (lookahead == 's') ADVANCE(513); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 401: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'b') ADVANCE(393); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 402: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'c') ADVANCE(254); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 403: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'c') ADVANCE(247); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 404: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'c') ADVANCE(457); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 405: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'c') ADVANCE(501); + if (lookahead == 'p') ADVANCE(418); + if (lookahead == 't') ADVANCE(504); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 406: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'c') ADVANCE(458); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 407: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'c') ADVANCE(528); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 408: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'c') ADVANCE(463); + if (lookahead == 'v') ADVANCE(394); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 409: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'c') ADVANCE(390); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 410: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'c') ADVANCE(427); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 411: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'c') ADVANCE(509); + if (lookahead == 'f') ADVANCE(453); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 412: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'd') ADVANCE(544); + if (lookahead == 'v') ADVANCE(420); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 413: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'd') ADVANCE(434); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 414: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'd') ADVANCE(505); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 415: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'd') ADVANCE(392); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 416: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(525); + if (lookahead == 'o') ADVANCE(482); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 417: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(520); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 418: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(402); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 419: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(229); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 420: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(361); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 421: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(373); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 422: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(375); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 423: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(335); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 424: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(236); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 425: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(238); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 426: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(367); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 427: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(242); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 428: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(333); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 429: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(268); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 430: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(411); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 431: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(496); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 432: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(257); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 433: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(310); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 434: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(274); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 435: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(384); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 436: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(518); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 437: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(532); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 438: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(515); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 439: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(395); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 440: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(516); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 441: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(517); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 442: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'e') ADVANCE(508); + if (lookahead == 'u') ADVANCE(470); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 443: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'f') ADVANCE(331); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 444: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'f') ADVANCE(260); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 445: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'g') ADVANCE(469); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 446: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'h') ADVANCE(451); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 447: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'i') ADVANCE(547); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 448: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'i') ADVANCE(444); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 449: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'i') ADVANCE(478); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 450: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'i') ADVANCE(493); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 451: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'i') ADVANCE(465); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 452: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'i') ADVANCE(403); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 453: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'i') ADVANCE(477); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 454: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'i') ADVANCE(391); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 455: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'i') ADVANCE(511); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 456: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'k') ADVANCE(365); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 457: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'k') ADVANCE(270); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 458: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'k') ADVANCE(272); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 459: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'l') ADVANCE(308); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 460: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'l') ADVANCE(306); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 461: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'l') ADVANCE(549); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 462: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'l') ADVANCE(452); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 463: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'l') ADVANCE(538); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 464: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'l') ADVANCE(484); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 465: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'l') ADVANCE(423); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 466: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'l') ADVANCE(424); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 467: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'l') ADVANCE(522); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 468: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'l') ADVANCE(523); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 469: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'm') ADVANCE(386); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 470: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'm') ADVANCE(432); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 471: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'n') ADVANCE(249); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 472: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'n') ADVANCE(339); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 473: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'n') ADVANCE(408); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 474: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'n') ADVANCE(495); + if (lookahead == 'p') ADVANCE(415); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 475: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'n') ADVANCE(521); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 476: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'n') ADVANCE(530); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 477: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'n') ADVANCE(433); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 478: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'n') ADVANCE(543); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 479: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'n') ADVANCE(533); + if (lookahead == 'p') ADVANCE(548); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 480: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'o') ADVANCE(479); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 481: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'o') ADVANCE(412); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 482: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'o') ADVANCE(491); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 483: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'o') ADVANCE(278); + if (lookahead == 'r') ADVANCE(541); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 484: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'o') ADVANCE(401); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 485: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'o') ADVANCE(500); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 486: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'o') ADVANCE(482); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 487: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'o') ADVANCE(409); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 488: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'o') ADVANCE(506); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 489: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'o') ADVANCE(546); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 490: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'o') ADVANCE(540); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 491: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'p') ADVANCE(337); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 492: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'p') ADVANCE(418); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 493: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'p') ADVANCE(527); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 494: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'p') ADVANCE(461); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 495: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'p') ADVANCE(389); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 496: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'q') ADVANCE(542); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 497: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'r') ADVANCE(541); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 498: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'r') ADVANCE(435); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 499: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'r') ADVANCE(472); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 500: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'r') ADVANCE(526); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 501: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'r') ADVANCE(450); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 502: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'r') ADVANCE(410); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 503: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'r') ADVANCE(385); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 504: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'r') ADVANCE(537); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 505: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'r') ADVANCE(436); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 506: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'r') ADVANCE(534); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 507: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'r') ADVANCE(454); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 508: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'r') ADVANCE(529); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 509: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'r') ADVANCE(439); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 510: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'r') ADVANCE(438); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 511: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'r') ADVANCE(440); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 512: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 's') ADVANCE(223); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 513: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 's') ADVANCE(442); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 514: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 's') ADVANCE(381); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 515: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 's') ADVANCE(262); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 516: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 's') ADVANCE(264); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 517: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 's') ADVANCE(259); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 518: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 's') ADVANCE(512); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 519: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 's') ADVANCE(419); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 520: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 's') ADVANCE(490); + if (lookahead == 't') ADVANCE(539); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 521: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 's') ADVANCE(545); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 522: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 's') ADVANCE(422); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 523: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 's') ADVANCE(428); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 524: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 's') ADVANCE(441); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 525: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 't') ADVANCE(329); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 526: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 't') ADVANCE(341); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 527: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 't') ADVANCE(227); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 528: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 't') ADVANCE(244); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 529: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 't') ADVANCE(256); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 530: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 't') ADVANCE(266); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 531: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 't') ADVANCE(447); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 532: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 't') ADVANCE(539); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 533: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 't') ADVANCE(449); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 534: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 't') ADVANCE(514); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 535: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 't') ADVANCE(429); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 536: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'u') ADVANCE(396); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 537: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'u') ADVANCE(407); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 538: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'u') ADVANCE(413); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 539: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'u') ADVANCE(499); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 540: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'u') ADVANCE(502); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 541: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'u') ADVANCE(421); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 542: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'u') ADVANCE(455); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 543: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'u') ADVANCE(426); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 544: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'u') ADVANCE(466); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 545: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'u') ADVANCE(510); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 546: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'v') ADVANCE(420); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 547: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'v') ADVANCE(425); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 548: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'y') ADVANCE(363); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 549: + ACCEPT_TOKEN(sym_identifier); + if (lookahead == 'y') ADVANCE(276); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 550: + ACCEPT_TOKEN(sym_identifier); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(550); + END_STATE(); + case 551: + ACCEPT_TOKEN(sym_line_comment); + if (lookahead != 0 && + lookahead != '\n') ADVANCE(551); + END_STATE(); + default: + return false; + } +} + +static TSLexMode ts_lex_modes[STATE_COUNT] = { + [0] = {.lex_state = 0}, + [1] = {.lex_state = 220}, + [2] = {.lex_state = 220}, + [3] = {.lex_state = 220}, + [4] = {.lex_state = 3}, + [5] = {.lex_state = 1}, + [6] = {.lex_state = 6}, + [7] = {.lex_state = 6}, + [8] = {.lex_state = 6}, + [9] = {.lex_state = 6}, + [10] = {.lex_state = 6}, + [11] = {.lex_state = 4}, + [12] = {.lex_state = 6}, + [13] = {.lex_state = 6}, + [14] = {.lex_state = 2}, + [15] = {.lex_state = 7}, + [16] = {.lex_state = 4}, + [17] = {.lex_state = 4}, + [18] = {.lex_state = 4}, + [19] = {.lex_state = 5}, + [20] = {.lex_state = 8}, + [21] = {.lex_state = 4}, + [22] = {.lex_state = 4}, + [23] = {.lex_state = 4}, + [24] = {.lex_state = 4}, + [25] = {.lex_state = 4}, + [26] = {.lex_state = 4}, + [27] = {.lex_state = 4}, + [28] = {.lex_state = 4}, + [29] = {.lex_state = 4}, + [30] = {.lex_state = 4}, + [31] = {.lex_state = 4}, + [32] = {.lex_state = 4}, + [33] = {.lex_state = 4}, + [34] = {.lex_state = 4}, + [35] = {.lex_state = 4}, + [36] = {.lex_state = 4}, + [37] = {.lex_state = 4}, + [38] = {.lex_state = 4}, + [39] = {.lex_state = 4}, + [40] = {.lex_state = 4}, + [41] = {.lex_state = 4}, + [42] = {.lex_state = 4}, + [43] = {.lex_state = 4}, + [44] = {.lex_state = 4}, + [45] = {.lex_state = 4}, + [46] = {.lex_state = 4}, + [47] = {.lex_state = 4}, + [48] = {.lex_state = 4}, + [49] = {.lex_state = 4}, + [50] = {.lex_state = 4}, + [51] = {.lex_state = 4}, + [52] = {.lex_state = 4}, + [53] = {.lex_state = 4}, + [54] = {.lex_state = 4}, + [55] = {.lex_state = 4}, + [56] = {.lex_state = 4}, + [57] = {.lex_state = 4}, + [58] = {.lex_state = 4}, + [59] = {.lex_state = 4}, + [60] = {.lex_state = 4}, + [61] = {.lex_state = 4}, + [62] = {.lex_state = 4}, + [63] = {.lex_state = 4}, + [64] = {.lex_state = 4}, + [65] = {.lex_state = 4}, + [66] = {.lex_state = 4}, + [67] = {.lex_state = 4}, + [68] = {.lex_state = 4}, + [69] = {.lex_state = 4}, + [70] = {.lex_state = 4}, + [71] = {.lex_state = 4}, + [72] = {.lex_state = 4}, + [73] = {.lex_state = 4}, + [74] = {.lex_state = 4}, + [75] = {.lex_state = 4}, + [76] = {.lex_state = 4}, + [77] = {.lex_state = 4}, + [78] = {.lex_state = 4}, + [79] = {.lex_state = 4}, + [80] = {.lex_state = 4}, + [81] = {.lex_state = 4}, + [82] = {.lex_state = 4}, + [83] = {.lex_state = 4}, + [84] = {.lex_state = 4}, + [85] = {.lex_state = 4}, + [86] = {.lex_state = 4}, + [87] = {.lex_state = 9}, + [88] = {.lex_state = 9}, + [89] = {.lex_state = 9}, + [90] = {.lex_state = 9}, + [91] = {.lex_state = 9}, + [92] = {.lex_state = 9}, + [93] = {.lex_state = 9}, + [94] = {.lex_state = 9}, + [95] = {.lex_state = 9}, + [96] = {.lex_state = 9}, + [97] = {.lex_state = 9}, + [98] = {.lex_state = 9}, + [99] = {.lex_state = 9}, + [100] = {.lex_state = 9}, + [101] = {.lex_state = 9}, + [102] = {.lex_state = 9}, + [103] = {.lex_state = 11}, + [104] = {.lex_state = 11}, + [105] = {.lex_state = 11}, + [106] = {.lex_state = 11}, + [107] = {.lex_state = 11}, + [108] = {.lex_state = 11}, + [109] = {.lex_state = 11}, + [110] = {.lex_state = 11}, + [111] = {.lex_state = 11}, + [112] = {.lex_state = 11}, + [113] = {.lex_state = 11}, + [114] = {.lex_state = 10}, + [115] = {.lex_state = 220}, + [116] = {.lex_state = 220}, + [117] = {.lex_state = 220}, + [118] = {.lex_state = 220}, + [119] = {.lex_state = 220}, + [120] = {.lex_state = 220}, + [121] = {.lex_state = 11}, + [122] = {.lex_state = 220}, + [123] = {.lex_state = 220}, + [124] = {.lex_state = 11}, + [125] = {.lex_state = 11}, + [126] = {.lex_state = 11}, + [127] = {.lex_state = 220}, + [128] = {.lex_state = 11}, + [129] = {.lex_state = 220}, + [130] = {.lex_state = 220}, + [131] = {.lex_state = 11}, + [132] = {.lex_state = 220}, + [133] = {.lex_state = 220}, + [134] = {.lex_state = 220}, + [135] = {.lex_state = 220}, + [136] = {.lex_state = 220}, + [137] = {.lex_state = 220}, + [138] = {.lex_state = 220}, + [139] = {.lex_state = 11}, + [140] = {.lex_state = 220}, + [141] = {.lex_state = 220}, + [142] = {.lex_state = 220}, + [143] = {.lex_state = 220}, + [144] = {.lex_state = 220}, + [145] = {.lex_state = 220}, + [146] = {.lex_state = 220}, + [147] = {.lex_state = 11}, + [148] = {.lex_state = 10}, + [149] = {.lex_state = 11}, + [150] = {.lex_state = 11}, + [151] = {.lex_state = 11}, + [152] = {.lex_state = 11}, + [153] = {.lex_state = 11}, + [154] = {.lex_state = 11}, + [155] = {.lex_state = 11}, + [156] = {.lex_state = 11}, + [157] = {.lex_state = 11}, + [158] = {.lex_state = 11}, + [159] = {.lex_state = 11}, + [160] = {.lex_state = 11}, + [161] = {.lex_state = 11}, + [162] = {.lex_state = 11}, + [163] = {.lex_state = 11}, + [164] = {.lex_state = 11}, + [165] = {.lex_state = 11}, + [166] = {.lex_state = 11}, + [167] = {.lex_state = 11}, + [168] = {.lex_state = 11}, + [169] = {.lex_state = 11}, + [170] = {.lex_state = 15}, + [171] = {.lex_state = 11}, + [172] = {.lex_state = 11}, + [173] = {.lex_state = 11}, + [174] = {.lex_state = 11}, + [175] = {.lex_state = 11}, + [176] = {.lex_state = 15}, + [177] = {.lex_state = 11}, + [178] = {.lex_state = 11}, + [179] = {.lex_state = 11}, + [180] = {.lex_state = 11}, + [181] = {.lex_state = 11}, + [182] = {.lex_state = 11}, + [183] = {.lex_state = 11}, + [184] = {.lex_state = 11}, + [185] = {.lex_state = 11}, + [186] = {.lex_state = 11}, + [187] = {.lex_state = 11}, + [188] = {.lex_state = 11}, + [189] = {.lex_state = 11}, + [190] = {.lex_state = 11}, + [191] = {.lex_state = 20}, + [192] = {.lex_state = 20}, + [193] = {.lex_state = 20}, + [194] = {.lex_state = 11}, + [195] = {.lex_state = 6}, + [196] = {.lex_state = 11}, + [197] = {.lex_state = 11}, + [198] = {.lex_state = 11}, + [199] = {.lex_state = 4}, + [200] = {.lex_state = 4}, + [201] = {.lex_state = 4}, + [202] = {.lex_state = 4}, + [203] = {.lex_state = 11}, + [204] = {.lex_state = 11}, + [205] = {.lex_state = 11}, + [206] = {.lex_state = 0}, + [207] = {.lex_state = 15}, + [208] = {.lex_state = 0}, + [209] = {.lex_state = 0}, + [210] = {.lex_state = 0}, + [211] = {.lex_state = 0}, + [212] = {.lex_state = 9}, + [213] = {.lex_state = 15}, + [214] = {.lex_state = 14}, + [215] = {.lex_state = 14}, + [216] = {.lex_state = 15}, + [217] = {.lex_state = 14}, + [218] = {.lex_state = 15}, + [219] = {.lex_state = 15}, + [220] = {.lex_state = 14}, + [221] = {.lex_state = 15}, + [222] = {.lex_state = 14}, + [223] = {.lex_state = 14}, + [224] = {.lex_state = 14}, + [225] = {.lex_state = 14}, + [226] = {.lex_state = 14}, + [227] = {.lex_state = 14}, + [228] = {.lex_state = 14}, + [229] = {.lex_state = 15}, + [230] = {.lex_state = 20}, + [231] = {.lex_state = 14}, + [232] = {.lex_state = 14}, + [233] = {.lex_state = 14}, + [234] = {.lex_state = 14}, + [235] = {.lex_state = 20}, + [236] = {.lex_state = 14}, + [237] = {.lex_state = 14}, + [238] = {.lex_state = 20}, + [239] = {.lex_state = 20}, + [240] = {.lex_state = 20}, + [241] = {.lex_state = 14}, + [242] = {.lex_state = 14}, + [243] = {.lex_state = 14}, + [244] = {.lex_state = 14}, + [245] = {.lex_state = 20}, + [246] = {.lex_state = 20}, + [247] = {.lex_state = 20}, + [248] = {.lex_state = 20}, + [249] = {.lex_state = 20}, + [250] = {.lex_state = 14}, + [251] = {.lex_state = 14}, + [252] = {.lex_state = 20}, + [253] = {.lex_state = 20}, + [254] = {.lex_state = 20}, + [255] = {.lex_state = 20}, + [256] = {.lex_state = 20}, + [257] = {.lex_state = 14}, + [258] = {.lex_state = 14}, + [259] = {.lex_state = 20}, + [260] = {.lex_state = 14}, + [261] = {.lex_state = 14}, + [262] = {.lex_state = 20}, + [263] = {.lex_state = 20}, + [264] = {.lex_state = 14}, + [265] = {.lex_state = 14}, + [266] = {.lex_state = 14}, + [267] = {.lex_state = 20}, + [268] = {.lex_state = 20}, + [269] = {.lex_state = 20}, + [270] = {.lex_state = 20}, + [271] = {.lex_state = 20}, + [272] = {.lex_state = 14}, + [273] = {.lex_state = 14}, + [274] = {.lex_state = 14}, + [275] = {.lex_state = 14}, + [276] = {.lex_state = 14}, + [277] = {.lex_state = 14}, + [278] = {.lex_state = 14}, + [279] = {.lex_state = 14}, + [280] = {.lex_state = 14}, + [281] = {.lex_state = 14}, + [282] = {.lex_state = 14}, + [283] = {.lex_state = 220}, + [284] = {.lex_state = 16}, + [285] = {.lex_state = 11}, + [286] = {.lex_state = 16}, + [287] = {.lex_state = 16}, + [288] = {.lex_state = 16}, + [289] = {.lex_state = 11}, + [290] = {.lex_state = 14}, + [291] = {.lex_state = 11}, + [292] = {.lex_state = 11}, + [293] = {.lex_state = 16}, + [294] = {.lex_state = 11}, + [295] = {.lex_state = 16}, + [296] = {.lex_state = 11}, + [297] = {.lex_state = 0}, + [298] = {.lex_state = 11}, + [299] = {.lex_state = 0}, + [300] = {.lex_state = 0}, + [301] = {.lex_state = 0}, + [302] = {.lex_state = 0}, + [303] = {.lex_state = 0}, + [304] = {.lex_state = 0}, + [305] = {.lex_state = 0}, + [306] = {.lex_state = 0}, + [307] = {.lex_state = 14}, + [308] = {.lex_state = 0}, + [309] = {.lex_state = 0}, + [310] = {.lex_state = 14}, + [311] = {.lex_state = 0}, + [312] = {.lex_state = 0}, + [313] = {.lex_state = 0}, + [314] = {.lex_state = 15}, + [315] = {.lex_state = 14}, + [316] = {.lex_state = 15}, + [317] = {.lex_state = 15}, + [318] = {.lex_state = 0}, + [319] = {.lex_state = 15}, + [320] = {.lex_state = 14}, + [321] = {.lex_state = 14}, + [322] = {.lex_state = 15}, + [323] = {.lex_state = 0}, + [324] = {.lex_state = 15}, + [325] = {.lex_state = 0}, + [326] = {.lex_state = 18}, + [327] = {.lex_state = 14}, + [328] = {.lex_state = 0}, + [329] = {.lex_state = 0}, + [330] = {.lex_state = 14}, + [331] = {.lex_state = 11}, + [332] = {.lex_state = 0}, + [333] = {.lex_state = 11}, + [334] = {.lex_state = 11}, + [335] = {.lex_state = 0}, + [336] = {.lex_state = 0}, + [337] = {.lex_state = 18}, + [338] = {.lex_state = 0}, + [339] = {.lex_state = 14}, + [340] = {.lex_state = 11}, + [341] = {.lex_state = 11}, + [342] = {.lex_state = 11}, + [343] = {.lex_state = 0}, + [344] = {.lex_state = 0}, + [345] = {.lex_state = 0}, + [346] = {.lex_state = 14}, + [347] = {.lex_state = 14}, + [348] = {.lex_state = 14}, + [349] = {.lex_state = 0}, + [350] = {.lex_state = 14}, + [351] = {.lex_state = 11}, + [352] = {.lex_state = 14}, + [353] = {.lex_state = 14}, + [354] = {.lex_state = 19}, + [355] = {.lex_state = 14}, + [356] = {.lex_state = 11}, + [357] = {.lex_state = 19}, + [358] = {.lex_state = 11}, + [359] = {.lex_state = 14}, + [360] = {.lex_state = 14}, + [361] = {.lex_state = 220}, + [362] = {.lex_state = 19}, + [363] = {.lex_state = 14}, + [364] = {.lex_state = 14}, + [365] = {.lex_state = 14}, + [366] = {.lex_state = 14}, + [367] = {.lex_state = 11}, + [368] = {.lex_state = 19}, + [369] = {.lex_state = 220}, + [370] = {.lex_state = 14}, + [371] = {.lex_state = 14}, + [372] = {.lex_state = 0}, + [373] = {.lex_state = 220}, + [374] = {.lex_state = 11}, + [375] = {.lex_state = 0}, + [376] = {.lex_state = 0}, + [377] = {.lex_state = 11}, + [378] = {.lex_state = 0}, + [379] = {.lex_state = 220}, + [380] = {.lex_state = 0}, + [381] = {.lex_state = 0}, + [382] = {.lex_state = 0}, + [383] = {.lex_state = 11}, + [384] = {.lex_state = 14}, + [385] = {.lex_state = 19}, + [386] = {.lex_state = 19}, + [387] = {.lex_state = 0}, + [388] = {.lex_state = 0}, + [389] = {.lex_state = 14}, + [390] = {.lex_state = 14}, + [391] = {.lex_state = 14}, + [392] = {.lex_state = 19}, + [393] = {.lex_state = 0}, + [394] = {.lex_state = 0}, + [395] = {.lex_state = 0}, + [396] = {.lex_state = 220}, + [397] = {.lex_state = 0}, + [398] = {.lex_state = 11}, + [399] = {.lex_state = 0}, + [400] = {.lex_state = 0}, + [401] = {.lex_state = 0}, + [402] = {.lex_state = 0}, + [403] = {.lex_state = 0}, + [404] = {.lex_state = 19}, + [405] = {.lex_state = 0}, + [406] = {.lex_state = 0}, + [407] = {.lex_state = 0}, + [408] = {.lex_state = 0}, + [409] = {.lex_state = 19}, + [410] = {.lex_state = 11}, + [411] = {.lex_state = 0}, + [412] = {.lex_state = 11}, + [413] = {.lex_state = 11}, + [414] = {.lex_state = 0}, + [415] = {.lex_state = 0}, + [416] = {.lex_state = 11}, + [417] = {.lex_state = 0}, + [418] = {.lex_state = 0}, + [419] = {.lex_state = 0}, + [420] = {.lex_state = 220}, + [421] = {.lex_state = 220}, + [422] = {.lex_state = 0}, + [423] = {.lex_state = 15}, + [424] = {.lex_state = 220}, + [425] = {.lex_state = 15}, + [426] = {.lex_state = 220}, + [427] = {.lex_state = 220}, + [428] = {.lex_state = 0}, + [429] = {.lex_state = 0}, + [430] = {.lex_state = 220}, + [431] = {.lex_state = 11}, + [432] = {.lex_state = 14}, + [433] = {.lex_state = 0}, + [434] = {.lex_state = 0}, + [435] = {.lex_state = 14}, + [436] = {.lex_state = 0}, + [437] = {.lex_state = 11}, + [438] = {.lex_state = 0}, + [439] = {.lex_state = 220}, + [440] = {.lex_state = 14}, + [441] = {.lex_state = 14}, + [442] = {.lex_state = 0}, + [443] = {.lex_state = 0}, + [444] = {.lex_state = 14}, + [445] = {.lex_state = 0}, + [446] = {.lex_state = 14}, + [447] = {.lex_state = 0}, + [448] = {.lex_state = 0}, + [449] = {.lex_state = 0}, + [450] = {.lex_state = 0}, + [451] = {.lex_state = 14}, + [452] = {.lex_state = 14}, + [453] = {.lex_state = 220}, + [454] = {.lex_state = 11}, + [455] = {.lex_state = 220}, + [456] = {.lex_state = 220}, + [457] = {.lex_state = 0}, + [458] = {.lex_state = 0}, + [459] = {.lex_state = 14}, + [460] = {.lex_state = 0}, + [461] = {.lex_state = 0}, + [462] = {.lex_state = 0}, + [463] = {.lex_state = 0}, + [464] = {.lex_state = 0}, + [465] = {.lex_state = 220}, + [466] = {.lex_state = 14}, + [467] = {.lex_state = 11}, + [468] = {.lex_state = 220}, + [469] = {.lex_state = 0}, + [470] = {.lex_state = 0}, + [471] = {.lex_state = 0}, + [472] = {.lex_state = 14}, + [473] = {.lex_state = 0}, + [474] = {.lex_state = 14}, + [475] = {.lex_state = 0}, + [476] = {.lex_state = 0}, + [477] = {.lex_state = 14}, + [478] = {.lex_state = 0}, + [479] = {.lex_state = 0}, + [480] = {.lex_state = 220}, + [481] = {.lex_state = 0}, + [482] = {.lex_state = 220}, + [483] = {.lex_state = 0}, + [484] = {.lex_state = 220}, + [485] = {.lex_state = 0}, + [486] = {.lex_state = 0}, + [487] = {.lex_state = 0}, + [488] = {.lex_state = 0}, + [489] = {.lex_state = 0}, + [490] = {.lex_state = 14}, + [491] = {.lex_state = 0}, + [492] = {.lex_state = 0}, + [493] = {.lex_state = 14}, + [494] = {.lex_state = 14}, + [495] = {.lex_state = 0}, + [496] = {.lex_state = 220}, + [497] = {.lex_state = 14}, + [498] = {.lex_state = 0}, + [499] = {.lex_state = 0}, + [500] = {.lex_state = 0}, + [501] = {.lex_state = 0}, + [502] = {.lex_state = 0}, + [503] = {.lex_state = 0}, + [504] = {.lex_state = 0}, + [505] = {.lex_state = 0}, + [506] = {.lex_state = 0}, + [507] = {.lex_state = 220}, + [508] = {.lex_state = 0}, + [509] = {.lex_state = 0}, + [510] = {.lex_state = 0}, + [511] = {.lex_state = 0}, + [512] = {.lex_state = 14}, + [513] = {.lex_state = 0}, + [514] = {.lex_state = 0}, + [515] = {.lex_state = 14}, + [516] = {.lex_state = 0}, + [517] = {.lex_state = 0}, + [518] = {.lex_state = 0}, + [519] = {.lex_state = 0}, + [520] = {.lex_state = 0}, + [521] = {.lex_state = 0}, + [522] = {.lex_state = 14}, + [523] = {.lex_state = 0}, + [524] = {.lex_state = 0}, + [525] = {.lex_state = 0}, + [526] = {.lex_state = 0}, + [527] = {.lex_state = 0}, + [528] = {.lex_state = 14}, + [529] = {.lex_state = 0}, + [530] = {.lex_state = 0}, + [531] = {.lex_state = 0}, + [532] = {.lex_state = 0}, + [533] = {.lex_state = 0}, + [534] = {.lex_state = 14}, + [535] = {.lex_state = 0}, + [536] = {.lex_state = 0}, + [537] = {.lex_state = 0}, + [538] = {.lex_state = 14}, + [539] = {.lex_state = 0}, + [540] = {.lex_state = 0}, + [541] = {.lex_state = 0}, + [542] = {.lex_state = 14}, + [543] = {.lex_state = 14}, + [544] = {.lex_state = 14}, + [545] = {.lex_state = 0}, + [546] = {.lex_state = 220}, + [547] = {.lex_state = 0}, + [548] = {.lex_state = 14}, + [549] = {.lex_state = 14}, + [550] = {.lex_state = 14}, + [551] = {.lex_state = 0}, + [552] = {.lex_state = 0}, + [553] = {.lex_state = 0}, + [554] = {.lex_state = 0}, + [555] = {.lex_state = 0}, + [556] = {.lex_state = 0}, + [557] = {.lex_state = 0}, + [558] = {.lex_state = 14}, + [559] = {.lex_state = 14}, + [560] = {.lex_state = 0}, + [561] = {.lex_state = 0}, + [562] = {.lex_state = 0}, + [563] = {.lex_state = 14}, + [564] = {.lex_state = 0}, + [565] = {.lex_state = 11}, + [566] = {.lex_state = 0}, + [567] = {.lex_state = 14}, + [568] = {.lex_state = 14}, + [569] = {.lex_state = 0}, + [570] = {.lex_state = 14}, + [571] = {.lex_state = 0}, + [572] = {.lex_state = 0}, + [573] = {.lex_state = 0}, + [574] = {.lex_state = 0}, + [575] = {.lex_state = 0}, + [576] = {.lex_state = 0}, + [577] = {.lex_state = 14}, + [578] = {.lex_state = 0}, + [579] = {.lex_state = 0}, + [580] = {.lex_state = 0}, + [581] = {.lex_state = 0}, + [582] = {.lex_state = 0}, + [583] = {.lex_state = 0}, + [584] = {.lex_state = 14}, + [585] = {.lex_state = 14}, + [586] = {.lex_state = 0}, + [587] = {.lex_state = 0}, + [588] = {.lex_state = 0}, + [589] = {.lex_state = 0}, + [590] = {.lex_state = 0}, + [591] = {.lex_state = 0}, + [592] = {.lex_state = 14}, + [593] = {.lex_state = 0}, + [594] = {.lex_state = 14}, + [595] = {.lex_state = 0}, + [596] = {.lex_state = 0}, + [597] = {.lex_state = 11}, + [598] = {.lex_state = 0}, + [599] = {.lex_state = 0}, + [600] = {.lex_state = 0}, + [601] = {.lex_state = 11}, + [602] = {.lex_state = 11}, + [603] = {.lex_state = 0}, + [604] = {.lex_state = 0}, + [605] = {.lex_state = 0}, + [606] = {.lex_state = 0}, + [607] = {.lex_state = 0}, + [608] = {.lex_state = 0}, + [609] = {.lex_state = 14}, + [610] = {.lex_state = 0}, + [611] = {.lex_state = 0}, + [612] = {.lex_state = 0}, + [613] = {.lex_state = 0}, + [614] = {.lex_state = 0}, + [615] = {.lex_state = 0}, + [616] = {.lex_state = 0}, + [617] = {.lex_state = 0}, + [618] = {.lex_state = 0}, + [619] = {.lex_state = 0}, + [620] = {.lex_state = 0}, + [621] = {.lex_state = 0}, + [622] = {.lex_state = 0}, + [623] = {.lex_state = 0}, + [624] = {.lex_state = 0}, + [625] = {.lex_state = 0}, + [626] = {.lex_state = 0}, + [627] = {.lex_state = 0}, + [628] = {.lex_state = 0}, + [629] = {.lex_state = 11}, + [630] = {.lex_state = 0}, + [631] = {.lex_state = 0}, + [632] = {.lex_state = 0}, + [633] = {.lex_state = 0}, + [634] = {.lex_state = 0}, + [635] = {.lex_state = 0}, + [636] = {.lex_state = 0}, + [637] = {.lex_state = 11}, + [638] = {.lex_state = 0}, + [639] = {.lex_state = 21}, + [640] = {.lex_state = 0}, + [641] = {.lex_state = 0}, + [642] = {.lex_state = 0}, + [643] = {.lex_state = 0}, + [644] = {.lex_state = 0}, + [645] = {.lex_state = 0}, + [646] = {.lex_state = 0}, + [647] = {.lex_state = 0}, + [648] = {.lex_state = 0}, + [649] = {.lex_state = 11}, + [650] = {.lex_state = 0}, + [651] = {.lex_state = 0}, + [652] = {.lex_state = 0}, + [653] = {.lex_state = 0}, + [654] = {.lex_state = 0}, + [655] = {.lex_state = 0}, + [656] = {.lex_state = 14}, + [657] = {.lex_state = 0}, + [658] = {.lex_state = 0}, + [659] = {.lex_state = 0}, + [660] = {.lex_state = 0}, + [661] = {.lex_state = 0}, + [662] = {.lex_state = 0}, + [663] = {.lex_state = 0}, + [664] = {.lex_state = 0}, + [665] = {.lex_state = 0}, +}; + +static uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { + [0] = { + [ts_builtin_sym_end] = ACTIONS(1), + [anon_sym_address] = ACTIONS(1), + [anon_sym_LBRACE] = ACTIONS(1), + [anon_sym_RBRACE] = ACTIONS(1), + [anon_sym_script] = ACTIONS(1), + [anon_sym_use] = ACTIONS(1), + [anon_sym_COLON_COLON] = ACTIONS(1), + [anon_sym_COMMA] = ACTIONS(1), + [anon_sym_SEMI] = ACTIONS(1), + [anon_sym_as] = ACTIONS(1), + [anon_sym_module] = ACTIONS(1), + [anon_sym_native] = ACTIONS(1), + [anon_sym_COLON] = ACTIONS(1), + [anon_sym_resource] = ACTIONS(1), + [anon_sym_struct] = ACTIONS(1), + [anon_sym_public] = ACTIONS(1), + [anon_sym_fun] = ACTIONS(1), + [anon_sym_LPAREN] = ACTIONS(1), + [anon_sym_RPAREN] = ACTIONS(1), + [anon_sym_acquires] = ACTIONS(1), + [anon_sym_spec] = ACTIONS(1), + [anon_sym_schema] = ACTIONS(1), + [anon_sym_decreases] = ACTIONS(1), + [anon_sym_ensures] = ACTIONS(1), + [anon_sym_requires] = ACTIONS(1), + [anon_sym_invariant] = ACTIONS(1), + [anon_sym_update] = ACTIONS(1), + [anon_sym_pack] = ACTIONS(1), + [anon_sym_unpack] = ACTIONS(1), + [anon_sym_include] = ACTIONS(1), + [anon_sym_apply] = ACTIONS(1), + [anon_sym_to] = ACTIONS(1), + [anon_sym_except] = ACTIONS(1), + [anon_sym_internal] = ACTIONS(1), + [anon_sym_pragma] = ACTIONS(1), + [anon_sym_EQ] = ACTIONS(1), + [anon_sym_global] = ACTIONS(1), + [anon_sym_local] = ACTIONS(1), + [anon_sym_define] = ACTIONS(1), + [anon_sym_AMP] = ACTIONS(1), + [anon_sym_AMPmut] = ACTIONS(1), + [anon_sym_u8] = ACTIONS(1), + [anon_sym_u64] = ACTIONS(1), + [anon_sym_u128] = ACTIONS(1), + [anon_sym_bool] = ACTIONS(1), + [anon_sym_signer] = ACTIONS(1), + [anon_sym_bytearray] = ACTIONS(1), + [anon_sym_LT] = ACTIONS(1), + [anon_sym_GT] = ACTIONS(1), + [anon_sym_PIPE] = ACTIONS(1), + [anon_sym_let] = ACTIONS(1), + [anon_sym_if] = ACTIONS(1), + [anon_sym_else] = ACTIONS(1), + [anon_sym_while] = ACTIONS(1), + [anon_sym_loop] = ACTIONS(1), + [anon_sym_return] = ACTIONS(1), + [anon_sym_abort] = ACTIONS(1), + [anon_sym_EQ_EQ_GT] = ACTIONS(1), + [anon_sym_PIPE_PIPE] = ACTIONS(1), + [anon_sym_AMP_AMP] = ACTIONS(1), + [anon_sym_EQ_EQ] = ACTIONS(1), + [anon_sym_BANG_EQ] = ACTIONS(1), + [anon_sym_LT_EQ] = ACTIONS(1), + [anon_sym_GT_EQ] = ACTIONS(1), + [anon_sym_DOT_DOT] = ACTIONS(1), + [anon_sym_CARET] = ACTIONS(1), + [anon_sym_LT_LT] = ACTIONS(1), + [anon_sym_GT_GT] = ACTIONS(1), + [anon_sym_PLUS] = ACTIONS(1), + [anon_sym_DASH] = ACTIONS(1), + [anon_sym_STAR] = ACTIONS(1), + [anon_sym_SLASH] = ACTIONS(1), + [anon_sym_PERCENT] = ACTIONS(1), + [anon_sym_BANG] = ACTIONS(1), + [anon_sym_move] = ACTIONS(1), + [anon_sym_copy] = ACTIONS(1), + [anon_sym_break] = ACTIONS(1), + [anon_sym_continue] = ACTIONS(1), + [anon_sym_DOT] = ACTIONS(1), + [anon_sym_LBRACK] = ACTIONS(1), + [anon_sym_RBRACK] = ACTIONS(1), + [sym_address_literal] = ACTIONS(1), + [anon_sym_true] = ACTIONS(1), + [anon_sym_false] = ACTIONS(1), + [sym_num_literal] = ACTIONS(1), + [sym_byte_string_literal] = ACTIONS(1), + [sym_line_comment] = ACTIONS(3), + }, + [1] = { + [sym_source_file] = STATE(624), + [sym__statement] = STATE(2), + [sym_address_block] = STATE(2), + [sym_script_block] = STATE(2), + [sym_use_decl] = STATE(2), + [sym_module_definition] = STATE(2), + [sym__struct_definition] = STATE(2), + [sym_native_struct_definition] = STATE(2), + [sym_struct_definition] = STATE(2), + [sym__struct_signature] = STATE(492), + [sym__function_definition] = STATE(2), + [sym_native_function_definition] = STATE(2), + [sym_usual_function_definition] = STATE(2), + [sym__function_signature] = STATE(504), + [sym_spec_block] = STATE(161), + [sym_module_access] = STATE(126), + [sym__module_ident] = STATE(614), + [sym_block] = STATE(161), + [sym__block_item] = STATE(2), + [sym_let_statement] = STATE(611), + [sym__expression] = STATE(611), + [sym_lambda_expression] = STATE(611), + [sym_lambda_bindings] = STATE(45), + [sym_if_expression] = STATE(611), + [sym_while_expression] = STATE(611), + [sym_loop_expression] = STATE(611), + [sym_return_expression] = STATE(611), + [sym_abort_expression] = STATE(611), + [sym_assign_expression] = STATE(611), + [sym__binary_operand] = STATE(205), + [sym_binary_expression] = STATE(178), + [sym__unary_expression] = STATE(196), + [sym_unary_expression] = STATE(196), + [sym_unary_op] = STATE(102), + [sym_dereference_expression] = STATE(196), + [sym_borrow_expression] = STATE(196), + [sym_move_or_copy_expression] = STATE(196), + [sym__expression_term] = STATE(161), + [sym_break_expression] = STATE(161), + [sym_continue_expression] = STATE(161), + [sym__name_exp] = STATE(161), + [sym_name_expression] = STATE(113), + [sym_pack_expression] = STATE(161), + [sym_call_expression] = STATE(161), + [sym_expression_list] = STATE(161), + [sym_unit_expression] = STATE(161), + [sym_cast_expression] = STATE(161), + [sym_annotate_expression] = STATE(161), + [sym_dot_expression] = STATE(161), + [sym_index_expression] = STATE(161), + [sym__literal_value] = STATE(161), + [sym_bool_literal] = STATE(161), + [sym__module_identifier] = STATE(610), + [aux_sym_source_file_repeat1] = STATE(2), + [ts_builtin_sym_end] = ACTIONS(5), + [anon_sym_address] = ACTIONS(7), + [anon_sym_LBRACE] = ACTIONS(9), + [anon_sym_script] = ACTIONS(11), + [anon_sym_use] = ACTIONS(13), + [anon_sym_COLON_COLON] = ACTIONS(15), + [anon_sym_module] = ACTIONS(17), + [anon_sym_native] = ACTIONS(19), + [anon_sym_resource] = ACTIONS(21), + [anon_sym_struct] = ACTIONS(23), + [anon_sym_public] = ACTIONS(25), + [anon_sym_fun] = ACTIONS(27), + [anon_sym_LPAREN] = ACTIONS(29), + [anon_sym_spec] = ACTIONS(31), + [anon_sym_AMP] = ACTIONS(33), + [anon_sym_AMPmut] = ACTIONS(35), + [anon_sym_PIPE] = ACTIONS(37), + [anon_sym_let] = ACTIONS(39), + [anon_sym_if] = ACTIONS(41), + [anon_sym_while] = ACTIONS(43), + [anon_sym_loop] = ACTIONS(45), + [anon_sym_return] = ACTIONS(47), + [anon_sym_abort] = ACTIONS(49), + [anon_sym_STAR] = ACTIONS(51), + [anon_sym_BANG] = ACTIONS(53), + [anon_sym_move] = ACTIONS(55), + [anon_sym_copy] = ACTIONS(55), + [anon_sym_break] = ACTIONS(57), + [anon_sym_continue] = ACTIONS(59), + [sym_address_literal] = ACTIONS(61), + [anon_sym_true] = ACTIONS(63), + [anon_sym_false] = ACTIONS(63), + [sym_num_literal] = ACTIONS(65), + [sym_byte_string_literal] = ACTIONS(67), + [sym_identifier] = ACTIONS(69), + [sym_line_comment] = ACTIONS(3), + }, + [2] = { + [sym__statement] = STATE(3), + [sym_address_block] = STATE(3), + [sym_script_block] = STATE(3), + [sym_use_decl] = STATE(3), + [sym_module_definition] = STATE(3), + [sym__struct_definition] = STATE(3), + [sym_native_struct_definition] = STATE(3), + [sym_struct_definition] = STATE(3), + [sym__struct_signature] = STATE(492), + [sym__function_definition] = STATE(3), + [sym_native_function_definition] = STATE(3), + [sym_usual_function_definition] = STATE(3), + [sym__function_signature] = STATE(504), + [sym_spec_block] = STATE(161), + [sym_module_access] = STATE(126), + [sym__module_ident] = STATE(614), + [sym_block] = STATE(161), + [sym__block_item] = STATE(3), + [sym_let_statement] = STATE(611), + [sym__expression] = STATE(611), + [sym_lambda_expression] = STATE(611), + [sym_lambda_bindings] = STATE(45), + [sym_if_expression] = STATE(611), + [sym_while_expression] = STATE(611), + [sym_loop_expression] = STATE(611), + [sym_return_expression] = STATE(611), + [sym_abort_expression] = STATE(611), + [sym_assign_expression] = STATE(611), + [sym__binary_operand] = STATE(205), + [sym_binary_expression] = STATE(178), + [sym__unary_expression] = STATE(196), + [sym_unary_expression] = STATE(196), + [sym_unary_op] = STATE(102), + [sym_dereference_expression] = STATE(196), + [sym_borrow_expression] = STATE(196), + [sym_move_or_copy_expression] = STATE(196), + [sym__expression_term] = STATE(161), + [sym_break_expression] = STATE(161), + [sym_continue_expression] = STATE(161), + [sym__name_exp] = STATE(161), + [sym_name_expression] = STATE(113), + [sym_pack_expression] = STATE(161), + [sym_call_expression] = STATE(161), + [sym_expression_list] = STATE(161), + [sym_unit_expression] = STATE(161), + [sym_cast_expression] = STATE(161), + [sym_annotate_expression] = STATE(161), + [sym_dot_expression] = STATE(161), + [sym_index_expression] = STATE(161), + [sym__literal_value] = STATE(161), + [sym_bool_literal] = STATE(161), + [sym__module_identifier] = STATE(610), + [aux_sym_source_file_repeat1] = STATE(3), + [ts_builtin_sym_end] = ACTIONS(71), + [anon_sym_address] = ACTIONS(7), + [anon_sym_LBRACE] = ACTIONS(9), + [anon_sym_script] = ACTIONS(11), + [anon_sym_use] = ACTIONS(13), + [anon_sym_COLON_COLON] = ACTIONS(15), + [anon_sym_module] = ACTIONS(17), + [anon_sym_native] = ACTIONS(19), + [anon_sym_resource] = ACTIONS(21), + [anon_sym_struct] = ACTIONS(23), + [anon_sym_public] = ACTIONS(25), + [anon_sym_fun] = ACTIONS(27), + [anon_sym_LPAREN] = ACTIONS(29), + [anon_sym_spec] = ACTIONS(31), + [anon_sym_AMP] = ACTIONS(33), + [anon_sym_AMPmut] = ACTIONS(35), + [anon_sym_PIPE] = ACTIONS(37), + [anon_sym_let] = ACTIONS(39), + [anon_sym_if] = ACTIONS(41), + [anon_sym_while] = ACTIONS(43), + [anon_sym_loop] = ACTIONS(45), + [anon_sym_return] = ACTIONS(47), + [anon_sym_abort] = ACTIONS(49), + [anon_sym_STAR] = ACTIONS(51), + [anon_sym_BANG] = ACTIONS(53), + [anon_sym_move] = ACTIONS(55), + [anon_sym_copy] = ACTIONS(55), + [anon_sym_break] = ACTIONS(57), + [anon_sym_continue] = ACTIONS(59), + [sym_address_literal] = ACTIONS(61), + [anon_sym_true] = ACTIONS(63), + [anon_sym_false] = ACTIONS(63), + [sym_num_literal] = ACTIONS(65), + [sym_byte_string_literal] = ACTIONS(67), + [sym_identifier] = ACTIONS(69), + [sym_line_comment] = ACTIONS(3), + }, + [3] = { + [sym__statement] = STATE(3), + [sym_address_block] = STATE(3), + [sym_script_block] = STATE(3), + [sym_use_decl] = STATE(3), + [sym_module_definition] = STATE(3), + [sym__struct_definition] = STATE(3), + [sym_native_struct_definition] = STATE(3), + [sym_struct_definition] = STATE(3), + [sym__struct_signature] = STATE(492), + [sym__function_definition] = STATE(3), + [sym_native_function_definition] = STATE(3), + [sym_usual_function_definition] = STATE(3), + [sym__function_signature] = STATE(504), + [sym_spec_block] = STATE(161), + [sym_module_access] = STATE(126), + [sym__module_ident] = STATE(614), + [sym_block] = STATE(161), + [sym__block_item] = STATE(3), + [sym_let_statement] = STATE(611), + [sym__expression] = STATE(611), + [sym_lambda_expression] = STATE(611), + [sym_lambda_bindings] = STATE(45), + [sym_if_expression] = STATE(611), + [sym_while_expression] = STATE(611), + [sym_loop_expression] = STATE(611), + [sym_return_expression] = STATE(611), + [sym_abort_expression] = STATE(611), + [sym_assign_expression] = STATE(611), + [sym__binary_operand] = STATE(205), + [sym_binary_expression] = STATE(178), + [sym__unary_expression] = STATE(196), + [sym_unary_expression] = STATE(196), + [sym_unary_op] = STATE(102), + [sym_dereference_expression] = STATE(196), + [sym_borrow_expression] = STATE(196), + [sym_move_or_copy_expression] = STATE(196), + [sym__expression_term] = STATE(161), + [sym_break_expression] = STATE(161), + [sym_continue_expression] = STATE(161), + [sym__name_exp] = STATE(161), + [sym_name_expression] = STATE(113), + [sym_pack_expression] = STATE(161), + [sym_call_expression] = STATE(161), + [sym_expression_list] = STATE(161), + [sym_unit_expression] = STATE(161), + [sym_cast_expression] = STATE(161), + [sym_annotate_expression] = STATE(161), + [sym_dot_expression] = STATE(161), + [sym_index_expression] = STATE(161), + [sym__literal_value] = STATE(161), + [sym_bool_literal] = STATE(161), + [sym__module_identifier] = STATE(610), + [aux_sym_source_file_repeat1] = STATE(3), + [ts_builtin_sym_end] = ACTIONS(73), + [anon_sym_address] = ACTIONS(75), + [anon_sym_LBRACE] = ACTIONS(78), + [anon_sym_script] = ACTIONS(81), + [anon_sym_use] = ACTIONS(84), + [anon_sym_COLON_COLON] = ACTIONS(87), + [anon_sym_module] = ACTIONS(90), + [anon_sym_native] = ACTIONS(93), + [anon_sym_resource] = ACTIONS(96), + [anon_sym_struct] = ACTIONS(99), + [anon_sym_public] = ACTIONS(102), + [anon_sym_fun] = ACTIONS(105), + [anon_sym_LPAREN] = ACTIONS(108), + [anon_sym_spec] = ACTIONS(111), + [anon_sym_AMP] = ACTIONS(114), + [anon_sym_AMPmut] = ACTIONS(117), + [anon_sym_PIPE] = ACTIONS(120), + [anon_sym_let] = ACTIONS(123), + [anon_sym_if] = ACTIONS(126), + [anon_sym_while] = ACTIONS(129), + [anon_sym_loop] = ACTIONS(132), + [anon_sym_return] = ACTIONS(135), + [anon_sym_abort] = ACTIONS(138), + [anon_sym_STAR] = ACTIONS(141), + [anon_sym_BANG] = ACTIONS(144), + [anon_sym_move] = ACTIONS(147), + [anon_sym_copy] = ACTIONS(147), + [anon_sym_break] = ACTIONS(150), + [anon_sym_continue] = ACTIONS(153), + [sym_address_literal] = ACTIONS(156), + [anon_sym_true] = ACTIONS(159), + [anon_sym_false] = ACTIONS(159), + [sym_num_literal] = ACTIONS(162), + [sym_byte_string_literal] = ACTIONS(165), + [sym_identifier] = ACTIONS(168), + [sym_line_comment] = ACTIONS(3), + }, + [4] = { + [sym_spec_block] = STATE(161), + [sym_module_access] = STATE(126), + [sym__module_ident] = STATE(614), + [sym_block] = STATE(161), + [sym__expression] = STATE(294), + [sym_lambda_expression] = STATE(294), + [sym_lambda_bindings] = STATE(66), + [sym_if_expression] = STATE(294), + [sym_while_expression] = STATE(294), + [sym_loop_expression] = STATE(294), + [sym_return_expression] = STATE(294), + [sym_abort_expression] = STATE(294), + [sym_assign_expression] = STATE(294), + [sym__binary_operand] = STATE(205), + [sym_binary_expression] = STATE(178), + [sym__unary_expression] = STATE(194), + [sym_unary_expression] = STATE(194), + [sym_unary_op] = STATE(102), + [sym_dereference_expression] = STATE(194), + [sym_borrow_expression] = STATE(194), + [sym_move_or_copy_expression] = STATE(194), + [sym__expression_term] = STATE(161), + [sym_break_expression] = STATE(161), + [sym_continue_expression] = STATE(161), + [sym__name_exp] = STATE(161), + [sym_name_expression] = STATE(113), + [sym_pack_expression] = STATE(161), + [sym_call_expression] = STATE(161), + [sym_expression_list] = STATE(161), + [sym_unit_expression] = STATE(161), + [sym_cast_expression] = STATE(161), + [sym_annotate_expression] = STATE(161), + [sym_dot_expression] = STATE(161), + [sym_index_expression] = STATE(161), + [sym__literal_value] = STATE(161), + [sym_bool_literal] = STATE(161), + [sym__module_identifier] = STATE(610), + [anon_sym_LBRACE] = ACTIONS(9), + [anon_sym_RBRACE] = ACTIONS(171), + [anon_sym_COLON_COLON] = ACTIONS(15), + [anon_sym_COMMA] = ACTIONS(171), + [anon_sym_SEMI] = ACTIONS(171), + [anon_sym_LPAREN] = ACTIONS(29), + [anon_sym_RPAREN] = ACTIONS(171), + [anon_sym_spec] = ACTIONS(31), + [anon_sym_AMP] = ACTIONS(33), + [anon_sym_AMPmut] = ACTIONS(35), + [anon_sym_PIPE] = ACTIONS(37), + [anon_sym_if] = ACTIONS(173), + [anon_sym_else] = ACTIONS(175), + [anon_sym_while] = ACTIONS(177), + [anon_sym_loop] = ACTIONS(179), + [anon_sym_return] = ACTIONS(181), + [anon_sym_abort] = ACTIONS(183), + [anon_sym_STAR] = ACTIONS(51), + [anon_sym_BANG] = ACTIONS(53), + [anon_sym_move] = ACTIONS(55), + [anon_sym_copy] = ACTIONS(55), + [anon_sym_break] = ACTIONS(57), + [anon_sym_continue] = ACTIONS(59), + [anon_sym_RBRACK] = ACTIONS(171), + [sym_address_literal] = ACTIONS(61), + [anon_sym_true] = ACTIONS(63), + [anon_sym_false] = ACTIONS(63), + [sym_num_literal] = ACTIONS(65), + [sym_byte_string_literal] = ACTIONS(67), + [sym_identifier] = ACTIONS(69), + [sym_line_comment] = ACTIONS(3), + }, + [5] = { + [sym_spec_block] = STATE(161), + [sym_module_access] = STATE(126), + [sym__module_ident] = STATE(614), + [sym_block] = STATE(161), + [sym__expression] = STATE(294), + [sym_lambda_expression] = STATE(294), + [sym_lambda_bindings] = STATE(82), + [sym_if_expression] = STATE(294), + [sym_while_expression] = STATE(294), + [sym_loop_expression] = STATE(294), + [sym_return_expression] = STATE(294), + [sym_abort_expression] = STATE(294), + [sym_assign_expression] = STATE(294), + [sym__binary_operand] = STATE(205), + [sym_binary_expression] = STATE(178), + [sym__unary_expression] = STATE(197), + [sym_unary_expression] = STATE(197), + [sym_unary_op] = STATE(102), + [sym_dereference_expression] = STATE(197), + [sym_borrow_expression] = STATE(197), + [sym_move_or_copy_expression] = STATE(197), + [sym__expression_term] = STATE(161), + [sym_break_expression] = STATE(161), + [sym_continue_expression] = STATE(161), + [sym__name_exp] = STATE(161), + [sym_name_expression] = STATE(113), + [sym_pack_expression] = STATE(161), + [sym_call_expression] = STATE(161), + [sym_expression_list] = STATE(161), + [sym_unit_expression] = STATE(161), + [sym_cast_expression] = STATE(161), + [sym_annotate_expression] = STATE(161), + [sym_dot_expression] = STATE(161), + [sym_index_expression] = STATE(161), + [sym__literal_value] = STATE(161), + [sym_bool_literal] = STATE(161), + [sym__module_identifier] = STATE(610), + [anon_sym_LBRACE] = ACTIONS(9), + [anon_sym_COLON_COLON] = ACTIONS(15), + [anon_sym_COMMA] = ACTIONS(171), + [anon_sym_as] = ACTIONS(175), + [anon_sym_COLON] = ACTIONS(175), + [anon_sym_LPAREN] = ACTIONS(29), + [anon_sym_RPAREN] = ACTIONS(171), + [anon_sym_spec] = ACTIONS(31), + [anon_sym_AMP] = ACTIONS(33), + [anon_sym_AMPmut] = ACTIONS(35), + [anon_sym_PIPE] = ACTIONS(37), + [anon_sym_if] = ACTIONS(185), + [anon_sym_else] = ACTIONS(175), + [anon_sym_while] = ACTIONS(187), + [anon_sym_loop] = ACTIONS(189), + [anon_sym_return] = ACTIONS(191), + [anon_sym_abort] = ACTIONS(193), + [anon_sym_STAR] = ACTIONS(51), + [anon_sym_BANG] = ACTIONS(53), + [anon_sym_move] = ACTIONS(55), + [anon_sym_copy] = ACTIONS(55), + [anon_sym_break] = ACTIONS(57), + [anon_sym_continue] = ACTIONS(59), + [sym_address_literal] = ACTIONS(61), + [anon_sym_true] = ACTIONS(63), + [anon_sym_false] = ACTIONS(63), + [sym_num_literal] = ACTIONS(65), + [sym_byte_string_literal] = ACTIONS(67), + [sym_identifier] = ACTIONS(69), + [sym_line_comment] = ACTIONS(3), + }, + [6] = { + [sym_spec_block] = STATE(161), + [sym_module_access] = STATE(126), + [sym__module_ident] = STATE(614), + [sym_block] = STATE(161), + [sym__block_item] = STATE(6), + [sym_let_statement] = STATE(582), + [sym__expression] = STATE(582), + [sym_lambda_expression] = STATE(582), + [sym_lambda_bindings] = STATE(45), + [sym_if_expression] = STATE(582), + [sym_while_expression] = STATE(582), + [sym_loop_expression] = STATE(582), + [sym_return_expression] = STATE(582), + [sym_abort_expression] = STATE(582), + [sym_assign_expression] = STATE(582), + [sym__binary_operand] = STATE(205), + [sym_binary_expression] = STATE(178), + [sym__unary_expression] = STATE(196), + [sym_unary_expression] = STATE(196), + [sym_unary_op] = STATE(102), + [sym_dereference_expression] = STATE(196), + [sym_borrow_expression] = STATE(196), + [sym_move_or_copy_expression] = STATE(196), + [sym__expression_term] = STATE(161), + [sym_break_expression] = STATE(161), + [sym_continue_expression] = STATE(161), + [sym__name_exp] = STATE(161), + [sym_name_expression] = STATE(113), + [sym_pack_expression] = STATE(161), + [sym_call_expression] = STATE(161), + [sym_expression_list] = STATE(161), + [sym_unit_expression] = STATE(161), + [sym_cast_expression] = STATE(161), + [sym_annotate_expression] = STATE(161), + [sym_dot_expression] = STATE(161), + [sym_index_expression] = STATE(161), + [sym__literal_value] = STATE(161), + [sym_bool_literal] = STATE(161), + [sym__module_identifier] = STATE(610), + [aux_sym_block_repeat1] = STATE(6), + [anon_sym_LBRACE] = ACTIONS(195), + [anon_sym_RBRACE] = ACTIONS(198), + [anon_sym_COLON_COLON] = ACTIONS(200), + [anon_sym_LPAREN] = ACTIONS(203), + [anon_sym_spec] = ACTIONS(206), + [anon_sym_AMP] = ACTIONS(209), + [anon_sym_AMPmut] = ACTIONS(212), + [anon_sym_PIPE] = ACTIONS(215), + [anon_sym_let] = ACTIONS(218), + [anon_sym_if] = ACTIONS(221), + [anon_sym_while] = ACTIONS(224), + [anon_sym_loop] = ACTIONS(227), + [anon_sym_return] = ACTIONS(230), + [anon_sym_abort] = ACTIONS(233), + [anon_sym_STAR] = ACTIONS(236), + [anon_sym_BANG] = ACTIONS(239), + [anon_sym_move] = ACTIONS(242), + [anon_sym_copy] = ACTIONS(242), + [anon_sym_break] = ACTIONS(245), + [anon_sym_continue] = ACTIONS(248), + [sym_address_literal] = ACTIONS(251), + [anon_sym_true] = ACTIONS(254), + [anon_sym_false] = ACTIONS(254), + [sym_num_literal] = ACTIONS(257), + [sym_byte_string_literal] = ACTIONS(260), + [sym_identifier] = ACTIONS(263), + [sym_line_comment] = ACTIONS(3), + }, + [7] = { + [sym_spec_block] = STATE(161), + [sym_module_access] = STATE(126), + [sym__module_ident] = STATE(614), + [sym_block] = STATE(161), + [sym__block_item] = STATE(6), + [sym_let_statement] = STATE(529), + [sym__expression] = STATE(529), + [sym_lambda_expression] = STATE(529), + [sym_lambda_bindings] = STATE(45), + [sym_if_expression] = STATE(529), + [sym_while_expression] = STATE(529), + [sym_loop_expression] = STATE(529), + [sym_return_expression] = STATE(529), + [sym_abort_expression] = STATE(529), + [sym_assign_expression] = STATE(529), + [sym__binary_operand] = STATE(205), + [sym_binary_expression] = STATE(178), + [sym__unary_expression] = STATE(196), + [sym_unary_expression] = STATE(196), + [sym_unary_op] = STATE(102), + [sym_dereference_expression] = STATE(196), + [sym_borrow_expression] = STATE(196), + [sym_move_or_copy_expression] = STATE(196), + [sym__expression_term] = STATE(161), + [sym_break_expression] = STATE(161), + [sym_continue_expression] = STATE(161), + [sym__name_exp] = STATE(161), + [sym_name_expression] = STATE(113), + [sym_pack_expression] = STATE(161), + [sym_call_expression] = STATE(161), + [sym_expression_list] = STATE(161), + [sym_unit_expression] = STATE(161), + [sym_cast_expression] = STATE(161), + [sym_annotate_expression] = STATE(161), + [sym_dot_expression] = STATE(161), + [sym_index_expression] = STATE(161), + [sym__literal_value] = STATE(161), + [sym_bool_literal] = STATE(161), + [sym__module_identifier] = STATE(610), + [aux_sym_block_repeat1] = STATE(6), + [anon_sym_LBRACE] = ACTIONS(9), + [anon_sym_RBRACE] = ACTIONS(266), + [anon_sym_COLON_COLON] = ACTIONS(15), + [anon_sym_LPAREN] = ACTIONS(29), + [anon_sym_spec] = ACTIONS(31), + [anon_sym_AMP] = ACTIONS(33), + [anon_sym_AMPmut] = ACTIONS(35), + [anon_sym_PIPE] = ACTIONS(37), + [anon_sym_let] = ACTIONS(39), + [anon_sym_if] = ACTIONS(41), + [anon_sym_while] = ACTIONS(43), + [anon_sym_loop] = ACTIONS(45), + [anon_sym_return] = ACTIONS(47), + [anon_sym_abort] = ACTIONS(49), + [anon_sym_STAR] = ACTIONS(51), + [anon_sym_BANG] = ACTIONS(53), + [anon_sym_move] = ACTIONS(55), + [anon_sym_copy] = ACTIONS(55), + [anon_sym_break] = ACTIONS(57), + [anon_sym_continue] = ACTIONS(59), + [sym_address_literal] = ACTIONS(61), + [anon_sym_true] = ACTIONS(63), + [anon_sym_false] = ACTIONS(63), + [sym_num_literal] = ACTIONS(65), + [sym_byte_string_literal] = ACTIONS(67), + [sym_identifier] = ACTIONS(69), + [sym_line_comment] = ACTIONS(3), + }, + [8] = { + [sym_spec_block] = STATE(161), + [sym_module_access] = STATE(126), + [sym__module_ident] = STATE(614), + [sym_block] = STATE(161), + [sym__block_item] = STATE(6), + [sym_let_statement] = STATE(562), + [sym__expression] = STATE(562), + [sym_lambda_expression] = STATE(562), + [sym_lambda_bindings] = STATE(45), + [sym_if_expression] = STATE(562), + [sym_while_expression] = STATE(562), + [sym_loop_expression] = STATE(562), + [sym_return_expression] = STATE(562), + [sym_abort_expression] = STATE(562), + [sym_assign_expression] = STATE(562), + [sym__binary_operand] = STATE(205), + [sym_binary_expression] = STATE(178), + [sym__unary_expression] = STATE(196), + [sym_unary_expression] = STATE(196), + [sym_unary_op] = STATE(102), + [sym_dereference_expression] = STATE(196), + [sym_borrow_expression] = STATE(196), + [sym_move_or_copy_expression] = STATE(196), + [sym__expression_term] = STATE(161), + [sym_break_expression] = STATE(161), + [sym_continue_expression] = STATE(161), + [sym__name_exp] = STATE(161), + [sym_name_expression] = STATE(113), + [sym_pack_expression] = STATE(161), + [sym_call_expression] = STATE(161), + [sym_expression_list] = STATE(161), + [sym_unit_expression] = STATE(161), + [sym_cast_expression] = STATE(161), + [sym_annotate_expression] = STATE(161), + [sym_dot_expression] = STATE(161), + [sym_index_expression] = STATE(161), + [sym__literal_value] = STATE(161), + [sym_bool_literal] = STATE(161), + [sym__module_identifier] = STATE(610), + [aux_sym_block_repeat1] = STATE(6), + [anon_sym_LBRACE] = ACTIONS(9), + [anon_sym_RBRACE] = ACTIONS(268), + [anon_sym_COLON_COLON] = ACTIONS(15), + [anon_sym_LPAREN] = ACTIONS(29), + [anon_sym_spec] = ACTIONS(31), + [anon_sym_AMP] = ACTIONS(33), + [anon_sym_AMPmut] = ACTIONS(35), + [anon_sym_PIPE] = ACTIONS(37), + [anon_sym_let] = ACTIONS(39), + [anon_sym_if] = ACTIONS(41), + [anon_sym_while] = ACTIONS(43), + [anon_sym_loop] = ACTIONS(45), + [anon_sym_return] = ACTIONS(47), + [anon_sym_abort] = ACTIONS(49), + [anon_sym_STAR] = ACTIONS(51), + [anon_sym_BANG] = ACTIONS(53), + [anon_sym_move] = ACTIONS(55), + [anon_sym_copy] = ACTIONS(55), + [anon_sym_break] = ACTIONS(57), + [anon_sym_continue] = ACTIONS(59), + [sym_address_literal] = ACTIONS(61), + [anon_sym_true] = ACTIONS(63), + [anon_sym_false] = ACTIONS(63), + [sym_num_literal] = ACTIONS(65), + [sym_byte_string_literal] = ACTIONS(67), + [sym_identifier] = ACTIONS(69), + [sym_line_comment] = ACTIONS(3), + }, + [9] = { + [sym_spec_block] = STATE(161), + [sym_module_access] = STATE(126), + [sym__module_ident] = STATE(614), + [sym_block] = STATE(161), + [sym__block_item] = STATE(6), + [sym_let_statement] = STATE(539), + [sym__expression] = STATE(539), + [sym_lambda_expression] = STATE(539), + [sym_lambda_bindings] = STATE(45), + [sym_if_expression] = STATE(539), + [sym_while_expression] = STATE(539), + [sym_loop_expression] = STATE(539), + [sym_return_expression] = STATE(539), + [sym_abort_expression] = STATE(539), + [sym_assign_expression] = STATE(539), + [sym__binary_operand] = STATE(205), + [sym_binary_expression] = STATE(178), + [sym__unary_expression] = STATE(196), + [sym_unary_expression] = STATE(196), + [sym_unary_op] = STATE(102), + [sym_dereference_expression] = STATE(196), + [sym_borrow_expression] = STATE(196), + [sym_move_or_copy_expression] = STATE(196), + [sym__expression_term] = STATE(161), + [sym_break_expression] = STATE(161), + [sym_continue_expression] = STATE(161), + [sym__name_exp] = STATE(161), + [sym_name_expression] = STATE(113), + [sym_pack_expression] = STATE(161), + [sym_call_expression] = STATE(161), + [sym_expression_list] = STATE(161), + [sym_unit_expression] = STATE(161), + [sym_cast_expression] = STATE(161), + [sym_annotate_expression] = STATE(161), + [sym_dot_expression] = STATE(161), + [sym_index_expression] = STATE(161), + [sym__literal_value] = STATE(161), + [sym_bool_literal] = STATE(161), + [sym__module_identifier] = STATE(610), + [aux_sym_block_repeat1] = STATE(6), + [anon_sym_LBRACE] = ACTIONS(9), + [anon_sym_RBRACE] = ACTIONS(270), + [anon_sym_COLON_COLON] = ACTIONS(15), + [anon_sym_LPAREN] = ACTIONS(29), + [anon_sym_spec] = ACTIONS(31), + [anon_sym_AMP] = ACTIONS(33), + [anon_sym_AMPmut] = ACTIONS(35), + [anon_sym_PIPE] = ACTIONS(37), + [anon_sym_let] = ACTIONS(39), + [anon_sym_if] = ACTIONS(41), + [anon_sym_while] = ACTIONS(43), + [anon_sym_loop] = ACTIONS(45), + [anon_sym_return] = ACTIONS(47), + [anon_sym_abort] = ACTIONS(49), + [anon_sym_STAR] = ACTIONS(51), + [anon_sym_BANG] = ACTIONS(53), + [anon_sym_move] = ACTIONS(55), + [anon_sym_copy] = ACTIONS(55), + [anon_sym_break] = ACTIONS(57), + [anon_sym_continue] = ACTIONS(59), + [sym_address_literal] = ACTIONS(61), + [anon_sym_true] = ACTIONS(63), + [anon_sym_false] = ACTIONS(63), + [sym_num_literal] = ACTIONS(65), + [sym_byte_string_literal] = ACTIONS(67), + [sym_identifier] = ACTIONS(69), + [sym_line_comment] = ACTIONS(3), + }, + [10] = { + [sym_spec_block] = STATE(161), + [sym_module_access] = STATE(126), + [sym__module_ident] = STATE(614), + [sym_block] = STATE(161), + [sym__block_item] = STATE(9), + [sym_let_statement] = STATE(523), + [sym__expression] = STATE(523), + [sym_lambda_expression] = STATE(523), + [sym_lambda_bindings] = STATE(45), + [sym_if_expression] = STATE(523), + [sym_while_expression] = STATE(523), + [sym_loop_expression] = STATE(523), + [sym_return_expression] = STATE(523), + [sym_abort_expression] = STATE(523), + [sym_assign_expression] = STATE(523), + [sym__binary_operand] = STATE(205), + [sym_binary_expression] = STATE(178), + [sym__unary_expression] = STATE(196), + [sym_unary_expression] = STATE(196), + [sym_unary_op] = STATE(102), + [sym_dereference_expression] = STATE(196), + [sym_borrow_expression] = STATE(196), + [sym_move_or_copy_expression] = STATE(196), + [sym__expression_term] = STATE(161), + [sym_break_expression] = STATE(161), + [sym_continue_expression] = STATE(161), + [sym__name_exp] = STATE(161), + [sym_name_expression] = STATE(113), + [sym_pack_expression] = STATE(161), + [sym_call_expression] = STATE(161), + [sym_expression_list] = STATE(161), + [sym_unit_expression] = STATE(161), + [sym_cast_expression] = STATE(161), + [sym_annotate_expression] = STATE(161), + [sym_dot_expression] = STATE(161), + [sym_index_expression] = STATE(161), + [sym__literal_value] = STATE(161), + [sym_bool_literal] = STATE(161), + [sym__module_identifier] = STATE(610), + [aux_sym_block_repeat1] = STATE(9), + [anon_sym_LBRACE] = ACTIONS(9), + [anon_sym_RBRACE] = ACTIONS(272), + [anon_sym_COLON_COLON] = ACTIONS(15), + [anon_sym_LPAREN] = ACTIONS(29), + [anon_sym_spec] = ACTIONS(31), + [anon_sym_AMP] = ACTIONS(33), + [anon_sym_AMPmut] = ACTIONS(35), + [anon_sym_PIPE] = ACTIONS(37), + [anon_sym_let] = ACTIONS(39), + [anon_sym_if] = ACTIONS(41), + [anon_sym_while] = ACTIONS(43), + [anon_sym_loop] = ACTIONS(45), + [anon_sym_return] = ACTIONS(47), + [anon_sym_abort] = ACTIONS(49), + [anon_sym_STAR] = ACTIONS(51), + [anon_sym_BANG] = ACTIONS(53), + [anon_sym_move] = ACTIONS(55), + [anon_sym_copy] = ACTIONS(55), + [anon_sym_break] = ACTIONS(57), + [anon_sym_continue] = ACTIONS(59), + [sym_address_literal] = ACTIONS(61), + [anon_sym_true] = ACTIONS(63), + [anon_sym_false] = ACTIONS(63), + [sym_num_literal] = ACTIONS(65), + [sym_byte_string_literal] = ACTIONS(67), + [sym_identifier] = ACTIONS(69), + [sym_line_comment] = ACTIONS(3), + }, + [11] = { + [sym_spec_block] = STATE(161), + [sym_module_access] = STATE(126), + [sym__module_ident] = STATE(614), + [sym_block] = STATE(161), + [sym__expression] = STATE(294), + [sym_lambda_expression] = STATE(294), + [sym_lambda_bindings] = STATE(45), + [sym_if_expression] = STATE(294), + [sym_while_expression] = STATE(294), + [sym_loop_expression] = STATE(294), + [sym_return_expression] = STATE(294), + [sym_abort_expression] = STATE(294), + [sym_assign_expression] = STATE(294), + [sym__binary_operand] = STATE(205), + [sym_binary_expression] = STATE(178), + [sym__unary_expression] = STATE(196), + [sym_unary_expression] = STATE(196), + [sym_unary_op] = STATE(102), + [sym_dereference_expression] = STATE(196), + [sym_borrow_expression] = STATE(196), + [sym_move_or_copy_expression] = STATE(196), + [sym__expression_term] = STATE(161), + [sym_break_expression] = STATE(161), + [sym_continue_expression] = STATE(161), + [sym__name_exp] = STATE(161), + [sym_name_expression] = STATE(113), + [sym_pack_expression] = STATE(161), + [sym_call_expression] = STATE(161), + [sym_expression_list] = STATE(161), + [sym_unit_expression] = STATE(161), + [sym_cast_expression] = STATE(161), + [sym_annotate_expression] = STATE(161), + [sym_dot_expression] = STATE(161), + [sym_index_expression] = STATE(161), + [sym__literal_value] = STATE(161), + [sym_bool_literal] = STATE(161), + [sym__module_identifier] = STATE(610), + [anon_sym_LBRACE] = ACTIONS(9), + [anon_sym_RBRACE] = ACTIONS(171), + [anon_sym_COLON_COLON] = ACTIONS(15), + [anon_sym_COMMA] = ACTIONS(171), + [anon_sym_SEMI] = ACTIONS(171), + [anon_sym_LPAREN] = ACTIONS(29), + [anon_sym_RPAREN] = ACTIONS(171), + [anon_sym_spec] = ACTIONS(31), + [anon_sym_AMP] = ACTIONS(33), + [anon_sym_AMPmut] = ACTIONS(35), + [anon_sym_PIPE] = ACTIONS(37), + [anon_sym_if] = ACTIONS(41), + [anon_sym_while] = ACTIONS(43), + [anon_sym_loop] = ACTIONS(45), + [anon_sym_return] = ACTIONS(47), + [anon_sym_abort] = ACTIONS(49), + [anon_sym_STAR] = ACTIONS(51), + [anon_sym_BANG] = ACTIONS(53), + [anon_sym_move] = ACTIONS(55), + [anon_sym_copy] = ACTIONS(55), + [anon_sym_break] = ACTIONS(57), + [anon_sym_continue] = ACTIONS(59), + [anon_sym_RBRACK] = ACTIONS(171), + [sym_address_literal] = ACTIONS(61), + [anon_sym_true] = ACTIONS(63), + [anon_sym_false] = ACTIONS(63), + [sym_num_literal] = ACTIONS(65), + [sym_byte_string_literal] = ACTIONS(67), + [sym_identifier] = ACTIONS(69), + [sym_line_comment] = ACTIONS(3), + }, + [12] = { + [sym_spec_block] = STATE(161), + [sym_module_access] = STATE(126), + [sym__module_ident] = STATE(614), + [sym_block] = STATE(161), + [sym__block_item] = STATE(7), + [sym_let_statement] = STATE(535), + [sym__expression] = STATE(535), + [sym_lambda_expression] = STATE(535), + [sym_lambda_bindings] = STATE(45), + [sym_if_expression] = STATE(535), + [sym_while_expression] = STATE(535), + [sym_loop_expression] = STATE(535), + [sym_return_expression] = STATE(535), + [sym_abort_expression] = STATE(535), + [sym_assign_expression] = STATE(535), + [sym__binary_operand] = STATE(205), + [sym_binary_expression] = STATE(178), + [sym__unary_expression] = STATE(196), + [sym_unary_expression] = STATE(196), + [sym_unary_op] = STATE(102), + [sym_dereference_expression] = STATE(196), + [sym_borrow_expression] = STATE(196), + [sym_move_or_copy_expression] = STATE(196), + [sym__expression_term] = STATE(161), + [sym_break_expression] = STATE(161), + [sym_continue_expression] = STATE(161), + [sym__name_exp] = STATE(161), + [sym_name_expression] = STATE(113), + [sym_pack_expression] = STATE(161), + [sym_call_expression] = STATE(161), + [sym_expression_list] = STATE(161), + [sym_unit_expression] = STATE(161), + [sym_cast_expression] = STATE(161), + [sym_annotate_expression] = STATE(161), + [sym_dot_expression] = STATE(161), + [sym_index_expression] = STATE(161), + [sym__literal_value] = STATE(161), + [sym_bool_literal] = STATE(161), + [sym__module_identifier] = STATE(610), + [aux_sym_block_repeat1] = STATE(7), + [anon_sym_LBRACE] = ACTIONS(9), + [anon_sym_RBRACE] = ACTIONS(274), + [anon_sym_COLON_COLON] = ACTIONS(15), + [anon_sym_LPAREN] = ACTIONS(29), + [anon_sym_spec] = ACTIONS(31), + [anon_sym_AMP] = ACTIONS(33), + [anon_sym_AMPmut] = ACTIONS(35), + [anon_sym_PIPE] = ACTIONS(37), + [anon_sym_let] = ACTIONS(39), + [anon_sym_if] = ACTIONS(41), + [anon_sym_while] = ACTIONS(43), + [anon_sym_loop] = ACTIONS(45), + [anon_sym_return] = ACTIONS(47), + [anon_sym_abort] = ACTIONS(49), + [anon_sym_STAR] = ACTIONS(51), + [anon_sym_BANG] = ACTIONS(53), + [anon_sym_move] = ACTIONS(55), + [anon_sym_copy] = ACTIONS(55), + [anon_sym_break] = ACTIONS(57), + [anon_sym_continue] = ACTIONS(59), + [sym_address_literal] = ACTIONS(61), + [anon_sym_true] = ACTIONS(63), + [anon_sym_false] = ACTIONS(63), + [sym_num_literal] = ACTIONS(65), + [sym_byte_string_literal] = ACTIONS(67), + [sym_identifier] = ACTIONS(69), + [sym_line_comment] = ACTIONS(3), + }, + [13] = { + [sym_spec_block] = STATE(161), + [sym_module_access] = STATE(126), + [sym__module_ident] = STATE(614), + [sym_block] = STATE(161), + [sym__block_item] = STATE(8), + [sym_let_statement] = STATE(557), + [sym__expression] = STATE(557), + [sym_lambda_expression] = STATE(557), + [sym_lambda_bindings] = STATE(45), + [sym_if_expression] = STATE(557), + [sym_while_expression] = STATE(557), + [sym_loop_expression] = STATE(557), + [sym_return_expression] = STATE(557), + [sym_abort_expression] = STATE(557), + [sym_assign_expression] = STATE(557), + [sym__binary_operand] = STATE(205), + [sym_binary_expression] = STATE(178), + [sym__unary_expression] = STATE(196), + [sym_unary_expression] = STATE(196), + [sym_unary_op] = STATE(102), + [sym_dereference_expression] = STATE(196), + [sym_borrow_expression] = STATE(196), + [sym_move_or_copy_expression] = STATE(196), + [sym__expression_term] = STATE(161), + [sym_break_expression] = STATE(161), + [sym_continue_expression] = STATE(161), + [sym__name_exp] = STATE(161), + [sym_name_expression] = STATE(113), + [sym_pack_expression] = STATE(161), + [sym_call_expression] = STATE(161), + [sym_expression_list] = STATE(161), + [sym_unit_expression] = STATE(161), + [sym_cast_expression] = STATE(161), + [sym_annotate_expression] = STATE(161), + [sym_dot_expression] = STATE(161), + [sym_index_expression] = STATE(161), + [sym__literal_value] = STATE(161), + [sym_bool_literal] = STATE(161), + [sym__module_identifier] = STATE(610), + [aux_sym_block_repeat1] = STATE(8), + [anon_sym_LBRACE] = ACTIONS(9), + [anon_sym_RBRACE] = ACTIONS(276), + [anon_sym_COLON_COLON] = ACTIONS(15), + [anon_sym_LPAREN] = ACTIONS(29), + [anon_sym_spec] = ACTIONS(31), + [anon_sym_AMP] = ACTIONS(33), + [anon_sym_AMPmut] = ACTIONS(35), + [anon_sym_PIPE] = ACTIONS(37), + [anon_sym_let] = ACTIONS(39), + [anon_sym_if] = ACTIONS(41), + [anon_sym_while] = ACTIONS(43), + [anon_sym_loop] = ACTIONS(45), + [anon_sym_return] = ACTIONS(47), + [anon_sym_abort] = ACTIONS(49), + [anon_sym_STAR] = ACTIONS(51), + [anon_sym_BANG] = ACTIONS(53), + [anon_sym_move] = ACTIONS(55), + [anon_sym_copy] = ACTIONS(55), + [anon_sym_break] = ACTIONS(57), + [anon_sym_continue] = ACTIONS(59), + [sym_address_literal] = ACTIONS(61), + [anon_sym_true] = ACTIONS(63), + [anon_sym_false] = ACTIONS(63), + [sym_num_literal] = ACTIONS(65), + [sym_byte_string_literal] = ACTIONS(67), + [sym_identifier] = ACTIONS(69), + [sym_line_comment] = ACTIONS(3), + }, + [14] = { + [sym_spec_block] = STATE(161), + [sym_module_access] = STATE(126), + [sym__module_ident] = STATE(614), + [sym_block] = STATE(161), + [sym__expression] = STATE(294), + [sym_lambda_expression] = STATE(294), + [sym_lambda_bindings] = STATE(33), + [sym_if_expression] = STATE(294), + [sym_while_expression] = STATE(294), + [sym_loop_expression] = STATE(294), + [sym_return_expression] = STATE(294), + [sym_abort_expression] = STATE(294), + [sym_assign_expression] = STATE(294), + [sym__binary_operand] = STATE(205), + [sym_binary_expression] = STATE(178), + [sym__unary_expression] = STATE(198), + [sym_unary_expression] = STATE(198), + [sym_unary_op] = STATE(102), + [sym_dereference_expression] = STATE(198), + [sym_borrow_expression] = STATE(198), + [sym_move_or_copy_expression] = STATE(198), + [sym__expression_term] = STATE(161), + [sym_break_expression] = STATE(161), + [sym_continue_expression] = STATE(161), + [sym__name_exp] = STATE(161), + [sym_name_expression] = STATE(113), + [sym_pack_expression] = STATE(161), + [sym_call_expression] = STATE(161), + [sym_expression_list] = STATE(161), + [sym_unit_expression] = STATE(161), + [sym_cast_expression] = STATE(161), + [sym_annotate_expression] = STATE(161), + [sym_dot_expression] = STATE(161), + [sym_index_expression] = STATE(161), + [sym__literal_value] = STATE(161), + [sym_bool_literal] = STATE(161), + [sym__module_identifier] = STATE(610), + [anon_sym_LBRACE] = ACTIONS(9), + [anon_sym_COLON_COLON] = ACTIONS(15), + [anon_sym_COMMA] = ACTIONS(171), + [anon_sym_as] = ACTIONS(175), + [anon_sym_COLON] = ACTIONS(175), + [anon_sym_LPAREN] = ACTIONS(29), + [anon_sym_RPAREN] = ACTIONS(171), + [anon_sym_spec] = ACTIONS(31), + [anon_sym_AMP] = ACTIONS(33), + [anon_sym_AMPmut] = ACTIONS(35), + [anon_sym_PIPE] = ACTIONS(37), + [anon_sym_if] = ACTIONS(278), + [anon_sym_while] = ACTIONS(280), + [anon_sym_loop] = ACTIONS(282), + [anon_sym_return] = ACTIONS(284), + [anon_sym_abort] = ACTIONS(286), + [anon_sym_STAR] = ACTIONS(51), + [anon_sym_BANG] = ACTIONS(53), + [anon_sym_move] = ACTIONS(55), + [anon_sym_copy] = ACTIONS(55), + [anon_sym_break] = ACTIONS(57), + [anon_sym_continue] = ACTIONS(59), + [sym_address_literal] = ACTIONS(61), + [anon_sym_true] = ACTIONS(63), + [anon_sym_false] = ACTIONS(63), + [sym_num_literal] = ACTIONS(65), + [sym_byte_string_literal] = ACTIONS(67), + [sym_identifier] = ACTIONS(69), + [sym_line_comment] = ACTIONS(3), + }, + [15] = { + [sym_spec_block] = STATE(161), + [sym_module_access] = STATE(126), + [sym__module_ident] = STATE(614), + [sym_block] = STATE(161), + [sym__expression] = STATE(618), + [sym_lambda_expression] = STATE(618), + [sym_lambda_bindings] = STATE(45), + [sym_if_expression] = STATE(618), + [sym_while_expression] = STATE(618), + [sym_loop_expression] = STATE(618), + [sym_return_expression] = STATE(618), + [sym_abort_expression] = STATE(618), + [sym_assign_expression] = STATE(618), + [sym__binary_operand] = STATE(205), + [sym_binary_expression] = STATE(178), + [sym__unary_expression] = STATE(196), + [sym_unary_expression] = STATE(196), + [sym_unary_op] = STATE(102), + [sym_dereference_expression] = STATE(196), + [sym_borrow_expression] = STATE(196), + [sym_move_or_copy_expression] = STATE(196), + [sym__expression_term] = STATE(161), + [sym_break_expression] = STATE(161), + [sym_continue_expression] = STATE(161), + [sym__name_exp] = STATE(161), + [sym_name_expression] = STATE(113), + [sym_pack_expression] = STATE(161), + [sym_call_expression] = STATE(161), + [sym_expression_list] = STATE(161), + [sym_unit_expression] = STATE(161), + [sym_cast_expression] = STATE(161), + [sym_annotate_expression] = STATE(161), + [sym_dot_expression] = STATE(161), + [sym_index_expression] = STATE(161), + [sym__literal_value] = STATE(161), + [sym_bool_literal] = STATE(161), + [sym__module_identifier] = STATE(610), + [anon_sym_LBRACE] = ACTIONS(9), + [anon_sym_COLON_COLON] = ACTIONS(15), + [anon_sym_LPAREN] = ACTIONS(29), + [anon_sym_spec] = ACTIONS(31), + [anon_sym_update] = ACTIONS(288), + [anon_sym_pack] = ACTIONS(288), + [anon_sym_unpack] = ACTIONS(288), + [anon_sym_AMP] = ACTIONS(33), + [anon_sym_AMPmut] = ACTIONS(35), + [anon_sym_PIPE] = ACTIONS(37), + [anon_sym_if] = ACTIONS(41), + [anon_sym_while] = ACTIONS(43), + [anon_sym_loop] = ACTIONS(45), + [anon_sym_return] = ACTIONS(47), + [anon_sym_abort] = ACTIONS(49), + [anon_sym_STAR] = ACTIONS(51), + [anon_sym_BANG] = ACTIONS(53), + [anon_sym_move] = ACTIONS(55), + [anon_sym_copy] = ACTIONS(55), + [anon_sym_break] = ACTIONS(57), + [anon_sym_continue] = ACTIONS(59), + [sym_address_literal] = ACTIONS(61), + [anon_sym_true] = ACTIONS(63), + [anon_sym_false] = ACTIONS(63), + [sym_num_literal] = ACTIONS(65), + [sym_byte_string_literal] = ACTIONS(67), + [sym_identifier] = ACTIONS(69), + [sym_line_comment] = ACTIONS(3), + }, +}; + +static uint16_t ts_small_parse_table[] = { + [0] = 36, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(41), 1, + anon_sym_if, + ACTIONS(43), 1, + anon_sym_while, + ACTIONS(45), 1, + anon_sym_loop, + ACTIONS(47), 1, + anon_sym_return, + ACTIONS(49), 1, + anon_sym_abort, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(290), 1, + anon_sym_RPAREN, + STATE(18), 1, + aux_sym_arg_list_repeat1, + STATE(45), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(196), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(516), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [137] = 36, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(41), 1, + anon_sym_if, + ACTIONS(43), 1, + anon_sym_while, + ACTIONS(45), 1, + anon_sym_loop, + ACTIONS(47), 1, + anon_sym_return, + ACTIONS(49), 1, + anon_sym_abort, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(292), 1, + anon_sym_RPAREN, + STATE(16), 1, + aux_sym_arg_list_repeat1, + STATE(45), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(196), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(517), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [274] = 36, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(294), 1, + anon_sym_LBRACE, + ACTIONS(297), 1, + anon_sym_COLON_COLON, + ACTIONS(300), 1, + anon_sym_LPAREN, + ACTIONS(303), 1, + anon_sym_RPAREN, + ACTIONS(305), 1, + anon_sym_spec, + ACTIONS(308), 1, + anon_sym_AMP, + ACTIONS(311), 1, + anon_sym_AMPmut, + ACTIONS(314), 1, + anon_sym_PIPE, + ACTIONS(317), 1, + anon_sym_if, + ACTIONS(320), 1, + anon_sym_while, + ACTIONS(323), 1, + anon_sym_loop, + ACTIONS(326), 1, + anon_sym_return, + ACTIONS(329), 1, + anon_sym_abort, + ACTIONS(332), 1, + anon_sym_STAR, + ACTIONS(335), 1, + anon_sym_BANG, + ACTIONS(341), 1, + anon_sym_break, + ACTIONS(344), 1, + anon_sym_continue, + ACTIONS(347), 1, + sym_address_literal, + ACTIONS(353), 1, + sym_num_literal, + ACTIONS(356), 1, + sym_byte_string_literal, + ACTIONS(359), 1, + sym_identifier, + STATE(18), 1, + aux_sym_arg_list_repeat1, + STATE(45), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(338), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(350), 2, + anon_sym_true, + anon_sym_false, + STATE(196), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(631), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [411] = 35, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(362), 1, + anon_sym_if, + ACTIONS(364), 1, + anon_sym_while, + ACTIONS(366), 1, + anon_sym_loop, + ACTIONS(368), 1, + anon_sym_return, + ACTIONS(370), 1, + anon_sym_abort, + STATE(71), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + ACTIONS(175), 2, + anon_sym_to, + anon_sym_else, + STATE(203), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(294), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [546] = 35, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(175), 1, + anon_sym_to, + ACTIONS(372), 1, + anon_sym_if, + ACTIONS(374), 1, + anon_sym_while, + ACTIONS(376), 1, + anon_sym_loop, + ACTIONS(378), 1, + anon_sym_return, + ACTIONS(380), 1, + anon_sym_abort, + STATE(48), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(204), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(294), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [680] = 35, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(41), 1, + anon_sym_if, + ACTIONS(43), 1, + anon_sym_while, + ACTIONS(45), 1, + anon_sym_loop, + ACTIONS(47), 1, + anon_sym_return, + ACTIONS(49), 1, + anon_sym_abort, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(382), 1, + anon_sym_RPAREN, + STATE(45), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(196), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(488), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [814] = 35, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(41), 1, + anon_sym_if, + ACTIONS(43), 1, + anon_sym_while, + ACTIONS(45), 1, + anon_sym_loop, + ACTIONS(47), 1, + anon_sym_return, + ACTIONS(49), 1, + anon_sym_abort, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(384), 1, + anon_sym_RPAREN, + STATE(45), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(196), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(488), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [948] = 35, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(278), 1, + anon_sym_if, + ACTIONS(280), 1, + anon_sym_while, + ACTIONS(282), 1, + anon_sym_loop, + ACTIONS(284), 1, + anon_sym_return, + ACTIONS(286), 1, + anon_sym_abort, + ACTIONS(386), 1, + anon_sym_RPAREN, + STATE(33), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(198), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(367), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [1082] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(372), 1, + anon_sym_if, + ACTIONS(374), 1, + anon_sym_while, + ACTIONS(376), 1, + anon_sym_loop, + ACTIONS(378), 1, + anon_sym_return, + ACTIONS(380), 1, + anon_sym_abort, + STATE(48), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(204), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(285), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [1213] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(41), 1, + anon_sym_if, + ACTIONS(43), 1, + anon_sym_while, + ACTIONS(45), 1, + anon_sym_loop, + ACTIONS(47), 1, + anon_sym_return, + ACTIONS(49), 1, + anon_sym_abort, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(45), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(196), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(626), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [1344] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(41), 1, + anon_sym_if, + ACTIONS(43), 1, + anon_sym_while, + ACTIONS(45), 1, + anon_sym_loop, + ACTIONS(47), 1, + anon_sym_return, + ACTIONS(49), 1, + anon_sym_abort, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(45), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(196), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(646), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [1475] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(41), 1, + anon_sym_if, + ACTIONS(43), 1, + anon_sym_while, + ACTIONS(45), 1, + anon_sym_loop, + ACTIONS(47), 1, + anon_sym_return, + ACTIONS(49), 1, + anon_sym_abort, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(45), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(196), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(296), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [1606] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(173), 1, + anon_sym_if, + ACTIONS(177), 1, + anon_sym_while, + ACTIONS(179), 1, + anon_sym_loop, + ACTIONS(181), 1, + anon_sym_return, + ACTIONS(183), 1, + anon_sym_abort, + STATE(66), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(194), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(332), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [1737] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(41), 1, + anon_sym_if, + ACTIONS(43), 1, + anon_sym_while, + ACTIONS(45), 1, + anon_sym_loop, + ACTIONS(47), 1, + anon_sym_return, + ACTIONS(49), 1, + anon_sym_abort, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(45), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(196), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(644), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [1868] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(41), 1, + anon_sym_if, + ACTIONS(43), 1, + anon_sym_while, + ACTIONS(45), 1, + anon_sym_loop, + ACTIONS(47), 1, + anon_sym_return, + ACTIONS(49), 1, + anon_sym_abort, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(45), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(196), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(298), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [1999] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(41), 1, + anon_sym_if, + ACTIONS(43), 1, + anon_sym_while, + ACTIONS(45), 1, + anon_sym_loop, + ACTIONS(47), 1, + anon_sym_return, + ACTIONS(49), 1, + anon_sym_abort, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(45), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(196), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(285), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [2130] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(278), 1, + anon_sym_if, + ACTIONS(280), 1, + anon_sym_while, + ACTIONS(282), 1, + anon_sym_loop, + ACTIONS(284), 1, + anon_sym_return, + ACTIONS(286), 1, + anon_sym_abort, + STATE(33), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(198), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(285), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [2261] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(278), 1, + anon_sym_if, + ACTIONS(280), 1, + anon_sym_while, + ACTIONS(282), 1, + anon_sym_loop, + ACTIONS(284), 1, + anon_sym_return, + ACTIONS(286), 1, + anon_sym_abort, + STATE(33), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(198), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(289), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [2392] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(41), 1, + anon_sym_if, + ACTIONS(43), 1, + anon_sym_while, + ACTIONS(45), 1, + anon_sym_loop, + ACTIONS(47), 1, + anon_sym_return, + ACTIONS(49), 1, + anon_sym_abort, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(45), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(196), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(505), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [2523] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(278), 1, + anon_sym_if, + ACTIONS(280), 1, + anon_sym_while, + ACTIONS(282), 1, + anon_sym_loop, + ACTIONS(284), 1, + anon_sym_return, + ACTIONS(286), 1, + anon_sym_abort, + STATE(33), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(198), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(296), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [2654] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(41), 1, + anon_sym_if, + ACTIONS(43), 1, + anon_sym_while, + ACTIONS(45), 1, + anon_sym_loop, + ACTIONS(47), 1, + anon_sym_return, + ACTIONS(49), 1, + anon_sym_abort, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(45), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(196), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(638), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [2785] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(278), 1, + anon_sym_if, + ACTIONS(280), 1, + anon_sym_while, + ACTIONS(282), 1, + anon_sym_loop, + ACTIONS(284), 1, + anon_sym_return, + ACTIONS(286), 1, + anon_sym_abort, + STATE(33), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(198), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(291), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [2916] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(278), 1, + anon_sym_if, + ACTIONS(280), 1, + anon_sym_while, + ACTIONS(282), 1, + anon_sym_loop, + ACTIONS(284), 1, + anon_sym_return, + ACTIONS(286), 1, + anon_sym_abort, + STATE(33), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(198), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(292), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [3047] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(41), 1, + anon_sym_if, + ACTIONS(43), 1, + anon_sym_while, + ACTIONS(45), 1, + anon_sym_loop, + ACTIONS(47), 1, + anon_sym_return, + ACTIONS(49), 1, + anon_sym_abort, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(45), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(196), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(575), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [3178] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(41), 1, + anon_sym_if, + ACTIONS(43), 1, + anon_sym_while, + ACTIONS(45), 1, + anon_sym_loop, + ACTIONS(47), 1, + anon_sym_return, + ACTIONS(49), 1, + anon_sym_abort, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(45), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(196), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(292), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [3309] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(362), 1, + anon_sym_if, + ACTIONS(364), 1, + anon_sym_while, + ACTIONS(366), 1, + anon_sym_loop, + ACTIONS(368), 1, + anon_sym_return, + ACTIONS(370), 1, + anon_sym_abort, + STATE(71), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(203), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(298), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [3440] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(372), 1, + anon_sym_if, + ACTIONS(374), 1, + anon_sym_while, + ACTIONS(376), 1, + anon_sym_loop, + ACTIONS(378), 1, + anon_sym_return, + ACTIONS(380), 1, + anon_sym_abort, + STATE(48), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(204), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(613), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [3571] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(41), 1, + anon_sym_if, + ACTIONS(43), 1, + anon_sym_while, + ACTIONS(45), 1, + anon_sym_loop, + ACTIONS(47), 1, + anon_sym_return, + ACTIONS(49), 1, + anon_sym_abort, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(45), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(196), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(615), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [3702] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(185), 1, + anon_sym_if, + ACTIONS(187), 1, + anon_sym_while, + ACTIONS(189), 1, + anon_sym_loop, + ACTIONS(191), 1, + anon_sym_return, + ACTIONS(193), 1, + anon_sym_abort, + STATE(82), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(197), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(298), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [3833] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(41), 1, + anon_sym_if, + ACTIONS(43), 1, + anon_sym_while, + ACTIONS(45), 1, + anon_sym_loop, + ACTIONS(47), 1, + anon_sym_return, + ACTIONS(49), 1, + anon_sym_abort, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(45), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(196), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(289), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [3964] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(41), 1, + anon_sym_if, + ACTIONS(43), 1, + anon_sym_while, + ACTIONS(45), 1, + anon_sym_loop, + ACTIONS(47), 1, + anon_sym_return, + ACTIONS(49), 1, + anon_sym_abort, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(45), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(196), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(616), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [4095] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(41), 1, + anon_sym_if, + ACTIONS(43), 1, + anon_sym_while, + ACTIONS(45), 1, + anon_sym_loop, + ACTIONS(47), 1, + anon_sym_return, + ACTIONS(49), 1, + anon_sym_abort, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(45), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(196), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(619), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [4226] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(372), 1, + anon_sym_if, + ACTIONS(374), 1, + anon_sym_while, + ACTIONS(376), 1, + anon_sym_loop, + ACTIONS(378), 1, + anon_sym_return, + ACTIONS(380), 1, + anon_sym_abort, + STATE(48), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(204), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(289), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [4357] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(41), 1, + anon_sym_if, + ACTIONS(43), 1, + anon_sym_while, + ACTIONS(45), 1, + anon_sym_loop, + ACTIONS(47), 1, + anon_sym_return, + ACTIONS(49), 1, + anon_sym_abort, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(45), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(196), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(612), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [4488] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(372), 1, + anon_sym_if, + ACTIONS(374), 1, + anon_sym_while, + ACTIONS(376), 1, + anon_sym_loop, + ACTIONS(378), 1, + anon_sym_return, + ACTIONS(380), 1, + anon_sym_abort, + STATE(48), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(204), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(296), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [4619] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(41), 1, + anon_sym_if, + ACTIONS(43), 1, + anon_sym_while, + ACTIONS(45), 1, + anon_sym_loop, + ACTIONS(47), 1, + anon_sym_return, + ACTIONS(49), 1, + anon_sym_abort, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(45), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(196), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(608), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [4750] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(41), 1, + anon_sym_if, + ACTIONS(43), 1, + anon_sym_while, + ACTIONS(45), 1, + anon_sym_loop, + ACTIONS(47), 1, + anon_sym_return, + ACTIONS(49), 1, + anon_sym_abort, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(45), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(196), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(574), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [4881] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(173), 1, + anon_sym_if, + ACTIONS(177), 1, + anon_sym_while, + ACTIONS(179), 1, + anon_sym_loop, + ACTIONS(181), 1, + anon_sym_return, + ACTIONS(183), 1, + anon_sym_abort, + STATE(66), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(194), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(298), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [5012] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(372), 1, + anon_sym_if, + ACTIONS(374), 1, + anon_sym_while, + ACTIONS(376), 1, + anon_sym_loop, + ACTIONS(378), 1, + anon_sym_return, + ACTIONS(380), 1, + anon_sym_abort, + STATE(48), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(204), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(291), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [5143] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(362), 1, + anon_sym_if, + ACTIONS(364), 1, + anon_sym_while, + ACTIONS(366), 1, + anon_sym_loop, + ACTIONS(368), 1, + anon_sym_return, + ACTIONS(370), 1, + anon_sym_abort, + STATE(71), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(203), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(525), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [5274] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(41), 1, + anon_sym_if, + ACTIONS(43), 1, + anon_sym_while, + ACTIONS(45), 1, + anon_sym_loop, + ACTIONS(47), 1, + anon_sym_return, + ACTIONS(49), 1, + anon_sym_abort, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(45), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(196), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(489), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [5405] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(372), 1, + anon_sym_if, + ACTIONS(374), 1, + anon_sym_while, + ACTIONS(376), 1, + anon_sym_loop, + ACTIONS(378), 1, + anon_sym_return, + ACTIONS(380), 1, + anon_sym_abort, + STATE(48), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(204), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(298), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [5536] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(41), 1, + anon_sym_if, + ACTIONS(43), 1, + anon_sym_while, + ACTIONS(45), 1, + anon_sym_loop, + ACTIONS(47), 1, + anon_sym_return, + ACTIONS(49), 1, + anon_sym_abort, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(45), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(196), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(499), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [5667] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(372), 1, + anon_sym_if, + ACTIONS(374), 1, + anon_sym_while, + ACTIONS(376), 1, + anon_sym_loop, + ACTIONS(378), 1, + anon_sym_return, + ACTIONS(380), 1, + anon_sym_abort, + STATE(48), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(204), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(292), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [5798] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(41), 1, + anon_sym_if, + ACTIONS(43), 1, + anon_sym_while, + ACTIONS(45), 1, + anon_sym_loop, + ACTIONS(47), 1, + anon_sym_return, + ACTIONS(49), 1, + anon_sym_abort, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(45), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(196), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(599), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [5929] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(185), 1, + anon_sym_if, + ACTIONS(187), 1, + anon_sym_while, + ACTIONS(189), 1, + anon_sym_loop, + ACTIONS(191), 1, + anon_sym_return, + ACTIONS(193), 1, + anon_sym_abort, + STATE(82), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(197), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(351), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [6060] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(362), 1, + anon_sym_if, + ACTIONS(364), 1, + anon_sym_while, + ACTIONS(366), 1, + anon_sym_loop, + ACTIONS(368), 1, + anon_sym_return, + ACTIONS(370), 1, + anon_sym_abort, + STATE(71), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(203), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(502), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [6191] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(173), 1, + anon_sym_if, + ACTIONS(177), 1, + anon_sym_while, + ACTIONS(179), 1, + anon_sym_loop, + ACTIONS(181), 1, + anon_sym_return, + ACTIONS(183), 1, + anon_sym_abort, + STATE(66), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(194), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(285), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [6322] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(185), 1, + anon_sym_if, + ACTIONS(187), 1, + anon_sym_while, + ACTIONS(189), 1, + anon_sym_loop, + ACTIONS(191), 1, + anon_sym_return, + ACTIONS(193), 1, + anon_sym_abort, + STATE(82), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(197), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(341), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [6453] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(278), 1, + anon_sym_if, + ACTIONS(280), 1, + anon_sym_while, + ACTIONS(282), 1, + anon_sym_loop, + ACTIONS(284), 1, + anon_sym_return, + ACTIONS(286), 1, + anon_sym_abort, + STATE(33), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(198), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(298), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [6584] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(173), 1, + anon_sym_if, + ACTIONS(177), 1, + anon_sym_while, + ACTIONS(179), 1, + anon_sym_loop, + ACTIONS(181), 1, + anon_sym_return, + ACTIONS(183), 1, + anon_sym_abort, + STATE(66), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(194), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(289), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [6715] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(362), 1, + anon_sym_if, + ACTIONS(364), 1, + anon_sym_while, + ACTIONS(366), 1, + anon_sym_loop, + ACTIONS(368), 1, + anon_sym_return, + ACTIONS(370), 1, + anon_sym_abort, + STATE(71), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(203), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(292), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [6846] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(41), 1, + anon_sym_if, + ACTIONS(43), 1, + anon_sym_while, + ACTIONS(45), 1, + anon_sym_loop, + ACTIONS(47), 1, + anon_sym_return, + ACTIONS(49), 1, + anon_sym_abort, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(45), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(196), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(650), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [6977] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(362), 1, + anon_sym_if, + ACTIONS(364), 1, + anon_sym_while, + ACTIONS(366), 1, + anon_sym_loop, + ACTIONS(368), 1, + anon_sym_return, + ACTIONS(370), 1, + anon_sym_abort, + STATE(71), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(203), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(291), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [7108] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(362), 1, + anon_sym_if, + ACTIONS(364), 1, + anon_sym_while, + ACTIONS(366), 1, + anon_sym_loop, + ACTIONS(368), 1, + anon_sym_return, + ACTIONS(370), 1, + anon_sym_abort, + STATE(71), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(203), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(296), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [7239] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(362), 1, + anon_sym_if, + ACTIONS(364), 1, + anon_sym_while, + ACTIONS(366), 1, + anon_sym_loop, + ACTIONS(368), 1, + anon_sym_return, + ACTIONS(370), 1, + anon_sym_abort, + STATE(71), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(203), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(289), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [7370] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(362), 1, + anon_sym_if, + ACTIONS(364), 1, + anon_sym_while, + ACTIONS(366), 1, + anon_sym_loop, + ACTIONS(368), 1, + anon_sym_return, + ACTIONS(370), 1, + anon_sym_abort, + STATE(71), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(203), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(285), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [7501] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(173), 1, + anon_sym_if, + ACTIONS(177), 1, + anon_sym_while, + ACTIONS(179), 1, + anon_sym_loop, + ACTIONS(181), 1, + anon_sym_return, + ACTIONS(183), 1, + anon_sym_abort, + STATE(66), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(194), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(296), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [7632] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(41), 1, + anon_sym_if, + ACTIONS(43), 1, + anon_sym_while, + ACTIONS(45), 1, + anon_sym_loop, + ACTIONS(47), 1, + anon_sym_return, + ACTIONS(49), 1, + anon_sym_abort, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(45), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(196), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(634), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [7763] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(41), 1, + anon_sym_if, + ACTIONS(43), 1, + anon_sym_while, + ACTIONS(45), 1, + anon_sym_loop, + ACTIONS(47), 1, + anon_sym_return, + ACTIONS(49), 1, + anon_sym_abort, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(45), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(196), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(291), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [7894] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(173), 1, + anon_sym_if, + ACTIONS(177), 1, + anon_sym_while, + ACTIONS(179), 1, + anon_sym_loop, + ACTIONS(181), 1, + anon_sym_return, + ACTIONS(183), 1, + anon_sym_abort, + STATE(66), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(194), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(329), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [8025] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(185), 1, + anon_sym_if, + ACTIONS(187), 1, + anon_sym_while, + ACTIONS(189), 1, + anon_sym_loop, + ACTIONS(191), 1, + anon_sym_return, + ACTIONS(193), 1, + anon_sym_abort, + STATE(82), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(197), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(292), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [8156] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(185), 1, + anon_sym_if, + ACTIONS(187), 1, + anon_sym_while, + ACTIONS(189), 1, + anon_sym_loop, + ACTIONS(191), 1, + anon_sym_return, + ACTIONS(193), 1, + anon_sym_abort, + STATE(82), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(197), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(291), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [8287] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(173), 1, + anon_sym_if, + ACTIONS(177), 1, + anon_sym_while, + ACTIONS(179), 1, + anon_sym_loop, + ACTIONS(181), 1, + anon_sym_return, + ACTIONS(183), 1, + anon_sym_abort, + STATE(66), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(194), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(291), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [8418] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(173), 1, + anon_sym_if, + ACTIONS(177), 1, + anon_sym_while, + ACTIONS(179), 1, + anon_sym_loop, + ACTIONS(181), 1, + anon_sym_return, + ACTIONS(183), 1, + anon_sym_abort, + STATE(66), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(194), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(292), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [8549] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(185), 1, + anon_sym_if, + ACTIONS(187), 1, + anon_sym_while, + ACTIONS(189), 1, + anon_sym_loop, + ACTIONS(191), 1, + anon_sym_return, + ACTIONS(193), 1, + anon_sym_abort, + STATE(82), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(197), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(296), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [8680] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(185), 1, + anon_sym_if, + ACTIONS(187), 1, + anon_sym_while, + ACTIONS(189), 1, + anon_sym_loop, + ACTIONS(191), 1, + anon_sym_return, + ACTIONS(193), 1, + anon_sym_abort, + STATE(82), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(197), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(289), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [8811] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(41), 1, + anon_sym_if, + ACTIONS(43), 1, + anon_sym_while, + ACTIONS(45), 1, + anon_sym_loop, + ACTIONS(47), 1, + anon_sym_return, + ACTIONS(49), 1, + anon_sym_abort, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(45), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(196), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(625), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [8942] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(41), 1, + anon_sym_if, + ACTIONS(43), 1, + anon_sym_while, + ACTIONS(45), 1, + anon_sym_loop, + ACTIONS(47), 1, + anon_sym_return, + ACTIONS(49), 1, + anon_sym_abort, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(45), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(196), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(627), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [9073] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + ACTIONS(185), 1, + anon_sym_if, + ACTIONS(187), 1, + anon_sym_while, + ACTIONS(189), 1, + anon_sym_loop, + ACTIONS(191), 1, + anon_sym_return, + ACTIONS(193), 1, + anon_sym_abort, + STATE(82), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(197), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(285), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [9204] = 34, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(37), 1, + anon_sym_PIPE, + ACTIONS(41), 1, + anon_sym_if, + ACTIONS(43), 1, + anon_sym_while, + ACTIONS(45), 1, + anon_sym_loop, + ACTIONS(47), 1, + anon_sym_return, + ACTIONS(49), 1, + anon_sym_abort, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(45), 1, + sym_lambda_bindings, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(178), 1, + sym_binary_expression, + STATE(205), 1, + sym__binary_operand, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(196), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(488), 8, + sym__expression, + sym_lambda_expression, + sym_if_expression, + sym_while_expression, + sym_loop_expression, + sym_return_expression, + sym_abort_expression, + sym_assign_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [9335] = 24, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(188), 7, + sym__binary_operand, + sym_binary_expression, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [9431] = 24, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(184), 7, + sym__binary_operand, + sym_binary_expression, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [9527] = 24, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(180), 7, + sym__binary_operand, + sym_binary_expression, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [9623] = 24, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(189), 7, + sym__binary_operand, + sym_binary_expression, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [9719] = 24, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(182), 7, + sym__binary_operand, + sym_binary_expression, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [9815] = 24, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(190), 7, + sym__binary_operand, + sym_binary_expression, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [9911] = 24, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(187), 7, + sym__binary_operand, + sym_binary_expression, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [10007] = 24, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(181), 7, + sym__binary_operand, + sym_binary_expression, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [10103] = 24, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(186), 7, + sym__binary_operand, + sym_binary_expression, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [10199] = 24, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(179), 7, + sym__binary_operand, + sym_binary_expression, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [10295] = 24, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(185), 7, + sym__binary_operand, + sym_binary_expression, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [10391] = 24, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(177), 7, + sym__binary_operand, + sym_binary_expression, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [10487] = 24, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(183), 7, + sym__binary_operand, + sym_binary_expression, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [10583] = 24, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(175), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [10677] = 24, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(174), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [10771] = 24, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(29), 1, + anon_sym_LPAREN, + ACTIONS(31), 1, + anon_sym_spec, + ACTIONS(33), 1, + anon_sym_AMP, + ACTIONS(35), 1, + anon_sym_AMPmut, + ACTIONS(51), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_BANG, + ACTIONS(57), 1, + anon_sym_break, + ACTIONS(59), 1, + anon_sym_continue, + ACTIONS(61), 1, + sym_address_literal, + ACTIONS(65), 1, + sym_num_literal, + ACTIONS(67), 1, + sym_byte_string_literal, + ACTIONS(69), 1, + sym_identifier, + STATE(102), 1, + sym_unary_op, + STATE(113), 1, + sym_name_expression, + STATE(126), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(55), 2, + anon_sym_move, + anon_sym_copy, + ACTIONS(63), 2, + anon_sym_true, + anon_sym_false, + STATE(173), 5, + sym__unary_expression, + sym_unary_expression, + sym_dereference_expression, + sym_borrow_expression, + sym_move_or_copy_expression, + STATE(161), 16, + sym_spec_block, + sym_block, + sym__expression_term, + sym_break_expression, + sym_continue_expression, + sym__name_exp, + sym_pack_expression, + sym_call_expression, + sym_expression_list, + sym_unit_expression, + sym_cast_expression, + sym_annotate_expression, + sym_dot_expression, + sym_index_expression, + sym__literal_value, + sym_bool_literal, + [10865] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(390), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(388), 31, + anon_sym_RBRACE, + anon_sym_use, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_native, + anon_sym_COLON, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_RPAREN, + anon_sym_spec, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [10912] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(394), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(392), 31, + anon_sym_RBRACE, + anon_sym_use, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_native, + anon_sym_COLON, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_RPAREN, + anon_sym_spec, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [10959] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(398), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(396), 31, + anon_sym_RBRACE, + anon_sym_use, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_native, + anon_sym_COLON, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_RPAREN, + anon_sym_spec, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [11006] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(402), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(400), 31, + anon_sym_RBRACE, + anon_sym_use, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_native, + anon_sym_COLON, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_RPAREN, + anon_sym_spec, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [11053] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(406), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(404), 31, + anon_sym_RBRACE, + anon_sym_use, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_native, + anon_sym_COLON, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_RPAREN, + anon_sym_spec, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [11100] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(410), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(408), 31, + anon_sym_RBRACE, + anon_sym_use, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_native, + anon_sym_COLON, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_RPAREN, + anon_sym_spec, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [11147] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(414), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(412), 31, + anon_sym_RBRACE, + anon_sym_use, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_native, + anon_sym_COLON, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_RPAREN, + anon_sym_spec, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [11194] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(418), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(416), 31, + anon_sym_RBRACE, + anon_sym_use, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_native, + anon_sym_COLON, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_RPAREN, + anon_sym_spec, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [11241] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(422), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(420), 31, + anon_sym_RBRACE, + anon_sym_use, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_native, + anon_sym_COLON, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_RPAREN, + anon_sym_spec, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [11288] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(426), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(424), 31, + anon_sym_RBRACE, + anon_sym_use, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_native, + anon_sym_COLON, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_RPAREN, + anon_sym_spec, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [11335] = 7, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(428), 1, + anon_sym_LBRACE, + ACTIONS(432), 1, + anon_sym_LPAREN, + STATE(166), 1, + sym_field_initialize_list, + STATE(169), 1, + sym_arg_list, + ACTIONS(434), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(430), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [11387] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(438), 1, + anon_sym_COLON_COLON, + ACTIONS(440), 9, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(436), 26, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_acquires, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [11433] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(408), 10, + ts_builtin_sym_end, + anon_sym_LBRACE, + anon_sym_COLON_COLON, + anon_sym_LPAREN, + anon_sym_AMPmut, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_BANG, + sym_address_literal, + sym_byte_string_literal, + ACTIONS(410), 25, + anon_sym_address, + anon_sym_script, + anon_sym_use, + anon_sym_module, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + anon_sym_AMP, + anon_sym_let, + anon_sym_if, + anon_sym_while, + anon_sym_loop, + anon_sym_return, + anon_sym_abort, + anon_sym_move, + anon_sym_copy, + anon_sym_break, + anon_sym_continue, + anon_sym_true, + anon_sym_false, + sym_num_literal, + sym_identifier, + [11476] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(442), 10, + ts_builtin_sym_end, + anon_sym_LBRACE, + anon_sym_COLON_COLON, + anon_sym_LPAREN, + anon_sym_AMPmut, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_BANG, + sym_address_literal, + sym_byte_string_literal, + ACTIONS(444), 25, + anon_sym_address, + anon_sym_script, + anon_sym_use, + anon_sym_module, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + anon_sym_AMP, + anon_sym_let, + anon_sym_if, + anon_sym_while, + anon_sym_loop, + anon_sym_return, + anon_sym_abort, + anon_sym_move, + anon_sym_copy, + anon_sym_break, + anon_sym_continue, + anon_sym_true, + anon_sym_false, + sym_num_literal, + sym_identifier, + [11519] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(446), 10, + ts_builtin_sym_end, + anon_sym_LBRACE, + anon_sym_COLON_COLON, + anon_sym_LPAREN, + anon_sym_AMPmut, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_BANG, + sym_address_literal, + sym_byte_string_literal, + ACTIONS(448), 25, + anon_sym_address, + anon_sym_script, + anon_sym_use, + anon_sym_module, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + anon_sym_AMP, + anon_sym_let, + anon_sym_if, + anon_sym_while, + anon_sym_loop, + anon_sym_return, + anon_sym_abort, + anon_sym_move, + anon_sym_copy, + anon_sym_break, + anon_sym_continue, + anon_sym_true, + anon_sym_false, + sym_num_literal, + sym_identifier, + [11562] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(450), 10, + ts_builtin_sym_end, + anon_sym_LBRACE, + anon_sym_COLON_COLON, + anon_sym_LPAREN, + anon_sym_AMPmut, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_BANG, + sym_address_literal, + sym_byte_string_literal, + ACTIONS(452), 25, + anon_sym_address, + anon_sym_script, + anon_sym_use, + anon_sym_module, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + anon_sym_AMP, + anon_sym_let, + anon_sym_if, + anon_sym_while, + anon_sym_loop, + anon_sym_return, + anon_sym_abort, + anon_sym_move, + anon_sym_copy, + anon_sym_break, + anon_sym_continue, + anon_sym_true, + anon_sym_false, + sym_num_literal, + sym_identifier, + [11605] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(454), 10, + ts_builtin_sym_end, + anon_sym_LBRACE, + anon_sym_COLON_COLON, + anon_sym_LPAREN, + anon_sym_AMPmut, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_BANG, + sym_address_literal, + sym_byte_string_literal, + ACTIONS(456), 25, + anon_sym_address, + anon_sym_script, + anon_sym_use, + anon_sym_module, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + anon_sym_AMP, + anon_sym_let, + anon_sym_if, + anon_sym_while, + anon_sym_loop, + anon_sym_return, + anon_sym_abort, + anon_sym_move, + anon_sym_copy, + anon_sym_break, + anon_sym_continue, + anon_sym_true, + anon_sym_false, + sym_num_literal, + sym_identifier, + [11648] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(416), 10, + ts_builtin_sym_end, + anon_sym_LBRACE, + anon_sym_COLON_COLON, + anon_sym_LPAREN, + anon_sym_AMPmut, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_BANG, + sym_address_literal, + sym_byte_string_literal, + ACTIONS(418), 25, + anon_sym_address, + anon_sym_script, + anon_sym_use, + anon_sym_module, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + anon_sym_AMP, + anon_sym_let, + anon_sym_if, + anon_sym_while, + anon_sym_loop, + anon_sym_return, + anon_sym_abort, + anon_sym_move, + anon_sym_copy, + anon_sym_break, + anon_sym_continue, + anon_sym_true, + anon_sym_false, + sym_num_literal, + sym_identifier, + [11691] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(460), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(458), 27, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_acquires, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [11734] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(462), 10, + ts_builtin_sym_end, + anon_sym_LBRACE, + anon_sym_COLON_COLON, + anon_sym_LPAREN, + anon_sym_AMPmut, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_BANG, + sym_address_literal, + sym_byte_string_literal, + ACTIONS(464), 25, + anon_sym_address, + anon_sym_script, + anon_sym_use, + anon_sym_module, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + anon_sym_AMP, + anon_sym_let, + anon_sym_if, + anon_sym_while, + anon_sym_loop, + anon_sym_return, + anon_sym_abort, + anon_sym_move, + anon_sym_copy, + anon_sym_break, + anon_sym_continue, + anon_sym_true, + anon_sym_false, + sym_num_literal, + sym_identifier, + [11777] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(466), 10, + ts_builtin_sym_end, + anon_sym_LBRACE, + anon_sym_COLON_COLON, + anon_sym_LPAREN, + anon_sym_AMPmut, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_BANG, + sym_address_literal, + sym_byte_string_literal, + ACTIONS(468), 25, + anon_sym_address, + anon_sym_script, + anon_sym_use, + anon_sym_module, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + anon_sym_AMP, + anon_sym_let, + anon_sym_if, + anon_sym_while, + anon_sym_loop, + anon_sym_return, + anon_sym_abort, + anon_sym_move, + anon_sym_copy, + anon_sym_break, + anon_sym_continue, + anon_sym_true, + anon_sym_false, + sym_num_literal, + sym_identifier, + [11820] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(472), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(470), 27, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_acquires, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [11863] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(476), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(474), 27, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_acquires, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [11906] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(482), 1, + anon_sym_LT, + STATE(147), 1, + sym_type_arguments, + ACTIONS(480), 7, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(478), 26, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [11953] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(485), 10, + ts_builtin_sym_end, + anon_sym_LBRACE, + anon_sym_COLON_COLON, + anon_sym_LPAREN, + anon_sym_AMPmut, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_BANG, + sym_address_literal, + sym_byte_string_literal, + ACTIONS(487), 25, + anon_sym_address, + anon_sym_script, + anon_sym_use, + anon_sym_module, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + anon_sym_AMP, + anon_sym_let, + anon_sym_if, + anon_sym_while, + anon_sym_loop, + anon_sym_return, + anon_sym_abort, + anon_sym_move, + anon_sym_copy, + anon_sym_break, + anon_sym_continue, + anon_sym_true, + anon_sym_false, + sym_num_literal, + sym_identifier, + [11996] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(491), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(489), 27, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_acquires, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [12039] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(493), 10, + ts_builtin_sym_end, + anon_sym_LBRACE, + anon_sym_COLON_COLON, + anon_sym_LPAREN, + anon_sym_AMPmut, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_BANG, + sym_address_literal, + sym_byte_string_literal, + ACTIONS(495), 25, + anon_sym_address, + anon_sym_script, + anon_sym_use, + anon_sym_module, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + anon_sym_AMP, + anon_sym_let, + anon_sym_if, + anon_sym_while, + anon_sym_loop, + anon_sym_return, + anon_sym_abort, + anon_sym_move, + anon_sym_copy, + anon_sym_break, + anon_sym_continue, + anon_sym_true, + anon_sym_false, + sym_num_literal, + sym_identifier, + [12082] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(497), 10, + ts_builtin_sym_end, + anon_sym_LBRACE, + anon_sym_COLON_COLON, + anon_sym_LPAREN, + anon_sym_AMPmut, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_BANG, + sym_address_literal, + sym_byte_string_literal, + ACTIONS(499), 25, + anon_sym_address, + anon_sym_script, + anon_sym_use, + anon_sym_module, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + anon_sym_AMP, + anon_sym_let, + anon_sym_if, + anon_sym_while, + anon_sym_loop, + anon_sym_return, + anon_sym_abort, + anon_sym_move, + anon_sym_copy, + anon_sym_break, + anon_sym_continue, + anon_sym_true, + anon_sym_false, + sym_num_literal, + sym_identifier, + [12125] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(503), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(501), 27, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_acquires, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [12168] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(505), 10, + ts_builtin_sym_end, + anon_sym_LBRACE, + anon_sym_COLON_COLON, + anon_sym_LPAREN, + anon_sym_AMPmut, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_BANG, + sym_address_literal, + sym_byte_string_literal, + ACTIONS(507), 25, + anon_sym_address, + anon_sym_script, + anon_sym_use, + anon_sym_module, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + anon_sym_AMP, + anon_sym_let, + anon_sym_if, + anon_sym_while, + anon_sym_loop, + anon_sym_return, + anon_sym_abort, + anon_sym_move, + anon_sym_copy, + anon_sym_break, + anon_sym_continue, + anon_sym_true, + anon_sym_false, + sym_num_literal, + sym_identifier, + [12211] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(509), 10, + ts_builtin_sym_end, + anon_sym_LBRACE, + anon_sym_COLON_COLON, + anon_sym_LPAREN, + anon_sym_AMPmut, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_BANG, + sym_address_literal, + sym_byte_string_literal, + ACTIONS(511), 25, + anon_sym_address, + anon_sym_script, + anon_sym_use, + anon_sym_module, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + anon_sym_AMP, + anon_sym_let, + anon_sym_if, + anon_sym_while, + anon_sym_loop, + anon_sym_return, + anon_sym_abort, + anon_sym_move, + anon_sym_copy, + anon_sym_break, + anon_sym_continue, + anon_sym_true, + anon_sym_false, + sym_num_literal, + sym_identifier, + [12254] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(513), 10, + ts_builtin_sym_end, + anon_sym_LBRACE, + anon_sym_COLON_COLON, + anon_sym_LPAREN, + anon_sym_AMPmut, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_BANG, + sym_address_literal, + sym_byte_string_literal, + ACTIONS(515), 25, + anon_sym_address, + anon_sym_script, + anon_sym_use, + anon_sym_module, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + anon_sym_AMP, + anon_sym_let, + anon_sym_if, + anon_sym_while, + anon_sym_loop, + anon_sym_return, + anon_sym_abort, + anon_sym_move, + anon_sym_copy, + anon_sym_break, + anon_sym_continue, + anon_sym_true, + anon_sym_false, + sym_num_literal, + sym_identifier, + [12297] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(517), 10, + ts_builtin_sym_end, + anon_sym_LBRACE, + anon_sym_COLON_COLON, + anon_sym_LPAREN, + anon_sym_AMPmut, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_BANG, + sym_address_literal, + sym_byte_string_literal, + ACTIONS(519), 25, + anon_sym_address, + anon_sym_script, + anon_sym_use, + anon_sym_module, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + anon_sym_AMP, + anon_sym_let, + anon_sym_if, + anon_sym_while, + anon_sym_loop, + anon_sym_return, + anon_sym_abort, + anon_sym_move, + anon_sym_copy, + anon_sym_break, + anon_sym_continue, + anon_sym_true, + anon_sym_false, + sym_num_literal, + sym_identifier, + [12340] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(521), 10, + ts_builtin_sym_end, + anon_sym_LBRACE, + anon_sym_COLON_COLON, + anon_sym_LPAREN, + anon_sym_AMPmut, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_BANG, + sym_address_literal, + sym_byte_string_literal, + ACTIONS(523), 25, + anon_sym_address, + anon_sym_script, + anon_sym_use, + anon_sym_module, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + anon_sym_AMP, + anon_sym_let, + anon_sym_if, + anon_sym_while, + anon_sym_loop, + anon_sym_return, + anon_sym_abort, + anon_sym_move, + anon_sym_copy, + anon_sym_break, + anon_sym_continue, + anon_sym_true, + anon_sym_false, + sym_num_literal, + sym_identifier, + [12383] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(392), 10, + ts_builtin_sym_end, + anon_sym_LBRACE, + anon_sym_COLON_COLON, + anon_sym_LPAREN, + anon_sym_AMPmut, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_BANG, + sym_address_literal, + sym_byte_string_literal, + ACTIONS(394), 25, + anon_sym_address, + anon_sym_script, + anon_sym_use, + anon_sym_module, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + anon_sym_AMP, + anon_sym_let, + anon_sym_if, + anon_sym_while, + anon_sym_loop, + anon_sym_return, + anon_sym_abort, + anon_sym_move, + anon_sym_copy, + anon_sym_break, + anon_sym_continue, + anon_sym_true, + anon_sym_false, + sym_num_literal, + sym_identifier, + [12426] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(525), 10, + ts_builtin_sym_end, + anon_sym_LBRACE, + anon_sym_COLON_COLON, + anon_sym_LPAREN, + anon_sym_AMPmut, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_BANG, + sym_address_literal, + sym_byte_string_literal, + ACTIONS(527), 25, + anon_sym_address, + anon_sym_script, + anon_sym_use, + anon_sym_module, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + anon_sym_AMP, + anon_sym_let, + anon_sym_if, + anon_sym_while, + anon_sym_loop, + anon_sym_return, + anon_sym_abort, + anon_sym_move, + anon_sym_copy, + anon_sym_break, + anon_sym_continue, + anon_sym_true, + anon_sym_false, + sym_num_literal, + sym_identifier, + [12469] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(531), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(529), 27, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_acquires, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [12512] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(533), 10, + ts_builtin_sym_end, + anon_sym_LBRACE, + anon_sym_COLON_COLON, + anon_sym_LPAREN, + anon_sym_AMPmut, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_BANG, + sym_address_literal, + sym_byte_string_literal, + ACTIONS(535), 25, + anon_sym_address, + anon_sym_script, + anon_sym_use, + anon_sym_module, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + anon_sym_AMP, + anon_sym_let, + anon_sym_if, + anon_sym_while, + anon_sym_loop, + anon_sym_return, + anon_sym_abort, + anon_sym_move, + anon_sym_copy, + anon_sym_break, + anon_sym_continue, + anon_sym_true, + anon_sym_false, + sym_num_literal, + sym_identifier, + [12555] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(537), 10, + ts_builtin_sym_end, + anon_sym_LBRACE, + anon_sym_COLON_COLON, + anon_sym_LPAREN, + anon_sym_AMPmut, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_BANG, + sym_address_literal, + sym_byte_string_literal, + ACTIONS(539), 25, + anon_sym_address, + anon_sym_script, + anon_sym_use, + anon_sym_module, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + anon_sym_AMP, + anon_sym_let, + anon_sym_if, + anon_sym_while, + anon_sym_loop, + anon_sym_return, + anon_sym_abort, + anon_sym_move, + anon_sym_copy, + anon_sym_break, + anon_sym_continue, + anon_sym_true, + anon_sym_false, + sym_num_literal, + sym_identifier, + [12598] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(541), 10, + ts_builtin_sym_end, + anon_sym_LBRACE, + anon_sym_COLON_COLON, + anon_sym_LPAREN, + anon_sym_AMPmut, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_BANG, + sym_address_literal, + sym_byte_string_literal, + ACTIONS(543), 25, + anon_sym_address, + anon_sym_script, + anon_sym_use, + anon_sym_module, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + anon_sym_AMP, + anon_sym_let, + anon_sym_if, + anon_sym_while, + anon_sym_loop, + anon_sym_return, + anon_sym_abort, + anon_sym_move, + anon_sym_copy, + anon_sym_break, + anon_sym_continue, + anon_sym_true, + anon_sym_false, + sym_num_literal, + sym_identifier, + [12641] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(545), 10, + ts_builtin_sym_end, + anon_sym_LBRACE, + anon_sym_COLON_COLON, + anon_sym_LPAREN, + anon_sym_AMPmut, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_BANG, + sym_address_literal, + sym_byte_string_literal, + ACTIONS(547), 25, + anon_sym_address, + anon_sym_script, + anon_sym_use, + anon_sym_module, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + anon_sym_AMP, + anon_sym_let, + anon_sym_if, + anon_sym_while, + anon_sym_loop, + anon_sym_return, + anon_sym_abort, + anon_sym_move, + anon_sym_copy, + anon_sym_break, + anon_sym_continue, + anon_sym_true, + anon_sym_false, + sym_num_literal, + sym_identifier, + [12684] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(549), 10, + ts_builtin_sym_end, + anon_sym_LBRACE, + anon_sym_COLON_COLON, + anon_sym_LPAREN, + anon_sym_AMPmut, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_BANG, + sym_address_literal, + sym_byte_string_literal, + ACTIONS(551), 25, + anon_sym_address, + anon_sym_script, + anon_sym_use, + anon_sym_module, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + anon_sym_AMP, + anon_sym_let, + anon_sym_if, + anon_sym_while, + anon_sym_loop, + anon_sym_return, + anon_sym_abort, + anon_sym_move, + anon_sym_copy, + anon_sym_break, + anon_sym_continue, + anon_sym_true, + anon_sym_false, + sym_num_literal, + sym_identifier, + [12727] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(553), 10, + ts_builtin_sym_end, + anon_sym_LBRACE, + anon_sym_COLON_COLON, + anon_sym_LPAREN, + anon_sym_AMPmut, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_BANG, + sym_address_literal, + sym_byte_string_literal, + ACTIONS(555), 25, + anon_sym_address, + anon_sym_script, + anon_sym_use, + anon_sym_module, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + anon_sym_AMP, + anon_sym_let, + anon_sym_if, + anon_sym_while, + anon_sym_loop, + anon_sym_return, + anon_sym_abort, + anon_sym_move, + anon_sym_copy, + anon_sym_break, + anon_sym_continue, + anon_sym_true, + anon_sym_false, + sym_num_literal, + sym_identifier, + [12770] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(557), 10, + ts_builtin_sym_end, + anon_sym_LBRACE, + anon_sym_COLON_COLON, + anon_sym_LPAREN, + anon_sym_AMPmut, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_BANG, + sym_address_literal, + sym_byte_string_literal, + ACTIONS(559), 25, + anon_sym_address, + anon_sym_script, + anon_sym_use, + anon_sym_module, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + anon_sym_AMP, + anon_sym_let, + anon_sym_if, + anon_sym_while, + anon_sym_loop, + anon_sym_return, + anon_sym_abort, + anon_sym_move, + anon_sym_copy, + anon_sym_break, + anon_sym_continue, + anon_sym_true, + anon_sym_false, + sym_num_literal, + sym_identifier, + [12813] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(563), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(561), 26, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [12855] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(567), 1, + anon_sym_COLON_COLON, + ACTIONS(569), 9, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(565), 23, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [12898] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(573), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(571), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [12938] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(577), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(575), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [12978] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(581), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(579), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [13018] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(585), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(583), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [13058] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(589), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(587), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [13098] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(593), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(591), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [13138] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(597), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(595), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [13178] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(601), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(599), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [13218] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(605), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(603), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [13258] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(609), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(607), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [13298] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(613), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(611), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [13338] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(617), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(615), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [13378] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(623), 1, + anon_sym_DOT, + ACTIONS(625), 1, + anon_sym_LBRACK, + ACTIONS(621), 7, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + ACTIONS(619), 23, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_RBRACK, + [13422] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(629), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(627), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [13462] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(633), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(631), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [13502] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(637), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(635), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [13542] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(641), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(639), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [13582] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(645), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(643), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [13622] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(649), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(647), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [13662] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(653), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(651), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [13702] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(657), 8, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + anon_sym_DOT, + ACTIONS(655), 24, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_RBRACK, + [13742] = 14, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(659), 1, + anon_sym_RBRACE, + ACTIONS(661), 1, + anon_sym_use, + ACTIONS(663), 1, + anon_sym_native, + ACTIONS(667), 1, + anon_sym_invariant, + ACTIONS(669), 1, + anon_sym_include, + ACTIONS(671), 1, + anon_sym_apply, + ACTIONS(673), 1, + anon_sym_pragma, + ACTIONS(677), 1, + anon_sym_define, + ACTIONS(679), 1, + sym_identifier, + ACTIONS(675), 2, + anon_sym_global, + anon_sym_local, + STATE(176), 2, + sym_use_decl, + aux_sym_script_block_repeat1, + ACTIONS(665), 6, + anon_sym_assert, + anon_sym_assume, + anon_sym_decreases, + anon_sym_aborts_if, + anon_sym_ensures, + anon_sym_requires, + STATE(192), 11, + sym__spec_block_memeber, + sym_spec_condition, + sym_spec_invariant, + sym_spec_include, + sym_spec_apply, + sym_spec_pragma, + sym_spec_variable, + sym__spec_function, + sym_native_spec_function, + sym_usual_spec_function, + aux_sym_spec_body_repeat1, + [13802] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(683), 7, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + ACTIONS(681), 23, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_RBRACK, + [13840] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(687), 7, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + ACTIONS(685), 23, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_RBRACK, + [13878] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(691), 7, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + ACTIONS(689), 23, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_RBRACK, + [13916] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(695), 7, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + ACTIONS(693), 23, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_RBRACK, + [13954] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(699), 7, + anon_sym_EQ, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + ACTIONS(697), 23, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_RBRACK, + [13992] = 14, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(661), 1, + anon_sym_use, + ACTIONS(663), 1, + anon_sym_native, + ACTIONS(667), 1, + anon_sym_invariant, + ACTIONS(669), 1, + anon_sym_include, + ACTIONS(671), 1, + anon_sym_apply, + ACTIONS(673), 1, + anon_sym_pragma, + ACTIONS(677), 1, + anon_sym_define, + ACTIONS(679), 1, + sym_identifier, + ACTIONS(701), 1, + anon_sym_RBRACE, + ACTIONS(675), 2, + anon_sym_global, + anon_sym_local, + STATE(207), 2, + sym_use_decl, + aux_sym_script_block_repeat1, + ACTIONS(665), 6, + anon_sym_assert, + anon_sym_assume, + anon_sym_decreases, + anon_sym_aborts_if, + anon_sym_ensures, + anon_sym_requires, + STATE(191), 11, + sym__spec_block_memeber, + sym_spec_condition, + sym_spec_invariant, + sym_spec_include, + sym_spec_apply, + sym_spec_pragma, + sym_spec_variable, + sym__spec_function, + sym_native_spec_function, + sym_usual_spec_function, + aux_sym_spec_body_repeat1, + [14052] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(705), 6, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + ACTIONS(703), 23, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_RBRACK, + [14089] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(709), 6, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + ACTIONS(707), 9, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_RBRACK, + ACTIONS(711), 14, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + [14128] = 12, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(713), 1, + anon_sym_AMP, + ACTIONS(715), 1, + anon_sym_PIPE, + ACTIONS(717), 1, + anon_sym_DOT_DOT, + ACTIONS(719), 1, + anon_sym_CARET, + ACTIONS(725), 1, + anon_sym_STAR, + ACTIONS(727), 1, + anon_sym_SLASH, + ACTIONS(729), 1, + anon_sym_PERCENT, + ACTIONS(721), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(723), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(705), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ_EQ, + ACTIONS(703), 15, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_RBRACK, + [14183] = 8, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(725), 1, + anon_sym_STAR, + ACTIONS(727), 1, + anon_sym_SLASH, + ACTIONS(729), 1, + anon_sym_PERCENT, + ACTIONS(721), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(723), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(733), 5, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + ACTIONS(731), 17, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_RBRACK, + [14230] = 12, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(713), 1, + anon_sym_AMP, + ACTIONS(715), 1, + anon_sym_PIPE, + ACTIONS(717), 1, + anon_sym_DOT_DOT, + ACTIONS(719), 1, + anon_sym_CARET, + ACTIONS(725), 1, + anon_sym_STAR, + ACTIONS(727), 1, + anon_sym_SLASH, + ACTIONS(729), 1, + anon_sym_PERCENT, + ACTIONS(721), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(723), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(733), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ_EQ, + ACTIONS(731), 15, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_RBRACK, + [14285] = 10, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(713), 1, + anon_sym_AMP, + ACTIONS(719), 1, + anon_sym_CARET, + ACTIONS(725), 1, + anon_sym_STAR, + ACTIONS(727), 1, + anon_sym_SLASH, + ACTIONS(729), 1, + anon_sym_PERCENT, + ACTIONS(721), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(723), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(733), 4, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + ACTIONS(731), 16, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_RBRACK, + [14336] = 16, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(713), 1, + anon_sym_AMP, + ACTIONS(715), 1, + anon_sym_PIPE, + ACTIONS(717), 1, + anon_sym_DOT_DOT, + ACTIONS(719), 1, + anon_sym_CARET, + ACTIONS(725), 1, + anon_sym_STAR, + ACTIONS(727), 1, + anon_sym_SLASH, + ACTIONS(729), 1, + anon_sym_PERCENT, + ACTIONS(737), 1, + anon_sym_PIPE_PIPE, + ACTIONS(739), 1, + anon_sym_AMP_AMP, + ACTIONS(741), 1, + anon_sym_EQ_EQ, + ACTIONS(721), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(723), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(735), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(743), 3, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(703), 10, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_RBRACK, + [14399] = 15, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(713), 1, + anon_sym_AMP, + ACTIONS(715), 1, + anon_sym_PIPE, + ACTIONS(717), 1, + anon_sym_DOT_DOT, + ACTIONS(719), 1, + anon_sym_CARET, + ACTIONS(725), 1, + anon_sym_STAR, + ACTIONS(727), 1, + anon_sym_SLASH, + ACTIONS(729), 1, + anon_sym_PERCENT, + ACTIONS(739), 1, + anon_sym_AMP_AMP, + ACTIONS(741), 1, + anon_sym_EQ_EQ, + ACTIONS(721), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(723), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(735), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(743), 3, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(703), 11, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_RBRACK, + [14460] = 14, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(713), 1, + anon_sym_AMP, + ACTIONS(715), 1, + anon_sym_PIPE, + ACTIONS(717), 1, + anon_sym_DOT_DOT, + ACTIONS(719), 1, + anon_sym_CARET, + ACTIONS(725), 1, + anon_sym_STAR, + ACTIONS(727), 1, + anon_sym_SLASH, + ACTIONS(729), 1, + anon_sym_PERCENT, + ACTIONS(741), 1, + anon_sym_EQ_EQ, + ACTIONS(721), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(723), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(735), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(743), 3, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(703), 12, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_RBRACK, + [14519] = 11, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(713), 1, + anon_sym_AMP, + ACTIONS(715), 1, + anon_sym_PIPE, + ACTIONS(719), 1, + anon_sym_CARET, + ACTIONS(725), 1, + anon_sym_STAR, + ACTIONS(727), 1, + anon_sym_SLASH, + ACTIONS(729), 1, + anon_sym_PERCENT, + ACTIONS(721), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(723), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(705), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_EQ_EQ, + ACTIONS(703), 16, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_RBRACK, + [14572] = 9, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(713), 1, + anon_sym_AMP, + ACTIONS(725), 1, + anon_sym_STAR, + ACTIONS(727), 1, + anon_sym_SLASH, + ACTIONS(729), 1, + anon_sym_PERCENT, + ACTIONS(721), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(723), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(705), 4, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + ACTIONS(703), 17, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_RBRACK, + [14621] = 7, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(725), 1, + anon_sym_STAR, + ACTIONS(727), 1, + anon_sym_SLASH, + ACTIONS(729), 1, + anon_sym_PERCENT, + ACTIONS(723), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(705), 5, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + ACTIONS(703), 19, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_RBRACK, + [14666] = 6, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(725), 1, + anon_sym_STAR, + ACTIONS(727), 1, + anon_sym_SLASH, + ACTIONS(729), 1, + anon_sym_PERCENT, + ACTIONS(705), 5, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + ACTIONS(703), 21, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_RBRACK, + [14709] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(733), 6, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + ACTIONS(731), 23, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_RBRACK, + [14746] = 12, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(663), 1, + anon_sym_native, + ACTIONS(667), 1, + anon_sym_invariant, + ACTIONS(669), 1, + anon_sym_include, + ACTIONS(671), 1, + anon_sym_apply, + ACTIONS(673), 1, + anon_sym_pragma, + ACTIONS(677), 1, + anon_sym_define, + ACTIONS(679), 1, + sym_identifier, + ACTIONS(745), 1, + anon_sym_RBRACE, + ACTIONS(675), 2, + anon_sym_global, + anon_sym_local, + ACTIONS(665), 6, + anon_sym_assert, + anon_sym_assume, + anon_sym_decreases, + anon_sym_aborts_if, + anon_sym_ensures, + anon_sym_requires, + STATE(193), 11, + sym__spec_block_memeber, + sym_spec_condition, + sym_spec_invariant, + sym_spec_include, + sym_spec_apply, + sym_spec_pragma, + sym_spec_variable, + sym__spec_function, + sym_native_spec_function, + sym_usual_spec_function, + aux_sym_spec_body_repeat1, + [14799] = 12, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(663), 1, + anon_sym_native, + ACTIONS(667), 1, + anon_sym_invariant, + ACTIONS(669), 1, + anon_sym_include, + ACTIONS(671), 1, + anon_sym_apply, + ACTIONS(673), 1, + anon_sym_pragma, + ACTIONS(677), 1, + anon_sym_define, + ACTIONS(679), 1, + sym_identifier, + ACTIONS(701), 1, + anon_sym_RBRACE, + ACTIONS(675), 2, + anon_sym_global, + anon_sym_local, + ACTIONS(665), 6, + anon_sym_assert, + anon_sym_assume, + anon_sym_decreases, + anon_sym_aborts_if, + anon_sym_ensures, + anon_sym_requires, + STATE(193), 11, + sym__spec_block_memeber, + sym_spec_condition, + sym_spec_invariant, + sym_spec_include, + sym_spec_apply, + sym_spec_pragma, + sym_spec_variable, + sym__spec_function, + sym_native_spec_function, + sym_usual_spec_function, + aux_sym_spec_body_repeat1, + [14852] = 12, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(747), 1, + anon_sym_RBRACE, + ACTIONS(749), 1, + anon_sym_native, + ACTIONS(755), 1, + anon_sym_invariant, + ACTIONS(758), 1, + anon_sym_include, + ACTIONS(761), 1, + anon_sym_apply, + ACTIONS(764), 1, + anon_sym_pragma, + ACTIONS(770), 1, + anon_sym_define, + ACTIONS(773), 1, + sym_identifier, + ACTIONS(767), 2, + anon_sym_global, + anon_sym_local, + ACTIONS(752), 6, + anon_sym_assert, + anon_sym_assume, + anon_sym_decreases, + anon_sym_aborts_if, + anon_sym_ensures, + anon_sym_requires, + STATE(193), 11, + sym__spec_block_memeber, + sym_spec_condition, + sym_spec_invariant, + sym_spec_include, + sym_spec_apply, + sym_spec_pragma, + sym_spec_variable, + sym__spec_function, + sym_native_spec_function, + sym_usual_spec_function, + aux_sym_spec_body_repeat1, + [14905] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(776), 1, + anon_sym_EQ, + ACTIONS(707), 6, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_RPAREN, + anon_sym_else, + anon_sym_RBRACK, + ACTIONS(709), 6, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + ACTIONS(711), 14, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + [14944] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(521), 10, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COLON_COLON, + anon_sym_LPAREN, + anon_sym_AMPmut, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_BANG, + sym_address_literal, + sym_byte_string_literal, + ACTIONS(523), 16, + anon_sym_spec, + anon_sym_AMP, + anon_sym_let, + anon_sym_if, + anon_sym_while, + anon_sym_loop, + anon_sym_return, + anon_sym_abort, + anon_sym_move, + anon_sym_copy, + anon_sym_break, + anon_sym_continue, + anon_sym_true, + anon_sym_false, + sym_num_literal, + sym_identifier, + [14978] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(778), 1, + anon_sym_EQ, + ACTIONS(707), 5, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_RPAREN, + anon_sym_RBRACK, + ACTIONS(709), 6, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + ACTIONS(711), 14, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + [15016] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(780), 1, + anon_sym_EQ, + ACTIONS(707), 5, + anon_sym_COMMA, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_else, + ACTIONS(709), 6, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + ACTIONS(711), 14, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + [15054] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(782), 1, + anon_sym_EQ, + ACTIONS(707), 4, + anon_sym_COMMA, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + ACTIONS(709), 6, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + ACTIONS(711), 14, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + [15091] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(303), 10, + anon_sym_LBRACE, + anon_sym_COLON_COLON, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_AMPmut, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_BANG, + sym_address_literal, + sym_byte_string_literal, + ACTIONS(784), 15, + anon_sym_spec, + anon_sym_AMP, + anon_sym_if, + anon_sym_while, + anon_sym_loop, + anon_sym_return, + anon_sym_abort, + anon_sym_move, + anon_sym_copy, + anon_sym_break, + anon_sym_continue, + anon_sym_true, + anon_sym_false, + sym_num_literal, + sym_identifier, + [15124] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(786), 9, + anon_sym_LBRACE, + anon_sym_COLON_COLON, + anon_sym_LPAREN, + anon_sym_AMPmut, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_BANG, + sym_address_literal, + sym_byte_string_literal, + ACTIONS(788), 15, + anon_sym_spec, + anon_sym_AMP, + anon_sym_if, + anon_sym_while, + anon_sym_loop, + anon_sym_return, + anon_sym_abort, + anon_sym_move, + anon_sym_copy, + anon_sym_break, + anon_sym_continue, + anon_sym_true, + anon_sym_false, + sym_num_literal, + sym_identifier, + [15156] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(790), 9, + anon_sym_LBRACE, + anon_sym_COLON_COLON, + anon_sym_LPAREN, + anon_sym_AMPmut, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_BANG, + sym_address_literal, + sym_byte_string_literal, + ACTIONS(792), 15, + anon_sym_spec, + anon_sym_AMP, + anon_sym_if, + anon_sym_while, + anon_sym_loop, + anon_sym_return, + anon_sym_abort, + anon_sym_move, + anon_sym_copy, + anon_sym_break, + anon_sym_continue, + anon_sym_true, + anon_sym_false, + sym_num_literal, + sym_identifier, + [15188] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(794), 9, + anon_sym_LBRACE, + anon_sym_COLON_COLON, + anon_sym_LPAREN, + anon_sym_AMPmut, + anon_sym_PIPE, + anon_sym_STAR, + anon_sym_BANG, + sym_address_literal, + sym_byte_string_literal, + ACTIONS(796), 15, + anon_sym_spec, + anon_sym_AMP, + anon_sym_if, + anon_sym_while, + anon_sym_loop, + anon_sym_return, + anon_sym_abort, + anon_sym_move, + anon_sym_copy, + anon_sym_break, + anon_sym_continue, + anon_sym_true, + anon_sym_false, + sym_num_literal, + sym_identifier, + [15220] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(798), 1, + anon_sym_EQ, + ACTIONS(707), 2, + anon_sym_to, + anon_sym_else, + ACTIONS(709), 6, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + ACTIONS(711), 14, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + [15255] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(707), 1, + anon_sym_to, + ACTIONS(800), 1, + anon_sym_EQ, + ACTIONS(709), 6, + anon_sym_AMP, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + anon_sym_EQ_EQ, + anon_sym_SLASH, + ACTIONS(711), 14, + anon_sym_EQ_EQ_GT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_DOT_DOT, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_GT_GT, + anon_sym_PLUS, + anon_sym_DASH, + anon_sym_STAR, + anon_sym_PERCENT, + [15289] = 16, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(713), 1, + anon_sym_AMP, + ACTIONS(715), 1, + anon_sym_PIPE, + ACTIONS(717), 1, + anon_sym_DOT_DOT, + ACTIONS(719), 1, + anon_sym_CARET, + ACTIONS(725), 1, + anon_sym_STAR, + ACTIONS(727), 1, + anon_sym_SLASH, + ACTIONS(729), 1, + anon_sym_PERCENT, + ACTIONS(737), 1, + anon_sym_PIPE_PIPE, + ACTIONS(739), 1, + anon_sym_AMP_AMP, + ACTIONS(741), 1, + anon_sym_EQ_EQ, + ACTIONS(802), 1, + anon_sym_EQ_EQ_GT, + ACTIONS(721), 2, + anon_sym_LT_LT, + anon_sym_GT_GT, + ACTIONS(723), 2, + anon_sym_PLUS, + anon_sym_DASH, + ACTIONS(735), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(743), 3, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [15343] = 12, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(804), 1, + anon_sym_RBRACE, + ACTIONS(806), 1, + anon_sym_use, + ACTIONS(808), 1, + anon_sym_native, + ACTIONS(810), 1, + anon_sym_resource, + ACTIONS(812), 1, + anon_sym_struct, + ACTIONS(814), 1, + anon_sym_public, + ACTIONS(816), 1, + anon_sym_fun, + ACTIONS(818), 1, + anon_sym_spec, + STATE(554), 1, + sym__struct_signature, + STATE(555), 1, + sym__function_signature, + STATE(211), 9, + sym_use_decl, + sym__struct_definition, + sym_native_struct_definition, + sym_struct_definition, + sym__function_definition, + sym_native_function_definition, + sym_usual_function_definition, + sym_spec_block, + aux_sym_module_body_repeat1, + [15388] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(820), 1, + anon_sym_RBRACE, + ACTIONS(822), 1, + anon_sym_use, + STATE(207), 2, + sym_use_decl, + aux_sym_script_block_repeat1, + ACTIONS(825), 15, + anon_sym_native, + anon_sym_assert, + anon_sym_assume, + anon_sym_decreases, + anon_sym_aborts_if, + anon_sym_ensures, + anon_sym_requires, + anon_sym_invariant, + anon_sym_include, + anon_sym_apply, + anon_sym_pragma, + anon_sym_global, + anon_sym_local, + anon_sym_define, + sym_identifier, + [15419] = 12, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(806), 1, + anon_sym_use, + ACTIONS(808), 1, + anon_sym_native, + ACTIONS(810), 1, + anon_sym_resource, + ACTIONS(812), 1, + anon_sym_struct, + ACTIONS(814), 1, + anon_sym_public, + ACTIONS(816), 1, + anon_sym_fun, + ACTIONS(818), 1, + anon_sym_spec, + ACTIONS(827), 1, + anon_sym_RBRACE, + STATE(554), 1, + sym__struct_signature, + STATE(555), 1, + sym__function_signature, + STATE(206), 9, + sym_use_decl, + sym__struct_definition, + sym_native_struct_definition, + sym_struct_definition, + sym__function_definition, + sym_native_function_definition, + sym_usual_function_definition, + sym_spec_block, + aux_sym_module_body_repeat1, + [15464] = 12, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(806), 1, + anon_sym_use, + ACTIONS(808), 1, + anon_sym_native, + ACTIONS(810), 1, + anon_sym_resource, + ACTIONS(812), 1, + anon_sym_struct, + ACTIONS(814), 1, + anon_sym_public, + ACTIONS(816), 1, + anon_sym_fun, + ACTIONS(818), 1, + anon_sym_spec, + ACTIONS(829), 1, + anon_sym_RBRACE, + STATE(554), 1, + sym__struct_signature, + STATE(555), 1, + sym__function_signature, + STATE(211), 9, + sym_use_decl, + sym__struct_definition, + sym_native_struct_definition, + sym_struct_definition, + sym__function_definition, + sym_native_function_definition, + sym_usual_function_definition, + sym_spec_block, + aux_sym_module_body_repeat1, + [15509] = 12, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(806), 1, + anon_sym_use, + ACTIONS(808), 1, + anon_sym_native, + ACTIONS(810), 1, + anon_sym_resource, + ACTIONS(812), 1, + anon_sym_struct, + ACTIONS(814), 1, + anon_sym_public, + ACTIONS(816), 1, + anon_sym_fun, + ACTIONS(818), 1, + anon_sym_spec, + ACTIONS(831), 1, + anon_sym_RBRACE, + STATE(554), 1, + sym__struct_signature, + STATE(555), 1, + sym__function_signature, + STATE(209), 9, + sym_use_decl, + sym__struct_definition, + sym_native_struct_definition, + sym_struct_definition, + sym__function_definition, + sym_native_function_definition, + sym_usual_function_definition, + sym_spec_block, + aux_sym_module_body_repeat1, + [15554] = 12, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(833), 1, + anon_sym_RBRACE, + ACTIONS(835), 1, + anon_sym_use, + ACTIONS(838), 1, + anon_sym_native, + ACTIONS(841), 1, + anon_sym_resource, + ACTIONS(844), 1, + anon_sym_struct, + ACTIONS(847), 1, + anon_sym_public, + ACTIONS(850), 1, + anon_sym_fun, + ACTIONS(853), 1, + anon_sym_spec, + STATE(554), 1, + sym__struct_signature, + STATE(555), 1, + sym__function_signature, + STATE(211), 9, + sym_use_decl, + sym__struct_definition, + sym_native_struct_definition, + sym_struct_definition, + sym__function_definition, + sym_native_function_definition, + sym_usual_function_definition, + sym_spec_block, + aux_sym_module_body_repeat1, + [15599] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(856), 8, + anon_sym_LBRACE, + anon_sym_COLON_COLON, + anon_sym_LPAREN, + anon_sym_AMPmut, + anon_sym_STAR, + anon_sym_BANG, + sym_address_literal, + sym_byte_string_literal, + ACTIONS(858), 10, + anon_sym_spec, + anon_sym_AMP, + anon_sym_move, + anon_sym_copy, + anon_sym_break, + anon_sym_continue, + anon_sym_true, + anon_sym_false, + sym_num_literal, + sym_identifier, + [15625] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(557), 1, + anon_sym_RBRACE, + ACTIONS(559), 16, + anon_sym_use, + anon_sym_native, + anon_sym_assert, + anon_sym_assume, + anon_sym_decreases, + anon_sym_aborts_if, + anon_sym_ensures, + anon_sym_requires, + anon_sym_invariant, + anon_sym_include, + anon_sym_apply, + anon_sym_pragma, + anon_sym_global, + anon_sym_local, + anon_sym_define, + sym_identifier, + [15650] = 14, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(860), 1, + anon_sym_COLON_COLON, + ACTIONS(862), 1, + anon_sym_LPAREN, + ACTIONS(864), 1, + anon_sym_AMP, + ACTIONS(866), 1, + anon_sym_AMPmut, + ACTIONS(868), 1, + anon_sym_PIPE, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(872), 1, + sym_identifier, + STATE(226), 1, + aux_sym_function_type_params_repeat1, + STATE(272), 1, + sym_function_type_params, + STATE(361), 1, + sym_module_access, + STATE(621), 1, + sym__module_ident, + STATE(622), 1, + sym__module_identifier, + STATE(480), 5, + sym__type, + sym_apply_type, + sym_ref_type, + sym_tuple_type, + sym_function_type, + [15697] = 14, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(874), 1, + anon_sym_COLON_COLON, + ACTIONS(877), 1, + anon_sym_LPAREN, + ACTIONS(880), 1, + anon_sym_AMP, + ACTIONS(883), 1, + anon_sym_AMPmut, + ACTIONS(886), 1, + anon_sym_PIPE, + ACTIONS(889), 1, + sym_address_literal, + ACTIONS(892), 1, + sym_identifier, + STATE(214), 1, + aux_sym_function_type_params_repeat1, + STATE(272), 1, + sym_function_type_params, + STATE(361), 1, + sym_module_access, + STATE(621), 1, + sym__module_ident, + STATE(622), 1, + sym__module_identifier, + STATE(507), 5, + sym__type, + sym_apply_type, + sym_ref_type, + sym_tuple_type, + sym_function_type, + [15744] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(541), 1, + anon_sym_RBRACE, + ACTIONS(543), 16, + anon_sym_use, + anon_sym_native, + anon_sym_assert, + anon_sym_assume, + anon_sym_decreases, + anon_sym_aborts_if, + anon_sym_ensures, + anon_sym_requires, + anon_sym_invariant, + anon_sym_include, + anon_sym_apply, + anon_sym_pragma, + anon_sym_global, + anon_sym_local, + anon_sym_define, + sym_identifier, + [15769] = 14, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(860), 1, + anon_sym_COLON_COLON, + ACTIONS(862), 1, + anon_sym_LPAREN, + ACTIONS(864), 1, + anon_sym_AMP, + ACTIONS(866), 1, + anon_sym_AMPmut, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(872), 1, + sym_identifier, + ACTIONS(895), 1, + anon_sym_GT, + ACTIONS(897), 1, + anon_sym_PIPE, + STATE(272), 1, + sym_function_type_params, + STATE(361), 1, + sym_module_access, + STATE(621), 1, + sym__module_ident, + STATE(622), 1, + sym__module_identifier, + STATE(468), 5, + sym__type, + sym_apply_type, + sym_ref_type, + sym_tuple_type, + sym_function_type, + [15816] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(454), 1, + anon_sym_RBRACE, + ACTIONS(456), 16, + anon_sym_use, + anon_sym_native, + anon_sym_assert, + anon_sym_assume, + anon_sym_decreases, + anon_sym_aborts_if, + anon_sym_ensures, + anon_sym_requires, + anon_sym_invariant, + anon_sym_include, + anon_sym_apply, + anon_sym_pragma, + anon_sym_global, + anon_sym_local, + anon_sym_define, + sym_identifier, + [15841] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(525), 1, + anon_sym_RBRACE, + ACTIONS(527), 16, + anon_sym_use, + anon_sym_native, + anon_sym_assert, + anon_sym_assume, + anon_sym_decreases, + anon_sym_aborts_if, + anon_sym_ensures, + anon_sym_requires, + anon_sym_invariant, + anon_sym_include, + anon_sym_apply, + anon_sym_pragma, + anon_sym_global, + anon_sym_local, + anon_sym_define, + sym_identifier, + [15866] = 14, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(860), 1, + anon_sym_COLON_COLON, + ACTIONS(862), 1, + anon_sym_LPAREN, + ACTIONS(864), 1, + anon_sym_AMP, + ACTIONS(866), 1, + anon_sym_AMPmut, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(872), 1, + sym_identifier, + ACTIONS(899), 1, + anon_sym_PIPE, + STATE(214), 1, + aux_sym_function_type_params_repeat1, + STATE(272), 1, + sym_function_type_params, + STATE(361), 1, + sym_module_access, + STATE(621), 1, + sym__module_ident, + STATE(622), 1, + sym__module_identifier, + STATE(507), 5, + sym__type, + sym_apply_type, + sym_ref_type, + sym_tuple_type, + sym_function_type, + [15913] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(497), 1, + anon_sym_RBRACE, + ACTIONS(499), 16, + anon_sym_use, + anon_sym_native, + anon_sym_assert, + anon_sym_assume, + anon_sym_decreases, + anon_sym_aborts_if, + anon_sym_ensures, + anon_sym_requires, + anon_sym_invariant, + anon_sym_include, + anon_sym_apply, + anon_sym_pragma, + anon_sym_global, + anon_sym_local, + anon_sym_define, + sym_identifier, + [15938] = 14, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(862), 1, + anon_sym_LPAREN, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(897), 1, + anon_sym_PIPE, + ACTIONS(901), 1, + anon_sym_RPAREN, + ACTIONS(903), 1, + anon_sym_AMP, + ACTIONS(905), 1, + anon_sym_AMPmut, + ACTIONS(907), 1, + sym_identifier, + STATE(233), 1, + sym_function_type_params, + STATE(297), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + STATE(468), 5, + sym__type, + sym_apply_type, + sym_ref_type, + sym_tuple_type, + sym_function_type, + [15985] = 14, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(860), 1, + anon_sym_COLON_COLON, + ACTIONS(862), 1, + anon_sym_LPAREN, + ACTIONS(864), 1, + anon_sym_AMP, + ACTIONS(866), 1, + anon_sym_AMPmut, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(872), 1, + sym_identifier, + ACTIONS(897), 1, + anon_sym_PIPE, + ACTIONS(909), 1, + anon_sym_GT, + STATE(272), 1, + sym_function_type_params, + STATE(361), 1, + sym_module_access, + STATE(621), 1, + sym__module_ident, + STATE(622), 1, + sym__module_identifier, + STATE(468), 5, + sym__type, + sym_apply_type, + sym_ref_type, + sym_tuple_type, + sym_function_type, + [16032] = 14, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(860), 1, + anon_sym_COLON_COLON, + ACTIONS(862), 1, + anon_sym_LPAREN, + ACTIONS(864), 1, + anon_sym_AMP, + ACTIONS(866), 1, + anon_sym_AMPmut, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(872), 1, + sym_identifier, + ACTIONS(897), 1, + anon_sym_PIPE, + ACTIONS(911), 1, + anon_sym_GT, + STATE(272), 1, + sym_function_type_params, + STATE(361), 1, + sym_module_access, + STATE(621), 1, + sym__module_ident, + STATE(622), 1, + sym__module_identifier, + STATE(468), 5, + sym__type, + sym_apply_type, + sym_ref_type, + sym_tuple_type, + sym_function_type, + [16079] = 14, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(913), 1, + anon_sym_COLON_COLON, + ACTIONS(916), 1, + anon_sym_LPAREN, + ACTIONS(919), 1, + anon_sym_AMP, + ACTIONS(922), 1, + anon_sym_AMPmut, + ACTIONS(925), 1, + anon_sym_PIPE, + ACTIONS(928), 1, + sym_address_literal, + ACTIONS(931), 1, + sym_identifier, + STATE(214), 1, + aux_sym_function_type_params_repeat1, + STATE(272), 1, + sym_function_type_params, + STATE(361), 1, + sym_module_access, + STATE(621), 1, + sym__module_ident, + STATE(622), 1, + sym__module_identifier, + STATE(507), 5, + sym__type, + sym_apply_type, + sym_ref_type, + sym_tuple_type, + sym_function_type, + [16126] = 14, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(934), 1, + anon_sym_COLON_COLON, + ACTIONS(937), 1, + anon_sym_LPAREN, + ACTIONS(940), 1, + anon_sym_AMP, + ACTIONS(943), 1, + anon_sym_AMPmut, + ACTIONS(946), 1, + anon_sym_PIPE, + ACTIONS(949), 1, + sym_address_literal, + ACTIONS(952), 1, + sym_identifier, + STATE(226), 1, + aux_sym_function_type_params_repeat1, + STATE(233), 1, + sym_function_type_params, + STATE(297), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + STATE(593), 5, + sym__type, + sym_apply_type, + sym_ref_type, + sym_tuple_type, + sym_function_type, + [16173] = 14, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(860), 1, + anon_sym_COLON_COLON, + ACTIONS(862), 1, + anon_sym_LPAREN, + ACTIONS(864), 1, + anon_sym_AMP, + ACTIONS(866), 1, + anon_sym_AMPmut, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(872), 1, + sym_identifier, + ACTIONS(897), 1, + anon_sym_PIPE, + ACTIONS(955), 1, + anon_sym_GT, + STATE(272), 1, + sym_function_type_params, + STATE(361), 1, + sym_module_access, + STATE(621), 1, + sym__module_ident, + STATE(622), 1, + sym__module_identifier, + STATE(468), 5, + sym__type, + sym_apply_type, + sym_ref_type, + sym_tuple_type, + sym_function_type, + [16220] = 14, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(862), 1, + anon_sym_LPAREN, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(897), 1, + anon_sym_PIPE, + ACTIONS(903), 1, + anon_sym_AMP, + ACTIONS(905), 1, + anon_sym_AMPmut, + ACTIONS(907), 1, + sym_identifier, + ACTIONS(957), 1, + anon_sym_RPAREN, + STATE(233), 1, + sym_function_type_params, + STATE(297), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + STATE(468), 5, + sym__type, + sym_apply_type, + sym_ref_type, + sym_tuple_type, + sym_function_type, + [16267] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(493), 1, + anon_sym_RBRACE, + ACTIONS(495), 16, + anon_sym_use, + anon_sym_native, + anon_sym_assert, + anon_sym_assume, + anon_sym_decreases, + anon_sym_aborts_if, + anon_sym_ensures, + anon_sym_requires, + anon_sym_invariant, + anon_sym_include, + anon_sym_apply, + anon_sym_pragma, + anon_sym_global, + anon_sym_local, + anon_sym_define, + sym_identifier, + [16292] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(392), 1, + anon_sym_RBRACE, + ACTIONS(394), 15, + anon_sym_native, + anon_sym_assert, + anon_sym_assume, + anon_sym_decreases, + anon_sym_aborts_if, + anon_sym_ensures, + anon_sym_requires, + anon_sym_invariant, + anon_sym_include, + anon_sym_apply, + anon_sym_pragma, + anon_sym_global, + anon_sym_local, + anon_sym_define, + sym_identifier, + [16316] = 13, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(860), 1, + anon_sym_COLON_COLON, + ACTIONS(862), 1, + anon_sym_LPAREN, + ACTIONS(864), 1, + anon_sym_AMP, + ACTIONS(866), 1, + anon_sym_AMPmut, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(872), 1, + sym_identifier, + ACTIONS(897), 1, + anon_sym_PIPE, + STATE(272), 1, + sym_function_type_params, + STATE(361), 1, + sym_module_access, + STATE(621), 1, + sym__module_ident, + STATE(622), 1, + sym__module_identifier, + STATE(421), 5, + sym__type, + sym_apply_type, + sym_ref_type, + sym_tuple_type, + sym_function_type, + [16360] = 13, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(862), 1, + anon_sym_LPAREN, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(897), 1, + anon_sym_PIPE, + ACTIONS(903), 1, + anon_sym_AMP, + ACTIONS(905), 1, + anon_sym_AMPmut, + ACTIONS(907), 1, + sym_identifier, + STATE(233), 1, + sym_function_type_params, + STATE(297), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + STATE(284), 5, + sym__type, + sym_apply_type, + sym_ref_type, + sym_tuple_type, + sym_function_type, + [16404] = 13, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(862), 1, + anon_sym_LPAREN, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(897), 1, + anon_sym_PIPE, + ACTIONS(903), 1, + anon_sym_AMP, + ACTIONS(905), 1, + anon_sym_AMPmut, + ACTIONS(907), 1, + sym_identifier, + STATE(233), 1, + sym_function_type_params, + STATE(297), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + STATE(288), 5, + sym__type, + sym_apply_type, + sym_ref_type, + sym_tuple_type, + sym_function_type, + [16448] = 13, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(860), 1, + anon_sym_COLON_COLON, + ACTIONS(862), 1, + anon_sym_LPAREN, + ACTIONS(864), 1, + anon_sym_AMP, + ACTIONS(866), 1, + anon_sym_AMPmut, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(872), 1, + sym_identifier, + ACTIONS(897), 1, + anon_sym_PIPE, + STATE(272), 1, + sym_function_type_params, + STATE(361), 1, + sym_module_access, + STATE(621), 1, + sym__module_ident, + STATE(622), 1, + sym__module_identifier, + STATE(430), 5, + sym__type, + sym_apply_type, + sym_ref_type, + sym_tuple_type, + sym_function_type, + [16492] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(959), 1, + anon_sym_RBRACE, + ACTIONS(961), 15, + anon_sym_native, + anon_sym_assert, + anon_sym_assume, + anon_sym_decreases, + anon_sym_aborts_if, + anon_sym_ensures, + anon_sym_requires, + anon_sym_invariant, + anon_sym_include, + anon_sym_apply, + anon_sym_pragma, + anon_sym_global, + anon_sym_local, + anon_sym_define, + sym_identifier, + [16516] = 13, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(862), 1, + anon_sym_LPAREN, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(897), 1, + anon_sym_PIPE, + ACTIONS(903), 1, + anon_sym_AMP, + ACTIONS(905), 1, + anon_sym_AMPmut, + ACTIONS(907), 1, + sym_identifier, + STATE(233), 1, + sym_function_type_params, + STATE(297), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + STATE(526), 5, + sym__type, + sym_apply_type, + sym_ref_type, + sym_tuple_type, + sym_function_type, + [16560] = 13, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(862), 1, + anon_sym_LPAREN, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(897), 1, + anon_sym_PIPE, + ACTIONS(903), 1, + anon_sym_AMP, + ACTIONS(905), 1, + anon_sym_AMPmut, + ACTIONS(907), 1, + sym_identifier, + STATE(233), 1, + sym_function_type_params, + STATE(297), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + STATE(640), 5, + sym__type, + sym_apply_type, + sym_ref_type, + sym_tuple_type, + sym_function_type, + [16604] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(963), 1, + anon_sym_RBRACE, + ACTIONS(965), 15, + anon_sym_native, + anon_sym_assert, + anon_sym_assume, + anon_sym_decreases, + anon_sym_aborts_if, + anon_sym_ensures, + anon_sym_requires, + anon_sym_invariant, + anon_sym_include, + anon_sym_apply, + anon_sym_pragma, + anon_sym_global, + anon_sym_local, + anon_sym_define, + sym_identifier, + [16628] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(967), 1, + anon_sym_RBRACE, + ACTIONS(969), 15, + anon_sym_native, + anon_sym_assert, + anon_sym_assume, + anon_sym_decreases, + anon_sym_aborts_if, + anon_sym_ensures, + anon_sym_requires, + anon_sym_invariant, + anon_sym_include, + anon_sym_apply, + anon_sym_pragma, + anon_sym_global, + anon_sym_local, + anon_sym_define, + sym_identifier, + [16652] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(971), 1, + anon_sym_RBRACE, + ACTIONS(973), 15, + anon_sym_native, + anon_sym_assert, + anon_sym_assume, + anon_sym_decreases, + anon_sym_aborts_if, + anon_sym_ensures, + anon_sym_requires, + anon_sym_invariant, + anon_sym_include, + anon_sym_apply, + anon_sym_pragma, + anon_sym_global, + anon_sym_local, + anon_sym_define, + sym_identifier, + [16676] = 13, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(862), 1, + anon_sym_LPAREN, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(897), 1, + anon_sym_PIPE, + ACTIONS(903), 1, + anon_sym_AMP, + ACTIONS(905), 1, + anon_sym_AMPmut, + ACTIONS(907), 1, + sym_identifier, + STATE(233), 1, + sym_function_type_params, + STATE(297), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + STATE(417), 5, + sym__type, + sym_apply_type, + sym_ref_type, + sym_tuple_type, + sym_function_type, + [16720] = 13, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(862), 1, + anon_sym_LPAREN, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(897), 1, + anon_sym_PIPE, + ACTIONS(903), 1, + anon_sym_AMP, + ACTIONS(905), 1, + anon_sym_AMPmut, + ACTIONS(907), 1, + sym_identifier, + STATE(233), 1, + sym_function_type_params, + STATE(297), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + STATE(380), 5, + sym__type, + sym_apply_type, + sym_ref_type, + sym_tuple_type, + sym_function_type, + [16764] = 13, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(862), 1, + anon_sym_LPAREN, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(897), 1, + anon_sym_PIPE, + ACTIONS(903), 1, + anon_sym_AMP, + ACTIONS(905), 1, + anon_sym_AMPmut, + ACTIONS(907), 1, + sym_identifier, + STATE(233), 1, + sym_function_type_params, + STATE(297), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + STATE(468), 5, + sym__type, + sym_apply_type, + sym_ref_type, + sym_tuple_type, + sym_function_type, + [16808] = 13, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(862), 1, + anon_sym_LPAREN, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(897), 1, + anon_sym_PIPE, + ACTIONS(903), 1, + anon_sym_AMP, + ACTIONS(905), 1, + anon_sym_AMPmut, + ACTIONS(907), 1, + sym_identifier, + STATE(233), 1, + sym_function_type_params, + STATE(297), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + STATE(620), 5, + sym__type, + sym_apply_type, + sym_ref_type, + sym_tuple_type, + sym_function_type, + [16852] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(975), 1, + anon_sym_RBRACE, + ACTIONS(977), 15, + anon_sym_native, + anon_sym_assert, + anon_sym_assume, + anon_sym_decreases, + anon_sym_aborts_if, + anon_sym_ensures, + anon_sym_requires, + anon_sym_invariant, + anon_sym_include, + anon_sym_apply, + anon_sym_pragma, + anon_sym_global, + anon_sym_local, + anon_sym_define, + sym_identifier, + [16876] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(408), 1, + anon_sym_RBRACE, + ACTIONS(410), 15, + anon_sym_native, + anon_sym_assert, + anon_sym_assume, + anon_sym_decreases, + anon_sym_aborts_if, + anon_sym_ensures, + anon_sym_requires, + anon_sym_invariant, + anon_sym_include, + anon_sym_apply, + anon_sym_pragma, + anon_sym_global, + anon_sym_local, + anon_sym_define, + sym_identifier, + [16900] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(416), 1, + anon_sym_RBRACE, + ACTIONS(418), 15, + anon_sym_native, + anon_sym_assert, + anon_sym_assume, + anon_sym_decreases, + anon_sym_aborts_if, + anon_sym_ensures, + anon_sym_requires, + anon_sym_invariant, + anon_sym_include, + anon_sym_apply, + anon_sym_pragma, + anon_sym_global, + anon_sym_local, + anon_sym_define, + sym_identifier, + [16924] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(979), 1, + anon_sym_RBRACE, + ACTIONS(981), 15, + anon_sym_native, + anon_sym_assert, + anon_sym_assume, + anon_sym_decreases, + anon_sym_aborts_if, + anon_sym_ensures, + anon_sym_requires, + anon_sym_invariant, + anon_sym_include, + anon_sym_apply, + anon_sym_pragma, + anon_sym_global, + anon_sym_local, + anon_sym_define, + sym_identifier, + [16948] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(983), 1, + anon_sym_RBRACE, + ACTIONS(985), 15, + anon_sym_native, + anon_sym_assert, + anon_sym_assume, + anon_sym_decreases, + anon_sym_aborts_if, + anon_sym_ensures, + anon_sym_requires, + anon_sym_invariant, + anon_sym_include, + anon_sym_apply, + anon_sym_pragma, + anon_sym_global, + anon_sym_local, + anon_sym_define, + sym_identifier, + [16972] = 13, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(862), 1, + anon_sym_LPAREN, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(897), 1, + anon_sym_PIPE, + ACTIONS(903), 1, + anon_sym_AMP, + ACTIONS(905), 1, + anon_sym_AMPmut, + ACTIONS(907), 1, + sym_identifier, + STATE(233), 1, + sym_function_type_params, + STATE(297), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + STATE(436), 5, + sym__type, + sym_apply_type, + sym_ref_type, + sym_tuple_type, + sym_function_type, + [17016] = 13, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(862), 1, + anon_sym_LPAREN, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(897), 1, + anon_sym_PIPE, + ACTIONS(903), 1, + anon_sym_AMP, + ACTIONS(905), 1, + anon_sym_AMPmut, + ACTIONS(907), 1, + sym_identifier, + STATE(233), 1, + sym_function_type_params, + STATE(297), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + STATE(450), 5, + sym__type, + sym_apply_type, + sym_ref_type, + sym_tuple_type, + sym_function_type, + [17060] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(987), 1, + anon_sym_RBRACE, + ACTIONS(989), 15, + anon_sym_native, + anon_sym_assert, + anon_sym_assume, + anon_sym_decreases, + anon_sym_aborts_if, + anon_sym_ensures, + anon_sym_requires, + anon_sym_invariant, + anon_sym_include, + anon_sym_apply, + anon_sym_pragma, + anon_sym_global, + anon_sym_local, + anon_sym_define, + sym_identifier, + [17084] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(991), 1, + anon_sym_RBRACE, + ACTIONS(993), 15, + anon_sym_native, + anon_sym_assert, + anon_sym_assume, + anon_sym_decreases, + anon_sym_aborts_if, + anon_sym_ensures, + anon_sym_requires, + anon_sym_invariant, + anon_sym_include, + anon_sym_apply, + anon_sym_pragma, + anon_sym_global, + anon_sym_local, + anon_sym_define, + sym_identifier, + [17108] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(995), 1, + anon_sym_RBRACE, + ACTIONS(997), 15, + anon_sym_native, + anon_sym_assert, + anon_sym_assume, + anon_sym_decreases, + anon_sym_aborts_if, + anon_sym_ensures, + anon_sym_requires, + anon_sym_invariant, + anon_sym_include, + anon_sym_apply, + anon_sym_pragma, + anon_sym_global, + anon_sym_local, + anon_sym_define, + sym_identifier, + [17132] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(999), 1, + anon_sym_RBRACE, + ACTIONS(1001), 15, + anon_sym_native, + anon_sym_assert, + anon_sym_assume, + anon_sym_decreases, + anon_sym_aborts_if, + anon_sym_ensures, + anon_sym_requires, + anon_sym_invariant, + anon_sym_include, + anon_sym_apply, + anon_sym_pragma, + anon_sym_global, + anon_sym_local, + anon_sym_define, + sym_identifier, + [17156] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1003), 1, + anon_sym_RBRACE, + ACTIONS(1005), 15, + anon_sym_native, + anon_sym_assert, + anon_sym_assume, + anon_sym_decreases, + anon_sym_aborts_if, + anon_sym_ensures, + anon_sym_requires, + anon_sym_invariant, + anon_sym_include, + anon_sym_apply, + anon_sym_pragma, + anon_sym_global, + anon_sym_local, + anon_sym_define, + sym_identifier, + [17180] = 13, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(862), 1, + anon_sym_LPAREN, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(897), 1, + anon_sym_PIPE, + ACTIONS(903), 1, + anon_sym_AMP, + ACTIONS(905), 1, + anon_sym_AMPmut, + ACTIONS(907), 1, + sym_identifier, + STATE(233), 1, + sym_function_type_params, + STATE(297), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + STATE(485), 5, + sym__type, + sym_apply_type, + sym_ref_type, + sym_tuple_type, + sym_function_type, + [17224] = 13, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(862), 1, + anon_sym_LPAREN, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(897), 1, + anon_sym_PIPE, + ACTIONS(903), 1, + anon_sym_AMP, + ACTIONS(905), 1, + anon_sym_AMPmut, + ACTIONS(907), 1, + sym_identifier, + STATE(233), 1, + sym_function_type_params, + STATE(297), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + STATE(651), 5, + sym__type, + sym_apply_type, + sym_ref_type, + sym_tuple_type, + sym_function_type, + [17268] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1007), 1, + anon_sym_RBRACE, + ACTIONS(1009), 15, + anon_sym_native, + anon_sym_assert, + anon_sym_assume, + anon_sym_decreases, + anon_sym_aborts_if, + anon_sym_ensures, + anon_sym_requires, + anon_sym_invariant, + anon_sym_include, + anon_sym_apply, + anon_sym_pragma, + anon_sym_global, + anon_sym_local, + anon_sym_define, + sym_identifier, + [17292] = 13, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(862), 1, + anon_sym_LPAREN, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(897), 1, + anon_sym_PIPE, + ACTIONS(903), 1, + anon_sym_AMP, + ACTIONS(905), 1, + anon_sym_AMPmut, + ACTIONS(907), 1, + sym_identifier, + STATE(233), 1, + sym_function_type_params, + STATE(297), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + STATE(645), 5, + sym__type, + sym_apply_type, + sym_ref_type, + sym_tuple_type, + sym_function_type, + [17336] = 13, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(862), 1, + anon_sym_LPAREN, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(897), 1, + anon_sym_PIPE, + ACTIONS(903), 1, + anon_sym_AMP, + ACTIONS(905), 1, + anon_sym_AMPmut, + ACTIONS(907), 1, + sym_identifier, + STATE(233), 1, + sym_function_type_params, + STATE(297), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + STATE(653), 5, + sym__type, + sym_apply_type, + sym_ref_type, + sym_tuple_type, + sym_function_type, + [17380] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1011), 1, + anon_sym_RBRACE, + ACTIONS(1013), 15, + anon_sym_native, + anon_sym_assert, + anon_sym_assume, + anon_sym_decreases, + anon_sym_aborts_if, + anon_sym_ensures, + anon_sym_requires, + anon_sym_invariant, + anon_sym_include, + anon_sym_apply, + anon_sym_pragma, + anon_sym_global, + anon_sym_local, + anon_sym_define, + sym_identifier, + [17404] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1015), 1, + anon_sym_RBRACE, + ACTIONS(1017), 15, + anon_sym_native, + anon_sym_assert, + anon_sym_assume, + anon_sym_decreases, + anon_sym_aborts_if, + anon_sym_ensures, + anon_sym_requires, + anon_sym_invariant, + anon_sym_include, + anon_sym_apply, + anon_sym_pragma, + anon_sym_global, + anon_sym_local, + anon_sym_define, + sym_identifier, + [17428] = 13, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(862), 1, + anon_sym_LPAREN, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(897), 1, + anon_sym_PIPE, + ACTIONS(903), 1, + anon_sym_AMP, + ACTIONS(905), 1, + anon_sym_AMPmut, + ACTIONS(907), 1, + sym_identifier, + STATE(233), 1, + sym_function_type_params, + STATE(297), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + STATE(623), 5, + sym__type, + sym_apply_type, + sym_ref_type, + sym_tuple_type, + sym_function_type, + [17472] = 13, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(860), 1, + anon_sym_COLON_COLON, + ACTIONS(862), 1, + anon_sym_LPAREN, + ACTIONS(864), 1, + anon_sym_AMP, + ACTIONS(866), 1, + anon_sym_AMPmut, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(872), 1, + sym_identifier, + ACTIONS(897), 1, + anon_sym_PIPE, + STATE(272), 1, + sym_function_type_params, + STATE(361), 1, + sym_module_access, + STATE(621), 1, + sym__module_ident, + STATE(622), 1, + sym__module_identifier, + STATE(284), 5, + sym__type, + sym_apply_type, + sym_ref_type, + sym_tuple_type, + sym_function_type, + [17516] = 13, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(860), 1, + anon_sym_COLON_COLON, + ACTIONS(862), 1, + anon_sym_LPAREN, + ACTIONS(864), 1, + anon_sym_AMP, + ACTIONS(866), 1, + anon_sym_AMPmut, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(872), 1, + sym_identifier, + ACTIONS(897), 1, + anon_sym_PIPE, + STATE(272), 1, + sym_function_type_params, + STATE(361), 1, + sym_module_access, + STATE(621), 1, + sym__module_ident, + STATE(622), 1, + sym__module_identifier, + STATE(468), 5, + sym__type, + sym_apply_type, + sym_ref_type, + sym_tuple_type, + sym_function_type, + [17560] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1019), 1, + anon_sym_RBRACE, + ACTIONS(1021), 15, + anon_sym_native, + anon_sym_assert, + anon_sym_assume, + anon_sym_decreases, + anon_sym_aborts_if, + anon_sym_ensures, + anon_sym_requires, + anon_sym_invariant, + anon_sym_include, + anon_sym_apply, + anon_sym_pragma, + anon_sym_global, + anon_sym_local, + anon_sym_define, + sym_identifier, + [17584] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1023), 1, + anon_sym_RBRACE, + ACTIONS(1025), 15, + anon_sym_native, + anon_sym_assert, + anon_sym_assume, + anon_sym_decreases, + anon_sym_aborts_if, + anon_sym_ensures, + anon_sym_requires, + anon_sym_invariant, + anon_sym_include, + anon_sym_apply, + anon_sym_pragma, + anon_sym_global, + anon_sym_local, + anon_sym_define, + sym_identifier, + [17608] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1027), 1, + anon_sym_RBRACE, + ACTIONS(1029), 15, + anon_sym_native, + anon_sym_assert, + anon_sym_assume, + anon_sym_decreases, + anon_sym_aborts_if, + anon_sym_ensures, + anon_sym_requires, + anon_sym_invariant, + anon_sym_include, + anon_sym_apply, + anon_sym_pragma, + anon_sym_global, + anon_sym_local, + anon_sym_define, + sym_identifier, + [17632] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1031), 1, + anon_sym_RBRACE, + ACTIONS(1033), 15, + anon_sym_native, + anon_sym_assert, + anon_sym_assume, + anon_sym_decreases, + anon_sym_aborts_if, + anon_sym_ensures, + anon_sym_requires, + anon_sym_invariant, + anon_sym_include, + anon_sym_apply, + anon_sym_pragma, + anon_sym_global, + anon_sym_local, + anon_sym_define, + sym_identifier, + [17656] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1035), 1, + anon_sym_RBRACE, + ACTIONS(1037), 15, + anon_sym_native, + anon_sym_assert, + anon_sym_assume, + anon_sym_decreases, + anon_sym_aborts_if, + anon_sym_ensures, + anon_sym_requires, + anon_sym_invariant, + anon_sym_include, + anon_sym_apply, + anon_sym_pragma, + anon_sym_global, + anon_sym_local, + anon_sym_define, + sym_identifier, + [17680] = 13, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(860), 1, + anon_sym_COLON_COLON, + ACTIONS(862), 1, + anon_sym_LPAREN, + ACTIONS(864), 1, + anon_sym_AMP, + ACTIONS(866), 1, + anon_sym_AMPmut, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(872), 1, + sym_identifier, + ACTIONS(897), 1, + anon_sym_PIPE, + STATE(272), 1, + sym_function_type_params, + STATE(361), 1, + sym_module_access, + STATE(621), 1, + sym__module_ident, + STATE(622), 1, + sym__module_identifier, + STATE(288), 5, + sym__type, + sym_apply_type, + sym_ref_type, + sym_tuple_type, + sym_function_type, + [17724] = 13, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(862), 1, + anon_sym_LPAREN, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(897), 1, + anon_sym_PIPE, + ACTIONS(903), 1, + anon_sym_AMP, + ACTIONS(905), 1, + anon_sym_AMPmut, + ACTIONS(907), 1, + sym_identifier, + STATE(233), 1, + sym_function_type_params, + STATE(297), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + STATE(506), 5, + sym__type, + sym_apply_type, + sym_ref_type, + sym_tuple_type, + sym_function_type, + [17768] = 13, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(862), 1, + anon_sym_LPAREN, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(897), 1, + anon_sym_PIPE, + ACTIONS(903), 1, + anon_sym_AMP, + ACTIONS(905), 1, + anon_sym_AMPmut, + ACTIONS(907), 1, + sym_identifier, + STATE(233), 1, + sym_function_type_params, + STATE(297), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + STATE(394), 5, + sym__type, + sym_apply_type, + sym_ref_type, + sym_tuple_type, + sym_function_type, + [17812] = 13, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(862), 1, + anon_sym_LPAREN, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(897), 1, + anon_sym_PIPE, + ACTIONS(903), 1, + anon_sym_AMP, + ACTIONS(905), 1, + anon_sym_AMPmut, + ACTIONS(907), 1, + sym_identifier, + STATE(233), 1, + sym_function_type_params, + STATE(297), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + STATE(403), 5, + sym__type, + sym_apply_type, + sym_ref_type, + sym_tuple_type, + sym_function_type, + [17856] = 13, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(862), 1, + anon_sym_LPAREN, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(897), 1, + anon_sym_PIPE, + ACTIONS(903), 1, + anon_sym_AMP, + ACTIONS(905), 1, + anon_sym_AMPmut, + ACTIONS(907), 1, + sym_identifier, + STATE(233), 1, + sym_function_type_params, + STATE(297), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + STATE(500), 5, + sym__type, + sym_apply_type, + sym_ref_type, + sym_tuple_type, + sym_function_type, + [17900] = 11, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1039), 1, + anon_sym_COLON_COLON, + ACTIONS(1044), 1, + sym_address_literal, + ACTIONS(1047), 1, + sym_identifier, + STATE(277), 1, + aux_sym_lambda_bindings_repeat1, + STATE(319), 1, + sym__variable_identifier, + STATE(381), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(1042), 2, + anon_sym_RPAREN, + anon_sym_PIPE, + STATE(587), 2, + sym__bind, + sym_bind_unpack, + [17936] = 11, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(1050), 1, + anon_sym_PIPE, + ACTIONS(1052), 1, + sym_identifier, + STATE(277), 1, + aux_sym_lambda_bindings_repeat1, + STATE(319), 1, + sym__variable_identifier, + STATE(381), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + STATE(496), 2, + sym__bind, + sym_bind_unpack, + [17971] = 11, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(1052), 1, + sym_identifier, + ACTIONS(1054), 1, + anon_sym_LPAREN, + STATE(319), 1, + sym__variable_identifier, + STATE(381), 1, + sym_module_access, + STATE(416), 1, + sym_bind_list, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + STATE(410), 2, + sym__bind, + sym_bind_unpack, + [18006] = 11, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(1052), 1, + sym_identifier, + ACTIONS(1056), 1, + anon_sym_RPAREN, + STATE(277), 1, + aux_sym_lambda_bindings_repeat1, + STATE(319), 1, + sym__variable_identifier, + STATE(381), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + STATE(547), 2, + sym__bind, + sym_bind_unpack, + [18041] = 11, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(1052), 1, + sym_identifier, + ACTIONS(1058), 1, + anon_sym_RPAREN, + STATE(280), 1, + aux_sym_lambda_bindings_repeat1, + STATE(319), 1, + sym__variable_identifier, + STATE(381), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + STATE(495), 2, + sym__bind, + sym_bind_unpack, + [18076] = 11, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(1052), 1, + sym_identifier, + ACTIONS(1060), 1, + anon_sym_PIPE, + STATE(278), 1, + aux_sym_lambda_bindings_repeat1, + STATE(319), 1, + sym__variable_identifier, + STATE(381), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + STATE(546), 2, + sym__bind, + sym_bind_unpack, + [18111] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(438), 1, + anon_sym_COLON_COLON, + ACTIONS(683), 1, + anon_sym_COLON, + ACTIONS(436), 2, + anon_sym_LBRACE, + anon_sym_LT, + ACTIONS(681), 6, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_RPAREN, + anon_sym_EQ, + anon_sym_PIPE, + [18133] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1062), 9, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_RPAREN, + anon_sym_acquires, + anon_sym_EQ, + anon_sym_GT, + anon_sym_PIPE, + [18148] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1064), 9, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_RBRACK, + [18163] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1066), 9, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_RPAREN, + anon_sym_acquires, + anon_sym_EQ, + anon_sym_GT, + anon_sym_PIPE, + [18178] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1068), 9, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_RPAREN, + anon_sym_acquires, + anon_sym_EQ, + anon_sym_GT, + anon_sym_PIPE, + [18193] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1070), 9, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_RPAREN, + anon_sym_acquires, + anon_sym_EQ, + anon_sym_GT, + anon_sym_PIPE, + [18208] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1072), 9, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_RBRACK, + [18223] = 9, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(1052), 1, + sym_identifier, + STATE(319), 1, + sym__variable_identifier, + STATE(381), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + STATE(553), 2, + sym__bind, + sym_bind_unpack, + [18252] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1074), 9, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_RBRACK, + [18267] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1076), 9, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_RBRACK, + [18282] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1078), 9, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_RPAREN, + anon_sym_acquires, + anon_sym_EQ, + anon_sym_GT, + anon_sym_PIPE, + [18297] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1080), 9, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_RBRACK, + [18312] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1082), 9, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_RPAREN, + anon_sym_acquires, + anon_sym_EQ, + anon_sym_GT, + anon_sym_PIPE, + [18327] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1084), 9, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_RBRACK, + [18342] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1088), 1, + anon_sym_LT, + STATE(287), 1, + sym_type_arguments, + ACTIONS(1086), 7, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_RPAREN, + anon_sym_acquires, + anon_sym_EQ, + [18361] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1090), 9, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_to, + anon_sym_else, + anon_sym_RBRACK, + [18376] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(513), 8, + anon_sym_RBRACE, + anon_sym_use, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + [18390] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(493), 8, + anon_sym_RBRACE, + anon_sym_use, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + [18404] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(525), 8, + anon_sym_RBRACE, + anon_sym_use, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + [18418] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(497), 8, + anon_sym_RBRACE, + anon_sym_use, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + [18432] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(442), 8, + anon_sym_RBRACE, + anon_sym_use, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + [18446] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(454), 8, + anon_sym_RBRACE, + anon_sym_use, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + [18460] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(557), 8, + anon_sym_RBRACE, + anon_sym_use, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + [18474] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(541), 8, + anon_sym_RBRACE, + anon_sym_use, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + [18488] = 8, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(907), 1, + sym_identifier, + STATE(438), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(1092), 2, + anon_sym_LBRACE, + anon_sym_SEMI, + [18514] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(462), 8, + anon_sym_RBRACE, + anon_sym_use, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + [18528] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(485), 8, + anon_sym_RBRACE, + anon_sym_use, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + [18542] = 8, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(907), 1, + sym_identifier, + STATE(438), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + ACTIONS(1094), 2, + anon_sym_LBRACE, + anon_sym_SEMI, + [18568] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(517), 8, + anon_sym_RBRACE, + anon_sym_use, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + [18582] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(545), 8, + anon_sym_RBRACE, + anon_sym_use, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + [18596] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(549), 8, + anon_sym_RBRACE, + anon_sym_use, + anon_sym_native, + anon_sym_resource, + anon_sym_struct, + anon_sym_public, + anon_sym_fun, + anon_sym_spec, + [18610] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1096), 7, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_EQ, + anon_sym_PIPE, + [18623] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1100), 1, + anon_sym_AMP, + ACTIONS(1098), 6, + anon_sym_COLON_COLON, + anon_sym_LPAREN, + anon_sym_AMPmut, + anon_sym_PIPE, + sym_address_literal, + sym_identifier, + [18638] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1102), 7, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_EQ, + anon_sym_PIPE, + [18651] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1104), 7, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_EQ, + anon_sym_PIPE, + [18664] = 7, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(806), 1, + anon_sym_use, + ACTIONS(814), 1, + anon_sym_public, + ACTIONS(816), 1, + anon_sym_fun, + STATE(400), 1, + sym_usual_function_definition, + STATE(555), 1, + sym__function_signature, + STATE(349), 2, + sym_use_decl, + aux_sym_script_block_repeat1, + [18687] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1106), 7, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_EQ, + anon_sym_PIPE, + [18700] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1110), 1, + anon_sym_AMP, + ACTIONS(1108), 6, + anon_sym_COLON_COLON, + anon_sym_LPAREN, + anon_sym_AMPmut, + anon_sym_PIPE, + sym_address_literal, + sym_identifier, + [18715] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1114), 1, + anon_sym_AMP, + ACTIONS(1112), 6, + anon_sym_COLON_COLON, + anon_sym_LPAREN, + anon_sym_AMPmut, + anon_sym_PIPE, + sym_address_literal, + sym_identifier, + [18730] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1116), 7, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_EQ, + anon_sym_PIPE, + [18743] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1122), 1, + sym_num_literal, + ACTIONS(1118), 2, + sym_address_literal, + sym_byte_string_literal, + ACTIONS(1120), 2, + anon_sym_true, + anon_sym_false, + STATE(530), 2, + sym__literal_value, + sym_bool_literal, + [18762] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1124), 7, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_EQ, + anon_sym_PIPE, + [18775] = 7, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(806), 1, + anon_sym_use, + ACTIONS(814), 1, + anon_sym_public, + ACTIONS(816), 1, + anon_sym_fun, + STATE(405), 1, + sym_usual_function_definition, + STATE(555), 1, + sym__function_signature, + STATE(318), 2, + sym_use_decl, + aux_sym_script_block_repeat1, + [18798] = 6, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1126), 1, + anon_sym_SEMI, + ACTIONS(1130), 1, + anon_sym_except, + ACTIONS(1132), 1, + sym_spec_apply_name_pattern, + STATE(463), 1, + sym_spec_apply_pattern, + ACTIONS(1128), 2, + anon_sym_public, + anon_sym_internal, + [18818] = 7, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(907), 1, + sym_identifier, + STATE(419), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + [18840] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(438), 6, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_COLON_COLON, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_as, + [18852] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1136), 1, + anon_sym_else, + ACTIONS(1134), 5, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_RPAREN, + anon_sym_RBRACK, + [18866] = 7, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(15), 1, + anon_sym_COLON_COLON, + ACTIONS(870), 1, + sym_address_literal, + ACTIONS(907), 1, + sym_identifier, + STATE(438), 1, + sym_module_access, + STATE(610), 1, + sym__module_identifier, + STATE(614), 1, + sym__module_ident, + [18888] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1138), 6, + anon_sym_LBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_COLON, + anon_sym_LPAREN, + anon_sym_except, + [18900] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1140), 1, + anon_sym_else, + ACTIONS(1134), 5, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_RPAREN, + anon_sym_RBRACK, + [18914] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1142), 6, + anon_sym_LBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_COLON, + anon_sym_LPAREN, + anon_sym_except, + [18926] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1144), 6, + anon_sym_LBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_COLON, + anon_sym_LPAREN, + anon_sym_except, + [18938] = 7, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(810), 1, + anon_sym_resource, + ACTIONS(812), 1, + anon_sym_struct, + ACTIONS(814), 1, + anon_sym_public, + ACTIONS(816), 1, + anon_sym_fun, + STATE(580), 1, + sym__struct_signature, + STATE(581), 1, + sym__function_signature, + [18960] = 7, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1146), 1, + anon_sym_LBRACE, + ACTIONS(1148), 1, + anon_sym_module, + ACTIONS(1150), 1, + anon_sym_struct, + ACTIONS(1152), 1, + anon_sym_fun, + ACTIONS(1154), 1, + anon_sym_schema, + STATE(106), 1, + sym_spec_body, + [18982] = 6, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1132), 1, + sym_spec_apply_name_pattern, + ACTIONS(1156), 1, + anon_sym_SEMI, + ACTIONS(1158), 1, + anon_sym_except, + STATE(463), 1, + sym_spec_apply_pattern, + ACTIONS(1128), 2, + anon_sym_public, + anon_sym_internal, + [19002] = 7, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(810), 1, + anon_sym_resource, + ACTIONS(812), 1, + anon_sym_struct, + ACTIONS(814), 1, + anon_sym_public, + ACTIONS(816), 1, + anon_sym_fun, + STATE(583), 1, + sym__function_signature, + STATE(586), 1, + sym__struct_signature, + [19024] = 6, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1160), 1, + anon_sym_RBRACE, + ACTIONS(1162), 1, + sym_identifier, + STATE(339), 1, + aux_sym_bind_fields_repeat1, + STATE(437), 1, + sym__field_identifier, + STATE(576), 1, + sym_bind_field, + [19043] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1167), 1, + anon_sym_COLON, + ACTIONS(1169), 1, + anon_sym_acquires, + STATE(527), 1, + sym_resource_accquires, + ACTIONS(1165), 2, + anon_sym_LBRACE, + anon_sym_SEMI, + [19060] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1171), 1, + anon_sym_else, + ACTIONS(1134), 4, + anon_sym_COMMA, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + [19073] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1169), 1, + anon_sym_acquires, + ACTIONS(1175), 1, + anon_sym_COLON, + STATE(561), 1, + sym_resource_accquires, + ACTIONS(1173), 2, + anon_sym_LBRACE, + anon_sym_SEMI, + [19090] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1179), 1, + anon_sym_LT, + STATE(460), 1, + sym_type_parameters, + ACTIONS(1177), 3, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_except, + [19105] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1183), 1, + anon_sym_as, + STATE(442), 1, + sym__use_alias, + ACTIONS(1181), 3, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + [19120] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1179), 1, + anon_sym_LT, + STATE(443), 1, + sym_type_parameters, + ACTIONS(1185), 3, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_except, + [19135] = 6, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1187), 1, + anon_sym_RBRACE, + ACTIONS(1189), 1, + sym_identifier, + STATE(339), 1, + aux_sym_bind_fields_repeat1, + STATE(437), 1, + sym__field_identifier, + STATE(511), 1, + sym_bind_field, + [19154] = 6, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1189), 1, + sym_identifier, + ACTIONS(1191), 1, + anon_sym_RBRACE, + STATE(363), 1, + aux_sym_struct_def_fields_repeat1, + STATE(491), 1, + sym_field_annotation, + STATE(629), 1, + sym__field_identifier, + [19173] = 6, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1189), 1, + sym_identifier, + ACTIONS(1193), 1, + anon_sym_RBRACE, + STATE(352), 1, + aux_sym_field_initialize_list_repeat1, + STATE(467), 1, + sym__field_identifier, + STATE(486), 1, + sym_exp_field, + [19192] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1195), 1, + anon_sym_use, + ACTIONS(820), 2, + anon_sym_public, + anon_sym_fun, + STATE(349), 2, + sym_use_decl, + aux_sym_script_block_repeat1, + [19207] = 6, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1198), 1, + anon_sym_RPAREN, + ACTIONS(1200), 1, + sym_identifier, + STATE(359), 1, + aux_sym_func_params_repeat1, + STATE(552), 1, + sym_function_parameter, + STATE(637), 1, + sym__variable_identifier, + [19226] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1202), 1, + anon_sym_else, + ACTIONS(1134), 4, + anon_sym_COMMA, + anon_sym_as, + anon_sym_COLON, + anon_sym_RPAREN, + [19239] = 6, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1189), 1, + sym_identifier, + ACTIONS(1204), 1, + anon_sym_RBRACE, + STATE(360), 1, + aux_sym_field_initialize_list_repeat1, + STATE(467), 1, + sym__field_identifier, + STATE(483), 1, + sym_exp_field, + [19258] = 6, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1206), 1, + anon_sym_RBRACE, + ACTIONS(1208), 1, + sym_identifier, + STATE(353), 1, + aux_sym_struct_def_fields_repeat1, + STATE(617), 1, + sym_field_annotation, + STATE(629), 1, + sym__field_identifier, + [19277] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1132), 1, + sym_spec_apply_name_pattern, + ACTIONS(1211), 1, + anon_sym_SEMI, + STATE(463), 1, + sym_spec_apply_pattern, + ACTIONS(1128), 2, + anon_sym_public, + anon_sym_internal, + [19294] = 6, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1200), 1, + sym_identifier, + ACTIONS(1213), 1, + anon_sym_RPAREN, + STATE(350), 1, + aux_sym_func_params_repeat1, + STATE(520), 1, + sym_function_parameter, + STATE(637), 1, + sym__variable_identifier, + [19313] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1169), 1, + anon_sym_acquires, + ACTIONS(1217), 1, + anon_sym_COLON, + STATE(487), 1, + sym_resource_accquires, + ACTIONS(1215), 2, + anon_sym_LBRACE, + anon_sym_SEMI, + [19330] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1132), 1, + sym_spec_apply_name_pattern, + ACTIONS(1219), 1, + anon_sym_SEMI, + STATE(463), 1, + sym_spec_apply_pattern, + ACTIONS(1128), 2, + anon_sym_public, + anon_sym_internal, + [19347] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1169), 1, + anon_sym_acquires, + ACTIONS(1223), 1, + anon_sym_COLON, + STATE(545), 1, + sym_resource_accquires, + ACTIONS(1221), 2, + anon_sym_LBRACE, + anon_sym_SEMI, + [19364] = 6, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1225), 1, + anon_sym_RPAREN, + ACTIONS(1227), 1, + sym_identifier, + STATE(359), 1, + aux_sym_func_params_repeat1, + STATE(636), 1, + sym_function_parameter, + STATE(637), 1, + sym__variable_identifier, + [19383] = 6, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1230), 1, + anon_sym_RBRACE, + ACTIONS(1232), 1, + sym_identifier, + STATE(360), 1, + aux_sym_field_initialize_list_repeat1, + STATE(467), 1, + sym__field_identifier, + STATE(630), 1, + sym_exp_field, + [19402] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1235), 1, + anon_sym_LT, + STATE(287), 1, + sym_type_arguments, + ACTIONS(1086), 3, + anon_sym_COMMA, + anon_sym_GT, + anon_sym_PIPE, + [19417] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1132), 1, + sym_spec_apply_name_pattern, + ACTIONS(1237), 1, + anon_sym_SEMI, + STATE(463), 1, + sym_spec_apply_pattern, + ACTIONS(1128), 2, + anon_sym_public, + anon_sym_internal, + [19434] = 6, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1189), 1, + sym_identifier, + ACTIONS(1239), 1, + anon_sym_RBRACE, + STATE(353), 1, + aux_sym_struct_def_fields_repeat1, + STATE(541), 1, + sym_field_annotation, + STATE(629), 1, + sym__field_identifier, + [19453] = 6, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1189), 1, + sym_identifier, + ACTIONS(1241), 1, + anon_sym_RBRACE, + STATE(346), 1, + aux_sym_bind_fields_repeat1, + STATE(437), 1, + sym__field_identifier, + STATE(540), 1, + sym_bind_field, + [19472] = 6, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1189), 1, + sym_identifier, + ACTIONS(1243), 1, + anon_sym_RBRACE, + STATE(353), 1, + aux_sym_struct_def_fields_repeat1, + STATE(569), 1, + sym_field_annotation, + STATE(629), 1, + sym__field_identifier, + [19491] = 6, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1189), 1, + sym_identifier, + ACTIONS(1245), 1, + anon_sym_RBRACE, + STATE(365), 1, + aux_sym_struct_def_fields_repeat1, + STATE(564), 1, + sym_field_annotation, + STATE(629), 1, + sym__field_identifier, + [19510] = 6, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1247), 1, + anon_sym_COMMA, + ACTIONS(1249), 1, + anon_sym_as, + ACTIONS(1251), 1, + anon_sym_COLON, + ACTIONS(1253), 1, + anon_sym_RPAREN, + STATE(448), 1, + aux_sym_expression_list_repeat1, + [19529] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1132), 1, + sym_spec_apply_name_pattern, + ACTIONS(1255), 1, + anon_sym_SEMI, + STATE(463), 1, + sym_spec_apply_pattern, + ACTIONS(1128), 2, + anon_sym_public, + anon_sym_internal, + [19546] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(438), 1, + anon_sym_COLON_COLON, + ACTIONS(436), 4, + anon_sym_COMMA, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + [19559] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1042), 5, + anon_sym_COLON_COLON, + anon_sym_RPAREN, + anon_sym_PIPE, + sym_address_literal, + sym_identifier, + [19570] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1257), 1, + anon_sym_SEMI, + ACTIONS(1259), 1, + sym_identifier, + STATE(390), 1, + aux_sym_spec_pragma_repeat1, + STATE(533), 1, + sym_spec_pragma_property, + [19586] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1183), 1, + anon_sym_as, + ACTIONS(1261), 1, + anon_sym_COLON_COLON, + ACTIONS(1263), 1, + anon_sym_SEMI, + STATE(641), 1, + sym__use_alias, + [19602] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(489), 4, + anon_sym_COMMA, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + [19612] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1265), 4, + anon_sym_LBRACE, + anon_sym_SEMI, + anon_sym_COLON, + anon_sym_acquires, + [19622] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1179), 1, + anon_sym_LT, + ACTIONS(1267), 1, + anon_sym_LPAREN, + STATE(356), 1, + sym_func_params, + STATE(481), 1, + sym_type_parameters, + [19638] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1183), 1, + anon_sym_as, + ACTIONS(1269), 1, + anon_sym_COLON_COLON, + ACTIONS(1271), 1, + anon_sym_SEMI, + STATE(591), 1, + sym__use_alias, + [19654] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1273), 4, + anon_sym_RBRACE, + anon_sym_SEMI, + anon_sym_COLON, + anon_sym_EQ, + [19664] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1179), 1, + anon_sym_LT, + STATE(531), 1, + sym_type_parameters, + ACTIONS(1275), 2, + anon_sym_LBRACE, + anon_sym_SEMI, + [19678] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(501), 4, + anon_sym_COMMA, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + [19688] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1169), 1, + anon_sym_acquires, + STATE(519), 1, + sym_resource_accquires, + ACTIONS(1277), 2, + anon_sym_LBRACE, + anon_sym_SEMI, + [19702] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1088), 1, + anon_sym_LT, + ACTIONS(1279), 1, + anon_sym_LBRACE, + STATE(324), 1, + sym_bind_fields, + STATE(503), 1, + sym_type_arguments, + [19718] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1146), 1, + anon_sym_LBRACE, + ACTIONS(1179), 1, + anon_sym_LT, + STATE(111), 1, + sym_spec_body, + STATE(537), 1, + sym_type_parameters, + [19734] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1281), 4, + anon_sym_RBRACE, + anon_sym_SEMI, + anon_sym_COLON, + anon_sym_EQ, + [19744] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1259), 1, + sym_identifier, + ACTIONS(1283), 1, + anon_sym_SEMI, + STATE(371), 1, + aux_sym_spec_pragma_repeat1, + STATE(513), 1, + sym_spec_pragma_property, + [19760] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1132), 1, + sym_spec_apply_name_pattern, + STATE(463), 1, + sym_spec_apply_pattern, + ACTIONS(1128), 2, + anon_sym_public, + anon_sym_internal, + [19774] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1132), 1, + sym_spec_apply_name_pattern, + STATE(479), 1, + sym_spec_apply_pattern, + ACTIONS(1128), 2, + anon_sym_public, + anon_sym_internal, + [19788] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1179), 1, + anon_sym_LT, + ACTIONS(1267), 1, + anon_sym_LPAREN, + STATE(524), 1, + sym_type_parameters, + STATE(602), 1, + sym_func_params, + [19804] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1285), 1, + anon_sym_COMMA, + STATE(388), 1, + aux_sym_spec_apply_repeat1, + ACTIONS(1288), 2, + anon_sym_SEMI, + anon_sym_except, + [19818] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1290), 1, + anon_sym_GT, + ACTIONS(1292), 1, + sym_identifier, + STATE(423), 1, + sym__type_parameter_identifier, + STATE(484), 1, + sym_type_parameter, + [19834] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1294), 1, + anon_sym_SEMI, + ACTIONS(1296), 1, + sym_identifier, + STATE(390), 1, + aux_sym_spec_pragma_repeat1, + STATE(642), 1, + sym_spec_pragma_property, + [19850] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1292), 1, + sym_identifier, + ACTIONS(1299), 1, + anon_sym_GT, + STATE(423), 1, + sym__type_parameter_identifier, + STATE(484), 1, + sym_type_parameter, + [19866] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1132), 1, + sym_spec_apply_name_pattern, + STATE(470), 1, + sym_spec_apply_pattern, + ACTIONS(1128), 2, + anon_sym_public, + anon_sym_internal, + [19880] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1179), 1, + anon_sym_LT, + ACTIONS(1267), 1, + anon_sym_LPAREN, + STATE(342), 1, + sym_func_params, + STATE(532), 1, + sym_type_parameters, + [19896] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1169), 1, + anon_sym_acquires, + STATE(556), 1, + sym_resource_accquires, + ACTIONS(1301), 2, + anon_sym_LBRACE, + anon_sym_SEMI, + [19910] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1179), 1, + anon_sym_LT, + STATE(571), 1, + sym_type_parameters, + ACTIONS(1303), 2, + anon_sym_LBRACE, + anon_sym_SEMI, + [19924] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(458), 4, + anon_sym_COMMA, + anon_sym_LT, + anon_sym_GT, + anon_sym_PIPE, + [19934] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1305), 1, + anon_sym_RBRACE, + ACTIONS(1307), 1, + anon_sym_module, + STATE(418), 2, + sym_module_definition, + aux_sym_address_block_repeat1, + [19948] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1309), 4, + anon_sym_LBRACE, + anon_sym_SEMI, + anon_sym_COLON, + anon_sym_acquires, + [19958] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(818), 1, + anon_sym_spec, + ACTIONS(1311), 1, + anon_sym_RBRACE, + STATE(415), 2, + sym_spec_block, + aux_sym_script_block_repeat2, + [19972] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(818), 1, + anon_sym_spec, + ACTIONS(1311), 1, + anon_sym_RBRACE, + STATE(411), 2, + sym_spec_block, + aux_sym_script_block_repeat2, + [19986] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1183), 1, + anon_sym_as, + ACTIONS(1313), 1, + anon_sym_COLON_COLON, + ACTIONS(1315), 1, + anon_sym_SEMI, + STATE(598), 1, + sym__use_alias, + [20002] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1317), 1, + anon_sym_COMMA, + STATE(414), 1, + aux_sym_resource_accquires_repeat1, + ACTIONS(1094), 2, + anon_sym_LBRACE, + anon_sym_SEMI, + [20016] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1169), 1, + anon_sym_acquires, + STATE(536), 1, + sym_resource_accquires, + ACTIONS(1319), 2, + anon_sym_LBRACE, + anon_sym_SEMI, + [20030] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1132), 1, + sym_spec_apply_name_pattern, + STATE(408), 1, + sym_spec_apply_pattern, + ACTIONS(1128), 2, + anon_sym_public, + anon_sym_internal, + [20044] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(818), 1, + anon_sym_spec, + ACTIONS(1321), 1, + anon_sym_RBRACE, + STATE(399), 2, + sym_spec_block, + aux_sym_script_block_repeat2, + [20058] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1126), 1, + anon_sym_SEMI, + ACTIONS(1323), 1, + anon_sym_COMMA, + ACTIONS(1325), 1, + anon_sym_except, + STATE(388), 1, + aux_sym_spec_apply_repeat1, + [20074] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1307), 1, + anon_sym_module, + ACTIONS(1327), 1, + anon_sym_RBRACE, + STATE(397), 2, + sym_module_definition, + aux_sym_address_block_repeat1, + [20088] = 5, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1329), 1, + anon_sym_COMMA, + ACTIONS(1331), 1, + anon_sym_SEMI, + ACTIONS(1333), 1, + anon_sym_except, + STATE(406), 1, + aux_sym_spec_apply_repeat1, + [20104] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1132), 1, + sym_spec_apply_name_pattern, + STATE(464), 1, + sym_spec_apply_pattern, + ACTIONS(1128), 2, + anon_sym_public, + anon_sym_internal, + [20118] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1335), 4, + anon_sym_RBRACE, + anon_sym_SEMI, + anon_sym_COLON, + anon_sym_EQ, + [20128] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(818), 1, + anon_sym_spec, + ACTIONS(1337), 1, + anon_sym_RBRACE, + STATE(415), 2, + sym_spec_block, + aux_sym_script_block_repeat2, + [20142] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1339), 4, + anon_sym_RBRACE, + anon_sym_SEMI, + anon_sym_COLON, + anon_sym_EQ, + [20152] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1341), 4, + anon_sym_LBRACE, + anon_sym_SEMI, + anon_sym_COLON, + anon_sym_acquires, + [20162] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1345), 1, + anon_sym_COMMA, + STATE(414), 1, + aux_sym_resource_accquires_repeat1, + ACTIONS(1343), 2, + anon_sym_LBRACE, + anon_sym_SEMI, + [20176] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1348), 1, + anon_sym_RBRACE, + ACTIONS(1350), 1, + anon_sym_spec, + STATE(415), 2, + sym_spec_block, + aux_sym_script_block_repeat2, + [20190] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1355), 1, + anon_sym_COLON, + ACTIONS(1357), 1, + anon_sym_EQ, + ACTIONS(1353), 2, + anon_sym_RBRACE, + anon_sym_SEMI, + [20204] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1169), 1, + anon_sym_acquires, + STATE(508), 1, + sym_resource_accquires, + ACTIONS(1359), 2, + anon_sym_LBRACE, + anon_sym_SEMI, + [20218] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1361), 1, + anon_sym_RBRACE, + ACTIONS(1363), 1, + anon_sym_module, + STATE(418), 2, + sym_module_definition, + aux_sym_address_block_repeat1, + [20232] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1368), 1, + anon_sym_COMMA, + STATE(402), 1, + aux_sym_resource_accquires_repeat1, + ACTIONS(1366), 2, + anon_sym_LBRACE, + anon_sym_SEMI, + [20246] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1370), 1, + anon_sym_COMMA, + ACTIONS(1373), 1, + anon_sym_GT, + STATE(420), 1, + aux_sym_type_parameters_repeat1, + [20259] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1375), 1, + anon_sym_COMMA, + ACTIONS(1377), 1, + anon_sym_GT, + STATE(439), 1, + aux_sym_tuple_type_repeat1, + [20272] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1379), 1, + anon_sym_COMMA, + ACTIONS(1382), 1, + anon_sym_RPAREN, + STATE(422), 1, + aux_sym_tuple_type_repeat1, + [20285] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1386), 1, + anon_sym_COLON, + ACTIONS(1384), 2, + anon_sym_COMMA, + anon_sym_GT, + [20296] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1388), 1, + anon_sym_COMMA, + ACTIONS(1390), 1, + anon_sym_GT, + STATE(426), 1, + aux_sym_type_parameters_repeat1, + [20309] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1392), 3, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_GT, + [20318] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1290), 1, + anon_sym_GT, + ACTIONS(1394), 1, + anon_sym_COMMA, + STATE(420), 1, + aux_sym_type_parameters_repeat1, + [20331] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(895), 1, + anon_sym_GT, + ACTIONS(1396), 1, + anon_sym_COMMA, + STATE(465), 1, + aux_sym_tuple_type_repeat1, + [20344] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1398), 3, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + [20353] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1400), 3, + anon_sym_LBRACE, + anon_sym_SEMI, + anon_sym_LT, + [20362] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1402), 1, + anon_sym_COMMA, + ACTIONS(1404), 1, + anon_sym_GT, + STATE(427), 1, + aux_sym_tuple_type_repeat1, + [20375] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1179), 1, + anon_sym_LT, + ACTIONS(1406), 1, + anon_sym_COLON, + STATE(601), 1, + sym_type_parameters, + [20388] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1408), 1, + anon_sym_RBRACE, + ACTIONS(1410), 1, + sym_identifier, + STATE(566), 1, + sym_use_member, + [20401] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1412), 1, + anon_sym_RBRACE, + ACTIONS(1414), 1, + anon_sym_COMMA, + STATE(433), 1, + aux_sym_use_decl_repeat1, + [20414] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1417), 3, + anon_sym_LBRACE, + anon_sym_LPAREN, + anon_sym_LT, + [20423] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1292), 1, + sym_identifier, + STATE(423), 1, + sym__type_parameter_identifier, + STATE(484), 1, + sym_type_parameter, + [20436] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1421), 1, + anon_sym_EQ, + ACTIONS(1419), 2, + anon_sym_RBRACE, + anon_sym_SEMI, + [20447] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1425), 1, + anon_sym_COLON, + ACTIONS(1423), 2, + anon_sym_RBRACE, + anon_sym_COMMA, + [20458] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1343), 3, + anon_sym_LBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + [20467] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(955), 1, + anon_sym_GT, + ACTIONS(1427), 1, + anon_sym_COMMA, + STATE(465), 1, + aux_sym_tuple_type_repeat1, + [20480] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1410), 1, + sym_identifier, + ACTIONS(1429), 1, + anon_sym_LBRACE, + STATE(658), 1, + sym_use_member, + [20493] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1292), 1, + sym_identifier, + STATE(423), 1, + sym__type_parameter_identifier, + STATE(424), 1, + sym_type_parameter, + [20506] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1431), 3, + anon_sym_RBRACE, + anon_sym_COMMA, + anon_sym_SEMI, + [20515] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1433), 3, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_except, + [20524] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1410), 1, + sym_identifier, + ACTIONS(1435), 1, + anon_sym_RBRACE, + STATE(566), 1, + sym_use_member, + [20537] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1437), 1, + anon_sym_RBRACE, + ACTIONS(1439), 1, + anon_sym_COMMA, + STATE(433), 1, + aux_sym_use_decl_repeat1, + [20550] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1410), 1, + sym_identifier, + ACTIONS(1437), 1, + anon_sym_RBRACE, + STATE(566), 1, + sym_use_member, + [20563] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1441), 1, + anon_sym_RBRACE, + ACTIONS(1443), 1, + anon_sym_COMMA, + STATE(471), 1, + aux_sym_use_decl_repeat1, + [20576] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(382), 1, + anon_sym_RPAREN, + ACTIONS(1445), 1, + anon_sym_COMMA, + STATE(469), 1, + aux_sym_expression_list_repeat1, + [20589] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1447), 1, + anon_sym_RBRACE, + ACTIONS(1449), 1, + anon_sym_COMMA, + STATE(445), 1, + aux_sym_use_decl_repeat1, + [20602] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1451), 1, + anon_sym_COMMA, + ACTIONS(1453), 1, + anon_sym_RPAREN, + STATE(458), 1, + aux_sym_tuple_type_repeat1, + [20615] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1410), 1, + sym_identifier, + ACTIONS(1455), 1, + anon_sym_LBRACE, + STATE(600), 1, + sym_use_member, + [20628] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1457), 1, + sym_identifier, + STATE(387), 1, + sym__function_identifier, + STATE(521), 1, + sym__spec_function_signature, + [20641] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(474), 3, + anon_sym_COMMA, + anon_sym_GT, + anon_sym_PIPE, + [20650] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1179), 1, + anon_sym_LT, + ACTIONS(1459), 1, + anon_sym_COLON, + STATE(597), 1, + sym_type_parameters, + [20663] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(529), 3, + anon_sym_COMMA, + anon_sym_GT, + anon_sym_PIPE, + [20672] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(470), 3, + anon_sym_COMMA, + anon_sym_GT, + anon_sym_PIPE, + [20681] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1463), 1, + anon_sym_EQ, + ACTIONS(1461), 2, + anon_sym_COMMA, + anon_sym_SEMI, + [20692] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(901), 1, + anon_sym_RPAREN, + ACTIONS(1465), 1, + anon_sym_COMMA, + STATE(422), 1, + aux_sym_tuple_type_repeat1, + [20705] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1457), 1, + sym_identifier, + STATE(387), 1, + sym__function_identifier, + STATE(578), 1, + sym__spec_function_signature, + [20718] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1467), 3, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_except, + [20727] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1469), 1, + anon_sym_RBRACE, + ACTIONS(1471), 1, + anon_sym_COMMA, + STATE(475), 1, + aux_sym_use_decl_repeat1, + [20740] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1237), 1, + anon_sym_SEMI, + ACTIONS(1473), 1, + anon_sym_COMMA, + STATE(388), 1, + aux_sym_spec_apply_repeat1, + [20753] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1288), 3, + anon_sym_COMMA, + anon_sym_SEMI, + anon_sym_except, + [20762] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1156), 1, + anon_sym_SEMI, + ACTIONS(1475), 1, + anon_sym_COMMA, + STATE(473), 1, + aux_sym_spec_apply_repeat1, + [20775] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1382), 1, + anon_sym_GT, + ACTIONS(1477), 1, + anon_sym_COMMA, + STATE(465), 1, + aux_sym_tuple_type_repeat1, + [20788] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1410), 1, + sym_identifier, + ACTIONS(1480), 1, + anon_sym_LBRACE, + STATE(579), 1, + sym_use_member, + [20801] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1484), 1, + anon_sym_COLON, + ACTIONS(1482), 2, + anon_sym_RBRACE, + anon_sym_COMMA, + [20812] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1382), 3, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_GT, + [20821] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1486), 1, + anon_sym_COMMA, + ACTIONS(1489), 1, + anon_sym_RPAREN, + STATE(469), 1, + aux_sym_expression_list_repeat1, + [20834] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1211), 1, + anon_sym_SEMI, + ACTIONS(1491), 1, + anon_sym_COMMA, + STATE(478), 1, + aux_sym_spec_apply_repeat1, + [20847] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1493), 1, + anon_sym_RBRACE, + ACTIONS(1495), 1, + anon_sym_COMMA, + STATE(433), 1, + aux_sym_use_decl_repeat1, + [20860] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1410), 1, + sym_identifier, + ACTIONS(1497), 1, + anon_sym_RBRACE, + STATE(566), 1, + sym_use_member, + [20873] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1211), 1, + anon_sym_SEMI, + ACTIONS(1491), 1, + anon_sym_COMMA, + STATE(388), 1, + aux_sym_spec_apply_repeat1, + [20886] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1410), 1, + sym_identifier, + ACTIONS(1493), 1, + anon_sym_RBRACE, + STATE(566), 1, + sym_use_member, + [20899] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1499), 1, + anon_sym_RBRACE, + ACTIONS(1501), 1, + anon_sym_COMMA, + STATE(433), 1, + aux_sym_use_decl_repeat1, + [20912] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1503), 3, + anon_sym_COLON_COLON, + anon_sym_SEMI, + anon_sym_as, + [20921] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1410), 1, + sym_identifier, + ACTIONS(1499), 1, + anon_sym_RBRACE, + STATE(566), 1, + sym_use_member, + [20934] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1219), 1, + anon_sym_SEMI, + ACTIONS(1505), 1, + anon_sym_COMMA, + STATE(388), 1, + aux_sym_spec_apply_repeat1, + [20947] = 4, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1219), 1, + anon_sym_SEMI, + ACTIONS(1505), 1, + anon_sym_COMMA, + STATE(462), 1, + aux_sym_spec_apply_repeat1, + [20960] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1507), 1, + anon_sym_COMMA, + ACTIONS(1509), 1, + anon_sym_PIPE, + [20970] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1267), 1, + anon_sym_LPAREN, + STATE(358), 1, + sym_func_params, + [20980] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1511), 2, + anon_sym_COMMA, + anon_sym_GT, + [20988] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1513), 1, + anon_sym_RBRACE, + ACTIONS(1515), 1, + anon_sym_COMMA, + [20998] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1373), 2, + anon_sym_COMMA, + anon_sym_GT, + [21006] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1517), 2, + anon_sym_LBRACE, + anon_sym_SEMI, + [21014] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1204), 1, + anon_sym_RBRACE, + ACTIONS(1515), 1, + anon_sym_COMMA, + [21024] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1519), 2, + anon_sym_LBRACE, + anon_sym_SEMI, + [21032] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1489), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + [21040] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1521), 2, + anon_sym_RBRACE, + anon_sym_COMMA, + [21048] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1200), 1, + sym_identifier, + STATE(172), 1, + sym__variable_identifier, + [21058] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1239), 1, + anon_sym_RBRACE, + ACTIONS(1523), 1, + anon_sym_COMMA, + [21068] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1525), 1, + anon_sym_LBRACE, + STATE(144), 1, + sym_struct_def_fields, + [21078] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1206), 2, + anon_sym_RBRACE, + sym_identifier, + [21086] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1527), 1, + sym_identifier, + STATE(560), 1, + sym__module_identifier, + [21096] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1056), 1, + anon_sym_RPAREN, + ACTIONS(1529), 1, + anon_sym_COMMA, + [21106] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1529), 1, + anon_sym_COMMA, + ACTIONS(1531), 1, + anon_sym_PIPE, + [21116] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1230), 2, + anon_sym_RBRACE, + sym_identifier, + [21124] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(509), 2, + anon_sym_RBRACE, + anon_sym_module, + [21132] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1533), 2, + anon_sym_RBRACE, + anon_sym_SEMI, + [21140] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1535), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + [21148] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(870), 1, + sym_address_literal, + STATE(376), 1, + sym__module_ident, + [21158] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1134), 1, + anon_sym_to, + ACTIONS(1537), 1, + anon_sym_else, + [21168] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1279), 1, + anon_sym_LBRACE, + STATE(317), 1, + sym_bind_fields, + [21178] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1539), 1, + anon_sym_LBRACE, + STATE(143), 1, + sym_block, + [21188] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1541), 2, + anon_sym_RBRACE, + anon_sym_SEMI, + [21196] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1543), 2, + anon_sym_RBRACE, + anon_sym_COMMA, + [21204] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1507), 1, + anon_sym_COMMA, + ACTIONS(1545), 1, + anon_sym_PIPE, + [21214] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1547), 2, + anon_sym_LBRACE, + anon_sym_SEMI, + [21222] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(533), 2, + anon_sym_RBRACE, + anon_sym_module, + [21230] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1146), 1, + anon_sym_LBRACE, + STATE(111), 1, + sym_spec_body, + [21240] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1549), 1, + anon_sym_RBRACE, + ACTIONS(1551), 1, + anon_sym_COMMA, + [21250] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1410), 1, + sym_identifier, + STATE(566), 1, + sym_use_member, + [21260] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1257), 1, + anon_sym_SEMI, + ACTIONS(1553), 1, + anon_sym_COMMA, + [21270] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(537), 2, + anon_sym_RBRACE, + anon_sym_module, + [21278] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1160), 2, + anon_sym_RBRACE, + sym_identifier, + [21286] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1555), 1, + anon_sym_COMMA, + ACTIONS(1557), 1, + anon_sym_RPAREN, + [21296] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(290), 1, + anon_sym_RPAREN, + ACTIONS(1555), 1, + anon_sym_COMMA, + [21306] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(870), 1, + sym_address_literal, + STATE(401), 1, + sym__module_ident, + [21316] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1559), 2, + anon_sym_LBRACE, + anon_sym_SEMI, + [21324] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1198), 1, + anon_sym_RPAREN, + ACTIONS(1561), 1, + anon_sym_COMMA, + [21334] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1563), 1, + anon_sym_LBRACE, + STATE(259), 1, + sym_block, + [21344] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1457), 1, + sym_identifier, + STATE(375), 1, + sym__function_identifier, + [21354] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(270), 1, + anon_sym_RBRACE, + ACTIONS(1565), 1, + anon_sym_SEMI, + [21364] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1267), 1, + anon_sym_LPAREN, + STATE(649), 1, + sym_func_params, + [21374] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1134), 1, + anon_sym_to, + ACTIONS(1567), 1, + anon_sym_else, + [21384] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1569), 2, + anon_sym_LBRACE, + anon_sym_SEMI, + [21392] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1571), 2, + anon_sym_LBRACE, + anon_sym_SEMI, + [21400] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1410), 1, + sym_identifier, + STATE(447), 1, + sym_use_member, + [21410] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1565), 1, + anon_sym_SEMI, + ACTIONS(1573), 1, + anon_sym_RBRACE, + [21420] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1575), 2, + anon_sym_COMMA, + anon_sym_SEMI, + [21428] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1577), 2, + anon_sym_LBRACE, + anon_sym_SEMI, + [21436] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1267), 1, + anon_sym_LPAREN, + STATE(340), 1, + sym_func_params, + [21446] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1553), 1, + anon_sym_COMMA, + ACTIONS(1579), 1, + anon_sym_SEMI, + [21456] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1527), 1, + sym_identifier, + STATE(428), 1, + sym__module_identifier, + [21466] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(266), 1, + anon_sym_RBRACE, + ACTIONS(1565), 1, + anon_sym_SEMI, + [21476] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1581), 2, + anon_sym_LBRACE, + anon_sym_SEMI, + [21484] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1146), 1, + anon_sym_LBRACE, + STATE(105), 1, + sym_spec_body, + [21494] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1294), 2, + anon_sym_SEMI, + sym_identifier, + [21502] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1565), 1, + anon_sym_SEMI, + ACTIONS(1583), 1, + anon_sym_RBRACE, + [21512] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1187), 1, + anon_sym_RBRACE, + ACTIONS(1551), 1, + anon_sym_COMMA, + [21522] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1523), 1, + anon_sym_COMMA, + ACTIONS(1585), 1, + anon_sym_RBRACE, + [21532] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1189), 1, + sym_identifier, + STATE(158), 1, + sym__field_identifier, + [21542] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1587), 1, + sym_identifier, + STATE(378), 1, + sym__struct_identifier, + [21552] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1527), 1, + sym_identifier, + STATE(476), 1, + sym__module_identifier, + [21562] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1589), 2, + anon_sym_LBRACE, + anon_sym_SEMI, + [21570] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1050), 1, + anon_sym_PIPE, + ACTIONS(1529), 1, + anon_sym_COMMA, + [21580] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1529), 1, + anon_sym_COMMA, + ACTIONS(1591), 1, + anon_sym_RPAREN, + [21590] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1587), 1, + sym_identifier, + STATE(382), 1, + sym__struct_identifier, + [21600] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1457), 1, + sym_identifier, + STATE(510), 1, + sym__function_identifier, + [21610] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1587), 1, + sym_identifier, + STATE(510), 1, + sym__struct_identifier, + [21620] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1146), 1, + anon_sym_LBRACE, + STATE(103), 1, + sym_spec_body, + [21630] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1561), 1, + anon_sym_COMMA, + ACTIONS(1593), 1, + anon_sym_RPAREN, + [21640] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1595), 2, + anon_sym_RBRACE, + anon_sym_COMMA, + [21648] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1597), 1, + anon_sym_LBRACE, + STATE(313), 1, + sym_struct_def_fields, + [21658] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(9), 1, + anon_sym_LBRACE, + STATE(312), 1, + sym_block, + [21668] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1599), 2, + anon_sym_LBRACE, + anon_sym_SEMI, + [21676] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(268), 1, + anon_sym_RBRACE, + ACTIONS(1565), 1, + anon_sym_SEMI, + [21686] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1457), 1, + sym_identifier, + STATE(393), 1, + sym__function_identifier, + [21696] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1225), 2, + anon_sym_RPAREN, + sym_identifier, + [21704] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1601), 1, + anon_sym_LBRACE, + STATE(498), 1, + sym_module_body, + [21714] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1603), 2, + anon_sym_LBRACE, + anon_sym_SEMI, + [21722] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1565), 1, + anon_sym_SEMI, + ACTIONS(1605), 1, + anon_sym_RBRACE, + [21732] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1410), 1, + sym_identifier, + STATE(461), 1, + sym_use_member, + [21742] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1243), 1, + anon_sym_RBRACE, + ACTIONS(1523), 1, + anon_sym_COMMA, + [21752] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1607), 2, + anon_sym_resource, + anon_sym_copyable, + [21760] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1412), 2, + anon_sym_RBRACE, + anon_sym_COMMA, + [21768] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1527), 1, + sym_identifier, + STATE(573), 1, + sym__module_identifier, + [21778] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1587), 1, + sym_identifier, + STATE(395), 1, + sym__struct_identifier, + [21788] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1523), 1, + anon_sym_COMMA, + ACTIONS(1609), 1, + anon_sym_RBRACE, + [21798] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1410), 1, + sym_identifier, + STATE(449), 1, + sym_use_member, + [21808] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1611), 2, + anon_sym_LBRACE, + anon_sym_SEMI, + [21816] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(870), 1, + sym_address_literal, + STATE(372), 1, + sym__module_ident, + [21826] = 3, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1613), 1, + anon_sym_LBRACE, + STATE(133), 1, + sym_module_body, + [21836] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1615), 1, + anon_sym_SEMI, + [21843] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1617), 1, + anon_sym_RPAREN, + [21850] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1551), 1, + anon_sym_COMMA, + [21857] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1619), 1, + sym_identifier, + [21864] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1621), 1, + anon_sym_SEMI, + [21871] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1623), 1, + anon_sym_SEMI, + [21878] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1625), 1, + anon_sym_SEMI, + [21885] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1627), 1, + anon_sym_SEMI, + [21892] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1565), 1, + anon_sym_SEMI, + [21899] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1629), 1, + anon_sym_SEMI, + [21906] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1631), 1, + sym_identifier, + [21913] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1633), 1, + sym_identifier, + [21920] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1635), 1, + anon_sym_SEMI, + [21927] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1529), 1, + anon_sym_COMMA, + [21934] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1637), 1, + anon_sym_SEMI, + [21941] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1639), 1, + anon_sym_SEMI, + [21948] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1641), 1, + anon_sym_SEMI, + [21955] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1643), 1, + anon_sym_SEMI, + [21962] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1645), 1, + sym_identifier, + [21969] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1507), 1, + anon_sym_COMMA, + [21976] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1647), 1, + sym_identifier, + [21983] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(567), 1, + anon_sym_COLON_COLON, + [21990] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1649), 1, + sym_address_literal, + [21997] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1651), 1, + anon_sym_COLON, + [22004] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1653), 1, + anon_sym_SEMI, + [22011] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1655), 1, + anon_sym_RPAREN, + [22018] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1657), 1, + anon_sym_SEMI, + [22025] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1659), 1, + anon_sym_COLON, + [22032] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1661), 1, + anon_sym_COLON, + [22039] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1663), 1, + anon_sym_SEMI, + [22046] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1665), 1, + anon_sym_SEMI, + [22053] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1667), 1, + anon_sym_SEMI, + [22060] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1669), 1, + anon_sym_define, + [22067] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1671), 1, + anon_sym_LBRACE, + [22074] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1673), 1, + anon_sym_RPAREN, + [22081] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1675), 1, + sym_identifier, + [22088] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1677), 1, + anon_sym_COLON_COLON, + [22095] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1679), 1, + anon_sym_SEMI, + [22102] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1681), 1, + anon_sym_RPAREN, + [22109] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1683), 1, + anon_sym_to, + [22116] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1685), 1, + anon_sym_COLON_COLON, + [22123] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1687), 1, + anon_sym_SEMI, + [22130] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1689), 1, + anon_sym_RPAREN, + [22137] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1523), 1, + anon_sym_COMMA, + [22144] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1691), 1, + anon_sym_SEMI, + [22151] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1693), 1, + anon_sym_SEMI, + [22158] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1695), 1, + anon_sym_RPAREN, + [22165] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1697), 1, + anon_sym_COLON_COLON, + [22172] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1699), 1, + anon_sym_COLON_COLON, + [22179] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1701), 1, + anon_sym_RPAREN, + [22186] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1703), 1, + ts_builtin_sym_end, + [22193] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1705), 1, + anon_sym_RPAREN, + [22200] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1707), 1, + anon_sym_RPAREN, + [22207] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1709), 1, + anon_sym_RPAREN, + [22214] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1711), 1, + anon_sym_LPAREN, + [22221] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1713), 1, + anon_sym_COLON, + [22228] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1515), 1, + anon_sym_COMMA, + [22235] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1555), 1, + anon_sym_COMMA, + [22242] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1715), 1, + anon_sym_SEMI, + [22249] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1717), 1, + anon_sym_LPAREN, + [22256] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1719), 1, + anon_sym_RBRACK, + [22263] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1721), 1, + anon_sym_SEMI, + [22270] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1561), 1, + anon_sym_COMMA, + [22277] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1723), 1, + anon_sym_COLON, + [22284] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1725), 1, + anon_sym_RPAREN, + [22291] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1727), 1, + sym_spec_apply_name_pattern, + [22298] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1729), 1, + anon_sym_SEMI, + [22305] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1731), 1, + anon_sym_SEMI, + [22312] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1553), 1, + anon_sym_COMMA, + [22319] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1733), 1, + anon_sym_fun, + [22326] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1735), 1, + anon_sym_RPAREN, + [22333] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1737), 1, + anon_sym_SEMI, + [22340] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1739), 1, + anon_sym_RPAREN, + [22347] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1741), 1, + anon_sym_struct, + [22354] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1743), 1, + anon_sym_LPAREN, + [22361] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1745), 1, + anon_sym_COLON, + [22368] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1747), 1, + anon_sym_RPAREN, + [22375] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1749), 1, + anon_sym_SEMI, + [22382] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1751), 1, + anon_sym_LPAREN, + [22389] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1753), 1, + anon_sym_SEMI, + [22396] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1755), 1, + anon_sym_SEMI, + [22403] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1757), 1, + anon_sym_LPAREN, + [22410] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1759), 1, + sym_identifier, + [22417] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1761), 1, + anon_sym_LPAREN, + [22424] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1763), 1, + anon_sym_SEMI, + [22431] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1765), 1, + anon_sym_LPAREN, + [22438] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1767), 1, + anon_sym_LPAREN, + [22445] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1769), 1, + anon_sym_LBRACE, + [22452] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1771), 1, + anon_sym_LPAREN, + [22459] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1773), 1, + anon_sym_LPAREN, + [22466] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1775), 1, + anon_sym_LPAREN, + [22473] = 2, + ACTIONS(3), 1, + sym_line_comment, + ACTIONS(1777), 1, + anon_sym_LPAREN, +}; + +static uint32_t ts_small_parse_table_map[] = { + [SMALL_STATE(16)] = 0, + [SMALL_STATE(17)] = 137, + [SMALL_STATE(18)] = 274, + [SMALL_STATE(19)] = 411, + [SMALL_STATE(20)] = 546, + [SMALL_STATE(21)] = 680, + [SMALL_STATE(22)] = 814, + [SMALL_STATE(23)] = 948, + [SMALL_STATE(24)] = 1082, + [SMALL_STATE(25)] = 1213, + [SMALL_STATE(26)] = 1344, + [SMALL_STATE(27)] = 1475, + [SMALL_STATE(28)] = 1606, + [SMALL_STATE(29)] = 1737, + [SMALL_STATE(30)] = 1868, + [SMALL_STATE(31)] = 1999, + [SMALL_STATE(32)] = 2130, + [SMALL_STATE(33)] = 2261, + [SMALL_STATE(34)] = 2392, + [SMALL_STATE(35)] = 2523, + [SMALL_STATE(36)] = 2654, + [SMALL_STATE(37)] = 2785, + [SMALL_STATE(38)] = 2916, + [SMALL_STATE(39)] = 3047, + [SMALL_STATE(40)] = 3178, + [SMALL_STATE(41)] = 3309, + [SMALL_STATE(42)] = 3440, + [SMALL_STATE(43)] = 3571, + [SMALL_STATE(44)] = 3702, + [SMALL_STATE(45)] = 3833, + [SMALL_STATE(46)] = 3964, + [SMALL_STATE(47)] = 4095, + [SMALL_STATE(48)] = 4226, + [SMALL_STATE(49)] = 4357, + [SMALL_STATE(50)] = 4488, + [SMALL_STATE(51)] = 4619, + [SMALL_STATE(52)] = 4750, + [SMALL_STATE(53)] = 4881, + [SMALL_STATE(54)] = 5012, + [SMALL_STATE(55)] = 5143, + [SMALL_STATE(56)] = 5274, + [SMALL_STATE(57)] = 5405, + [SMALL_STATE(58)] = 5536, + [SMALL_STATE(59)] = 5667, + [SMALL_STATE(60)] = 5798, + [SMALL_STATE(61)] = 5929, + [SMALL_STATE(62)] = 6060, + [SMALL_STATE(63)] = 6191, + [SMALL_STATE(64)] = 6322, + [SMALL_STATE(65)] = 6453, + [SMALL_STATE(66)] = 6584, + [SMALL_STATE(67)] = 6715, + [SMALL_STATE(68)] = 6846, + [SMALL_STATE(69)] = 6977, + [SMALL_STATE(70)] = 7108, + [SMALL_STATE(71)] = 7239, + [SMALL_STATE(72)] = 7370, + [SMALL_STATE(73)] = 7501, + [SMALL_STATE(74)] = 7632, + [SMALL_STATE(75)] = 7763, + [SMALL_STATE(76)] = 7894, + [SMALL_STATE(77)] = 8025, + [SMALL_STATE(78)] = 8156, + [SMALL_STATE(79)] = 8287, + [SMALL_STATE(80)] = 8418, + [SMALL_STATE(81)] = 8549, + [SMALL_STATE(82)] = 8680, + [SMALL_STATE(83)] = 8811, + [SMALL_STATE(84)] = 8942, + [SMALL_STATE(85)] = 9073, + [SMALL_STATE(86)] = 9204, + [SMALL_STATE(87)] = 9335, + [SMALL_STATE(88)] = 9431, + [SMALL_STATE(89)] = 9527, + [SMALL_STATE(90)] = 9623, + [SMALL_STATE(91)] = 9719, + [SMALL_STATE(92)] = 9815, + [SMALL_STATE(93)] = 9911, + [SMALL_STATE(94)] = 10007, + [SMALL_STATE(95)] = 10103, + [SMALL_STATE(96)] = 10199, + [SMALL_STATE(97)] = 10295, + [SMALL_STATE(98)] = 10391, + [SMALL_STATE(99)] = 10487, + [SMALL_STATE(100)] = 10583, + [SMALL_STATE(101)] = 10677, + [SMALL_STATE(102)] = 10771, + [SMALL_STATE(103)] = 10865, + [SMALL_STATE(104)] = 10912, + [SMALL_STATE(105)] = 10959, + [SMALL_STATE(106)] = 11006, + [SMALL_STATE(107)] = 11053, + [SMALL_STATE(108)] = 11100, + [SMALL_STATE(109)] = 11147, + [SMALL_STATE(110)] = 11194, + [SMALL_STATE(111)] = 11241, + [SMALL_STATE(112)] = 11288, + [SMALL_STATE(113)] = 11335, + [SMALL_STATE(114)] = 11387, + [SMALL_STATE(115)] = 11433, + [SMALL_STATE(116)] = 11476, + [SMALL_STATE(117)] = 11519, + [SMALL_STATE(118)] = 11562, + [SMALL_STATE(119)] = 11605, + [SMALL_STATE(120)] = 11648, + [SMALL_STATE(121)] = 11691, + [SMALL_STATE(122)] = 11734, + [SMALL_STATE(123)] = 11777, + [SMALL_STATE(124)] = 11820, + [SMALL_STATE(125)] = 11863, + [SMALL_STATE(126)] = 11906, + [SMALL_STATE(127)] = 11953, + [SMALL_STATE(128)] = 11996, + [SMALL_STATE(129)] = 12039, + [SMALL_STATE(130)] = 12082, + [SMALL_STATE(131)] = 12125, + [SMALL_STATE(132)] = 12168, + [SMALL_STATE(133)] = 12211, + [SMALL_STATE(134)] = 12254, + [SMALL_STATE(135)] = 12297, + [SMALL_STATE(136)] = 12340, + [SMALL_STATE(137)] = 12383, + [SMALL_STATE(138)] = 12426, + [SMALL_STATE(139)] = 12469, + [SMALL_STATE(140)] = 12512, + [SMALL_STATE(141)] = 12555, + [SMALL_STATE(142)] = 12598, + [SMALL_STATE(143)] = 12641, + [SMALL_STATE(144)] = 12684, + [SMALL_STATE(145)] = 12727, + [SMALL_STATE(146)] = 12770, + [SMALL_STATE(147)] = 12813, + [SMALL_STATE(148)] = 12855, + [SMALL_STATE(149)] = 12898, + [SMALL_STATE(150)] = 12938, + [SMALL_STATE(151)] = 12978, + [SMALL_STATE(152)] = 13018, + [SMALL_STATE(153)] = 13058, + [SMALL_STATE(154)] = 13098, + [SMALL_STATE(155)] = 13138, + [SMALL_STATE(156)] = 13178, + [SMALL_STATE(157)] = 13218, + [SMALL_STATE(158)] = 13258, + [SMALL_STATE(159)] = 13298, + [SMALL_STATE(160)] = 13338, + [SMALL_STATE(161)] = 13378, + [SMALL_STATE(162)] = 13422, + [SMALL_STATE(163)] = 13462, + [SMALL_STATE(164)] = 13502, + [SMALL_STATE(165)] = 13542, + [SMALL_STATE(166)] = 13582, + [SMALL_STATE(167)] = 13622, + [SMALL_STATE(168)] = 13662, + [SMALL_STATE(169)] = 13702, + [SMALL_STATE(170)] = 13742, + [SMALL_STATE(171)] = 13802, + [SMALL_STATE(172)] = 13840, + [SMALL_STATE(173)] = 13878, + [SMALL_STATE(174)] = 13916, + [SMALL_STATE(175)] = 13954, + [SMALL_STATE(176)] = 13992, + [SMALL_STATE(177)] = 14052, + [SMALL_STATE(178)] = 14089, + [SMALL_STATE(179)] = 14128, + [SMALL_STATE(180)] = 14183, + [SMALL_STATE(181)] = 14230, + [SMALL_STATE(182)] = 14285, + [SMALL_STATE(183)] = 14336, + [SMALL_STATE(184)] = 14399, + [SMALL_STATE(185)] = 14460, + [SMALL_STATE(186)] = 14519, + [SMALL_STATE(187)] = 14572, + [SMALL_STATE(188)] = 14621, + [SMALL_STATE(189)] = 14666, + [SMALL_STATE(190)] = 14709, + [SMALL_STATE(191)] = 14746, + [SMALL_STATE(192)] = 14799, + [SMALL_STATE(193)] = 14852, + [SMALL_STATE(194)] = 14905, + [SMALL_STATE(195)] = 14944, + [SMALL_STATE(196)] = 14978, + [SMALL_STATE(197)] = 15016, + [SMALL_STATE(198)] = 15054, + [SMALL_STATE(199)] = 15091, + [SMALL_STATE(200)] = 15124, + [SMALL_STATE(201)] = 15156, + [SMALL_STATE(202)] = 15188, + [SMALL_STATE(203)] = 15220, + [SMALL_STATE(204)] = 15255, + [SMALL_STATE(205)] = 15289, + [SMALL_STATE(206)] = 15343, + [SMALL_STATE(207)] = 15388, + [SMALL_STATE(208)] = 15419, + [SMALL_STATE(209)] = 15464, + [SMALL_STATE(210)] = 15509, + [SMALL_STATE(211)] = 15554, + [SMALL_STATE(212)] = 15599, + [SMALL_STATE(213)] = 15625, + [SMALL_STATE(214)] = 15650, + [SMALL_STATE(215)] = 15697, + [SMALL_STATE(216)] = 15744, + [SMALL_STATE(217)] = 15769, + [SMALL_STATE(218)] = 15816, + [SMALL_STATE(219)] = 15841, + [SMALL_STATE(220)] = 15866, + [SMALL_STATE(221)] = 15913, + [SMALL_STATE(222)] = 15938, + [SMALL_STATE(223)] = 15985, + [SMALL_STATE(224)] = 16032, + [SMALL_STATE(225)] = 16079, + [SMALL_STATE(226)] = 16126, + [SMALL_STATE(227)] = 16173, + [SMALL_STATE(228)] = 16220, + [SMALL_STATE(229)] = 16267, + [SMALL_STATE(230)] = 16292, + [SMALL_STATE(231)] = 16316, + [SMALL_STATE(232)] = 16360, + [SMALL_STATE(233)] = 16404, + [SMALL_STATE(234)] = 16448, + [SMALL_STATE(235)] = 16492, + [SMALL_STATE(236)] = 16516, + [SMALL_STATE(237)] = 16560, + [SMALL_STATE(238)] = 16604, + [SMALL_STATE(239)] = 16628, + [SMALL_STATE(240)] = 16652, + [SMALL_STATE(241)] = 16676, + [SMALL_STATE(242)] = 16720, + [SMALL_STATE(243)] = 16764, + [SMALL_STATE(244)] = 16808, + [SMALL_STATE(245)] = 16852, + [SMALL_STATE(246)] = 16876, + [SMALL_STATE(247)] = 16900, + [SMALL_STATE(248)] = 16924, + [SMALL_STATE(249)] = 16948, + [SMALL_STATE(250)] = 16972, + [SMALL_STATE(251)] = 17016, + [SMALL_STATE(252)] = 17060, + [SMALL_STATE(253)] = 17084, + [SMALL_STATE(254)] = 17108, + [SMALL_STATE(255)] = 17132, + [SMALL_STATE(256)] = 17156, + [SMALL_STATE(257)] = 17180, + [SMALL_STATE(258)] = 17224, + [SMALL_STATE(259)] = 17268, + [SMALL_STATE(260)] = 17292, + [SMALL_STATE(261)] = 17336, + [SMALL_STATE(262)] = 17380, + [SMALL_STATE(263)] = 17404, + [SMALL_STATE(264)] = 17428, + [SMALL_STATE(265)] = 17472, + [SMALL_STATE(266)] = 17516, + [SMALL_STATE(267)] = 17560, + [SMALL_STATE(268)] = 17584, + [SMALL_STATE(269)] = 17608, + [SMALL_STATE(270)] = 17632, + [SMALL_STATE(271)] = 17656, + [SMALL_STATE(272)] = 17680, + [SMALL_STATE(273)] = 17724, + [SMALL_STATE(274)] = 17768, + [SMALL_STATE(275)] = 17812, + [SMALL_STATE(276)] = 17856, + [SMALL_STATE(277)] = 17900, + [SMALL_STATE(278)] = 17936, + [SMALL_STATE(279)] = 17971, + [SMALL_STATE(280)] = 18006, + [SMALL_STATE(281)] = 18041, + [SMALL_STATE(282)] = 18076, + [SMALL_STATE(283)] = 18111, + [SMALL_STATE(284)] = 18133, + [SMALL_STATE(285)] = 18148, + [SMALL_STATE(286)] = 18163, + [SMALL_STATE(287)] = 18178, + [SMALL_STATE(288)] = 18193, + [SMALL_STATE(289)] = 18208, + [SMALL_STATE(290)] = 18223, + [SMALL_STATE(291)] = 18252, + [SMALL_STATE(292)] = 18267, + [SMALL_STATE(293)] = 18282, + [SMALL_STATE(294)] = 18297, + [SMALL_STATE(295)] = 18312, + [SMALL_STATE(296)] = 18327, + [SMALL_STATE(297)] = 18342, + [SMALL_STATE(298)] = 18361, + [SMALL_STATE(299)] = 18376, + [SMALL_STATE(300)] = 18390, + [SMALL_STATE(301)] = 18404, + [SMALL_STATE(302)] = 18418, + [SMALL_STATE(303)] = 18432, + [SMALL_STATE(304)] = 18446, + [SMALL_STATE(305)] = 18460, + [SMALL_STATE(306)] = 18474, + [SMALL_STATE(307)] = 18488, + [SMALL_STATE(308)] = 18514, + [SMALL_STATE(309)] = 18528, + [SMALL_STATE(310)] = 18542, + [SMALL_STATE(311)] = 18568, + [SMALL_STATE(312)] = 18582, + [SMALL_STATE(313)] = 18596, + [SMALL_STATE(314)] = 18610, + [SMALL_STATE(315)] = 18623, + [SMALL_STATE(316)] = 18638, + [SMALL_STATE(317)] = 18651, + [SMALL_STATE(318)] = 18664, + [SMALL_STATE(319)] = 18687, + [SMALL_STATE(320)] = 18700, + [SMALL_STATE(321)] = 18715, + [SMALL_STATE(322)] = 18730, + [SMALL_STATE(323)] = 18743, + [SMALL_STATE(324)] = 18762, + [SMALL_STATE(325)] = 18775, + [SMALL_STATE(326)] = 18798, + [SMALL_STATE(327)] = 18818, + [SMALL_STATE(328)] = 18840, + [SMALL_STATE(329)] = 18852, + [SMALL_STATE(330)] = 18866, + [SMALL_STATE(331)] = 18888, + [SMALL_STATE(332)] = 18900, + [SMALL_STATE(333)] = 18914, + [SMALL_STATE(334)] = 18926, + [SMALL_STATE(335)] = 18938, + [SMALL_STATE(336)] = 18960, + [SMALL_STATE(337)] = 18982, + [SMALL_STATE(338)] = 19002, + [SMALL_STATE(339)] = 19024, + [SMALL_STATE(340)] = 19043, + [SMALL_STATE(341)] = 19060, + [SMALL_STATE(342)] = 19073, + [SMALL_STATE(343)] = 19090, + [SMALL_STATE(344)] = 19105, + [SMALL_STATE(345)] = 19120, + [SMALL_STATE(346)] = 19135, + [SMALL_STATE(347)] = 19154, + [SMALL_STATE(348)] = 19173, + [SMALL_STATE(349)] = 19192, + [SMALL_STATE(350)] = 19207, + [SMALL_STATE(351)] = 19226, + [SMALL_STATE(352)] = 19239, + [SMALL_STATE(353)] = 19258, + [SMALL_STATE(354)] = 19277, + [SMALL_STATE(355)] = 19294, + [SMALL_STATE(356)] = 19313, + [SMALL_STATE(357)] = 19330, + [SMALL_STATE(358)] = 19347, + [SMALL_STATE(359)] = 19364, + [SMALL_STATE(360)] = 19383, + [SMALL_STATE(361)] = 19402, + [SMALL_STATE(362)] = 19417, + [SMALL_STATE(363)] = 19434, + [SMALL_STATE(364)] = 19453, + [SMALL_STATE(365)] = 19472, + [SMALL_STATE(366)] = 19491, + [SMALL_STATE(367)] = 19510, + [SMALL_STATE(368)] = 19529, + [SMALL_STATE(369)] = 19546, + [SMALL_STATE(370)] = 19559, + [SMALL_STATE(371)] = 19570, + [SMALL_STATE(372)] = 19586, + [SMALL_STATE(373)] = 19602, + [SMALL_STATE(374)] = 19612, + [SMALL_STATE(375)] = 19622, + [SMALL_STATE(376)] = 19638, + [SMALL_STATE(377)] = 19654, + [SMALL_STATE(378)] = 19664, + [SMALL_STATE(379)] = 19678, + [SMALL_STATE(380)] = 19688, + [SMALL_STATE(381)] = 19702, + [SMALL_STATE(382)] = 19718, + [SMALL_STATE(383)] = 19734, + [SMALL_STATE(384)] = 19744, + [SMALL_STATE(385)] = 19760, + [SMALL_STATE(386)] = 19774, + [SMALL_STATE(387)] = 19788, + [SMALL_STATE(388)] = 19804, + [SMALL_STATE(389)] = 19818, + [SMALL_STATE(390)] = 19834, + [SMALL_STATE(391)] = 19850, + [SMALL_STATE(392)] = 19866, + [SMALL_STATE(393)] = 19880, + [SMALL_STATE(394)] = 19896, + [SMALL_STATE(395)] = 19910, + [SMALL_STATE(396)] = 19924, + [SMALL_STATE(397)] = 19934, + [SMALL_STATE(398)] = 19948, + [SMALL_STATE(399)] = 19958, + [SMALL_STATE(400)] = 19972, + [SMALL_STATE(401)] = 19986, + [SMALL_STATE(402)] = 20002, + [SMALL_STATE(403)] = 20016, + [SMALL_STATE(404)] = 20030, + [SMALL_STATE(405)] = 20044, + [SMALL_STATE(406)] = 20058, + [SMALL_STATE(407)] = 20074, + [SMALL_STATE(408)] = 20088, + [SMALL_STATE(409)] = 20104, + [SMALL_STATE(410)] = 20118, + [SMALL_STATE(411)] = 20128, + [SMALL_STATE(412)] = 20142, + [SMALL_STATE(413)] = 20152, + [SMALL_STATE(414)] = 20162, + [SMALL_STATE(415)] = 20176, + [SMALL_STATE(416)] = 20190, + [SMALL_STATE(417)] = 20204, + [SMALL_STATE(418)] = 20218, + [SMALL_STATE(419)] = 20232, + [SMALL_STATE(420)] = 20246, + [SMALL_STATE(421)] = 20259, + [SMALL_STATE(422)] = 20272, + [SMALL_STATE(423)] = 20285, + [SMALL_STATE(424)] = 20296, + [SMALL_STATE(425)] = 20309, + [SMALL_STATE(426)] = 20318, + [SMALL_STATE(427)] = 20331, + [SMALL_STATE(428)] = 20344, + [SMALL_STATE(429)] = 20353, + [SMALL_STATE(430)] = 20362, + [SMALL_STATE(431)] = 20375, + [SMALL_STATE(432)] = 20388, + [SMALL_STATE(433)] = 20401, + [SMALL_STATE(434)] = 20414, + [SMALL_STATE(435)] = 20423, + [SMALL_STATE(436)] = 20436, + [SMALL_STATE(437)] = 20447, + [SMALL_STATE(438)] = 20458, + [SMALL_STATE(439)] = 20467, + [SMALL_STATE(440)] = 20480, + [SMALL_STATE(441)] = 20493, + [SMALL_STATE(442)] = 20506, + [SMALL_STATE(443)] = 20515, + [SMALL_STATE(444)] = 20524, + [SMALL_STATE(445)] = 20537, + [SMALL_STATE(446)] = 20550, + [SMALL_STATE(447)] = 20563, + [SMALL_STATE(448)] = 20576, + [SMALL_STATE(449)] = 20589, + [SMALL_STATE(450)] = 20602, + [SMALL_STATE(451)] = 20615, + [SMALL_STATE(452)] = 20628, + [SMALL_STATE(453)] = 20641, + [SMALL_STATE(454)] = 20650, + [SMALL_STATE(455)] = 20663, + [SMALL_STATE(456)] = 20672, + [SMALL_STATE(457)] = 20681, + [SMALL_STATE(458)] = 20692, + [SMALL_STATE(459)] = 20705, + [SMALL_STATE(460)] = 20718, + [SMALL_STATE(461)] = 20727, + [SMALL_STATE(462)] = 20740, + [SMALL_STATE(463)] = 20753, + [SMALL_STATE(464)] = 20762, + [SMALL_STATE(465)] = 20775, + [SMALL_STATE(466)] = 20788, + [SMALL_STATE(467)] = 20801, + [SMALL_STATE(468)] = 20812, + [SMALL_STATE(469)] = 20821, + [SMALL_STATE(470)] = 20834, + [SMALL_STATE(471)] = 20847, + [SMALL_STATE(472)] = 20860, + [SMALL_STATE(473)] = 20873, + [SMALL_STATE(474)] = 20886, + [SMALL_STATE(475)] = 20899, + [SMALL_STATE(476)] = 20912, + [SMALL_STATE(477)] = 20921, + [SMALL_STATE(478)] = 20934, + [SMALL_STATE(479)] = 20947, + [SMALL_STATE(480)] = 20960, + [SMALL_STATE(481)] = 20970, + [SMALL_STATE(482)] = 20980, + [SMALL_STATE(483)] = 20988, + [SMALL_STATE(484)] = 20998, + [SMALL_STATE(485)] = 21006, + [SMALL_STATE(486)] = 21014, + [SMALL_STATE(487)] = 21024, + [SMALL_STATE(488)] = 21032, + [SMALL_STATE(489)] = 21040, + [SMALL_STATE(490)] = 21048, + [SMALL_STATE(491)] = 21058, + [SMALL_STATE(492)] = 21068, + [SMALL_STATE(493)] = 21078, + [SMALL_STATE(494)] = 21086, + [SMALL_STATE(495)] = 21096, + [SMALL_STATE(496)] = 21106, + [SMALL_STATE(497)] = 21116, + [SMALL_STATE(498)] = 21124, + [SMALL_STATE(499)] = 21132, + [SMALL_STATE(500)] = 21140, + [SMALL_STATE(501)] = 21148, + [SMALL_STATE(502)] = 21158, + [SMALL_STATE(503)] = 21168, + [SMALL_STATE(504)] = 21178, + [SMALL_STATE(505)] = 21188, + [SMALL_STATE(506)] = 21196, + [SMALL_STATE(507)] = 21204, + [SMALL_STATE(508)] = 21214, + [SMALL_STATE(509)] = 21222, + [SMALL_STATE(510)] = 21230, + [SMALL_STATE(511)] = 21240, + [SMALL_STATE(512)] = 21250, + [SMALL_STATE(513)] = 21260, + [SMALL_STATE(514)] = 21270, + [SMALL_STATE(515)] = 21278, + [SMALL_STATE(516)] = 21286, + [SMALL_STATE(517)] = 21296, + [SMALL_STATE(518)] = 21306, + [SMALL_STATE(519)] = 21316, + [SMALL_STATE(520)] = 21324, + [SMALL_STATE(521)] = 21334, + [SMALL_STATE(522)] = 21344, + [SMALL_STATE(523)] = 21354, + [SMALL_STATE(524)] = 21364, + [SMALL_STATE(525)] = 21374, + [SMALL_STATE(526)] = 21384, + [SMALL_STATE(527)] = 21392, + [SMALL_STATE(528)] = 21400, + [SMALL_STATE(529)] = 21410, + [SMALL_STATE(530)] = 21420, + [SMALL_STATE(531)] = 21428, + [SMALL_STATE(532)] = 21436, + [SMALL_STATE(533)] = 21446, + [SMALL_STATE(534)] = 21456, + [SMALL_STATE(535)] = 21466, + [SMALL_STATE(536)] = 21476, + [SMALL_STATE(537)] = 21484, + [SMALL_STATE(538)] = 21494, + [SMALL_STATE(539)] = 21502, + [SMALL_STATE(540)] = 21512, + [SMALL_STATE(541)] = 21522, + [SMALL_STATE(542)] = 21532, + [SMALL_STATE(543)] = 21542, + [SMALL_STATE(544)] = 21552, + [SMALL_STATE(545)] = 21562, + [SMALL_STATE(546)] = 21570, + [SMALL_STATE(547)] = 21580, + [SMALL_STATE(548)] = 21590, + [SMALL_STATE(549)] = 21600, + [SMALL_STATE(550)] = 21610, + [SMALL_STATE(551)] = 21620, + [SMALL_STATE(552)] = 21630, + [SMALL_STATE(553)] = 21640, + [SMALL_STATE(554)] = 21648, + [SMALL_STATE(555)] = 21658, + [SMALL_STATE(556)] = 21668, + [SMALL_STATE(557)] = 21676, + [SMALL_STATE(558)] = 21686, + [SMALL_STATE(559)] = 21696, + [SMALL_STATE(560)] = 21704, + [SMALL_STATE(561)] = 21714, + [SMALL_STATE(562)] = 21722, + [SMALL_STATE(563)] = 21732, + [SMALL_STATE(564)] = 21742, + [SMALL_STATE(565)] = 21752, + [SMALL_STATE(566)] = 21760, + [SMALL_STATE(567)] = 21768, + [SMALL_STATE(568)] = 21778, + [SMALL_STATE(569)] = 21788, + [SMALL_STATE(570)] = 21798, + [SMALL_STATE(571)] = 21808, + [SMALL_STATE(572)] = 21816, + [SMALL_STATE(573)] = 21826, + [SMALL_STATE(574)] = 21836, + [SMALL_STATE(575)] = 21843, + [SMALL_STATE(576)] = 21850, + [SMALL_STATE(577)] = 21857, + [SMALL_STATE(578)] = 21864, + [SMALL_STATE(579)] = 21871, + [SMALL_STATE(580)] = 21878, + [SMALL_STATE(581)] = 21885, + [SMALL_STATE(582)] = 21892, + [SMALL_STATE(583)] = 21899, + [SMALL_STATE(584)] = 21906, + [SMALL_STATE(585)] = 21913, + [SMALL_STATE(586)] = 21920, + [SMALL_STATE(587)] = 21927, + [SMALL_STATE(588)] = 21934, + [SMALL_STATE(589)] = 21941, + [SMALL_STATE(590)] = 21948, + [SMALL_STATE(591)] = 21955, + [SMALL_STATE(592)] = 21962, + [SMALL_STATE(593)] = 21969, + [SMALL_STATE(594)] = 21976, + [SMALL_STATE(595)] = 21983, + [SMALL_STATE(596)] = 21990, + [SMALL_STATE(597)] = 21997, + [SMALL_STATE(598)] = 22004, + [SMALL_STATE(599)] = 22011, + [SMALL_STATE(600)] = 22018, + [SMALL_STATE(601)] = 22025, + [SMALL_STATE(602)] = 22032, + [SMALL_STATE(603)] = 22039, + [SMALL_STATE(604)] = 22046, + [SMALL_STATE(605)] = 22053, + [SMALL_STATE(606)] = 22060, + [SMALL_STATE(607)] = 22067, + [SMALL_STATE(608)] = 22074, + [SMALL_STATE(609)] = 22081, + [SMALL_STATE(610)] = 22088, + [SMALL_STATE(611)] = 22095, + [SMALL_STATE(612)] = 22102, + [SMALL_STATE(613)] = 22109, + [SMALL_STATE(614)] = 22116, + [SMALL_STATE(615)] = 22123, + [SMALL_STATE(616)] = 22130, + [SMALL_STATE(617)] = 22137, + [SMALL_STATE(618)] = 22144, + [SMALL_STATE(619)] = 22151, + [SMALL_STATE(620)] = 22158, + [SMALL_STATE(621)] = 22165, + [SMALL_STATE(622)] = 22172, + [SMALL_STATE(623)] = 22179, + [SMALL_STATE(624)] = 22186, + [SMALL_STATE(625)] = 22193, + [SMALL_STATE(626)] = 22200, + [SMALL_STATE(627)] = 22207, + [SMALL_STATE(628)] = 22214, + [SMALL_STATE(629)] = 22221, + [SMALL_STATE(630)] = 22228, + [SMALL_STATE(631)] = 22235, + [SMALL_STATE(632)] = 22242, + [SMALL_STATE(633)] = 22249, + [SMALL_STATE(634)] = 22256, + [SMALL_STATE(635)] = 22263, + [SMALL_STATE(636)] = 22270, + [SMALL_STATE(637)] = 22277, + [SMALL_STATE(638)] = 22284, + [SMALL_STATE(639)] = 22291, + [SMALL_STATE(640)] = 22298, + [SMALL_STATE(641)] = 22305, + [SMALL_STATE(642)] = 22312, + [SMALL_STATE(643)] = 22319, + [SMALL_STATE(644)] = 22326, + [SMALL_STATE(645)] = 22333, + [SMALL_STATE(646)] = 22340, + [SMALL_STATE(647)] = 22347, + [SMALL_STATE(648)] = 22354, + [SMALL_STATE(649)] = 22361, + [SMALL_STATE(650)] = 22368, + [SMALL_STATE(651)] = 22375, + [SMALL_STATE(652)] = 22382, + [SMALL_STATE(653)] = 22389, + [SMALL_STATE(654)] = 22396, + [SMALL_STATE(655)] = 22403, + [SMALL_STATE(656)] = 22410, + [SMALL_STATE(657)] = 22417, + [SMALL_STATE(658)] = 22424, + [SMALL_STATE(659)] = 22431, + [SMALL_STATE(660)] = 22438, + [SMALL_STATE(661)] = 22445, + [SMALL_STATE(662)] = 22452, + [SMALL_STATE(663)] = 22459, + [SMALL_STATE(664)] = 22466, + [SMALL_STATE(665)] = 22473, +}; + +static TSParseActionEntry ts_parse_actions[] = { + [0] = {.entry = {.count = 0, .reusable = false}}, + [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(), + [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(), + [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 0), + [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(596), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(661), + [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(572), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(656), + [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(567), + [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(338), + [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(647), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(543), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(643), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(522), + [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(336), + [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(100), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(282), + [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(279), + [41] = {.entry = {.count = 1, .reusable = false}}, SHIFT(633), + [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(628), + [45] = {.entry = {.count = 1, .reusable = false}}, SHIFT(30), + [47] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11), + [49] = {.entry = {.count = 1, .reusable = false}}, SHIFT(31), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), + [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212), + [55] = {.entry = {.count = 1, .reusable = false}}, SHIFT(490), + [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(150), + [59] = {.entry = {.count = 1, .reusable = false}}, SHIFT(168), + [61] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), + [63] = {.entry = {.count = 1, .reusable = false}}, SHIFT(157), + [65] = {.entry = {.count = 1, .reusable = false}}, SHIFT(161), + [67] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), + [69] = {.entry = {.count = 1, .reusable = false}}, SHIFT(114), + [71] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), + [73] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), + [75] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(596), + [78] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(10), + [81] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(661), + [84] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(572), + [87] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(656), + [90] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(567), + [93] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(338), + [96] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(647), + [99] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(543), + [102] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(643), + [105] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(522), + [108] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(23), + [111] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(336), + [114] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(100), + [117] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(100), + [120] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(282), + [123] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(279), + [126] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(633), + [129] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(628), + [132] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(30), + [135] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(11), + [138] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(31), + [141] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(101), + [144] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(212), + [147] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(490), + [150] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(150), + [153] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(168), + [156] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(148), + [159] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(157), + [162] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(161), + [165] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(161), + [168] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(114), + [171] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_expression, 1), + [173] = {.entry = {.count = 1, .reusable = false}}, SHIFT(665), + [175] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_expression, 1), + [177] = {.entry = {.count = 1, .reusable = false}}, SHIFT(655), + [179] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53), + [181] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4), + [183] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63), + [185] = {.entry = {.count = 1, .reusable = false}}, SHIFT(663), + [187] = {.entry = {.count = 1, .reusable = false}}, SHIFT(657), + [189] = {.entry = {.count = 1, .reusable = false}}, SHIFT(44), + [191] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5), + [193] = {.entry = {.count = 1, .reusable = false}}, SHIFT(85), + [195] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(10), + [198] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), + [200] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(656), + [203] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(23), + [206] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(336), + [209] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(100), + [212] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(100), + [215] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(282), + [218] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(279), + [221] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(633), + [224] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(628), + [227] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(30), + [230] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(11), + [233] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(31), + [236] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(101), + [239] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(212), + [242] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(490), + [245] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(150), + [248] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(168), + [251] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(148), + [254] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(157), + [257] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(161), + [260] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(161), + [263] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_block_repeat1, 2), SHIFT_REPEAT(114), + [266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(247), + [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), + [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), + [272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), + [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(246), + [276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), + [278] = {.entry = {.count = 1, .reusable = false}}, SHIFT(660), + [280] = {.entry = {.count = 1, .reusable = false}}, SHIFT(648), + [282] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65), + [284] = {.entry = {.count = 1, .reusable = false}}, SHIFT(14), + [286] = {.entry = {.count = 1, .reusable = false}}, SHIFT(32), + [288] = {.entry = {.count = 1, .reusable = false}}, SHIFT(52), + [290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), + [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), + [294] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_arg_list_repeat1, 2), SHIFT_REPEAT(10), + [297] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_arg_list_repeat1, 2), SHIFT_REPEAT(656), + [300] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_arg_list_repeat1, 2), SHIFT_REPEAT(23), + [303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_arg_list_repeat1, 2), + [305] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_arg_list_repeat1, 2), SHIFT_REPEAT(336), + [308] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_arg_list_repeat1, 2), SHIFT_REPEAT(100), + [311] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_arg_list_repeat1, 2), SHIFT_REPEAT(100), + [314] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_arg_list_repeat1, 2), SHIFT_REPEAT(282), + [317] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_arg_list_repeat1, 2), SHIFT_REPEAT(633), + [320] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_arg_list_repeat1, 2), SHIFT_REPEAT(628), + [323] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_arg_list_repeat1, 2), SHIFT_REPEAT(30), + [326] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_arg_list_repeat1, 2), SHIFT_REPEAT(11), + [329] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_arg_list_repeat1, 2), SHIFT_REPEAT(31), + [332] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_arg_list_repeat1, 2), SHIFT_REPEAT(101), + [335] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_arg_list_repeat1, 2), SHIFT_REPEAT(212), + [338] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_arg_list_repeat1, 2), SHIFT_REPEAT(490), + [341] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_arg_list_repeat1, 2), SHIFT_REPEAT(150), + [344] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_arg_list_repeat1, 2), SHIFT_REPEAT(168), + [347] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_arg_list_repeat1, 2), SHIFT_REPEAT(148), + [350] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_arg_list_repeat1, 2), SHIFT_REPEAT(157), + [353] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_arg_list_repeat1, 2), SHIFT_REPEAT(161), + [356] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_arg_list_repeat1, 2), SHIFT_REPEAT(161), + [359] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_arg_list_repeat1, 2), SHIFT_REPEAT(114), + [362] = {.entry = {.count = 1, .reusable = false}}, SHIFT(664), + [364] = {.entry = {.count = 1, .reusable = false}}, SHIFT(659), + [366] = {.entry = {.count = 1, .reusable = false}}, SHIFT(41), + [368] = {.entry = {.count = 1, .reusable = false}}, SHIFT(19), + [370] = {.entry = {.count = 1, .reusable = false}}, SHIFT(72), + [372] = {.entry = {.count = 1, .reusable = false}}, SHIFT(662), + [374] = {.entry = {.count = 1, .reusable = false}}, SHIFT(652), + [376] = {.entry = {.count = 1, .reusable = false}}, SHIFT(57), + [378] = {.entry = {.count = 1, .reusable = false}}, SHIFT(20), + [380] = {.entry = {.count = 1, .reusable = false}}, SHIFT(24), + [382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), + [384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), + [386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), + [388] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spec_block, 3, .production_id = 25), + [390] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_spec_block, 3, .production_id = 25), + [392] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 4), + [394] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 4), + [396] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spec_block, 5, .production_id = 58), + [398] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_spec_block, 5, .production_id = 58), + [400] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spec_block, 2, .production_id = 5), + [402] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_spec_block, 2, .production_id = 5), + [404] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spec_body, 4), + [406] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_spec_body, 4), + [408] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [410] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), + [412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spec_body, 3), + [414] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_spec_body, 3), + [416] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), + [418] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3), + [420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spec_block, 4, .production_id = 45), + [422] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_spec_block, 4, .production_id = 45), + [424] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spec_body, 2), + [426] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_spec_body, 2), + [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(348), + [430] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__name_exp, 1), + [432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [434] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__name_exp, 1), + [436] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_access, 1), + [438] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__module_identifier, 1, .production_id = 1), + [440] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module_access, 1), + [442] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_def_fields, 4), + [444] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_def_fields, 4), + [446] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_address_block, 5, .production_id = 36), + [448] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_address_block, 5, .production_id = 36), + [450] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_script_block, 4), + [452] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_script_block, 4), + [454] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_use_decl, 7, .production_id = 18), + [456] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_use_decl, 7, .production_id = 18), + [458] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_access, 3, .production_id = 35), + [460] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module_access, 3, .production_id = 35), + [462] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_def_fields, 3), + [464] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_def_fields, 3), + [466] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_address_block, 4, .production_id = 36), + [468] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_address_block, 4, .production_id = 36), + [470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_arguments, 3), + [472] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_arguments, 3), + [474] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_arguments, 5), + [476] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_arguments, 5), + [478] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_name_expression, 1), + [480] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_name_expression, 1), + [482] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_name_expression, 1), SHIFT(231), + [485] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_def_fields, 2), + [487] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_def_fields, 2), + [489] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_access, 3, .production_id = 29), + [491] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module_access, 3, .production_id = 29), + [493] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_use_decl, 3, .production_id = 18), + [495] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_use_decl, 3, .production_id = 18), + [497] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_use_decl, 4, .production_id = 39), + [499] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_use_decl, 4, .production_id = 39), + [501] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_access, 2), + [503] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module_access, 2), + [505] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_script_block, 5), + [507] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_script_block, 5), + [509] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_definition, 3, .production_id = 19), + [511] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module_definition, 3, .production_id = 19), + [513] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_native_struct_definition, 3, .production_id = 20), + [515] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_native_struct_definition, 3, .production_id = 20), + [517] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_native_function_definition, 3, .production_id = 21), + [519] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_native_function_definition, 3, .production_id = 21), + [521] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__block_item, 2), + [523] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__block_item, 2), + [525] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_use_decl, 5, .production_id = 18), + [527] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_use_decl, 5, .production_id = 18), + [529] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_arguments, 4), + [531] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_arguments, 4), + [533] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_body, 2), + [535] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module_body, 2), + [537] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_body, 3), + [539] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module_body, 3), + [541] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_use_decl, 9, .production_id = 18), + [543] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_use_decl, 9, .production_id = 18), + [545] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_usual_function_definition, 2, .production_id = 13), + [547] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_usual_function_definition, 2, .production_id = 13), + [549] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_definition, 2, .production_id = 12), + [551] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_definition, 2, .production_id = 12), + [553] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_script_block, 6), + [555] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_script_block, 6), + [557] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_use_decl, 8, .production_id = 18), + [559] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_use_decl, 8, .production_id = 18), + [561] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_name_expression, 2, .production_id = 14), + [563] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_name_expression, 2, .production_id = 14), + [565] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__literal_value, 1), + [567] = {.entry = {.count = 1, .reusable = true}}, SHIFT(544), + [569] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__literal_value, 1), + [571] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_annotate_expression, 5, .production_id = 56), + [573] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_annotate_expression, 5, .production_id = 56), + [575] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_break_expression, 1), + [577] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_break_expression, 1), + [579] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_list, 5), + [581] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_list, 5), + [583] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arg_list, 2), + [585] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arg_list, 2), + [587] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_list, 3), + [589] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_list, 3), + [591] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_initialize_list, 2), + [593] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_initialize_list, 2), + [595] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arg_list, 3), + [597] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arg_list, 3), + [599] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arg_list, 4), + [601] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arg_list, 4), + [603] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bool_literal, 1), + [605] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_bool_literal, 1), + [607] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dot_expression, 3, .production_id = 33), + [609] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dot_expression, 3, .production_id = 33), + [611] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_initialize_list, 4), + [613] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_initialize_list, 4), + [615] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_identifier, 1, .production_id = 28), + [617] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__field_identifier, 1, .production_id = 28), + [619] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__unary_expression, 1), + [621] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__unary_expression, 1), + [623] = {.entry = {.count = 1, .reusable = false}}, SHIFT(542), + [625] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [627] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_list, 4), + [629] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_list, 4), + [631] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cast_expression, 5, .production_id = 56), + [633] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cast_expression, 5, .production_id = 56), + [635] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_initialize_list, 3), + [637] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_initialize_list, 3), + [639] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_expression, 4, .production_id = 50), + [641] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_index_expression, 4, .production_id = 50), + [643] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pack_expression, 2, .production_id = 5), + [645] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pack_expression, 2, .production_id = 5), + [647] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unit_expression, 2), + [649] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unit_expression, 2), + [651] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_continue_expression, 1), + [653] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_continue_expression, 1), + [655] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_call_expression, 2, .production_id = 17), + [657] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_call_expression, 2, .production_id = 17), + [659] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), + [661] = {.entry = {.count = 1, .reusable = false}}, SHIFT(518), + [663] = {.entry = {.count = 1, .reusable = false}}, SHIFT(606), + [665] = {.entry = {.count = 1, .reusable = false}}, SHIFT(47), + [667] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15), + [669] = {.entry = {.count = 1, .reusable = false}}, SHIFT(43), + [671] = {.entry = {.count = 1, .reusable = false}}, SHIFT(42), + [673] = {.entry = {.count = 1, .reusable = false}}, SHIFT(384), + [675] = {.entry = {.count = 1, .reusable = false}}, SHIFT(609), + [677] = {.entry = {.count = 1, .reusable = false}}, SHIFT(452), + [679] = {.entry = {.count = 1, .reusable = false}}, SHIFT(454), + [681] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__variable_identifier, 1, .production_id = 7), + [683] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__variable_identifier, 1, .production_id = 7), + [685] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_move_or_copy_expression, 2, .production_id = 6), + [687] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_move_or_copy_expression, 2, .production_id = 6), + [689] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_expression, 2, .production_id = 16), + [691] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_expression, 2, .production_id = 16), + [693] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dereference_expression, 2, .production_id = 6), + [695] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dereference_expression, 2, .production_id = 6), + [697] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_borrow_expression, 2, .production_id = 6), + [699] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_borrow_expression, 2, .production_id = 6), + [701] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), + [703] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_expression, 3, .production_id = 31), + [705] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_expression, 3, .production_id = 31), + [707] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1), + [709] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__binary_operand, 1), + [711] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__binary_operand, 1), + [713] = {.entry = {.count = 1, .reusable = false}}, SHIFT(89), + [715] = {.entry = {.count = 1, .reusable = false}}, SHIFT(91), + [717] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [719] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [721] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), + [723] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), + [725] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), + [727] = {.entry = {.count = 1, .reusable = false}}, SHIFT(98), + [729] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [731] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_expression, 3, .production_id = 30), + [733] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_expression, 3, .production_id = 30), + [735] = {.entry = {.count = 1, .reusable = false}}, SHIFT(94), + [737] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), + [739] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), + [741] = {.entry = {.count = 1, .reusable = false}}, SHIFT(96), + [743] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [745] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), + [747] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_spec_body_repeat1, 2), + [749] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_spec_body_repeat1, 2), SHIFT_REPEAT(606), + [752] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_spec_body_repeat1, 2), SHIFT_REPEAT(47), + [755] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_spec_body_repeat1, 2), SHIFT_REPEAT(15), + [758] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_spec_body_repeat1, 2), SHIFT_REPEAT(43), + [761] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_spec_body_repeat1, 2), SHIFT_REPEAT(42), + [764] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_spec_body_repeat1, 2), SHIFT_REPEAT(384), + [767] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_spec_body_repeat1, 2), SHIFT_REPEAT(609), + [770] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_spec_body_repeat1, 2), SHIFT_REPEAT(452), + [773] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_spec_body_repeat1, 2), SHIFT_REPEAT(454), + [776] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73), + [778] = {.entry = {.count = 1, .reusable = false}}, SHIFT(27), + [780] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81), + [782] = {.entry = {.count = 1, .reusable = false}}, SHIFT(35), + [784] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_arg_list_repeat1, 2), + [786] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda_bindings, 2), + [788] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_lambda_bindings, 2), + [790] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda_bindings, 4), + [792] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_lambda_bindings, 4), + [794] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda_bindings, 3), + [796] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_lambda_bindings, 3), + [798] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70), + [800] = {.entry = {.count = 1, .reusable = false}}, SHIFT(50), + [802] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), + [804] = {.entry = {.count = 1, .reusable = true}}, SHIFT(514), + [806] = {.entry = {.count = 1, .reusable = true}}, SHIFT(501), + [808] = {.entry = {.count = 1, .reusable = true}}, SHIFT(335), + [810] = {.entry = {.count = 1, .reusable = true}}, SHIFT(647), + [812] = {.entry = {.count = 1, .reusable = true}}, SHIFT(543), + [814] = {.entry = {.count = 1, .reusable = true}}, SHIFT(643), + [816] = {.entry = {.count = 1, .reusable = true}}, SHIFT(522), + [818] = {.entry = {.count = 1, .reusable = true}}, SHIFT(336), + [820] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_script_block_repeat1, 2), + [822] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_script_block_repeat1, 2), SHIFT_REPEAT(518), + [825] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_script_block_repeat1, 2), + [827] = {.entry = {.count = 1, .reusable = true}}, SHIFT(509), + [829] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141), + [831] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140), + [833] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_module_body_repeat1, 2), + [835] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_body_repeat1, 2), SHIFT_REPEAT(501), + [838] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_body_repeat1, 2), SHIFT_REPEAT(335), + [841] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_body_repeat1, 2), SHIFT_REPEAT(647), + [844] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_body_repeat1, 2), SHIFT_REPEAT(543), + [847] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_body_repeat1, 2), SHIFT_REPEAT(643), + [850] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_body_repeat1, 2), SHIFT_REPEAT(522), + [853] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_body_repeat1, 2), SHIFT_REPEAT(336), + [856] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_op, 1), + [858] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_op, 1), + [860] = {.entry = {.count = 1, .reusable = true}}, SHIFT(592), + [862] = {.entry = {.count = 1, .reusable = true}}, SHIFT(251), + [864] = {.entry = {.count = 1, .reusable = false}}, SHIFT(265), + [866] = {.entry = {.count = 1, .reusable = true}}, SHIFT(265), + [868] = {.entry = {.count = 1, .reusable = true}}, SHIFT(225), + [870] = {.entry = {.count = 1, .reusable = true}}, SHIFT(595), + [872] = {.entry = {.count = 1, .reusable = true}}, SHIFT(369), + [874] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_function_type_params, 2), SHIFT(592), + [877] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_function_type_params, 2), SHIFT(251), + [880] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_type_params, 2), SHIFT(265), + [883] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_function_type_params, 2), SHIFT(265), + [886] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_function_type_params, 2), SHIFT(215), + [889] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_function_type_params, 2), SHIFT(595), + [892] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_function_type_params, 2), SHIFT(369), + [895] = {.entry = {.count = 1, .reusable = true}}, SHIFT(455), + [897] = {.entry = {.count = 1, .reusable = true}}, SHIFT(220), + [899] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215), + [901] = {.entry = {.count = 1, .reusable = true}}, SHIFT(295), + [903] = {.entry = {.count = 1, .reusable = false}}, SHIFT(232), + [905] = {.entry = {.count = 1, .reusable = true}}, SHIFT(232), + [907] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), + [909] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), + [911] = {.entry = {.count = 1, .reusable = true}}, SHIFT(453), + [913] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_function_type_params, 3), SHIFT(592), + [916] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_function_type_params, 3), SHIFT(251), + [919] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_type_params, 3), SHIFT(265), + [922] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_function_type_params, 3), SHIFT(265), + [925] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_function_type_params, 3), SHIFT(215), + [928] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_function_type_params, 3), SHIFT(595), + [931] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_function_type_params, 3), SHIFT(369), + [934] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_type_params_repeat1, 2), SHIFT_REPEAT(656), + [937] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_type_params_repeat1, 2), SHIFT_REPEAT(251), + [940] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_function_type_params_repeat1, 2), SHIFT_REPEAT(232), + [943] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_type_params_repeat1, 2), SHIFT_REPEAT(232), + [946] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_type_params_repeat1, 2), SHIFT_REPEAT(220), + [949] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_type_params_repeat1, 2), SHIFT_REPEAT(595), + [952] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_type_params_repeat1, 2), SHIFT_REPEAT(114), + [955] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), + [957] = {.entry = {.count = 1, .reusable = true}}, SHIFT(286), + [959] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spec_variable, 4, .production_id = 65), + [961] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_spec_variable, 4, .production_id = 65), + [963] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spec_pragma, 4), + [965] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_spec_pragma, 4), + [967] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spec_invariant, 4), + [969] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_spec_invariant, 4), + [971] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_native_spec_function, 4, .production_id = 68), + [973] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_native_spec_function, 4, .production_id = 68), + [975] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spec_apply, 10, .production_id = 6), + [977] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_spec_apply, 10, .production_id = 6), + [979] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spec_apply, 9, .production_id = 6), + [981] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_spec_apply, 9, .production_id = 6), + [983] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spec_apply, 11, .production_id = 6), + [985] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_spec_apply, 11, .production_id = 6), + [987] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spec_variable, 6, .production_id = 83), + [989] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_spec_variable, 6, .production_id = 83), + [991] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spec_apply, 5, .production_id = 6), + [993] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_spec_apply, 5, .production_id = 6), + [995] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spec_pragma, 2), + [997] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_spec_pragma, 2), + [999] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spec_apply, 6, .production_id = 6), + [1001] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_spec_apply, 6, .production_id = 6), + [1003] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spec_variable, 5, .production_id = 77), + [1005] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_spec_variable, 5, .production_id = 77), + [1007] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_usual_spec_function, 3, .production_id = 57), + [1009] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_usual_spec_function, 3, .production_id = 57), + [1011] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spec_pragma, 3), + [1013] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_spec_pragma, 3), + [1015] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spec_variable, 5, .production_id = 79), + [1017] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_spec_variable, 5, .production_id = 79), + [1019] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spec_include, 3), + [1021] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_spec_include, 3), + [1023] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spec_invariant, 3), + [1025] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_spec_invariant, 3), + [1027] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spec_condition, 3), + [1029] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_spec_condition, 3), + [1031] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spec_apply, 8, .production_id = 6), + [1033] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_spec_apply, 8, .production_id = 6), + [1035] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spec_apply, 7, .production_id = 6), + [1037] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_spec_apply, 7, .production_id = 6), + [1039] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_lambda_bindings_repeat1, 2), SHIFT_REPEAT(656), + [1042] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_lambda_bindings_repeat1, 2), + [1044] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_lambda_bindings_repeat1, 2), SHIFT_REPEAT(595), + [1047] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_lambda_bindings_repeat1, 2), SHIFT_REPEAT(283), + [1050] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202), + [1052] = {.entry = {.count = 1, .reusable = true}}, SHIFT(283), + [1054] = {.entry = {.count = 1, .reusable = true}}, SHIFT(281), + [1056] = {.entry = {.count = 1, .reusable = true}}, SHIFT(412), + [1058] = {.entry = {.count = 1, .reusable = true}}, SHIFT(377), + [1060] = {.entry = {.count = 1, .reusable = true}}, SHIFT(200), + [1062] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ref_type, 2), + [1064] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_abort_expression, 2, .production_id = 11), + [1066] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_type, 5), + [1068] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_apply_type, 2, .production_id = 14), + [1070] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_type, 2, .production_id = 49), + [1072] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda_expression, 2, .production_id = 15), + [1074] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_expression, 5, .production_id = 60), + [1076] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_expression, 7, .production_id = 80), + [1078] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_type, 3), + [1080] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_expression, 2, .production_id = 10), + [1082] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_type, 4), + [1084] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_expression, 3, .production_id = 32), + [1086] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_apply_type, 1), + [1088] = {.entry = {.count = 1, .reusable = true}}, SHIFT(231), + [1090] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_loop_expression, 2, .production_id = 5), + [1092] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_resource_accquires, 4), + [1094] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_resource_accquires, 3), + [1096] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bind_fields, 2), + [1098] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_type_params, 4), + [1100] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_type_params, 4), + [1102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bind_fields, 3), + [1104] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bind_unpack, 3, .production_id = 46), + [1106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__bind, 1, .production_id = 8), + [1108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_type_params, 3), + [1110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_type_params, 3), + [1112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_type_params_repeat1, 2), + [1114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_function_type_params_repeat1, 2), + [1116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bind_fields, 4), + [1118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(530), + [1120] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), + [1122] = {.entry = {.count = 1, .reusable = false}}, SHIFT(530), + [1124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bind_unpack, 2, .production_id = 26), + [1126] = {.entry = {.count = 1, .reusable = true}}, SHIFT(255), + [1128] = {.entry = {.count = 1, .reusable = false}}, SHIFT(639), + [1130] = {.entry = {.count = 1, .reusable = false}}, SHIFT(392), + [1132] = {.entry = {.count = 1, .reusable = false}}, SHIFT(345), + [1134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_expression, 5, .production_id = 59), + [1136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [1138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 3), + [1140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [1142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 5), + [1144] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 4), + [1146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170), + [1148] = {.entry = {.count = 1, .reusable = true}}, SHIFT(551), + [1150] = {.entry = {.count = 1, .reusable = true}}, SHIFT(550), + [1152] = {.entry = {.count = 1, .reusable = true}}, SHIFT(549), + [1154] = {.entry = {.count = 1, .reusable = true}}, SHIFT(548), + [1156] = {.entry = {.count = 1, .reusable = true}}, SHIFT(271), + [1158] = {.entry = {.count = 1, .reusable = false}}, SHIFT(386), + [1160] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_bind_fields_repeat1, 2), + [1162] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_bind_fields_repeat1, 2), SHIFT_REPEAT(160), + [1165] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_signature, 5, .production_id = 53), + [1167] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241), + [1169] = {.entry = {.count = 1, .reusable = true}}, SHIFT(327), + [1171] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [1173] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_signature, 4, .production_id = 42), + [1175] = {.entry = {.count = 1, .reusable = true}}, SHIFT(274), + [1177] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spec_apply_pattern, 2, .production_id = 75), + [1179] = {.entry = {.count = 1, .reusable = true}}, SHIFT(441), + [1181] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_use_member, 1, .production_id = 37), + [1183] = {.entry = {.count = 1, .reusable = true}}, SHIFT(534), + [1185] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spec_apply_pattern, 1, .production_id = 69), + [1187] = {.entry = {.count = 1, .reusable = true}}, SHIFT(316), + [1189] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), + [1191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), + [1193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), + [1195] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_script_block_repeat1, 2), SHIFT_REPEAT(501), + [1198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(374), + [1200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171), + [1202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [1204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), + [1206] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_struct_def_fields_repeat1, 2), + [1208] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_struct_def_fields_repeat1, 2), SHIFT_REPEAT(160), + [1211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(270), + [1213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(413), + [1215] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_signature, 3, .production_id = 24), + [1217] = {.entry = {.count = 1, .reusable = true}}, SHIFT(242), + [1219] = {.entry = {.count = 1, .reusable = true}}, SHIFT(248), + [1221] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_signature, 4, .production_id = 44), + [1223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(275), + [1225] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_func_params_repeat1, 2), + [1227] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_func_params_repeat1, 2), SHIFT_REPEAT(171), + [1230] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_field_initialize_list_repeat1, 2), + [1232] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_field_initialize_list_repeat1, 2), SHIFT_REPEAT(160), + [1235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(234), + [1237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(245), + [1239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), + [1241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(314), + [1243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(308), + [1245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(309), + [1247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [1249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(264), + [1251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(244), + [1253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), + [1255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249), + [1257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(262), + [1259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(457), + [1261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(440), + [1263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), + [1265] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_params, 3), + [1267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(355), + [1269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(466), + [1271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(300), + [1273] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bind_list, 2), + [1275] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__struct_signature, 2, .production_id = 3), + [1277] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_signature, 5, .production_id = 54), + [1279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(364), + [1281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bind_list, 4), + [1283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(254), + [1285] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_spec_apply_repeat1, 2), SHIFT_REPEAT(385), + [1288] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_spec_apply_repeat1, 2), + [1290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(334), + [1292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(425), + [1294] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_spec_pragma_repeat1, 2), + [1296] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_spec_pragma_repeat1, 2), SHIFT_REPEAT(457), + [1299] = {.entry = {.count = 1, .reusable = true}}, SHIFT(333), + [1301] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_signature, 6, .production_id = 63), + [1303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__struct_signature, 3, .production_id = 22), + [1305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), + [1307] = {.entry = {.count = 1, .reusable = true}}, SHIFT(494), + [1309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_params, 4), + [1311] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), + [1313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(451), + [1315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(229), + [1317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(307), + [1319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_signature, 6, .production_id = 67), + [1321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), + [1323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(337), + [1325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(392), + [1327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), + [1329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(326), + [1331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(253), + [1333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(409), + [1335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bind_list, 1), + [1337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145), + [1339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bind_list, 3), + [1341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_func_params, 2), + [1343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_resource_accquires_repeat1, 2), + [1345] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_resource_accquires_repeat1, 2), SHIFT_REPEAT(330), + [1348] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_script_block_repeat2, 2), + [1350] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_script_block_repeat2, 2), SHIFT_REPEAT(336), + [1353] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_let_statement, 2, .production_id = 9), + [1355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(250), + [1357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [1359] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_signature, 7, .production_id = 73), + [1361] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_address_block_repeat1, 2), + [1363] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_address_block_repeat1, 2), SHIFT_REPEAT(494), + [1366] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_resource_accquires, 2), + [1368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(310), + [1370] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2), SHIFT_REPEAT(435), + [1373] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2), + [1375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(227), + [1377] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), + [1379] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_tuple_type_repeat1, 2), SHIFT_REPEAT(243), + [1382] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_tuple_type_repeat1, 2), + [1384] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameter, 1), + [1386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(565), + [1388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(389), + [1390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(331), + [1392] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_parameter_identifier, 1, .production_id = 41), + [1394] = {.entry = {.count = 1, .reusable = true}}, SHIFT(391), + [1396] = {.entry = {.count = 1, .reusable = true}}, SHIFT(224), + [1398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__use_alias, 2, .production_id = 38), + [1400] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__struct_identifier, 1, .production_id = 2), + [1402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(217), + [1404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(456), + [1406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(260), + [1408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(635), + [1410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(344), + [1412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_use_decl_repeat1, 2), + [1414] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_use_decl_repeat1, 2), SHIFT_REPEAT(512), + [1417] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_identifier, 1, .production_id = 4), + [1419] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_let_statement, 4, .production_id = 47), + [1421] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [1423] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bind_field, 1, .production_id = 34), + [1425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(290), + [1427] = {.entry = {.count = 1, .reusable = true}}, SHIFT(223), + [1429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(528), + [1431] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_use_member, 2, .production_id = 51), + [1433] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spec_apply_pattern, 2, .production_id = 76), + [1435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(605), + [1437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(604), + [1439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(444), + [1441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(632), + [1443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(474), + [1445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [1447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(603), + [1449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(446), + [1451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(222), + [1453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(293), + [1455] = {.entry = {.count = 1, .reusable = true}}, SHIFT(570), + [1457] = {.entry = {.count = 1, .reusable = true}}, SHIFT(434), + [1459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(261), + [1461] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spec_pragma_property, 1), + [1463] = {.entry = {.count = 1, .reusable = true}}, SHIFT(323), + [1465] = {.entry = {.count = 1, .reusable = true}}, SHIFT(228), + [1467] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spec_apply_pattern, 3, .production_id = 82), + [1469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(588), + [1471] = {.entry = {.count = 1, .reusable = true}}, SHIFT(477), + [1473] = {.entry = {.count = 1, .reusable = true}}, SHIFT(368), + [1475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(354), + [1477] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_tuple_type_repeat1, 2), SHIFT_REPEAT(266), + [1480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(563), + [1482] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exp_field, 1, .production_id = 34), + [1484] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [1486] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2), SHIFT_REPEAT(86), + [1489] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2), + [1491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(357), + [1493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(654), + [1495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(432), + [1497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(590), + [1499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(589), + [1501] = {.entry = {.count = 1, .reusable = true}}, SHIFT(472), + [1503] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__module_ident, 3, .production_id = 27), + [1505] = {.entry = {.count = 1, .reusable = true}}, SHIFT(362), + [1507] = {.entry = {.count = 1, .reusable = true}}, SHIFT(321), + [1509] = {.entry = {.count = 1, .reusable = true}}, SHIFT(315), + [1511] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameter, 3), + [1513] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), + [1515] = {.entry = {.count = 1, .reusable = true}}, SHIFT(497), + [1517] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__spec_function_signature, 5, .production_id = 84), + [1519] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_signature, 4, .production_id = 43), + [1521] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exp_field, 3, .production_id = 62), + [1523] = {.entry = {.count = 1, .reusable = true}}, SHIFT(493), + [1525] = {.entry = {.count = 1, .reusable = true}}, SHIFT(347), + [1527] = {.entry = {.count = 1, .reusable = true}}, SHIFT(328), + [1529] = {.entry = {.count = 1, .reusable = true}}, SHIFT(370), + [1531] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201), + [1533] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_let_statement, 6, .production_id = 71), + [1535] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_parameter, 3, .production_id = 65), + [1537] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [1539] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), + [1541] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_let_statement, 4, .production_id = 48), + [1543] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_annotation, 3, .production_id = 61), + [1545] = {.entry = {.count = 1, .reusable = true}}, SHIFT(320), + [1547] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_signature, 8, .production_id = 81), + [1549] = {.entry = {.count = 1, .reusable = true}}, SHIFT(322), + [1551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(515), + [1553] = {.entry = {.count = 1, .reusable = true}}, SHIFT(538), + [1555] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199), + [1557] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), + [1559] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_signature, 6, .production_id = 66), + [1561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(559), + [1563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [1565] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195), + [1567] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [1569] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__spec_function_signature, 4, .production_id = 78), + [1571] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_signature, 6, .production_id = 64), + [1573] = {.entry = {.count = 1, .reusable = true}}, SHIFT(230), + [1575] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spec_pragma_property, 3), + [1577] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__struct_signature, 3, .production_id = 23), + [1579] = {.entry = {.count = 1, .reusable = true}}, SHIFT(238), + [1581] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_signature, 7, .production_id = 74), + [1583] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), + [1585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), + [1587] = {.entry = {.count = 1, .reusable = true}}, SHIFT(429), + [1589] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_signature, 5, .production_id = 55), + [1591] = {.entry = {.count = 1, .reusable = true}}, SHIFT(383), + [1593] = {.entry = {.count = 1, .reusable = true}}, SHIFT(398), + [1595] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bind_field, 3, .production_id = 70), + [1597] = {.entry = {.count = 1, .reusable = true}}, SHIFT(366), + [1599] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_signature, 7, .production_id = 72), + [1601] = {.entry = {.count = 1, .reusable = true}}, SHIFT(208), + [1603] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_signature, 5, .production_id = 52), + [1605] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137), + [1607] = {.entry = {.count = 1, .reusable = true}}, SHIFT(482), + [1609] = {.entry = {.count = 1, .reusable = true}}, SHIFT(303), + [1611] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__struct_signature, 4, .production_id = 40), + [1613] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210), + [1615] = {.entry = {.count = 1, .reusable = true}}, SHIFT(239), + [1617] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [1619] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), + [1621] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240), + [1623] = {.entry = {.count = 1, .reusable = true}}, SHIFT(301), + [1625] = {.entry = {.count = 1, .reusable = true}}, SHIFT(299), + [1627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(311), + [1629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), + [1631] = {.entry = {.count = 1, .reusable = true}}, SHIFT(373), + [1633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(396), + [1635] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), + [1637] = {.entry = {.count = 1, .reusable = true}}, SHIFT(304), + [1639] = {.entry = {.count = 1, .reusable = true}}, SHIFT(305), + [1641] = {.entry = {.count = 1, .reusable = true}}, SHIFT(306), + [1643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(302), + [1645] = {.entry = {.count = 1, .reusable = true}}, SHIFT(379), + [1647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), + [1649] = {.entry = {.count = 1, .reusable = true}}, SHIFT(607), + [1651] = {.entry = {.count = 1, .reusable = true}}, SHIFT(258), + [1653] = {.entry = {.count = 1, .reusable = true}}, SHIFT(221), + [1655] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [1657] = {.entry = {.count = 1, .reusable = true}}, SHIFT(219), + [1659] = {.entry = {.count = 1, .reusable = true}}, SHIFT(237), + [1661] = {.entry = {.count = 1, .reusable = true}}, SHIFT(236), + [1663] = {.entry = {.count = 1, .reusable = true}}, SHIFT(218), + [1665] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), + [1667] = {.entry = {.count = 1, .reusable = true}}, SHIFT(216), + [1669] = {.entry = {.count = 1, .reusable = true}}, SHIFT(459), + [1671] = {.entry = {.count = 1, .reusable = true}}, SHIFT(407), + [1673] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), + [1675] = {.entry = {.count = 1, .reusable = true}}, SHIFT(431), + [1677] = {.entry = {.count = 1, .reusable = true}}, SHIFT(594), + [1679] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136), + [1681] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [1683] = {.entry = {.count = 1, .reusable = true}}, SHIFT(404), + [1685] = {.entry = {.count = 1, .reusable = true}}, SHIFT(577), + [1687] = {.entry = {.count = 1, .reusable = true}}, SHIFT(267), + [1689] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [1691] = {.entry = {.count = 1, .reusable = true}}, SHIFT(268), + [1693] = {.entry = {.count = 1, .reusable = true}}, SHIFT(269), + [1695] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), + [1697] = {.entry = {.count = 1, .reusable = true}}, SHIFT(584), + [1699] = {.entry = {.count = 1, .reusable = true}}, SHIFT(585), + [1701] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163), + [1703] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [1705] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [1707] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [1709] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [1711] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), + [1713] = {.entry = {.count = 1, .reusable = true}}, SHIFT(273), + [1715] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), + [1717] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), + [1719] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), + [1721] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), + [1723] = {.entry = {.count = 1, .reusable = true}}, SHIFT(276), + [1725] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [1727] = {.entry = {.count = 1, .reusable = true}}, SHIFT(343), + [1729] = {.entry = {.count = 1, .reusable = true}}, SHIFT(252), + [1731] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), + [1733] = {.entry = {.count = 1, .reusable = true}}, SHIFT(558), + [1735] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [1737] = {.entry = {.count = 1, .reusable = true}}, SHIFT(256), + [1739] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [1741] = {.entry = {.count = 1, .reusable = true}}, SHIFT(568), + [1743] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [1745] = {.entry = {.count = 1, .reusable = true}}, SHIFT(257), + [1747] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [1749] = {.entry = {.count = 1, .reusable = true}}, SHIFT(263), + [1751] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [1753] = {.entry = {.count = 1, .reusable = true}}, SHIFT(235), + [1755] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), + [1757] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [1759] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), + [1761] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [1763] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), + [1765] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [1767] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [1769] = {.entry = {.count = 1, .reusable = true}}, SHIFT(325), + [1771] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [1773] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [1775] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [1777] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), +}; + +#ifdef __cplusplus +extern "C" { +#endif +#ifdef _WIN32 +#define extern __declspec(dllexport) +#endif + +extern const TSLanguage *tree_sitter_move(void) { + static TSLanguage language = { + .version = LANGUAGE_VERSION, + .symbol_count = SYMBOL_COUNT, + .alias_count = ALIAS_COUNT, + .token_count = TOKEN_COUNT, + .large_state_count = LARGE_STATE_COUNT, + .symbol_metadata = ts_symbol_metadata, + .parse_table = (const unsigned short *)ts_parse_table, + .small_parse_table = (const uint16_t *)ts_small_parse_table, + .small_parse_table_map = (const uint32_t *)ts_small_parse_table_map, + .parse_actions = ts_parse_actions, + .lex_modes = ts_lex_modes, + .symbol_names = ts_symbol_names, + .public_symbol_map = ts_symbol_map, + .alias_sequences = (const TSSymbol *)ts_alias_sequences, + .field_count = FIELD_COUNT, + .field_names = ts_field_names, + .field_map_slices = (const TSFieldMapSlice *)ts_field_map_slices, + .field_map_entries = (const TSFieldMapEntry *)ts_field_map_entries, + .max_alias_sequence_length = MAX_ALIAS_SEQUENCE_LENGTH, + .lex_fn = ts_lex, + .external_token_count = EXTERNAL_TOKEN_COUNT, + }; + return &language; +} +#ifdef __cplusplus +} +#endif diff --git a/crates/syntax/resources/tree_sitter/parser.h b/crates/syntax/resources/tree_sitter/parser.h new file mode 100644 index 00000000..11bf4fc4 --- /dev/null +++ b/crates/syntax/resources/tree_sitter/parser.h @@ -0,0 +1,235 @@ +#ifndef TREE_SITTER_PARSER_H_ +#define TREE_SITTER_PARSER_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include + +#define ts_builtin_sym_error ((TSSymbol)-1) +#define ts_builtin_sym_end 0 +#define TREE_SITTER_SERIALIZATION_BUFFER_SIZE 1024 + +#ifndef TREE_SITTER_API_H_ +typedef uint16_t TSSymbol; +typedef uint16_t TSFieldId; +typedef struct TSLanguage TSLanguage; +#endif + +typedef struct { + TSFieldId field_id; + uint8_t child_index; + bool inherited; +} TSFieldMapEntry; + +typedef struct { + uint16_t index; + uint16_t length; +} TSFieldMapSlice; + +typedef uint16_t TSStateId; + +typedef struct { + bool visible : 1; + bool named : 1; +} TSSymbolMetadata; + +typedef struct TSLexer TSLexer; + +struct TSLexer { + int32_t lookahead; + TSSymbol result_symbol; + void (*advance)(TSLexer *, bool); + void (*mark_end)(TSLexer *); + uint32_t (*get_column)(TSLexer *); + bool (*is_at_included_range_start)(const TSLexer *); + bool (*eof)(const TSLexer *); +}; + +typedef enum { + TSParseActionTypeShift, + TSParseActionTypeReduce, + TSParseActionTypeAccept, + TSParseActionTypeRecover, +} TSParseActionType; + +typedef struct { + union { + struct { + TSStateId state; + bool extra : 1; + bool repetition : 1; + } shift; + struct { + TSSymbol symbol; + int16_t dynamic_precedence; + uint8_t child_count; + uint8_t production_id; + } reduce; + } params; + TSParseActionType type : 4; +} TSParseAction; + +typedef struct { + uint16_t lex_state; + uint16_t external_lex_state; +} TSLexMode; + +typedef union { + TSParseAction action; + struct { + uint8_t count; + bool reusable : 1; + } entry; +} TSParseActionEntry; + +struct TSLanguage { + uint32_t version; + uint32_t symbol_count; + uint32_t alias_count; + uint32_t token_count; + uint32_t external_token_count; + const char **symbol_names; + const TSSymbolMetadata *symbol_metadata; + const uint16_t *parse_table; + const TSParseActionEntry *parse_actions; + const TSLexMode *lex_modes; + const TSSymbol *alias_sequences; + uint16_t max_alias_sequence_length; + bool (*lex_fn)(TSLexer *, TSStateId); + bool (*keyword_lex_fn)(TSLexer *, TSStateId); + TSSymbol keyword_capture_token; + struct { + const bool *states; + const TSSymbol *symbol_map; + void *(*create)(void); + void (*destroy)(void *); + bool (*scan)(void *, TSLexer *, const bool *symbol_whitelist); + unsigned (*serialize)(void *, char *); + void (*deserialize)(void *, const char *, unsigned); + } external_scanner; + uint32_t field_count; + const TSFieldMapSlice *field_map_slices; + const TSFieldMapEntry *field_map_entries; + const char **field_names; + uint32_t large_state_count; + const uint16_t *small_parse_table; + const uint32_t *small_parse_table_map; + const TSSymbol *public_symbol_map; +}; + +/* + * Lexer Macros + */ + +#define START_LEXER() \ + bool result = false; \ + bool skip = false; \ + bool eof = false; \ + int32_t lookahead; \ + goto start; \ + next_state: \ + lexer->advance(lexer, skip); \ + start: \ + skip = false; \ + lookahead = lexer->lookahead; + +#define ADVANCE(state_value) \ + { \ + state = state_value; \ + goto next_state; \ + } + +#define SKIP(state_value) \ + { \ + skip = true; \ + state = state_value; \ + goto next_state; \ + } + +#define ACCEPT_TOKEN(symbol_value) \ + result = true; \ + lexer->result_symbol = symbol_value; \ + lexer->mark_end(lexer); + +#define END_STATE() return result; + +/* + * Parse Table Macros + */ + +#define SMALL_STATE(id) id - LARGE_STATE_COUNT + +#define STATE(id) id + +#define ACTIONS(id) id + +#define SHIFT(state_value) \ + { \ + { \ + .params = { \ + .shift = { \ + .state = state_value \ + } \ + }, \ + .type = TSParseActionTypeShift \ + } \ + } + +#define SHIFT_REPEAT(state_value) \ + { \ + { \ + .params = { \ + .shift = { \ + .state = state_value, \ + .repetition = true \ + } \ + }, \ + .type = TSParseActionTypeShift \ + } \ + } + +#define RECOVER() \ + { \ + { .type = TSParseActionTypeRecover } \ + } + +#define SHIFT_EXTRA() \ + { \ + { \ + .params = { \ + .shift = { \ + .extra = true \ + } \ + }, \ + .type = TSParseActionTypeShift \ + } \ + } + +#define REDUCE(symbol_val, child_count_val, ...) \ + { \ + { \ + .params = { \ + .reduce = { \ + .symbol = symbol_val, \ + .child_count = child_count_val, \ + __VA_ARGS__ \ + }, \ + }, \ + .type = TSParseActionTypeReduce \ + } \ + } + +#define ACCEPT_INPUT() \ + { \ + { .type = TSParseActionTypeAccept } \ + } + +#ifdef __cplusplus +} +#endif + +#endif // TREE_SITTER_PARSER_H_ diff --git a/crates/syntax/src/ast.rs b/crates/syntax/src/ast.rs new file mode 100644 index 00000000..2224fe65 --- /dev/null +++ b/crates/syntax/src/ast.rs @@ -0,0 +1,595 @@ +use core::fmt; + +use tree_sitter::Node; + +macro_rules! define_ast_node { + ($struct_ident: ident, [$($field_name: ident),*]) => { + #[allow(dead_code)] + pub struct $struct_ident<'a> { + source: &'a str, + node: Node<'a>, + } + + impl<'a> fmt::Debug for $struct_ident<'a> { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct(stringify!($struct_ident)) + $( + .field(stringify!($field_name), &self.$field_name()) + )* + .finish() + } + } + + impl<'a> $struct_ident<'a> { + pub fn new(source: &'a str, node: Node<'a>) -> Self { + Self { source, node } + } + } + }; +} + +macro_rules! define_ident_literal_from_first_child { + ($ident_name: ident) => { + pub fn $ident_name(&self) -> Option<&str> { + self.node + .named_child(0) + .map(|node| node.utf8_text(self.source.as_bytes()).unwrap()) + } + }; +} + +macro_rules! define_ident_literal_from_last_child { + ($ident_name: ident) => { + pub fn $ident_name(&self) -> Option<&str> { + self.node + .named_child(self.node.named_child_count() - 1) + .map(|node| node.utf8_text(self.source.as_bytes()).unwrap()) + } + }; +} + +macro_rules! define_named_ident_literal { + ($ident_name: ident) => { + pub fn $ident_name(&self) -> Option<&str> { + self.node + .child_by_field_name(stringify!($ident_name)) + .map(|node| node.utf8_text(self.source.as_bytes()).unwrap()) + } + }; +} + +macro_rules! define_named_field { + ($ident_name: ident, $ast_type: ident) => { + pub fn $ident_name(&self) -> Option<$ast_type> { + self.node + .child_by_field_name(stringify!($ident_name)) + .map(|node| $ast_type::new(self.source, node)) + } + }; +} + +macro_rules! define_field_from_first_child { + ($ident_name: ident, $ast_type: ident) => { + pub fn $ident_name(&self) -> Option<$ast_type> { + self.node + .named_child(0) + .map(|node| $ast_type::new(self.source, node)) + } + }; +} + +// macro_rules! define_field_from_last_child { +// ($field_name: ident, $ast_type: ident) => { +// pub fn $field_name(&self) -> Option<$ast_type> { +// self.node +// .named_child(self.named_child_count() - 1) +// .map(|node| $ast_type::new(self.source, node)) +// } +// }; +// } + +macro_rules! define_proxy_array_named_field { + ($field_name: ident, $ast_type: ident) => { + pub fn $field_name(&self) -> Option> { + self.node + .child_by_field_name(stringify!($field_name)) + .map(|node| { + let mut cursor = self.node.walk(); + node.named_children(&mut cursor) + .map(|node| $ast_type::new(self.source, node)) + .collect() + }) + } + }; +} + +macro_rules! define_type_field { + ($field_name: ident) => { + pub fn $field_name(&self) -> Option { + self.node + .child_by_field_name("type") + .map(|node| Type::new(self.source, node)) + } + }; +} + +macro_rules! define_enum { + ($enum_name: ident, {$($node_ident: ident => $ast_type: ident),*}) => { + #[derive(Debug)] + pub enum $enum_name<'a> { + $( + $ast_type($ast_type<'a>), + )* + } + + impl<'a> $enum_name<'a> { + pub fn new(source: &'a str, node: Node<'a>) -> Self { + match node.kind() { + $( + stringify!($node_ident) => $enum_name::$ast_type($ast_type::new(source, node)), + )* + _ => unreachable!(), + } + } + } + } +} + +define_ast_node!(SourceFile, [definition]); + +impl<'a> SourceFile<'a> { + pub fn definition(&self) -> Option { + self.node + .named_child(0) + .map(|node| Definition::new(self.source, node)) + } +} + +#[derive(Debug)] +pub enum Definition<'a> { + Script(ScriptBlock<'a>), + Module(Module<'a>), + ModuleAtAddress(AddressBlock<'a>), +} + +impl<'a> Definition<'a> { + pub fn new(source: &'a str, node: Node<'a>) -> Self { + match node.kind() { + "module_definition" => Definition::Module(Module::new(source, node)), + "script_block" => Definition::Script(ScriptBlock::new(source, node)), + _ => unreachable!(), + } + } +} + +define_ast_node!(ScriptBlock, [func_def]); + +impl<'a> ScriptBlock<'a> { + define_field_from_first_child!(func_def, FuncDef); +} + +define_ast_node!(AddressBlock, []); + +define_ast_node!(Module, [name, body]); + +impl<'a> Module<'a> { + define_named_ident_literal!(name); + define_proxy_array_named_field!(body, ModuleItem); +} + +define_ast_node!(UseDecl, [address, module]); + +impl<'a> UseDecl<'a> { + define_named_ident_literal!(address); + define_named_ident_literal!(module); +} + +define_ast_node!(FieldDef, [field, typ]); + +impl<'a> FieldDef<'a> { + define_named_ident_literal!(field); + define_type_field!(typ); +} + +define_ast_node!(TypeParam, [name]); + +impl<'a> TypeParam<'a> { + define_ident_literal_from_first_child!(name); +} + +define_ast_node!(StructDef, [name, type_parameters, fields]); + +impl<'a> StructDef<'a> { + define_named_ident_literal!(name); + define_proxy_array_named_field!(type_parameters, TypeParam); + define_proxy_array_named_field!(fields, FieldDef); +} + +define_ast_node!(NativeStructDef, [name]); + +impl<'a> NativeStructDef<'a> { + define_named_ident_literal!(name); +} + +#[derive(Debug)] +pub enum ModuleItem<'a> { + Use(UseDecl<'a>), + FuncDef(FuncDef<'a>), + NativeFuncDef(NativeFuncDef<'a>), + Struct(StructDef<'a>), + NativeStruct(NativeStructDef<'a>), +} + +impl<'a> ModuleItem<'a> { + pub fn new(source: &'a str, node: Node<'a>) -> Self { + match node.kind() { + "use_decl" => ModuleItem::Use(UseDecl::new(source, node)), + "usual_function_definition" => ModuleItem::FuncDef(FuncDef::new(source, node)), + "native_function_definition" => { + ModuleItem::NativeFuncDef(NativeFuncDef::new(source, node)) + } + "struct_definition" => ModuleItem::Struct(StructDef::new(source, node)), + "native_struct_definition" => { + ModuleItem::NativeStruct(NativeStructDef::new(source, node)) + } + _ => unreachable!(), + } + } +} + +define_ast_node!( + FuncDef, + [name, type_parameters, params, return_type, acquires, body] +); + +impl<'a> FuncDef<'a> { + define_named_ident_literal!(name); + define_proxy_array_named_field!(type_parameters, TypeParam); + define_proxy_array_named_field!(params, FuncParam); + define_named_field!(return_type, Type); + define_proxy_array_named_field!(acquires, ModuleAccess); + define_named_field!(body, Block); +} + +define_ast_node!(NativeFuncDef, [name, type_parameters, params]); + +impl<'a> NativeFuncDef<'a> { + define_named_ident_literal!(name); + define_proxy_array_named_field!(type_parameters, TypeParam); + define_proxy_array_named_field!(params, FuncParam); + define_proxy_array_named_field!(acquires, ModuleAccess); +} + +define_ast_node!(FuncParam, [name, typ]); + +impl<'a> FuncParam<'a> { + define_named_ident_literal!(name); + define_type_field!(typ); +} + +define_ast_node!(Block, [items]); + +impl<'a> Block<'a> { + pub fn items(&self) -> Vec { + let mut cursor = self.node.walk(); + self.node + .named_children(&mut cursor) + .map(|node| BlockItem::new(self.source, node)) + .collect() + } +} + +#[derive(Debug)] +pub enum BlockItem<'a> { + LetStatement(LetStatement<'a>), + Expr(Expr<'a>), +} + +impl<'a> BlockItem<'a> { + pub fn new(source: &'a str, node: Node<'a>) -> Self { + match node.kind() { + "let_statement" => BlockItem::LetStatement(LetStatement::new(source, node)), + _ => BlockItem::Expr(Expr::new(source, node)), + } + } +} + +define_ast_node!(LetStatement, [binds, typ, exp]); + +impl<'a> LetStatement<'a> { + define_proxy_array_named_field!(binds, Bind); + define_type_field!(typ); + define_named_field!(exp, Expr); +} + +// Binds +// ********************************************************************************** +define_enum!(Bind, { bind_var => BindVar, bind_unpack => BindUnpack }); + +define_ast_node!(BindVar, [name]); + +impl<'a> BindVar<'a> { + define_ident_literal_from_first_child!(name); +} + +define_ast_node!(BindUnpack, [module_access, bind_fields]); + +impl<'a> BindUnpack<'a> { + define_field_from_first_child!(module_access, ModuleAccess); + define_proxy_array_named_field!(bind_fields, BindField); +} + +define_ast_node!(BindField, [field, bind]); + +impl<'a> BindField<'a> { + define_named_ident_literal!(field); + define_named_field!(bind, BindVar); +} + +// Types +// ********************************************************************************** +define_enum!(Type, { apply_type => ApplyType, + ref_type => RefType, + tuple_type => TupleType, + function_type => FunctionType }); + +define_ast_node!(ApplyType, [module_access, type_arguments]); + +impl<'a> ApplyType<'a> { + define_field_from_first_child!(module_access, ModuleAccess); + define_proxy_array_named_field!(type_arguments, Type); +} + +define_ast_node!(RefType, [typ]); + +impl<'a> RefType<'a> { + define_field_from_first_child!(typ, Type); +} + +define_ast_node!(TupleType, [items]); + +impl<'a> TupleType<'a> { + pub fn items(&self) -> Vec { + let mut cursor = self.node.walk(); + self.node + .named_children(&mut cursor) + .map(|node| Type::new(self.source, node)) + .collect() + } +} + +define_ast_node!(FunctionType, [param_types, return_type]); + +impl<'a> FunctionType<'a> { + define_proxy_array_named_field!(param_types, Type); + define_named_field!(return_type, Type); +} + +define_ast_node!(ModuleAccess, [address, module, name]); + +impl<'a> ModuleAccess<'a> { + define_named_ident_literal!(address); + define_named_ident_literal!(module); + define_ident_literal_from_last_child!(name); +} + +// Expressions +// ********************************************************************************** +#[derive(Debug)] +pub enum Expr<'a> { + Lambda(LambdaExpr<'a>), + Loop(LoopExpr<'a>), + While(WhileExpr<'a>), + If(IfExpr<'a>), + Return(ReturnExpr<'a>), + Abort(AbortExpr<'a>), + Assign(AssignExpr<'a>), + Binary(BinaryExpr<'a>), + Unary(UnaryExpr<'a>), +} + +impl<'a> Expr<'a> { + pub fn new(source: &'a str, node: Node<'a>) -> Self { + match node.kind() { + "lambda_expression" => Expr::Lambda(LambdaExpr::new(source, node)), + "loop_expression" => Expr::Loop(LoopExpr::new(source, node)), + "if_expression" => Expr::If(IfExpr::new(source, node)), + "while_expression" => Expr::While(WhileExpr::new(source, node)), + "return_expression" => Expr::Return(ReturnExpr::new(source, node)), + "abort_expression" => Expr::Abort(AbortExpr::new(source, node)), + "assign_expression" => Expr::Assign(AssignExpr::new(source, node)), + "binary_expression" => Expr::Binary(BinaryExpr::new(source, node)), + _ => Expr::Unary(UnaryExpr::new(source, node)), + } + } +} + +define_ast_node!(LambdaExpr, [bindings, exp]); + +impl<'a> LambdaExpr<'a> { + define_proxy_array_named_field!(bindings, Bind); + define_named_field!(exp, Expr); +} + +define_ast_node!(IfExpr, []); + +define_ast_node!(WhileExpr, []); + +define_ast_node!(ReturnExpr, []); + +define_ast_node!(AbortExpr, []); + +define_ast_node!(AssignExpr, []); + +define_ast_node!(BinaryExpr, [lhs, operator, rhs]); + +impl<'a> BinaryExpr<'a> { + define_named_field!(lhs, BinaryOperand); + define_named_ident_literal!(operator); + define_named_field!(rhs, BinaryOperand); +} + +#[derive(Debug)] +pub enum BinaryOperand<'a> { + BinaryExpr(BinaryExpr<'a>), + UnaryExpr(UnaryExpr<'a>), +} +impl<'a> BinaryOperand<'a> { + pub fn new(source: &'a str, node: Node<'a>) -> Self { + match node.kind() { + "binary_expression" => BinaryOperand::BinaryExpr(BinaryExpr::new(source, node)), + _ => BinaryOperand::UnaryExpr(UnaryExpr::new(source, node)), + } + } +} + +define_ast_node!(LoopExpr, [body]); + +impl<'a> LoopExpr<'a> { + define_named_field!(body, Block); +} + +// Unary Expression +// ********************************************************************************** +#[derive(Debug)] +pub enum UnaryExpr<'a> { + Not(NotExpr<'a>), + Borrow(BorrowExpr<'a>), + Deref(DerefExpr<'a>), + MoveOrCopy(MoveOrCopyExpr<'a>), + Term(Term<'a>), +} + +impl<'a> UnaryExpr<'a> { + pub fn new(source: &'a str, node: Node<'a>) -> Self { + match node.kind() { + "unary_expression" => UnaryExpr::Not(NotExpr::new(source, node)), + "borrow_expression" => UnaryExpr::Borrow(BorrowExpr::new(source, node)), + "dereference_expression" => UnaryExpr::Deref(DerefExpr::new(source, node)), + "move_or_copy_expression" => UnaryExpr::MoveOrCopy(MoveOrCopyExpr::new(source, node)), + _ => UnaryExpr::Term(Term::new(source, node)), + } + } +} + +define_ast_node!(NotExpr, [exp]); + +impl<'a> NotExpr<'a> { + define_named_field!(exp, UnaryExpr); +} + +define_ast_node!(BorrowExpr, [exp]); + +impl<'a> BorrowExpr<'a> { + define_named_field!(exp, UnaryExpr); +} + +define_ast_node!(DerefExpr, [exp]); + +impl<'a> DerefExpr<'a> { + define_named_field!(exp, UnaryExpr); +} + +define_ast_node!(MoveOrCopyExpr, [exp]); + +impl<'a> MoveOrCopyExpr<'a> { + define_named_ident_literal!(exp); +} + +// Terminals +// ********************************************************************************** +#[derive(Debug)] +pub enum Term<'a> { + Break(BreakExpr<'a>), + Continue(ContinueExpr<'a>), + Name(NameExpr<'a>), + Pack(PackExpr<'a>), + Call(CallExpr<'a>), + Literal(Literal<'a>), + Unit(UnitExpr<'a>), + ExprList(ExprList<'a>), + Block(Block<'a>), +} + +impl<'a> Term<'a> { + pub fn new(source: &'a str, node: Node<'a>) -> Self { + match node.kind() { + "break_expression" => Term::Break(BreakExpr::new(source, node)), + "continue_expression" => Term::Continue(ContinueExpr::new(source, node)), + "name_expression" => Term::Name(NameExpr::new(source, node)), + "pack_expression" => Term::Pack(PackExpr::new(source, node)), + "call_expression" => Term::Call(CallExpr::new(source, node)), + "unit_expression" => Term::Unit(UnitExpr::new(source, node)), + "expression_list" => Term::ExprList(ExprList::new(source, node)), + "block" => Term::Block(Block::new(source, node)), + kind if kind.ends_with("literal") => Term::Literal(Literal::new(source, node)), + _ => unreachable!("{}", node.kind()), + } + } +} + +define_ast_node!(BreakExpr, []); +define_ast_node!(ContinueExpr, []); +define_ast_node!(ExprList, [items]); +define_ast_node!(UnitExpr, []); + +impl<'a> ExprList<'a> { + pub fn items(&self) -> Vec { + let mut cursor = self.node.walk(); + self.node + .named_children(&mut cursor) + .map(|node| Expr::new(self.source, node)) + .collect() + } +} + +define_ast_node!(NameExpr, [fully_qual_name, type_arguments]); + +impl<'a> NameExpr<'a> { + define_field_from_first_child!(fully_qual_name, ModuleAccess); + define_proxy_array_named_field!(type_arguments, Type); +} + +define_ast_node!(CallExpr, [name, args]); + +impl<'a> CallExpr<'a> { + define_field_from_first_child!(name, NameExpr); + define_proxy_array_named_field!(args, Expr); +} + +define_ast_node!(PackExpr, [name, body]); + +impl<'a> PackExpr<'a> { + define_field_from_first_child!(name, NameExpr); + define_proxy_array_named_field!(body, FieldAssignment); +} + +define_ast_node!(FieldAssignment, [field, exp]); + +impl<'a> FieldAssignment<'a> { + define_named_ident_literal!(field); + define_named_field!(exp, Expr); +} + +// Literals +// ********************************************************************************** +#[derive(Debug)] +pub enum Literal<'a> { + Address(&'a str), + Num(&'a str), + Bool(&'a str), + ByteString(&'a str), +} + +impl<'a> Literal<'a> { + pub fn new(source: &'a str, node: Node<'a>) -> Self { + let val = node.utf8_text(source.as_bytes()).unwrap(); + match node.kind() { + "address_literal" => Literal::Address(val), + "num_literal" => Literal::Num(val), + "bool_literal" => Literal::Bool(val), + "bytestring_literal" => Literal::ByteString(val), + _ => unreachable!(), + } + } +} diff --git a/crates/syntax/src/bin/parser.rs b/crates/syntax/src/bin/parser.rs new file mode 100644 index 00000000..135d0658 --- /dev/null +++ b/crates/syntax/src/bin/parser.rs @@ -0,0 +1,26 @@ +use syntax::ast::{Definition, SourceFile}; +use tree_sitter::{Language, Parser}; + +#[link(name = "tree-sitter-move")] +extern "C" { + fn tree_sitter_move() -> Language; +} + +fn main() { + let language = unsafe { tree_sitter_move() }; + let mut parser = Parser::new(); + if let Err(err_message) = parser.set_language(language) { + dbg!(err_message); + std::process::exit(1); + } + + let source_code = "module Module { public fun main() { func(&mut 1); } }"; + let tree = parser.parse(source_code, None).unwrap(); + println!("{:?}", tree.root_node().to_sexp()); + + let file = SourceFile::new(source_code, tree.root_node()); + if let Some(Definition::Module(module)) = file.definition() { + let items = module.body().unwrap(); + dbg!(&items[0]); + } +} diff --git a/crates/syntax/src/lib.rs b/crates/syntax/src/lib.rs new file mode 100644 index 00000000..851c0bc2 --- /dev/null +++ b/crates/syntax/src/lib.rs @@ -0,0 +1 @@ +pub mod ast;