diff --git a/docs/04-reference/wingsdk-api.md b/docs/04-reference/wingsdk-api.md index 22aea5c3a9b..d930fa9ed5d 100644 --- a/docs/04-reference/wingsdk-api.md +++ b/docs/04-reference/wingsdk-api.md @@ -3471,7 +3471,7 @@ Invoke the function asynchronously with a given payload. - *Implemented By:* IFunctionHandler -**Inflight client:** [wingsdk.cloud.IFunctionHandlerClient](#wingsdk.cloud.IFunctionHandlerClient) +**Inflight client:** [@winglang/sdk.cloud.IFunctionHandlerClient](#@winglang/sdk.cloud.IFunctionHandlerClient) Represents a resource with an inflight "handle" method that can be used to create a `cloud.Function`. @@ -3636,7 +3636,7 @@ Payload to send to the queue. - *Implemented By:* IQueueOnMessageHandler -**Inflight client:** [wingsdk.cloud.IQueueOnMessageHandlerClient](#wingsdk.cloud.IQueueOnMessageHandlerClient) +**Inflight client:** [@winglang/sdk.cloud.IQueueOnMessageHandlerClient](#@winglang/sdk.cloud.IQueueOnMessageHandlerClient) Represents a resource with an inflight "handle" method that can be passed to `Queue.on_message`. @@ -3711,7 +3711,7 @@ Function that will be called when a message is received from the queue. - *Implemented By:* IScheduleOnTickHandler -**Inflight client:** [wingsdk.cloud.IScheduleOnTickHandlerClient](#wingsdk.cloud.IScheduleOnTickHandlerClient) +**Inflight client:** [@winglang/sdk.cloud.IScheduleOnTickHandlerClient](#@winglang/sdk.cloud.IScheduleOnTickHandlerClient) Represents a resource with an inflight "handle" method that can be passed to `Schedule.on_tick`. @@ -3813,7 +3813,7 @@ Payload to publish to Topic. - *Implemented By:* ITopicOnMessageHandler -**Inflight client:** [wingsdk.cloud.ITopicOnMessageHandlerClient](#wingsdk.cloud.ITopicOnMessageHandlerClient) +**Inflight client:** [@winglang/sdk.cloud.ITopicOnMessageHandlerClient](#@winglang/sdk.cloud.ITopicOnMessageHandlerClient) Represents a resource with an inflight "handle" method that can be passed to `Topic.on_message`. diff --git a/examples/tests/invalid/impl_interface.w b/examples/tests/invalid/impl_interface.w new file mode 100644 index 00000000000..3e6f1d07ed6 --- /dev/null +++ b/examples/tests/invalid/impl_interface.w @@ -0,0 +1,14 @@ +bring cloud; + +resource A impl cloud.IQueueOnMessageHandler { + // Error: A does not implement "handle" method of cloud.IQueueOnMessageHandler + init() {} +} + +resource B impl cloud.IQueueOnMessageHandler { + init() {} + inflight handle() { + // Error: Expected type to be "inflight (str): void", but got "inflight (): void" instead + return; + } +} diff --git a/examples/tests/valid/impl_interface.w b/examples/tests/valid/impl_interface.w new file mode 100644 index 00000000000..6cdc02ee26c --- /dev/null +++ b/examples/tests/valid/impl_interface.w @@ -0,0 +1,15 @@ +bring cloud; + +resource A impl cloud.IQueueOnMessageHandler { + init() {} + inflight handle(msg: str) { + return; + } +} + +resource B impl cloud.IQueueOnMessageHandler { + init() {} + inflight handle(msg: str): num { // its okay to return a more specific type + return 5; + } +} diff --git a/libs/tree-sitter-wing/grammar.js b/libs/tree-sitter-wing/grammar.js index f019b5582da..db28d55bfa0 100644 --- a/libs/tree-sitter-wing/grammar.js +++ b/libs/tree-sitter-wing/grammar.js @@ -74,6 +74,7 @@ module.exports = grammar({ $.return_statement, $.class_definition, $.resource_definition, + $.interface_definition, $.for_in_loop, $.while_statement, $.break_statement, @@ -144,6 +145,7 @@ module.exports = grammar({ "class", field("name", $.identifier), optional(seq("extends", field("parent", $.custom_type))), + optional(seq("impl", field("implements", commaSep1($.custom_type)))), field("implementation", $.class_implementation) ), class_implementation: ($) => @@ -176,6 +178,7 @@ module.exports = grammar({ "resource", field("name", $.identifier), optional(seq("extends", field("parent", $.custom_type))), + optional(seq("impl", field("implements", commaSep1($.custom_type)))), field("implementation", $.resource_implementation) ), resource_implementation: ($) => @@ -192,6 +195,26 @@ module.exports = grammar({ "}" ), + interface_definition: ($) => + seq( + "interface", + field("name", $.identifier), + optional(seq("extends", field("implements", commaSep1($.custom_type)))), + field("implementation", $.interface_implementation) + ), + interface_implementation: ($) => + seq( + "{", + repeat( + choice( + $.method_signature, + $.inflight_method_signature, + $.class_field, + ) + ), + "}" + ), + for_in_loop: ($) => seq( "for", @@ -375,6 +398,17 @@ module.exports = grammar({ field("block", $.block) ), + method_signature: ($) => + seq( + optional(field("access_modifier", $.access_modifier)), + optional(field("static", $.static)), + optional(field("async", $.async_modifier)), + field("name", $.identifier), + field("parameter_list", $.parameter_list), + optional(field("return_type", $._type_annotation)), + ";" + ), + method_definition: ($) => seq( optional(field("access_modifier", $.access_modifier)), @@ -386,6 +420,17 @@ module.exports = grammar({ field("block", $.block) ), + inflight_method_signature: ($) => + seq( + optional(field("access_modifier", $.access_modifier)), + optional(field("static", $.static)), + field("phase_modifier", $._inflight_specifier), + field("name", $.identifier), + field("parameter_list", $.parameter_list), + optional(field("return_type", $._type_annotation)), + ";" + ), + inflight_method_definition: ($) => seq( optional(field("access_modifier", $.access_modifier)), diff --git a/libs/tree-sitter-wing/project.json b/libs/tree-sitter-wing/project.json index 5ed791db450..39b013a649f 100644 --- a/libs/tree-sitter-wing/project.json +++ b/libs/tree-sitter-wing/project.json @@ -3,6 +3,7 @@ "$schema": "../../node_modules/nx/schemas/project-schema.json", "targets": { "test": { + "dependsOn": ["build"], "executor": "nx:run-commands", "options": { "command": "npm run test", diff --git a/libs/tree-sitter-wing/src/grammar.json b/libs/tree-sitter-wing/src/grammar.json index 304c06760be..b81bef1d333 100644 --- a/libs/tree-sitter-wing/src/grammar.json +++ b/libs/tree-sitter-wing/src/grammar.json @@ -206,6 +206,10 @@ "type": "SYMBOL", "name": "resource_definition" }, + { + "type": "SYMBOL", + "name": "interface_definition" + }, { "type": "SYMBOL", "name": "for_in_loop" @@ -687,6 +691,64 @@ } ] }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "impl" + }, + { + "type": "FIELD", + "name": "implements", + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "custom_type" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "custom_type" + } + ] + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] + } + ] + } + } + ] + }, + { + "type": "BLANK" + } + ] + }, { "type": "FIELD", "name": "implementation", @@ -884,6 +946,64 @@ } ] }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "impl" + }, + { + "type": "FIELD", + "name": "implements", + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "custom_type" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "custom_type" + } + ] + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] + } + ] + } + } + ] + }, + { + "type": "BLANK" + } + ] + }, { "type": "FIELD", "name": "implementation", @@ -931,6 +1051,122 @@ } ] }, + "interface_definition": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "interface" + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "extends" + }, + { + "type": "FIELD", + "name": "implements", + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "custom_type" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "custom_type" + } + ] + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] + } + ] + } + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "FIELD", + "name": "implementation", + "content": { + "type": "SYMBOL", + "name": "interface_implementation" + } + } + ] + }, + "interface_implementation": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "REPEAT", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "method_signature" + }, + { + "type": "SYMBOL", + "name": "inflight_method_signature" + }, + { + "type": "SYMBOL", + "name": "class_field" + } + ] + } + }, + { + "type": "STRING", + "value": "}" + } + ] + }, "for_in_loop": { "type": "SEQ", "members": [ @@ -2071,6 +2307,95 @@ } ] }, + "method_signature": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "access_modifier", + "content": { + "type": "SYMBOL", + "name": "access_modifier" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "static", + "content": { + "type": "SYMBOL", + "name": "static" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "async", + "content": { + "type": "SYMBOL", + "name": "async_modifier" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + }, + { + "type": "FIELD", + "name": "parameter_list", + "content": { + "type": "SYMBOL", + "name": "parameter_list" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "return_type", + "content": { + "type": "SYMBOL", + "name": "_type_annotation" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ";" + } + ] + }, "method_definition": { "type": "SEQ", "members": [ @@ -2164,6 +2489,87 @@ } ] }, + "inflight_method_signature": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "access_modifier", + "content": { + "type": "SYMBOL", + "name": "access_modifier" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "static", + "content": { + "type": "SYMBOL", + "name": "static" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "FIELD", + "name": "phase_modifier", + "content": { + "type": "SYMBOL", + "name": "_inflight_specifier" + } + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + }, + { + "type": "FIELD", + "name": "parameter_list", + "content": { + "type": "SYMBOL", + "name": "parameter_list" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "return_type", + "content": { + "type": "SYMBOL", + "name": "_type_annotation" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ";" + } + ] + }, "inflight_method_definition": { "type": "SEQ", "members": [ diff --git a/libs/tree-sitter-wing/src/node-types.json b/libs/tree-sitter-wing/src/node-types.json index 4a4d6632cf3..e5239a22077 100644 --- a/libs/tree-sitter-wing/src/node-types.json +++ b/libs/tree-sitter-wing/src/node-types.json @@ -296,6 +296,10 @@ "type": "if_statement", "named": true }, + { + "type": "interface_definition", + "named": true + }, { "type": "resource_definition", "named": true @@ -386,6 +390,20 @@ } ] }, + "implements": { + "multiple": true, + "required": false, + "types": [ + { + "type": ",", + "named": false + }, + { + "type": "custom_type", + "named": true + } + ] + }, "name": { "multiple": false, "required": true, @@ -1153,6 +1171,197 @@ } } }, + { + "type": "inflight_method_signature", + "named": true, + "fields": { + "access_modifier": { + "multiple": false, + "required": false, + "types": [ + { + "type": "access_modifier", + "named": true + } + ] + }, + "name": { + "multiple": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + }, + "parameter_list": { + "multiple": false, + "required": true, + "types": [ + { + "type": "parameter_list", + "named": true + } + ] + }, + "phase_modifier": { + "multiple": false, + "required": true, + "types": [ + { + "type": "inflight", + "named": false + } + ] + }, + "return_type": { + "multiple": true, + "required": false, + "types": [ + { + "type": ":", + "named": false + }, + { + "type": "builtin_type", + "named": true + }, + { + "type": "custom_type", + "named": true + }, + { + "type": "function_type", + "named": true + }, + { + "type": "immutable_container_type", + "named": true + }, + { + "type": "json_container_type", + "named": true + }, + { + "type": "mutable_container_type", + "named": true + }, + { + "type": "optional", + "named": true + } + ] + }, + "static": { + "multiple": false, + "required": false, + "types": [ + { + "type": "static", + "named": true + } + ] + }, + "type": { + "multiple": false, + "required": false, + "types": [ + { + "type": "builtin_type", + "named": true + }, + { + "type": "custom_type", + "named": true + }, + { + "type": "function_type", + "named": true + }, + { + "type": "immutable_container_type", + "named": true + }, + { + "type": "json_container_type", + "named": true + }, + { + "type": "mutable_container_type", + "named": true + }, + { + "type": "optional", + "named": true + } + ] + } + } + }, + { + "type": "interface_definition", + "named": true, + "fields": { + "implementation": { + "multiple": false, + "required": true, + "types": [ + { + "type": "interface_implementation", + "named": true + } + ] + }, + "implements": { + "multiple": true, + "required": false, + "types": [ + { + "type": ",", + "named": false + }, + { + "type": "custom_type", + "named": true + } + ] + }, + "name": { + "multiple": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + } + } + }, + { + "type": "interface_implementation", + "named": true, + "fields": {}, + "children": { + "multiple": true, + "required": false, + "types": [ + { + "type": "class_field", + "named": true + }, + { + "type": "inflight_method_signature", + "named": true + }, + { + "type": "method_signature", + "named": true + } + ] + } + }, { "type": "json_container_type", "named": true, @@ -1417,6 +1626,134 @@ } } }, + { + "type": "method_signature", + "named": true, + "fields": { + "access_modifier": { + "multiple": false, + "required": false, + "types": [ + { + "type": "access_modifier", + "named": true + } + ] + }, + "async": { + "multiple": false, + "required": false, + "types": [ + { + "type": "async_modifier", + "named": true + } + ] + }, + "name": { + "multiple": false, + "required": true, + "types": [ + { + "type": "identifier", + "named": true + } + ] + }, + "parameter_list": { + "multiple": false, + "required": true, + "types": [ + { + "type": "parameter_list", + "named": true + } + ] + }, + "return_type": { + "multiple": true, + "required": false, + "types": [ + { + "type": ":", + "named": false + }, + { + "type": "builtin_type", + "named": true + }, + { + "type": "custom_type", + "named": true + }, + { + "type": "function_type", + "named": true + }, + { + "type": "immutable_container_type", + "named": true + }, + { + "type": "json_container_type", + "named": true + }, + { + "type": "mutable_container_type", + "named": true + }, + { + "type": "optional", + "named": true + } + ] + }, + "static": { + "multiple": false, + "required": false, + "types": [ + { + "type": "static", + "named": true + } + ] + }, + "type": { + "multiple": false, + "required": false, + "types": [ + { + "type": "builtin_type", + "named": true + }, + { + "type": "custom_type", + "named": true + }, + { + "type": "function_type", + "named": true + }, + { + "type": "immutable_container_type", + "named": true + }, + { + "type": "json_container_type", + "named": true + }, + { + "type": "mutable_container_type", + "named": true + }, + { + "type": "optional", + "named": true + } + ] + } + } + }, { "type": "minutes", "named": true, @@ -1916,6 +2253,20 @@ } ] }, + "implements": { + "multiple": true, + "required": false, + "types": [ + { + "type": ",", + "named": false + }, + { + "type": "custom_type", + "named": true + } + ] + }, "name": { "multiple": false, "required": true, @@ -2093,6 +2444,10 @@ "type": "if_statement", "named": true }, + { + "type": "interface_definition", + "named": true + }, { "type": "resource_definition", "named": true @@ -2764,6 +3119,10 @@ "type": "if", "named": false }, + { + "type": "impl", + "named": false + }, { "type": "in", "named": false @@ -2776,6 +3135,10 @@ "type": "init", "named": false }, + { + "type": "interface", + "named": false + }, { "type": "keyword_argument_key", "named": true diff --git a/libs/tree-sitter-wing/src/parser.c b/libs/tree-sitter-wing/src/parser.c index 606773c31cc..2d5ddc25551 100644 --- a/libs/tree-sitter-wing/src/parser.c +++ b/libs/tree-sitter-wing/src/parser.c @@ -6,15 +6,15 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 611 +#define STATE_COUNT 733 #define LARGE_STATE_COUNT 14 -#define SYMBOL_COUNT 189 +#define SYMBOL_COUNT 197 #define ALIAS_COUNT 3 -#define TOKEN_COUNT 94 +#define TOKEN_COUNT 96 #define EXTERNAL_TOKEN_COUNT 0 -#define FIELD_COUNT 44 +#define FIELD_COUNT 45 #define MAX_ALIAS_SEQUENCE_LENGTH 9 -#define PRODUCTION_ID_COUNT 125 +#define PRODUCTION_ID_COUNT 155 enum { sym_identifier = 1, @@ -38,176 +38,184 @@ enum { anon_sym_let = 19, anon_sym_COLON = 20, anon_sym_class = 21, - anon_sym_resource = 22, - anon_sym_for = 23, - anon_sym_in = 24, - anon_sym_while = 25, - anon_sym_break = 26, - anon_sym_continue = 27, - anon_sym_if = 28, - anon_sym_else = 29, - anon_sym_elif = 30, - anon_sym_try = 31, - anon_sym_catch = 32, - anon_sym_finally = 33, - anon_sym_0 = 34, - aux_sym__integer_token1 = 35, - aux_sym__decimal_token1 = 36, - aux_sym__decimal_token2 = 37, - anon_sym_true = 38, - anon_sym_false = 39, - anon_sym_s = 40, - anon_sym_m = 41, - anon_sym_h = 42, - anon_sym_DQUOTE = 43, - anon_sym_DOLLAR_LBRACE = 44, - sym__string_fragment = 45, - sym__escape_sequence = 46, - anon_sym_LPAREN = 47, - anon_sym_RPAREN = 48, - anon_sym_new = 49, - anon_sym_QMARK = 50, - anon_sym_num = 51, - anon_sym_bool = 52, - anon_sym_any = 53, - anon_sym_str = 54, - anon_sym_void = 55, - anon_sym_duration = 56, - anon_sym_init = 57, - sym_async_modifier = 58, - anon_sym_public = 59, - anon_sym_private = 60, - anon_sym_protected = 61, - anon_sym_Array = 62, - anon_sym_Set = 63, - anon_sym_Map = 64, - anon_sym_Promise = 65, - anon_sym_MutSet = 66, - anon_sym_MutMap = 67, - anon_sym_MutArray = 68, - anon_sym_LT = 69, - anon_sym_GT = 70, - anon_sym_DASH_DASH = 71, - anon_sym_DASH = 72, - anon_sym_BANG = 73, - anon_sym_PLUS = 74, - anon_sym_STAR = 75, - anon_sym_SLASH = 76, - anon_sym_BSLASH = 77, - anon_sym_PERCENT = 78, - anon_sym_STAR_STAR = 79, - anon_sym_PIPE_PIPE = 80, - anon_sym_AMP_AMP = 81, - anon_sym_EQ_EQ = 82, - anon_sym_BANG_EQ = 83, - anon_sym_GT_EQ = 84, - anon_sym_LT_EQ = 85, - anon_sym_QMARK_QMARK = 86, - anon_sym_EQ_GT = 87, - anon_sym_await = 88, - anon_sym_defer = 89, - anon_sym_LBRACK = 90, - anon_sym_RBRACK = 91, - anon_sym_Json = 92, - anon_sym_MutJson = 93, - sym_source = 94, - sym_block = 95, - sym_reference = 96, - sym_custom_type = 97, - sym_nested_identifier = 98, - sym__inflight_specifier = 99, - sym__statement = 100, - sym_short_import_statement = 101, - sym_struct_definition = 102, - sym_struct_field = 103, - sym_enum_definition = 104, - sym_return_statement = 105, - sym_variable_assignment_statement = 106, - sym_expression_statement = 107, - sym_variable_definition_statement = 108, - sym__type_annotation = 109, - sym_class_definition = 110, - sym_class_implementation = 111, - sym_class_field = 112, - sym_resource_definition = 113, - sym_resource_implementation = 114, - sym_for_in_loop = 115, - sym_while_statement = 116, - sym_break_statement = 117, - sym_continue_statement = 118, - sym_if_statement = 119, - sym_elif_block = 120, - sym_try_catch_statement = 121, - sym_expression = 122, - sym__literal = 123, - sym_number = 124, - sym__integer = 125, - sym__decimal = 126, - sym_bool = 127, - sym_duration = 128, - sym_seconds = 129, - sym_minutes = 130, - sym_hours = 131, - sym_string = 132, - sym_template_substitution = 133, - sym_call = 134, - sym_argument_list = 135, - sym_positional_argument = 136, - sym_keyword_argument = 137, - sym_new_expression = 138, - sym_new_object_id = 139, - sym_new_object_scope = 140, - sym__type = 141, - sym_optional = 142, - sym_function_type = 143, - sym_parameter_type_list = 144, - sym_builtin_type = 145, - sym_constructor = 146, - sym_method_definition = 147, - sym_inflight_method_definition = 148, - sym_access_modifier = 149, - sym_parameter_definition = 150, - sym_parameter_list = 151, - sym_immutable_container_type = 152, - sym_mutable_container_type = 153, - sym__builtin_container_type = 154, - sym__container_value_type = 155, - sym_unary_expression = 156, - sym_binary_expression = 157, - sym_preflight_closure = 158, - sym_inflight_closure = 159, - sym_await_expression = 160, - sym_defer_expression = 161, - sym_parenthesized_expression = 162, - sym__collection_literal = 163, - sym_array_literal = 164, - sym_set_literal = 165, - sym_map_literal = 166, - sym_struct_literal = 167, - sym_map_literal_member = 168, - sym_struct_literal_member = 169, - sym_structured_access_expression = 170, - sym_json_literal = 171, - sym_json_element = 172, - sym_json_container_type = 173, - aux_sym_source_repeat1 = 174, - aux_sym_custom_type_repeat1 = 175, - aux_sym_struct_definition_repeat1 = 176, - aux_sym_struct_definition_repeat2 = 177, - aux_sym_enum_definition_repeat1 = 178, - aux_sym_class_implementation_repeat1 = 179, - aux_sym_if_statement_repeat1 = 180, - aux_sym_string_repeat1 = 181, - aux_sym_argument_list_repeat1 = 182, - aux_sym_argument_list_repeat2 = 183, - aux_sym_parameter_type_list_repeat1 = 184, - aux_sym_parameter_list_repeat1 = 185, - aux_sym_array_literal_repeat1 = 186, - aux_sym_map_literal_repeat1 = 187, - aux_sym_struct_literal_repeat1 = 188, - alias_sym_enum_field = 189, - alias_sym_keyword_argument_key = 190, - alias_sym_keyword_argument_value = 191, + anon_sym_impl = 22, + anon_sym_resource = 23, + anon_sym_interface = 24, + anon_sym_for = 25, + anon_sym_in = 26, + anon_sym_while = 27, + anon_sym_break = 28, + anon_sym_continue = 29, + anon_sym_if = 30, + anon_sym_else = 31, + anon_sym_elif = 32, + anon_sym_try = 33, + anon_sym_catch = 34, + anon_sym_finally = 35, + anon_sym_0 = 36, + aux_sym__integer_token1 = 37, + aux_sym__decimal_token1 = 38, + aux_sym__decimal_token2 = 39, + anon_sym_true = 40, + anon_sym_false = 41, + anon_sym_s = 42, + anon_sym_m = 43, + anon_sym_h = 44, + anon_sym_DQUOTE = 45, + anon_sym_DOLLAR_LBRACE = 46, + sym__string_fragment = 47, + sym__escape_sequence = 48, + anon_sym_LPAREN = 49, + anon_sym_RPAREN = 50, + anon_sym_new = 51, + anon_sym_QMARK = 52, + anon_sym_num = 53, + anon_sym_bool = 54, + anon_sym_any = 55, + anon_sym_str = 56, + anon_sym_void = 57, + anon_sym_duration = 58, + anon_sym_init = 59, + sym_async_modifier = 60, + anon_sym_public = 61, + anon_sym_private = 62, + anon_sym_protected = 63, + anon_sym_Array = 64, + anon_sym_Set = 65, + anon_sym_Map = 66, + anon_sym_Promise = 67, + anon_sym_MutSet = 68, + anon_sym_MutMap = 69, + anon_sym_MutArray = 70, + anon_sym_LT = 71, + anon_sym_GT = 72, + anon_sym_DASH_DASH = 73, + anon_sym_DASH = 74, + anon_sym_BANG = 75, + anon_sym_PLUS = 76, + anon_sym_STAR = 77, + anon_sym_SLASH = 78, + anon_sym_BSLASH = 79, + anon_sym_PERCENT = 80, + anon_sym_STAR_STAR = 81, + anon_sym_PIPE_PIPE = 82, + anon_sym_AMP_AMP = 83, + anon_sym_EQ_EQ = 84, + anon_sym_BANG_EQ = 85, + anon_sym_GT_EQ = 86, + anon_sym_LT_EQ = 87, + anon_sym_QMARK_QMARK = 88, + anon_sym_EQ_GT = 89, + anon_sym_await = 90, + anon_sym_defer = 91, + anon_sym_LBRACK = 92, + anon_sym_RBRACK = 93, + anon_sym_Json = 94, + anon_sym_MutJson = 95, + sym_source = 96, + sym_block = 97, + sym_reference = 98, + sym_custom_type = 99, + sym_nested_identifier = 100, + sym__inflight_specifier = 101, + sym__statement = 102, + sym_short_import_statement = 103, + sym_struct_definition = 104, + sym_struct_field = 105, + sym_enum_definition = 106, + sym_return_statement = 107, + sym_variable_assignment_statement = 108, + sym_expression_statement = 109, + sym_variable_definition_statement = 110, + sym__type_annotation = 111, + sym_class_definition = 112, + sym_class_implementation = 113, + sym_class_field = 114, + sym_resource_definition = 115, + sym_resource_implementation = 116, + sym_interface_definition = 117, + sym_interface_implementation = 118, + sym_for_in_loop = 119, + sym_while_statement = 120, + sym_break_statement = 121, + sym_continue_statement = 122, + sym_if_statement = 123, + sym_elif_block = 124, + sym_try_catch_statement = 125, + sym_expression = 126, + sym__literal = 127, + sym_number = 128, + sym__integer = 129, + sym__decimal = 130, + sym_bool = 131, + sym_duration = 132, + sym_seconds = 133, + sym_minutes = 134, + sym_hours = 135, + sym_string = 136, + sym_template_substitution = 137, + sym_call = 138, + sym_argument_list = 139, + sym_positional_argument = 140, + sym_keyword_argument = 141, + sym_new_expression = 142, + sym_new_object_id = 143, + sym_new_object_scope = 144, + sym__type = 145, + sym_optional = 146, + sym_function_type = 147, + sym_parameter_type_list = 148, + sym_builtin_type = 149, + sym_constructor = 150, + sym_method_signature = 151, + sym_method_definition = 152, + sym_inflight_method_signature = 153, + sym_inflight_method_definition = 154, + sym_access_modifier = 155, + sym_parameter_definition = 156, + sym_parameter_list = 157, + sym_immutable_container_type = 158, + sym_mutable_container_type = 159, + sym__builtin_container_type = 160, + sym__container_value_type = 161, + sym_unary_expression = 162, + sym_binary_expression = 163, + sym_preflight_closure = 164, + sym_inflight_closure = 165, + sym_await_expression = 166, + sym_defer_expression = 167, + sym_parenthesized_expression = 168, + sym__collection_literal = 169, + sym_array_literal = 170, + sym_set_literal = 171, + sym_map_literal = 172, + sym_struct_literal = 173, + sym_map_literal_member = 174, + sym_struct_literal_member = 175, + sym_structured_access_expression = 176, + sym_json_literal = 177, + sym_json_element = 178, + sym_json_container_type = 179, + aux_sym_source_repeat1 = 180, + aux_sym_custom_type_repeat1 = 181, + aux_sym_struct_definition_repeat1 = 182, + aux_sym_struct_definition_repeat2 = 183, + aux_sym_enum_definition_repeat1 = 184, + aux_sym_class_definition_repeat1 = 185, + aux_sym_class_implementation_repeat1 = 186, + aux_sym_interface_implementation_repeat1 = 187, + aux_sym_if_statement_repeat1 = 188, + aux_sym_string_repeat1 = 189, + aux_sym_argument_list_repeat1 = 190, + aux_sym_argument_list_repeat2 = 191, + aux_sym_parameter_type_list_repeat1 = 192, + aux_sym_parameter_list_repeat1 = 193, + aux_sym_array_literal_repeat1 = 194, + aux_sym_map_literal_repeat1 = 195, + aux_sym_struct_literal_repeat1 = 196, + alias_sym_enum_field = 197, + alias_sym_keyword_argument_key = 198, + alias_sym_keyword_argument_value = 199, }; static const char * const ts_symbol_names[] = { @@ -233,7 +241,9 @@ static const char * const ts_symbol_names[] = { [anon_sym_let] = "let", [anon_sym_COLON] = ":", [anon_sym_class] = "class", + [anon_sym_impl] = "impl", [anon_sym_resource] = "resource", + [anon_sym_interface] = "interface", [anon_sym_for] = "for", [anon_sym_in] = "in", [anon_sym_while] = "while", @@ -326,6 +336,8 @@ static const char * const ts_symbol_names[] = { [sym_class_field] = "class_field", [sym_resource_definition] = "resource_definition", [sym_resource_implementation] = "resource_implementation", + [sym_interface_definition] = "interface_definition", + [sym_interface_implementation] = "interface_implementation", [sym_for_in_loop] = "for_in_loop", [sym_while_statement] = "while_statement", [sym_break_statement] = "break_statement", @@ -358,7 +370,9 @@ static const char * const ts_symbol_names[] = { [sym_parameter_type_list] = "parameter_type_list", [sym_builtin_type] = "builtin_type", [sym_constructor] = "constructor", + [sym_method_signature] = "method_signature", [sym_method_definition] = "method_definition", + [sym_inflight_method_signature] = "inflight_method_signature", [sym_inflight_method_definition] = "inflight_method_definition", [sym_access_modifier] = "access_modifier", [sym_parameter_definition] = "parameter_definition", @@ -390,7 +404,9 @@ static const char * const ts_symbol_names[] = { [aux_sym_struct_definition_repeat1] = "struct_definition_repeat1", [aux_sym_struct_definition_repeat2] = "struct_definition_repeat2", [aux_sym_enum_definition_repeat1] = "enum_definition_repeat1", + [aux_sym_class_definition_repeat1] = "class_definition_repeat1", [aux_sym_class_implementation_repeat1] = "class_implementation_repeat1", + [aux_sym_interface_implementation_repeat1] = "interface_implementation_repeat1", [aux_sym_if_statement_repeat1] = "if_statement_repeat1", [aux_sym_string_repeat1] = "string_repeat1", [aux_sym_argument_list_repeat1] = "argument_list_repeat1", @@ -428,7 +444,9 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_let] = anon_sym_let, [anon_sym_COLON] = anon_sym_COLON, [anon_sym_class] = anon_sym_class, + [anon_sym_impl] = anon_sym_impl, [anon_sym_resource] = anon_sym_resource, + [anon_sym_interface] = anon_sym_interface, [anon_sym_for] = anon_sym_for, [anon_sym_in] = anon_sym_in, [anon_sym_while] = anon_sym_while, @@ -521,6 +539,8 @@ static const TSSymbol ts_symbol_map[] = { [sym_class_field] = sym_class_field, [sym_resource_definition] = sym_resource_definition, [sym_resource_implementation] = sym_resource_implementation, + [sym_interface_definition] = sym_interface_definition, + [sym_interface_implementation] = sym_interface_implementation, [sym_for_in_loop] = sym_for_in_loop, [sym_while_statement] = sym_while_statement, [sym_break_statement] = sym_break_statement, @@ -553,7 +573,9 @@ static const TSSymbol ts_symbol_map[] = { [sym_parameter_type_list] = sym_parameter_type_list, [sym_builtin_type] = sym_builtin_type, [sym_constructor] = sym_constructor, + [sym_method_signature] = sym_method_signature, [sym_method_definition] = sym_method_definition, + [sym_inflight_method_signature] = sym_inflight_method_signature, [sym_inflight_method_definition] = sym_inflight_method_definition, [sym_access_modifier] = sym_access_modifier, [sym_parameter_definition] = sym_parameter_definition, @@ -585,7 +607,9 @@ static const TSSymbol ts_symbol_map[] = { [aux_sym_struct_definition_repeat1] = aux_sym_struct_definition_repeat1, [aux_sym_struct_definition_repeat2] = aux_sym_struct_definition_repeat2, [aux_sym_enum_definition_repeat1] = aux_sym_enum_definition_repeat1, + [aux_sym_class_definition_repeat1] = aux_sym_class_definition_repeat1, [aux_sym_class_implementation_repeat1] = aux_sym_class_implementation_repeat1, + [aux_sym_interface_implementation_repeat1] = aux_sym_interface_implementation_repeat1, [aux_sym_if_statement_repeat1] = aux_sym_if_statement_repeat1, [aux_sym_string_repeat1] = aux_sym_string_repeat1, [aux_sym_argument_list_repeat1] = aux_sym_argument_list_repeat1, @@ -689,10 +713,18 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_impl] = { + .visible = true, + .named = false, + }, [anon_sym_resource] = { .visible = true, .named = false, }, + [anon_sym_interface] = { + .visible = true, + .named = false, + }, [anon_sym_for] = { .visible = true, .named = false, @@ -1061,6 +1093,14 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym_interface_definition] = { + .visible = true, + .named = true, + }, + [sym_interface_implementation] = { + .visible = true, + .named = true, + }, [sym_for_in_loop] = { .visible = true, .named = true, @@ -1191,10 +1231,18 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym_method_signature] = { + .visible = true, + .named = true, + }, [sym_method_definition] = { .visible = true, .named = true, }, + [sym_inflight_method_signature] = { + .visible = true, + .named = true, + }, [sym_inflight_method_definition] = { .visible = true, .named = true, @@ -1319,10 +1367,18 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, + [aux_sym_class_definition_repeat1] = { + .visible = false, + .named = false, + }, [aux_sym_class_implementation_repeat1] = { .visible = false, .named = false, }, + [aux_sym_interface_implementation_repeat1] = { + .visible = false, + .named = false, + }, [aux_sym_if_statement_repeat1] = { .visible = false, .named = false, @@ -1395,29 +1451,30 @@ enum { field_finally_block = 19, field_id = 20, field_implementation = 21, - field_inflight = 22, - field_initializer = 23, - field_iterable = 24, - field_iterator = 25, - field_left = 26, - field_member = 27, - field_module_name = 28, - field_name = 29, - field_object = 30, - field_op = 31, - field_parameter_list = 32, - field_parameter_types = 33, - field_parent = 34, - field_phase_modifier = 35, - field_property = 36, - field_reassignable = 37, - field_return_type = 38, - field_right = 39, - field_scope = 40, - field_static = 41, - field_type = 42, - field_type_parameter = 43, - field_value = 44, + field_implements = 22, + field_inflight = 23, + field_initializer = 24, + field_iterable = 25, + field_iterator = 26, + field_left = 27, + field_member = 28, + field_module_name = 29, + field_name = 30, + field_object = 31, + field_op = 32, + field_parameter_list = 33, + field_parameter_types = 34, + field_parent = 35, + field_phase_modifier = 36, + field_property = 37, + field_reassignable = 38, + field_return_type = 39, + field_right = 40, + field_scope = 41, + field_static = 42, + field_type = 43, + field_type_parameter = 44, + field_value = 45, }; static const char * const ts_field_names[] = { @@ -1443,6 +1500,7 @@ static const char * const ts_field_names[] = { [field_finally_block] = "finally_block", [field_id] = "id", [field_implementation] = "implementation", + [field_implements] = "implements", [field_inflight] = "inflight", [field_initializer] = "initializer", [field_iterable] = "iterable", @@ -1521,76 +1579,106 @@ static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [50] = {.index = 90, .length = 3}, [51] = {.index = 93, .length = 3}, [52] = {.index = 96, .length = 3}, - [53] = {.index = 99, .length = 2}, - [54] = {.index = 101, .length = 3}, - [55] = {.index = 104, .length = 4}, - [56] = {.index = 108, .length = 2}, - [57] = {.index = 110, .length = 3}, - [59] = {.index = 113, .length = 3}, + [53] = {.index = 99, .length = 3}, + [54] = {.index = 102, .length = 2}, + [55] = {.index = 104, .length = 3}, + [56] = {.index = 107, .length = 4}, + [57] = {.index = 111, .length = 2}, + [58] = {.index = 113, .length = 3}, [60] = {.index = 116, .length = 3}, - [62] = {.index = 119, .length = 3}, + [61] = {.index = 119, .length = 3}, [63] = {.index = 122, .length = 3}, [64] = {.index = 125, .length = 3}, - [65] = {.index = 128, .length = 2}, - [66] = {.index = 130, .length = 4}, - [67] = {.index = 134, .length = 3}, - [68] = {.index = 137, .length = 3}, - [69] = {.index = 140, .length = 4}, - [70] = {.index = 144, .length = 4}, - [71] = {.index = 148, .length = 5}, - [72] = {.index = 153, .length = 3}, - [73] = {.index = 156, .length = 4}, - [74] = {.index = 160, .length = 4}, - [75] = {.index = 164, .length = 3}, - [76] = {.index = 167, .length = 4}, - [77] = {.index = 171, .length = 3}, - [78] = {.index = 174, .length = 4}, - [79] = {.index = 178, .length = 4}, - [80] = {.index = 182, .length = 3}, - [81] = {.index = 185, .length = 6}, - [82] = {.index = 191, .length = 4}, - [83] = {.index = 195, .length = 5}, - [84] = {.index = 200, .length = 4}, - [85] = {.index = 204, .length = 5}, - [86] = {.index = 209, .length = 6}, - [87] = {.index = 215, .length = 6}, - [88] = {.index = 221, .length = 4}, - [89] = {.index = 225, .length = 6}, - [90] = {.index = 231, .length = 4}, - [91] = {.index = 235, .length = 4}, - [92] = {.index = 239, .length = 5}, - [93] = {.index = 244, .length = 5}, - [94] = {.index = 249, .length = 4}, - [95] = {.index = 253, .length = 5}, - [96] = {.index = 258, .length = 4}, - [97] = {.index = 262, .length = 4}, - [98] = {.index = 266, .length = 7}, - [99] = {.index = 273, .length = 7}, - [100] = {.index = 280, .length = 5}, - [101] = {.index = 285, .length = 4}, - [102] = {.index = 289, .length = 4}, - [103] = {.index = 293, .length = 7}, - [104] = {.index = 300, .length = 5}, - [105] = {.index = 305, .length = 6}, - [106] = {.index = 311, .length = 5}, - [107] = {.index = 316, .length = 6}, - [108] = {.index = 322, .length = 7}, - [109] = {.index = 329, .length = 7}, - [110] = {.index = 336, .length = 5}, - [111] = {.index = 341, .length = 5}, - [112] = {.index = 346, .length = 5}, - [113] = {.index = 351, .length = 5}, - [114] = {.index = 356, .length = 5}, - [115] = {.index = 361, .length = 5}, - [116] = {.index = 366, .length = 8}, - [117] = {.index = 374, .length = 8}, - [118] = {.index = 382, .length = 6}, - [119] = {.index = 388, .length = 5}, - [120] = {.index = 393, .length = 6}, - [121] = {.index = 399, .length = 6}, - [122] = {.index = 405, .length = 6}, - [123] = {.index = 411, .length = 6}, - [124] = {.index = 417, .length = 7}, + [65] = {.index = 128, .length = 3}, + [66] = {.index = 131, .length = 2}, + [67] = {.index = 133, .length = 4}, + [68] = {.index = 137, .length = 2}, + [69] = {.index = 139, .length = 4}, + [70] = {.index = 143, .length = 3}, + [71] = {.index = 146, .length = 3}, + [72] = {.index = 149, .length = 4}, + [73] = {.index = 153, .length = 4}, + [74] = {.index = 157, .length = 5}, + [75] = {.index = 162, .length = 3}, + [76] = {.index = 165, .length = 4}, + [77] = {.index = 169, .length = 4}, + [78] = {.index = 173, .length = 3}, + [79] = {.index = 176, .length = 4}, + [80] = {.index = 180, .length = 3}, + [81] = {.index = 183, .length = 4}, + [82] = {.index = 187, .length = 4}, + [83] = {.index = 191, .length = 5}, + [84] = {.index = 196, .length = 4}, + [85] = {.index = 200, .length = 3}, + [86] = {.index = 203, .length = 3}, + [87] = {.index = 206, .length = 3}, + [88] = {.index = 209, .length = 3}, + [89] = {.index = 212, .length = 4}, + [90] = {.index = 216, .length = 3}, + [91] = {.index = 219, .length = 6}, + [92] = {.index = 225, .length = 4}, + [93] = {.index = 229, .length = 5}, + [94] = {.index = 234, .length = 4}, + [95] = {.index = 238, .length = 5}, + [96] = {.index = 243, .length = 6}, + [97] = {.index = 249, .length = 6}, + [98] = {.index = 255, .length = 4}, + [99] = {.index = 259, .length = 6}, + [100] = {.index = 265, .length = 4}, + [101] = {.index = 269, .length = 4}, + [102] = {.index = 273, .length = 5}, + [103] = {.index = 278, .length = 5}, + [104] = {.index = 283, .length = 4}, + [105] = {.index = 287, .length = 5}, + [106] = {.index = 292, .length = 5}, + [107] = {.index = 297, .length = 5}, + [108] = {.index = 302, .length = 4}, + [109] = {.index = 306, .length = 4}, + [110] = {.index = 310, .length = 5}, + [111] = {.index = 315, .length = 5}, + [112] = {.index = 320, .length = 5}, + [113] = {.index = 325, .length = 4}, + [114] = {.index = 329, .length = 4}, + [115] = {.index = 333, .length = 4}, + [116] = {.index = 337, .length = 4}, + [117] = {.index = 341, .length = 4}, + [118] = {.index = 345, .length = 7}, + [119] = {.index = 352, .length = 7}, + [120] = {.index = 359, .length = 5}, + [121] = {.index = 364, .length = 4}, + [122] = {.index = 368, .length = 4}, + [123] = {.index = 372, .length = 7}, + [124] = {.index = 379, .length = 5}, + [125] = {.index = 384, .length = 6}, + [126] = {.index = 390, .length = 5}, + [127] = {.index = 395, .length = 6}, + [128] = {.index = 401, .length = 7}, + [129] = {.index = 408, .length = 7}, + [130] = {.index = 415, .length = 5}, + [131] = {.index = 420, .length = 6}, + [132] = {.index = 426, .length = 6}, + [133] = {.index = 432, .length = 6}, + [134] = {.index = 438, .length = 6}, + [135] = {.index = 444, .length = 5}, + [136] = {.index = 449, .length = 5}, + [137] = {.index = 454, .length = 6}, + [138] = {.index = 460, .length = 6}, + [139] = {.index = 466, .length = 5}, + [140] = {.index = 471, .length = 5}, + [141] = {.index = 476, .length = 5}, + [142] = {.index = 481, .length = 5}, + [143] = {.index = 486, .length = 5}, + [144] = {.index = 491, .length = 8}, + [145] = {.index = 499, .length = 8}, + [146] = {.index = 507, .length = 6}, + [147] = {.index = 513, .length = 5}, + [148] = {.index = 518, .length = 7}, + [149] = {.index = 525, .length = 7}, + [150] = {.index = 532, .length = 6}, + [151] = {.index = 538, .length = 6}, + [152] = {.index = 544, .length = 6}, + [153] = {.index = 550, .length = 6}, + [154] = {.index = 556, .length = 7}, }; static const TSFieldMapEntry ts_field_map_entries[] = { @@ -1737,224 +1825,323 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_name, 1}, {field_parent, 3}, [93] = + {field_implementation, 4}, + {field_implements, 3}, + {field_name, 1}, + [96] = {field_block, 4}, {field_iterable, 3}, {field_iterator, 1}, - [96] = + [99] = {field_block, 2}, {field_condition, 1}, {field_else_block, 4}, - [99] = + [102] = {field_elif_block, 0, .inherited = true}, {field_elif_block, 1, .inherited = true}, - [101] = + [104] = {field_block, 1}, {field_catch_block, 4}, {field_exception_identifier, 3}, - [104] = + [107] = {field_args, 2}, {field_class, 1}, {field_id, 3}, {field_scope, 4}, - [108] = + [111] = {field_parameter_types, 0}, {field_return_type, 2}, - [110] = + [113] = {field_fields, 2}, {field_fields, 3}, {field_type, 0}, - [113] = + [116] = {field_element, 2}, {field_element, 3, .inherited = true}, {field_type, 0}, - [116] = + [119] = {field_member, 2}, {field_member, 3, .inherited = true}, {field_type, 0}, - [119] = + [122] = {field_name, 1}, {field_type, 2, .inherited = true}, {field_value, 4}, - [122] = + [125] = {field_name, 2}, {field_reassignable, 1}, {field_value, 4}, - [125] = + [128] = {field_block, 2}, {field_name, 0}, {field_parameter_list, 1}, - [128] = + [131] = {field_block, 2}, {field_parameter_list, 1}, - [130] = + [133] = + {field_implementation, 5}, + {field_implements, 3}, + {field_implements, 4}, + {field_name, 1}, + [137] = + {field_name, 0}, + {field_parameter_list, 1}, + [139] = {field_block, 2}, {field_condition, 1}, {field_elif_block, 3, .inherited = true}, {field_else_block, 5}, - [134] = + [143] = {field_block, 1}, {field_catch_block, 3}, {field_finally_block, 5}, - [137] = + [146] = {field_inflight, 0}, {field_parameter_types, 1}, {field_return_type, 3}, - [140] = + [149] = {field_fields, 2}, {field_fields, 3}, {field_fields, 4}, {field_type, 0}, - [144] = + [153] = {field_name, 2}, {field_reassignable, 1}, {field_type, 3, .inherited = true}, {field_value, 5}, - [148] = + [157] = {field_block, 3}, {field_name, 0}, {field_parameter_list, 1}, {field_return_type, 2}, {field_type, 2, .inherited = true}, - [153] = + [162] = {field_name, 1}, {field_static, 0}, {field_type, 2, .inherited = true}, - [156] = + [165] = {field_block, 3}, {field_name, 1}, {field_parameter_list, 2}, {field_static, 0}, - [160] = + [169] = {field_async, 0}, {field_block, 3}, {field_name, 1}, {field_parameter_list, 2}, - [164] = + [173] = {field_name, 1}, {field_phase_modifier, 0}, {field_type, 2, .inherited = true}, - [167] = + [176] = {field_block, 3}, {field_name, 1}, {field_parameter_list, 2}, {field_phase_modifier, 0}, - [171] = + [180] = {field_access_modifier, 0}, {field_name, 1}, {field_type, 2, .inherited = true}, - [174] = + [183] = {field_access_modifier, 0}, {field_block, 3}, {field_name, 1}, {field_parameter_list, 2}, - [178] = + [187] = + {field_implementation, 6}, + {field_implements, 5}, + {field_name, 1}, + {field_parent, 3}, + [191] = + {field_implementation, 6}, + {field_implements, 3}, + {field_implements, 4}, + {field_implements, 5}, + {field_name, 1}, + [196] = + {field_name, 0}, + {field_parameter_list, 1}, + {field_return_type, 2}, + {field_type, 2, .inherited = true}, + [200] = + {field_name, 1}, + {field_parameter_list, 2}, + {field_static, 0}, + [203] = + {field_async, 0}, + {field_name, 1}, + {field_parameter_list, 2}, + [206] = + {field_name, 1}, + {field_parameter_list, 2}, + {field_phase_modifier, 0}, + [209] = + {field_access_modifier, 0}, + {field_name, 1}, + {field_parameter_list, 2}, + [212] = {field_block, 1}, {field_catch_block, 4}, {field_exception_identifier, 3}, {field_finally_block, 6}, - [182] = + [216] = {field_initializer, 3}, {field_name, 0}, {field_type, 1, .inherited = true}, - [185] = + [219] = {field_block, 4}, {field_name, 1}, {field_parameter_list, 2}, {field_return_type, 3}, {field_static, 0}, {field_type, 3, .inherited = true}, - [191] = + [225] = {field_name, 2}, {field_reassignable, 1}, {field_static, 0}, {field_type, 3, .inherited = true}, - [195] = + [229] = {field_async, 1}, {field_block, 4}, {field_name, 2}, {field_parameter_list, 3}, {field_static, 0}, - [200] = + [234] = {field_name, 2}, {field_phase_modifier, 1}, {field_static, 0}, {field_type, 3, .inherited = true}, - [204] = + [238] = {field_block, 4}, {field_name, 2}, {field_parameter_list, 3}, {field_phase_modifier, 1}, {field_static, 0}, - [209] = + [243] = {field_async, 0}, {field_block, 4}, {field_name, 1}, {field_parameter_list, 2}, {field_return_type, 3}, {field_type, 3, .inherited = true}, - [215] = + [249] = {field_block, 4}, {field_name, 1}, {field_parameter_list, 2}, {field_phase_modifier, 0}, {field_return_type, 3}, {field_type, 3, .inherited = true}, - [221] = + [255] = {field_name, 2}, {field_phase_modifier, 0}, {field_reassignable, 1}, {field_type, 3, .inherited = true}, - [225] = + [259] = {field_access_modifier, 0}, {field_block, 4}, {field_name, 1}, {field_parameter_list, 2}, {field_return_type, 3}, {field_type, 3, .inherited = true}, - [231] = + [265] = {field_access_modifier, 0}, {field_name, 2}, {field_reassignable, 1}, {field_type, 3, .inherited = true}, - [235] = + [269] = {field_access_modifier, 0}, {field_name, 2}, {field_static, 1}, {field_type, 3, .inherited = true}, - [239] = + [273] = {field_access_modifier, 0}, {field_block, 4}, {field_name, 2}, {field_parameter_list, 3}, {field_static, 1}, - [244] = + [278] = {field_access_modifier, 0}, {field_async, 1}, {field_block, 4}, {field_name, 2}, {field_parameter_list, 3}, - [249] = + [283] = {field_access_modifier, 0}, {field_name, 2}, {field_phase_modifier, 1}, {field_type, 3, .inherited = true}, - [253] = + [287] = {field_access_modifier, 0}, {field_block, 4}, {field_name, 2}, {field_parameter_list, 3}, {field_phase_modifier, 1}, - [258] = + [292] = + {field_implementation, 7}, + {field_implements, 5}, + {field_implements, 6}, + {field_name, 1}, + {field_parent, 3}, + [297] = + {field_name, 1}, + {field_parameter_list, 2}, + {field_return_type, 3}, + {field_static, 0}, + {field_type, 3, .inherited = true}, + [302] = + {field_async, 1}, + {field_name, 2}, + {field_parameter_list, 3}, + {field_static, 0}, + [306] = + {field_name, 2}, + {field_parameter_list, 3}, + {field_phase_modifier, 1}, + {field_static, 0}, + [310] = + {field_async, 0}, + {field_name, 1}, + {field_parameter_list, 2}, + {field_return_type, 3}, + {field_type, 3, .inherited = true}, + [315] = + {field_name, 1}, + {field_parameter_list, 2}, + {field_phase_modifier, 0}, + {field_return_type, 3}, + {field_type, 3, .inherited = true}, + [320] = + {field_access_modifier, 0}, + {field_name, 1}, + {field_parameter_list, 2}, + {field_return_type, 3}, + {field_type, 3, .inherited = true}, + [325] = + {field_access_modifier, 0}, + {field_name, 2}, + {field_parameter_list, 3}, + {field_static, 1}, + [329] = + {field_access_modifier, 0}, + {field_async, 1}, + {field_name, 2}, + {field_parameter_list, 3}, + [333] = + {field_access_modifier, 0}, + {field_name, 2}, + {field_parameter_list, 3}, + {field_phase_modifier, 1}, + [337] = {field_initializer, 4}, {field_name, 1}, {field_reassignable, 0}, {field_type, 2, .inherited = true}, - [262] = + [341] = {field_initializer, 4}, {field_name, 1}, {field_static, 0}, {field_type, 2, .inherited = true}, - [266] = + [345] = {field_async, 1}, {field_block, 5}, {field_name, 2}, @@ -1962,7 +2149,7 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_return_type, 4}, {field_static, 0}, {field_type, 4, .inherited = true}, - [273] = + [352] = {field_block, 5}, {field_name, 2}, {field_parameter_list, 3}, @@ -1970,23 +2157,23 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_return_type, 4}, {field_static, 0}, {field_type, 4, .inherited = true}, - [280] = + [359] = {field_name, 3}, {field_phase_modifier, 1}, {field_reassignable, 2}, {field_static, 0}, {field_type, 4, .inherited = true}, - [285] = + [364] = {field_initializer, 4}, {field_name, 1}, {field_phase_modifier, 0}, {field_type, 2, .inherited = true}, - [289] = + [368] = {field_access_modifier, 0}, {field_initializer, 4}, {field_name, 1}, {field_type, 2, .inherited = true}, - [293] = + [372] = {field_access_modifier, 0}, {field_block, 5}, {field_name, 2}, @@ -1994,33 +2181,33 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_return_type, 4}, {field_static, 1}, {field_type, 4, .inherited = true}, - [300] = + [379] = {field_access_modifier, 0}, {field_name, 3}, {field_reassignable, 2}, {field_static, 1}, {field_type, 4, .inherited = true}, - [305] = + [384] = {field_access_modifier, 0}, {field_async, 2}, {field_block, 5}, {field_name, 3}, {field_parameter_list, 4}, {field_static, 1}, - [311] = + [390] = {field_access_modifier, 0}, {field_name, 3}, {field_phase_modifier, 2}, {field_static, 1}, {field_type, 4, .inherited = true}, - [316] = + [395] = {field_access_modifier, 0}, {field_block, 5}, {field_name, 3}, {field_parameter_list, 4}, {field_phase_modifier, 2}, {field_static, 1}, - [322] = + [401] = {field_access_modifier, 0}, {field_async, 1}, {field_block, 5}, @@ -2028,7 +2215,7 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_parameter_list, 3}, {field_return_type, 4}, {field_type, 4, .inherited = true}, - [329] = + [408] = {field_access_modifier, 0}, {field_block, 5}, {field_name, 2}, @@ -2036,43 +2223,97 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_phase_modifier, 1}, {field_return_type, 4}, {field_type, 4, .inherited = true}, - [336] = + [415] = {field_access_modifier, 0}, {field_name, 3}, {field_phase_modifier, 1}, {field_reassignable, 2}, {field_type, 4, .inherited = true}, - [341] = + [420] = + {field_implementation, 8}, + {field_implements, 5}, + {field_implements, 6}, + {field_implements, 7}, + {field_name, 1}, + {field_parent, 3}, + [426] = + {field_async, 1}, + {field_name, 2}, + {field_parameter_list, 3}, + {field_return_type, 4}, + {field_static, 0}, + {field_type, 4, .inherited = true}, + [432] = + {field_name, 2}, + {field_parameter_list, 3}, + {field_phase_modifier, 1}, + {field_return_type, 4}, + {field_static, 0}, + {field_type, 4, .inherited = true}, + [438] = + {field_access_modifier, 0}, + {field_name, 2}, + {field_parameter_list, 3}, + {field_return_type, 4}, + {field_static, 1}, + {field_type, 4, .inherited = true}, + [444] = + {field_access_modifier, 0}, + {field_async, 2}, + {field_name, 3}, + {field_parameter_list, 4}, + {field_static, 1}, + [449] = + {field_access_modifier, 0}, + {field_name, 3}, + {field_parameter_list, 4}, + {field_phase_modifier, 2}, + {field_static, 1}, + [454] = + {field_access_modifier, 0}, + {field_async, 1}, + {field_name, 2}, + {field_parameter_list, 3}, + {field_return_type, 4}, + {field_type, 4, .inherited = true}, + [460] = + {field_access_modifier, 0}, + {field_name, 2}, + {field_parameter_list, 3}, + {field_phase_modifier, 1}, + {field_return_type, 4}, + {field_type, 4, .inherited = true}, + [466] = {field_initializer, 5}, {field_name, 2}, {field_reassignable, 1}, {field_static, 0}, {field_type, 3, .inherited = true}, - [346] = + [471] = {field_initializer, 5}, {field_name, 2}, {field_phase_modifier, 1}, {field_static, 0}, {field_type, 3, .inherited = true}, - [351] = + [476] = {field_initializer, 5}, {field_name, 2}, {field_phase_modifier, 0}, {field_reassignable, 1}, {field_type, 3, .inherited = true}, - [356] = + [481] = {field_access_modifier, 0}, {field_initializer, 5}, {field_name, 2}, {field_reassignable, 1}, {field_type, 3, .inherited = true}, - [361] = + [486] = {field_access_modifier, 0}, {field_initializer, 5}, {field_name, 2}, {field_static, 1}, {field_type, 3, .inherited = true}, - [366] = + [491] = {field_access_modifier, 0}, {field_async, 2}, {field_block, 6}, @@ -2081,7 +2322,7 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_return_type, 5}, {field_static, 1}, {field_type, 5, .inherited = true}, - [374] = + [499] = {field_access_modifier, 0}, {field_block, 6}, {field_name, 3}, @@ -2090,48 +2331,64 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_return_type, 5}, {field_static, 1}, {field_type, 5, .inherited = true}, - [382] = + [507] = {field_access_modifier, 0}, {field_name, 4}, {field_phase_modifier, 2}, {field_reassignable, 3}, {field_static, 1}, {field_type, 5, .inherited = true}, - [388] = + [513] = {field_access_modifier, 0}, {field_initializer, 5}, {field_name, 2}, {field_phase_modifier, 1}, {field_type, 3, .inherited = true}, - [393] = + [518] = + {field_access_modifier, 0}, + {field_async, 2}, + {field_name, 3}, + {field_parameter_list, 4}, + {field_return_type, 5}, + {field_static, 1}, + {field_type, 5, .inherited = true}, + [525] = + {field_access_modifier, 0}, + {field_name, 3}, + {field_parameter_list, 4}, + {field_phase_modifier, 2}, + {field_return_type, 5}, + {field_static, 1}, + {field_type, 5, .inherited = true}, + [532] = {field_initializer, 6}, {field_name, 3}, {field_phase_modifier, 1}, {field_reassignable, 2}, {field_static, 0}, {field_type, 4, .inherited = true}, - [399] = + [538] = {field_access_modifier, 0}, {field_initializer, 6}, {field_name, 3}, {field_reassignable, 2}, {field_static, 1}, {field_type, 4, .inherited = true}, - [405] = + [544] = {field_access_modifier, 0}, {field_initializer, 6}, {field_name, 3}, {field_phase_modifier, 2}, {field_static, 1}, {field_type, 4, .inherited = true}, - [411] = + [550] = {field_access_modifier, 0}, {field_initializer, 6}, {field_name, 3}, {field_phase_modifier, 1}, {field_reassignable, 2}, {field_type, 4, .inherited = true}, - [417] = + [556] = {field_access_modifier, 0}, {field_initializer, 7}, {field_name, 4}, @@ -2146,11 +2403,11 @@ static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE [48] = { [3] = alias_sym_enum_field, }, - [58] = { + [59] = { [0] = alias_sym_keyword_argument_key, [2] = alias_sym_keyword_argument_value, }, - [61] = { + [62] = { [1] = alias_sym_enum_field, }, }; @@ -2167,10 +2424,10 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [1] = 1, [2] = 2, [3] = 3, - [4] = 4, + [4] = 3, [5] = 5, - [6] = 4, - [7] = 5, + [6] = 5, + [7] = 7, [8] = 8, [9] = 9, [10] = 10, @@ -2218,33 +2475,33 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [52] = 52, [53] = 53, [54] = 54, - [55] = 29, + [55] = 55, [56] = 56, [57] = 57, [58] = 58, [59] = 59, [60] = 60, - [61] = 27, - [62] = 62, - [63] = 63, - [64] = 64, + [61] = 61, + [62] = 35, + [63] = 34, + [64] = 33, [65] = 65, - [66] = 66, + [66] = 47, [67] = 67, - [68] = 68, - [69] = 69, - [70] = 59, - [71] = 60, - [72] = 33, - [73] = 64, - [74] = 65, - [75] = 66, - [76] = 76, - [77] = 77, - [78] = 34, - [79] = 43, - [80] = 35, - [81] = 67, + [68] = 53, + [69] = 54, + [70] = 26, + [71] = 57, + [72] = 58, + [73] = 59, + [74] = 74, + [75] = 75, + [76] = 60, + [77] = 30, + [78] = 78, + [79] = 79, + [80] = 80, + [81] = 81, [82] = 82, [83] = 83, [84] = 84, @@ -2327,7 +2584,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [161] = 161, [162] = 162, [163] = 163, - [164] = 82, + [164] = 164, [165] = 165, [166] = 166, [167] = 167, @@ -2345,7 +2602,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [179] = 179, [180] = 180, [181] = 181, - [182] = 182, + [182] = 83, [183] = 183, [184] = 184, [185] = 185, @@ -2363,7 +2620,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [197] = 197, [198] = 198, [199] = 199, - [200] = 83, + [200] = 200, [201] = 201, [202] = 202, [203] = 203, @@ -2384,10 +2641,10 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [218] = 218, [219] = 219, [220] = 220, - [221] = 221, + [221] = 82, [222] = 222, [223] = 223, - [224] = 142, + [224] = 224, [225] = 225, [226] = 226, [227] = 227, @@ -2399,7 +2656,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [233] = 233, [234] = 234, [235] = 235, - [236] = 155, + [236] = 236, [237] = 237, [238] = 238, [239] = 239, @@ -2407,57 +2664,57 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [241] = 241, [242] = 242, [243] = 243, - [244] = 181, - [245] = 214, + [244] = 160, + [245] = 245, [246] = 246, [247] = 247, [248] = 248, - [249] = 184, + [249] = 249, [250] = 250, [251] = 251, [252] = 252, [253] = 253, [254] = 254, - [255] = 178, - [256] = 179, + [255] = 255, + [256] = 256, [257] = 257, [258] = 258, [259] = 259, - [260] = 260, + [260] = 173, [261] = 261, [262] = 262, - [263] = 208, + [263] = 187, [264] = 264, - [265] = 134, - [266] = 180, + [265] = 219, + [266] = 266, [267] = 267, - [268] = 268, - [269] = 209, + [268] = 155, + [269] = 269, [270] = 270, - [271] = 271, - [272] = 272, - [273] = 182, - [274] = 210, + [271] = 207, + [272] = 183, + [273] = 273, + [274] = 274, [275] = 275, [276] = 276, - [277] = 183, + [277] = 277, [278] = 278, [279] = 279, [280] = 280, - [281] = 281, + [281] = 198, [282] = 282, [283] = 283, [284] = 284, - [285] = 285, - [286] = 286, - [287] = 287, + [285] = 197, + [286] = 196, + [287] = 195, [288] = 288, - [289] = 289, + [289] = 194, [290] = 290, - [291] = 291, + [291] = 193, [292] = 292, [293] = 293, - [294] = 294, + [294] = 192, [295] = 295, [296] = 296, [297] = 297, @@ -2529,7 +2786,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [363] = 363, [364] = 364, [365] = 365, - [366] = 364, + [366] = 366, [367] = 367, [368] = 368, [369] = 369, @@ -2577,7 +2834,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [411] = 411, [412] = 412, [413] = 413, - [414] = 414, + [414] = 410, [415] = 415, [416] = 416, [417] = 417, @@ -2723,7 +2980,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [557] = 557, [558] = 558, [559] = 559, - [560] = 495, + [560] = 560, [561] = 561, [562] = 562, [563] = 563, @@ -2774,6 +3031,128 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [608] = 608, [609] = 609, [610] = 610, + [611] = 611, + [612] = 612, + [613] = 613, + [614] = 614, + [615] = 615, + [616] = 616, + [617] = 617, + [618] = 618, + [619] = 619, + [620] = 620, + [621] = 621, + [622] = 622, + [623] = 623, + [624] = 624, + [625] = 625, + [626] = 626, + [627] = 627, + [628] = 628, + [629] = 629, + [630] = 576, + [631] = 631, + [632] = 632, + [633] = 633, + [634] = 634, + [635] = 635, + [636] = 636, + [637] = 637, + [638] = 638, + [639] = 639, + [640] = 640, + [641] = 641, + [642] = 642, + [643] = 643, + [644] = 644, + [645] = 645, + [646] = 646, + [647] = 647, + [648] = 648, + [649] = 649, + [650] = 650, + [651] = 651, + [652] = 652, + [653] = 653, + [654] = 654, + [655] = 655, + [656] = 656, + [657] = 657, + [658] = 658, + [659] = 659, + [660] = 660, + [661] = 661, + [662] = 662, + [663] = 663, + [664] = 664, + [665] = 665, + [666] = 666, + [667] = 667, + [668] = 668, + [669] = 669, + [670] = 670, + [671] = 671, + [672] = 672, + [673] = 673, + [674] = 674, + [675] = 675, + [676] = 676, + [677] = 677, + [678] = 678, + [679] = 679, + [680] = 680, + [681] = 681, + [682] = 682, + [683] = 683, + [684] = 684, + [685] = 685, + [686] = 686, + [687] = 687, + [688] = 688, + [689] = 689, + [690] = 690, + [691] = 691, + [692] = 692, + [693] = 693, + [694] = 694, + [695] = 695, + [696] = 696, + [697] = 697, + [698] = 698, + [699] = 699, + [700] = 700, + [701] = 701, + [702] = 702, + [703] = 703, + [704] = 704, + [705] = 705, + [706] = 706, + [707] = 707, + [708] = 708, + [709] = 709, + [710] = 710, + [711] = 711, + [712] = 712, + [713] = 713, + [714] = 714, + [715] = 715, + [716] = 716, + [717] = 717, + [718] = 718, + [719] = 719, + [720] = 720, + [721] = 721, + [722] = 722, + [723] = 723, + [724] = 724, + [725] = 725, + [726] = 726, + [727] = 727, + [728] = 728, + [729] = 729, + [730] = 730, + [731] = 731, + [732] = 732, }; static inline bool anon_sym_BANG_character_set_1(int32_t c) { @@ -2891,6 +3270,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { case 8: if (lookahead == '/') ADVANCE(4); if (lookahead == ':') ADVANCE(38); + if (lookahead == ';') ADVANCE(33); if (lookahead == '=') ADVANCE(10); if (lookahead == '{') ADVANCE(24); if (anon_sym_BANG_character_set_1(lookahead)) SKIP(8) @@ -3321,569 +3701,601 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { END_STATE(); case 13: if (lookahead == 'f') ADVANCE(45); - if (lookahead == 'n') ADVANCE(46); + if (lookahead == 'm') ADVANCE(46); + if (lookahead == 'n') ADVANCE(47); END_STATE(); case 14: - if (lookahead == 'e') ADVANCE(47); + if (lookahead == 'e') ADVANCE(48); END_STATE(); case 15: ACCEPT_TOKEN(anon_sym_m); END_STATE(); case 16: - if (lookahead == 'e') ADVANCE(48); - if (lookahead == 'u') ADVANCE(49); + if (lookahead == 'e') ADVANCE(49); + if (lookahead == 'u') ADVANCE(50); END_STATE(); case 17: - if (lookahead == 'r') ADVANCE(50); - if (lookahead == 'u') ADVANCE(51); + if (lookahead == 'r') ADVANCE(51); + if (lookahead == 'u') ADVANCE(52); END_STATE(); case 18: - if (lookahead == 'e') ADVANCE(52); + if (lookahead == 'e') ADVANCE(53); END_STATE(); case 19: ACCEPT_TOKEN(anon_sym_s); - if (lookahead == 't') ADVANCE(53); + if (lookahead == 't') ADVANCE(54); END_STATE(); case 20: - if (lookahead == 'r') ADVANCE(54); + if (lookahead == 'r') ADVANCE(55); END_STATE(); case 21: - if (lookahead == 'a') ADVANCE(55); - if (lookahead == 'o') ADVANCE(56); + if (lookahead == 'a') ADVANCE(56); + if (lookahead == 'o') ADVANCE(57); END_STATE(); case 22: - if (lookahead == 'h') ADVANCE(57); + if (lookahead == 'h') ADVANCE(58); END_STATE(); case 23: - if (lookahead == 'r') ADVANCE(58); + if (lookahead == 'r') ADVANCE(59); END_STATE(); case 24: - if (lookahead == 'o') ADVANCE(59); + if (lookahead == 'o') ADVANCE(60); END_STATE(); case 25: - if (lookahead == 'p') ADVANCE(60); + if (lookahead == 'p') ADVANCE(61); END_STATE(); case 26: - if (lookahead == 't') ADVANCE(61); + if (lookahead == 't') ADVANCE(62); END_STATE(); case 27: - if (lookahead == 'o') ADVANCE(62); + if (lookahead == 'o') ADVANCE(63); END_STATE(); case 28: - if (lookahead == 't') ADVANCE(63); + if (lookahead == 't') ADVANCE(64); END_STATE(); case 29: - if (lookahead == 'y') ADVANCE(64); + if (lookahead == 'y') ADVANCE(65); END_STATE(); case 30: ACCEPT_TOKEN(anon_sym_as); - if (lookahead == 'y') ADVANCE(65); + if (lookahead == 'y') ADVANCE(66); END_STATE(); case 31: - if (lookahead == 'a') ADVANCE(66); + if (lookahead == 'a') ADVANCE(67); END_STATE(); case 32: - if (lookahead == 'o') ADVANCE(67); + if (lookahead == 'o') ADVANCE(68); END_STATE(); case 33: - if (lookahead == 'e') ADVANCE(68); - if (lookahead == 'i') ADVANCE(69); + if (lookahead == 'e') ADVANCE(69); + if (lookahead == 'i') ADVANCE(70); END_STATE(); case 34: - if (lookahead == 't') ADVANCE(70); + if (lookahead == 't') ADVANCE(71); END_STATE(); case 35: - if (lookahead == 'a') ADVANCE(71); + if (lookahead == 'a') ADVANCE(72); END_STATE(); case 36: - if (lookahead == 'n') ADVANCE(72); + if (lookahead == 'n') ADVANCE(73); END_STATE(); case 37: - if (lookahead == 'f') ADVANCE(73); + if (lookahead == 'f') ADVANCE(74); END_STATE(); case 38: - if (lookahead == 'r') ADVANCE(74); + if (lookahead == 'r') ADVANCE(75); END_STATE(); case 39: - if (lookahead == 'i') ADVANCE(75); - if (lookahead == 's') ADVANCE(76); + if (lookahead == 'i') ADVANCE(76); + if (lookahead == 's') ADVANCE(77); END_STATE(); case 40: - if (lookahead == 'u') ADVANCE(77); + if (lookahead == 'u') ADVANCE(78); END_STATE(); case 41: - if (lookahead == 't') ADVANCE(78); + if (lookahead == 't') ADVANCE(79); END_STATE(); case 42: - if (lookahead == 'l') ADVANCE(79); + if (lookahead == 'l') ADVANCE(80); END_STATE(); case 43: - if (lookahead == 'n') ADVANCE(80); + if (lookahead == 'n') ADVANCE(81); END_STATE(); case 44: - if (lookahead == 'r') ADVANCE(81); + if (lookahead == 'r') ADVANCE(82); END_STATE(); case 45: ACCEPT_TOKEN(anon_sym_if); END_STATE(); case 46: - ACCEPT_TOKEN(anon_sym_in); - if (lookahead == 'f') ADVANCE(82); - if (lookahead == 'i') ADVANCE(83); + if (lookahead == 'p') ADVANCE(83); END_STATE(); case 47: - if (lookahead == 't') ADVANCE(84); + ACCEPT_TOKEN(anon_sym_in); + if (lookahead == 'f') ADVANCE(84); + if (lookahead == 'i') ADVANCE(85); + if (lookahead == 't') ADVANCE(86); END_STATE(); case 48: - if (lookahead == 'w') ADVANCE(85); + if (lookahead == 't') ADVANCE(87); END_STATE(); case 49: - if (lookahead == 'm') ADVANCE(86); + if (lookahead == 'w') ADVANCE(88); END_STATE(); case 50: - if (lookahead == 'i') ADVANCE(87); - if (lookahead == 'o') ADVANCE(88); + if (lookahead == 'm') ADVANCE(89); END_STATE(); case 51: - if (lookahead == 'b') ADVANCE(89); + if (lookahead == 'i') ADVANCE(90); + if (lookahead == 'o') ADVANCE(91); END_STATE(); case 52: - if (lookahead == 's') ADVANCE(90); - if (lookahead == 't') ADVANCE(91); + if (lookahead == 'b') ADVANCE(92); END_STATE(); case 53: - if (lookahead == 'a') ADVANCE(92); - if (lookahead == 'r') ADVANCE(93); + if (lookahead == 's') ADVANCE(93); + if (lookahead == 't') ADVANCE(94); END_STATE(); case 54: - if (lookahead == 'u') ADVANCE(94); - if (lookahead == 'y') ADVANCE(95); + if (lookahead == 'a') ADVANCE(95); + if (lookahead == 'r') ADVANCE(96); END_STATE(); case 55: - if (lookahead == 'r') ADVANCE(96); + if (lookahead == 'u') ADVANCE(97); + if (lookahead == 'y') ADVANCE(98); END_STATE(); case 56: - if (lookahead == 'i') ADVANCE(97); + if (lookahead == 'r') ADVANCE(99); END_STATE(); case 57: - if (lookahead == 'i') ADVANCE(98); + if (lookahead == 'i') ADVANCE(100); END_STATE(); case 58: - if (lookahead == 'a') ADVANCE(99); + if (lookahead == 'i') ADVANCE(101); END_STATE(); case 59: - if (lookahead == 'n') ADVANCE(100); + if (lookahead == 'a') ADVANCE(102); END_STATE(); case 60: - ACCEPT_TOKEN(anon_sym_Map); + if (lookahead == 'n') ADVANCE(103); END_STATE(); case 61: - if (lookahead == 'A') ADVANCE(101); - if (lookahead == 'J') ADVANCE(102); - if (lookahead == 'M') ADVANCE(103); - if (lookahead == 'S') ADVANCE(104); + ACCEPT_TOKEN(anon_sym_Map); END_STATE(); case 62: - if (lookahead == 'm') ADVANCE(105); + if (lookahead == 'A') ADVANCE(104); + if (lookahead == 'J') ADVANCE(105); + if (lookahead == 'M') ADVANCE(106); + if (lookahead == 'S') ADVANCE(107); END_STATE(); case 63: - ACCEPT_TOKEN(anon_sym_Set); + if (lookahead == 'm') ADVANCE(108); END_STATE(); case 64: - ACCEPT_TOKEN(anon_sym_any); + ACCEPT_TOKEN(anon_sym_Set); END_STATE(); case 65: - if (lookahead == 'n') ADVANCE(106); + ACCEPT_TOKEN(anon_sym_any); END_STATE(); case 66: - if (lookahead == 'i') ADVANCE(107); + if (lookahead == 'n') ADVANCE(109); END_STATE(); case 67: - if (lookahead == 'l') ADVANCE(108); + if (lookahead == 'i') ADVANCE(110); END_STATE(); case 68: - if (lookahead == 'a') ADVANCE(109); + if (lookahead == 'l') ADVANCE(111); END_STATE(); case 69: - if (lookahead == 'n') ADVANCE(110); + if (lookahead == 'a') ADVANCE(112); END_STATE(); case 70: - if (lookahead == 'c') ADVANCE(111); + if (lookahead == 'n') ADVANCE(113); END_STATE(); case 71: - if (lookahead == 's') ADVANCE(112); + if (lookahead == 'c') ADVANCE(114); END_STATE(); case 72: - if (lookahead == 't') ADVANCE(113); + if (lookahead == 's') ADVANCE(115); END_STATE(); case 73: - if (lookahead == 'e') ADVANCE(114); + if (lookahead == 't') ADVANCE(116); END_STATE(); case 74: - if (lookahead == 'a') ADVANCE(115); + if (lookahead == 'e') ADVANCE(117); END_STATE(); case 75: - if (lookahead == 'f') ADVANCE(116); + if (lookahead == 'a') ADVANCE(118); END_STATE(); case 76: - if (lookahead == 'e') ADVANCE(117); + if (lookahead == 'f') ADVANCE(119); END_STATE(); case 77: - if (lookahead == 'm') ADVANCE(118); + if (lookahead == 'e') ADVANCE(120); END_STATE(); case 78: - if (lookahead == 'e') ADVANCE(119); + if (lookahead == 'm') ADVANCE(121); END_STATE(); case 79: - if (lookahead == 's') ADVANCE(120); + if (lookahead == 'e') ADVANCE(122); END_STATE(); case 80: - if (lookahead == 'a') ADVANCE(121); + if (lookahead == 's') ADVANCE(123); END_STATE(); case 81: - ACCEPT_TOKEN(anon_sym_for); + if (lookahead == 'a') ADVANCE(124); END_STATE(); case 82: - if (lookahead == 'l') ADVANCE(122); + ACCEPT_TOKEN(anon_sym_for); END_STATE(); case 83: - if (lookahead == 't') ADVANCE(123); + if (lookahead == 'l') ADVANCE(125); END_STATE(); case 84: - ACCEPT_TOKEN(anon_sym_let); + if (lookahead == 'l') ADVANCE(126); END_STATE(); case 85: - ACCEPT_TOKEN(anon_sym_new); + if (lookahead == 't') ADVANCE(127); END_STATE(); case 86: - ACCEPT_TOKEN(anon_sym_num); + if (lookahead == 'e') ADVANCE(128); END_STATE(); case 87: - if (lookahead == 'v') ADVANCE(124); + ACCEPT_TOKEN(anon_sym_let); END_STATE(); case 88: - if (lookahead == 't') ADVANCE(125); + ACCEPT_TOKEN(anon_sym_new); END_STATE(); case 89: - if (lookahead == 'l') ADVANCE(126); + ACCEPT_TOKEN(anon_sym_num); END_STATE(); case 90: - if (lookahead == 'o') ADVANCE(127); + if (lookahead == 'v') ADVANCE(129); END_STATE(); case 91: - if (lookahead == 'u') ADVANCE(128); + if (lookahead == 't') ADVANCE(130); END_STATE(); case 92: - if (lookahead == 't') ADVANCE(129); + if (lookahead == 'l') ADVANCE(131); END_STATE(); case 93: - ACCEPT_TOKEN(anon_sym_str); - if (lookahead == 'u') ADVANCE(130); + if (lookahead == 'o') ADVANCE(132); END_STATE(); case 94: - if (lookahead == 'e') ADVANCE(131); + if (lookahead == 'u') ADVANCE(133); END_STATE(); case 95: - ACCEPT_TOKEN(anon_sym_try); + if (lookahead == 't') ADVANCE(134); END_STATE(); case 96: - ACCEPT_TOKEN(sym_reassignable); + ACCEPT_TOKEN(anon_sym_str); + if (lookahead == 'u') ADVANCE(135); END_STATE(); case 97: - if (lookahead == 'd') ADVANCE(132); + if (lookahead == 'e') ADVANCE(136); END_STATE(); case 98: - if (lookahead == 'l') ADVANCE(133); + ACCEPT_TOKEN(anon_sym_try); END_STATE(); case 99: - if (lookahead == 'y') ADVANCE(134); + ACCEPT_TOKEN(sym_reassignable); END_STATE(); case 100: - ACCEPT_TOKEN(anon_sym_Json); + if (lookahead == 'd') ADVANCE(137); END_STATE(); case 101: - if (lookahead == 'r') ADVANCE(135); + if (lookahead == 'l') ADVANCE(138); END_STATE(); case 102: - if (lookahead == 's') ADVANCE(136); + if (lookahead == 'y') ADVANCE(139); END_STATE(); case 103: - if (lookahead == 'a') ADVANCE(137); + ACCEPT_TOKEN(anon_sym_Json); END_STATE(); case 104: - if (lookahead == 'e') ADVANCE(138); + if (lookahead == 'r') ADVANCE(140); END_STATE(); case 105: - if (lookahead == 'i') ADVANCE(139); + if (lookahead == 's') ADVANCE(141); END_STATE(); case 106: - if (lookahead == 'c') ADVANCE(140); + if (lookahead == 'a') ADVANCE(142); END_STATE(); case 107: - if (lookahead == 't') ADVANCE(141); + if (lookahead == 'e') ADVANCE(143); END_STATE(); case 108: - ACCEPT_TOKEN(anon_sym_bool); + if (lookahead == 'i') ADVANCE(144); END_STATE(); case 109: - if (lookahead == 'k') ADVANCE(142); + if (lookahead == 'c') ADVANCE(145); END_STATE(); case 110: - if (lookahead == 'g') ADVANCE(143); + if (lookahead == 't') ADVANCE(146); END_STATE(); case 111: - if (lookahead == 'h') ADVANCE(144); + ACCEPT_TOKEN(anon_sym_bool); END_STATE(); case 112: - if (lookahead == 's') ADVANCE(145); + if (lookahead == 'k') ADVANCE(147); END_STATE(); case 113: - if (lookahead == 'i') ADVANCE(146); + if (lookahead == 'g') ADVANCE(148); END_STATE(); case 114: - if (lookahead == 'r') ADVANCE(147); + if (lookahead == 'h') ADVANCE(149); END_STATE(); case 115: - if (lookahead == 't') ADVANCE(148); + if (lookahead == 's') ADVANCE(150); END_STATE(); case 116: - ACCEPT_TOKEN(anon_sym_elif); + if (lookahead == 'i') ADVANCE(151); END_STATE(); case 117: - ACCEPT_TOKEN(anon_sym_else); + if (lookahead == 'r') ADVANCE(152); END_STATE(); case 118: - ACCEPT_TOKEN(anon_sym_enum); + if (lookahead == 't') ADVANCE(153); END_STATE(); case 119: - if (lookahead == 'n') ADVANCE(149); + ACCEPT_TOKEN(anon_sym_elif); END_STATE(); case 120: - if (lookahead == 'e') ADVANCE(150); + ACCEPT_TOKEN(anon_sym_else); END_STATE(); case 121: - if (lookahead == 'l') ADVANCE(151); + ACCEPT_TOKEN(anon_sym_enum); END_STATE(); case 122: - if (lookahead == 'i') ADVANCE(152); + if (lookahead == 'n') ADVANCE(154); END_STATE(); case 123: - ACCEPT_TOKEN(anon_sym_init); + if (lookahead == 'e') ADVANCE(155); END_STATE(); case 124: - if (lookahead == 'a') ADVANCE(153); + if (lookahead == 'l') ADVANCE(156); END_STATE(); case 125: - if (lookahead == 'e') ADVANCE(154); + ACCEPT_TOKEN(anon_sym_impl); END_STATE(); case 126: - if (lookahead == 'i') ADVANCE(155); + if (lookahead == 'i') ADVANCE(157); END_STATE(); case 127: - if (lookahead == 'u') ADVANCE(156); + ACCEPT_TOKEN(anon_sym_init); END_STATE(); case 128: - if (lookahead == 'r') ADVANCE(157); + if (lookahead == 'r') ADVANCE(158); END_STATE(); case 129: - if (lookahead == 'i') ADVANCE(158); + if (lookahead == 'a') ADVANCE(159); END_STATE(); case 130: - if (lookahead == 'c') ADVANCE(159); + if (lookahead == 'e') ADVANCE(160); END_STATE(); case 131: - ACCEPT_TOKEN(anon_sym_true); + if (lookahead == 'i') ADVANCE(161); END_STATE(); case 132: - ACCEPT_TOKEN(anon_sym_void); + if (lookahead == 'u') ADVANCE(162); END_STATE(); case 133: - if (lookahead == 'e') ADVANCE(160); + if (lookahead == 'r') ADVANCE(163); END_STATE(); case 134: - ACCEPT_TOKEN(anon_sym_Array); + if (lookahead == 'i') ADVANCE(164); END_STATE(); case 135: - if (lookahead == 'r') ADVANCE(161); + if (lookahead == 'c') ADVANCE(165); END_STATE(); case 136: - if (lookahead == 'o') ADVANCE(162); + ACCEPT_TOKEN(anon_sym_true); END_STATE(); case 137: - if (lookahead == 'p') ADVANCE(163); + ACCEPT_TOKEN(anon_sym_void); END_STATE(); case 138: - if (lookahead == 't') ADVANCE(164); + if (lookahead == 'e') ADVANCE(166); END_STATE(); case 139: - if (lookahead == 's') ADVANCE(165); + ACCEPT_TOKEN(anon_sym_Array); END_STATE(); case 140: - ACCEPT_TOKEN(sym_async_modifier); + if (lookahead == 'r') ADVANCE(167); END_STATE(); case 141: - ACCEPT_TOKEN(anon_sym_await); + if (lookahead == 'o') ADVANCE(168); END_STATE(); case 142: - ACCEPT_TOKEN(anon_sym_break); + if (lookahead == 'p') ADVANCE(169); END_STATE(); case 143: - ACCEPT_TOKEN(anon_sym_bring); + if (lookahead == 't') ADVANCE(170); END_STATE(); case 144: - ACCEPT_TOKEN(anon_sym_catch); + if (lookahead == 's') ADVANCE(171); END_STATE(); case 145: - ACCEPT_TOKEN(anon_sym_class); + ACCEPT_TOKEN(sym_async_modifier); END_STATE(); case 146: - if (lookahead == 'n') ADVANCE(166); + ACCEPT_TOKEN(anon_sym_await); END_STATE(); case 147: - ACCEPT_TOKEN(anon_sym_defer); + ACCEPT_TOKEN(anon_sym_break); END_STATE(); case 148: - if (lookahead == 'i') ADVANCE(167); + ACCEPT_TOKEN(anon_sym_bring); END_STATE(); case 149: - if (lookahead == 'd') ADVANCE(168); + ACCEPT_TOKEN(anon_sym_catch); END_STATE(); case 150: - ACCEPT_TOKEN(anon_sym_false); + ACCEPT_TOKEN(anon_sym_class); END_STATE(); case 151: - if (lookahead == 'l') ADVANCE(169); + if (lookahead == 'n') ADVANCE(172); END_STATE(); case 152: - if (lookahead == 'g') ADVANCE(170); + ACCEPT_TOKEN(anon_sym_defer); END_STATE(); case 153: - if (lookahead == 't') ADVANCE(171); + if (lookahead == 'i') ADVANCE(173); END_STATE(); case 154: - if (lookahead == 'c') ADVANCE(172); + if (lookahead == 'd') ADVANCE(174); END_STATE(); case 155: - if (lookahead == 'c') ADVANCE(173); + ACCEPT_TOKEN(anon_sym_false); END_STATE(); case 156: - if (lookahead == 'r') ADVANCE(174); + if (lookahead == 'l') ADVANCE(175); END_STATE(); case 157: - if (lookahead == 'n') ADVANCE(175); + if (lookahead == 'g') ADVANCE(176); END_STATE(); case 158: - if (lookahead == 'c') ADVANCE(176); + if (lookahead == 'f') ADVANCE(177); END_STATE(); case 159: - if (lookahead == 't') ADVANCE(177); + if (lookahead == 't') ADVANCE(178); END_STATE(); case 160: - ACCEPT_TOKEN(anon_sym_while); + if (lookahead == 'c') ADVANCE(179); END_STATE(); case 161: - if (lookahead == 'a') ADVANCE(178); + if (lookahead == 'c') ADVANCE(180); END_STATE(); case 162: - if (lookahead == 'n') ADVANCE(179); + if (lookahead == 'r') ADVANCE(181); END_STATE(); case 163: - ACCEPT_TOKEN(anon_sym_MutMap); + if (lookahead == 'n') ADVANCE(182); END_STATE(); case 164: - ACCEPT_TOKEN(anon_sym_MutSet); + if (lookahead == 'c') ADVANCE(183); END_STATE(); case 165: - if (lookahead == 'e') ADVANCE(180); + if (lookahead == 't') ADVANCE(184); END_STATE(); case 166: - if (lookahead == 'u') ADVANCE(181); + ACCEPT_TOKEN(anon_sym_while); END_STATE(); case 167: - if (lookahead == 'o') ADVANCE(182); + if (lookahead == 'a') ADVANCE(185); END_STATE(); case 168: - if (lookahead == 's') ADVANCE(183); + if (lookahead == 'n') ADVANCE(186); END_STATE(); case 169: - if (lookahead == 'y') ADVANCE(184); + ACCEPT_TOKEN(anon_sym_MutMap); END_STATE(); case 170: - if (lookahead == 'h') ADVANCE(185); + ACCEPT_TOKEN(anon_sym_MutSet); END_STATE(); case 171: - if (lookahead == 'e') ADVANCE(186); + if (lookahead == 'e') ADVANCE(187); END_STATE(); case 172: - if (lookahead == 't') ADVANCE(187); + if (lookahead == 'u') ADVANCE(188); END_STATE(); case 173: - ACCEPT_TOKEN(anon_sym_public); + if (lookahead == 'o') ADVANCE(189); END_STATE(); case 174: - if (lookahead == 'c') ADVANCE(188); + if (lookahead == 's') ADVANCE(190); END_STATE(); case 175: - ACCEPT_TOKEN(anon_sym_return); + if (lookahead == 'y') ADVANCE(191); END_STATE(); case 176: - ACCEPT_TOKEN(sym_static); + if (lookahead == 'h') ADVANCE(192); END_STATE(); case 177: - ACCEPT_TOKEN(anon_sym_struct); + if (lookahead == 'a') ADVANCE(193); END_STATE(); case 178: - if (lookahead == 'y') ADVANCE(189); + if (lookahead == 'e') ADVANCE(194); END_STATE(); case 179: - ACCEPT_TOKEN(anon_sym_MutJson); + if (lookahead == 't') ADVANCE(195); END_STATE(); case 180: - ACCEPT_TOKEN(anon_sym_Promise); + ACCEPT_TOKEN(anon_sym_public); END_STATE(); case 181: - if (lookahead == 'e') ADVANCE(190); + if (lookahead == 'c') ADVANCE(196); END_STATE(); case 182: - if (lookahead == 'n') ADVANCE(191); + ACCEPT_TOKEN(anon_sym_return); END_STATE(); case 183: - ACCEPT_TOKEN(anon_sym_extends); + ACCEPT_TOKEN(sym_static); END_STATE(); case 184: - ACCEPT_TOKEN(anon_sym_finally); + ACCEPT_TOKEN(anon_sym_struct); END_STATE(); case 185: - if (lookahead == 't') ADVANCE(192); + if (lookahead == 'y') ADVANCE(197); END_STATE(); case 186: - ACCEPT_TOKEN(anon_sym_private); + ACCEPT_TOKEN(anon_sym_MutJson); END_STATE(); case 187: - if (lookahead == 'e') ADVANCE(193); + ACCEPT_TOKEN(anon_sym_Promise); END_STATE(); case 188: - if (lookahead == 'e') ADVANCE(194); + if (lookahead == 'e') ADVANCE(198); END_STATE(); case 189: - ACCEPT_TOKEN(anon_sym_MutArray); + if (lookahead == 'n') ADVANCE(199); END_STATE(); case 190: - ACCEPT_TOKEN(anon_sym_continue); + ACCEPT_TOKEN(anon_sym_extends); END_STATE(); case 191: - ACCEPT_TOKEN(anon_sym_duration); + ACCEPT_TOKEN(anon_sym_finally); END_STATE(); case 192: - ACCEPT_TOKEN(anon_sym_inflight); + if (lookahead == 't') ADVANCE(200); END_STATE(); case 193: - if (lookahead == 'd') ADVANCE(195); + if (lookahead == 'c') ADVANCE(201); END_STATE(); case 194: - ACCEPT_TOKEN(anon_sym_resource); + ACCEPT_TOKEN(anon_sym_private); END_STATE(); case 195: + if (lookahead == 'e') ADVANCE(202); + END_STATE(); + case 196: + if (lookahead == 'e') ADVANCE(203); + END_STATE(); + case 197: + ACCEPT_TOKEN(anon_sym_MutArray); + END_STATE(); + case 198: + ACCEPT_TOKEN(anon_sym_continue); + END_STATE(); + case 199: + ACCEPT_TOKEN(anon_sym_duration); + END_STATE(); + case 200: + ACCEPT_TOKEN(anon_sym_inflight); + END_STATE(); + case 201: + if (lookahead == 'e') ADVANCE(204); + END_STATE(); + case 202: + if (lookahead == 'd') ADVANCE(205); + END_STATE(); + case 203: + ACCEPT_TOKEN(anon_sym_resource); + END_STATE(); + case 204: + ACCEPT_TOKEN(anon_sym_interface); + END_STATE(); + case 205: ACCEPT_TOKEN(anon_sym_protected); END_STATE(); default: @@ -4025,28 +4437,28 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [130] = {.lex_state = 22}, [131] = {.lex_state = 22}, [132] = {.lex_state = 22}, - [133] = {.lex_state = 1}, - [134] = {.lex_state = 1}, + [133] = {.lex_state = 22}, + [134] = {.lex_state = 22}, [135] = {.lex_state = 22}, [136] = {.lex_state = 22}, - [137] = {.lex_state = 1}, - [138] = {.lex_state = 1}, + [137] = {.lex_state = 22}, + [138] = {.lex_state = 22}, [139] = {.lex_state = 22}, [140] = {.lex_state = 22}, - [141] = {.lex_state = 1}, - [142] = {.lex_state = 1}, + [141] = {.lex_state = 22}, + [142] = {.lex_state = 22}, [143] = {.lex_state = 22}, - [144] = {.lex_state = 1}, - [145] = {.lex_state = 1}, - [146] = {.lex_state = 1}, - [147] = {.lex_state = 1}, - [148] = {.lex_state = 1}, - [149] = {.lex_state = 1}, - [150] = {.lex_state = 1}, - [151] = {.lex_state = 1}, - [152] = {.lex_state = 1}, - [153] = {.lex_state = 1}, - [154] = {.lex_state = 1}, + [144] = {.lex_state = 22}, + [145] = {.lex_state = 22}, + [146] = {.lex_state = 22}, + [147] = {.lex_state = 22}, + [148] = {.lex_state = 22}, + [149] = {.lex_state = 22}, + [150] = {.lex_state = 22}, + [151] = {.lex_state = 22}, + [152] = {.lex_state = 22}, + [153] = {.lex_state = 22}, + [154] = {.lex_state = 22}, [155] = {.lex_state = 1}, [156] = {.lex_state = 1}, [157] = {.lex_state = 1}, @@ -4054,7 +4466,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [159] = {.lex_state = 1}, [160] = {.lex_state = 1}, [161] = {.lex_state = 1}, - [162] = {.lex_state = 1}, + [162] = {.lex_state = 22}, [163] = {.lex_state = 1}, [164] = {.lex_state = 1}, [165] = {.lex_state = 1}, @@ -4126,7 +4538,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [231] = {.lex_state = 1}, [232] = {.lex_state = 1}, [233] = {.lex_state = 1}, - [234] = {.lex_state = 22}, + [234] = {.lex_state = 1}, [235] = {.lex_state = 1}, [236] = {.lex_state = 1}, [237] = {.lex_state = 1}, @@ -4148,7 +4560,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [253] = {.lex_state = 1}, [254] = {.lex_state = 1}, [255] = {.lex_state = 1}, - [256] = {.lex_state = 1}, + [256] = {.lex_state = 22}, [257] = {.lex_state = 1}, [258] = {.lex_state = 1}, [259] = {.lex_state = 1}, @@ -4176,24 +4588,24 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [281] = {.lex_state = 1}, [282] = {.lex_state = 1}, [283] = {.lex_state = 1}, - [284] = {.lex_state = 22}, - [285] = {.lex_state = 22}, - [286] = {.lex_state = 22}, - [287] = {.lex_state = 22}, - [288] = {.lex_state = 22}, - [289] = {.lex_state = 22}, - [290] = {.lex_state = 22}, - [291] = {.lex_state = 22}, - [292] = {.lex_state = 22}, - [293] = {.lex_state = 22}, - [294] = {.lex_state = 22}, - [295] = {.lex_state = 22}, - [296] = {.lex_state = 22}, - [297] = {.lex_state = 22}, - [298] = {.lex_state = 22}, - [299] = {.lex_state = 22}, - [300] = {.lex_state = 22}, - [301] = {.lex_state = 22}, + [284] = {.lex_state = 1}, + [285] = {.lex_state = 1}, + [286] = {.lex_state = 1}, + [287] = {.lex_state = 1}, + [288] = {.lex_state = 1}, + [289] = {.lex_state = 1}, + [290] = {.lex_state = 1}, + [291] = {.lex_state = 1}, + [292] = {.lex_state = 1}, + [293] = {.lex_state = 1}, + [294] = {.lex_state = 1}, + [295] = {.lex_state = 1}, + [296] = {.lex_state = 1}, + [297] = {.lex_state = 1}, + [298] = {.lex_state = 1}, + [299] = {.lex_state = 1}, + [300] = {.lex_state = 1}, + [301] = {.lex_state = 1}, [302] = {.lex_state = 22}, [303] = {.lex_state = 22}, [304] = {.lex_state = 22}, @@ -4257,10 +4669,10 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [362] = {.lex_state = 22}, [363] = {.lex_state = 22}, [364] = {.lex_state = 22}, - [365] = {.lex_state = 2}, + [365] = {.lex_state = 22}, [366] = {.lex_state = 22}, - [367] = {.lex_state = 2}, - [368] = {.lex_state = 2}, + [367] = {.lex_state = 22}, + [368] = {.lex_state = 22}, [369] = {.lex_state = 22}, [370] = {.lex_state = 22}, [371] = {.lex_state = 22}, @@ -4271,238 +4683,360 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [376] = {.lex_state = 22}, [377] = {.lex_state = 22}, [378] = {.lex_state = 22}, - [379] = {.lex_state = 0}, - [380] = {.lex_state = 0}, + [379] = {.lex_state = 22}, + [380] = {.lex_state = 22}, [381] = {.lex_state = 22}, - [382] = {.lex_state = 0}, + [382] = {.lex_state = 22}, [383] = {.lex_state = 22}, [384] = {.lex_state = 22}, - [385] = {.lex_state = 0}, + [385] = {.lex_state = 22}, [386] = {.lex_state = 22}, [387] = {.lex_state = 22}, - [388] = {.lex_state = 2}, + [388] = {.lex_state = 22}, [389] = {.lex_state = 22}, [390] = {.lex_state = 22}, - [391] = {.lex_state = 0}, - [392] = {.lex_state = 0}, - [393] = {.lex_state = 0}, - [394] = {.lex_state = 0}, - [395] = {.lex_state = 0}, - [396] = {.lex_state = 0}, - [397] = {.lex_state = 0}, + [391] = {.lex_state = 22}, + [392] = {.lex_state = 22}, + [393] = {.lex_state = 22}, + [394] = {.lex_state = 22}, + [395] = {.lex_state = 22}, + [396] = {.lex_state = 22}, + [397] = {.lex_state = 22}, [398] = {.lex_state = 22}, - [399] = {.lex_state = 0}, - [400] = {.lex_state = 0}, + [399] = {.lex_state = 22}, + [400] = {.lex_state = 22}, [401] = {.lex_state = 22}, - [402] = {.lex_state = 0}, - [403] = {.lex_state = 0}, - [404] = {.lex_state = 0}, - [405] = {.lex_state = 0}, - [406] = {.lex_state = 0}, - [407] = {.lex_state = 0}, + [402] = {.lex_state = 22}, + [403] = {.lex_state = 22}, + [404] = {.lex_state = 22}, + [405] = {.lex_state = 22}, + [406] = {.lex_state = 22}, + [407] = {.lex_state = 22}, [408] = {.lex_state = 22}, - [409] = {.lex_state = 22}, + [409] = {.lex_state = 2}, [410] = {.lex_state = 22}, [411] = {.lex_state = 22}, - [412] = {.lex_state = 22}, + [412] = {.lex_state = 2}, [413] = {.lex_state = 22}, [414] = {.lex_state = 22}, - [415] = {.lex_state = 0}, - [416] = {.lex_state = 0}, - [417] = {.lex_state = 0}, - [418] = {.lex_state = 8}, + [415] = {.lex_state = 2}, + [416] = {.lex_state = 22}, + [417] = {.lex_state = 22}, + [418] = {.lex_state = 22}, [419] = {.lex_state = 22}, [420] = {.lex_state = 22}, - [421] = {.lex_state = 0}, - [422] = {.lex_state = 8}, - [423] = {.lex_state = 0}, - [424] = {.lex_state = 8}, - [425] = {.lex_state = 1}, + [421] = {.lex_state = 22}, + [422] = {.lex_state = 22}, + [423] = {.lex_state = 22}, + [424] = {.lex_state = 22}, + [425] = {.lex_state = 22}, [426] = {.lex_state = 22}, [427] = {.lex_state = 0}, - [428] = {.lex_state = 0}, - [429] = {.lex_state = 22}, - [430] = {.lex_state = 22}, + [428] = {.lex_state = 22}, + [429] = {.lex_state = 0}, + [430] = {.lex_state = 0}, [431] = {.lex_state = 22}, - [432] = {.lex_state = 8}, - [433] = {.lex_state = 0}, - [434] = {.lex_state = 22}, + [432] = {.lex_state = 0}, + [433] = {.lex_state = 22}, + [434] = {.lex_state = 0}, [435] = {.lex_state = 0}, [436] = {.lex_state = 0}, - [437] = {.lex_state = 1}, + [437] = {.lex_state = 0}, [438] = {.lex_state = 22}, - [439] = {.lex_state = 8}, + [439] = {.lex_state = 22}, [440] = {.lex_state = 0}, - [441] = {.lex_state = 22}, + [441] = {.lex_state = 0}, [442] = {.lex_state = 0}, [443] = {.lex_state = 0}, [444] = {.lex_state = 22}, [445] = {.lex_state = 0}, - [446] = {.lex_state = 0}, + [446] = {.lex_state = 8}, [447] = {.lex_state = 0}, [448] = {.lex_state = 0}, [449] = {.lex_state = 0}, [450] = {.lex_state = 0}, - [451] = {.lex_state = 0}, + [451] = {.lex_state = 22}, [452] = {.lex_state = 0}, - [453] = {.lex_state = 0}, - [454] = {.lex_state = 22}, - [455] = {.lex_state = 8}, + [453] = {.lex_state = 22}, + [454] = {.lex_state = 0}, + [455] = {.lex_state = 0}, [456] = {.lex_state = 0}, - [457] = {.lex_state = 0}, - [458] = {.lex_state = 0}, + [457] = {.lex_state = 22}, + [458] = {.lex_state = 22}, [459] = {.lex_state = 0}, - [460] = {.lex_state = 22}, - [461] = {.lex_state = 0}, - [462] = {.lex_state = 0}, - [463] = {.lex_state = 0}, - [464] = {.lex_state = 22}, + [460] = {.lex_state = 0}, + [461] = {.lex_state = 22}, + [462] = {.lex_state = 22}, + [463] = {.lex_state = 2}, + [464] = {.lex_state = 0}, [465] = {.lex_state = 22}, [466] = {.lex_state = 0}, [467] = {.lex_state = 0}, - [468] = {.lex_state = 0}, + [468] = {.lex_state = 22}, [469] = {.lex_state = 0}, [470] = {.lex_state = 0}, - [471] = {.lex_state = 22}, - [472] = {.lex_state = 0}, + [471] = {.lex_state = 8}, + [472] = {.lex_state = 8}, [473] = {.lex_state = 0}, [474] = {.lex_state = 0}, [475] = {.lex_state = 22}, - [476] = {.lex_state = 0}, - [477] = {.lex_state = 22}, - [478] = {.lex_state = 0}, - [479] = {.lex_state = 22}, - [480] = {.lex_state = 1}, - [481] = {.lex_state = 1}, - [482] = {.lex_state = 1}, + [476] = {.lex_state = 22}, + [477] = {.lex_state = 0}, + [478] = {.lex_state = 22}, + [479] = {.lex_state = 0}, + [480] = {.lex_state = 22}, + [481] = {.lex_state = 22}, + [482] = {.lex_state = 0}, [483] = {.lex_state = 0}, [484] = {.lex_state = 0}, - [485] = {.lex_state = 1}, - [486] = {.lex_state = 1}, - [487] = {.lex_state = 0}, - [488] = {.lex_state = 0}, - [489] = {.lex_state = 1}, - [490] = {.lex_state = 1}, + [485] = {.lex_state = 22}, + [486] = {.lex_state = 0}, + [487] = {.lex_state = 8}, + [488] = {.lex_state = 22}, + [489] = {.lex_state = 22}, + [490] = {.lex_state = 0}, [491] = {.lex_state = 0}, [492] = {.lex_state = 0}, - [493] = {.lex_state = 0}, + [493] = {.lex_state = 22}, [494] = {.lex_state = 22}, - [495] = {.lex_state = 0}, + [495] = {.lex_state = 22}, [496] = {.lex_state = 22}, - [497] = {.lex_state = 0}, - [498] = {.lex_state = 0}, + [497] = {.lex_state = 22}, + [498] = {.lex_state = 22}, [499] = {.lex_state = 0}, - [500] = {.lex_state = 22}, - [501] = {.lex_state = 0}, + [500] = {.lex_state = 0}, + [501] = {.lex_state = 22}, [502] = {.lex_state = 0}, - [503] = {.lex_state = 0}, + [503] = {.lex_state = 8}, [504] = {.lex_state = 0}, [505] = {.lex_state = 0}, - [506] = {.lex_state = 1}, - [507] = {.lex_state = 1}, + [506] = {.lex_state = 0}, + [507] = {.lex_state = 0}, [508] = {.lex_state = 22}, - [509] = {.lex_state = 22}, + [509] = {.lex_state = 0}, [510] = {.lex_state = 0}, - [511] = {.lex_state = 0}, - [512] = {.lex_state = 1}, - [513] = {.lex_state = 0}, + [511] = {.lex_state = 22}, + [512] = {.lex_state = 8}, + [513] = {.lex_state = 1}, [514] = {.lex_state = 0}, - [515] = {.lex_state = 0}, - [516] = {.lex_state = 0}, - [517] = {.lex_state = 22}, + [515] = {.lex_state = 22}, + [516] = {.lex_state = 22}, + [517] = {.lex_state = 0}, [518] = {.lex_state = 0}, - [519] = {.lex_state = 0}, - [520] = {.lex_state = 0}, + [519] = {.lex_state = 22}, + [520] = {.lex_state = 22}, [521] = {.lex_state = 0}, [522] = {.lex_state = 0}, - [523] = {.lex_state = 1}, + [523] = {.lex_state = 22}, [524] = {.lex_state = 0}, [525] = {.lex_state = 22}, [526] = {.lex_state = 0}, - [527] = {.lex_state = 0}, + [527] = {.lex_state = 22}, [528] = {.lex_state = 0}, [529] = {.lex_state = 0}, - [530] = {.lex_state = 0}, - [531] = {.lex_state = 0}, - [532] = {.lex_state = 22}, + [530] = {.lex_state = 22}, + [531] = {.lex_state = 22}, + [532] = {.lex_state = 0}, [533] = {.lex_state = 0}, [534] = {.lex_state = 0}, - [535] = {.lex_state = 22}, - [536] = {.lex_state = 22}, + [535] = {.lex_state = 0}, + [536] = {.lex_state = 0}, [537] = {.lex_state = 0}, [538] = {.lex_state = 1}, - [539] = {.lex_state = 0}, - [540] = {.lex_state = 1}, + [539] = {.lex_state = 22}, + [540] = {.lex_state = 22}, [541] = {.lex_state = 0}, - [542] = {.lex_state = 22}, + [542] = {.lex_state = 0}, [543] = {.lex_state = 0}, - [544] = {.lex_state = 22}, + [544] = {.lex_state = 0}, [545] = {.lex_state = 0}, - [546] = {.lex_state = 0}, + [546] = {.lex_state = 22}, [547] = {.lex_state = 0}, [548] = {.lex_state = 0}, [549] = {.lex_state = 0}, - [550] = {.lex_state = 1}, - [551] = {.lex_state = 0}, - [552] = {.lex_state = 22}, + [550] = {.lex_state = 0}, + [551] = {.lex_state = 22}, + [552] = {.lex_state = 0}, [553] = {.lex_state = 0}, - [554] = {.lex_state = 22}, - [555] = {.lex_state = 1}, - [556] = {.lex_state = 22}, + [554] = {.lex_state = 0}, + [555] = {.lex_state = 0}, + [556] = {.lex_state = 0}, [557] = {.lex_state = 0}, [558] = {.lex_state = 0}, [559] = {.lex_state = 0}, [560] = {.lex_state = 0}, - [561] = {.lex_state = 0}, + [561] = {.lex_state = 22}, [562] = {.lex_state = 0}, [563] = {.lex_state = 0}, - [564] = {.lex_state = 1}, - [565] = {.lex_state = 22}, + [564] = {.lex_state = 0}, + [565] = {.lex_state = 0}, [566] = {.lex_state = 22}, [567] = {.lex_state = 0}, [568] = {.lex_state = 0}, - [569] = {.lex_state = 22}, + [569] = {.lex_state = 0}, [570] = {.lex_state = 22}, [571] = {.lex_state = 0}, [572] = {.lex_state = 0}, [573] = {.lex_state = 0}, [574] = {.lex_state = 0}, [575] = {.lex_state = 22}, - [576] = {.lex_state = 1}, - [577] = {.lex_state = 8}, + [576] = {.lex_state = 0}, + [577] = {.lex_state = 0}, [578] = {.lex_state = 22}, - [579] = {.lex_state = 22}, + [579] = {.lex_state = 0}, [580] = {.lex_state = 22}, - [581] = {.lex_state = 22}, + [581] = {.lex_state = 0}, [582] = {.lex_state = 0}, - [583] = {.lex_state = 22}, + [583] = {.lex_state = 0}, [584] = {.lex_state = 22}, - [585] = {.lex_state = 22}, + [585] = {.lex_state = 0}, [586] = {.lex_state = 0}, - [587] = {.lex_state = 22}, - [588] = {.lex_state = 0}, + [587] = {.lex_state = 0}, + [588] = {.lex_state = 22}, [589] = {.lex_state = 0}, [590] = {.lex_state = 1}, - [591] = {.lex_state = 8}, - [592] = {.lex_state = 22}, - [593] = {.lex_state = 22}, - [594] = {.lex_state = 22}, + [591] = {.lex_state = 0}, + [592] = {.lex_state = 0}, + [593] = {.lex_state = 0}, + [594] = {.lex_state = 1}, [595] = {.lex_state = 0}, [596] = {.lex_state = 0}, [597] = {.lex_state = 0}, - [598] = {.lex_state = 0}, - [599] = {.lex_state = 22}, - [600] = {.lex_state = 22}, - [601] = {.lex_state = 22}, - [602] = {.lex_state = 0}, - [603] = {.lex_state = 0}, - [604] = {.lex_state = 22}, - [605] = {.lex_state = 22}, - [606] = {.lex_state = 22}, + [598] = {.lex_state = 1}, + [599] = {.lex_state = 0}, + [600] = {.lex_state = 0}, + [601] = {.lex_state = 0}, + [602] = {.lex_state = 1}, + [603] = {.lex_state = 1}, + [604] = {.lex_state = 1}, + [605] = {.lex_state = 0}, + [606] = {.lex_state = 0}, [607] = {.lex_state = 22}, - [608] = {.lex_state = 22}, - [609] = {.lex_state = 22}, + [608] = {.lex_state = 0}, + [609] = {.lex_state = 0}, [610] = {.lex_state = 22}, + [611] = {.lex_state = 0}, + [612] = {.lex_state = 1}, + [613] = {.lex_state = 0}, + [614] = {.lex_state = 1}, + [615] = {.lex_state = 1}, + [616] = {.lex_state = 0}, + [617] = {.lex_state = 22}, + [618] = {.lex_state = 0}, + [619] = {.lex_state = 22}, + [620] = {.lex_state = 0}, + [621] = {.lex_state = 22}, + [622] = {.lex_state = 1}, + [623] = {.lex_state = 0}, + [624] = {.lex_state = 22}, + [625] = {.lex_state = 0}, + [626] = {.lex_state = 0}, + [627] = {.lex_state = 0}, + [628] = {.lex_state = 22}, + [629] = {.lex_state = 0}, + [630] = {.lex_state = 0}, + [631] = {.lex_state = 0}, + [632] = {.lex_state = 0}, + [633] = {.lex_state = 22}, + [634] = {.lex_state = 1}, + [635] = {.lex_state = 22}, + [636] = {.lex_state = 0}, + [637] = {.lex_state = 22}, + [638] = {.lex_state = 0}, + [639] = {.lex_state = 0}, + [640] = {.lex_state = 0}, + [641] = {.lex_state = 0}, + [642] = {.lex_state = 0}, + [643] = {.lex_state = 0}, + [644] = {.lex_state = 0}, + [645] = {.lex_state = 1}, + [646] = {.lex_state = 22}, + [647] = {.lex_state = 22}, + [648] = {.lex_state = 0}, + [649] = {.lex_state = 0}, + [650] = {.lex_state = 22}, + [651] = {.lex_state = 22}, + [652] = {.lex_state = 22}, + [653] = {.lex_state = 0}, + [654] = {.lex_state = 0}, + [655] = {.lex_state = 0}, + [656] = {.lex_state = 22}, + [657] = {.lex_state = 0}, + [658] = {.lex_state = 0}, + [659] = {.lex_state = 1}, + [660] = {.lex_state = 0}, + [661] = {.lex_state = 22}, + [662] = {.lex_state = 22}, + [663] = {.lex_state = 22}, + [664] = {.lex_state = 22}, + [665] = {.lex_state = 22}, + [666] = {.lex_state = 0}, + [667] = {.lex_state = 22}, + [668] = {.lex_state = 0}, + [669] = {.lex_state = 1}, + [670] = {.lex_state = 0}, + [671] = {.lex_state = 1}, + [672] = {.lex_state = 0}, + [673] = {.lex_state = 0}, + [674] = {.lex_state = 0}, + [675] = {.lex_state = 0}, + [676] = {.lex_state = 1}, + [677] = {.lex_state = 22}, + [678] = {.lex_state = 22}, + [679] = {.lex_state = 0}, + [680] = {.lex_state = 0}, + [681] = {.lex_state = 0}, + [682] = {.lex_state = 8}, + [683] = {.lex_state = 0}, + [684] = {.lex_state = 0}, + [685] = {.lex_state = 0}, + [686] = {.lex_state = 22}, + [687] = {.lex_state = 22}, + [688] = {.lex_state = 0}, + [689] = {.lex_state = 22}, + [690] = {.lex_state = 8}, + [691] = {.lex_state = 0}, + [692] = {.lex_state = 0}, + [693] = {.lex_state = 22}, + [694] = {.lex_state = 0}, + [695] = {.lex_state = 0}, + [696] = {.lex_state = 0}, + [697] = {.lex_state = 22}, + [698] = {.lex_state = 0}, + [699] = {.lex_state = 22}, + [700] = {.lex_state = 0}, + [701] = {.lex_state = 0}, + [702] = {.lex_state = 22}, + [703] = {.lex_state = 22}, + [704] = {.lex_state = 22}, + [705] = {.lex_state = 0}, + [706] = {.lex_state = 22}, + [707] = {.lex_state = 22}, + [708] = {.lex_state = 22}, + [709] = {.lex_state = 22}, + [710] = {.lex_state = 22}, + [711] = {.lex_state = 22}, + [712] = {.lex_state = 0}, + [713] = {.lex_state = 1}, + [714] = {.lex_state = 22}, + [715] = {.lex_state = 0}, + [716] = {.lex_state = 0}, + [717] = {.lex_state = 22}, + [718] = {.lex_state = 22}, + [719] = {.lex_state = 22}, + [720] = {.lex_state = 22}, + [721] = {.lex_state = 22}, + [722] = {.lex_state = 0}, + [723] = {.lex_state = 0}, + [724] = {.lex_state = 22}, + [725] = {.lex_state = 22}, + [726] = {.lex_state = 22}, + [727] = {.lex_state = 22}, + [728] = {.lex_state = 22}, + [729] = {.lex_state = 22}, + [730] = {.lex_state = 1}, + [731] = {.lex_state = 0}, + [732] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -4529,7 +5063,9 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_let] = ACTIONS(1), [anon_sym_COLON] = ACTIONS(1), [anon_sym_class] = ACTIONS(1), + [anon_sym_impl] = ACTIONS(1), [anon_sym_resource] = ACTIONS(1), + [anon_sym_interface] = ACTIONS(1), [anon_sym_for] = ACTIONS(1), [anon_sym_in] = ACTIONS(1), [anon_sym_while] = ACTIONS(1), @@ -4600,59 +5136,60 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_MutJson] = ACTIONS(1), }, [1] = { - [sym_source] = STATE(598), - [sym_reference] = STATE(276), - [sym_custom_type] = STATE(597), - [sym_nested_identifier] = STATE(149), - [sym__statement] = STATE(3), - [sym_short_import_statement] = STATE(3), - [sym_struct_definition] = STATE(3), - [sym_enum_definition] = STATE(3), - [sym_return_statement] = STATE(3), - [sym_variable_assignment_statement] = STATE(3), - [sym_expression_statement] = STATE(3), - [sym_variable_definition_statement] = STATE(3), - [sym_class_definition] = STATE(3), - [sym_resource_definition] = STATE(3), - [sym_for_in_loop] = STATE(3), - [sym_while_statement] = STATE(3), - [sym_break_statement] = STATE(3), - [sym_continue_statement] = STATE(3), - [sym_if_statement] = STATE(3), - [sym_try_catch_statement] = STATE(3), - [sym_expression] = STATE(272), - [sym__literal] = STATE(158), - [sym_number] = STATE(133), - [sym__integer] = STATE(144), - [sym__decimal] = STATE(144), - [sym_bool] = STATE(187), - [sym_duration] = STATE(187), - [sym_seconds] = STATE(189), - [sym_minutes] = STATE(189), - [sym_hours] = STATE(189), - [sym_string] = STATE(187), - [sym_call] = STATE(158), - [sym_new_expression] = STATE(158), - [sym_parameter_list] = STATE(422), - [sym_immutable_container_type] = STATE(513), - [sym_mutable_container_type] = STATE(513), - [sym__builtin_container_type] = STATE(513), - [sym_unary_expression] = STATE(158), - [sym_binary_expression] = STATE(158), - [sym_preflight_closure] = STATE(158), - [sym_inflight_closure] = STATE(158), - [sym_await_expression] = STATE(158), - [sym_defer_expression] = STATE(158), - [sym_parenthesized_expression] = STATE(158), - [sym__collection_literal] = STATE(158), - [sym_array_literal] = STATE(158), - [sym_set_literal] = STATE(158), - [sym_map_literal] = STATE(158), - [sym_struct_literal] = STATE(158), - [sym_structured_access_expression] = STATE(158), - [sym_json_literal] = STATE(158), - [sym_json_container_type] = STATE(129), - [aux_sym_source_repeat1] = STATE(3), + [sym_source] = STATE(716), + [sym_reference] = STATE(293), + [sym_custom_type] = STATE(715), + [sym_nested_identifier] = STATE(166), + [sym__statement] = STATE(7), + [sym_short_import_statement] = STATE(7), + [sym_struct_definition] = STATE(7), + [sym_enum_definition] = STATE(7), + [sym_return_statement] = STATE(7), + [sym_variable_assignment_statement] = STATE(7), + [sym_expression_statement] = STATE(7), + [sym_variable_definition_statement] = STATE(7), + [sym_class_definition] = STATE(7), + [sym_resource_definition] = STATE(7), + [sym_interface_definition] = STATE(7), + [sym_for_in_loop] = STATE(7), + [sym_while_statement] = STATE(7), + [sym_break_statement] = STATE(7), + [sym_continue_statement] = STATE(7), + [sym_if_statement] = STATE(7), + [sym_try_catch_statement] = STATE(7), + [sym_expression] = STATE(295), + [sym__literal] = STATE(216), + [sym_number] = STATE(158), + [sym__integer] = STATE(159), + [sym__decimal] = STATE(159), + [sym_bool] = STATE(218), + [sym_duration] = STATE(218), + [sym_seconds] = STATE(177), + [sym_minutes] = STATE(177), + [sym_hours] = STATE(177), + [sym_string] = STATE(218), + [sym_call] = STATE(216), + [sym_new_expression] = STATE(216), + [sym_parameter_list] = STATE(503), + [sym_immutable_container_type] = STATE(597), + [sym_mutable_container_type] = STATE(597), + [sym__builtin_container_type] = STATE(597), + [sym_unary_expression] = STATE(216), + [sym_binary_expression] = STATE(216), + [sym_preflight_closure] = STATE(216), + [sym_inflight_closure] = STATE(216), + [sym_await_expression] = STATE(216), + [sym_defer_expression] = STATE(216), + [sym_parenthesized_expression] = STATE(216), + [sym__collection_literal] = STATE(216), + [sym_array_literal] = STATE(216), + [sym_set_literal] = STATE(216), + [sym_map_literal] = STATE(216), + [sym_struct_literal] = STATE(216), + [sym_structured_access_expression] = STATE(216), + [sym_json_literal] = STATE(216), + [sym_json_container_type] = STATE(147), + [aux_sym_source_repeat1] = STATE(7), [ts_builtin_sym_end] = ACTIONS(5), [sym_identifier] = ACTIONS(7), [anon_sym_LBRACE] = ACTIONS(9), @@ -4665,41 +5202,42 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_let] = ACTIONS(21), [anon_sym_class] = ACTIONS(23), [anon_sym_resource] = ACTIONS(25), - [anon_sym_for] = ACTIONS(27), - [anon_sym_while] = ACTIONS(29), - [anon_sym_break] = ACTIONS(31), - [anon_sym_continue] = ACTIONS(33), - [anon_sym_if] = ACTIONS(35), - [anon_sym_try] = ACTIONS(37), - [anon_sym_0] = ACTIONS(39), - [aux_sym__integer_token1] = ACTIONS(39), - [aux_sym__decimal_token1] = ACTIONS(41), - [aux_sym__decimal_token2] = ACTIONS(41), - [anon_sym_true] = ACTIONS(43), - [anon_sym_false] = ACTIONS(43), - [anon_sym_DQUOTE] = ACTIONS(45), - [anon_sym_LPAREN] = ACTIONS(47), - [anon_sym_new] = ACTIONS(49), - [anon_sym_Array] = ACTIONS(51), - [anon_sym_Set] = ACTIONS(51), - [anon_sym_Map] = ACTIONS(51), - [anon_sym_Promise] = ACTIONS(51), - [anon_sym_MutSet] = ACTIONS(53), - [anon_sym_MutMap] = ACTIONS(53), - [anon_sym_MutArray] = ACTIONS(53), - [anon_sym_DASH_DASH] = ACTIONS(55), - [anon_sym_DASH] = ACTIONS(57), - [anon_sym_BANG] = ACTIONS(55), - [anon_sym_await] = ACTIONS(59), - [anon_sym_defer] = ACTIONS(61), - [anon_sym_LBRACK] = ACTIONS(63), - [anon_sym_Json] = ACTIONS(65), - [anon_sym_MutJson] = ACTIONS(65), + [anon_sym_interface] = ACTIONS(27), + [anon_sym_for] = ACTIONS(29), + [anon_sym_while] = ACTIONS(31), + [anon_sym_break] = ACTIONS(33), + [anon_sym_continue] = ACTIONS(35), + [anon_sym_if] = ACTIONS(37), + [anon_sym_try] = ACTIONS(39), + [anon_sym_0] = ACTIONS(41), + [aux_sym__integer_token1] = ACTIONS(41), + [aux_sym__decimal_token1] = ACTIONS(43), + [aux_sym__decimal_token2] = ACTIONS(43), + [anon_sym_true] = ACTIONS(45), + [anon_sym_false] = ACTIONS(45), + [anon_sym_DQUOTE] = ACTIONS(47), + [anon_sym_LPAREN] = ACTIONS(49), + [anon_sym_new] = ACTIONS(51), + [anon_sym_Array] = ACTIONS(53), + [anon_sym_Set] = ACTIONS(53), + [anon_sym_Map] = ACTIONS(53), + [anon_sym_Promise] = ACTIONS(53), + [anon_sym_MutSet] = ACTIONS(55), + [anon_sym_MutMap] = ACTIONS(55), + [anon_sym_MutArray] = ACTIONS(55), + [anon_sym_DASH_DASH] = ACTIONS(57), + [anon_sym_DASH] = ACTIONS(59), + [anon_sym_BANG] = ACTIONS(57), + [anon_sym_await] = ACTIONS(61), + [anon_sym_defer] = ACTIONS(63), + [anon_sym_LBRACK] = ACTIONS(65), + [anon_sym_Json] = ACTIONS(67), + [anon_sym_MutJson] = ACTIONS(67), }, [2] = { - [sym_reference] = STATE(276), - [sym_custom_type] = STATE(597), - [sym_nested_identifier] = STATE(149), + [sym_reference] = STATE(293), + [sym_custom_type] = STATE(715), + [sym_nested_identifier] = STATE(166), [sym__statement] = STATE(2), [sym_short_import_statement] = STATE(2), [sym_struct_definition] = STATE(2), @@ -4710,93 +5248,95 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_variable_definition_statement] = STATE(2), [sym_class_definition] = STATE(2), [sym_resource_definition] = STATE(2), + [sym_interface_definition] = STATE(2), [sym_for_in_loop] = STATE(2), [sym_while_statement] = STATE(2), [sym_break_statement] = STATE(2), [sym_continue_statement] = STATE(2), [sym_if_statement] = STATE(2), [sym_try_catch_statement] = STATE(2), - [sym_expression] = STATE(272), - [sym__literal] = STATE(158), - [sym_number] = STATE(133), - [sym__integer] = STATE(144), - [sym__decimal] = STATE(144), - [sym_bool] = STATE(187), - [sym_duration] = STATE(187), - [sym_seconds] = STATE(189), - [sym_minutes] = STATE(189), - [sym_hours] = STATE(189), - [sym_string] = STATE(187), - [sym_call] = STATE(158), - [sym_new_expression] = STATE(158), - [sym_parameter_list] = STATE(422), - [sym_immutable_container_type] = STATE(513), - [sym_mutable_container_type] = STATE(513), - [sym__builtin_container_type] = STATE(513), - [sym_unary_expression] = STATE(158), - [sym_binary_expression] = STATE(158), - [sym_preflight_closure] = STATE(158), - [sym_inflight_closure] = STATE(158), - [sym_await_expression] = STATE(158), - [sym_defer_expression] = STATE(158), - [sym_parenthesized_expression] = STATE(158), - [sym__collection_literal] = STATE(158), - [sym_array_literal] = STATE(158), - [sym_set_literal] = STATE(158), - [sym_map_literal] = STATE(158), - [sym_struct_literal] = STATE(158), - [sym_structured_access_expression] = STATE(158), - [sym_json_literal] = STATE(158), - [sym_json_container_type] = STATE(129), + [sym_expression] = STATE(295), + [sym__literal] = STATE(216), + [sym_number] = STATE(158), + [sym__integer] = STATE(159), + [sym__decimal] = STATE(159), + [sym_bool] = STATE(218), + [sym_duration] = STATE(218), + [sym_seconds] = STATE(177), + [sym_minutes] = STATE(177), + [sym_hours] = STATE(177), + [sym_string] = STATE(218), + [sym_call] = STATE(216), + [sym_new_expression] = STATE(216), + [sym_parameter_list] = STATE(503), + [sym_immutable_container_type] = STATE(597), + [sym_mutable_container_type] = STATE(597), + [sym__builtin_container_type] = STATE(597), + [sym_unary_expression] = STATE(216), + [sym_binary_expression] = STATE(216), + [sym_preflight_closure] = STATE(216), + [sym_inflight_closure] = STATE(216), + [sym_await_expression] = STATE(216), + [sym_defer_expression] = STATE(216), + [sym_parenthesized_expression] = STATE(216), + [sym__collection_literal] = STATE(216), + [sym_array_literal] = STATE(216), + [sym_set_literal] = STATE(216), + [sym_map_literal] = STATE(216), + [sym_struct_literal] = STATE(216), + [sym_structured_access_expression] = STATE(216), + [sym_json_literal] = STATE(216), + [sym_json_container_type] = STATE(147), [aux_sym_source_repeat1] = STATE(2), - [ts_builtin_sym_end] = ACTIONS(67), - [sym_identifier] = ACTIONS(69), - [anon_sym_LBRACE] = ACTIONS(72), - [anon_sym_RBRACE] = ACTIONS(67), + [ts_builtin_sym_end] = ACTIONS(69), + [sym_identifier] = ACTIONS(71), + [anon_sym_LBRACE] = ACTIONS(74), + [anon_sym_RBRACE] = ACTIONS(69), [sym_comment] = ACTIONS(3), - [anon_sym_inflight] = ACTIONS(75), - [anon_sym_bring] = ACTIONS(78), - [anon_sym_struct] = ACTIONS(81), - [anon_sym_enum] = ACTIONS(84), - [anon_sym_return] = ACTIONS(87), - [anon_sym_let] = ACTIONS(90), - [anon_sym_class] = ACTIONS(93), - [anon_sym_resource] = ACTIONS(96), - [anon_sym_for] = ACTIONS(99), - [anon_sym_while] = ACTIONS(102), - [anon_sym_break] = ACTIONS(105), - [anon_sym_continue] = ACTIONS(108), - [anon_sym_if] = ACTIONS(111), - [anon_sym_try] = ACTIONS(114), - [anon_sym_0] = ACTIONS(117), - [aux_sym__integer_token1] = ACTIONS(117), - [aux_sym__decimal_token1] = ACTIONS(120), - [aux_sym__decimal_token2] = ACTIONS(120), - [anon_sym_true] = ACTIONS(123), - [anon_sym_false] = ACTIONS(123), - [anon_sym_DQUOTE] = ACTIONS(126), - [anon_sym_LPAREN] = ACTIONS(129), - [anon_sym_new] = ACTIONS(132), - [anon_sym_Array] = ACTIONS(135), - [anon_sym_Set] = ACTIONS(135), - [anon_sym_Map] = ACTIONS(135), - [anon_sym_Promise] = ACTIONS(135), - [anon_sym_MutSet] = ACTIONS(138), - [anon_sym_MutMap] = ACTIONS(138), - [anon_sym_MutArray] = ACTIONS(138), - [anon_sym_DASH_DASH] = ACTIONS(141), - [anon_sym_DASH] = ACTIONS(144), - [anon_sym_BANG] = ACTIONS(141), - [anon_sym_await] = ACTIONS(147), - [anon_sym_defer] = ACTIONS(150), - [anon_sym_LBRACK] = ACTIONS(153), - [anon_sym_Json] = ACTIONS(156), - [anon_sym_MutJson] = ACTIONS(156), + [anon_sym_inflight] = ACTIONS(77), + [anon_sym_bring] = ACTIONS(80), + [anon_sym_struct] = ACTIONS(83), + [anon_sym_enum] = ACTIONS(86), + [anon_sym_return] = ACTIONS(89), + [anon_sym_let] = ACTIONS(92), + [anon_sym_class] = ACTIONS(95), + [anon_sym_resource] = ACTIONS(98), + [anon_sym_interface] = ACTIONS(101), + [anon_sym_for] = ACTIONS(104), + [anon_sym_while] = ACTIONS(107), + [anon_sym_break] = ACTIONS(110), + [anon_sym_continue] = ACTIONS(113), + [anon_sym_if] = ACTIONS(116), + [anon_sym_try] = ACTIONS(119), + [anon_sym_0] = ACTIONS(122), + [aux_sym__integer_token1] = ACTIONS(122), + [aux_sym__decimal_token1] = ACTIONS(125), + [aux_sym__decimal_token2] = ACTIONS(125), + [anon_sym_true] = ACTIONS(128), + [anon_sym_false] = ACTIONS(128), + [anon_sym_DQUOTE] = ACTIONS(131), + [anon_sym_LPAREN] = ACTIONS(134), + [anon_sym_new] = ACTIONS(137), + [anon_sym_Array] = ACTIONS(140), + [anon_sym_Set] = ACTIONS(140), + [anon_sym_Map] = ACTIONS(140), + [anon_sym_Promise] = ACTIONS(140), + [anon_sym_MutSet] = ACTIONS(143), + [anon_sym_MutMap] = ACTIONS(143), + [anon_sym_MutArray] = ACTIONS(143), + [anon_sym_DASH_DASH] = ACTIONS(146), + [anon_sym_DASH] = ACTIONS(149), + [anon_sym_BANG] = ACTIONS(146), + [anon_sym_await] = ACTIONS(152), + [anon_sym_defer] = ACTIONS(155), + [anon_sym_LBRACK] = ACTIONS(158), + [anon_sym_Json] = ACTIONS(161), + [anon_sym_MutJson] = ACTIONS(161), }, [3] = { - [sym_reference] = STATE(276), - [sym_custom_type] = STATE(597), - [sym_nested_identifier] = STATE(149), + [sym_reference] = STATE(293), + [sym_custom_type] = STATE(715), + [sym_nested_identifier] = STATE(166), [sym__statement] = STATE(2), [sym_short_import_statement] = STATE(2), [sym_struct_definition] = STATE(2), @@ -4807,48 +5347,49 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_variable_definition_statement] = STATE(2), [sym_class_definition] = STATE(2), [sym_resource_definition] = STATE(2), + [sym_interface_definition] = STATE(2), [sym_for_in_loop] = STATE(2), [sym_while_statement] = STATE(2), [sym_break_statement] = STATE(2), [sym_continue_statement] = STATE(2), [sym_if_statement] = STATE(2), [sym_try_catch_statement] = STATE(2), - [sym_expression] = STATE(272), - [sym__literal] = STATE(158), - [sym_number] = STATE(133), - [sym__integer] = STATE(144), - [sym__decimal] = STATE(144), - [sym_bool] = STATE(187), - [sym_duration] = STATE(187), - [sym_seconds] = STATE(189), - [sym_minutes] = STATE(189), - [sym_hours] = STATE(189), - [sym_string] = STATE(187), - [sym_call] = STATE(158), - [sym_new_expression] = STATE(158), - [sym_parameter_list] = STATE(422), - [sym_immutable_container_type] = STATE(513), - [sym_mutable_container_type] = STATE(513), - [sym__builtin_container_type] = STATE(513), - [sym_unary_expression] = STATE(158), - [sym_binary_expression] = STATE(158), - [sym_preflight_closure] = STATE(158), - [sym_inflight_closure] = STATE(158), - [sym_await_expression] = STATE(158), - [sym_defer_expression] = STATE(158), - [sym_parenthesized_expression] = STATE(158), - [sym__collection_literal] = STATE(158), - [sym_array_literal] = STATE(158), - [sym_set_literal] = STATE(158), - [sym_map_literal] = STATE(158), - [sym_struct_literal] = STATE(158), - [sym_structured_access_expression] = STATE(158), - [sym_json_literal] = STATE(158), - [sym_json_container_type] = STATE(129), + [sym_expression] = STATE(295), + [sym__literal] = STATE(216), + [sym_number] = STATE(158), + [sym__integer] = STATE(159), + [sym__decimal] = STATE(159), + [sym_bool] = STATE(218), + [sym_duration] = STATE(218), + [sym_seconds] = STATE(177), + [sym_minutes] = STATE(177), + [sym_hours] = STATE(177), + [sym_string] = STATE(218), + [sym_call] = STATE(216), + [sym_new_expression] = STATE(216), + [sym_parameter_list] = STATE(503), + [sym_immutable_container_type] = STATE(597), + [sym_mutable_container_type] = STATE(597), + [sym__builtin_container_type] = STATE(597), + [sym_unary_expression] = STATE(216), + [sym_binary_expression] = STATE(216), + [sym_preflight_closure] = STATE(216), + [sym_inflight_closure] = STATE(216), + [sym_await_expression] = STATE(216), + [sym_defer_expression] = STATE(216), + [sym_parenthesized_expression] = STATE(216), + [sym__collection_literal] = STATE(216), + [sym_array_literal] = STATE(216), + [sym_set_literal] = STATE(216), + [sym_map_literal] = STATE(216), + [sym_struct_literal] = STATE(216), + [sym_structured_access_expression] = STATE(216), + [sym_json_literal] = STATE(216), + [sym_json_container_type] = STATE(147), [aux_sym_source_repeat1] = STATE(2), - [ts_builtin_sym_end] = ACTIONS(159), [sym_identifier] = ACTIONS(7), [anon_sym_LBRACE] = ACTIONS(9), + [anon_sym_RBRACE] = ACTIONS(164), [sym_comment] = ACTIONS(3), [anon_sym_inflight] = ACTIONS(11), [anon_sym_bring] = ACTIONS(13), @@ -4858,137 +5399,42 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_let] = ACTIONS(21), [anon_sym_class] = ACTIONS(23), [anon_sym_resource] = ACTIONS(25), - [anon_sym_for] = ACTIONS(27), - [anon_sym_while] = ACTIONS(29), - [anon_sym_break] = ACTIONS(31), - [anon_sym_continue] = ACTIONS(33), - [anon_sym_if] = ACTIONS(35), - [anon_sym_try] = ACTIONS(37), - [anon_sym_0] = ACTIONS(39), - [aux_sym__integer_token1] = ACTIONS(39), - [aux_sym__decimal_token1] = ACTIONS(41), - [aux_sym__decimal_token2] = ACTIONS(41), - [anon_sym_true] = ACTIONS(43), - [anon_sym_false] = ACTIONS(43), - [anon_sym_DQUOTE] = ACTIONS(45), - [anon_sym_LPAREN] = ACTIONS(47), - [anon_sym_new] = ACTIONS(49), - [anon_sym_Array] = ACTIONS(51), - [anon_sym_Set] = ACTIONS(51), - [anon_sym_Map] = ACTIONS(51), - [anon_sym_Promise] = ACTIONS(51), - [anon_sym_MutSet] = ACTIONS(53), - [anon_sym_MutMap] = ACTIONS(53), - [anon_sym_MutArray] = ACTIONS(53), - [anon_sym_DASH_DASH] = ACTIONS(55), - [anon_sym_DASH] = ACTIONS(57), - [anon_sym_BANG] = ACTIONS(55), - [anon_sym_await] = ACTIONS(59), - [anon_sym_defer] = ACTIONS(61), - [anon_sym_LBRACK] = ACTIONS(63), - [anon_sym_Json] = ACTIONS(65), - [anon_sym_MutJson] = ACTIONS(65), + [anon_sym_interface] = ACTIONS(27), + [anon_sym_for] = ACTIONS(29), + [anon_sym_while] = ACTIONS(31), + [anon_sym_break] = ACTIONS(33), + [anon_sym_continue] = ACTIONS(35), + [anon_sym_if] = ACTIONS(37), + [anon_sym_try] = ACTIONS(39), + [anon_sym_0] = ACTIONS(41), + [aux_sym__integer_token1] = ACTIONS(41), + [aux_sym__decimal_token1] = ACTIONS(43), + [aux_sym__decimal_token2] = ACTIONS(43), + [anon_sym_true] = ACTIONS(45), + [anon_sym_false] = ACTIONS(45), + [anon_sym_DQUOTE] = ACTIONS(47), + [anon_sym_LPAREN] = ACTIONS(49), + [anon_sym_new] = ACTIONS(51), + [anon_sym_Array] = ACTIONS(53), + [anon_sym_Set] = ACTIONS(53), + [anon_sym_Map] = ACTIONS(53), + [anon_sym_Promise] = ACTIONS(53), + [anon_sym_MutSet] = ACTIONS(55), + [anon_sym_MutMap] = ACTIONS(55), + [anon_sym_MutArray] = ACTIONS(55), + [anon_sym_DASH_DASH] = ACTIONS(57), + [anon_sym_DASH] = ACTIONS(59), + [anon_sym_BANG] = ACTIONS(57), + [anon_sym_await] = ACTIONS(61), + [anon_sym_defer] = ACTIONS(63), + [anon_sym_LBRACK] = ACTIONS(65), + [anon_sym_Json] = ACTIONS(67), + [anon_sym_MutJson] = ACTIONS(67), }, [4] = { - [sym_reference] = STATE(276), - [sym_custom_type] = STATE(597), - [sym_nested_identifier] = STATE(149), - [sym__statement] = STATE(5), - [sym_short_import_statement] = STATE(5), - [sym_struct_definition] = STATE(5), - [sym_enum_definition] = STATE(5), - [sym_return_statement] = STATE(5), - [sym_variable_assignment_statement] = STATE(5), - [sym_expression_statement] = STATE(5), - [sym_variable_definition_statement] = STATE(5), - [sym_class_definition] = STATE(5), - [sym_resource_definition] = STATE(5), - [sym_for_in_loop] = STATE(5), - [sym_while_statement] = STATE(5), - [sym_break_statement] = STATE(5), - [sym_continue_statement] = STATE(5), - [sym_if_statement] = STATE(5), - [sym_try_catch_statement] = STATE(5), - [sym_expression] = STATE(272), - [sym__literal] = STATE(158), - [sym_number] = STATE(133), - [sym__integer] = STATE(144), - [sym__decimal] = STATE(144), - [sym_bool] = STATE(187), - [sym_duration] = STATE(187), - [sym_seconds] = STATE(189), - [sym_minutes] = STATE(189), - [sym_hours] = STATE(189), - [sym_string] = STATE(187), - [sym_call] = STATE(158), - [sym_new_expression] = STATE(158), - [sym_parameter_list] = STATE(422), - [sym_immutable_container_type] = STATE(513), - [sym_mutable_container_type] = STATE(513), - [sym__builtin_container_type] = STATE(513), - [sym_unary_expression] = STATE(158), - [sym_binary_expression] = STATE(158), - [sym_preflight_closure] = STATE(158), - [sym_inflight_closure] = STATE(158), - [sym_await_expression] = STATE(158), - [sym_defer_expression] = STATE(158), - [sym_parenthesized_expression] = STATE(158), - [sym__collection_literal] = STATE(158), - [sym_array_literal] = STATE(158), - [sym_set_literal] = STATE(158), - [sym_map_literal] = STATE(158), - [sym_struct_literal] = STATE(158), - [sym_structured_access_expression] = STATE(158), - [sym_json_literal] = STATE(158), - [sym_json_container_type] = STATE(129), - [aux_sym_source_repeat1] = STATE(5), - [sym_identifier] = ACTIONS(7), - [anon_sym_LBRACE] = ACTIONS(9), - [anon_sym_RBRACE] = ACTIONS(161), - [sym_comment] = ACTIONS(3), - [anon_sym_inflight] = ACTIONS(11), - [anon_sym_bring] = ACTIONS(13), - [anon_sym_struct] = ACTIONS(15), - [anon_sym_enum] = ACTIONS(17), - [anon_sym_return] = ACTIONS(19), - [anon_sym_let] = ACTIONS(21), - [anon_sym_class] = ACTIONS(23), - [anon_sym_resource] = ACTIONS(25), - [anon_sym_for] = ACTIONS(27), - [anon_sym_while] = ACTIONS(29), - [anon_sym_break] = ACTIONS(31), - [anon_sym_continue] = ACTIONS(33), - [anon_sym_if] = ACTIONS(35), - [anon_sym_try] = ACTIONS(37), - [anon_sym_0] = ACTIONS(39), - [aux_sym__integer_token1] = ACTIONS(39), - [aux_sym__decimal_token1] = ACTIONS(41), - [aux_sym__decimal_token2] = ACTIONS(41), - [anon_sym_true] = ACTIONS(43), - [anon_sym_false] = ACTIONS(43), - [anon_sym_DQUOTE] = ACTIONS(45), - [anon_sym_LPAREN] = ACTIONS(47), - [anon_sym_new] = ACTIONS(49), - [anon_sym_Array] = ACTIONS(51), - [anon_sym_Set] = ACTIONS(51), - [anon_sym_Map] = ACTIONS(51), - [anon_sym_Promise] = ACTIONS(51), - [anon_sym_MutSet] = ACTIONS(53), - [anon_sym_MutMap] = ACTIONS(53), - [anon_sym_MutArray] = ACTIONS(53), - [anon_sym_DASH_DASH] = ACTIONS(55), - [anon_sym_DASH] = ACTIONS(57), - [anon_sym_BANG] = ACTIONS(55), - [anon_sym_await] = ACTIONS(59), - [anon_sym_defer] = ACTIONS(61), - [anon_sym_LBRACK] = ACTIONS(63), - [anon_sym_Json] = ACTIONS(65), - [anon_sym_MutJson] = ACTIONS(65), - }, - [5] = { - [sym_reference] = STATE(276), - [sym_custom_type] = STATE(597), - [sym_nested_identifier] = STATE(149), + [sym_reference] = STATE(293), + [sym_custom_type] = STATE(715), + [sym_nested_identifier] = STATE(166), [sym__statement] = STATE(2), [sym_short_import_statement] = STATE(2), [sym_struct_definition] = STATE(2), @@ -4999,48 +5445,147 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_variable_definition_statement] = STATE(2), [sym_class_definition] = STATE(2), [sym_resource_definition] = STATE(2), + [sym_interface_definition] = STATE(2), [sym_for_in_loop] = STATE(2), [sym_while_statement] = STATE(2), [sym_break_statement] = STATE(2), [sym_continue_statement] = STATE(2), [sym_if_statement] = STATE(2), [sym_try_catch_statement] = STATE(2), - [sym_expression] = STATE(272), - [sym__literal] = STATE(158), - [sym_number] = STATE(133), - [sym__integer] = STATE(144), - [sym__decimal] = STATE(144), - [sym_bool] = STATE(187), - [sym_duration] = STATE(187), - [sym_seconds] = STATE(189), - [sym_minutes] = STATE(189), - [sym_hours] = STATE(189), - [sym_string] = STATE(187), - [sym_call] = STATE(158), - [sym_new_expression] = STATE(158), - [sym_parameter_list] = STATE(422), - [sym_immutable_container_type] = STATE(513), - [sym_mutable_container_type] = STATE(513), - [sym__builtin_container_type] = STATE(513), - [sym_unary_expression] = STATE(158), - [sym_binary_expression] = STATE(158), - [sym_preflight_closure] = STATE(158), - [sym_inflight_closure] = STATE(158), - [sym_await_expression] = STATE(158), - [sym_defer_expression] = STATE(158), - [sym_parenthesized_expression] = STATE(158), - [sym__collection_literal] = STATE(158), - [sym_array_literal] = STATE(158), - [sym_set_literal] = STATE(158), - [sym_map_literal] = STATE(158), - [sym_struct_literal] = STATE(158), - [sym_structured_access_expression] = STATE(158), - [sym_json_literal] = STATE(158), - [sym_json_container_type] = STATE(129), + [sym_expression] = STATE(295), + [sym__literal] = STATE(216), + [sym_number] = STATE(158), + [sym__integer] = STATE(159), + [sym__decimal] = STATE(159), + [sym_bool] = STATE(218), + [sym_duration] = STATE(218), + [sym_seconds] = STATE(177), + [sym_minutes] = STATE(177), + [sym_hours] = STATE(177), + [sym_string] = STATE(218), + [sym_call] = STATE(216), + [sym_new_expression] = STATE(216), + [sym_parameter_list] = STATE(503), + [sym_immutable_container_type] = STATE(597), + [sym_mutable_container_type] = STATE(597), + [sym__builtin_container_type] = STATE(597), + [sym_unary_expression] = STATE(216), + [sym_binary_expression] = STATE(216), + [sym_preflight_closure] = STATE(216), + [sym_inflight_closure] = STATE(216), + [sym_await_expression] = STATE(216), + [sym_defer_expression] = STATE(216), + [sym_parenthesized_expression] = STATE(216), + [sym__collection_literal] = STATE(216), + [sym_array_literal] = STATE(216), + [sym_set_literal] = STATE(216), + [sym_map_literal] = STATE(216), + [sym_struct_literal] = STATE(216), + [sym_structured_access_expression] = STATE(216), + [sym_json_literal] = STATE(216), + [sym_json_container_type] = STATE(147), [aux_sym_source_repeat1] = STATE(2), [sym_identifier] = ACTIONS(7), [anon_sym_LBRACE] = ACTIONS(9), - [anon_sym_RBRACE] = ACTIONS(163), + [anon_sym_RBRACE] = ACTIONS(166), + [sym_comment] = ACTIONS(3), + [anon_sym_inflight] = ACTIONS(11), + [anon_sym_bring] = ACTIONS(13), + [anon_sym_struct] = ACTIONS(15), + [anon_sym_enum] = ACTIONS(17), + [anon_sym_return] = ACTIONS(19), + [anon_sym_let] = ACTIONS(21), + [anon_sym_class] = ACTIONS(23), + [anon_sym_resource] = ACTIONS(25), + [anon_sym_interface] = ACTIONS(27), + [anon_sym_for] = ACTIONS(29), + [anon_sym_while] = ACTIONS(31), + [anon_sym_break] = ACTIONS(33), + [anon_sym_continue] = ACTIONS(35), + [anon_sym_if] = ACTIONS(37), + [anon_sym_try] = ACTIONS(39), + [anon_sym_0] = ACTIONS(41), + [aux_sym__integer_token1] = ACTIONS(41), + [aux_sym__decimal_token1] = ACTIONS(43), + [aux_sym__decimal_token2] = ACTIONS(43), + [anon_sym_true] = ACTIONS(45), + [anon_sym_false] = ACTIONS(45), + [anon_sym_DQUOTE] = ACTIONS(47), + [anon_sym_LPAREN] = ACTIONS(49), + [anon_sym_new] = ACTIONS(51), + [anon_sym_Array] = ACTIONS(53), + [anon_sym_Set] = ACTIONS(53), + [anon_sym_Map] = ACTIONS(53), + [anon_sym_Promise] = ACTIONS(53), + [anon_sym_MutSet] = ACTIONS(55), + [anon_sym_MutMap] = ACTIONS(55), + [anon_sym_MutArray] = ACTIONS(55), + [anon_sym_DASH_DASH] = ACTIONS(57), + [anon_sym_DASH] = ACTIONS(59), + [anon_sym_BANG] = ACTIONS(57), + [anon_sym_await] = ACTIONS(61), + [anon_sym_defer] = ACTIONS(63), + [anon_sym_LBRACK] = ACTIONS(65), + [anon_sym_Json] = ACTIONS(67), + [anon_sym_MutJson] = ACTIONS(67), + }, + [5] = { + [sym_reference] = STATE(293), + [sym_custom_type] = STATE(715), + [sym_nested_identifier] = STATE(166), + [sym__statement] = STATE(4), + [sym_short_import_statement] = STATE(4), + [sym_struct_definition] = STATE(4), + [sym_enum_definition] = STATE(4), + [sym_return_statement] = STATE(4), + [sym_variable_assignment_statement] = STATE(4), + [sym_expression_statement] = STATE(4), + [sym_variable_definition_statement] = STATE(4), + [sym_class_definition] = STATE(4), + [sym_resource_definition] = STATE(4), + [sym_interface_definition] = STATE(4), + [sym_for_in_loop] = STATE(4), + [sym_while_statement] = STATE(4), + [sym_break_statement] = STATE(4), + [sym_continue_statement] = STATE(4), + [sym_if_statement] = STATE(4), + [sym_try_catch_statement] = STATE(4), + [sym_expression] = STATE(295), + [sym__literal] = STATE(216), + [sym_number] = STATE(158), + [sym__integer] = STATE(159), + [sym__decimal] = STATE(159), + [sym_bool] = STATE(218), + [sym_duration] = STATE(218), + [sym_seconds] = STATE(177), + [sym_minutes] = STATE(177), + [sym_hours] = STATE(177), + [sym_string] = STATE(218), + [sym_call] = STATE(216), + [sym_new_expression] = STATE(216), + [sym_parameter_list] = STATE(503), + [sym_immutable_container_type] = STATE(597), + [sym_mutable_container_type] = STATE(597), + [sym__builtin_container_type] = STATE(597), + [sym_unary_expression] = STATE(216), + [sym_binary_expression] = STATE(216), + [sym_preflight_closure] = STATE(216), + [sym_inflight_closure] = STATE(216), + [sym_await_expression] = STATE(216), + [sym_defer_expression] = STATE(216), + [sym_parenthesized_expression] = STATE(216), + [sym__collection_literal] = STATE(216), + [sym_array_literal] = STATE(216), + [sym_set_literal] = STATE(216), + [sym_map_literal] = STATE(216), + [sym_struct_literal] = STATE(216), + [sym_structured_access_expression] = STATE(216), + [sym_json_literal] = STATE(216), + [sym_json_container_type] = STATE(147), + [aux_sym_source_repeat1] = STATE(4), + [sym_identifier] = ACTIONS(7), + [anon_sym_LBRACE] = ACTIONS(9), + [anon_sym_RBRACE] = ACTIONS(168), [sym_comment] = ACTIONS(3), [anon_sym_inflight] = ACTIONS(11), [anon_sym_bring] = ACTIONS(13), @@ -5050,93 +5595,95 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_let] = ACTIONS(21), [anon_sym_class] = ACTIONS(23), [anon_sym_resource] = ACTIONS(25), - [anon_sym_for] = ACTIONS(27), - [anon_sym_while] = ACTIONS(29), - [anon_sym_break] = ACTIONS(31), - [anon_sym_continue] = ACTIONS(33), - [anon_sym_if] = ACTIONS(35), - [anon_sym_try] = ACTIONS(37), - [anon_sym_0] = ACTIONS(39), - [aux_sym__integer_token1] = ACTIONS(39), - [aux_sym__decimal_token1] = ACTIONS(41), - [aux_sym__decimal_token2] = ACTIONS(41), - [anon_sym_true] = ACTIONS(43), - [anon_sym_false] = ACTIONS(43), - [anon_sym_DQUOTE] = ACTIONS(45), - [anon_sym_LPAREN] = ACTIONS(47), - [anon_sym_new] = ACTIONS(49), - [anon_sym_Array] = ACTIONS(51), - [anon_sym_Set] = ACTIONS(51), - [anon_sym_Map] = ACTIONS(51), - [anon_sym_Promise] = ACTIONS(51), - [anon_sym_MutSet] = ACTIONS(53), - [anon_sym_MutMap] = ACTIONS(53), - [anon_sym_MutArray] = ACTIONS(53), - [anon_sym_DASH_DASH] = ACTIONS(55), - [anon_sym_DASH] = ACTIONS(57), - [anon_sym_BANG] = ACTIONS(55), - [anon_sym_await] = ACTIONS(59), - [anon_sym_defer] = ACTIONS(61), - [anon_sym_LBRACK] = ACTIONS(63), - [anon_sym_Json] = ACTIONS(65), - [anon_sym_MutJson] = ACTIONS(65), + [anon_sym_interface] = ACTIONS(27), + [anon_sym_for] = ACTIONS(29), + [anon_sym_while] = ACTIONS(31), + [anon_sym_break] = ACTIONS(33), + [anon_sym_continue] = ACTIONS(35), + [anon_sym_if] = ACTIONS(37), + [anon_sym_try] = ACTIONS(39), + [anon_sym_0] = ACTIONS(41), + [aux_sym__integer_token1] = ACTIONS(41), + [aux_sym__decimal_token1] = ACTIONS(43), + [aux_sym__decimal_token2] = ACTIONS(43), + [anon_sym_true] = ACTIONS(45), + [anon_sym_false] = ACTIONS(45), + [anon_sym_DQUOTE] = ACTIONS(47), + [anon_sym_LPAREN] = ACTIONS(49), + [anon_sym_new] = ACTIONS(51), + [anon_sym_Array] = ACTIONS(53), + [anon_sym_Set] = ACTIONS(53), + [anon_sym_Map] = ACTIONS(53), + [anon_sym_Promise] = ACTIONS(53), + [anon_sym_MutSet] = ACTIONS(55), + [anon_sym_MutMap] = ACTIONS(55), + [anon_sym_MutArray] = ACTIONS(55), + [anon_sym_DASH_DASH] = ACTIONS(57), + [anon_sym_DASH] = ACTIONS(59), + [anon_sym_BANG] = ACTIONS(57), + [anon_sym_await] = ACTIONS(61), + [anon_sym_defer] = ACTIONS(63), + [anon_sym_LBRACK] = ACTIONS(65), + [anon_sym_Json] = ACTIONS(67), + [anon_sym_MutJson] = ACTIONS(67), }, [6] = { - [sym_reference] = STATE(276), - [sym_custom_type] = STATE(597), - [sym_nested_identifier] = STATE(149), - [sym__statement] = STATE(7), - [sym_short_import_statement] = STATE(7), - [sym_struct_definition] = STATE(7), - [sym_enum_definition] = STATE(7), - [sym_return_statement] = STATE(7), - [sym_variable_assignment_statement] = STATE(7), - [sym_expression_statement] = STATE(7), - [sym_variable_definition_statement] = STATE(7), - [sym_class_definition] = STATE(7), - [sym_resource_definition] = STATE(7), - [sym_for_in_loop] = STATE(7), - [sym_while_statement] = STATE(7), - [sym_break_statement] = STATE(7), - [sym_continue_statement] = STATE(7), - [sym_if_statement] = STATE(7), - [sym_try_catch_statement] = STATE(7), - [sym_expression] = STATE(272), - [sym__literal] = STATE(158), - [sym_number] = STATE(133), - [sym__integer] = STATE(144), - [sym__decimal] = STATE(144), - [sym_bool] = STATE(187), - [sym_duration] = STATE(187), - [sym_seconds] = STATE(189), - [sym_minutes] = STATE(189), - [sym_hours] = STATE(189), - [sym_string] = STATE(187), - [sym_call] = STATE(158), - [sym_new_expression] = STATE(158), - [sym_parameter_list] = STATE(422), - [sym_immutable_container_type] = STATE(513), - [sym_mutable_container_type] = STATE(513), - [sym__builtin_container_type] = STATE(513), - [sym_unary_expression] = STATE(158), - [sym_binary_expression] = STATE(158), - [sym_preflight_closure] = STATE(158), - [sym_inflight_closure] = STATE(158), - [sym_await_expression] = STATE(158), - [sym_defer_expression] = STATE(158), - [sym_parenthesized_expression] = STATE(158), - [sym__collection_literal] = STATE(158), - [sym_array_literal] = STATE(158), - [sym_set_literal] = STATE(158), - [sym_map_literal] = STATE(158), - [sym_struct_literal] = STATE(158), - [sym_structured_access_expression] = STATE(158), - [sym_json_literal] = STATE(158), - [sym_json_container_type] = STATE(129), - [aux_sym_source_repeat1] = STATE(7), + [sym_reference] = STATE(293), + [sym_custom_type] = STATE(715), + [sym_nested_identifier] = STATE(166), + [sym__statement] = STATE(3), + [sym_short_import_statement] = STATE(3), + [sym_struct_definition] = STATE(3), + [sym_enum_definition] = STATE(3), + [sym_return_statement] = STATE(3), + [sym_variable_assignment_statement] = STATE(3), + [sym_expression_statement] = STATE(3), + [sym_variable_definition_statement] = STATE(3), + [sym_class_definition] = STATE(3), + [sym_resource_definition] = STATE(3), + [sym_interface_definition] = STATE(3), + [sym_for_in_loop] = STATE(3), + [sym_while_statement] = STATE(3), + [sym_break_statement] = STATE(3), + [sym_continue_statement] = STATE(3), + [sym_if_statement] = STATE(3), + [sym_try_catch_statement] = STATE(3), + [sym_expression] = STATE(295), + [sym__literal] = STATE(216), + [sym_number] = STATE(158), + [sym__integer] = STATE(159), + [sym__decimal] = STATE(159), + [sym_bool] = STATE(218), + [sym_duration] = STATE(218), + [sym_seconds] = STATE(177), + [sym_minutes] = STATE(177), + [sym_hours] = STATE(177), + [sym_string] = STATE(218), + [sym_call] = STATE(216), + [sym_new_expression] = STATE(216), + [sym_parameter_list] = STATE(503), + [sym_immutable_container_type] = STATE(597), + [sym_mutable_container_type] = STATE(597), + [sym__builtin_container_type] = STATE(597), + [sym_unary_expression] = STATE(216), + [sym_binary_expression] = STATE(216), + [sym_preflight_closure] = STATE(216), + [sym_inflight_closure] = STATE(216), + [sym_await_expression] = STATE(216), + [sym_defer_expression] = STATE(216), + [sym_parenthesized_expression] = STATE(216), + [sym__collection_literal] = STATE(216), + [sym_array_literal] = STATE(216), + [sym_set_literal] = STATE(216), + [sym_map_literal] = STATE(216), + [sym_struct_literal] = STATE(216), + [sym_structured_access_expression] = STATE(216), + [sym_json_literal] = STATE(216), + [sym_json_container_type] = STATE(147), + [aux_sym_source_repeat1] = STATE(3), [sym_identifier] = ACTIONS(7), [anon_sym_LBRACE] = ACTIONS(9), - [anon_sym_RBRACE] = ACTIONS(165), + [anon_sym_RBRACE] = ACTIONS(170), [sym_comment] = ACTIONS(3), [anon_sym_inflight] = ACTIONS(11), [anon_sym_bring] = ACTIONS(13), @@ -5146,41 +5693,42 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_let] = ACTIONS(21), [anon_sym_class] = ACTIONS(23), [anon_sym_resource] = ACTIONS(25), - [anon_sym_for] = ACTIONS(27), - [anon_sym_while] = ACTIONS(29), - [anon_sym_break] = ACTIONS(31), - [anon_sym_continue] = ACTIONS(33), - [anon_sym_if] = ACTIONS(35), - [anon_sym_try] = ACTIONS(37), - [anon_sym_0] = ACTIONS(39), - [aux_sym__integer_token1] = ACTIONS(39), - [aux_sym__decimal_token1] = ACTIONS(41), - [aux_sym__decimal_token2] = ACTIONS(41), - [anon_sym_true] = ACTIONS(43), - [anon_sym_false] = ACTIONS(43), - [anon_sym_DQUOTE] = ACTIONS(45), - [anon_sym_LPAREN] = ACTIONS(47), - [anon_sym_new] = ACTIONS(49), - [anon_sym_Array] = ACTIONS(51), - [anon_sym_Set] = ACTIONS(51), - [anon_sym_Map] = ACTIONS(51), - [anon_sym_Promise] = ACTIONS(51), - [anon_sym_MutSet] = ACTIONS(53), - [anon_sym_MutMap] = ACTIONS(53), - [anon_sym_MutArray] = ACTIONS(53), - [anon_sym_DASH_DASH] = ACTIONS(55), - [anon_sym_DASH] = ACTIONS(57), - [anon_sym_BANG] = ACTIONS(55), - [anon_sym_await] = ACTIONS(59), - [anon_sym_defer] = ACTIONS(61), - [anon_sym_LBRACK] = ACTIONS(63), - [anon_sym_Json] = ACTIONS(65), - [anon_sym_MutJson] = ACTIONS(65), + [anon_sym_interface] = ACTIONS(27), + [anon_sym_for] = ACTIONS(29), + [anon_sym_while] = ACTIONS(31), + [anon_sym_break] = ACTIONS(33), + [anon_sym_continue] = ACTIONS(35), + [anon_sym_if] = ACTIONS(37), + [anon_sym_try] = ACTIONS(39), + [anon_sym_0] = ACTIONS(41), + [aux_sym__integer_token1] = ACTIONS(41), + [aux_sym__decimal_token1] = ACTIONS(43), + [aux_sym__decimal_token2] = ACTIONS(43), + [anon_sym_true] = ACTIONS(45), + [anon_sym_false] = ACTIONS(45), + [anon_sym_DQUOTE] = ACTIONS(47), + [anon_sym_LPAREN] = ACTIONS(49), + [anon_sym_new] = ACTIONS(51), + [anon_sym_Array] = ACTIONS(53), + [anon_sym_Set] = ACTIONS(53), + [anon_sym_Map] = ACTIONS(53), + [anon_sym_Promise] = ACTIONS(53), + [anon_sym_MutSet] = ACTIONS(55), + [anon_sym_MutMap] = ACTIONS(55), + [anon_sym_MutArray] = ACTIONS(55), + [anon_sym_DASH_DASH] = ACTIONS(57), + [anon_sym_DASH] = ACTIONS(59), + [anon_sym_BANG] = ACTIONS(57), + [anon_sym_await] = ACTIONS(61), + [anon_sym_defer] = ACTIONS(63), + [anon_sym_LBRACK] = ACTIONS(65), + [anon_sym_Json] = ACTIONS(67), + [anon_sym_MutJson] = ACTIONS(67), }, [7] = { - [sym_reference] = STATE(276), - [sym_custom_type] = STATE(597), - [sym_nested_identifier] = STATE(149), + [sym_reference] = STATE(293), + [sym_custom_type] = STATE(715), + [sym_nested_identifier] = STATE(166), [sym__statement] = STATE(2), [sym_short_import_statement] = STATE(2), [sym_struct_definition] = STATE(2), @@ -5191,48 +5739,49 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_variable_definition_statement] = STATE(2), [sym_class_definition] = STATE(2), [sym_resource_definition] = STATE(2), + [sym_interface_definition] = STATE(2), [sym_for_in_loop] = STATE(2), [sym_while_statement] = STATE(2), [sym_break_statement] = STATE(2), [sym_continue_statement] = STATE(2), [sym_if_statement] = STATE(2), [sym_try_catch_statement] = STATE(2), - [sym_expression] = STATE(272), - [sym__literal] = STATE(158), - [sym_number] = STATE(133), - [sym__integer] = STATE(144), - [sym__decimal] = STATE(144), - [sym_bool] = STATE(187), - [sym_duration] = STATE(187), - [sym_seconds] = STATE(189), - [sym_minutes] = STATE(189), - [sym_hours] = STATE(189), - [sym_string] = STATE(187), - [sym_call] = STATE(158), - [sym_new_expression] = STATE(158), - [sym_parameter_list] = STATE(422), - [sym_immutable_container_type] = STATE(513), - [sym_mutable_container_type] = STATE(513), - [sym__builtin_container_type] = STATE(513), - [sym_unary_expression] = STATE(158), - [sym_binary_expression] = STATE(158), - [sym_preflight_closure] = STATE(158), - [sym_inflight_closure] = STATE(158), - [sym_await_expression] = STATE(158), - [sym_defer_expression] = STATE(158), - [sym_parenthesized_expression] = STATE(158), - [sym__collection_literal] = STATE(158), - [sym_array_literal] = STATE(158), - [sym_set_literal] = STATE(158), - [sym_map_literal] = STATE(158), - [sym_struct_literal] = STATE(158), - [sym_structured_access_expression] = STATE(158), - [sym_json_literal] = STATE(158), - [sym_json_container_type] = STATE(129), + [sym_expression] = STATE(295), + [sym__literal] = STATE(216), + [sym_number] = STATE(158), + [sym__integer] = STATE(159), + [sym__decimal] = STATE(159), + [sym_bool] = STATE(218), + [sym_duration] = STATE(218), + [sym_seconds] = STATE(177), + [sym_minutes] = STATE(177), + [sym_hours] = STATE(177), + [sym_string] = STATE(218), + [sym_call] = STATE(216), + [sym_new_expression] = STATE(216), + [sym_parameter_list] = STATE(503), + [sym_immutable_container_type] = STATE(597), + [sym_mutable_container_type] = STATE(597), + [sym__builtin_container_type] = STATE(597), + [sym_unary_expression] = STATE(216), + [sym_binary_expression] = STATE(216), + [sym_preflight_closure] = STATE(216), + [sym_inflight_closure] = STATE(216), + [sym_await_expression] = STATE(216), + [sym_defer_expression] = STATE(216), + [sym_parenthesized_expression] = STATE(216), + [sym__collection_literal] = STATE(216), + [sym_array_literal] = STATE(216), + [sym_set_literal] = STATE(216), + [sym_map_literal] = STATE(216), + [sym_struct_literal] = STATE(216), + [sym_structured_access_expression] = STATE(216), + [sym_json_literal] = STATE(216), + [sym_json_container_type] = STATE(147), [aux_sym_source_repeat1] = STATE(2), + [ts_builtin_sym_end] = ACTIONS(172), [sym_identifier] = ACTIONS(7), [anon_sym_LBRACE] = ACTIONS(9), - [anon_sym_RBRACE] = ACTIONS(167), [sym_comment] = ACTIONS(3), [anon_sym_inflight] = ACTIONS(11), [anon_sym_bring] = ACTIONS(13), @@ -5242,445 +5791,446 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_let] = ACTIONS(21), [anon_sym_class] = ACTIONS(23), [anon_sym_resource] = ACTIONS(25), - [anon_sym_for] = ACTIONS(27), - [anon_sym_while] = ACTIONS(29), - [anon_sym_break] = ACTIONS(31), - [anon_sym_continue] = ACTIONS(33), - [anon_sym_if] = ACTIONS(35), - [anon_sym_try] = ACTIONS(37), - [anon_sym_0] = ACTIONS(39), - [aux_sym__integer_token1] = ACTIONS(39), - [aux_sym__decimal_token1] = ACTIONS(41), - [aux_sym__decimal_token2] = ACTIONS(41), - [anon_sym_true] = ACTIONS(43), - [anon_sym_false] = ACTIONS(43), - [anon_sym_DQUOTE] = ACTIONS(45), - [anon_sym_LPAREN] = ACTIONS(47), - [anon_sym_new] = ACTIONS(49), - [anon_sym_Array] = ACTIONS(51), - [anon_sym_Set] = ACTIONS(51), - [anon_sym_Map] = ACTIONS(51), - [anon_sym_Promise] = ACTIONS(51), - [anon_sym_MutSet] = ACTIONS(53), - [anon_sym_MutMap] = ACTIONS(53), - [anon_sym_MutArray] = ACTIONS(53), - [anon_sym_DASH_DASH] = ACTIONS(55), - [anon_sym_DASH] = ACTIONS(57), - [anon_sym_BANG] = ACTIONS(55), - [anon_sym_await] = ACTIONS(59), - [anon_sym_defer] = ACTIONS(61), - [anon_sym_LBRACK] = ACTIONS(63), - [anon_sym_Json] = ACTIONS(65), - [anon_sym_MutJson] = ACTIONS(65), + [anon_sym_interface] = ACTIONS(27), + [anon_sym_for] = ACTIONS(29), + [anon_sym_while] = ACTIONS(31), + [anon_sym_break] = ACTIONS(33), + [anon_sym_continue] = ACTIONS(35), + [anon_sym_if] = ACTIONS(37), + [anon_sym_try] = ACTIONS(39), + [anon_sym_0] = ACTIONS(41), + [aux_sym__integer_token1] = ACTIONS(41), + [aux_sym__decimal_token1] = ACTIONS(43), + [aux_sym__decimal_token2] = ACTIONS(43), + [anon_sym_true] = ACTIONS(45), + [anon_sym_false] = ACTIONS(45), + [anon_sym_DQUOTE] = ACTIONS(47), + [anon_sym_LPAREN] = ACTIONS(49), + [anon_sym_new] = ACTIONS(51), + [anon_sym_Array] = ACTIONS(53), + [anon_sym_Set] = ACTIONS(53), + [anon_sym_Map] = ACTIONS(53), + [anon_sym_Promise] = ACTIONS(53), + [anon_sym_MutSet] = ACTIONS(55), + [anon_sym_MutMap] = ACTIONS(55), + [anon_sym_MutArray] = ACTIONS(55), + [anon_sym_DASH_DASH] = ACTIONS(57), + [anon_sym_DASH] = ACTIONS(59), + [anon_sym_BANG] = ACTIONS(57), + [anon_sym_await] = ACTIONS(61), + [anon_sym_defer] = ACTIONS(63), + [anon_sym_LBRACK] = ACTIONS(65), + [anon_sym_Json] = ACTIONS(67), + [anon_sym_MutJson] = ACTIONS(67), }, [8] = { - [sym_reference] = STATE(158), - [sym_custom_type] = STATE(597), - [sym_nested_identifier] = STATE(149), - [sym_expression] = STATE(233), - [sym__literal] = STATE(158), - [sym_number] = STATE(133), - [sym__integer] = STATE(144), - [sym__decimal] = STATE(144), - [sym_bool] = STATE(187), - [sym_duration] = STATE(187), - [sym_seconds] = STATE(189), - [sym_minutes] = STATE(189), - [sym_hours] = STATE(189), - [sym_string] = STATE(187), - [sym_call] = STATE(158), - [sym_positional_argument] = STATE(483), - [sym_keyword_argument] = STATE(427), - [sym_new_expression] = STATE(158), - [sym_parameter_list] = STATE(422), - [sym_immutable_container_type] = STATE(513), - [sym_mutable_container_type] = STATE(513), - [sym__builtin_container_type] = STATE(513), - [sym_unary_expression] = STATE(158), - [sym_binary_expression] = STATE(158), - [sym_preflight_closure] = STATE(158), - [sym_inflight_closure] = STATE(158), - [sym_await_expression] = STATE(158), - [sym_defer_expression] = STATE(158), - [sym_parenthesized_expression] = STATE(158), - [sym__collection_literal] = STATE(158), - [sym_array_literal] = STATE(158), - [sym_set_literal] = STATE(158), - [sym_map_literal] = STATE(158), - [sym_struct_literal] = STATE(158), - [sym_structured_access_expression] = STATE(158), - [sym_json_literal] = STATE(158), - [sym_json_container_type] = STATE(129), - [sym_identifier] = ACTIONS(169), + [sym_reference] = STATE(216), + [sym_custom_type] = STATE(715), + [sym_nested_identifier] = STATE(166), + [sym_expression] = STATE(255), + [sym__literal] = STATE(216), + [sym_number] = STATE(158), + [sym__integer] = STATE(159), + [sym__decimal] = STATE(159), + [sym_bool] = STATE(218), + [sym_duration] = STATE(218), + [sym_seconds] = STATE(177), + [sym_minutes] = STATE(177), + [sym_hours] = STATE(177), + [sym_string] = STATE(218), + [sym_call] = STATE(216), + [sym_positional_argument] = STATE(547), + [sym_keyword_argument] = STATE(548), + [sym_new_expression] = STATE(216), + [sym_parameter_list] = STATE(503), + [sym_immutable_container_type] = STATE(597), + [sym_mutable_container_type] = STATE(597), + [sym__builtin_container_type] = STATE(597), + [sym_unary_expression] = STATE(216), + [sym_binary_expression] = STATE(216), + [sym_preflight_closure] = STATE(216), + [sym_inflight_closure] = STATE(216), + [sym_await_expression] = STATE(216), + [sym_defer_expression] = STATE(216), + [sym_parenthesized_expression] = STATE(216), + [sym__collection_literal] = STATE(216), + [sym_array_literal] = STATE(216), + [sym_set_literal] = STATE(216), + [sym_map_literal] = STATE(216), + [sym_struct_literal] = STATE(216), + [sym_structured_access_expression] = STATE(216), + [sym_json_literal] = STATE(216), + [sym_json_container_type] = STATE(147), + [sym_identifier] = ACTIONS(174), [anon_sym_LBRACE] = ACTIONS(9), [sym_comment] = ACTIONS(3), [anon_sym_inflight] = ACTIONS(11), - [anon_sym_COMMA] = ACTIONS(171), - [anon_sym_0] = ACTIONS(39), - [aux_sym__integer_token1] = ACTIONS(39), - [aux_sym__decimal_token1] = ACTIONS(41), - [aux_sym__decimal_token2] = ACTIONS(41), - [anon_sym_true] = ACTIONS(43), - [anon_sym_false] = ACTIONS(43), - [anon_sym_DQUOTE] = ACTIONS(45), - [anon_sym_LPAREN] = ACTIONS(47), - [anon_sym_RPAREN] = ACTIONS(173), - [anon_sym_new] = ACTIONS(49), - [anon_sym_Array] = ACTIONS(51), - [anon_sym_Set] = ACTIONS(51), - [anon_sym_Map] = ACTIONS(51), - [anon_sym_Promise] = ACTIONS(51), - [anon_sym_MutSet] = ACTIONS(53), - [anon_sym_MutMap] = ACTIONS(53), - [anon_sym_MutArray] = ACTIONS(53), - [anon_sym_DASH_DASH] = ACTIONS(55), - [anon_sym_DASH] = ACTIONS(57), - [anon_sym_BANG] = ACTIONS(55), - [anon_sym_await] = ACTIONS(59), - [anon_sym_defer] = ACTIONS(61), - [anon_sym_LBRACK] = ACTIONS(63), - [anon_sym_Json] = ACTIONS(65), - [anon_sym_MutJson] = ACTIONS(65), + [anon_sym_COMMA] = ACTIONS(176), + [anon_sym_0] = ACTIONS(41), + [aux_sym__integer_token1] = ACTIONS(41), + [aux_sym__decimal_token1] = ACTIONS(43), + [aux_sym__decimal_token2] = ACTIONS(43), + [anon_sym_true] = ACTIONS(45), + [anon_sym_false] = ACTIONS(45), + [anon_sym_DQUOTE] = ACTIONS(47), + [anon_sym_LPAREN] = ACTIONS(49), + [anon_sym_RPAREN] = ACTIONS(178), + [anon_sym_new] = ACTIONS(51), + [anon_sym_Array] = ACTIONS(53), + [anon_sym_Set] = ACTIONS(53), + [anon_sym_Map] = ACTIONS(53), + [anon_sym_Promise] = ACTIONS(53), + [anon_sym_MutSet] = ACTIONS(55), + [anon_sym_MutMap] = ACTIONS(55), + [anon_sym_MutArray] = ACTIONS(55), + [anon_sym_DASH_DASH] = ACTIONS(57), + [anon_sym_DASH] = ACTIONS(59), + [anon_sym_BANG] = ACTIONS(57), + [anon_sym_await] = ACTIONS(61), + [anon_sym_defer] = ACTIONS(63), + [anon_sym_LBRACK] = ACTIONS(65), + [anon_sym_Json] = ACTIONS(67), + [anon_sym_MutJson] = ACTIONS(67), }, [9] = { - [sym_reference] = STATE(158), - [sym_custom_type] = STATE(597), - [sym_nested_identifier] = STATE(149), - [sym_expression] = STATE(233), - [sym__literal] = STATE(158), - [sym_number] = STATE(133), - [sym__integer] = STATE(144), - [sym__decimal] = STATE(144), - [sym_bool] = STATE(187), - [sym_duration] = STATE(187), - [sym_seconds] = STATE(189), - [sym_minutes] = STATE(189), - [sym_hours] = STATE(189), - [sym_string] = STATE(187), - [sym_call] = STATE(158), - [sym_positional_argument] = STATE(483), - [sym_keyword_argument] = STATE(462), - [sym_new_expression] = STATE(158), - [sym_parameter_list] = STATE(422), - [sym_immutable_container_type] = STATE(513), - [sym_mutable_container_type] = STATE(513), - [sym__builtin_container_type] = STATE(513), - [sym_unary_expression] = STATE(158), - [sym_binary_expression] = STATE(158), - [sym_preflight_closure] = STATE(158), - [sym_inflight_closure] = STATE(158), - [sym_await_expression] = STATE(158), - [sym_defer_expression] = STATE(158), - [sym_parenthesized_expression] = STATE(158), - [sym__collection_literal] = STATE(158), - [sym_array_literal] = STATE(158), - [sym_set_literal] = STATE(158), - [sym_map_literal] = STATE(158), - [sym_struct_literal] = STATE(158), - [sym_structured_access_expression] = STATE(158), - [sym_json_literal] = STATE(158), - [sym_json_container_type] = STATE(129), - [sym_identifier] = ACTIONS(169), + [sym_reference] = STATE(216), + [sym_custom_type] = STATE(715), + [sym_nested_identifier] = STATE(166), + [sym_expression] = STATE(255), + [sym__literal] = STATE(216), + [sym_number] = STATE(158), + [sym__integer] = STATE(159), + [sym__decimal] = STATE(159), + [sym_bool] = STATE(218), + [sym_duration] = STATE(218), + [sym_seconds] = STATE(177), + [sym_minutes] = STATE(177), + [sym_hours] = STATE(177), + [sym_string] = STATE(218), + [sym_call] = STATE(216), + [sym_positional_argument] = STATE(572), + [sym_keyword_argument] = STATE(532), + [sym_new_expression] = STATE(216), + [sym_parameter_list] = STATE(503), + [sym_immutable_container_type] = STATE(597), + [sym_mutable_container_type] = STATE(597), + [sym__builtin_container_type] = STATE(597), + [sym_unary_expression] = STATE(216), + [sym_binary_expression] = STATE(216), + [sym_preflight_closure] = STATE(216), + [sym_inflight_closure] = STATE(216), + [sym_await_expression] = STATE(216), + [sym_defer_expression] = STATE(216), + [sym_parenthesized_expression] = STATE(216), + [sym__collection_literal] = STATE(216), + [sym_array_literal] = STATE(216), + [sym_set_literal] = STATE(216), + [sym_map_literal] = STATE(216), + [sym_struct_literal] = STATE(216), + [sym_structured_access_expression] = STATE(216), + [sym_json_literal] = STATE(216), + [sym_json_container_type] = STATE(147), + [sym_identifier] = ACTIONS(174), [anon_sym_LBRACE] = ACTIONS(9), [sym_comment] = ACTIONS(3), [anon_sym_inflight] = ACTIONS(11), - [anon_sym_COMMA] = ACTIONS(175), - [anon_sym_0] = ACTIONS(39), - [aux_sym__integer_token1] = ACTIONS(39), - [aux_sym__decimal_token1] = ACTIONS(41), - [aux_sym__decimal_token2] = ACTIONS(41), - [anon_sym_true] = ACTIONS(43), - [anon_sym_false] = ACTIONS(43), - [anon_sym_DQUOTE] = ACTIONS(45), - [anon_sym_LPAREN] = ACTIONS(47), - [anon_sym_RPAREN] = ACTIONS(177), - [anon_sym_new] = ACTIONS(49), - [anon_sym_Array] = ACTIONS(51), - [anon_sym_Set] = ACTIONS(51), - [anon_sym_Map] = ACTIONS(51), - [anon_sym_Promise] = ACTIONS(51), - [anon_sym_MutSet] = ACTIONS(53), - [anon_sym_MutMap] = ACTIONS(53), - [anon_sym_MutArray] = ACTIONS(53), - [anon_sym_DASH_DASH] = ACTIONS(55), - [anon_sym_DASH] = ACTIONS(57), - [anon_sym_BANG] = ACTIONS(55), - [anon_sym_await] = ACTIONS(59), - [anon_sym_defer] = ACTIONS(61), - [anon_sym_LBRACK] = ACTIONS(63), - [anon_sym_Json] = ACTIONS(65), - [anon_sym_MutJson] = ACTIONS(65), + [anon_sym_COMMA] = ACTIONS(180), + [anon_sym_0] = ACTIONS(41), + [aux_sym__integer_token1] = ACTIONS(41), + [aux_sym__decimal_token1] = ACTIONS(43), + [aux_sym__decimal_token2] = ACTIONS(43), + [anon_sym_true] = ACTIONS(45), + [anon_sym_false] = ACTIONS(45), + [anon_sym_DQUOTE] = ACTIONS(47), + [anon_sym_LPAREN] = ACTIONS(49), + [anon_sym_RPAREN] = ACTIONS(182), + [anon_sym_new] = ACTIONS(51), + [anon_sym_Array] = ACTIONS(53), + [anon_sym_Set] = ACTIONS(53), + [anon_sym_Map] = ACTIONS(53), + [anon_sym_Promise] = ACTIONS(53), + [anon_sym_MutSet] = ACTIONS(55), + [anon_sym_MutMap] = ACTIONS(55), + [anon_sym_MutArray] = ACTIONS(55), + [anon_sym_DASH_DASH] = ACTIONS(57), + [anon_sym_DASH] = ACTIONS(59), + [anon_sym_BANG] = ACTIONS(57), + [anon_sym_await] = ACTIONS(61), + [anon_sym_defer] = ACTIONS(63), + [anon_sym_LBRACK] = ACTIONS(65), + [anon_sym_Json] = ACTIONS(67), + [anon_sym_MutJson] = ACTIONS(67), }, [10] = { - [sym_reference] = STATE(158), - [sym_custom_type] = STATE(597), - [sym_nested_identifier] = STATE(149), - [sym_expression] = STATE(233), - [sym__literal] = STATE(158), - [sym_number] = STATE(133), - [sym__integer] = STATE(144), - [sym__decimal] = STATE(144), - [sym_bool] = STATE(187), - [sym_duration] = STATE(187), - [sym_seconds] = STATE(189), - [sym_minutes] = STATE(189), - [sym_hours] = STATE(189), - [sym_string] = STATE(187), - [sym_call] = STATE(158), - [sym_positional_argument] = STATE(446), - [sym_keyword_argument] = STATE(447), - [sym_new_expression] = STATE(158), - [sym_parameter_list] = STATE(422), - [sym_immutable_container_type] = STATE(513), - [sym_mutable_container_type] = STATE(513), - [sym__builtin_container_type] = STATE(513), - [sym_unary_expression] = STATE(158), - [sym_binary_expression] = STATE(158), - [sym_preflight_closure] = STATE(158), - [sym_inflight_closure] = STATE(158), - [sym_await_expression] = STATE(158), - [sym_defer_expression] = STATE(158), - [sym_parenthesized_expression] = STATE(158), - [sym__collection_literal] = STATE(158), - [sym_array_literal] = STATE(158), - [sym_set_literal] = STATE(158), - [sym_map_literal] = STATE(158), - [sym_struct_literal] = STATE(158), - [sym_structured_access_expression] = STATE(158), - [sym_json_literal] = STATE(158), - [sym_json_container_type] = STATE(129), - [sym_identifier] = ACTIONS(169), + [sym_reference] = STATE(216), + [sym_custom_type] = STATE(715), + [sym_nested_identifier] = STATE(166), + [sym_expression] = STATE(255), + [sym__literal] = STATE(216), + [sym_number] = STATE(158), + [sym__integer] = STATE(159), + [sym__decimal] = STATE(159), + [sym_bool] = STATE(218), + [sym_duration] = STATE(218), + [sym_seconds] = STATE(177), + [sym_minutes] = STATE(177), + [sym_hours] = STATE(177), + [sym_string] = STATE(218), + [sym_call] = STATE(216), + [sym_positional_argument] = STATE(572), + [sym_keyword_argument] = STATE(522), + [sym_new_expression] = STATE(216), + [sym_parameter_list] = STATE(503), + [sym_immutable_container_type] = STATE(597), + [sym_mutable_container_type] = STATE(597), + [sym__builtin_container_type] = STATE(597), + [sym_unary_expression] = STATE(216), + [sym_binary_expression] = STATE(216), + [sym_preflight_closure] = STATE(216), + [sym_inflight_closure] = STATE(216), + [sym_await_expression] = STATE(216), + [sym_defer_expression] = STATE(216), + [sym_parenthesized_expression] = STATE(216), + [sym__collection_literal] = STATE(216), + [sym_array_literal] = STATE(216), + [sym_set_literal] = STATE(216), + [sym_map_literal] = STATE(216), + [sym_struct_literal] = STATE(216), + [sym_structured_access_expression] = STATE(216), + [sym_json_literal] = STATE(216), + [sym_json_container_type] = STATE(147), + [sym_identifier] = ACTIONS(174), [anon_sym_LBRACE] = ACTIONS(9), [sym_comment] = ACTIONS(3), [anon_sym_inflight] = ACTIONS(11), - [anon_sym_COMMA] = ACTIONS(179), - [anon_sym_0] = ACTIONS(39), - [aux_sym__integer_token1] = ACTIONS(39), - [aux_sym__decimal_token1] = ACTIONS(41), - [aux_sym__decimal_token2] = ACTIONS(41), - [anon_sym_true] = ACTIONS(43), - [anon_sym_false] = ACTIONS(43), - [anon_sym_DQUOTE] = ACTIONS(45), - [anon_sym_LPAREN] = ACTIONS(47), - [anon_sym_RPAREN] = ACTIONS(181), - [anon_sym_new] = ACTIONS(49), - [anon_sym_Array] = ACTIONS(51), - [anon_sym_Set] = ACTIONS(51), - [anon_sym_Map] = ACTIONS(51), - [anon_sym_Promise] = ACTIONS(51), - [anon_sym_MutSet] = ACTIONS(53), - [anon_sym_MutMap] = ACTIONS(53), - [anon_sym_MutArray] = ACTIONS(53), - [anon_sym_DASH_DASH] = ACTIONS(55), - [anon_sym_DASH] = ACTIONS(57), - [anon_sym_BANG] = ACTIONS(55), - [anon_sym_await] = ACTIONS(59), - [anon_sym_defer] = ACTIONS(61), - [anon_sym_LBRACK] = ACTIONS(63), - [anon_sym_Json] = ACTIONS(65), - [anon_sym_MutJson] = ACTIONS(65), + [anon_sym_COMMA] = ACTIONS(184), + [anon_sym_0] = ACTIONS(41), + [aux_sym__integer_token1] = ACTIONS(41), + [aux_sym__decimal_token1] = ACTIONS(43), + [aux_sym__decimal_token2] = ACTIONS(43), + [anon_sym_true] = ACTIONS(45), + [anon_sym_false] = ACTIONS(45), + [anon_sym_DQUOTE] = ACTIONS(47), + [anon_sym_LPAREN] = ACTIONS(49), + [anon_sym_RPAREN] = ACTIONS(186), + [anon_sym_new] = ACTIONS(51), + [anon_sym_Array] = ACTIONS(53), + [anon_sym_Set] = ACTIONS(53), + [anon_sym_Map] = ACTIONS(53), + [anon_sym_Promise] = ACTIONS(53), + [anon_sym_MutSet] = ACTIONS(55), + [anon_sym_MutMap] = ACTIONS(55), + [anon_sym_MutArray] = ACTIONS(55), + [anon_sym_DASH_DASH] = ACTIONS(57), + [anon_sym_DASH] = ACTIONS(59), + [anon_sym_BANG] = ACTIONS(57), + [anon_sym_await] = ACTIONS(61), + [anon_sym_defer] = ACTIONS(63), + [anon_sym_LBRACK] = ACTIONS(65), + [anon_sym_Json] = ACTIONS(67), + [anon_sym_MutJson] = ACTIONS(67), }, [11] = { - [sym_reference] = STATE(158), - [sym_custom_type] = STATE(597), - [sym_nested_identifier] = STATE(149), - [sym_expression] = STATE(243), - [sym__literal] = STATE(158), - [sym_number] = STATE(133), - [sym__integer] = STATE(144), - [sym__decimal] = STATE(144), - [sym_bool] = STATE(187), - [sym_duration] = STATE(187), - [sym_seconds] = STATE(189), - [sym_minutes] = STATE(189), - [sym_hours] = STATE(189), - [sym_string] = STATE(187), - [sym_call] = STATE(158), - [sym_new_expression] = STATE(158), - [sym_parameter_definition] = STATE(433), - [sym_parameter_list] = STATE(422), - [sym_immutable_container_type] = STATE(513), - [sym_mutable_container_type] = STATE(513), - [sym__builtin_container_type] = STATE(513), - [sym_unary_expression] = STATE(158), - [sym_binary_expression] = STATE(158), - [sym_preflight_closure] = STATE(158), - [sym_inflight_closure] = STATE(158), - [sym_await_expression] = STATE(158), - [sym_defer_expression] = STATE(158), - [sym_parenthesized_expression] = STATE(158), - [sym__collection_literal] = STATE(158), - [sym_array_literal] = STATE(158), - [sym_set_literal] = STATE(158), - [sym_map_literal] = STATE(158), - [sym_struct_literal] = STATE(158), - [sym_structured_access_expression] = STATE(158), - [sym_json_literal] = STATE(158), - [sym_json_container_type] = STATE(129), - [sym_identifier] = ACTIONS(183), + [sym_reference] = STATE(216), + [sym_custom_type] = STATE(715), + [sym_nested_identifier] = STATE(166), + [sym_expression] = STATE(288), + [sym__literal] = STATE(216), + [sym_number] = STATE(158), + [sym__integer] = STATE(159), + [sym__decimal] = STATE(159), + [sym_bool] = STATE(218), + [sym_duration] = STATE(218), + [sym_seconds] = STATE(177), + [sym_minutes] = STATE(177), + [sym_hours] = STATE(177), + [sym_string] = STATE(218), + [sym_call] = STATE(216), + [sym_new_expression] = STATE(216), + [sym_parameter_definition] = STATE(517), + [sym_parameter_list] = STATE(503), + [sym_immutable_container_type] = STATE(597), + [sym_mutable_container_type] = STATE(597), + [sym__builtin_container_type] = STATE(597), + [sym_unary_expression] = STATE(216), + [sym_binary_expression] = STATE(216), + [sym_preflight_closure] = STATE(216), + [sym_inflight_closure] = STATE(216), + [sym_await_expression] = STATE(216), + [sym_defer_expression] = STATE(216), + [sym_parenthesized_expression] = STATE(216), + [sym__collection_literal] = STATE(216), + [sym_array_literal] = STATE(216), + [sym_set_literal] = STATE(216), + [sym_map_literal] = STATE(216), + [sym_struct_literal] = STATE(216), + [sym_structured_access_expression] = STATE(216), + [sym_json_literal] = STATE(216), + [sym_json_container_type] = STATE(147), + [sym_identifier] = ACTIONS(188), [anon_sym_LBRACE] = ACTIONS(9), [sym_comment] = ACTIONS(3), [anon_sym_inflight] = ACTIONS(11), - [sym_reassignable] = ACTIONS(185), - [anon_sym_0] = ACTIONS(39), - [aux_sym__integer_token1] = ACTIONS(39), - [aux_sym__decimal_token1] = ACTIONS(41), - [aux_sym__decimal_token2] = ACTIONS(41), - [anon_sym_true] = ACTIONS(43), - [anon_sym_false] = ACTIONS(43), - [anon_sym_DQUOTE] = ACTIONS(45), - [anon_sym_LPAREN] = ACTIONS(47), - [anon_sym_RPAREN] = ACTIONS(187), - [anon_sym_new] = ACTIONS(49), - [anon_sym_Array] = ACTIONS(51), - [anon_sym_Set] = ACTIONS(51), - [anon_sym_Map] = ACTIONS(51), - [anon_sym_Promise] = ACTIONS(51), - [anon_sym_MutSet] = ACTIONS(53), - [anon_sym_MutMap] = ACTIONS(53), - [anon_sym_MutArray] = ACTIONS(53), - [anon_sym_DASH_DASH] = ACTIONS(55), - [anon_sym_DASH] = ACTIONS(57), - [anon_sym_BANG] = ACTIONS(55), - [anon_sym_await] = ACTIONS(59), - [anon_sym_defer] = ACTIONS(61), - [anon_sym_LBRACK] = ACTIONS(63), - [anon_sym_Json] = ACTIONS(65), - [anon_sym_MutJson] = ACTIONS(65), + [sym_reassignable] = ACTIONS(190), + [anon_sym_0] = ACTIONS(41), + [aux_sym__integer_token1] = ACTIONS(41), + [aux_sym__decimal_token1] = ACTIONS(43), + [aux_sym__decimal_token2] = ACTIONS(43), + [anon_sym_true] = ACTIONS(45), + [anon_sym_false] = ACTIONS(45), + [anon_sym_DQUOTE] = ACTIONS(47), + [anon_sym_LPAREN] = ACTIONS(49), + [anon_sym_RPAREN] = ACTIONS(192), + [anon_sym_new] = ACTIONS(51), + [anon_sym_Array] = ACTIONS(53), + [anon_sym_Set] = ACTIONS(53), + [anon_sym_Map] = ACTIONS(53), + [anon_sym_Promise] = ACTIONS(53), + [anon_sym_MutSet] = ACTIONS(55), + [anon_sym_MutMap] = ACTIONS(55), + [anon_sym_MutArray] = ACTIONS(55), + [anon_sym_DASH_DASH] = ACTIONS(57), + [anon_sym_DASH] = ACTIONS(59), + [anon_sym_BANG] = ACTIONS(57), + [anon_sym_await] = ACTIONS(61), + [anon_sym_defer] = ACTIONS(63), + [anon_sym_LBRACK] = ACTIONS(65), + [anon_sym_Json] = ACTIONS(67), + [anon_sym_MutJson] = ACTIONS(67), }, [12] = { - [sym_reference] = STATE(158), - [sym_custom_type] = STATE(597), - [sym_nested_identifier] = STATE(149), - [sym_expression] = STATE(230), - [sym__literal] = STATE(158), - [sym_number] = STATE(133), - [sym__integer] = STATE(144), - [sym__decimal] = STATE(144), - [sym_bool] = STATE(187), - [sym_duration] = STATE(187), - [sym_seconds] = STATE(189), - [sym_minutes] = STATE(189), - [sym_hours] = STATE(189), - [sym_string] = STATE(240), - [sym_call] = STATE(158), - [sym_new_expression] = STATE(158), - [sym_parameter_list] = STATE(422), - [sym_immutable_container_type] = STATE(513), - [sym_mutable_container_type] = STATE(513), - [sym__builtin_container_type] = STATE(513), - [sym_unary_expression] = STATE(158), - [sym_binary_expression] = STATE(158), - [sym_preflight_closure] = STATE(158), - [sym_inflight_closure] = STATE(158), - [sym_await_expression] = STATE(158), - [sym_defer_expression] = STATE(158), - [sym_parenthesized_expression] = STATE(158), - [sym__collection_literal] = STATE(158), - [sym_array_literal] = STATE(158), - [sym_set_literal] = STATE(158), - [sym_map_literal] = STATE(158), - [sym_struct_literal] = STATE(158), - [sym_map_literal_member] = STATE(423), - [sym_structured_access_expression] = STATE(158), - [sym_json_literal] = STATE(158), - [sym_json_container_type] = STATE(129), - [sym_identifier] = ACTIONS(189), + [sym_reference] = STATE(216), + [sym_custom_type] = STATE(715), + [sym_nested_identifier] = STATE(166), + [sym_expression] = STATE(245), + [sym__literal] = STATE(216), + [sym_number] = STATE(158), + [sym__integer] = STATE(159), + [sym__decimal] = STATE(159), + [sym_bool] = STATE(218), + [sym_duration] = STATE(218), + [sym_seconds] = STATE(177), + [sym_minutes] = STATE(177), + [sym_hours] = STATE(177), + [sym_string] = STATE(252), + [sym_call] = STATE(216), + [sym_new_expression] = STATE(216), + [sym_parameter_list] = STATE(503), + [sym_immutable_container_type] = STATE(597), + [sym_mutable_container_type] = STATE(597), + [sym__builtin_container_type] = STATE(597), + [sym_unary_expression] = STATE(216), + [sym_binary_expression] = STATE(216), + [sym_preflight_closure] = STATE(216), + [sym_inflight_closure] = STATE(216), + [sym_await_expression] = STATE(216), + [sym_defer_expression] = STATE(216), + [sym_parenthesized_expression] = STATE(216), + [sym__collection_literal] = STATE(216), + [sym_array_literal] = STATE(216), + [sym_set_literal] = STATE(216), + [sym_map_literal] = STATE(216), + [sym_struct_literal] = STATE(216), + [sym_map_literal_member] = STATE(505), + [sym_structured_access_expression] = STATE(216), + [sym_json_literal] = STATE(216), + [sym_json_container_type] = STATE(147), + [sym_identifier] = ACTIONS(194), [anon_sym_LBRACE] = ACTIONS(9), - [anon_sym_RBRACE] = ACTIONS(191), + [anon_sym_RBRACE] = ACTIONS(196), [sym_comment] = ACTIONS(3), [anon_sym_inflight] = ACTIONS(11), - [anon_sym_0] = ACTIONS(39), - [aux_sym__integer_token1] = ACTIONS(39), - [aux_sym__decimal_token1] = ACTIONS(41), - [aux_sym__decimal_token2] = ACTIONS(41), - [anon_sym_true] = ACTIONS(43), - [anon_sym_false] = ACTIONS(43), - [anon_sym_DQUOTE] = ACTIONS(45), - [anon_sym_LPAREN] = ACTIONS(47), - [anon_sym_new] = ACTIONS(49), - [anon_sym_Array] = ACTIONS(51), - [anon_sym_Set] = ACTIONS(51), - [anon_sym_Map] = ACTIONS(51), - [anon_sym_Promise] = ACTIONS(51), - [anon_sym_MutSet] = ACTIONS(53), - [anon_sym_MutMap] = ACTIONS(53), - [anon_sym_MutArray] = ACTIONS(53), - [anon_sym_DASH_DASH] = ACTIONS(55), - [anon_sym_DASH] = ACTIONS(57), - [anon_sym_BANG] = ACTIONS(55), - [anon_sym_await] = ACTIONS(59), - [anon_sym_defer] = ACTIONS(61), - [anon_sym_LBRACK] = ACTIONS(63), - [anon_sym_Json] = ACTIONS(65), - [anon_sym_MutJson] = ACTIONS(65), + [anon_sym_0] = ACTIONS(41), + [aux_sym__integer_token1] = ACTIONS(41), + [aux_sym__decimal_token1] = ACTIONS(43), + [aux_sym__decimal_token2] = ACTIONS(43), + [anon_sym_true] = ACTIONS(45), + [anon_sym_false] = ACTIONS(45), + [anon_sym_DQUOTE] = ACTIONS(47), + [anon_sym_LPAREN] = ACTIONS(49), + [anon_sym_new] = ACTIONS(51), + [anon_sym_Array] = ACTIONS(53), + [anon_sym_Set] = ACTIONS(53), + [anon_sym_Map] = ACTIONS(53), + [anon_sym_Promise] = ACTIONS(53), + [anon_sym_MutSet] = ACTIONS(55), + [anon_sym_MutMap] = ACTIONS(55), + [anon_sym_MutArray] = ACTIONS(55), + [anon_sym_DASH_DASH] = ACTIONS(57), + [anon_sym_DASH] = ACTIONS(59), + [anon_sym_BANG] = ACTIONS(57), + [anon_sym_await] = ACTIONS(61), + [anon_sym_defer] = ACTIONS(63), + [anon_sym_LBRACK] = ACTIONS(65), + [anon_sym_Json] = ACTIONS(67), + [anon_sym_MutJson] = ACTIONS(67), }, [13] = { - [sym_reference] = STATE(158), - [sym_custom_type] = STATE(597), - [sym_nested_identifier] = STATE(149), - [sym_expression] = STATE(228), - [sym__literal] = STATE(158), - [sym_number] = STATE(133), - [sym__integer] = STATE(144), - [sym__decimal] = STATE(144), - [sym_bool] = STATE(187), - [sym_duration] = STATE(187), - [sym_seconds] = STATE(189), - [sym_minutes] = STATE(189), - [sym_hours] = STATE(189), - [sym_string] = STATE(240), - [sym_call] = STATE(158), - [sym_new_expression] = STATE(158), - [sym_parameter_list] = STATE(422), - [sym_immutable_container_type] = STATE(513), - [sym_mutable_container_type] = STATE(513), - [sym__builtin_container_type] = STATE(513), - [sym_unary_expression] = STATE(158), - [sym_binary_expression] = STATE(158), - [sym_preflight_closure] = STATE(158), - [sym_inflight_closure] = STATE(158), - [sym_await_expression] = STATE(158), - [sym_defer_expression] = STATE(158), - [sym_parenthesized_expression] = STATE(158), - [sym__collection_literal] = STATE(158), - [sym_array_literal] = STATE(158), - [sym_set_literal] = STATE(158), - [sym_map_literal] = STATE(158), - [sym_struct_literal] = STATE(158), - [sym_map_literal_member] = STATE(449), - [sym_structured_access_expression] = STATE(158), - [sym_json_literal] = STATE(158), - [sym_json_container_type] = STATE(129), - [sym_identifier] = ACTIONS(189), + [sym_reference] = STATE(216), + [sym_custom_type] = STATE(715), + [sym_nested_identifier] = STATE(166), + [sym_expression] = STATE(249), + [sym__literal] = STATE(216), + [sym_number] = STATE(158), + [sym__integer] = STATE(159), + [sym__decimal] = STATE(159), + [sym_bool] = STATE(218), + [sym_duration] = STATE(218), + [sym_seconds] = STATE(177), + [sym_minutes] = STATE(177), + [sym_hours] = STATE(177), + [sym_string] = STATE(252), + [sym_call] = STATE(216), + [sym_new_expression] = STATE(216), + [sym_parameter_list] = STATE(503), + [sym_immutable_container_type] = STATE(597), + [sym_mutable_container_type] = STATE(597), + [sym__builtin_container_type] = STATE(597), + [sym_unary_expression] = STATE(216), + [sym_binary_expression] = STATE(216), + [sym_preflight_closure] = STATE(216), + [sym_inflight_closure] = STATE(216), + [sym_await_expression] = STATE(216), + [sym_defer_expression] = STATE(216), + [sym_parenthesized_expression] = STATE(216), + [sym__collection_literal] = STATE(216), + [sym_array_literal] = STATE(216), + [sym_set_literal] = STATE(216), + [sym_map_literal] = STATE(216), + [sym_struct_literal] = STATE(216), + [sym_map_literal_member] = STATE(549), + [sym_structured_access_expression] = STATE(216), + [sym_json_literal] = STATE(216), + [sym_json_container_type] = STATE(147), + [sym_identifier] = ACTIONS(194), [anon_sym_LBRACE] = ACTIONS(9), - [anon_sym_RBRACE] = ACTIONS(193), + [anon_sym_RBRACE] = ACTIONS(198), [sym_comment] = ACTIONS(3), [anon_sym_inflight] = ACTIONS(11), - [anon_sym_0] = ACTIONS(39), - [aux_sym__integer_token1] = ACTIONS(39), - [aux_sym__decimal_token1] = ACTIONS(41), - [aux_sym__decimal_token2] = ACTIONS(41), - [anon_sym_true] = ACTIONS(43), - [anon_sym_false] = ACTIONS(43), - [anon_sym_DQUOTE] = ACTIONS(45), - [anon_sym_LPAREN] = ACTIONS(47), - [anon_sym_new] = ACTIONS(49), - [anon_sym_Array] = ACTIONS(51), - [anon_sym_Set] = ACTIONS(51), - [anon_sym_Map] = ACTIONS(51), - [anon_sym_Promise] = ACTIONS(51), - [anon_sym_MutSet] = ACTIONS(53), - [anon_sym_MutMap] = ACTIONS(53), - [anon_sym_MutArray] = ACTIONS(53), - [anon_sym_DASH_DASH] = ACTIONS(55), - [anon_sym_DASH] = ACTIONS(57), - [anon_sym_BANG] = ACTIONS(55), - [anon_sym_await] = ACTIONS(59), - [anon_sym_defer] = ACTIONS(61), - [anon_sym_LBRACK] = ACTIONS(63), - [anon_sym_Json] = ACTIONS(65), - [anon_sym_MutJson] = ACTIONS(65), + [anon_sym_0] = ACTIONS(41), + [aux_sym__integer_token1] = ACTIONS(41), + [aux_sym__decimal_token1] = ACTIONS(43), + [aux_sym__decimal_token2] = ACTIONS(43), + [anon_sym_true] = ACTIONS(45), + [anon_sym_false] = ACTIONS(45), + [anon_sym_DQUOTE] = ACTIONS(47), + [anon_sym_LPAREN] = ACTIONS(49), + [anon_sym_new] = ACTIONS(51), + [anon_sym_Array] = ACTIONS(53), + [anon_sym_Set] = ACTIONS(53), + [anon_sym_Map] = ACTIONS(53), + [anon_sym_Promise] = ACTIONS(53), + [anon_sym_MutSet] = ACTIONS(55), + [anon_sym_MutMap] = ACTIONS(55), + [anon_sym_MutArray] = ACTIONS(55), + [anon_sym_DASH_DASH] = ACTIONS(57), + [anon_sym_DASH] = ACTIONS(59), + [anon_sym_BANG] = ACTIONS(57), + [anon_sym_await] = ACTIONS(61), + [anon_sym_defer] = ACTIONS(63), + [anon_sym_LBRACK] = ACTIONS(65), + [anon_sym_Json] = ACTIONS(67), + [anon_sym_MutJson] = ACTIONS(67), }, }; @@ -5694,74 +6244,74 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - ACTIONS(195), 1, - anon_sym_SEMI, - STATE(129), 1, + ACTIONS(200), 1, + anon_sym_RBRACK, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(251), 1, + STATE(248), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -5789,74 +6339,74 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - ACTIONS(197), 1, + ACTIONS(202), 1, anon_sym_RBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(231), 1, + STATE(246), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -5884,74 +6434,74 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - ACTIONS(199), 1, - anon_sym_RBRACE, - STATE(129), 1, + ACTIONS(204), 1, + anon_sym_RBRACK, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(231), 1, + STATE(246), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -5979,74 +6529,74 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - ACTIONS(201), 1, - anon_sym_RBRACK, - STATE(129), 1, + ACTIONS(206), 1, + anon_sym_RBRACE, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(231), 1, + STATE(246), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -6074,74 +6624,74 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - ACTIONS(203), 1, - anon_sym_RBRACE, - STATE(129), 1, + ACTIONS(208), 1, + anon_sym_SEMI, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(231), 1, + STATE(284), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -6169,74 +6719,74 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - ACTIONS(205), 1, - anon_sym_RBRACK, - STATE(129), 1, + ACTIONS(210), 1, + anon_sym_RBRACE, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(231), 1, + STATE(246), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -6264,74 +6814,74 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - ACTIONS(207), 1, - anon_sym_RBRACK, - STATE(129), 1, + ACTIONS(212), 1, + anon_sym_RBRACE, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(227), 1, + STATE(246), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -6359,74 +6909,74 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(233), 1, + STATE(255), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(483), 1, + STATE(572), 1, sym_positional_argument, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -6454,74 +7004,74 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - ACTIONS(209), 1, - anon_sym_RBRACE, - STATE(129), 1, + ACTIONS(214), 1, + anon_sym_RBRACK, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(231), 1, + STATE(246), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -6549,74 +7099,74 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - ACTIONS(211), 1, - anon_sym_RBRACE, - STATE(129), 1, + ACTIONS(216), 1, + anon_sym_RBRACK, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(231), 1, + STATE(247), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -6644,74 +7194,74 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - ACTIONS(213), 1, - anon_sym_RBRACK, - STATE(129), 1, + ACTIONS(218), 1, + anon_sym_RBRACE, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(229), 1, + STATE(246), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -6739,74 +7289,74 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - ACTIONS(215), 1, + ACTIONS(220), 1, anon_sym_RBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(231), 1, + STATE(246), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -6828,78 +7378,78 @@ static const uint16_t ts_small_parse_table[] = { [1500] = 29, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, - sym_identifier, ACTIONS(9), 1, anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(65), 1, + anon_sym_LBRACK, + ACTIONS(222), 1, + sym_identifier, + ACTIONS(224), 1, anon_sym_new, - ACTIONS(57), 1, + ACTIONS(228), 1, anon_sym_DASH, - ACTIONS(59), 1, + ACTIONS(230), 1, anon_sym_await, - ACTIONS(61), 1, + ACTIONS(232), 1, anon_sym_defer, - ACTIONS(63), 1, - anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(253), 1, + STATE(286), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, - anon_sym_DASH_DASH, - anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + ACTIONS(226), 2, + anon_sym_DASH_DASH, + anon_sym_BANG, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -6927,72 +7477,72 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(183), 1, + STATE(275), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -7020,72 +7570,72 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(231), 1, + STATE(297), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -7104,82 +7654,83 @@ static const uint16_t ts_small_parse_table[] = { sym_struct_literal, sym_structured_access_expression, sym_json_literal, - [1866] = 29, + [1866] = 30, ACTIONS(3), 1, sym_comment, + ACTIONS(7), 1, + sym_identifier, ACTIONS(9), 1, anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, - ACTIONS(63), 1, - anon_sym_LBRACK, - ACTIONS(217), 1, - sym_identifier, - ACTIONS(219), 1, + anon_sym_DQUOTE, + ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(223), 1, + ACTIONS(59), 1, anon_sym_DASH, - ACTIONS(225), 1, + ACTIONS(61), 1, anon_sym_await, - ACTIONS(227), 1, + ACTIONS(63), 1, anon_sym_defer, - STATE(129), 1, + ACTIONS(65), 1, + anon_sym_LBRACK, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(245), 1, + STATE(300), 1, + sym_reference, + STATE(301), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(65), 2, - anon_sym_Json, - anon_sym_MutJson, - ACTIONS(221), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - STATE(144), 2, + ACTIONS(67), 2, + anon_sym_Json, + anon_sym_MutJson, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, - sym_reference, + STATE(216), 17, sym__literal, sym_call, sym_new_expression, @@ -7197,7 +7748,7 @@ static const uint16_t ts_small_parse_table[] = { sym_struct_literal, sym_structured_access_expression, sym_json_literal, - [1988] = 29, + [1990] = 29, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, @@ -7206,72 +7757,72 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(261), 1, + STATE(183), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -7290,7 +7841,7 @@ static const uint16_t ts_small_parse_table[] = { sym_struct_literal, sym_structured_access_expression, sym_json_literal, - [2110] = 29, + [2112] = 29, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, @@ -7299,72 +7850,72 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(250), 1, + STATE(298), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -7383,7 +7934,7 @@ static const uint16_t ts_small_parse_table[] = { sym_struct_literal, sym_structured_access_expression, sym_json_literal, - [2232] = 29, + [2234] = 29, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, @@ -7392,72 +7943,72 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(275), 1, + STATE(262), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -7476,7 +8027,7 @@ static const uint16_t ts_small_parse_table[] = { sym_struct_literal, sym_structured_access_expression, sym_json_literal, - [2354] = 29, + [2356] = 29, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, @@ -7485,72 +8036,72 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(208), 1, + STATE(207), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -7569,7 +8120,7 @@ static const uint16_t ts_small_parse_table[] = { sym_struct_literal, sym_structured_access_expression, sym_json_literal, - [2476] = 29, + [2478] = 29, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, @@ -7578,72 +8129,72 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(209), 1, + STATE(219), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -7662,7 +8213,7 @@ static const uint16_t ts_small_parse_table[] = { sym_struct_literal, sym_structured_access_expression, sym_json_literal, - [2598] = 29, + [2600] = 29, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, @@ -7671,72 +8222,72 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(210), 1, + STATE(187), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -7755,81 +8306,81 @@ static const uint16_t ts_small_parse_table[] = { sym_struct_literal, sym_structured_access_expression, sym_json_literal, - [2720] = 29, + [2722] = 29, ACTIONS(3), 1, sym_comment, ACTIONS(9), 1, anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, + anon_sym_DQUOTE, + ACTIONS(49), 1, anon_sym_LPAREN, - ACTIONS(63), 1, + ACTIONS(65), 1, anon_sym_LBRACK, - ACTIONS(217), 1, + ACTIONS(222), 1, sym_identifier, - ACTIONS(219), 1, + ACTIONS(224), 1, anon_sym_new, - ACTIONS(223), 1, + ACTIONS(228), 1, anon_sym_DASH, - ACTIONS(225), 1, + ACTIONS(230), 1, anon_sym_await, - ACTIONS(227), 1, + ACTIONS(232), 1, anon_sym_defer, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(241), 1, + STATE(257), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - ACTIONS(221), 2, + ACTIONS(226), 2, anon_sym_DASH_DASH, anon_sym_BANG, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -7848,7 +8399,7 @@ static const uint16_t ts_small_parse_table[] = { sym_struct_literal, sym_structured_access_expression, sym_json_literal, - [2842] = 29, + [2844] = 29, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, @@ -7857,72 +8408,72 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(281), 1, + STATE(269), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -7941,7 +8492,7 @@ static const uint16_t ts_small_parse_table[] = { sym_struct_literal, sym_structured_access_expression, sym_json_literal, - [2964] = 29, + [2966] = 29, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, @@ -7950,72 +8501,72 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(279), 1, + STATE(267), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -8034,81 +8585,81 @@ static const uint16_t ts_small_parse_table[] = { sym_struct_literal, sym_structured_access_expression, sym_json_literal, - [3086] = 29, + [3088] = 29, ACTIONS(3), 1, sym_comment, + ACTIONS(7), 1, + sym_identifier, ACTIONS(9), 1, anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, + anon_sym_DQUOTE, + ACTIONS(49), 1, anon_sym_LPAREN, - ACTIONS(63), 1, - anon_sym_LBRACK, - ACTIONS(217), 1, - sym_identifier, - ACTIONS(219), 1, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(223), 1, + ACTIONS(59), 1, anon_sym_DASH, - ACTIONS(225), 1, + ACTIONS(61), 1, anon_sym_await, - ACTIONS(227), 1, + ACTIONS(63), 1, anon_sym_defer, - STATE(129), 1, + ACTIONS(65), 1, + anon_sym_LBRACK, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(242), 1, + STATE(266), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(65), 2, - anon_sym_Json, - anon_sym_MutJson, - ACTIONS(221), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - STATE(144), 2, + ACTIONS(67), 2, + anon_sym_Json, + anon_sym_MutJson, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -8127,7 +8678,7 @@ static const uint16_t ts_small_parse_table[] = { sym_struct_literal, sym_structured_access_expression, sym_json_literal, - [3208] = 29, + [3210] = 29, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, @@ -8136,72 +8687,72 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(262), 1, + STATE(280), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -8220,7 +8771,7 @@ static const uint16_t ts_small_parse_table[] = { sym_struct_literal, sym_structured_access_expression, sym_json_literal, - [3330] = 29, + [3332] = 29, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, @@ -8229,72 +8780,72 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(268), 1, + STATE(299), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -8313,7 +8864,7 @@ static const uint16_t ts_small_parse_table[] = { sym_struct_literal, sym_structured_access_expression, sym_json_literal, - [3452] = 29, + [3454] = 29, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, @@ -8322,72 +8873,72 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(247), 1, + STATE(273), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -8406,7 +8957,7 @@ static const uint16_t ts_small_parse_table[] = { sym_struct_literal, sym_structured_access_expression, sym_json_literal, - [3574] = 29, + [3576] = 29, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, @@ -8415,72 +8966,72 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(178), 1, + STATE(261), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -8499,81 +9050,81 @@ static const uint16_t ts_small_parse_table[] = { sym_struct_literal, sym_structured_access_expression, sym_json_literal, - [3696] = 29, + [3698] = 29, ACTIONS(3), 1, sym_comment, + ACTIONS(7), 1, + sym_identifier, ACTIONS(9), 1, anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, + anon_sym_DQUOTE, + ACTIONS(49), 1, anon_sym_LPAREN, - ACTIONS(63), 1, - anon_sym_LBRACK, - ACTIONS(217), 1, - sym_identifier, - ACTIONS(219), 1, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(223), 1, + ACTIONS(59), 1, anon_sym_DASH, - ACTIONS(225), 1, + ACTIONS(61), 1, anon_sym_await, - ACTIONS(227), 1, + ACTIONS(63), 1, anon_sym_defer, - STATE(129), 1, + ACTIONS(65), 1, + anon_sym_LBRACK, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(239), 1, + STATE(290), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(65), 2, - anon_sym_Json, - anon_sym_MutJson, - ACTIONS(221), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - STATE(144), 2, + ACTIONS(67), 2, + anon_sym_Json, + anon_sym_MutJson, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -8592,81 +9143,81 @@ static const uint16_t ts_small_parse_table[] = { sym_struct_literal, sym_structured_access_expression, sym_json_literal, - [3818] = 29, + [3820] = 29, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, - sym_identifier, ACTIONS(9), 1, anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(65), 1, + anon_sym_LBRACK, + ACTIONS(222), 1, + sym_identifier, + ACTIONS(224), 1, anon_sym_new, - ACTIONS(57), 1, + ACTIONS(228), 1, anon_sym_DASH, - ACTIONS(59), 1, + ACTIONS(230), 1, anon_sym_await, - ACTIONS(61), 1, + ACTIONS(232), 1, anon_sym_defer, - ACTIONS(63), 1, - anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(237), 1, + STATE(250), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, - anon_sym_DASH_DASH, - anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + ACTIONS(226), 2, + anon_sym_DASH_DASH, + anon_sym_BANG, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -8685,7 +9236,7 @@ static const uint16_t ts_small_parse_table[] = { sym_struct_literal, sym_structured_access_expression, sym_json_literal, - [3940] = 29, + [3942] = 29, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, @@ -8694,72 +9245,72 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(271), 1, + STATE(296), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -8778,81 +9329,81 @@ static const uint16_t ts_small_parse_table[] = { sym_struct_literal, sym_structured_access_expression, sym_json_literal, - [4062] = 29, + [4064] = 29, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, - sym_identifier, ACTIONS(9), 1, anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(65), 1, + anon_sym_LBRACK, + ACTIONS(222), 1, + sym_identifier, + ACTIONS(224), 1, anon_sym_new, - ACTIONS(57), 1, + ACTIONS(228), 1, anon_sym_DASH, - ACTIONS(59), 1, + ACTIONS(230), 1, anon_sym_await, - ACTIONS(61), 1, + ACTIONS(232), 1, anon_sym_defer, - ACTIONS(63), 1, - anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(238), 1, + STATE(174), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, - anon_sym_DASH_DASH, - anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + ACTIONS(226), 2, + anon_sym_DASH_DASH, + anon_sym_BANG, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -8871,83 +9422,82 @@ static const uint16_t ts_small_parse_table[] = { sym_struct_literal, sym_structured_access_expression, sym_json_literal, - [4184] = 30, + [4186] = 29, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, - sym_identifier, ACTIONS(9), 1, anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(65), 1, + anon_sym_LBRACK, + ACTIONS(222), 1, + sym_identifier, + ACTIONS(224), 1, anon_sym_new, - ACTIONS(57), 1, + ACTIONS(228), 1, anon_sym_DASH, - ACTIONS(59), 1, + ACTIONS(230), 1, anon_sym_await, - ACTIONS(61), 1, + ACTIONS(232), 1, anon_sym_defer, - ACTIONS(63), 1, - anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(282), 1, - sym_reference, - STATE(283), 1, + STATE(251), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, - anon_sym_DASH_DASH, - anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + ACTIONS(226), 2, + anon_sym_DASH_DASH, + anon_sym_BANG, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 17, + STATE(216), 18, + sym_reference, sym__literal, sym_call, sym_new_expression, @@ -8974,72 +9524,72 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(252), 1, + STATE(277), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -9067,72 +9617,72 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(246), 1, + STATE(253), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -9160,72 +9710,72 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(258), 1, + STATE(276), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -9253,72 +9803,72 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(270), 1, + STATE(282), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -9340,78 +9890,78 @@ static const uint16_t ts_small_parse_table[] = { [4796] = 29, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, - sym_identifier, ACTIONS(9), 1, anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(65), 1, + anon_sym_LBRACK, + ACTIONS(222), 1, + sym_identifier, + ACTIONS(224), 1, anon_sym_new, - ACTIONS(57), 1, + ACTIONS(228), 1, anon_sym_DASH, - ACTIONS(59), 1, + ACTIONS(230), 1, anon_sym_await, - ACTIONS(61), 1, + ACTIONS(232), 1, anon_sym_defer, - ACTIONS(63), 1, - anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(267), 1, + STATE(281), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, - anon_sym_DASH_DASH, - anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + ACTIONS(226), 2, + anon_sym_DASH_DASH, + anon_sym_BANG, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -9433,78 +9983,78 @@ static const uint16_t ts_small_parse_table[] = { [4918] = 29, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, - sym_identifier, ACTIONS(9), 1, anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(65), 1, + anon_sym_LBRACK, + ACTIONS(222), 1, + sym_identifier, + ACTIONS(224), 1, anon_sym_new, - ACTIONS(57), 1, + ACTIONS(228), 1, anon_sym_DASH, - ACTIONS(59), 1, + ACTIONS(230), 1, anon_sym_await, - ACTIONS(61), 1, + ACTIONS(232), 1, anon_sym_defer, - ACTIONS(63), 1, - anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(257), 1, + STATE(285), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, - anon_sym_DASH_DASH, - anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + ACTIONS(226), 2, + anon_sym_DASH_DASH, + anon_sym_BANG, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -9532,72 +10082,72 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(214), 1, + STATE(264), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -9625,72 +10175,72 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(254), 1, + STATE(292), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -9712,78 +10262,78 @@ static const uint16_t ts_small_parse_table[] = { [5284] = 29, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, - sym_identifier, ACTIONS(9), 1, anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(65), 1, + anon_sym_LBRACK, + ACTIONS(222), 1, + sym_identifier, + ACTIONS(224), 1, anon_sym_new, - ACTIONS(57), 1, + ACTIONS(228), 1, anon_sym_DASH, - ACTIONS(59), 1, + ACTIONS(230), 1, anon_sym_await, - ACTIONS(61), 1, + ACTIONS(232), 1, anon_sym_defer, - ACTIONS(63), 1, - anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(232), 1, + STATE(287), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, - anon_sym_DASH_DASH, - anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + ACTIONS(226), 2, + anon_sym_DASH_DASH, + anon_sym_BANG, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -9805,78 +10355,78 @@ static const uint16_t ts_small_parse_table[] = { [5406] = 29, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, - sym_identifier, ACTIONS(9), 1, anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(65), 1, + anon_sym_LBRACK, + ACTIONS(222), 1, + sym_identifier, + ACTIONS(224), 1, anon_sym_new, - ACTIONS(57), 1, + ACTIONS(228), 1, anon_sym_DASH, - ACTIONS(59), 1, + ACTIONS(230), 1, anon_sym_await, - ACTIONS(61), 1, + ACTIONS(232), 1, anon_sym_defer, - ACTIONS(63), 1, - anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(248), 1, + STATE(289), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, - anon_sym_DASH_DASH, - anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + ACTIONS(226), 2, + anon_sym_DASH_DASH, + anon_sym_BANG, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -9902,74 +10452,74 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, + anon_sym_DQUOTE, + ACTIONS(49), 1, anon_sym_LPAREN, - ACTIONS(63), 1, + ACTIONS(65), 1, anon_sym_LBRACK, - ACTIONS(217), 1, + ACTIONS(222), 1, sym_identifier, - ACTIONS(219), 1, + ACTIONS(224), 1, anon_sym_new, - ACTIONS(223), 1, + ACTIONS(228), 1, anon_sym_DASH, - ACTIONS(225), 1, + ACTIONS(230), 1, anon_sym_await, - ACTIONS(227), 1, + ACTIONS(232), 1, anon_sym_defer, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(157), 1, + STATE(291), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - ACTIONS(221), 2, + ACTIONS(226), 2, anon_sym_DASH_DASH, anon_sym_BANG, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -9995,74 +10545,74 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, + anon_sym_DQUOTE, + ACTIONS(49), 1, anon_sym_LPAREN, - ACTIONS(63), 1, + ACTIONS(65), 1, anon_sym_LBRACK, - ACTIONS(217), 1, + ACTIONS(222), 1, sym_identifier, - ACTIONS(219), 1, + ACTIONS(224), 1, anon_sym_new, - ACTIONS(223), 1, + ACTIONS(228), 1, anon_sym_DASH, - ACTIONS(225), 1, + ACTIONS(230), 1, anon_sym_await, - ACTIONS(227), 1, + ACTIONS(232), 1, anon_sym_defer, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(249), 1, + STATE(294), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - ACTIONS(221), 2, + ACTIONS(226), 2, anon_sym_DASH_DASH, anon_sym_BANG, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -10088,74 +10638,74 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, + anon_sym_DQUOTE, + ACTIONS(49), 1, anon_sym_LPAREN, - ACTIONS(63), 1, + ACTIONS(65), 1, anon_sym_LBRACK, - ACTIONS(217), 1, + ACTIONS(222), 1, sym_identifier, - ACTIONS(219), 1, + ACTIONS(224), 1, anon_sym_new, - ACTIONS(223), 1, + ACTIONS(228), 1, anon_sym_DASH, - ACTIONS(225), 1, + ACTIONS(230), 1, anon_sym_await, - ACTIONS(227), 1, + ACTIONS(232), 1, anon_sym_defer, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(277), 1, + STATE(254), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - ACTIONS(221), 2, + ACTIONS(226), 2, anon_sym_DASH_DASH, anon_sym_BANG, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -10177,78 +10727,78 @@ static const uint16_t ts_small_parse_table[] = { [5894] = 29, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, - sym_identifier, ACTIONS(9), 1, anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(65), 1, + anon_sym_LBRACK, + ACTIONS(222), 1, + sym_identifier, + ACTIONS(224), 1, anon_sym_new, - ACTIONS(57), 1, + ACTIONS(228), 1, anon_sym_DASH, - ACTIONS(59), 1, + ACTIONS(230), 1, anon_sym_await, - ACTIONS(61), 1, + ACTIONS(232), 1, anon_sym_defer, - ACTIONS(63), 1, - anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(260), 1, + STATE(263), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, - anon_sym_DASH_DASH, - anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + ACTIONS(226), 2, + anon_sym_DASH_DASH, + anon_sym_BANG, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -10270,78 +10820,78 @@ static const uint16_t ts_small_parse_table[] = { [6016] = 29, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, - sym_identifier, ACTIONS(9), 1, anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(65), 1, + anon_sym_LBRACK, + ACTIONS(222), 1, + sym_identifier, + ACTIONS(224), 1, anon_sym_new, - ACTIONS(57), 1, + ACTIONS(228), 1, anon_sym_DASH, - ACTIONS(59), 1, + ACTIONS(230), 1, anon_sym_await, - ACTIONS(61), 1, + ACTIONS(232), 1, anon_sym_defer, - ACTIONS(63), 1, - anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(259), 1, + STATE(265), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, - anon_sym_DASH_DASH, - anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + ACTIONS(226), 2, + anon_sym_DASH_DASH, + anon_sym_BANG, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -10367,74 +10917,74 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, + anon_sym_DQUOTE, + ACTIONS(49), 1, anon_sym_LPAREN, - ACTIONS(63), 1, + ACTIONS(65), 1, anon_sym_LBRACK, - ACTIONS(217), 1, + ACTIONS(222), 1, sym_identifier, - ACTIONS(219), 1, + ACTIONS(224), 1, anon_sym_new, - ACTIONS(223), 1, + ACTIONS(228), 1, anon_sym_DASH, - ACTIONS(225), 1, + ACTIONS(230), 1, anon_sym_await, - ACTIONS(227), 1, + ACTIONS(232), 1, anon_sym_defer, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(273), 1, + STATE(271), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - ACTIONS(221), 2, + ACTIONS(226), 2, anon_sym_DASH_DASH, anon_sym_BANG, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -10456,78 +11006,78 @@ static const uint16_t ts_small_parse_table[] = { [6260] = 29, ACTIONS(3), 1, sym_comment, + ACTIONS(7), 1, + sym_identifier, ACTIONS(9), 1, anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, + anon_sym_DQUOTE, + ACTIONS(49), 1, anon_sym_LPAREN, - ACTIONS(63), 1, - anon_sym_LBRACK, - ACTIONS(217), 1, - sym_identifier, - ACTIONS(219), 1, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(223), 1, + ACTIONS(59), 1, anon_sym_DASH, - ACTIONS(225), 1, + ACTIONS(61), 1, anon_sym_await, - ACTIONS(227), 1, + ACTIONS(63), 1, anon_sym_defer, - STATE(129), 1, + ACTIONS(65), 1, + anon_sym_LBRACK, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(244), 1, + STATE(283), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(65), 2, - anon_sym_Json, - anon_sym_MutJson, - ACTIONS(221), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - STATE(144), 2, + ACTIONS(67), 2, + anon_sym_Json, + anon_sym_MutJson, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -10549,78 +11099,78 @@ static const uint16_t ts_small_parse_table[] = { [6382] = 29, ACTIONS(3), 1, sym_comment, + ACTIONS(7), 1, + sym_identifier, ACTIONS(9), 1, anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, + anon_sym_DQUOTE, + ACTIONS(49), 1, anon_sym_LPAREN, - ACTIONS(63), 1, - anon_sym_LBRACK, - ACTIONS(217), 1, - sym_identifier, - ACTIONS(219), 1, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(223), 1, + ACTIONS(59), 1, anon_sym_DASH, - ACTIONS(225), 1, + ACTIONS(61), 1, anon_sym_await, - ACTIONS(227), 1, + ACTIONS(63), 1, anon_sym_defer, - STATE(129), 1, + ACTIONS(65), 1, + anon_sym_LBRACK, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(266), 1, + STATE(174), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(65), 2, - anon_sym_Json, - anon_sym_MutJson, - ACTIONS(221), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - STATE(144), 2, + ACTIONS(67), 2, + anon_sym_Json, + anon_sym_MutJson, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -10642,78 +11192,78 @@ static const uint16_t ts_small_parse_table[] = { [6504] = 29, ACTIONS(3), 1, sym_comment, + ACTIONS(7), 1, + sym_identifier, ACTIONS(9), 1, anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, + anon_sym_DQUOTE, + ACTIONS(49), 1, anon_sym_LPAREN, - ACTIONS(63), 1, - anon_sym_LBRACK, - ACTIONS(217), 1, - sym_identifier, - ACTIONS(219), 1, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(223), 1, + ACTIONS(59), 1, anon_sym_DASH, - ACTIONS(225), 1, + ACTIONS(61), 1, anon_sym_await, - ACTIONS(227), 1, + ACTIONS(63), 1, anon_sym_defer, - STATE(129), 1, + ACTIONS(65), 1, + anon_sym_LBRACK, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(256), 1, + STATE(246), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(65), 2, - anon_sym_Json, - anon_sym_MutJson, - ACTIONS(221), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - STATE(144), 2, + ACTIONS(67), 2, + anon_sym_Json, + anon_sym_MutJson, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -10741,72 +11291,72 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(264), 1, + STATE(198), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -10834,72 +11384,72 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(278), 1, + STATE(197), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -10927,72 +11477,72 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(157), 1, + STATE(196), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -11020,72 +11570,72 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(184), 1, + STATE(195), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -11107,78 +11657,78 @@ static const uint16_t ts_small_parse_table[] = { [7114] = 29, ACTIONS(3), 1, sym_comment, + ACTIONS(7), 1, + sym_identifier, ACTIONS(9), 1, anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, + anon_sym_DQUOTE, + ACTIONS(49), 1, anon_sym_LPAREN, - ACTIONS(63), 1, - anon_sym_LBRACK, - ACTIONS(217), 1, - sym_identifier, - ACTIONS(219), 1, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(223), 1, + ACTIONS(59), 1, anon_sym_DASH, - ACTIONS(225), 1, + ACTIONS(61), 1, anon_sym_await, - ACTIONS(227), 1, + ACTIONS(63), 1, anon_sym_defer, - STATE(129), 1, + ACTIONS(65), 1, + anon_sym_LBRACK, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(263), 1, + STATE(194), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(65), 2, - anon_sym_Json, - anon_sym_MutJson, - ACTIONS(221), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - STATE(144), 2, + ACTIONS(67), 2, + anon_sym_Json, + anon_sym_MutJson, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -11206,72 +11756,72 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(182), 1, + STATE(193), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -11299,72 +11849,72 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(181), 1, + STATE(279), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -11392,72 +11942,72 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(180), 1, + STATE(274), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -11485,72 +12035,72 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(280), 1, + STATE(192), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -11576,74 +12126,74 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, + anon_sym_DQUOTE, + ACTIONS(49), 1, anon_sym_LPAREN, - ACTIONS(63), 1, + ACTIONS(65), 1, anon_sym_LBRACK, - ACTIONS(217), 1, + ACTIONS(222), 1, sym_identifier, - ACTIONS(219), 1, + ACTIONS(224), 1, anon_sym_new, - ACTIONS(223), 1, + ACTIONS(228), 1, anon_sym_DASH, - ACTIONS(225), 1, + ACTIONS(230), 1, anon_sym_await, - ACTIONS(227), 1, + ACTIONS(232), 1, anon_sym_defer, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(235), 1, + STATE(272), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - ACTIONS(221), 2, + ACTIONS(226), 2, anon_sym_DASH_DASH, anon_sym_BANG, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -11665,78 +12215,78 @@ static const uint16_t ts_small_parse_table[] = { [7846] = 29, ACTIONS(3), 1, sym_comment, + ACTIONS(7), 1, + sym_identifier, ACTIONS(9), 1, anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, + anon_sym_DQUOTE, + ACTIONS(49), 1, anon_sym_LPAREN, - ACTIONS(63), 1, - anon_sym_LBRACK, - ACTIONS(217), 1, - sym_identifier, - ACTIONS(219), 1, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(223), 1, + ACTIONS(59), 1, anon_sym_DASH, - ACTIONS(225), 1, + ACTIONS(61), 1, anon_sym_await, - ACTIONS(227), 1, + ACTIONS(63), 1, anon_sym_defer, - STATE(129), 1, + ACTIONS(65), 1, + anon_sym_LBRACK, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(269), 1, + STATE(258), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(65), 2, - anon_sym_Json, - anon_sym_MutJson, - ACTIONS(221), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - STATE(144), 2, + ACTIONS(67), 2, + anon_sym_Json, + anon_sym_MutJson, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -11758,78 +12308,78 @@ static const uint16_t ts_small_parse_table[] = { [7968] = 29, ACTIONS(3), 1, sym_comment, + ACTIONS(7), 1, + sym_identifier, ACTIONS(9), 1, anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, + anon_sym_DQUOTE, + ACTIONS(49), 1, anon_sym_LPAREN, - ACTIONS(63), 1, - anon_sym_LBRACK, - ACTIONS(217), 1, - sym_identifier, - ACTIONS(219), 1, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(223), 1, + ACTIONS(59), 1, anon_sym_DASH, - ACTIONS(225), 1, + ACTIONS(61), 1, anon_sym_await, - ACTIONS(227), 1, + ACTIONS(63), 1, anon_sym_defer, - STATE(129), 1, + ACTIONS(65), 1, + anon_sym_LBRACK, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(255), 1, + STATE(259), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(65), 2, - anon_sym_Json, - anon_sym_MutJson, - ACTIONS(221), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - STATE(144), 2, + ACTIONS(67), 2, + anon_sym_Json, + anon_sym_MutJson, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -11851,78 +12401,78 @@ static const uint16_t ts_small_parse_table[] = { [8090] = 29, ACTIONS(3), 1, sym_comment, + ACTIONS(7), 1, + sym_identifier, ACTIONS(9), 1, anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, + anon_sym_DQUOTE, + ACTIONS(49), 1, anon_sym_LPAREN, - ACTIONS(63), 1, - anon_sym_LBRACK, - ACTIONS(217), 1, - sym_identifier, - ACTIONS(219), 1, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(223), 1, + ACTIONS(59), 1, anon_sym_DASH, - ACTIONS(225), 1, + ACTIONS(61), 1, anon_sym_await, - ACTIONS(227), 1, + ACTIONS(63), 1, anon_sym_defer, - STATE(129), 1, + ACTIONS(65), 1, + anon_sym_LBRACK, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(274), 1, + STATE(278), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(65), 2, - anon_sym_Json, - anon_sym_MutJson, - ACTIONS(221), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - STATE(144), 2, - sym__integer, + ACTIONS(67), 2, + anon_sym_Json, + anon_sym_MutJson, + STATE(159), 2, + sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -11950,72 +12500,72 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACE, ACTIONS(11), 1, anon_sym_inflight, - ACTIONS(45), 1, - anon_sym_DQUOTE, ACTIONS(47), 1, - anon_sym_LPAREN, + anon_sym_DQUOTE, ACTIONS(49), 1, + anon_sym_LPAREN, + ACTIONS(51), 1, anon_sym_new, - ACTIONS(57), 1, - anon_sym_DASH, ACTIONS(59), 1, - anon_sym_await, + anon_sym_DASH, ACTIONS(61), 1, - anon_sym_defer, + anon_sym_await, ACTIONS(63), 1, + anon_sym_defer, + ACTIONS(65), 1, anon_sym_LBRACK, - STATE(129), 1, + STATE(147), 1, sym_json_container_type, - STATE(133), 1, + STATE(158), 1, sym_number, - STATE(149), 1, + STATE(166), 1, sym_nested_identifier, - STATE(179), 1, + STATE(270), 1, sym_expression, - STATE(422), 1, + STATE(503), 1, sym_parameter_list, - STATE(597), 1, + STATE(715), 1, sym_custom_type, - ACTIONS(39), 2, + ACTIONS(41), 2, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym__decimal_token1, aux_sym__decimal_token2, - ACTIONS(43), 2, + ACTIONS(45), 2, anon_sym_true, anon_sym_false, - ACTIONS(55), 2, + ACTIONS(57), 2, anon_sym_DASH_DASH, anon_sym_BANG, - ACTIONS(65), 2, + ACTIONS(67), 2, anon_sym_Json, anon_sym_MutJson, - STATE(144), 2, + STATE(159), 2, sym__integer, sym__decimal, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, + STATE(177), 3, sym_seconds, sym_minutes, sym_hours, - STATE(513), 3, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(597), 3, sym_immutable_container_type, sym_mutable_container_type, sym__builtin_container_type, - ACTIONS(51), 4, + ACTIONS(53), 4, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - STATE(158), 18, + STATE(216), 18, sym_reference, sym__literal, sym_call, @@ -12037,7 +12587,7 @@ static const uint16_t ts_small_parse_table[] = { [8334] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(229), 10, + ACTIONS(234), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -12048,7 +12598,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(231), 43, + ACTIONS(236), 44, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -12060,6 +12610,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -12092,10 +12643,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [8395] = 3, + [8396] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(233), 10, + ACTIONS(238), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -12106,7 +12657,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(235), 43, + ACTIONS(240), 44, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -12118,6 +12669,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -12150,18 +12702,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [8456] = 7, + [8458] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(241), 1, - anon_sym_else, - ACTIONS(243), 1, + ACTIONS(246), 1, anon_sym_elif, - STATE(85), 1, + STATE(84), 1, aux_sym_if_statement_repeat1, STATE(89), 1, sym_elif_block, - ACTIONS(237), 10, + ACTIONS(242), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -12172,7 +12722,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(239), 32, + ACTIONS(244), 34, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -12182,11 +12732,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, anon_sym_continue, anon_sym_if, + anon_sym_else, anon_sym_try, anon_sym_0, aux_sym__integer_token1, @@ -12205,16 +12757,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [8518] = 6, + [8519] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(249), 1, + ACTIONS(253), 1, + anon_sym_else, + ACTIONS(255), 1, anon_sym_elif, - STATE(85), 1, + STATE(86), 1, aux_sym_if_statement_repeat1, STATE(89), 1, sym_elif_block, - ACTIONS(245), 10, + ACTIONS(249), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -12225,7 +12779,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(247), 33, + ACTIONS(251), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -12235,12 +12789,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, anon_sym_continue, anon_sym_if, - anon_sym_else, anon_sym_try, anon_sym_0, aux_sym__integer_token1, @@ -12259,18 +12813,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [8578] = 7, + [8582] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(243), 1, + ACTIONS(255), 1, anon_sym_elif, - ACTIONS(256), 1, + ACTIONS(261), 1, anon_sym_else, STATE(84), 1, aux_sym_if_statement_repeat1, STATE(89), 1, sym_elif_block, - ACTIONS(252), 10, + ACTIONS(257), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -12281,7 +12835,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(254), 32, + ACTIONS(259), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -12291,6 +12845,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -12314,10 +12869,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [8640] = 3, + [8645] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(258), 10, + ACTIONS(267), 1, + anon_sym_catch, + ACTIONS(269), 1, + anon_sym_finally, + ACTIONS(263), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -12328,7 +12887,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(260), 34, + ACTIONS(265), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -12338,13 +12897,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, anon_sym_continue, anon_sym_if, - anon_sym_else, - anon_sym_elif, anon_sym_try, anon_sym_0, aux_sym__integer_token1, @@ -12363,14 +12921,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [8692] = 5, + [8702] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(266), 1, - anon_sym_catch, - ACTIONS(268), 1, - anon_sym_finally, - ACTIONS(262), 10, + ACTIONS(271), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -12381,7 +12935,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(264), 32, + ACTIONS(273), 35, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -12391,11 +12945,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, anon_sym_continue, anon_sym_if, + anon_sym_else, + anon_sym_elif, anon_sym_try, anon_sym_0, aux_sym__integer_token1, @@ -12414,10 +12971,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [8748] = 3, + [8755] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(270), 10, + ACTIONS(275), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -12428,7 +12985,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(272), 34, + ACTIONS(277), 35, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -12438,6 +12995,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -12463,12 +13021,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [8800] = 4, + [8808] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(278), 1, + ACTIONS(283), 1, anon_sym_finally, - ACTIONS(274), 10, + ACTIONS(279), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -12479,7 +13037,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(276), 32, + ACTIONS(281), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -12489,6 +13047,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -12512,12 +13071,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [8853] = 4, + [8862] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(284), 1, + ACTIONS(289), 1, anon_sym_finally, - ACTIONS(280), 10, + ACTIONS(285), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -12528,7 +13087,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(282), 32, + ACTIONS(287), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -12538,6 +13097,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -12561,10 +13121,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [8906] = 3, + [8916] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(286), 10, + ACTIONS(291), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -12575,7 +13135,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(288), 32, + ACTIONS(293), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -12585,6 +13145,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -12608,10 +13169,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [8956] = 3, + [8967] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(290), 10, + ACTIONS(295), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -12622,7 +13183,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(292), 32, + ACTIONS(297), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -12632,6 +13193,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -12655,10 +13217,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [9006] = 3, + [9018] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(294), 10, + ACTIONS(299), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -12669,7 +13231,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(296), 32, + ACTIONS(301), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -12679,6 +13241,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -12702,10 +13265,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [9056] = 3, + [9069] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(298), 10, + ACTIONS(303), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -12716,7 +13279,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(300), 32, + ACTIONS(305), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -12726,6 +13289,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -12749,10 +13313,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [9106] = 3, + [9120] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(302), 10, + ACTIONS(307), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -12763,7 +13327,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(304), 32, + ACTIONS(309), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -12773,6 +13337,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -12796,10 +13361,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [9156] = 3, + [9171] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(306), 10, + ACTIONS(311), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -12810,7 +13375,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(308), 32, + ACTIONS(313), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -12820,6 +13385,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -12843,10 +13409,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [9206] = 3, + [9222] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(310), 10, + ACTIONS(315), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -12857,7 +13423,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(312), 32, + ACTIONS(317), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -12867,6 +13433,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -12890,10 +13457,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [9256] = 3, + [9273] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(314), 10, + ACTIONS(319), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -12904,7 +13471,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(316), 32, + ACTIONS(321), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -12914,6 +13481,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -12937,10 +13505,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [9306] = 3, + [9324] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(318), 10, + ACTIONS(323), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -12951,7 +13519,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(320), 32, + ACTIONS(325), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -12961,6 +13529,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -12984,10 +13553,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [9356] = 3, + [9375] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(322), 10, + ACTIONS(327), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -12998,7 +13567,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(324), 32, + ACTIONS(329), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -13008,6 +13577,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -13031,10 +13601,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [9406] = 3, + [9426] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(326), 10, + ACTIONS(331), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -13045,7 +13615,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(328), 32, + ACTIONS(333), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -13055,6 +13625,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -13078,10 +13649,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [9456] = 3, + [9477] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(330), 10, + ACTIONS(335), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -13092,7 +13663,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(332), 32, + ACTIONS(337), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -13102,6 +13673,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -13125,10 +13697,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [9506] = 3, + [9528] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(334), 10, + ACTIONS(339), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -13139,7 +13711,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(336), 32, + ACTIONS(341), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -13149,6 +13721,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -13172,10 +13745,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [9556] = 3, + [9579] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(338), 10, + ACTIONS(343), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -13186,7 +13759,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(340), 32, + ACTIONS(345), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -13196,6 +13769,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -13219,10 +13793,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [9606] = 3, + [9630] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(342), 10, + ACTIONS(347), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -13233,7 +13807,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(344), 32, + ACTIONS(349), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -13243,6 +13817,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -13266,10 +13841,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [9656] = 3, + [9681] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(346), 10, + ACTIONS(351), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -13280,7 +13855,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(348), 32, + ACTIONS(353), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -13290,6 +13865,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -13313,10 +13889,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [9706] = 3, + [9732] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(350), 10, + ACTIONS(355), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -13327,7 +13903,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(352), 32, + ACTIONS(357), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -13337,6 +13913,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -13360,10 +13937,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [9756] = 3, + [9783] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(354), 10, + ACTIONS(359), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -13374,7 +13951,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(356), 32, + ACTIONS(361), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -13384,6 +13961,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -13407,10 +13985,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [9806] = 3, + [9834] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(358), 10, + ACTIONS(363), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -13421,7 +13999,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(360), 32, + ACTIONS(365), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -13431,6 +14009,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -13454,10 +14033,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [9856] = 3, + [9885] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(362), 10, + ACTIONS(367), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -13468,7 +14047,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(364), 32, + ACTIONS(369), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -13478,6 +14057,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -13501,10 +14081,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [9906] = 3, + [9936] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(366), 10, + ACTIONS(371), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -13515,7 +14095,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(368), 32, + ACTIONS(373), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -13525,6 +14105,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -13548,10 +14129,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [9956] = 3, + [9987] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(370), 10, + ACTIONS(375), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -13562,7 +14143,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(372), 32, + ACTIONS(377), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -13572,6 +14153,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -13595,10 +14177,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [10006] = 3, + [10038] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(374), 10, + ACTIONS(379), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -13609,7 +14191,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(376), 32, + ACTIONS(381), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -13619,6 +14201,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -13642,10 +14225,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [10056] = 3, + [10089] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(378), 10, + ACTIONS(383), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -13656,7 +14239,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(380), 32, + ACTIONS(385), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -13666,6 +14249,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -13689,10 +14273,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [10106] = 3, + [10140] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(382), 10, + ACTIONS(387), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -13703,7 +14287,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(384), 32, + ACTIONS(389), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -13713,6 +14297,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -13736,10 +14321,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [10156] = 3, + [10191] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(386), 10, + ACTIONS(391), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -13750,7 +14335,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(388), 32, + ACTIONS(393), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -13760,6 +14345,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -13783,10 +14369,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [10206] = 3, + [10242] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(390), 10, + ACTIONS(395), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -13797,7 +14383,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(392), 32, + ACTIONS(397), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -13807,6 +14393,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -13830,10 +14417,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [10256] = 3, + [10293] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(394), 10, + ACTIONS(399), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -13844,7 +14431,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(396), 32, + ACTIONS(401), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -13854,6 +14441,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -13877,10 +14465,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [10306] = 3, + [10344] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(398), 10, + ACTIONS(403), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -13891,7 +14479,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(400), 32, + ACTIONS(405), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -13901,6 +14489,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -13924,10 +14513,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [10356] = 3, + [10395] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(402), 10, + ACTIONS(407), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -13938,7 +14527,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(404), 32, + ACTIONS(409), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -13948,6 +14537,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -13971,10 +14561,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [10406] = 3, + [10446] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(406), 10, + ACTIONS(411), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -13985,7 +14575,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(408), 32, + ACTIONS(413), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -13995,6 +14585,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -14018,10 +14609,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [10456] = 3, + [10497] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(410), 10, + ACTIONS(415), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -14032,7 +14623,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(412), 32, + ACTIONS(417), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -14042,6 +14633,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -14065,10 +14657,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [10506] = 3, + [10548] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(414), 10, + ACTIONS(419), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -14079,7 +14671,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(416), 32, + ACTIONS(421), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -14089,6 +14681,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -14112,10 +14705,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [10556] = 3, + [10599] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(418), 10, + ACTIONS(423), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -14126,7 +14719,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(420), 32, + ACTIONS(425), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -14136,6 +14729,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -14159,10 +14753,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [10606] = 3, + [10650] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(422), 10, + ACTIONS(427), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -14173,7 +14767,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(424), 32, + ACTIONS(429), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -14183,6 +14777,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -14206,10 +14801,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [10656] = 3, + [10701] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(426), 10, + ACTIONS(431), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -14220,7 +14815,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(428), 32, + ACTIONS(433), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -14230,6 +14825,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -14253,10 +14849,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [10706] = 3, + [10752] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(430), 10, + ACTIONS(435), 10, ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, @@ -14267,7 +14863,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH_DASH, anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(432), 32, + ACTIONS(437), 33, sym_identifier, anon_sym_inflight, anon_sym_bring, @@ -14277,6 +14873,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_class, anon_sym_resource, + anon_sym_interface, anon_sym_for, anon_sym_while, anon_sym_break, @@ -14300,901 +14897,1353 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_defer, anon_sym_Json, anon_sym_MutJson, - [10756] = 16, + [10803] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(45), 1, + ACTIONS(439), 10, + ts_builtin_sym_end, + anon_sym_LBRACE, + anon_sym_RBRACE, + aux_sym__decimal_token1, + aux_sym__decimal_token2, anon_sym_DQUOTE, - ACTIONS(63), 1, + anon_sym_LPAREN, + anon_sym_DASH_DASH, + anon_sym_BANG, anon_sym_LBRACK, - ACTIONS(434), 1, - anon_sym_LBRACE, - STATE(133), 1, - sym_number, - STATE(217), 1, - sym_json_element, - ACTIONS(39), 2, + ACTIONS(441), 33, + sym_identifier, + anon_sym_inflight, + anon_sym_bring, + anon_sym_struct, + anon_sym_enum, + anon_sym_return, + anon_sym_let, + anon_sym_class, + anon_sym_resource, + anon_sym_interface, + anon_sym_for, + anon_sym_while, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_try, anon_sym_0, aux_sym__integer_token1, - ACTIONS(41), 2, - aux_sym__decimal_token1, - aux_sym__decimal_token2, - ACTIONS(436), 2, anon_sym_true, anon_sym_false, - STATE(144), 2, - sym__integer, - sym__decimal, - ACTIONS(440), 3, - anon_sym_MutSet, - anon_sym_MutMap, - anon_sym_MutArray, - STATE(187), 3, - sym_bool, - sym_duration, - sym_string, - STATE(189), 3, - sym_seconds, - sym_minutes, - sym_hours, - STATE(220), 3, - sym__literal, - sym_array_literal, - sym_map_literal, - STATE(572), 3, - sym_immutable_container_type, - sym_mutable_container_type, - sym__builtin_container_type, - ACTIONS(438), 4, + anon_sym_new, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - [10822] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(442), 1, - sym_identifier, - ACTIONS(444), 1, - anon_sym_inflight, - ACTIONS(446), 1, - anon_sym_LPAREN, - ACTIONS(448), 1, - anon_sym_RPAREN, - STATE(352), 1, - sym_parameter_type_list, - STATE(558), 1, - sym__inflight_specifier, - ACTIONS(65), 2, - anon_sym_Json, - anon_sym_MutJson, - ACTIONS(53), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - ACTIONS(51), 4, - anon_sym_Array, - anon_sym_Set, - anon_sym_Map, - anon_sym_Promise, - ACTIONS(450), 6, - anon_sym_num, - anon_sym_bool, - anon_sym_any, - anon_sym_str, - anon_sym_void, - anon_sym_duration, - STATE(419), 9, - sym_custom_type, - sym__type, - sym_optional, - sym_function_type, - sym_builtin_type, - sym_immutable_container_type, - sym_mutable_container_type, - sym__builtin_container_type, - sym_json_container_type, - [10878] = 12, + anon_sym_DASH, + anon_sym_await, + anon_sym_defer, + anon_sym_Json, + anon_sym_MutJson, + [10854] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(442), 1, + ACTIONS(443), 10, + ts_builtin_sym_end, + anon_sym_LBRACE, + anon_sym_RBRACE, + aux_sym__decimal_token1, + aux_sym__decimal_token2, + anon_sym_DQUOTE, + anon_sym_LPAREN, + anon_sym_DASH_DASH, + anon_sym_BANG, + anon_sym_LBRACK, + ACTIONS(445), 33, sym_identifier, - ACTIONS(444), 1, anon_sym_inflight, - ACTIONS(446), 1, - anon_sym_LPAREN, - ACTIONS(452), 1, - anon_sym_RPAREN, - STATE(352), 1, - sym_parameter_type_list, - STATE(558), 1, - sym__inflight_specifier, - ACTIONS(65), 2, - anon_sym_Json, - anon_sym_MutJson, - ACTIONS(53), 3, - anon_sym_MutSet, - anon_sym_MutMap, - anon_sym_MutArray, - ACTIONS(51), 4, + anon_sym_bring, + anon_sym_struct, + anon_sym_enum, + anon_sym_return, + anon_sym_let, + anon_sym_class, + anon_sym_resource, + anon_sym_interface, + anon_sym_for, + anon_sym_while, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_try, + anon_sym_0, + aux_sym__integer_token1, + anon_sym_true, + anon_sym_false, + anon_sym_new, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - ACTIONS(450), 6, - anon_sym_num, - anon_sym_bool, - anon_sym_any, - anon_sym_str, - anon_sym_void, - anon_sym_duration, - STATE(401), 9, - sym_custom_type, - sym__type, - sym_optional, - sym_function_type, - sym_builtin_type, - sym_immutable_container_type, - sym_mutable_container_type, - sym__builtin_container_type, - sym_json_container_type, - [10934] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(442), 1, - sym_identifier, - ACTIONS(444), 1, - anon_sym_inflight, - ACTIONS(446), 1, - anon_sym_LPAREN, - ACTIONS(454), 1, - anon_sym_RPAREN, - STATE(352), 1, - sym_parameter_type_list, - STATE(558), 1, - sym__inflight_specifier, - ACTIONS(65), 2, - anon_sym_Json, - anon_sym_MutJson, - ACTIONS(53), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - ACTIONS(51), 4, - anon_sym_Array, - anon_sym_Set, - anon_sym_Map, - anon_sym_Promise, - ACTIONS(450), 6, - anon_sym_num, - anon_sym_bool, - anon_sym_any, - anon_sym_str, - anon_sym_void, - anon_sym_duration, - STATE(419), 9, - sym_custom_type, - sym__type, - sym_optional, - sym_function_type, - sym_builtin_type, - sym_immutable_container_type, - sym_mutable_container_type, - sym__builtin_container_type, - sym_json_container_type, - [10990] = 6, + anon_sym_DASH, + anon_sym_await, + anon_sym_defer, + anon_sym_Json, + anon_sym_MutJson, + [10905] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(458), 1, - anon_sym_s, - ACTIONS(460), 1, - anon_sym_m, - ACTIONS(462), 1, - anon_sym_h, - ACTIONS(464), 4, - anon_sym_LT, - anon_sym_GT, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(456), 22, + ACTIONS(447), 10, + ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_DOT, - anon_sym_QMARK_DOT, - anon_sym_SEMI, - anon_sym_COMMA, + aux_sym__decimal_token1, + aux_sym__decimal_token2, + anon_sym_DQUOTE, anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_BSLASH, - anon_sym_PERCENT, - anon_sym_STAR_STAR, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_QMARK_QMARK, + anon_sym_DASH_DASH, + anon_sym_BANG, anon_sym_LBRACK, - anon_sym_RBRACK, - [11033] = 6, - ACTIONS(3), 1, + ACTIONS(449), 33, + sym_identifier, + anon_sym_inflight, + anon_sym_bring, + anon_sym_struct, + anon_sym_enum, + anon_sym_return, + anon_sym_let, + anon_sym_class, + anon_sym_resource, + anon_sym_interface, + anon_sym_for, + anon_sym_while, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_try, + anon_sym_0, + aux_sym__integer_token1, + anon_sym_true, + anon_sym_false, + anon_sym_new, + anon_sym_Array, + anon_sym_Set, + anon_sym_Map, + anon_sym_Promise, + anon_sym_MutSet, + anon_sym_MutMap, + anon_sym_MutArray, + anon_sym_DASH, + anon_sym_await, + anon_sym_defer, + anon_sym_Json, + anon_sym_MutJson, + [10956] = 3, + ACTIONS(3), 1, sym_comment, - ACTIONS(466), 1, + ACTIONS(451), 10, + ts_builtin_sym_end, anon_sym_LBRACE, - ACTIONS(470), 1, - anon_sym_DOT, - STATE(290), 1, - aux_sym_custom_type_repeat1, - ACTIONS(473), 5, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(468), 21, anon_sym_RBRACE, - anon_sym_QMARK_DOT, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_in, + aux_sym__decimal_token1, + aux_sym__decimal_token2, + anon_sym_DQUOTE, anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_BSLASH, - anon_sym_PERCENT, - anon_sym_STAR_STAR, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_QMARK_QMARK, + anon_sym_DASH_DASH, + anon_sym_BANG, anon_sym_LBRACK, - anon_sym_RBRACK, - [11076] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(442), 1, + ACTIONS(453), 33, sym_identifier, - ACTIONS(444), 1, anon_sym_inflight, - ACTIONS(446), 1, - anon_sym_LPAREN, - STATE(352), 1, - sym_parameter_type_list, - STATE(558), 1, - sym__inflight_specifier, - ACTIONS(65), 2, - anon_sym_Json, - anon_sym_MutJson, - ACTIONS(53), 3, - anon_sym_MutSet, - anon_sym_MutMap, - anon_sym_MutArray, - ACTIONS(51), 4, + anon_sym_bring, + anon_sym_struct, + anon_sym_enum, + anon_sym_return, + anon_sym_let, + anon_sym_class, + anon_sym_resource, + anon_sym_interface, + anon_sym_for, + anon_sym_while, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_try, + anon_sym_0, + aux_sym__integer_token1, + anon_sym_true, + anon_sym_false, + anon_sym_new, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - ACTIONS(450), 6, - anon_sym_num, - anon_sym_bool, - anon_sym_any, - anon_sym_str, - anon_sym_void, - anon_sym_duration, - STATE(556), 9, - sym_custom_type, - sym__type, - sym_optional, - sym_function_type, - sym_builtin_type, - sym_immutable_container_type, - sym_mutable_container_type, - sym__builtin_container_type, - sym_json_container_type, - [11129] = 11, + anon_sym_MutSet, + anon_sym_MutMap, + anon_sym_MutArray, + anon_sym_DASH, + anon_sym_await, + anon_sym_defer, + anon_sym_Json, + anon_sym_MutJson, + [11007] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(442), 1, + ACTIONS(455), 10, + ts_builtin_sym_end, + anon_sym_LBRACE, + anon_sym_RBRACE, + aux_sym__decimal_token1, + aux_sym__decimal_token2, + anon_sym_DQUOTE, + anon_sym_LPAREN, + anon_sym_DASH_DASH, + anon_sym_BANG, + anon_sym_LBRACK, + ACTIONS(457), 33, sym_identifier, - ACTIONS(444), 1, anon_sym_inflight, - ACTIONS(446), 1, - anon_sym_LPAREN, - STATE(352), 1, - sym_parameter_type_list, - STATE(558), 1, - sym__inflight_specifier, - ACTIONS(65), 2, - anon_sym_Json, - anon_sym_MutJson, - ACTIONS(53), 3, - anon_sym_MutSet, - anon_sym_MutMap, - anon_sym_MutArray, - ACTIONS(51), 4, + anon_sym_bring, + anon_sym_struct, + anon_sym_enum, + anon_sym_return, + anon_sym_let, + anon_sym_class, + anon_sym_resource, + anon_sym_interface, + anon_sym_for, + anon_sym_while, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_try, + anon_sym_0, + aux_sym__integer_token1, + anon_sym_true, + anon_sym_false, + anon_sym_new, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - ACTIONS(450), 6, - anon_sym_num, - anon_sym_bool, - anon_sym_any, - anon_sym_str, - anon_sym_void, - anon_sym_duration, - STATE(360), 9, - sym_custom_type, - sym__type, - sym_optional, - sym_function_type, - sym_builtin_type, - sym_immutable_container_type, - sym_mutable_container_type, - sym__builtin_container_type, - sym_json_container_type, - [11182] = 4, + anon_sym_MutSet, + anon_sym_MutMap, + anon_sym_MutArray, + anon_sym_DASH, + anon_sym_await, + anon_sym_defer, + anon_sym_Json, + anon_sym_MutJson, + [11058] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(475), 1, - sym_identifier, - ACTIONS(479), 6, - anon_sym_EQ, - anon_sym_in, - anon_sym_LT, - anon_sym_GT, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(477), 22, + ACTIONS(459), 10, + ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_DOT, - anon_sym_QMARK_DOT, - anon_sym_SEMI, - anon_sym_COMMA, + aux_sym__decimal_token1, + aux_sym__decimal_token2, + anon_sym_DQUOTE, anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_BSLASH, - anon_sym_PERCENT, - anon_sym_STAR_STAR, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_QMARK_QMARK, + anon_sym_DASH_DASH, + anon_sym_BANG, anon_sym_LBRACK, - anon_sym_RBRACK, - [11221] = 3, + ACTIONS(461), 33, + sym_identifier, + anon_sym_inflight, + anon_sym_bring, + anon_sym_struct, + anon_sym_enum, + anon_sym_return, + anon_sym_let, + anon_sym_class, + anon_sym_resource, + anon_sym_interface, + anon_sym_for, + anon_sym_while, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_try, + anon_sym_0, + aux_sym__integer_token1, + anon_sym_true, + anon_sym_false, + anon_sym_new, + anon_sym_Array, + anon_sym_Set, + anon_sym_Map, + anon_sym_Promise, + anon_sym_MutSet, + anon_sym_MutMap, + anon_sym_MutArray, + anon_sym_DASH, + anon_sym_await, + anon_sym_defer, + anon_sym_Json, + anon_sym_MutJson, + [11109] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(483), 4, - anon_sym_LT, - anon_sym_GT, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(481), 25, + ACTIONS(463), 10, + ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_DOT, - anon_sym_QMARK_DOT, - anon_sym_as, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_in, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_BSLASH, - anon_sym_PERCENT, - anon_sym_STAR_STAR, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_QMARK_QMARK, + aux_sym__decimal_token1, + aux_sym__decimal_token2, + anon_sym_DQUOTE, + anon_sym_LPAREN, + anon_sym_DASH_DASH, + anon_sym_BANG, anon_sym_LBRACK, - anon_sym_RBRACK, - [11258] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(442), 1, + ACTIONS(465), 33, sym_identifier, - ACTIONS(444), 1, anon_sym_inflight, - ACTIONS(446), 1, - anon_sym_LPAREN, - STATE(352), 1, - sym_parameter_type_list, - STATE(558), 1, - sym__inflight_specifier, - ACTIONS(65), 2, - anon_sym_Json, - anon_sym_MutJson, - ACTIONS(53), 3, - anon_sym_MutSet, - anon_sym_MutMap, - anon_sym_MutArray, - ACTIONS(51), 4, + anon_sym_bring, + anon_sym_struct, + anon_sym_enum, + anon_sym_return, + anon_sym_let, + anon_sym_class, + anon_sym_resource, + anon_sym_interface, + anon_sym_for, + anon_sym_while, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_try, + anon_sym_0, + aux_sym__integer_token1, + anon_sym_true, + anon_sym_false, + anon_sym_new, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - ACTIONS(450), 6, - anon_sym_num, - anon_sym_bool, - anon_sym_any, - anon_sym_str, - anon_sym_void, - anon_sym_duration, - STATE(362), 9, - sym_custom_type, - sym__type, - sym_optional, - sym_function_type, - sym_builtin_type, - sym_immutable_container_type, - sym_mutable_container_type, - sym__builtin_container_type, - sym_json_container_type, - [11311] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(442), 1, - sym_identifier, - ACTIONS(444), 1, - anon_sym_inflight, - ACTIONS(446), 1, - anon_sym_LPAREN, - STATE(352), 1, - sym_parameter_type_list, - STATE(558), 1, - sym__inflight_specifier, - ACTIONS(65), 2, - anon_sym_Json, - anon_sym_MutJson, - ACTIONS(53), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - ACTIONS(51), 4, - anon_sym_Array, - anon_sym_Set, - anon_sym_Map, - anon_sym_Promise, - ACTIONS(450), 6, - anon_sym_num, - anon_sym_bool, - anon_sym_any, - anon_sym_str, - anon_sym_void, - anon_sym_duration, - STATE(363), 9, - sym_custom_type, - sym__type, - sym_optional, - sym_function_type, - sym_builtin_type, - sym_immutable_container_type, - sym_mutable_container_type, - sym__builtin_container_type, - sym_json_container_type, - [11364] = 3, + anon_sym_DASH, + anon_sym_await, + anon_sym_defer, + anon_sym_Json, + anon_sym_MutJson, + [11160] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(487), 4, - anon_sym_LT, - anon_sym_GT, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(485), 25, + ACTIONS(467), 10, + ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_DOT, - anon_sym_QMARK_DOT, - anon_sym_as, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_in, + aux_sym__decimal_token1, + aux_sym__decimal_token2, + anon_sym_DQUOTE, anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_BSLASH, - anon_sym_PERCENT, - anon_sym_STAR_STAR, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_QMARK_QMARK, + anon_sym_DASH_DASH, + anon_sym_BANG, anon_sym_LBRACK, - anon_sym_RBRACK, - [11401] = 7, + ACTIONS(469), 33, + sym_identifier, + anon_sym_inflight, + anon_sym_bring, + anon_sym_struct, + anon_sym_enum, + anon_sym_return, + anon_sym_let, + anon_sym_class, + anon_sym_resource, + anon_sym_interface, + anon_sym_for, + anon_sym_while, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_try, + anon_sym_0, + aux_sym__integer_token1, + anon_sym_true, + anon_sym_false, + anon_sym_new, + anon_sym_Array, + anon_sym_Set, + anon_sym_Map, + anon_sym_Promise, + anon_sym_MutSet, + anon_sym_MutMap, + anon_sym_MutArray, + anon_sym_DASH, + anon_sym_await, + anon_sym_defer, + anon_sym_Json, + anon_sym_MutJson, + [11211] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(491), 1, - anon_sym_as, - ACTIONS(493), 1, - anon_sym_in, - STATE(155), 1, - sym_new_object_id, - STATE(198), 1, - sym_new_object_scope, - ACTIONS(495), 4, - anon_sym_LT, - anon_sym_GT, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(489), 21, + ACTIONS(471), 10, + ts_builtin_sym_end, + anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_DOT, - anon_sym_QMARK_DOT, - anon_sym_SEMI, - anon_sym_COMMA, + aux_sym__decimal_token1, + aux_sym__decimal_token2, + anon_sym_DQUOTE, anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_BSLASH, - anon_sym_PERCENT, - anon_sym_STAR_STAR, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_QMARK_QMARK, + anon_sym_DASH_DASH, + anon_sym_BANG, anon_sym_LBRACK, - anon_sym_RBRACK, - [11446] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(442), 1, + ACTIONS(473), 33, sym_identifier, - ACTIONS(444), 1, anon_sym_inflight, - ACTIONS(446), 1, - anon_sym_LPAREN, - STATE(352), 1, - sym_parameter_type_list, - STATE(558), 1, - sym__inflight_specifier, - ACTIONS(65), 2, - anon_sym_Json, - anon_sym_MutJson, - ACTIONS(53), 3, - anon_sym_MutSet, - anon_sym_MutMap, - anon_sym_MutArray, - ACTIONS(51), 4, + anon_sym_bring, + anon_sym_struct, + anon_sym_enum, + anon_sym_return, + anon_sym_let, + anon_sym_class, + anon_sym_resource, + anon_sym_interface, + anon_sym_for, + anon_sym_while, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_try, + anon_sym_0, + aux_sym__integer_token1, + anon_sym_true, + anon_sym_false, + anon_sym_new, anon_sym_Array, anon_sym_Set, anon_sym_Map, anon_sym_Promise, - ACTIONS(450), 6, - anon_sym_num, - anon_sym_bool, - anon_sym_any, - anon_sym_str, - anon_sym_void, - anon_sym_duration, - STATE(419), 9, - sym_custom_type, - sym__type, - sym_optional, - sym_function_type, - sym_builtin_type, - sym_immutable_container_type, - sym_mutable_container_type, - sym__builtin_container_type, - sym_json_container_type, - [11499] = 3, + anon_sym_MutSet, + anon_sym_MutMap, + anon_sym_MutArray, + anon_sym_DASH, + anon_sym_await, + anon_sym_defer, + anon_sym_Json, + anon_sym_MutJson, + [11262] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(499), 4, - anon_sym_LT, - anon_sym_GT, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(497), 25, + ACTIONS(475), 10, + ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_DOT, - anon_sym_QMARK_DOT, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_s, - anon_sym_m, - anon_sym_h, + aux_sym__decimal_token1, + aux_sym__decimal_token2, + anon_sym_DQUOTE, anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_BSLASH, - anon_sym_PERCENT, - anon_sym_STAR_STAR, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_QMARK_QMARK, + anon_sym_DASH_DASH, + anon_sym_BANG, anon_sym_LBRACK, - anon_sym_RBRACK, - [11536] = 3, + ACTIONS(477), 33, + sym_identifier, + anon_sym_inflight, + anon_sym_bring, + anon_sym_struct, + anon_sym_enum, + anon_sym_return, + anon_sym_let, + anon_sym_class, + anon_sym_resource, + anon_sym_interface, + anon_sym_for, + anon_sym_while, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_try, + anon_sym_0, + aux_sym__integer_token1, + anon_sym_true, + anon_sym_false, + anon_sym_new, + anon_sym_Array, + anon_sym_Set, + anon_sym_Map, + anon_sym_Promise, + anon_sym_MutSet, + anon_sym_MutMap, + anon_sym_MutArray, + anon_sym_DASH, + anon_sym_await, + anon_sym_defer, + anon_sym_Json, + anon_sym_MutJson, + [11313] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(503), 4, - anon_sym_LT, - anon_sym_GT, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(501), 24, + ACTIONS(479), 10, + ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_DOT, - anon_sym_QMARK_DOT, - anon_sym_as, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_in, + aux_sym__decimal_token1, + aux_sym__decimal_token2, + anon_sym_DQUOTE, anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_BSLASH, - anon_sym_PERCENT, - anon_sym_STAR_STAR, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_QMARK_QMARK, + anon_sym_DASH_DASH, + anon_sym_BANG, anon_sym_LBRACK, - anon_sym_RBRACK, - [11572] = 3, + ACTIONS(481), 33, + sym_identifier, + anon_sym_inflight, + anon_sym_bring, + anon_sym_struct, + anon_sym_enum, + anon_sym_return, + anon_sym_let, + anon_sym_class, + anon_sym_resource, + anon_sym_interface, + anon_sym_for, + anon_sym_while, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_try, + anon_sym_0, + aux_sym__integer_token1, + anon_sym_true, + anon_sym_false, + anon_sym_new, + anon_sym_Array, + anon_sym_Set, + anon_sym_Map, + anon_sym_Promise, + anon_sym_MutSet, + anon_sym_MutMap, + anon_sym_MutArray, + anon_sym_DASH, + anon_sym_await, + anon_sym_defer, + anon_sym_Json, + anon_sym_MutJson, + [11364] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(507), 4, - anon_sym_LT, - anon_sym_GT, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(505), 24, + ACTIONS(483), 10, + ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_DOT, - anon_sym_QMARK_DOT, - anon_sym_as, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_in, + aux_sym__decimal_token1, + aux_sym__decimal_token2, + anon_sym_DQUOTE, anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_BSLASH, - anon_sym_PERCENT, - anon_sym_STAR_STAR, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_QMARK_QMARK, + anon_sym_DASH_DASH, + anon_sym_BANG, anon_sym_LBRACK, - anon_sym_RBRACK, - [11608] = 3, + ACTIONS(485), 33, + sym_identifier, + anon_sym_inflight, + anon_sym_bring, + anon_sym_struct, + anon_sym_enum, + anon_sym_return, + anon_sym_let, + anon_sym_class, + anon_sym_resource, + anon_sym_interface, + anon_sym_for, + anon_sym_while, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_try, + anon_sym_0, + aux_sym__integer_token1, + anon_sym_true, + anon_sym_false, + anon_sym_new, + anon_sym_Array, + anon_sym_Set, + anon_sym_Map, + anon_sym_Promise, + anon_sym_MutSet, + anon_sym_MutMap, + anon_sym_MutArray, + anon_sym_DASH, + anon_sym_await, + anon_sym_defer, + anon_sym_Json, + anon_sym_MutJson, + [11415] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(511), 4, - anon_sym_LT, - anon_sym_GT, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(509), 24, + ACTIONS(487), 10, + ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_DOT, - anon_sym_QMARK_DOT, - anon_sym_as, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_in, + aux_sym__decimal_token1, + aux_sym__decimal_token2, + anon_sym_DQUOTE, anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_BSLASH, - anon_sym_PERCENT, - anon_sym_STAR_STAR, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_QMARK_QMARK, + anon_sym_DASH_DASH, + anon_sym_BANG, anon_sym_LBRACK, - anon_sym_RBRACK, - [11644] = 3, + ACTIONS(489), 33, + sym_identifier, + anon_sym_inflight, + anon_sym_bring, + anon_sym_struct, + anon_sym_enum, + anon_sym_return, + anon_sym_let, + anon_sym_class, + anon_sym_resource, + anon_sym_interface, + anon_sym_for, + anon_sym_while, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_try, + anon_sym_0, + aux_sym__integer_token1, + anon_sym_true, + anon_sym_false, + anon_sym_new, + anon_sym_Array, + anon_sym_Set, + anon_sym_Map, + anon_sym_Promise, + anon_sym_MutSet, + anon_sym_MutMap, + anon_sym_MutArray, + anon_sym_DASH, + anon_sym_await, + anon_sym_defer, + anon_sym_Json, + anon_sym_MutJson, + [11466] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(515), 4, - anon_sym_LT, - anon_sym_GT, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(513), 24, + ACTIONS(491), 10, + ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_DOT, - anon_sym_QMARK_DOT, - anon_sym_as, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_in, + aux_sym__decimal_token1, + aux_sym__decimal_token2, + anon_sym_DQUOTE, anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_BSLASH, - anon_sym_PERCENT, - anon_sym_STAR_STAR, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_QMARK_QMARK, + anon_sym_DASH_DASH, + anon_sym_BANG, anon_sym_LBRACK, - anon_sym_RBRACK, - [11680] = 3, + ACTIONS(493), 33, + sym_identifier, + anon_sym_inflight, + anon_sym_bring, + anon_sym_struct, + anon_sym_enum, + anon_sym_return, + anon_sym_let, + anon_sym_class, + anon_sym_resource, + anon_sym_interface, + anon_sym_for, + anon_sym_while, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_try, + anon_sym_0, + aux_sym__integer_token1, + anon_sym_true, + anon_sym_false, + anon_sym_new, + anon_sym_Array, + anon_sym_Set, + anon_sym_Map, + anon_sym_Promise, + anon_sym_MutSet, + anon_sym_MutMap, + anon_sym_MutArray, + anon_sym_DASH, + anon_sym_await, + anon_sym_defer, + anon_sym_Json, + anon_sym_MutJson, + [11517] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(473), 5, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(468), 23, + ACTIONS(495), 10, + ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_DOT, - anon_sym_QMARK_DOT, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_in, + aux_sym__decimal_token1, + aux_sym__decimal_token2, + anon_sym_DQUOTE, anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_BSLASH, - anon_sym_PERCENT, - anon_sym_STAR_STAR, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_QMARK_QMARK, + anon_sym_DASH_DASH, + anon_sym_BANG, anon_sym_LBRACK, - anon_sym_RBRACK, - [11716] = 3, + ACTIONS(497), 33, + sym_identifier, + anon_sym_inflight, + anon_sym_bring, + anon_sym_struct, + anon_sym_enum, + anon_sym_return, + anon_sym_let, + anon_sym_class, + anon_sym_resource, + anon_sym_interface, + anon_sym_for, + anon_sym_while, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_try, + anon_sym_0, + aux_sym__integer_token1, + anon_sym_true, + anon_sym_false, + anon_sym_new, + anon_sym_Array, + anon_sym_Set, + anon_sym_Map, + anon_sym_Promise, + anon_sym_MutSet, + anon_sym_MutMap, + anon_sym_MutArray, + anon_sym_DASH, + anon_sym_await, + anon_sym_defer, + anon_sym_Json, + anon_sym_MutJson, + [11568] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(519), 4, - anon_sym_LT, - anon_sym_GT, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(517), 24, + ACTIONS(499), 10, + ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_DOT, - anon_sym_QMARK_DOT, - anon_sym_as, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_in, + aux_sym__decimal_token1, + aux_sym__decimal_token2, + anon_sym_DQUOTE, anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_BSLASH, - anon_sym_PERCENT, - anon_sym_STAR_STAR, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_QMARK_QMARK, + anon_sym_DASH_DASH, + anon_sym_BANG, anon_sym_LBRACK, - anon_sym_RBRACK, - [11752] = 3, + ACTIONS(501), 33, + sym_identifier, + anon_sym_inflight, + anon_sym_bring, + anon_sym_struct, + anon_sym_enum, + anon_sym_return, + anon_sym_let, + anon_sym_class, + anon_sym_resource, + anon_sym_interface, + anon_sym_for, + anon_sym_while, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_try, + anon_sym_0, + aux_sym__integer_token1, + anon_sym_true, + anon_sym_false, + anon_sym_new, + anon_sym_Array, + anon_sym_Set, + anon_sym_Map, + anon_sym_Promise, + anon_sym_MutSet, + anon_sym_MutMap, + anon_sym_MutArray, + anon_sym_DASH, + anon_sym_await, + anon_sym_defer, + anon_sym_Json, + anon_sym_MutJson, + [11619] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(523), 5, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(521), 23, + ACTIONS(503), 10, + ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_DOT, - anon_sym_QMARK_DOT, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_in, + aux_sym__decimal_token1, + aux_sym__decimal_token2, + anon_sym_DQUOTE, anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_BSLASH, - anon_sym_PERCENT, - anon_sym_STAR_STAR, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_QMARK_QMARK, + anon_sym_DASH_DASH, + anon_sym_BANG, anon_sym_LBRACK, - anon_sym_RBRACK, - [11788] = 3, + ACTIONS(505), 33, + sym_identifier, + anon_sym_inflight, + anon_sym_bring, + anon_sym_struct, + anon_sym_enum, + anon_sym_return, + anon_sym_let, + anon_sym_class, + anon_sym_resource, + anon_sym_interface, + anon_sym_for, + anon_sym_while, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_try, + anon_sym_0, + aux_sym__integer_token1, + anon_sym_true, + anon_sym_false, + anon_sym_new, + anon_sym_Array, + anon_sym_Set, + anon_sym_Map, + anon_sym_Promise, + anon_sym_MutSet, + anon_sym_MutMap, + anon_sym_MutArray, + anon_sym_DASH, + anon_sym_await, + anon_sym_defer, + anon_sym_Json, + anon_sym_MutJson, + [11670] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(527), 4, - anon_sym_LT, - anon_sym_GT, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(525), 24, + ACTIONS(507), 10, + ts_builtin_sym_end, anon_sym_LBRACE, anon_sym_RBRACE, - anon_sym_DOT, - anon_sym_QMARK_DOT, - anon_sym_as, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_in, + aux_sym__decimal_token1, + aux_sym__decimal_token2, + anon_sym_DQUOTE, anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_BSLASH, - anon_sym_PERCENT, + anon_sym_DASH_DASH, + anon_sym_BANG, + anon_sym_LBRACK, + ACTIONS(509), 33, + sym_identifier, + anon_sym_inflight, + anon_sym_bring, + anon_sym_struct, + anon_sym_enum, + anon_sym_return, + anon_sym_let, + anon_sym_class, + anon_sym_resource, + anon_sym_interface, + anon_sym_for, + anon_sym_while, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_try, + anon_sym_0, + aux_sym__integer_token1, + anon_sym_true, + anon_sym_false, + anon_sym_new, + anon_sym_Array, + anon_sym_Set, + anon_sym_Map, + anon_sym_Promise, + anon_sym_MutSet, + anon_sym_MutMap, + anon_sym_MutArray, + anon_sym_DASH, + anon_sym_await, + anon_sym_defer, + anon_sym_Json, + anon_sym_MutJson, + [11721] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(47), 1, + anon_sym_DQUOTE, + ACTIONS(65), 1, + anon_sym_LBRACK, + ACTIONS(511), 1, + anon_sym_LBRACE, + STATE(158), 1, + sym_number, + STATE(223), 1, + sym_json_element, + ACTIONS(41), 2, + anon_sym_0, + aux_sym__integer_token1, + ACTIONS(43), 2, + aux_sym__decimal_token1, + aux_sym__decimal_token2, + ACTIONS(513), 2, + anon_sym_true, + anon_sym_false, + STATE(159), 2, + sym__integer, + sym__decimal, + ACTIONS(517), 3, + anon_sym_MutSet, + anon_sym_MutMap, + anon_sym_MutArray, + STATE(177), 3, + sym_seconds, + sym_minutes, + sym_hours, + STATE(204), 3, + sym__literal, + sym_array_literal, + sym_map_literal, + STATE(218), 3, + sym_bool, + sym_duration, + sym_string, + STATE(644), 3, + sym_immutable_container_type, + sym_mutable_container_type, + sym__builtin_container_type, + ACTIONS(515), 4, + anon_sym_Array, + anon_sym_Set, + anon_sym_Map, + anon_sym_Promise, + [11787] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(519), 1, + sym_identifier, + ACTIONS(521), 1, + anon_sym_inflight, + ACTIONS(523), 1, + anon_sym_LPAREN, + ACTIONS(525), 1, + anon_sym_RPAREN, + STATE(393), 1, + sym_parameter_type_list, + STATE(648), 1, + sym__inflight_specifier, + ACTIONS(67), 2, + anon_sym_Json, + anon_sym_MutJson, + ACTIONS(55), 3, + anon_sym_MutSet, + anon_sym_MutMap, + anon_sym_MutArray, + ACTIONS(53), 4, + anon_sym_Array, + anon_sym_Set, + anon_sym_Map, + anon_sym_Promise, + ACTIONS(527), 6, + anon_sym_num, + anon_sym_bool, + anon_sym_any, + anon_sym_str, + anon_sym_void, + anon_sym_duration, + STATE(488), 9, + sym_custom_type, + sym__type, + sym_optional, + sym_function_type, + sym_builtin_type, + sym_immutable_container_type, + sym_mutable_container_type, + sym__builtin_container_type, + sym_json_container_type, + [11843] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(519), 1, + sym_identifier, + ACTIONS(521), 1, + anon_sym_inflight, + ACTIONS(523), 1, + anon_sym_LPAREN, + ACTIONS(529), 1, + anon_sym_RPAREN, + STATE(393), 1, + sym_parameter_type_list, + STATE(648), 1, + sym__inflight_specifier, + ACTIONS(67), 2, + anon_sym_Json, + anon_sym_MutJson, + ACTIONS(55), 3, + anon_sym_MutSet, + anon_sym_MutMap, + anon_sym_MutArray, + ACTIONS(53), 4, + anon_sym_Array, + anon_sym_Set, + anon_sym_Map, + anon_sym_Promise, + ACTIONS(527), 6, + anon_sym_num, + anon_sym_bool, + anon_sym_any, + anon_sym_str, + anon_sym_void, + anon_sym_duration, + STATE(540), 9, + sym_custom_type, + sym__type, + sym_optional, + sym_function_type, + sym_builtin_type, + sym_immutable_container_type, + sym_mutable_container_type, + sym__builtin_container_type, + sym_json_container_type, + [11899] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(519), 1, + sym_identifier, + ACTIONS(521), 1, + anon_sym_inflight, + ACTIONS(523), 1, + anon_sym_LPAREN, + ACTIONS(531), 1, + anon_sym_RPAREN, + STATE(393), 1, + sym_parameter_type_list, + STATE(648), 1, + sym__inflight_specifier, + ACTIONS(67), 2, + anon_sym_Json, + anon_sym_MutJson, + ACTIONS(55), 3, + anon_sym_MutSet, + anon_sym_MutMap, + anon_sym_MutArray, + ACTIONS(53), 4, + anon_sym_Array, + anon_sym_Set, + anon_sym_Map, + anon_sym_Promise, + ACTIONS(527), 6, + anon_sym_num, + anon_sym_bool, + anon_sym_any, + anon_sym_str, + anon_sym_void, + anon_sym_duration, + STATE(540), 9, + sym_custom_type, + sym__type, + sym_optional, + sym_function_type, + sym_builtin_type, + sym_immutable_container_type, + sym_mutable_container_type, + sym__builtin_container_type, + sym_json_container_type, + [11955] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(519), 1, + sym_identifier, + ACTIONS(521), 1, + anon_sym_inflight, + ACTIONS(523), 1, + anon_sym_LPAREN, + STATE(393), 1, + sym_parameter_type_list, + STATE(648), 1, + sym__inflight_specifier, + ACTIONS(67), 2, + anon_sym_Json, + anon_sym_MutJson, + ACTIONS(55), 3, + anon_sym_MutSet, + anon_sym_MutMap, + anon_sym_MutArray, + ACTIONS(53), 4, + anon_sym_Array, + anon_sym_Set, + anon_sym_Map, + anon_sym_Promise, + ACTIONS(527), 6, + anon_sym_num, + anon_sym_bool, + anon_sym_any, + anon_sym_str, + anon_sym_void, + anon_sym_duration, + STATE(404), 9, + sym_custom_type, + sym__type, + sym_optional, + sym_function_type, + sym_builtin_type, + sym_immutable_container_type, + sym_mutable_container_type, + sym__builtin_container_type, + sym_json_container_type, + [12008] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(519), 1, + sym_identifier, + ACTIONS(521), 1, + anon_sym_inflight, + ACTIONS(523), 1, + anon_sym_LPAREN, + STATE(393), 1, + sym_parameter_type_list, + STATE(648), 1, + sym__inflight_specifier, + ACTIONS(67), 2, + anon_sym_Json, + anon_sym_MutJson, + ACTIONS(55), 3, + anon_sym_MutSet, + anon_sym_MutMap, + anon_sym_MutArray, + ACTIONS(53), 4, + anon_sym_Array, + anon_sym_Set, + anon_sym_Map, + anon_sym_Promise, + ACTIONS(527), 6, + anon_sym_num, + anon_sym_bool, + anon_sym_any, + anon_sym_str, + anon_sym_void, + anon_sym_duration, + STATE(540), 9, + sym_custom_type, + sym__type, + sym_optional, + sym_function_type, + sym_builtin_type, + sym_immutable_container_type, + sym_mutable_container_type, + sym__builtin_container_type, + sym_json_container_type, + [12061] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(519), 1, + sym_identifier, + ACTIONS(521), 1, + anon_sym_inflight, + ACTIONS(523), 1, + anon_sym_LPAREN, + STATE(393), 1, + sym_parameter_type_list, + STATE(648), 1, + sym__inflight_specifier, + ACTIONS(67), 2, + anon_sym_Json, + anon_sym_MutJson, + ACTIONS(55), 3, + anon_sym_MutSet, + anon_sym_MutMap, + anon_sym_MutArray, + ACTIONS(53), 4, + anon_sym_Array, + anon_sym_Set, + anon_sym_Map, + anon_sym_Promise, + ACTIONS(527), 6, + anon_sym_num, + anon_sym_bool, + anon_sym_any, + anon_sym_str, + anon_sym_void, + anon_sym_duration, + STATE(408), 9, + sym_custom_type, + sym__type, + sym_optional, + sym_function_type, + sym_builtin_type, + sym_immutable_container_type, + sym_mutable_container_type, + sym__builtin_container_type, + sym_json_container_type, + [12114] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(519), 1, + sym_identifier, + ACTIONS(521), 1, + anon_sym_inflight, + ACTIONS(523), 1, + anon_sym_LPAREN, + STATE(393), 1, + sym_parameter_type_list, + STATE(648), 1, + sym__inflight_specifier, + ACTIONS(67), 2, + anon_sym_Json, + anon_sym_MutJson, + ACTIONS(55), 3, + anon_sym_MutSet, + anon_sym_MutMap, + anon_sym_MutArray, + ACTIONS(53), 4, + anon_sym_Array, + anon_sym_Set, + anon_sym_Map, + anon_sym_Promise, + ACTIONS(527), 6, + anon_sym_num, + anon_sym_bool, + anon_sym_any, + anon_sym_str, + anon_sym_void, + anon_sym_duration, + STATE(407), 9, + sym_custom_type, + sym__type, + sym_optional, + sym_function_type, + sym_builtin_type, + sym_immutable_container_type, + sym_mutable_container_type, + sym__builtin_container_type, + sym_json_container_type, + [12167] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(533), 1, + anon_sym_LBRACE, + ACTIONS(537), 1, + anon_sym_DOT, + STATE(312), 1, + aux_sym_custom_type_repeat1, + ACTIONS(540), 5, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(535), 21, + anon_sym_RBRACE, + anon_sym_QMARK_DOT, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_in, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_BSLASH, + anon_sym_PERCENT, + anon_sym_STAR_STAR, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_QMARK_QMARK, + anon_sym_LBRACK, + anon_sym_RBRACK, + [12210] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(542), 1, + sym_identifier, + ACTIONS(546), 6, + anon_sym_EQ, + anon_sym_in, + anon_sym_LT, + anon_sym_GT, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(544), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT, + anon_sym_QMARK_DOT, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_BSLASH, + anon_sym_PERCENT, + anon_sym_STAR_STAR, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_QMARK_QMARK, + anon_sym_LBRACK, + anon_sym_RBRACK, + [12249] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(550), 4, + anon_sym_LT, + anon_sym_GT, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(548), 25, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT, + anon_sym_QMARK_DOT, + anon_sym_as, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_in, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_BSLASH, + anon_sym_PERCENT, + anon_sym_STAR_STAR, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_QMARK_QMARK, + anon_sym_LBRACK, + anon_sym_RBRACK, + [12286] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(554), 1, + anon_sym_s, + ACTIONS(556), 1, + anon_sym_m, + ACTIONS(558), 1, + anon_sym_h, + ACTIONS(560), 4, + anon_sym_LT, + anon_sym_GT, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(552), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT, + anon_sym_QMARK_DOT, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_BSLASH, + anon_sym_PERCENT, anon_sym_STAR_STAR, anon_sym_PIPE_PIPE, anon_sym_AMP_AMP, @@ -15205,23 +16254,62 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [11824] = 3, + [12329] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(531), 4, + ACTIONS(564), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(529), 24, + ACTIONS(562), 25, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, anon_sym_QMARK_DOT, - anon_sym_as, anon_sym_SEMI, anon_sym_COMMA, + anon_sym_s, + anon_sym_m, + anon_sym_h, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_BSLASH, + anon_sym_PERCENT, + anon_sym_STAR_STAR, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_QMARK_QMARK, + anon_sym_LBRACK, + anon_sym_RBRACK, + [12366] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(568), 1, + anon_sym_as, + ACTIONS(570), 1, anon_sym_in, + STATE(173), 1, + sym_new_object_id, + STATE(202), 1, + sym_new_object_scope, + ACTIONS(572), 4, + anon_sym_LT, + anon_sym_GT, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(566), 21, + anon_sym_RBRACE, + anon_sym_DOT, + anon_sym_QMARK_DOT, + anon_sym_SEMI, + anon_sym_COMMA, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_DASH, @@ -15238,15 +16326,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [11860] = 3, + [12411] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(535), 4, + ACTIONS(576), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(533), 24, + ACTIONS(574), 25, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -15254,6 +16342,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_as, anon_sym_SEMI, anon_sym_COMMA, + anon_sym_COLON, anon_sym_in, anon_sym_LPAREN, anon_sym_RPAREN, @@ -15271,24 +16360,98 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [11896] = 5, + [12448] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(519), 1, + sym_identifier, + ACTIONS(521), 1, + anon_sym_inflight, + ACTIONS(523), 1, + anon_sym_LPAREN, + STATE(393), 1, + sym_parameter_type_list, + STATE(648), 1, + sym__inflight_specifier, + ACTIONS(67), 2, + anon_sym_Json, + anon_sym_MutJson, + ACTIONS(55), 3, + anon_sym_MutSet, + anon_sym_MutMap, + anon_sym_MutArray, + ACTIONS(53), 4, + anon_sym_Array, + anon_sym_Set, + anon_sym_Map, + anon_sym_Promise, + ACTIONS(527), 6, + anon_sym_num, + anon_sym_bool, + anon_sym_any, + anon_sym_str, + anon_sym_void, + anon_sym_duration, + STATE(647), 9, + sym_custom_type, + sym__type, + sym_optional, + sym_function_type, + sym_builtin_type, + sym_immutable_container_type, + sym_mutable_container_type, + sym__builtin_container_type, + sym_json_container_type, + [12501] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(493), 1, + ACTIONS(580), 4, + anon_sym_LT, + anon_sym_GT, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(578), 24, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT, + anon_sym_QMARK_DOT, + anon_sym_as, + anon_sym_SEMI, + anon_sym_COMMA, anon_sym_in, - STATE(213), 1, - sym_new_object_scope, - ACTIONS(539), 4, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_BSLASH, + anon_sym_PERCENT, + anon_sym_STAR_STAR, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_QMARK_QMARK, + anon_sym_LBRACK, + anon_sym_RBRACK, + [12537] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(584), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(537), 21, + ACTIONS(582), 24, + anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, anon_sym_QMARK_DOT, + anon_sym_as, anon_sym_SEMI, anon_sym_COMMA, + anon_sym_in, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_DASH, @@ -15305,19 +16468,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [11935] = 3, + [12573] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(543), 4, + ACTIONS(588), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(541), 23, + ACTIONS(586), 24, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, anon_sym_QMARK_DOT, + anon_sym_as, anon_sym_SEMI, anon_sym_COMMA, anon_sym_in, @@ -15337,26 +16501,90 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [11970] = 6, + [12609] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(540), 5, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(535), 23, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT, + anon_sym_QMARK_DOT, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_in, anon_sym_LPAREN, - STATE(159), 1, - sym_argument_list, - ACTIONS(547), 2, + anon_sym_RPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_BSLASH, + anon_sym_PERCENT, + anon_sym_STAR_STAR, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_QMARK_QMARK, + anon_sym_LBRACK, + anon_sym_RBRACK, + [12645] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(592), 4, + anon_sym_LT, + anon_sym_GT, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(590), 24, + anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(551), 4, + anon_sym_as, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_in, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_BSLASH, + anon_sym_PERCENT, + anon_sym_STAR_STAR, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_QMARK_QMARK, + anon_sym_LBRACK, + anon_sym_RBRACK, + [12681] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(596), 5, + anon_sym_EQ, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(545), 19, + ACTIONS(594), 23, anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_DOT, + anon_sym_QMARK_DOT, anon_sym_SEMI, anon_sym_COMMA, + anon_sym_in, + anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -15372,21 +16600,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [12011] = 3, + [12717] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(555), 4, + ACTIONS(600), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(553), 22, + ACTIONS(598), 24, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, anon_sym_QMARK_DOT, + anon_sym_as, anon_sym_SEMI, anon_sym_COMMA, + anon_sym_in, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_DASH, @@ -15403,21 +16633,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [12045] = 3, + [12753] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(559), 4, + ACTIONS(604), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(557), 22, + ACTIONS(602), 24, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, anon_sym_QMARK_DOT, + anon_sym_as, anon_sym_SEMI, anon_sym_COMMA, + anon_sym_in, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_DASH, @@ -15434,21 +16666,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [12079] = 3, + [12789] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(563), 4, + ACTIONS(608), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(561), 22, + ACTIONS(606), 24, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, anon_sym_QMARK_DOT, + anon_sym_as, anon_sym_SEMI, anon_sym_COMMA, + anon_sym_in, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_DASH, @@ -15465,16 +16699,52 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [12113] = 3, + [12825] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(567), 4, + ACTIONS(612), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(565), 22, + ACTIONS(610), 24, anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT, + anon_sym_QMARK_DOT, + anon_sym_as, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_in, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_BSLASH, + anon_sym_PERCENT, + anon_sym_STAR_STAR, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_QMARK_QMARK, + anon_sym_LBRACK, + anon_sym_RBRACK, + [12861] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(570), 1, + anon_sym_in, + STATE(179), 1, + sym_new_object_scope, + ACTIONS(616), 4, + anon_sym_LT, + anon_sym_GT, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(614), 21, anon_sym_RBRACE, anon_sym_DOT, anon_sym_QMARK_DOT, @@ -15496,21 +16766,57 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [12147] = 3, + [12900] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(622), 1, + anon_sym_LPAREN, + STATE(176), 1, + sym_argument_list, + ACTIONS(620), 2, + anon_sym_DOT, + anon_sym_QMARK_DOT, + ACTIONS(624), 4, + anon_sym_LT, + anon_sym_GT, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(618), 19, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_BSLASH, + anon_sym_PERCENT, + anon_sym_STAR_STAR, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_QMARK_QMARK, + anon_sym_LBRACK, + anon_sym_RBRACK, + [12941] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(571), 4, + ACTIONS(628), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(569), 22, + ACTIONS(626), 23, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, anon_sym_QMARK_DOT, anon_sym_SEMI, anon_sym_COMMA, + anon_sym_in, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_DASH, @@ -15527,15 +16833,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [12181] = 3, + [12976] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(575), 4, + ACTIONS(632), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(573), 22, + ACTIONS(630), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -15558,15 +16864,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [12215] = 3, + [13010] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(231), 4, + ACTIONS(636), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(229), 22, + ACTIONS(634), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -15589,15 +16895,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [12249] = 3, + [13044] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(579), 4, + ACTIONS(640), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(577), 22, + ACTIONS(638), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -15620,15 +16926,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [12283] = 3, + [13078] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(583), 4, + ACTIONS(644), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(581), 22, + ACTIONS(642), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -15651,15 +16957,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [12317] = 3, + [13112] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(587), 4, + ACTIONS(648), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(585), 22, + ACTIONS(646), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -15682,15 +16988,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [12351] = 3, + [13146] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(591), 4, + ACTIONS(652), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(589), 22, + ACTIONS(650), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -15713,15 +17019,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [12385] = 3, + [13180] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(595), 4, + ACTIONS(240), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(593), 22, + ACTIONS(238), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -15744,46 +17050,59 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [12419] = 3, + [13214] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(599), 4, - anon_sym_LT, - anon_sym_GT, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(597), 22, - anon_sym_LBRACE, - anon_sym_RBRACE, + ACTIONS(622), 1, + anon_sym_LPAREN, + ACTIONS(664), 1, + anon_sym_STAR_STAR, + ACTIONS(666), 1, + anon_sym_PIPE_PIPE, + ACTIONS(668), 1, + anon_sym_AMP_AMP, + ACTIONS(674), 1, + anon_sym_QMARK_QMARK, + ACTIONS(676), 1, + anon_sym_LBRACK, + STATE(176), 1, + sym_argument_list, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_LPAREN, - anon_sym_RPAREN, + ACTIONS(656), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(658), 2, anon_sym_DASH, anon_sym_PLUS, + ACTIONS(660), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(662), 2, anon_sym_BSLASH, anon_sym_PERCENT, - anon_sym_STAR_STAR, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, + ACTIONS(670), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + ACTIONS(672), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - anon_sym_QMARK_QMARK, - anon_sym_LBRACK, + ACTIONS(654), 5, + anon_sym_RBRACE, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_RPAREN, anon_sym_RBRACK, - [12453] = 3, + [13274] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(603), 4, + ACTIONS(680), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(601), 22, + ACTIONS(678), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -15806,15 +17125,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [12487] = 3, + [13308] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(607), 4, + ACTIONS(684), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(605), 22, + ACTIONS(682), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -15837,15 +17156,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [12521] = 3, + [13342] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(611), 4, + ACTIONS(688), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(609), 22, + ACTIONS(686), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -15868,15 +17187,59 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [12555] = 3, + [13376] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(615), 4, + ACTIONS(622), 1, + anon_sym_LPAREN, + ACTIONS(664), 1, + anon_sym_STAR_STAR, + ACTIONS(666), 1, + anon_sym_PIPE_PIPE, + ACTIONS(668), 1, + anon_sym_AMP_AMP, + ACTIONS(674), 1, + anon_sym_QMARK_QMARK, + ACTIONS(676), 1, + anon_sym_LBRACK, + STATE(176), 1, + sym_argument_list, + ACTIONS(620), 2, + anon_sym_DOT, + anon_sym_QMARK_DOT, + ACTIONS(656), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(658), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(660), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(662), 2, + anon_sym_BSLASH, + anon_sym_PERCENT, + ACTIONS(670), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(672), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(690), 5, + anon_sym_RBRACE, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + [13436] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(694), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(613), 22, + ACTIONS(692), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -15899,15 +17262,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [12589] = 3, + [13470] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(619), 4, + ACTIONS(698), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(617), 22, + ACTIONS(696), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -15930,15 +17293,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [12623] = 3, + [13504] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(623), 4, + ACTIONS(702), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(621), 22, + ACTIONS(700), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -15961,15 +17324,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [12657] = 3, + [13538] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(627), 4, + ACTIONS(706), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(625), 22, + ACTIONS(704), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -15992,33 +17355,33 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [12691] = 11, + [13572] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(635), 1, + ACTIONS(664), 1, anon_sym_STAR_STAR, - ACTIONS(637), 1, + ACTIONS(674), 1, anon_sym_QMARK_QMARK, - STATE(159), 1, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(551), 2, + ACTIONS(624), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(629), 2, + ACTIONS(658), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(631), 2, + ACTIONS(660), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(633), 2, + ACTIONS(662), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(545), 12, + ACTIONS(618), 12, anon_sym_RBRACE, anon_sym_SEMI, anon_sym_COMMA, @@ -16031,30 +17394,30 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_LBRACK, anon_sym_RBRACK, - [12741] = 10, + [13622] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(635), 1, + ACTIONS(664), 1, anon_sym_STAR_STAR, - ACTIONS(637), 1, + ACTIONS(674), 1, anon_sym_QMARK_QMARK, - STATE(159), 1, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(551), 2, + ACTIONS(624), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(631), 2, + ACTIONS(660), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(633), 2, + ACTIONS(662), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(545), 14, + ACTIONS(618), 14, anon_sym_RBRACE, anon_sym_SEMI, anon_sym_COMMA, @@ -16069,26 +17432,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_LBRACK, anon_sym_RBRACK, - [12789] = 8, + [13670] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(635), 1, + ACTIONS(664), 1, anon_sym_STAR_STAR, - ACTIONS(637), 1, + ACTIONS(674), 1, anon_sym_QMARK_QMARK, - STATE(159), 1, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(551), 4, + ACTIONS(624), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(545), 16, + ACTIONS(618), 16, anon_sym_RBRACE, anon_sym_SEMI, anon_sym_COMMA, @@ -16105,24 +17468,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_LBRACK, anon_sym_RBRACK, - [12833] = 7, + [13714] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(637), 1, + ACTIONS(674), 1, anon_sym_QMARK_QMARK, - STATE(159), 1, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(551), 4, + ACTIONS(624), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(545), 17, + ACTIONS(618), 17, anon_sym_RBRACE, anon_sym_SEMI, anon_sym_COMMA, @@ -16140,41 +17503,41 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_LBRACK, anon_sym_RBRACK, - [12875] = 14, + [13756] = 14, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(635), 1, + ACTIONS(664), 1, anon_sym_STAR_STAR, - ACTIONS(637), 1, - anon_sym_QMARK_QMARK, - ACTIONS(641), 1, + ACTIONS(668), 1, anon_sym_AMP_AMP, - STATE(159), 1, + ACTIONS(674), 1, + anon_sym_QMARK_QMARK, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(629), 2, + ACTIONS(656), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(658), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(631), 2, + ACTIONS(660), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(633), 2, + ACTIONS(662), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, + ACTIONS(670), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(645), 2, + ACTIONS(672), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - ACTIONS(545), 7, + ACTIONS(618), 7, anon_sym_RBRACE, anon_sym_SEMI, anon_sym_COMMA, @@ -16182,39 +17545,39 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE_PIPE, anon_sym_LBRACK, anon_sym_RBRACK, - [12931] = 13, + [13812] = 13, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(635), 1, + ACTIONS(664), 1, anon_sym_STAR_STAR, - ACTIONS(637), 1, + ACTIONS(674), 1, anon_sym_QMARK_QMARK, - STATE(159), 1, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(629), 2, + ACTIONS(656), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(658), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(631), 2, + ACTIONS(660), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(633), 2, + ACTIONS(662), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, + ACTIONS(670), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(645), 2, + ACTIONS(672), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - ACTIONS(545), 8, + ACTIONS(618), 8, anon_sym_RBRACE, anon_sym_SEMI, anon_sym_COMMA, @@ -16223,36 +17586,36 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_AMP, anon_sym_LBRACK, anon_sym_RBRACK, - [12985] = 12, + [13866] = 12, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(635), 1, + ACTIONS(664), 1, anon_sym_STAR_STAR, - ACTIONS(637), 1, + ACTIONS(674), 1, anon_sym_QMARK_QMARK, - STATE(159), 1, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(629), 2, + ACTIONS(656), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(658), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(631), 2, + ACTIONS(660), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(633), 2, + ACTIONS(662), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(645), 2, + ACTIONS(672), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - ACTIONS(545), 10, + ACTIONS(618), 10, anon_sym_RBRACE, anon_sym_SEMI, anon_sym_COMMA, @@ -16263,15 +17626,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LBRACK, anon_sym_RBRACK, - [13037] = 3, + [13918] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(649), 4, + ACTIONS(710), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(647), 22, + ACTIONS(708), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -16294,15 +17657,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [13071] = 3, + [13952] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(653), 4, + ACTIONS(714), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(651), 22, + ACTIONS(712), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -16325,15 +17688,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [13105] = 3, + [13986] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(464), 4, + ACTIONS(718), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(456), 22, + ACTIONS(716), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -16356,15 +17719,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [13139] = 3, + [14020] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(657), 4, + ACTIONS(722), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(655), 22, + ACTIONS(720), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -16387,15 +17750,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [13173] = 3, + [14054] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(661), 4, + ACTIONS(726), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(659), 22, + ACTIONS(724), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -16418,15 +17781,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [13207] = 3, + [14088] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(599), 4, + ACTIONS(730), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(597), 22, + ACTIONS(728), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -16449,15 +17812,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [13241] = 3, + [14122] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(665), 4, + ACTIONS(734), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(663), 22, + ACTIONS(732), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -16480,15 +17843,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [13275] = 3, + [14156] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(669), 4, + ACTIONS(738), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(667), 22, + ACTIONS(736), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -16511,15 +17874,51 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [13309] = 3, + [14190] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(622), 1, + anon_sym_LPAREN, + ACTIONS(664), 1, + anon_sym_STAR_STAR, + ACTIONS(674), 1, + anon_sym_QMARK_QMARK, + STATE(176), 1, + sym_argument_list, + ACTIONS(620), 2, + anon_sym_DOT, + anon_sym_QMARK_DOT, + ACTIONS(742), 4, + anon_sym_LT, + anon_sym_GT, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(740), 16, + anon_sym_RBRACE, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_BSLASH, + anon_sym_PERCENT, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_LBRACK, + anon_sym_RBRACK, + [14234] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(673), 4, + ACTIONS(746), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(671), 22, + ACTIONS(744), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -16542,15 +17941,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [13343] = 3, + [14268] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(677), 4, + ACTIONS(750), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(675), 22, + ACTIONS(748), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -16573,15 +17972,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [13377] = 3, + [14302] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(677), 4, + ACTIONS(754), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(675), 22, + ACTIONS(752), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -16604,15 +18003,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [13411] = 3, + [14336] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(681), 4, + ACTIONS(758), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(679), 22, + ACTIONS(756), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -16635,15 +18034,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [13445] = 3, + [14370] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(685), 4, + ACTIONS(762), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(683), 22, + ACTIONS(760), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -16666,15 +18065,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [13479] = 3, + [14404] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(689), 4, + ACTIONS(766), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(687), 22, + ACTIONS(764), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -16697,15 +18096,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [13513] = 3, + [14438] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(693), 4, + ACTIONS(770), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(691), 22, + ACTIONS(768), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -16728,15 +18127,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [13547] = 3, + [14472] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(235), 4, + ACTIONS(774), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(233), 22, + ACTIONS(772), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -16759,15 +18158,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [13581] = 3, + [14506] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(697), 4, + ACTIONS(778), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(695), 22, + ACTIONS(776), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -16790,15 +18189,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [13615] = 3, + [14540] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(701), 4, + ACTIONS(782), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(699), 22, + ACTIONS(780), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -16821,15 +18220,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [13649] = 3, + [14574] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(705), 4, + ACTIONS(560), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(703), 22, + ACTIONS(552), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -16852,15 +18251,59 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [13683] = 3, + [14608] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(622), 1, + anon_sym_LPAREN, + ACTIONS(664), 1, + anon_sym_STAR_STAR, + ACTIONS(666), 1, + anon_sym_PIPE_PIPE, + ACTIONS(668), 1, + anon_sym_AMP_AMP, + ACTIONS(674), 1, + anon_sym_QMARK_QMARK, + ACTIONS(676), 1, + anon_sym_LBRACK, + STATE(176), 1, + sym_argument_list, + ACTIONS(620), 2, + anon_sym_DOT, + anon_sym_QMARK_DOT, + ACTIONS(656), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(658), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(660), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(662), 2, + anon_sym_BSLASH, + anon_sym_PERCENT, + ACTIONS(670), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(672), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(784), 5, + anon_sym_RBRACE, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + [14668] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(709), 4, + ACTIONS(788), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(707), 22, + ACTIONS(786), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -16883,15 +18326,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [13717] = 3, + [14702] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(713), 4, + ACTIONS(236), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(711), 22, + ACTIONS(234), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -16914,15 +18357,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [13751] = 3, + [14736] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(717), 4, + ACTIONS(746), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(715), 22, + ACTIONS(744), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -16945,15 +18388,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [13785] = 3, + [14770] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(721), 4, + ACTIONS(792), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(719), 22, + ACTIONS(790), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -16976,139 +18419,201 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [13819] = 8, + [14804] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, - anon_sym_LPAREN, - ACTIONS(635), 1, - anon_sym_STAR_STAR, - ACTIONS(637), 1, - anon_sym_QMARK_QMARK, - STATE(159), 1, - sym_argument_list, - ACTIONS(547), 2, - anon_sym_DOT, - anon_sym_QMARK_DOT, - ACTIONS(725), 4, + ACTIONS(796), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(723), 16, + ACTIONS(794), 22, + anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_DOT, + anon_sym_QMARK_DOT, anon_sym_SEMI, anon_sym_COMMA, + anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_DASH, anon_sym_PLUS, anon_sym_BSLASH, anon_sym_PERCENT, + anon_sym_STAR_STAR, anon_sym_PIPE_PIPE, anon_sym_AMP_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_EQ, + anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [13863] = 16, + [14838] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(800), 4, + anon_sym_LT, + anon_sym_GT, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(798), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT, + anon_sym_QMARK_DOT, + anon_sym_SEMI, + anon_sym_COMMA, anon_sym_LPAREN, - ACTIONS(635), 1, + anon_sym_RPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_BSLASH, + anon_sym_PERCENT, anon_sym_STAR_STAR, - ACTIONS(637), 1, - anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, anon_sym_PIPE_PIPE, - ACTIONS(731), 1, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_QMARK_QMARK, anon_sym_LBRACK, - STATE(159), 1, - sym_argument_list, - ACTIONS(547), 2, + anon_sym_RBRACK, + [14872] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(804), 4, + anon_sym_LT, + anon_sym_GT, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(802), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(629), 2, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(631), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(633), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, + anon_sym_STAR_STAR, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(645), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - ACTIONS(727), 5, + anon_sym_QMARK_QMARK, + anon_sym_LBRACK, + anon_sym_RBRACK, + [14906] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(808), 4, + anon_sym_LT, + anon_sym_GT, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(806), 22, + anon_sym_LBRACE, anon_sym_RBRACE, + anon_sym_DOT, + anon_sym_QMARK_DOT, anon_sym_SEMI, anon_sym_COMMA, + anon_sym_LPAREN, anon_sym_RPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_BSLASH, + anon_sym_PERCENT, + anon_sym_STAR_STAR, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_QMARK_QMARK, + anon_sym_LBRACK, anon_sym_RBRACK, - [13923] = 16, + [14940] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(812), 4, + anon_sym_LT, + anon_sym_GT, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(810), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_DOT, + anon_sym_QMARK_DOT, + anon_sym_SEMI, + anon_sym_COMMA, anon_sym_LPAREN, - ACTIONS(635), 1, + anon_sym_RPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_BSLASH, + anon_sym_PERCENT, anon_sym_STAR_STAR, - ACTIONS(637), 1, - anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, anon_sym_PIPE_PIPE, - ACTIONS(731), 1, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_QMARK_QMARK, anon_sym_LBRACK, - STATE(159), 1, - sym_argument_list, - ACTIONS(547), 2, + anon_sym_RBRACK, + [14974] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(816), 4, + anon_sym_LT, + anon_sym_GT, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(814), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(629), 2, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(631), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(633), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, + anon_sym_STAR_STAR, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(645), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - ACTIONS(733), 5, - anon_sym_RBRACE, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_RPAREN, + anon_sym_QMARK_QMARK, + anon_sym_LBRACK, anon_sym_RBRACK, - [13983] = 3, + [15008] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(737), 4, + ACTIONS(820), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(735), 22, + ACTIONS(818), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -17131,15 +18636,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [14017] = 3, + [15042] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(741), 4, + ACTIONS(824), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(739), 22, + ACTIONS(822), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -17162,15 +18667,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [14051] = 3, + [15076] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(745), 4, + ACTIONS(828), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(743), 22, + ACTIONS(826), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -17193,59 +18698,46 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [14085] = 16, + [15110] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, - anon_sym_LPAREN, - ACTIONS(635), 1, - anon_sym_STAR_STAR, - ACTIONS(637), 1, - anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, - anon_sym_PIPE_PIPE, - ACTIONS(731), 1, - anon_sym_LBRACK, - STATE(159), 1, - sym_argument_list, - ACTIONS(547), 2, + ACTIONS(832), 4, + anon_sym_LT, + anon_sym_GT, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(830), 22, + anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(629), 2, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(631), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(633), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, + anon_sym_STAR_STAR, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(645), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - ACTIONS(747), 5, - anon_sym_RBRACE, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_RPAREN, + anon_sym_QMARK_QMARK, + anon_sym_LBRACK, anon_sym_RBRACK, - [14145] = 3, + [15144] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(751), 4, + ACTIONS(726), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(749), 22, + ACTIONS(724), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -17268,15 +18760,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [14179] = 3, + [15178] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(755), 4, + ACTIONS(836), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(753), 22, + ACTIONS(834), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -17299,15 +18791,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [14213] = 3, + [15212] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(759), 4, + ACTIONS(840), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(757), 22, + ACTIONS(838), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -17330,15 +18822,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [14247] = 3, + [15246] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(763), 4, + ACTIONS(844), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(761), 22, + ACTIONS(842), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -17361,15 +18853,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [14281] = 3, + [15280] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(767), 4, + ACTIONS(848), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(765), 22, + ACTIONS(846), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -17392,15 +18884,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [14315] = 3, + [15314] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(771), 4, + ACTIONS(852), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(769), 22, + ACTIONS(850), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -17423,15 +18915,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [14349] = 3, + [15348] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(775), 4, + ACTIONS(856), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(773), 22, + ACTIONS(854), 22, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_DOT, @@ -17454,23 +18946,62 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK_QMARK, anon_sym_LBRACK, anon_sym_RBRACK, - [14383] = 3, + [15382] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(779), 4, + ACTIONS(533), 1, + anon_sym_LBRACE, + ACTIONS(537), 1, + anon_sym_DOT, + ACTIONS(858), 1, + anon_sym_COLON, + STATE(312), 1, + aux_sym_custom_type_repeat1, + STATE(655), 1, + sym__type_annotation, + ACTIONS(540), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(777), 22, + ACTIONS(535), 16, + anon_sym_QMARK_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_BSLASH, + anon_sym_PERCENT, + anon_sym_STAR_STAR, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_QMARK_QMARK, + anon_sym_LBRACK, + [15425] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(533), 1, anon_sym_LBRACE, - anon_sym_RBRACE, + ACTIONS(537), 1, anon_sym_DOT, + ACTIONS(860), 1, + anon_sym_COLON, + STATE(312), 1, + aux_sym_custom_type_repeat1, + ACTIONS(540), 4, + anon_sym_LT, + anon_sym_GT, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(535), 17, + anon_sym_RBRACE, anon_sym_QMARK_DOT, - anon_sym_SEMI, anon_sym_COMMA, anon_sym_LPAREN, - anon_sym_RPAREN, anon_sym_DASH, anon_sym_PLUS, anon_sym_BSLASH, @@ -17484,24 +19015,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_QMARK_QMARK, anon_sym_LBRACK, - anon_sym_RBRACK, - [14417] = 7, + [15466] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(466), 1, + ACTIONS(533), 1, anon_sym_LBRACE, - ACTIONS(470), 1, + ACTIONS(537), 1, anon_sym_DOT, - ACTIONS(781), 1, + ACTIONS(862), 1, anon_sym_COLON, - STATE(290), 1, + STATE(312), 1, aux_sym_custom_type_repeat1, - ACTIONS(473), 4, + ACTIONS(540), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(468), 17, + ACTIONS(535), 17, anon_sym_QMARK_DOT, anon_sym_COMMA, anon_sym_LPAREN, @@ -17519,23 +19049,23 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_QMARK_QMARK, anon_sym_LBRACK, - [14458] = 7, + [15507] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(491), 1, + ACTIONS(568), 1, anon_sym_as, - ACTIONS(783), 1, + ACTIONS(864), 1, anon_sym_in, - STATE(198), 1, + STATE(202), 1, sym_new_object_scope, - STATE(236), 1, + STATE(260), 1, sym_new_object_id, - ACTIONS(495), 4, + ACTIONS(572), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(489), 17, + ACTIONS(566), 17, anon_sym_LBRACE, anon_sym_DOT, anon_sym_QMARK_DOT, @@ -17553,62 +19083,324 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_QMARK_QMARK, anon_sym_LBRACK, - [14499] = 7, + [15548] = 18, ACTIONS(3), 1, sym_comment, - ACTIONS(466), 1, - anon_sym_LBRACE, - ACTIONS(470), 1, + ACTIONS(622), 1, + anon_sym_LPAREN, + ACTIONS(664), 1, + anon_sym_STAR_STAR, + ACTIONS(666), 1, + anon_sym_PIPE_PIPE, + ACTIONS(668), 1, + anon_sym_AMP_AMP, + ACTIONS(674), 1, + anon_sym_QMARK_QMARK, + ACTIONS(676), 1, + anon_sym_LBRACK, + ACTIONS(866), 1, + anon_sym_RBRACE, + ACTIONS(868), 1, + anon_sym_COMMA, + STATE(176), 1, + sym_argument_list, + STATE(526), 1, + aux_sym_array_literal_repeat1, + ACTIONS(620), 2, anon_sym_DOT, - ACTIONS(785), 1, - anon_sym_COLON, - STATE(290), 1, - aux_sym_custom_type_repeat1, - ACTIONS(473), 4, + anon_sym_QMARK_DOT, + ACTIONS(656), 2, anon_sym_LT, anon_sym_GT, + ACTIONS(658), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(660), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(468), 17, - anon_sym_RBRACE, + ACTIONS(662), 2, + anon_sym_BSLASH, + anon_sym_PERCENT, + ACTIONS(670), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(672), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [15610] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(622), 1, + anon_sym_LPAREN, + ACTIONS(664), 1, + anon_sym_STAR_STAR, + ACTIONS(666), 1, + anon_sym_PIPE_PIPE, + ACTIONS(668), 1, + anon_sym_AMP_AMP, + ACTIONS(674), 1, + anon_sym_QMARK_QMARK, + ACTIONS(676), 1, + anon_sym_LBRACK, + STATE(176), 1, + sym_argument_list, + ACTIONS(620), 2, + anon_sym_DOT, anon_sym_QMARK_DOT, + ACTIONS(656), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(658), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(660), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(662), 2, + anon_sym_BSLASH, + anon_sym_PERCENT, + ACTIONS(670), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(672), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + ACTIONS(870), 3, + anon_sym_RBRACE, anon_sym_COMMA, + anon_sym_RBRACK, + [15668] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(622), 1, anon_sym_LPAREN, + ACTIONS(664), 1, + anon_sym_STAR_STAR, + ACTIONS(666), 1, + anon_sym_PIPE_PIPE, + ACTIONS(668), 1, + anon_sym_AMP_AMP, + ACTIONS(674), 1, + anon_sym_QMARK_QMARK, + ACTIONS(676), 1, + anon_sym_LBRACK, + ACTIONS(872), 1, + anon_sym_COMMA, + ACTIONS(874), 1, + anon_sym_RBRACK, + STATE(176), 1, + sym_argument_list, + STATE(544), 1, + aux_sym_array_literal_repeat1, + ACTIONS(620), 2, + anon_sym_DOT, + anon_sym_QMARK_DOT, + ACTIONS(656), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(658), 2, anon_sym_DASH, anon_sym_PLUS, + ACTIONS(660), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(662), 2, anon_sym_BSLASH, anon_sym_PERCENT, + ACTIONS(670), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(672), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [15730] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(622), 1, + anon_sym_LPAREN, + ACTIONS(664), 1, anon_sym_STAR_STAR, + ACTIONS(666), 1, anon_sym_PIPE_PIPE, + ACTIONS(668), 1, anon_sym_AMP_AMP, + ACTIONS(674), 1, + anon_sym_QMARK_QMARK, + ACTIONS(676), 1, + anon_sym_LBRACK, + ACTIONS(876), 1, + anon_sym_COMMA, + ACTIONS(878), 1, + anon_sym_RBRACK, + STATE(176), 1, + sym_argument_list, + STATE(502), 1, + aux_sym_array_literal_repeat1, + ACTIONS(620), 2, + anon_sym_DOT, + anon_sym_QMARK_DOT, + ACTIONS(656), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(658), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(660), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(662), 2, + anon_sym_BSLASH, + anon_sym_PERCENT, + ACTIONS(670), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + ACTIONS(672), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, + [15792] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(622), 1, + anon_sym_LPAREN, + ACTIONS(664), 1, + anon_sym_STAR_STAR, + ACTIONS(666), 1, + anon_sym_PIPE_PIPE, + ACTIONS(668), 1, + anon_sym_AMP_AMP, + ACTIONS(674), 1, anon_sym_QMARK_QMARK, + ACTIONS(676), 1, + anon_sym_LBRACK, + ACTIONS(880), 1, + anon_sym_RBRACE, + ACTIONS(882), 1, + anon_sym_COMMA, + STATE(176), 1, + sym_argument_list, + STATE(506), 1, + aux_sym_array_literal_repeat1, + ACTIONS(620), 2, + anon_sym_DOT, + anon_sym_QMARK_DOT, + ACTIONS(656), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(658), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(660), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(662), 2, + anon_sym_BSLASH, + anon_sym_PERCENT, + ACTIONS(670), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(672), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [15854] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(622), 1, + anon_sym_LPAREN, + ACTIONS(676), 1, anon_sym_LBRACK, - [14540] = 8, + ACTIONS(884), 1, + anon_sym_LBRACE, + ACTIONS(894), 1, + anon_sym_STAR_STAR, + ACTIONS(896), 1, + anon_sym_PIPE_PIPE, + ACTIONS(898), 1, + anon_sym_AMP_AMP, + ACTIONS(904), 1, + anon_sym_QMARK_QMARK, + STATE(85), 1, + sym_block, + STATE(176), 1, + sym_argument_list, + ACTIONS(620), 2, + anon_sym_DOT, + anon_sym_QMARK_DOT, + ACTIONS(886), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(888), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(890), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(892), 2, + anon_sym_BSLASH, + anon_sym_PERCENT, + ACTIONS(900), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(902), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [15913] = 17, ACTIONS(3), 1, sym_comment, - ACTIONS(466), 1, + ACTIONS(622), 1, + anon_sym_LPAREN, + ACTIONS(676), 1, + anon_sym_LBRACK, + ACTIONS(884), 1, anon_sym_LBRACE, - ACTIONS(470), 1, + ACTIONS(894), 1, + anon_sym_STAR_STAR, + ACTIONS(896), 1, + anon_sym_PIPE_PIPE, + ACTIONS(898), 1, + anon_sym_AMP_AMP, + ACTIONS(904), 1, + anon_sym_QMARK_QMARK, + STATE(140), 1, + sym_block, + STATE(176), 1, + sym_argument_list, + ACTIONS(620), 2, anon_sym_DOT, - ACTIONS(787), 1, + anon_sym_QMARK_DOT, + ACTIONS(886), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(888), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(890), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(892), 2, + anon_sym_BSLASH, + anon_sym_PERCENT, + ACTIONS(900), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(902), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [15972] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(860), 1, anon_sym_COLON, - STATE(290), 1, - aux_sym_custom_type_repeat1, - STATE(562), 1, - sym__type_annotation, - ACTIONS(473), 4, + ACTIONS(560), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(468), 16, + ACTIONS(552), 18, + anon_sym_RBRACE, + anon_sym_DOT, anon_sym_QMARK_DOT, + anon_sym_COMMA, anon_sym_LPAREN, - anon_sym_RPAREN, anon_sym_DASH, anon_sym_PLUS, anon_sym_BSLASH, @@ -17622,545 +19414,608 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_QMARK_QMARK, anon_sym_LBRACK, - [14583] = 18, + [16005] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(635), 1, + ACTIONS(664), 1, anon_sym_STAR_STAR, - ACTIONS(637), 1, - anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, + ACTIONS(666), 1, anon_sym_PIPE_PIPE, - ACTIONS(731), 1, + ACTIONS(668), 1, + anon_sym_AMP_AMP, + ACTIONS(674), 1, + anon_sym_QMARK_QMARK, + ACTIONS(676), 1, anon_sym_LBRACK, - ACTIONS(789), 1, - anon_sym_COMMA, - ACTIONS(791), 1, - anon_sym_RBRACK, - STATE(159), 1, + STATE(176), 1, sym_argument_list, - STATE(442), 1, - aux_sym_array_literal_repeat1, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(629), 2, + ACTIONS(656), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(658), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(631), 2, + ACTIONS(660), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(633), 2, + ACTIONS(662), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, + ACTIONS(670), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(645), 2, + ACTIONS(672), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - [14645] = 18, + ACTIONS(906), 2, + anon_sym_RBRACE, + anon_sym_COMMA, + [16062] = 17, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(635), 1, + ACTIONS(676), 1, + anon_sym_LBRACK, + ACTIONS(884), 1, + anon_sym_LBRACE, + ACTIONS(894), 1, anon_sym_STAR_STAR, - ACTIONS(637), 1, - anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, + ACTIONS(896), 1, anon_sym_PIPE_PIPE, - ACTIONS(731), 1, - anon_sym_LBRACK, - ACTIONS(793), 1, - anon_sym_RBRACE, - ACTIONS(795), 1, - anon_sym_COMMA, - STATE(159), 1, + ACTIONS(898), 1, + anon_sym_AMP_AMP, + ACTIONS(904), 1, + anon_sym_QMARK_QMARK, + STATE(88), 1, + sym_block, + STATE(176), 1, sym_argument_list, - STATE(474), 1, - aux_sym_array_literal_repeat1, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(629), 2, + ACTIONS(886), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(888), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(631), 2, + ACTIONS(890), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(633), 2, + ACTIONS(892), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, + ACTIONS(900), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(645), 2, + ACTIONS(902), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - [14707] = 18, + [16121] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(635), 1, + ACTIONS(664), 1, anon_sym_STAR_STAR, - ACTIONS(637), 1, - anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, + ACTIONS(666), 1, anon_sym_PIPE_PIPE, - ACTIONS(731), 1, + ACTIONS(668), 1, + anon_sym_AMP_AMP, + ACTIONS(674), 1, + anon_sym_QMARK_QMARK, + ACTIONS(676), 1, anon_sym_LBRACK, - ACTIONS(797), 1, - anon_sym_COMMA, - ACTIONS(799), 1, - anon_sym_RBRACK, - STATE(159), 1, + STATE(176), 1, sym_argument_list, - STATE(470), 1, - aux_sym_array_literal_repeat1, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(629), 2, + ACTIONS(656), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(658), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(631), 2, + ACTIONS(660), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(633), 2, + ACTIONS(662), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, + ACTIONS(670), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(645), 2, + ACTIONS(672), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - [14769] = 18, + ACTIONS(908), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + [16178] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(912), 3, + anon_sym_EQ, + anon_sym_0, + aux_sym__integer_token1, + ACTIONS(910), 20, + anon_sym_LBRACE, + anon_sym_SEMI, + anon_sym_COMMA, + aux_sym__decimal_token1, + aux_sym__decimal_token2, + anon_sym_true, + anon_sym_false, + anon_sym_DQUOTE, + anon_sym_RPAREN, + anon_sym_QMARK, + anon_sym_Array, + anon_sym_Set, + anon_sym_Map, + anon_sym_Promise, + anon_sym_MutSet, + anon_sym_MutMap, + anon_sym_MutArray, + anon_sym_GT, + anon_sym_EQ_GT, + anon_sym_LBRACK, + [16209] = 17, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(635), 1, + ACTIONS(676), 1, + anon_sym_LBRACK, + ACTIONS(884), 1, + anon_sym_LBRACE, + ACTIONS(894), 1, anon_sym_STAR_STAR, - ACTIONS(637), 1, - anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, + ACTIONS(896), 1, anon_sym_PIPE_PIPE, - ACTIONS(731), 1, - anon_sym_LBRACK, - ACTIONS(801), 1, - anon_sym_RBRACE, - ACTIONS(803), 1, - anon_sym_COMMA, - STATE(159), 1, + ACTIONS(898), 1, + anon_sym_AMP_AMP, + ACTIONS(904), 1, + anon_sym_QMARK_QMARK, + STATE(143), 1, + sym_block, + STATE(176), 1, sym_argument_list, - STATE(435), 1, - aux_sym_array_literal_repeat1, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(629), 2, + ACTIONS(886), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(888), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(631), 2, + ACTIONS(890), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(633), 2, + ACTIONS(892), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, + ACTIONS(900), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(645), 2, + ACTIONS(902), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - [14831] = 16, + [16268] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(635), 1, + ACTIONS(664), 1, anon_sym_STAR_STAR, - ACTIONS(637), 1, - anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, + ACTIONS(666), 1, anon_sym_PIPE_PIPE, - ACTIONS(731), 1, + ACTIONS(668), 1, + anon_sym_AMP_AMP, + ACTIONS(674), 1, + anon_sym_QMARK_QMARK, + ACTIONS(676), 1, anon_sym_LBRACK, - STATE(159), 1, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(629), 2, + ACTIONS(656), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(658), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(631), 2, + ACTIONS(660), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(633), 2, + ACTIONS(662), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, + ACTIONS(670), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(645), 2, + ACTIONS(672), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - ACTIONS(805), 3, - anon_sym_RBRACE, + ACTIONS(914), 2, anon_sym_COMMA, - anon_sym_RBRACK, - [14889] = 16, + anon_sym_RPAREN, + [16325] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(635), 1, + ACTIONS(664), 1, anon_sym_STAR_STAR, - ACTIONS(637), 1, - anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, + ACTIONS(666), 1, anon_sym_PIPE_PIPE, - ACTIONS(731), 1, + ACTIONS(668), 1, + anon_sym_AMP_AMP, + ACTIONS(674), 1, + anon_sym_QMARK_QMARK, + ACTIONS(676), 1, anon_sym_LBRACK, - STATE(159), 1, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(629), 2, + ACTIONS(656), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(658), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(631), 2, + ACTIONS(660), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(633), 2, + ACTIONS(662), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, + ACTIONS(670), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(645), 2, + ACTIONS(672), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - ACTIONS(807), 2, + ACTIONS(916), 2, anon_sym_RBRACE, anon_sym_COMMA, - [14946] = 16, + [16382] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(864), 1, + anon_sym_in, + STATE(179), 1, + sym_new_object_scope, + ACTIONS(616), 4, + anon_sym_LT, + anon_sym_GT, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(614), 17, + anon_sym_LBRACE, + anon_sym_DOT, + anon_sym_QMARK_DOT, anon_sym_LPAREN, - ACTIONS(635), 1, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_BSLASH, + anon_sym_PERCENT, anon_sym_STAR_STAR, - ACTIONS(637), 1, - anon_sym_QMARK_QMARK, - ACTIONS(641), 1, + anon_sym_PIPE_PIPE, anon_sym_AMP_AMP, - ACTIONS(729), 1, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + anon_sym_QMARK_QMARK, + anon_sym_LBRACK, + [16417] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(622), 1, + anon_sym_LPAREN, + ACTIONS(664), 1, + anon_sym_STAR_STAR, + ACTIONS(666), 1, anon_sym_PIPE_PIPE, - ACTIONS(731), 1, + ACTIONS(668), 1, + anon_sym_AMP_AMP, + ACTIONS(674), 1, + anon_sym_QMARK_QMARK, + ACTIONS(676), 1, anon_sym_LBRACK, - STATE(159), 1, + ACTIONS(918), 1, + anon_sym_SEMI, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(629), 2, + ACTIONS(656), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(658), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(631), 2, + ACTIONS(660), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(633), 2, + ACTIONS(662), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, + ACTIONS(670), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(645), 2, + ACTIONS(672), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - ACTIONS(809), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - [15003] = 3, + [16473] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(813), 3, - anon_sym_EQ, - anon_sym_0, - aux_sym__integer_token1, - ACTIONS(811), 20, - anon_sym_LBRACE, + ACTIONS(622), 1, + anon_sym_LPAREN, + ACTIONS(664), 1, + anon_sym_STAR_STAR, + ACTIONS(666), 1, + anon_sym_PIPE_PIPE, + ACTIONS(668), 1, + anon_sym_AMP_AMP, + ACTIONS(674), 1, + anon_sym_QMARK_QMARK, + ACTIONS(676), 1, + anon_sym_LBRACK, + ACTIONS(920), 1, anon_sym_SEMI, - anon_sym_COMMA, - aux_sym__decimal_token1, - aux_sym__decimal_token2, - anon_sym_true, - anon_sym_false, - anon_sym_DQUOTE, - anon_sym_RPAREN, - anon_sym_QMARK, - anon_sym_Array, - anon_sym_Set, - anon_sym_Map, - anon_sym_Promise, - anon_sym_MutSet, - anon_sym_MutMap, - anon_sym_MutArray, + STATE(176), 1, + sym_argument_list, + ACTIONS(620), 2, + anon_sym_DOT, + anon_sym_QMARK_DOT, + ACTIONS(656), 2, + anon_sym_LT, anon_sym_GT, - anon_sym_EQ_GT, - anon_sym_LBRACK, - [15034] = 17, + ACTIONS(658), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(660), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(662), 2, + anon_sym_BSLASH, + anon_sym_PERCENT, + ACTIONS(670), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(672), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [16529] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(731), 1, + ACTIONS(676), 1, anon_sym_LBRACK, - ACTIONS(815), 1, + ACTIONS(690), 1, anon_sym_LBRACE, - ACTIONS(825), 1, + ACTIONS(894), 1, anon_sym_STAR_STAR, - ACTIONS(827), 1, + ACTIONS(896), 1, anon_sym_PIPE_PIPE, - ACTIONS(829), 1, + ACTIONS(898), 1, anon_sym_AMP_AMP, - ACTIONS(835), 1, + ACTIONS(904), 1, anon_sym_QMARK_QMARK, - STATE(87), 1, - sym_block, - STATE(159), 1, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(817), 2, + ACTIONS(886), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(819), 2, + ACTIONS(888), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(821), 2, + ACTIONS(890), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(823), 2, + ACTIONS(892), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(831), 2, + ACTIONS(900), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(833), 2, + ACTIONS(902), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - [15093] = 5, + [16585] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(783), 1, - anon_sym_in, - STATE(213), 1, - sym_new_object_scope, - ACTIONS(539), 4, - anon_sym_LT, - anon_sym_GT, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(537), 17, - anon_sym_LBRACE, + ACTIONS(622), 1, + anon_sym_LPAREN, + ACTIONS(664), 1, + anon_sym_STAR_STAR, + ACTIONS(666), 1, + anon_sym_PIPE_PIPE, + ACTIONS(668), 1, + anon_sym_AMP_AMP, + ACTIONS(674), 1, + anon_sym_QMARK_QMARK, + ACTIONS(676), 1, + anon_sym_LBRACK, + ACTIONS(922), 1, + anon_sym_SEMI, + STATE(176), 1, + sym_argument_list, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - anon_sym_LPAREN, + ACTIONS(656), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(658), 2, anon_sym_DASH, anon_sym_PLUS, + ACTIONS(660), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(662), 2, anon_sym_BSLASH, anon_sym_PERCENT, - anon_sym_STAR_STAR, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, + ACTIONS(670), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + ACTIONS(672), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - anon_sym_QMARK_QMARK, - anon_sym_LBRACK, - [15128] = 16, + [16641] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(635), 1, + ACTIONS(676), 1, + anon_sym_LBRACK, + ACTIONS(784), 1, + anon_sym_LBRACE, + ACTIONS(894), 1, anon_sym_STAR_STAR, - ACTIONS(637), 1, - anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, + ACTIONS(896), 1, anon_sym_PIPE_PIPE, - ACTIONS(731), 1, - anon_sym_LBRACK, - STATE(159), 1, + ACTIONS(898), 1, + anon_sym_AMP_AMP, + ACTIONS(904), 1, + anon_sym_QMARK_QMARK, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(629), 2, + ACTIONS(886), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(888), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(631), 2, + ACTIONS(890), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(633), 2, + ACTIONS(892), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, + ACTIONS(900), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(645), 2, + ACTIONS(902), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - ACTIONS(837), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - [15185] = 16, + [16697] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(635), 1, + ACTIONS(664), 1, anon_sym_STAR_STAR, - ACTIONS(637), 1, - anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, + ACTIONS(666), 1, anon_sym_PIPE_PIPE, - ACTIONS(731), 1, + ACTIONS(668), 1, + anon_sym_AMP_AMP, + ACTIONS(674), 1, + anon_sym_QMARK_QMARK, + ACTIONS(676), 1, anon_sym_LBRACK, - STATE(159), 1, + ACTIONS(924), 1, + anon_sym_SEMI, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(629), 2, + ACTIONS(656), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(658), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(631), 2, + ACTIONS(660), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(633), 2, + ACTIONS(662), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, + ACTIONS(670), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(645), 2, + ACTIONS(672), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - ACTIONS(839), 2, - anon_sym_RBRACE, - anon_sym_COMMA, - [15242] = 17, + [16753] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(731), 1, - anon_sym_LBRACK, - ACTIONS(815), 1, - anon_sym_LBRACE, - ACTIONS(825), 1, + ACTIONS(664), 1, anon_sym_STAR_STAR, - ACTIONS(827), 1, + ACTIONS(666), 1, anon_sym_PIPE_PIPE, - ACTIONS(829), 1, + ACTIONS(668), 1, anon_sym_AMP_AMP, - ACTIONS(835), 1, + ACTIONS(674), 1, anon_sym_QMARK_QMARK, - STATE(105), 1, - sym_block, - STATE(159), 1, + ACTIONS(676), 1, + anon_sym_LBRACK, + ACTIONS(926), 1, + anon_sym_SEMI, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(817), 2, + ACTIONS(656), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(819), 2, + ACTIONS(658), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(821), 2, + ACTIONS(660), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(823), 2, + ACTIONS(662), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(831), 2, + ACTIONS(670), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(833), 2, + ACTIONS(672), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - [15301] = 4, + [16809] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(785), 1, - anon_sym_COLON, - ACTIONS(464), 4, + ACTIONS(537), 1, + anon_sym_DOT, + ACTIONS(928), 1, + anon_sym_LBRACE, + STATE(312), 1, + aux_sym_custom_type_repeat1, + ACTIONS(540), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(456), 18, - anon_sym_RBRACE, - anon_sym_DOT, + ACTIONS(535), 15, anon_sym_QMARK_DOT, - anon_sym_COMMA, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -18175,891 +20030,879 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_QMARK_QMARK, anon_sym_LBRACK, - [15334] = 17, + [16845] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(731), 1, - anon_sym_LBRACK, - ACTIONS(815), 1, - anon_sym_LBRACE, - ACTIONS(825), 1, + ACTIONS(664), 1, anon_sym_STAR_STAR, - ACTIONS(827), 1, + ACTIONS(666), 1, anon_sym_PIPE_PIPE, - ACTIONS(829), 1, + ACTIONS(668), 1, anon_sym_AMP_AMP, - ACTIONS(835), 1, + ACTIONS(674), 1, anon_sym_QMARK_QMARK, - STATE(86), 1, - sym_block, - STATE(159), 1, + ACTIONS(676), 1, + anon_sym_LBRACK, + ACTIONS(931), 1, + anon_sym_SEMI, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(817), 2, + ACTIONS(656), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(819), 2, + ACTIONS(658), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(821), 2, + ACTIONS(660), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(823), 2, + ACTIONS(662), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(831), 2, + ACTIONS(670), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(833), 2, + ACTIONS(672), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - [15393] = 17, + [16901] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(731), 1, - anon_sym_LBRACK, - ACTIONS(815), 1, - anon_sym_LBRACE, - ACTIONS(825), 1, + ACTIONS(664), 1, anon_sym_STAR_STAR, - ACTIONS(827), 1, + ACTIONS(666), 1, anon_sym_PIPE_PIPE, - ACTIONS(829), 1, + ACTIONS(668), 1, anon_sym_AMP_AMP, - ACTIONS(835), 1, + ACTIONS(674), 1, anon_sym_QMARK_QMARK, - STATE(102), 1, - sym_block, - STATE(159), 1, + ACTIONS(676), 1, + anon_sym_LBRACK, + ACTIONS(933), 1, + anon_sym_SEMI, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(817), 2, + ACTIONS(656), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(819), 2, + ACTIONS(658), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(821), 2, + ACTIONS(660), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(823), 2, + ACTIONS(662), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(831), 2, + ACTIONS(670), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(833), 2, + ACTIONS(672), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - [15452] = 16, + [16957] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(635), 1, + ACTIONS(894), 1, anon_sym_STAR_STAR, - ACTIONS(637), 1, + ACTIONS(904), 1, anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, - anon_sym_PIPE_PIPE, - ACTIONS(731), 1, - anon_sym_LBRACK, - ACTIONS(841), 1, - anon_sym_RPAREN, - STATE(159), 1, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(629), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(631), 2, + ACTIONS(742), 4, + anon_sym_LT, + anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(633), 2, + ACTIONS(740), 12, + anon_sym_LBRACE, + anon_sym_DASH, + anon_sym_PLUS, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(645), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - [15508] = 7, + anon_sym_LBRACK, + [16997] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(835), 1, + ACTIONS(654), 1, + anon_sym_LBRACE, + ACTIONS(676), 1, + anon_sym_LBRACK, + ACTIONS(894), 1, + anon_sym_STAR_STAR, + ACTIONS(896), 1, + anon_sym_PIPE_PIPE, + ACTIONS(898), 1, + anon_sym_AMP_AMP, + ACTIONS(904), 1, anon_sym_QMARK_QMARK, - STATE(159), 1, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(551), 4, + ACTIONS(886), 2, anon_sym_LT, anon_sym_GT, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(545), 13, - anon_sym_LBRACE, + ACTIONS(888), 2, anon_sym_DASH, anon_sym_PLUS, + ACTIONS(890), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(892), 2, anon_sym_BSLASH, anon_sym_PERCENT, - anon_sym_STAR_STAR, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, + ACTIONS(900), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + ACTIONS(902), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - anon_sym_LBRACK, - [15546] = 16, + [17053] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(731), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_LBRACE, - ACTIONS(825), 1, + ACTIONS(664), 1, anon_sym_STAR_STAR, - ACTIONS(827), 1, + ACTIONS(666), 1, anon_sym_PIPE_PIPE, - ACTIONS(829), 1, + ACTIONS(668), 1, anon_sym_AMP_AMP, - ACTIONS(835), 1, + ACTIONS(674), 1, anon_sym_QMARK_QMARK, - STATE(159), 1, + ACTIONS(676), 1, + anon_sym_LBRACK, + ACTIONS(935), 1, + anon_sym_SEMI, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(817), 2, + ACTIONS(656), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(819), 2, + ACTIONS(658), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(821), 2, + ACTIONS(660), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(823), 2, + ACTIONS(662), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(831), 2, + ACTIONS(670), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(833), 2, + ACTIONS(672), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - [15602] = 16, + [17109] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(635), 1, + ACTIONS(664), 1, anon_sym_STAR_STAR, - ACTIONS(637), 1, - anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, + ACTIONS(666), 1, anon_sym_PIPE_PIPE, - ACTIONS(731), 1, + ACTIONS(668), 1, + anon_sym_AMP_AMP, + ACTIONS(674), 1, + anon_sym_QMARK_QMARK, + ACTIONS(676), 1, anon_sym_LBRACK, - ACTIONS(843), 1, + ACTIONS(937), 1, anon_sym_SEMI, - STATE(159), 1, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(629), 2, + ACTIONS(656), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(658), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(631), 2, + ACTIONS(660), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(633), 2, + ACTIONS(662), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, + ACTIONS(670), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(645), 2, + ACTIONS(672), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - [15658] = 16, + [17165] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(635), 1, + ACTIONS(664), 1, anon_sym_STAR_STAR, - ACTIONS(637), 1, - anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, + ACTIONS(666), 1, anon_sym_PIPE_PIPE, - ACTIONS(731), 1, + ACTIONS(668), 1, + anon_sym_AMP_AMP, + ACTIONS(674), 1, + anon_sym_QMARK_QMARK, + ACTIONS(676), 1, anon_sym_LBRACK, - ACTIONS(845), 1, + ACTIONS(939), 1, anon_sym_SEMI, - STATE(159), 1, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(629), 2, + ACTIONS(656), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(658), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(631), 2, + ACTIONS(660), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(633), 2, + ACTIONS(662), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, + ACTIONS(670), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(645), 2, + ACTIONS(672), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - [15714] = 16, + [17221] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(635), 1, + ACTIONS(664), 1, anon_sym_STAR_STAR, - ACTIONS(637), 1, - anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, + ACTIONS(666), 1, anon_sym_PIPE_PIPE, - ACTIONS(731), 1, + ACTIONS(668), 1, + anon_sym_AMP_AMP, + ACTIONS(674), 1, + anon_sym_QMARK_QMARK, + ACTIONS(676), 1, anon_sym_LBRACK, - ACTIONS(847), 1, + ACTIONS(941), 1, anon_sym_SEMI, - STATE(159), 1, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(629), 2, + ACTIONS(656), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(658), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(631), 2, + ACTIONS(660), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(633), 2, + ACTIONS(662), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, + ACTIONS(670), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(645), 2, + ACTIONS(672), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - [15770] = 12, + [17277] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(825), 1, + ACTIONS(664), 1, anon_sym_STAR_STAR, - ACTIONS(835), 1, + ACTIONS(666), 1, + anon_sym_PIPE_PIPE, + ACTIONS(668), 1, + anon_sym_AMP_AMP, + ACTIONS(674), 1, anon_sym_QMARK_QMARK, - STATE(159), 1, + ACTIONS(676), 1, + anon_sym_LBRACK, + ACTIONS(943), 1, + anon_sym_SEMI, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(817), 2, + ACTIONS(656), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(819), 2, + ACTIONS(658), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(821), 2, + ACTIONS(660), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(823), 2, + ACTIONS(662), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(833), 2, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - ACTIONS(545), 6, - anon_sym_LBRACE, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, + ACTIONS(670), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - anon_sym_LBRACK, - [15818] = 16, + ACTIONS(672), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [17333] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(635), 1, + ACTIONS(664), 1, anon_sym_STAR_STAR, - ACTIONS(637), 1, - anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, + ACTIONS(666), 1, anon_sym_PIPE_PIPE, - ACTIONS(731), 1, + ACTIONS(668), 1, + anon_sym_AMP_AMP, + ACTIONS(674), 1, + anon_sym_QMARK_QMARK, + ACTIONS(676), 1, anon_sym_LBRACK, - ACTIONS(849), 1, + ACTIONS(945), 1, anon_sym_SEMI, - STATE(159), 1, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(629), 2, + ACTIONS(656), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(658), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(631), 2, + ACTIONS(660), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(633), 2, + ACTIONS(662), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, + ACTIONS(670), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(645), 2, + ACTIONS(672), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - [15874] = 16, + [17389] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(635), 1, + ACTIONS(664), 1, anon_sym_STAR_STAR, - ACTIONS(637), 1, - anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, + ACTIONS(666), 1, anon_sym_PIPE_PIPE, - ACTIONS(731), 1, + ACTIONS(668), 1, + anon_sym_AMP_AMP, + ACTIONS(674), 1, + anon_sym_QMARK_QMARK, + ACTIONS(676), 1, anon_sym_LBRACK, - ACTIONS(851), 1, - anon_sym_SEMI, - STATE(159), 1, + ACTIONS(947), 1, + anon_sym_RBRACE, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(629), 2, + ACTIONS(656), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(658), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(631), 2, + ACTIONS(660), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(633), 2, + ACTIONS(662), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, + ACTIONS(670), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(645), 2, + ACTIONS(672), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - [15930] = 16, + [17445] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(635), 1, + ACTIONS(664), 1, anon_sym_STAR_STAR, - ACTIONS(637), 1, - anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, + ACTIONS(666), 1, anon_sym_PIPE_PIPE, - ACTIONS(731), 1, + ACTIONS(668), 1, + anon_sym_AMP_AMP, + ACTIONS(674), 1, + anon_sym_QMARK_QMARK, + ACTIONS(676), 1, anon_sym_LBRACK, - ACTIONS(853), 1, + ACTIONS(949), 1, anon_sym_SEMI, - STATE(159), 1, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(629), 2, + ACTIONS(656), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(658), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(631), 2, + ACTIONS(660), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(633), 2, + ACTIONS(662), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, + ACTIONS(670), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(645), 2, + ACTIONS(672), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - [15986] = 16, + [17501] = 12, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(635), 1, + ACTIONS(894), 1, anon_sym_STAR_STAR, - ACTIONS(637), 1, + ACTIONS(904), 1, anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, - anon_sym_PIPE_PIPE, - ACTIONS(731), 1, - anon_sym_LBRACK, - ACTIONS(855), 1, - anon_sym_SEMI, - STATE(159), 1, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(629), 2, + ACTIONS(886), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(888), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(631), 2, + ACTIONS(890), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(633), 2, + ACTIONS(892), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - ACTIONS(645), 2, + ACTIONS(902), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - [16042] = 16, + ACTIONS(618), 6, + anon_sym_LBRACE, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LBRACK, + [17549] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(635), 1, + ACTIONS(664), 1, anon_sym_STAR_STAR, - ACTIONS(637), 1, - anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, + ACTIONS(666), 1, anon_sym_PIPE_PIPE, - ACTIONS(731), 1, + ACTIONS(668), 1, + anon_sym_AMP_AMP, + ACTIONS(674), 1, + anon_sym_QMARK_QMARK, + ACTIONS(676), 1, anon_sym_LBRACK, - ACTIONS(857), 1, + ACTIONS(951), 1, anon_sym_SEMI, - STATE(159), 1, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(629), 2, + ACTIONS(656), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(658), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(631), 2, + ACTIONS(660), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(633), 2, + ACTIONS(662), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, + ACTIONS(670), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(645), 2, + ACTIONS(672), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - [16098] = 11, + [17605] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(825), 1, + ACTIONS(664), 1, anon_sym_STAR_STAR, - ACTIONS(835), 1, + ACTIONS(666), 1, + anon_sym_PIPE_PIPE, + ACTIONS(668), 1, + anon_sym_AMP_AMP, + ACTIONS(674), 1, anon_sym_QMARK_QMARK, - STATE(159), 1, + ACTIONS(676), 1, + anon_sym_LBRACK, + ACTIONS(953), 1, + anon_sym_RBRACK, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(551), 2, + ACTIONS(656), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(819), 2, + ACTIONS(658), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(821), 2, + ACTIONS(660), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(823), 2, + ACTIONS(662), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(545), 8, - anon_sym_LBRACE, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, + ACTIONS(670), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + ACTIONS(672), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - anon_sym_LBRACK, - [16144] = 10, + [17661] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(825), 1, + ACTIONS(664), 1, anon_sym_STAR_STAR, - ACTIONS(835), 1, + ACTIONS(666), 1, + anon_sym_PIPE_PIPE, + ACTIONS(668), 1, + anon_sym_AMP_AMP, + ACTIONS(674), 1, anon_sym_QMARK_QMARK, - STATE(159), 1, + ACTIONS(676), 1, + anon_sym_LBRACK, + ACTIONS(955), 1, + anon_sym_SEMI, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(551), 2, + ACTIONS(656), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(821), 2, + ACTIONS(658), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(660), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(823), 2, + ACTIONS(662), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(545), 10, - anon_sym_LBRACE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, + ACTIONS(670), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, + ACTIONS(672), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - anon_sym_LBRACK, - [16188] = 16, + [17717] = 13, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(635), 1, + ACTIONS(894), 1, anon_sym_STAR_STAR, - ACTIONS(637), 1, + ACTIONS(904), 1, anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, - anon_sym_PIPE_PIPE, - ACTIONS(731), 1, - anon_sym_LBRACK, - ACTIONS(859), 1, - anon_sym_SEMI, - STATE(159), 1, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(629), 2, + ACTIONS(886), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(888), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(631), 2, + ACTIONS(890), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(633), 2, + ACTIONS(892), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, + ACTIONS(900), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(645), 2, + ACTIONS(902), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - [16244] = 16, + ACTIONS(618), 4, + anon_sym_LBRACE, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_LBRACK, + [17767] = 14, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(635), 1, + ACTIONS(894), 1, anon_sym_STAR_STAR, - ACTIONS(637), 1, - anon_sym_QMARK_QMARK, - ACTIONS(641), 1, + ACTIONS(898), 1, anon_sym_AMP_AMP, - ACTIONS(729), 1, - anon_sym_PIPE_PIPE, - ACTIONS(731), 1, - anon_sym_LBRACK, - ACTIONS(861), 1, - anon_sym_SEMI, - STATE(159), 1, + ACTIONS(904), 1, + anon_sym_QMARK_QMARK, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(629), 2, + ACTIONS(886), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(888), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(631), 2, + ACTIONS(890), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(633), 2, + ACTIONS(892), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, + ACTIONS(900), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(645), 2, + ACTIONS(902), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - [16300] = 16, + ACTIONS(618), 3, + anon_sym_LBRACE, + anon_sym_PIPE_PIPE, + anon_sym_LBRACK, + [17819] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(635), 1, - anon_sym_STAR_STAR, - ACTIONS(637), 1, + ACTIONS(904), 1, anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, - anon_sym_PIPE_PIPE, - ACTIONS(731), 1, - anon_sym_LBRACK, - ACTIONS(863), 1, - anon_sym_SEMI, - STATE(159), 1, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(629), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(631), 2, + ACTIONS(624), 4, + anon_sym_LT, + anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(633), 2, + ACTIONS(618), 13, + anon_sym_LBRACE, + anon_sym_DASH, + anon_sym_PLUS, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, + anon_sym_STAR_STAR, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(645), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - [16356] = 16, + anon_sym_LBRACK, + [17857] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(635), 1, + ACTIONS(664), 1, anon_sym_STAR_STAR, - ACTIONS(637), 1, - anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, + ACTIONS(666), 1, anon_sym_PIPE_PIPE, - ACTIONS(731), 1, + ACTIONS(668), 1, + anon_sym_AMP_AMP, + ACTIONS(674), 1, + anon_sym_QMARK_QMARK, + ACTIONS(676), 1, anon_sym_LBRACK, - ACTIONS(865), 1, - anon_sym_SEMI, - STATE(159), 1, + ACTIONS(957), 1, + anon_sym_RPAREN, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(629), 2, + ACTIONS(656), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(658), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(631), 2, + ACTIONS(660), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(633), 2, + ACTIONS(662), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, + ACTIONS(670), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(645), 2, + ACTIONS(672), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - [16412] = 16, + [17913] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(635), 1, + ACTIONS(894), 1, anon_sym_STAR_STAR, - ACTIONS(637), 1, + ACTIONS(904), 1, anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, - anon_sym_PIPE_PIPE, - ACTIONS(731), 1, - anon_sym_LBRACK, - ACTIONS(867), 1, - anon_sym_SEMI, - STATE(159), 1, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(629), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(631), 2, + ACTIONS(624), 4, + anon_sym_LT, + anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(633), 2, + ACTIONS(618), 12, + anon_sym_LBRACE, + anon_sym_DASH, + anon_sym_PLUS, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(645), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - [16468] = 16, + anon_sym_LBRACK, + [17953] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(635), 1, + ACTIONS(664), 1, anon_sym_STAR_STAR, - ACTIONS(637), 1, - anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, + ACTIONS(666), 1, anon_sym_PIPE_PIPE, - ACTIONS(731), 1, + ACTIONS(668), 1, + anon_sym_AMP_AMP, + ACTIONS(674), 1, + anon_sym_QMARK_QMARK, + ACTIONS(676), 1, anon_sym_LBRACK, - ACTIONS(869), 1, + ACTIONS(959), 1, anon_sym_SEMI, - STATE(159), 1, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(629), 2, + ACTIONS(656), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(658), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(631), 2, + ACTIONS(660), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(633), 2, + ACTIONS(662), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, + ACTIONS(670), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(645), 2, + ACTIONS(672), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - [16524] = 8, + [18009] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(825), 1, + ACTIONS(894), 1, anon_sym_STAR_STAR, - ACTIONS(835), 1, + ACTIONS(904), 1, anon_sym_QMARK_QMARK, - STATE(159), 1, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(725), 4, + ACTIONS(624), 2, anon_sym_LT, anon_sym_GT, + ACTIONS(890), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(723), 12, + ACTIONS(892), 2, + anon_sym_BSLASH, + anon_sym_PERCENT, + ACTIONS(618), 10, anon_sym_LBRACE, anon_sym_DASH, anon_sym_PLUS, - anon_sym_BSLASH, - anon_sym_PERCENT, anon_sym_PIPE_PIPE, anon_sym_AMP_AMP, anon_sym_EQ_EQ, @@ -19067,62 +20910,60 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_LBRACK, - [16564] = 16, + [18053] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(635), 1, + ACTIONS(664), 1, anon_sym_STAR_STAR, - ACTIONS(637), 1, - anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, + ACTIONS(666), 1, anon_sym_PIPE_PIPE, - ACTIONS(731), 1, + ACTIONS(668), 1, + anon_sym_AMP_AMP, + ACTIONS(674), 1, + anon_sym_QMARK_QMARK, + ACTIONS(676), 1, anon_sym_LBRACK, - ACTIONS(871), 1, + ACTIONS(961), 1, anon_sym_SEMI, - STATE(159), 1, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(629), 2, + ACTIONS(656), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(658), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(631), 2, + ACTIONS(660), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(633), 2, + ACTIONS(662), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, + ACTIONS(670), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(645), 2, + ACTIONS(672), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - [16620] = 6, + [18109] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(470), 1, - anon_sym_DOT, - ACTIONS(873), 1, - anon_sym_LBRACE, - STATE(290), 1, - aux_sym_custom_type_repeat1, - ACTIONS(473), 4, + ACTIONS(963), 1, + anon_sym_EQ, + ACTIONS(778), 4, anon_sym_LT, anon_sym_GT, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(468), 15, + ACTIONS(776), 17, + anon_sym_DOT, anon_sym_QMARK_DOT, + anon_sym_SEMI, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -19137,31 +20978,34 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_QMARK_QMARK, anon_sym_LBRACK, - [16656] = 8, + [18141] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(825), 1, + ACTIONS(894), 1, anon_sym_STAR_STAR, - ACTIONS(835), 1, + ACTIONS(904), 1, anon_sym_QMARK_QMARK, - STATE(159), 1, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(551), 4, + ACTIONS(624), 2, anon_sym_LT, anon_sym_GT, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(545), 12, - anon_sym_LBRACE, + ACTIONS(888), 2, anon_sym_DASH, anon_sym_PLUS, + ACTIONS(890), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(892), 2, anon_sym_BSLASH, anon_sym_PERCENT, + ACTIONS(618), 8, + anon_sym_LBRACE, anon_sym_PIPE_PIPE, anon_sym_AMP_AMP, anon_sym_EQ_EQ, @@ -19169,869 +21013,949 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_EQ, anon_sym_LBRACK, - [16696] = 16, + [18187] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(635), 1, + ACTIONS(664), 1, anon_sym_STAR_STAR, - ACTIONS(637), 1, - anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, + ACTIONS(666), 1, anon_sym_PIPE_PIPE, - ACTIONS(731), 1, + ACTIONS(668), 1, + anon_sym_AMP_AMP, + ACTIONS(674), 1, + anon_sym_QMARK_QMARK, + ACTIONS(676), 1, anon_sym_LBRACK, - ACTIONS(876), 1, + ACTIONS(965), 1, anon_sym_SEMI, - STATE(159), 1, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(629), 2, + ACTIONS(656), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(658), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(631), 2, + ACTIONS(660), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(633), 2, + ACTIONS(662), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, + ACTIONS(670), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(645), 2, + ACTIONS(672), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - [16752] = 16, + [18243] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(635), 1, + ACTIONS(664), 1, anon_sym_STAR_STAR, - ACTIONS(637), 1, - anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, + ACTIONS(666), 1, anon_sym_PIPE_PIPE, - ACTIONS(731), 1, + ACTIONS(668), 1, + anon_sym_AMP_AMP, + ACTIONS(674), 1, + anon_sym_QMARK_QMARK, + ACTIONS(676), 1, anon_sym_LBRACK, - ACTIONS(878), 1, + ACTIONS(967), 1, anon_sym_SEMI, - STATE(159), 1, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(629), 2, + ACTIONS(656), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(658), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(631), 2, + ACTIONS(660), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(633), 2, + ACTIONS(662), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(639), 2, + ACTIONS(670), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(672), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [18299] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(622), 1, + anon_sym_LPAREN, + ACTIONS(664), 1, + anon_sym_STAR_STAR, + ACTIONS(666), 1, + anon_sym_PIPE_PIPE, + ACTIONS(668), 1, + anon_sym_AMP_AMP, + ACTIONS(674), 1, + anon_sym_QMARK_QMARK, + ACTIONS(676), 1, + anon_sym_LBRACK, + ACTIONS(969), 1, + anon_sym_SEMI, + STATE(176), 1, + sym_argument_list, + ACTIONS(620), 2, + anon_sym_DOT, + anon_sym_QMARK_DOT, + ACTIONS(656), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(643), 2, + ACTIONS(658), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(660), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(662), 2, + anon_sym_BSLASH, + anon_sym_PERCENT, + ACTIONS(670), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(645), 2, + ACTIONS(672), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - [16808] = 16, + [18355] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(727), 1, - anon_sym_LBRACE, - ACTIONS(731), 1, - anon_sym_LBRACK, - ACTIONS(825), 1, + ACTIONS(664), 1, anon_sym_STAR_STAR, - ACTIONS(827), 1, + ACTIONS(666), 1, anon_sym_PIPE_PIPE, - ACTIONS(829), 1, + ACTIONS(668), 1, anon_sym_AMP_AMP, - ACTIONS(835), 1, + ACTIONS(674), 1, anon_sym_QMARK_QMARK, - STATE(159), 1, + ACTIONS(676), 1, + anon_sym_LBRACK, + ACTIONS(971), 1, + anon_sym_SEMI, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(817), 2, + ACTIONS(656), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(819), 2, + ACTIONS(658), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(821), 2, + ACTIONS(660), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(823), 2, + ACTIONS(662), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(831), 2, + ACTIONS(670), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(833), 2, + ACTIONS(672), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - [16864] = 16, + [18411] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(635), 1, + ACTIONS(664), 1, anon_sym_STAR_STAR, - ACTIONS(637), 1, - anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, + ACTIONS(666), 1, anon_sym_PIPE_PIPE, - ACTIONS(731), 1, + ACTIONS(668), 1, + anon_sym_AMP_AMP, + ACTIONS(674), 1, + anon_sym_QMARK_QMARK, + ACTIONS(676), 1, anon_sym_LBRACK, - ACTIONS(880), 1, + ACTIONS(973), 1, anon_sym_SEMI, - STATE(159), 1, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(629), 2, + ACTIONS(656), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(658), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(631), 2, + ACTIONS(660), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(633), 2, + ACTIONS(662), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(639), 2, + ACTIONS(670), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(672), 2, + anon_sym_GT_EQ, + anon_sym_LT_EQ, + [18467] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(975), 1, + anon_sym_in, + ACTIONS(778), 4, anon_sym_LT, anon_sym_GT, - ACTIONS(643), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(776), 16, + anon_sym_DOT, + anon_sym_QMARK_DOT, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_BSLASH, + anon_sym_PERCENT, + anon_sym_STAR_STAR, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(645), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - [16920] = 16, + anon_sym_QMARK_QMARK, + anon_sym_LBRACK, + [18498] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(622), 1, anon_sym_LPAREN, - ACTIONS(635), 1, + ACTIONS(664), 1, anon_sym_STAR_STAR, - ACTIONS(637), 1, - anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, + ACTIONS(666), 1, anon_sym_PIPE_PIPE, - ACTIONS(731), 1, + ACTIONS(668), 1, + anon_sym_AMP_AMP, + ACTIONS(674), 1, + anon_sym_QMARK_QMARK, + ACTIONS(676), 1, anon_sym_LBRACK, - ACTIONS(882), 1, - anon_sym_SEMI, - STATE(159), 1, + STATE(176), 1, sym_argument_list, - ACTIONS(547), 2, + ACTIONS(620), 2, anon_sym_DOT, anon_sym_QMARK_DOT, - ACTIONS(629), 2, + ACTIONS(656), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(658), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(631), 2, + ACTIONS(660), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(633), 2, + ACTIONS(662), 2, anon_sym_BSLASH, anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, + ACTIONS(670), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(645), 2, + ACTIONS(672), 2, anon_sym_GT_EQ, anon_sym_LT_EQ, - [16976] = 16, + [18551] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(977), 1, + sym_identifier, + ACTIONS(979), 1, + anon_sym_RBRACE, + ACTIONS(981), 1, + anon_sym_inflight, + ACTIONS(983), 1, + sym_reassignable, + ACTIONS(985), 1, + sym_static, + ACTIONS(987), 1, + anon_sym_init, + ACTIONS(989), 1, + sym_async_modifier, + STATE(413), 1, + sym_access_modifier, + STATE(588), 1, + sym__inflight_specifier, + ACTIONS(991), 3, + anon_sym_public, + anon_sym_private, + anon_sym_protected, + STATE(303), 5, + sym_class_field, + sym_constructor, + sym_method_definition, + sym_inflight_method_definition, + aux_sym_class_implementation_repeat1, + [18594] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(993), 1, + sym_identifier, + ACTIONS(996), 1, + anon_sym_RBRACE, + ACTIONS(998), 1, + anon_sym_inflight, + ACTIONS(1001), 1, + sym_reassignable, + ACTIONS(1004), 1, + sym_static, + ACTIONS(1007), 1, + anon_sym_init, + ACTIONS(1010), 1, + sym_async_modifier, + STATE(413), 1, + sym_access_modifier, + STATE(588), 1, + sym__inflight_specifier, + ACTIONS(1013), 3, + anon_sym_public, + anon_sym_private, + anon_sym_protected, + STATE(303), 5, + sym_class_field, + sym_constructor, + sym_method_definition, + sym_inflight_method_definition, + aux_sym_class_implementation_repeat1, + [18637] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(977), 1, + sym_identifier, + ACTIONS(981), 1, + anon_sym_inflight, + ACTIONS(983), 1, + sym_reassignable, + ACTIONS(985), 1, + sym_static, + ACTIONS(987), 1, + anon_sym_init, + ACTIONS(989), 1, + sym_async_modifier, + ACTIONS(1016), 1, + anon_sym_RBRACE, + STATE(413), 1, + sym_access_modifier, + STATE(588), 1, + sym__inflight_specifier, + ACTIONS(991), 3, + anon_sym_public, + anon_sym_private, + anon_sym_protected, + STATE(303), 5, + sym_class_field, + sym_constructor, + sym_method_definition, + sym_inflight_method_definition, + aux_sym_class_implementation_repeat1, + [18680] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(977), 1, + sym_identifier, + ACTIONS(981), 1, + anon_sym_inflight, + ACTIONS(983), 1, + sym_reassignable, + ACTIONS(985), 1, + sym_static, + ACTIONS(987), 1, + anon_sym_init, + ACTIONS(989), 1, + sym_async_modifier, + ACTIONS(1018), 1, + anon_sym_RBRACE, + STATE(413), 1, + sym_access_modifier, + STATE(588), 1, + sym__inflight_specifier, + ACTIONS(991), 3, + anon_sym_public, + anon_sym_private, + anon_sym_protected, + STATE(302), 5, + sym_class_field, + sym_constructor, + sym_method_definition, + sym_inflight_method_definition, + aux_sym_class_implementation_repeat1, + [18723] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(977), 1, + sym_identifier, + ACTIONS(981), 1, + anon_sym_inflight, + ACTIONS(983), 1, + sym_reassignable, + ACTIONS(985), 1, + sym_static, + ACTIONS(987), 1, + anon_sym_init, + ACTIONS(989), 1, + sym_async_modifier, + ACTIONS(1020), 1, + anon_sym_RBRACE, + STATE(413), 1, + sym_access_modifier, + STATE(588), 1, + sym__inflight_specifier, + ACTIONS(991), 3, + anon_sym_public, + anon_sym_private, + anon_sym_protected, + STATE(304), 5, + sym_class_field, + sym_constructor, + sym_method_definition, + sym_inflight_method_definition, + aux_sym_class_implementation_repeat1, + [18766] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(983), 1, + sym_reassignable, + ACTIONS(1022), 1, + sym_identifier, + ACTIONS(1024), 1, + anon_sym_RBRACE, + ACTIONS(1026), 1, + anon_sym_inflight, + ACTIONS(1028), 1, + sym_static, + ACTIONS(1030), 1, + sym_async_modifier, + STATE(411), 1, + sym_access_modifier, + STATE(580), 1, + sym__inflight_specifier, + ACTIONS(991), 3, + anon_sym_public, + anon_sym_private, + anon_sym_protected, + STATE(309), 4, + sym_class_field, + sym_method_signature, + sym_inflight_method_signature, + aux_sym_interface_implementation_repeat1, + [18805] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1032), 1, + sym_identifier, + ACTIONS(1035), 1, + anon_sym_RBRACE, + ACTIONS(1037), 1, + anon_sym_inflight, + ACTIONS(1040), 1, + sym_reassignable, + ACTIONS(1043), 1, + sym_static, + ACTIONS(1046), 1, + sym_async_modifier, + STATE(411), 1, + sym_access_modifier, + STATE(580), 1, + sym__inflight_specifier, + ACTIONS(1049), 3, + anon_sym_public, + anon_sym_private, + anon_sym_protected, + STATE(308), 4, + sym_class_field, + sym_method_signature, + sym_inflight_method_signature, + aux_sym_interface_implementation_repeat1, + [18844] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(983), 1, + sym_reassignable, + ACTIONS(1022), 1, + sym_identifier, + ACTIONS(1026), 1, + anon_sym_inflight, + ACTIONS(1028), 1, + sym_static, + ACTIONS(1030), 1, + sym_async_modifier, + ACTIONS(1052), 1, + anon_sym_RBRACE, + STATE(411), 1, + sym_access_modifier, + STATE(580), 1, + sym__inflight_specifier, + ACTIONS(991), 3, + anon_sym_public, + anon_sym_private, + anon_sym_protected, + STATE(308), 4, + sym_class_field, + sym_method_signature, + sym_inflight_method_signature, + aux_sym_interface_implementation_repeat1, + [18883] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, - anon_sym_LPAREN, - ACTIONS(635), 1, - anon_sym_STAR_STAR, - ACTIONS(637), 1, - anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, - anon_sym_PIPE_PIPE, - ACTIONS(731), 1, - anon_sym_LBRACK, - ACTIONS(884), 1, - anon_sym_SEMI, - STATE(159), 1, - sym_argument_list, - ACTIONS(547), 2, + ACTIONS(1056), 1, anon_sym_DOT, - anon_sym_QMARK_DOT, - ACTIONS(629), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(631), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(633), 2, - anon_sym_BSLASH, - anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, + ACTIONS(1059), 1, + anon_sym_EQ, + STATE(310), 1, + aux_sym_custom_type_repeat1, + ACTIONS(1054), 9, + anon_sym_LBRACE, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_impl, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_QMARK, anon_sym_GT, - ACTIONS(643), 2, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - ACTIONS(645), 2, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [17032] = 14, + anon_sym_EQ_GT, + [18907] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, - anon_sym_LPAREN, - ACTIONS(825), 1, - anon_sym_STAR_STAR, - ACTIONS(829), 1, - anon_sym_AMP_AMP, - ACTIONS(835), 1, - anon_sym_QMARK_QMARK, - STATE(159), 1, - sym_argument_list, - ACTIONS(547), 2, + ACTIONS(1061), 1, anon_sym_DOT, - anon_sym_QMARK_DOT, - ACTIONS(817), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(819), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(821), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(823), 2, - anon_sym_BSLASH, - anon_sym_PERCENT, - ACTIONS(831), 2, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - ACTIONS(833), 2, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - ACTIONS(545), 3, + ACTIONS(1063), 1, + anon_sym_EQ, + STATE(312), 1, + aux_sym_custom_type_repeat1, + ACTIONS(533), 9, anon_sym_LBRACE, - anon_sym_PIPE_PIPE, - anon_sym_LBRACK, - [17084] = 16, - ACTIONS(3), 1, - sym_comment, - ACTIONS(549), 1, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_impl, anon_sym_LPAREN, - ACTIONS(731), 1, - anon_sym_LBRACK, - ACTIONS(733), 1, - anon_sym_LBRACE, - ACTIONS(825), 1, - anon_sym_STAR_STAR, - ACTIONS(827), 1, - anon_sym_PIPE_PIPE, - ACTIONS(829), 1, - anon_sym_AMP_AMP, - ACTIONS(835), 1, - anon_sym_QMARK_QMARK, - STATE(159), 1, - sym_argument_list, - ACTIONS(547), 2, - anon_sym_DOT, - anon_sym_QMARK_DOT, - ACTIONS(817), 2, - anon_sym_LT, + anon_sym_RPAREN, + anon_sym_QMARK, anon_sym_GT, - ACTIONS(819), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(821), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(823), 2, - anon_sym_BSLASH, - anon_sym_PERCENT, - ACTIONS(831), 2, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - ACTIONS(833), 2, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [17140] = 16, + anon_sym_EQ_GT, + [18931] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, - anon_sym_LPAREN, - ACTIONS(635), 1, - anon_sym_STAR_STAR, - ACTIONS(637), 1, - anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, - anon_sym_PIPE_PIPE, - ACTIONS(731), 1, - anon_sym_LBRACK, - ACTIONS(886), 1, - anon_sym_SEMI, - STATE(159), 1, - sym_argument_list, - ACTIONS(547), 2, + ACTIONS(1061), 1, anon_sym_DOT, - anon_sym_QMARK_DOT, - ACTIONS(629), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(631), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(633), 2, - anon_sym_BSLASH, - anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, + ACTIONS(1067), 1, + anon_sym_EQ, + STATE(310), 1, + aux_sym_custom_type_repeat1, + ACTIONS(1065), 9, + anon_sym_LBRACE, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_impl, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_QMARK, anon_sym_GT, - ACTIONS(643), 2, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - ACTIONS(645), 2, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [17196] = 4, + anon_sym_EQ_GT, + [18955] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(888), 1, + ACTIONS(1071), 1, anon_sym_EQ, - ACTIONS(555), 4, - anon_sym_LT, - anon_sym_GT, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(553), 17, + ACTIONS(1069), 10, + anon_sym_LBRACE, anon_sym_DOT, - anon_sym_QMARK_DOT, anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_impl, anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_BSLASH, - anon_sym_PERCENT, - anon_sym_STAR_STAR, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_QMARK_QMARK, - anon_sym_LBRACK, - [17228] = 13, + anon_sym_RPAREN, + anon_sym_QMARK, + anon_sym_GT, + anon_sym_EQ_GT, + [18974] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1075), 1, + anon_sym_RBRACE, + ACTIONS(1073), 9, + sym_identifier, + anon_sym_inflight, + sym_reassignable, + sym_static, + anon_sym_init, + sym_async_modifier, + anon_sym_public, + anon_sym_private, + anon_sym_protected, + [18992] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1079), 1, + anon_sym_RBRACE, + ACTIONS(1077), 9, + sym_identifier, + anon_sym_inflight, + sym_reassignable, + sym_static, + anon_sym_init, + sym_async_modifier, + anon_sym_public, + anon_sym_private, + anon_sym_protected, + [19010] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1083), 1, + anon_sym_RBRACE, + ACTIONS(1081), 9, + sym_identifier, + anon_sym_inflight, + sym_reassignable, + sym_static, + anon_sym_init, + sym_async_modifier, + anon_sym_public, + anon_sym_private, + anon_sym_protected, + [19028] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1087), 1, + anon_sym_RBRACE, + ACTIONS(1085), 9, + sym_identifier, + anon_sym_inflight, + sym_reassignable, + sym_static, + anon_sym_init, + sym_async_modifier, + anon_sym_public, + anon_sym_private, + anon_sym_protected, + [19046] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1091), 1, + anon_sym_RBRACE, + ACTIONS(1089), 9, + sym_identifier, + anon_sym_inflight, + sym_reassignable, + sym_static, + anon_sym_init, + sym_async_modifier, + anon_sym_public, + anon_sym_private, + anon_sym_protected, + [19064] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1095), 1, + anon_sym_RBRACE, + ACTIONS(1093), 9, + sym_identifier, + anon_sym_inflight, + sym_reassignable, + sym_static, + anon_sym_init, + sym_async_modifier, + anon_sym_public, + anon_sym_private, + anon_sym_protected, + [19082] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1099), 1, + anon_sym_RBRACE, + ACTIONS(1097), 9, + sym_identifier, + anon_sym_inflight, + sym_reassignable, + sym_static, + anon_sym_init, + sym_async_modifier, + anon_sym_public, + anon_sym_private, + anon_sym_protected, + [19100] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1103), 1, + anon_sym_RBRACE, + ACTIONS(1101), 9, + sym_identifier, + anon_sym_inflight, + sym_reassignable, + sym_static, + anon_sym_init, + sym_async_modifier, + anon_sym_public, + anon_sym_private, + anon_sym_protected, + [19118] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1107), 1, + anon_sym_RBRACE, + ACTIONS(1105), 9, + sym_identifier, + anon_sym_inflight, + sym_reassignable, + sym_static, + anon_sym_init, + sym_async_modifier, + anon_sym_public, + anon_sym_private, + anon_sym_protected, + [19136] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1111), 1, + anon_sym_RBRACE, + ACTIONS(1109), 9, + sym_identifier, + anon_sym_inflight, + sym_reassignable, + sym_static, + anon_sym_init, + sym_async_modifier, + anon_sym_public, + anon_sym_private, + anon_sym_protected, + [19154] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, - anon_sym_LPAREN, - ACTIONS(825), 1, - anon_sym_STAR_STAR, - ACTIONS(835), 1, - anon_sym_QMARK_QMARK, - STATE(159), 1, - sym_argument_list, - ACTIONS(547), 2, - anon_sym_DOT, - anon_sym_QMARK_DOT, - ACTIONS(817), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(819), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(821), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(823), 2, - anon_sym_BSLASH, - anon_sym_PERCENT, - ACTIONS(831), 2, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - ACTIONS(833), 2, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - ACTIONS(545), 4, - anon_sym_LBRACE, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_LBRACK, - [17278] = 16, + ACTIONS(1115), 1, + anon_sym_RBRACE, + ACTIONS(1113), 9, + sym_identifier, + anon_sym_inflight, + sym_reassignable, + sym_static, + anon_sym_init, + sym_async_modifier, + anon_sym_public, + anon_sym_private, + anon_sym_protected, + [19172] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, - anon_sym_LPAREN, - ACTIONS(635), 1, - anon_sym_STAR_STAR, - ACTIONS(637), 1, - anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, - anon_sym_PIPE_PIPE, - ACTIONS(731), 1, - anon_sym_LBRACK, - ACTIONS(890), 1, - anon_sym_RBRACK, - STATE(159), 1, - sym_argument_list, - ACTIONS(547), 2, - anon_sym_DOT, - anon_sym_QMARK_DOT, - ACTIONS(629), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(631), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(633), 2, - anon_sym_BSLASH, - anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - ACTIONS(645), 2, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [17334] = 16, + ACTIONS(1119), 1, + anon_sym_RBRACE, + ACTIONS(1117), 9, + sym_identifier, + anon_sym_inflight, + sym_reassignable, + sym_static, + anon_sym_init, + sym_async_modifier, + anon_sym_public, + anon_sym_private, + anon_sym_protected, + [19190] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, - anon_sym_LPAREN, - ACTIONS(635), 1, - anon_sym_STAR_STAR, - ACTIONS(637), 1, - anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, - anon_sym_PIPE_PIPE, - ACTIONS(731), 1, - anon_sym_LBRACK, - ACTIONS(892), 1, - anon_sym_SEMI, - STATE(159), 1, - sym_argument_list, - ACTIONS(547), 2, - anon_sym_DOT, - anon_sym_QMARK_DOT, - ACTIONS(629), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(631), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(633), 2, - anon_sym_BSLASH, - anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - ACTIONS(645), 2, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [17390] = 16, + ACTIONS(1123), 1, + anon_sym_RBRACE, + ACTIONS(1121), 9, + sym_identifier, + anon_sym_inflight, + sym_reassignable, + sym_static, + anon_sym_init, + sym_async_modifier, + anon_sym_public, + anon_sym_private, + anon_sym_protected, + [19208] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, - anon_sym_LPAREN, - ACTIONS(635), 1, - anon_sym_STAR_STAR, - ACTIONS(637), 1, - anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, - anon_sym_PIPE_PIPE, - ACTIONS(731), 1, - anon_sym_LBRACK, - ACTIONS(894), 1, + ACTIONS(1127), 1, anon_sym_RBRACE, - STATE(159), 1, - sym_argument_list, - ACTIONS(547), 2, - anon_sym_DOT, - anon_sym_QMARK_DOT, - ACTIONS(629), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(631), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(633), 2, - anon_sym_BSLASH, - anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - ACTIONS(645), 2, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [17446] = 16, + ACTIONS(1125), 9, + sym_identifier, + anon_sym_inflight, + sym_reassignable, + sym_static, + anon_sym_init, + sym_async_modifier, + anon_sym_public, + anon_sym_private, + anon_sym_protected, + [19226] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, - anon_sym_LPAREN, - ACTIONS(635), 1, - anon_sym_STAR_STAR, - ACTIONS(637), 1, - anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, - anon_sym_PIPE_PIPE, - ACTIONS(731), 1, - anon_sym_LBRACK, - ACTIONS(896), 1, - anon_sym_SEMI, - STATE(159), 1, - sym_argument_list, - ACTIONS(547), 2, - anon_sym_DOT, - anon_sym_QMARK_DOT, - ACTIONS(629), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(631), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(633), 2, - anon_sym_BSLASH, - anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - ACTIONS(645), 2, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [17502] = 4, + ACTIONS(1131), 1, + anon_sym_RBRACE, + ACTIONS(1129), 9, + sym_identifier, + anon_sym_inflight, + sym_reassignable, + sym_static, + anon_sym_init, + sym_async_modifier, + anon_sym_public, + anon_sym_private, + anon_sym_protected, + [19244] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(898), 1, - anon_sym_in, - ACTIONS(555), 4, - anon_sym_LT, - anon_sym_GT, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(553), 16, - anon_sym_DOT, - anon_sym_QMARK_DOT, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_BSLASH, - anon_sym_PERCENT, - anon_sym_STAR_STAR, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - anon_sym_QMARK_QMARK, - anon_sym_LBRACK, - [17533] = 15, + ACTIONS(1135), 1, + anon_sym_RBRACE, + ACTIONS(1133), 9, + sym_identifier, + anon_sym_inflight, + sym_reassignable, + sym_static, + anon_sym_init, + sym_async_modifier, + anon_sym_public, + anon_sym_private, + anon_sym_protected, + [19262] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, - anon_sym_LPAREN, - ACTIONS(635), 1, - anon_sym_STAR_STAR, - ACTIONS(637), 1, - anon_sym_QMARK_QMARK, - ACTIONS(641), 1, - anon_sym_AMP_AMP, - ACTIONS(729), 1, - anon_sym_PIPE_PIPE, - ACTIONS(731), 1, - anon_sym_LBRACK, - STATE(159), 1, - sym_argument_list, - ACTIONS(547), 2, - anon_sym_DOT, - anon_sym_QMARK_DOT, - ACTIONS(629), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(631), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(633), 2, - anon_sym_BSLASH, - anon_sym_PERCENT, - ACTIONS(639), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(643), 2, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - ACTIONS(645), 2, - anon_sym_GT_EQ, - anon_sym_LT_EQ, - [17586] = 12, + ACTIONS(1139), 1, + anon_sym_RBRACE, + ACTIONS(1137), 9, + sym_identifier, + anon_sym_inflight, + sym_reassignable, + sym_static, + anon_sym_init, + sym_async_modifier, + anon_sym_public, + anon_sym_private, + anon_sym_protected, + [19280] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(900), 1, + ACTIONS(1143), 1, + anon_sym_RBRACE, + ACTIONS(1141), 9, sym_identifier, - ACTIONS(902), 1, + anon_sym_inflight, + sym_reassignable, + sym_static, + anon_sym_init, + sym_async_modifier, + anon_sym_public, + anon_sym_private, + anon_sym_protected, + [19298] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1147), 1, anon_sym_RBRACE, - ACTIONS(904), 1, + ACTIONS(1145), 9, + sym_identifier, anon_sym_inflight, - ACTIONS(906), 1, sym_reassignable, - ACTIONS(908), 1, sym_static, - ACTIONS(910), 1, anon_sym_init, - ACTIONS(912), 1, sym_async_modifier, - STATE(369), 1, - sym_access_modifier, - STATE(532), 1, - sym__inflight_specifier, - ACTIONS(914), 3, anon_sym_public, anon_sym_private, anon_sym_protected, - STATE(287), 5, - sym_class_field, - sym_constructor, - sym_method_definition, - sym_inflight_method_definition, - aux_sym_class_implementation_repeat1, - [17629] = 12, + [19316] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1151), 1, + anon_sym_RBRACE, + ACTIONS(1149), 9, + sym_identifier, + anon_sym_inflight, + sym_reassignable, + sym_static, + anon_sym_init, + sym_async_modifier, + anon_sym_public, + anon_sym_private, + anon_sym_protected, + [19334] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(900), 1, + ACTIONS(1155), 1, + anon_sym_RBRACE, + ACTIONS(1153), 9, sym_identifier, - ACTIONS(904), 1, anon_sym_inflight, - ACTIONS(906), 1, sym_reassignable, - ACTIONS(908), 1, sym_static, - ACTIONS(910), 1, anon_sym_init, - ACTIONS(912), 1, sym_async_modifier, - ACTIONS(916), 1, - anon_sym_RBRACE, - STATE(369), 1, - sym_access_modifier, - STATE(532), 1, - sym__inflight_specifier, - ACTIONS(914), 3, anon_sym_public, anon_sym_private, anon_sym_protected, - STATE(286), 5, - sym_class_field, - sym_constructor, - sym_method_definition, - sym_inflight_method_definition, - aux_sym_class_implementation_repeat1, - [17672] = 12, + [19352] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(900), 1, + ACTIONS(1159), 1, + anon_sym_RBRACE, + ACTIONS(1157), 9, sym_identifier, - ACTIONS(904), 1, anon_sym_inflight, - ACTIONS(906), 1, sym_reassignable, - ACTIONS(908), 1, sym_static, - ACTIONS(910), 1, anon_sym_init, - ACTIONS(912), 1, sym_async_modifier, - ACTIONS(918), 1, - anon_sym_RBRACE, - STATE(369), 1, - sym_access_modifier, - STATE(532), 1, - sym__inflight_specifier, - ACTIONS(914), 3, anon_sym_public, anon_sym_private, anon_sym_protected, - STATE(287), 5, - sym_class_field, - sym_constructor, - sym_method_definition, - sym_inflight_method_definition, - aux_sym_class_implementation_repeat1, - [17715] = 12, + [19370] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(920), 1, - sym_identifier, - ACTIONS(923), 1, + ACTIONS(1163), 1, anon_sym_RBRACE, - ACTIONS(925), 1, + ACTIONS(1161), 9, + sym_identifier, anon_sym_inflight, - ACTIONS(928), 1, sym_reassignable, - ACTIONS(931), 1, sym_static, - ACTIONS(934), 1, anon_sym_init, - ACTIONS(937), 1, sym_async_modifier, - STATE(369), 1, - sym_access_modifier, - STATE(532), 1, - sym__inflight_specifier, - ACTIONS(940), 3, anon_sym_public, anon_sym_private, anon_sym_protected, - STATE(287), 5, - sym_class_field, - sym_constructor, - sym_method_definition, - sym_inflight_method_definition, - aux_sym_class_implementation_repeat1, - [17758] = 12, + [19388] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(900), 1, + ACTIONS(1167), 1, + anon_sym_RBRACE, + ACTIONS(1165), 9, sym_identifier, - ACTIONS(904), 1, anon_sym_inflight, - ACTIONS(906), 1, sym_reassignable, - ACTIONS(908), 1, sym_static, - ACTIONS(910), 1, anon_sym_init, - ACTIONS(912), 1, sym_async_modifier, - ACTIONS(943), 1, - anon_sym_RBRACE, - STATE(369), 1, - sym_access_modifier, - STATE(532), 1, - sym__inflight_specifier, - ACTIONS(914), 3, anon_sym_public, anon_sym_private, anon_sym_protected, - STATE(284), 5, - sym_class_field, - sym_constructor, - sym_method_definition, - sym_inflight_method_definition, - aux_sym_class_implementation_repeat1, - [17801] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(947), 1, - anon_sym_DOT, - ACTIONS(950), 1, - anon_sym_EQ, - STATE(289), 1, - aux_sym_custom_type_repeat1, - ACTIONS(945), 8, - anon_sym_LBRACE, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_QMARK, - anon_sym_GT, - anon_sym_EQ_GT, - [17824] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(954), 1, - anon_sym_DOT, - ACTIONS(956), 1, - anon_sym_EQ, - STATE(289), 1, - aux_sym_custom_type_repeat1, - ACTIONS(952), 8, - anon_sym_LBRACE, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_QMARK, - anon_sym_GT, - anon_sym_EQ_GT, - [17847] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(954), 1, - anon_sym_DOT, - ACTIONS(958), 1, - anon_sym_EQ, - STATE(290), 1, - aux_sym_custom_type_repeat1, - ACTIONS(466), 8, - anon_sym_LBRACE, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_QMARK, - anon_sym_GT, - anon_sym_EQ_GT, - [17870] = 3, + [19406] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(962), 1, + ACTIONS(1171), 1, anon_sym_RBRACE, - ACTIONS(960), 9, + ACTIONS(1169), 9, sym_identifier, anon_sym_inflight, sym_reassignable, @@ -20041,12 +21965,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_public, anon_sym_private, anon_sym_protected, - [17888] = 3, + [19424] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(966), 1, + ACTIONS(1175), 1, anon_sym_RBRACE, - ACTIONS(964), 9, + ACTIONS(1173), 9, sym_identifier, anon_sym_inflight, sym_reassignable, @@ -20056,27 +21980,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_public, anon_sym_private, anon_sym_protected, - [17906] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(970), 1, - anon_sym_EQ, - ACTIONS(968), 9, - anon_sym_LBRACE, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_QMARK, - anon_sym_GT, - anon_sym_EQ_GT, - anon_sym_LBRACK, - [17924] = 3, + [19442] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(974), 1, + ACTIONS(1179), 1, anon_sym_RBRACE, - ACTIONS(972), 9, + ACTIONS(1177), 9, sym_identifier, anon_sym_inflight, sym_reassignable, @@ -20086,12 +21995,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_public, anon_sym_private, anon_sym_protected, - [17942] = 3, + [19460] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(978), 1, + ACTIONS(1183), 1, anon_sym_RBRACE, - ACTIONS(976), 9, + ACTIONS(1181), 9, sym_identifier, anon_sym_inflight, sym_reassignable, @@ -20101,12 +22010,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_public, anon_sym_private, anon_sym_protected, - [17960] = 3, + [19478] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(982), 1, + ACTIONS(1187), 1, anon_sym_RBRACE, - ACTIONS(980), 9, + ACTIONS(1185), 9, sym_identifier, anon_sym_inflight, sym_reassignable, @@ -20116,27 +22025,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_public, anon_sym_private, anon_sym_protected, - [17978] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(986), 1, - anon_sym_EQ, - ACTIONS(984), 9, - anon_sym_LBRACE, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_QMARK, - anon_sym_GT, - anon_sym_EQ_GT, - anon_sym_LBRACK, - [17996] = 3, + [19496] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(990), 1, + ACTIONS(1191), 1, anon_sym_RBRACE, - ACTIONS(988), 9, + ACTIONS(1189), 9, sym_identifier, anon_sym_inflight, sym_reassignable, @@ -20146,12 +22040,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_public, anon_sym_private, anon_sym_protected, - [18014] = 3, + [19514] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(994), 1, + ACTIONS(1195), 1, anon_sym_RBRACE, - ACTIONS(992), 9, + ACTIONS(1193), 9, sym_identifier, anon_sym_inflight, sym_reassignable, @@ -20161,12 +22055,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_public, anon_sym_private, anon_sym_protected, - [18032] = 3, + [19532] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(998), 1, + ACTIONS(1199), 1, anon_sym_RBRACE, - ACTIONS(996), 9, + ACTIONS(1197), 9, sym_identifier, anon_sym_inflight, sym_reassignable, @@ -20176,12 +22070,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_public, anon_sym_private, anon_sym_protected, - [18050] = 3, + [19550] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1002), 1, + ACTIONS(1203), 1, anon_sym_RBRACE, - ACTIONS(1000), 9, + ACTIONS(1201), 9, sym_identifier, anon_sym_inflight, sym_reassignable, @@ -20191,12 +22085,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_public, anon_sym_private, anon_sym_protected, - [18068] = 3, + [19568] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1006), 1, + ACTIONS(1207), 1, anon_sym_RBRACE, - ACTIONS(1004), 9, + ACTIONS(1205), 9, sym_identifier, anon_sym_inflight, sym_reassignable, @@ -20206,12 +22100,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_public, anon_sym_private, anon_sym_protected, - [18086] = 3, + [19586] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1010), 1, + ACTIONS(1211), 1, anon_sym_RBRACE, - ACTIONS(1008), 9, + ACTIONS(1209), 9, sym_identifier, anon_sym_inflight, sym_reassignable, @@ -20221,12 +22115,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_public, anon_sym_private, anon_sym_protected, - [18104] = 3, + [19604] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1014), 1, + ACTIONS(1215), 1, anon_sym_RBRACE, - ACTIONS(1012), 9, + ACTIONS(1213), 9, sym_identifier, anon_sym_inflight, sym_reassignable, @@ -20236,12 +22130,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_public, anon_sym_private, anon_sym_protected, - [18122] = 3, + [19622] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1018), 1, + ACTIONS(1219), 1, anon_sym_RBRACE, - ACTIONS(1016), 9, + ACTIONS(1217), 9, sym_identifier, anon_sym_inflight, sym_reassignable, @@ -20251,12 +22145,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_public, anon_sym_private, anon_sym_protected, - [18140] = 3, + [19640] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1022), 1, + ACTIONS(1223), 1, anon_sym_RBRACE, - ACTIONS(1020), 9, + ACTIONS(1221), 9, sym_identifier, anon_sym_inflight, sym_reassignable, @@ -20266,12 +22160,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_public, anon_sym_private, anon_sym_protected, - [18158] = 3, + [19658] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1026), 1, + ACTIONS(1227), 1, anon_sym_RBRACE, - ACTIONS(1024), 9, + ACTIONS(1225), 9, sym_identifier, anon_sym_inflight, sym_reassignable, @@ -20281,12 +22175,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_public, anon_sym_private, anon_sym_protected, - [18176] = 3, + [19676] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1030), 1, + ACTIONS(1231), 1, anon_sym_RBRACE, - ACTIONS(1028), 9, + ACTIONS(1229), 9, sym_identifier, anon_sym_inflight, sym_reassignable, @@ -20296,12 +22190,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_public, anon_sym_private, anon_sym_protected, - [18194] = 3, + [19694] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1034), 1, + ACTIONS(1235), 1, anon_sym_RBRACE, - ACTIONS(1032), 9, + ACTIONS(1233), 9, sym_identifier, anon_sym_inflight, sym_reassignable, @@ -20311,12 +22205,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_public, anon_sym_private, anon_sym_protected, - [18212] = 3, + [19712] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1038), 1, + ACTIONS(1239), 1, anon_sym_RBRACE, - ACTIONS(1036), 9, + ACTIONS(1237), 9, sym_identifier, anon_sym_inflight, sym_reassignable, @@ -20326,12 +22220,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_public, anon_sym_private, anon_sym_protected, - [18230] = 3, + [19730] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1042), 1, + ACTIONS(1243), 1, anon_sym_RBRACE, - ACTIONS(1040), 9, + ACTIONS(1241), 9, sym_identifier, anon_sym_inflight, sym_reassignable, @@ -20341,12 +22235,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_public, anon_sym_private, anon_sym_protected, - [18248] = 3, + [19748] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1046), 1, + ACTIONS(1247), 1, anon_sym_RBRACE, - ACTIONS(1044), 9, + ACTIONS(1245), 9, sym_identifier, anon_sym_inflight, sym_reassignable, @@ -20356,12 +22250,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_public, anon_sym_private, anon_sym_protected, - [18266] = 3, + [19766] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1050), 1, + ACTIONS(1251), 1, anon_sym_RBRACE, - ACTIONS(1048), 9, + ACTIONS(1249), 9, sym_identifier, anon_sym_inflight, sym_reassignable, @@ -20371,12 +22265,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_public, anon_sym_private, anon_sym_protected, - [18284] = 3, + [19784] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1054), 1, + ACTIONS(1255), 1, anon_sym_RBRACE, - ACTIONS(1052), 9, + ACTIONS(1253), 9, sym_identifier, anon_sym_inflight, sym_reassignable, @@ -20386,27 +22280,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_public, anon_sym_private, anon_sym_protected, - [18302] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1058), 1, - anon_sym_EQ, - ACTIONS(1056), 9, - anon_sym_LBRACE, - anon_sym_DOT, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_QMARK, - anon_sym_GT, - anon_sym_EQ_GT, - [18320] = 3, + [19802] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1062), 1, + ACTIONS(1259), 1, anon_sym_RBRACE, - ACTIONS(1060), 9, + ACTIONS(1257), 9, sym_identifier, anon_sym_inflight, sym_reassignable, @@ -20416,12 +22295,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_public, anon_sym_private, anon_sym_protected, - [18338] = 3, + [19820] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1066), 1, + ACTIONS(1263), 1, anon_sym_RBRACE, - ACTIONS(1064), 9, + ACTIONS(1261), 9, sym_identifier, anon_sym_inflight, sym_reassignable, @@ -20431,12 +22310,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_public, anon_sym_private, anon_sym_protected, - [18356] = 3, + [19838] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1267), 1, + anon_sym_EQ, + ACTIONS(1265), 9, + anon_sym_LBRACE, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_QMARK, + anon_sym_GT, + anon_sym_EQ_GT, + anon_sym_LBRACK, + [19856] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1070), 1, + ACTIONS(1271), 1, anon_sym_RBRACE, - ACTIONS(1068), 9, + ACTIONS(1269), 9, sym_identifier, anon_sym_inflight, sym_reassignable, @@ -20446,12 +22340,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_public, anon_sym_private, anon_sym_protected, - [18374] = 3, + [19874] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1074), 1, + ACTIONS(1275), 1, anon_sym_RBRACE, - ACTIONS(1072), 9, + ACTIONS(1273), 9, sym_identifier, anon_sym_inflight, sym_reassignable, @@ -20461,12 +22355,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_public, anon_sym_private, anon_sym_protected, - [18392] = 3, + [19892] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1078), 1, + ACTIONS(1279), 1, anon_sym_RBRACE, - ACTIONS(1076), 9, + ACTIONS(1277), 9, sym_identifier, anon_sym_inflight, sym_reassignable, @@ -20476,12 +22370,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_public, anon_sym_private, anon_sym_protected, - [18410] = 3, + [19910] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1283), 1, + anon_sym_EQ, + ACTIONS(1281), 9, + anon_sym_LBRACE, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_QMARK, + anon_sym_GT, + anon_sym_EQ_GT, + anon_sym_LBRACK, + [19928] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1082), 1, + ACTIONS(1287), 1, anon_sym_RBRACE, - ACTIONS(1080), 9, + ACTIONS(1285), 9, sym_identifier, anon_sym_inflight, sym_reassignable, @@ -20491,12 +22400,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_public, anon_sym_private, anon_sym_protected, - [18428] = 3, + [19946] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1086), 1, + ACTIONS(1291), 1, anon_sym_RBRACE, - ACTIONS(1084), 9, + ACTIONS(1289), 9, sym_identifier, anon_sym_inflight, sym_reassignable, @@ -20506,12 +22415,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_public, anon_sym_private, anon_sym_protected, - [18446] = 3, + [19964] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1090), 1, + ACTIONS(1295), 1, anon_sym_RBRACE, - ACTIONS(1088), 9, + ACTIONS(1293), 9, sym_identifier, anon_sym_inflight, sym_reassignable, @@ -20521,12 +22430,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_public, anon_sym_private, anon_sym_protected, - [18464] = 3, + [19982] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1094), 1, + ACTIONS(1299), 1, anon_sym_RBRACE, - ACTIONS(1092), 9, + ACTIONS(1297), 9, sym_identifier, anon_sym_inflight, sym_reassignable, @@ -20536,12 +22445,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_public, anon_sym_private, anon_sym_protected, - [18482] = 3, + [20000] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1098), 1, + ACTIONS(1303), 1, anon_sym_RBRACE, - ACTIONS(1096), 9, + ACTIONS(1301), 9, sym_identifier, anon_sym_inflight, sym_reassignable, @@ -20551,12 +22460,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_public, anon_sym_private, anon_sym_protected, - [18500] = 3, + [20018] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1102), 1, + ACTIONS(1307), 1, anon_sym_RBRACE, - ACTIONS(1100), 9, + ACTIONS(1305), 9, sym_identifier, anon_sym_inflight, sym_reassignable, @@ -20566,458 +22475,462 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_public, anon_sym_private, anon_sym_protected, - [18518] = 3, + [20036] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1106), 1, + ACTIONS(1311), 1, anon_sym_RBRACE, - ACTIONS(1104), 9, + ACTIONS(1309), 8, sym_identifier, anon_sym_inflight, sym_reassignable, sym_static, - anon_sym_init, sym_async_modifier, anon_sym_public, anon_sym_private, anon_sym_protected, - [18536] = 3, + [20053] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1110), 1, + ACTIONS(1315), 1, anon_sym_RBRACE, - ACTIONS(1108), 9, + ACTIONS(1313), 8, sym_identifier, anon_sym_inflight, sym_reassignable, sym_static, - anon_sym_init, sym_async_modifier, anon_sym_public, anon_sym_private, anon_sym_protected, - [18554] = 3, + [20070] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1114), 1, + ACTIONS(1319), 1, anon_sym_RBRACE, - ACTIONS(1112), 9, + ACTIONS(1317), 8, sym_identifier, anon_sym_inflight, sym_reassignable, sym_static, - anon_sym_init, sym_async_modifier, anon_sym_public, anon_sym_private, anon_sym_protected, - [18572] = 3, + [20087] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1118), 1, + ACTIONS(1323), 1, anon_sym_RBRACE, - ACTIONS(1116), 9, + ACTIONS(1321), 8, sym_identifier, anon_sym_inflight, sym_reassignable, sym_static, - anon_sym_init, sym_async_modifier, anon_sym_public, anon_sym_private, anon_sym_protected, - [18590] = 3, + [20104] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1122), 1, + ACTIONS(1327), 1, anon_sym_RBRACE, - ACTIONS(1120), 9, + ACTIONS(1325), 8, sym_identifier, anon_sym_inflight, sym_reassignable, sym_static, - anon_sym_init, sym_async_modifier, anon_sym_public, anon_sym_private, anon_sym_protected, - [18608] = 3, + [20121] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1126), 1, + ACTIONS(1331), 1, anon_sym_RBRACE, - ACTIONS(1124), 9, + ACTIONS(1329), 8, sym_identifier, anon_sym_inflight, sym_reassignable, sym_static, - anon_sym_init, sym_async_modifier, anon_sym_public, anon_sym_private, anon_sym_protected, - [18626] = 3, + [20138] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1130), 1, + ACTIONS(1335), 1, anon_sym_RBRACE, - ACTIONS(1128), 9, + ACTIONS(1333), 8, sym_identifier, anon_sym_inflight, sym_reassignable, sym_static, - anon_sym_init, sym_async_modifier, anon_sym_public, anon_sym_private, anon_sym_protected, - [18644] = 3, + [20155] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1339), 1, + anon_sym_EQ, + ACTIONS(1341), 1, + anon_sym_COLON, + ACTIONS(1337), 7, + anon_sym_LBRACE, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_QMARK, + anon_sym_GT, + anon_sym_EQ_GT, + [20174] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1134), 1, + ACTIONS(1345), 1, anon_sym_RBRACE, - ACTIONS(1132), 9, + ACTIONS(1343), 8, sym_identifier, anon_sym_inflight, sym_reassignable, sym_static, - anon_sym_init, sym_async_modifier, anon_sym_public, anon_sym_private, anon_sym_protected, - [18662] = 3, + [20191] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1349), 1, + anon_sym_EQ, + ACTIONS(1347), 8, + anon_sym_LBRACE, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_QMARK, + anon_sym_GT, + anon_sym_EQ_GT, + [20208] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1138), 1, + ACTIONS(1353), 1, anon_sym_RBRACE, - ACTIONS(1136), 9, + ACTIONS(1351), 8, sym_identifier, anon_sym_inflight, sym_reassignable, sym_static, - anon_sym_init, sym_async_modifier, anon_sym_public, anon_sym_private, anon_sym_protected, - [18680] = 3, + [20225] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1357), 1, + anon_sym_EQ, + ACTIONS(1355), 8, + anon_sym_LBRACE, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_QMARK, + anon_sym_GT, + anon_sym_EQ_GT, + [20242] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1361), 1, + anon_sym_EQ, + ACTIONS(1359), 8, + anon_sym_LBRACE, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_QMARK, + anon_sym_GT, + anon_sym_EQ_GT, + [20259] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1142), 1, + ACTIONS(1365), 1, anon_sym_RBRACE, - ACTIONS(1140), 9, + ACTIONS(1363), 8, sym_identifier, anon_sym_inflight, sym_reassignable, sym_static, - anon_sym_init, sym_async_modifier, anon_sym_public, anon_sym_private, anon_sym_protected, - [18698] = 3, + [20276] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1146), 1, + ACTIONS(1369), 1, anon_sym_RBRACE, - ACTIONS(1144), 9, + ACTIONS(1367), 8, sym_identifier, anon_sym_inflight, sym_reassignable, sym_static, - anon_sym_init, sym_async_modifier, anon_sym_public, anon_sym_private, anon_sym_protected, - [18716] = 3, + [20293] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1150), 1, + ACTIONS(1373), 1, anon_sym_RBRACE, - ACTIONS(1148), 9, + ACTIONS(1371), 8, sym_identifier, anon_sym_inflight, sym_reassignable, sym_static, - anon_sym_init, sym_async_modifier, anon_sym_public, anon_sym_private, anon_sym_protected, - [18734] = 3, + [20310] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1154), 1, + ACTIONS(1377), 1, anon_sym_RBRACE, - ACTIONS(1152), 9, + ACTIONS(1375), 8, sym_identifier, anon_sym_inflight, sym_reassignable, sym_static, - anon_sym_init, sym_async_modifier, anon_sym_public, anon_sym_private, anon_sym_protected, - [18752] = 3, + [20327] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1381), 1, + anon_sym_EQ, + ACTIONS(1379), 8, + anon_sym_LBRACE, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_QMARK, + anon_sym_GT, + anon_sym_EQ_GT, + anon_sym_LBRACK, + [20344] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1158), 1, + ACTIONS(1385), 1, anon_sym_RBRACE, - ACTIONS(1156), 9, + ACTIONS(1383), 8, sym_identifier, anon_sym_inflight, sym_reassignable, sym_static, - anon_sym_init, sym_async_modifier, anon_sym_public, anon_sym_private, anon_sym_protected, - [18770] = 3, + [20361] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1162), 1, + ACTIONS(1389), 1, anon_sym_RBRACE, - ACTIONS(1160), 9, + ACTIONS(1387), 8, sym_identifier, anon_sym_inflight, sym_reassignable, sym_static, - anon_sym_init, sym_async_modifier, anon_sym_public, anon_sym_private, anon_sym_protected, - [18788] = 3, + [20378] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1393), 1, + anon_sym_EQ, + ACTIONS(1395), 1, + anon_sym_COLON, + ACTIONS(1391), 7, + anon_sym_LBRACE, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_QMARK, + anon_sym_GT, + anon_sym_EQ_GT, + [20397] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1399), 1, + anon_sym_EQ, + ACTIONS(1397), 8, + anon_sym_LBRACE, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RPAREN, + anon_sym_QMARK, + anon_sym_GT, + anon_sym_EQ_GT, + [20414] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1166), 1, + ACTIONS(1403), 1, anon_sym_RBRACE, - ACTIONS(1164), 9, + ACTIONS(1401), 8, sym_identifier, anon_sym_inflight, sym_reassignable, sym_static, - anon_sym_init, sym_async_modifier, anon_sym_public, anon_sym_private, anon_sym_protected, - [18806] = 3, + [20431] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1170), 1, + ACTIONS(1407), 1, anon_sym_RBRACE, - ACTIONS(1168), 9, + ACTIONS(1405), 8, sym_identifier, anon_sym_inflight, sym_reassignable, sym_static, - anon_sym_init, sym_async_modifier, anon_sym_public, anon_sym_private, anon_sym_protected, - [18824] = 3, + [20448] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1174), 1, + ACTIONS(1411), 1, anon_sym_RBRACE, - ACTIONS(1172), 9, + ACTIONS(1409), 8, sym_identifier, anon_sym_inflight, sym_reassignable, sym_static, - anon_sym_init, sym_async_modifier, anon_sym_public, anon_sym_private, anon_sym_protected, - [18842] = 3, + [20465] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1178), 1, + ACTIONS(1415), 1, anon_sym_RBRACE, - ACTIONS(1176), 9, + ACTIONS(1413), 8, sym_identifier, anon_sym_inflight, sym_reassignable, sym_static, - anon_sym_init, sym_async_modifier, anon_sym_public, anon_sym_private, anon_sym_protected, - [18860] = 3, + [20482] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1182), 1, + ACTIONS(1419), 1, anon_sym_RBRACE, - ACTIONS(1180), 9, + ACTIONS(1417), 8, sym_identifier, anon_sym_inflight, sym_reassignable, sym_static, - anon_sym_init, sym_async_modifier, anon_sym_public, anon_sym_private, anon_sym_protected, - [18878] = 3, + [20499] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1186), 1, + ACTIONS(1423), 1, anon_sym_RBRACE, - ACTIONS(1184), 9, + ACTIONS(1421), 8, sym_identifier, anon_sym_inflight, sym_reassignable, sym_static, - anon_sym_init, sym_async_modifier, anon_sym_public, anon_sym_private, anon_sym_protected, - [18896] = 3, + [20516] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1190), 1, + ACTIONS(1427), 1, anon_sym_RBRACE, - ACTIONS(1188), 9, + ACTIONS(1425), 8, sym_identifier, anon_sym_inflight, sym_reassignable, sym_static, - anon_sym_init, sym_async_modifier, anon_sym_public, anon_sym_private, anon_sym_protected, - [18914] = 3, + [20533] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1194), 1, + ACTIONS(1431), 1, anon_sym_RBRACE, - ACTIONS(1192), 9, + ACTIONS(1429), 8, sym_identifier, anon_sym_inflight, sym_reassignable, sym_static, - anon_sym_init, sym_async_modifier, anon_sym_public, anon_sym_private, anon_sym_protected, - [18932] = 3, + [20550] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1198), 1, + ACTIONS(1435), 1, anon_sym_RBRACE, - ACTIONS(1196), 9, + ACTIONS(1433), 8, sym_identifier, anon_sym_inflight, sym_reassignable, sym_static, - anon_sym_init, sym_async_modifier, anon_sym_public, anon_sym_private, anon_sym_protected, - [18950] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1202), 1, - anon_sym_EQ, - ACTIONS(1204), 1, - anon_sym_COLON, - ACTIONS(1200), 7, - anon_sym_LBRACE, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_QMARK, - anon_sym_GT, - anon_sym_EQ_GT, - [18969] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1208), 1, - anon_sym_EQ, - ACTIONS(1206), 8, - anon_sym_LBRACE, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_RPAREN, - anon_sym_QMARK, - anon_sym_GT, - anon_sym_EQ_GT, - [18986] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1212), 1, - anon_sym_EQ, - ACTIONS(1210), 8, - anon_sym_LBRACE, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_RPAREN, - anon_sym_QMARK, - anon_sym_GT, - anon_sym_EQ_GT, - [19003] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1216), 1, - anon_sym_EQ, - ACTIONS(1214), 8, - anon_sym_LBRACE, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_RPAREN, - anon_sym_QMARK, - anon_sym_GT, - anon_sym_EQ_GT, - [19020] = 4, + [20567] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1220), 1, + ACTIONS(1439), 1, anon_sym_EQ, - ACTIONS(1222), 1, - anon_sym_COLON, - ACTIONS(1218), 7, - anon_sym_LBRACE, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_RPAREN, + ACTIONS(1441), 1, anon_sym_QMARK, - anon_sym_GT, - anon_sym_EQ_GT, - [19039] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1226), 1, - anon_sym_EQ, - ACTIONS(1224), 8, + ACTIONS(1437), 6, anon_sym_LBRACE, anon_sym_SEMI, anon_sym_COMMA, - anon_sym_COLON, anon_sym_RPAREN, - anon_sym_QMARK, anon_sym_GT, anon_sym_EQ_GT, - [19056] = 3, + [20585] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1230), 1, + ACTIONS(1445), 1, anon_sym_EQ, - ACTIONS(1228), 8, + ACTIONS(1443), 7, anon_sym_LBRACE, anon_sym_SEMI, anon_sym_COMMA, @@ -21025,13 +22938,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK, anon_sym_GT, anon_sym_EQ_GT, - anon_sym_LBRACK, - [19073] = 3, + [20601] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1234), 1, + ACTIONS(1449), 1, anon_sym_EQ, - ACTIONS(1232), 7, + ACTIONS(1447), 7, anon_sym_LBRACE, anon_sym_SEMI, anon_sym_COMMA, @@ -21039,2048 +22951,2697 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_QMARK, anon_sym_GT, anon_sym_EQ_GT, - [19089] = 4, + [20617] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1238), 1, - anon_sym_EQ, - ACTIONS(1240), 1, + ACTIONS(1441), 1, anon_sym_QMARK, - ACTIONS(1236), 6, - anon_sym_LBRACE, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_GT, - anon_sym_EQ_GT, - [19107] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1244), 1, + ACTIONS(1453), 1, anon_sym_EQ, - ACTIONS(1242), 7, + ACTIONS(1451), 6, anon_sym_LBRACE, anon_sym_SEMI, anon_sym_COMMA, anon_sym_RPAREN, - anon_sym_QMARK, anon_sym_GT, anon_sym_EQ_GT, - [19123] = 4, + [20635] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1240), 1, + ACTIONS(1441), 1, anon_sym_QMARK, - ACTIONS(1248), 1, + ACTIONS(1457), 1, anon_sym_EQ, - ACTIONS(1246), 6, + ACTIONS(1455), 5, anon_sym_LBRACE, anon_sym_SEMI, anon_sym_COMMA, anon_sym_RPAREN, - anon_sym_GT, anon_sym_EQ_GT, - [19141] = 4, - ACTIONS(3), 1, + [20652] = 5, + ACTIONS(1459), 1, sym_comment, - ACTIONS(1240), 1, - anon_sym_QMARK, - ACTIONS(1252), 1, - anon_sym_EQ, - ACTIONS(1250), 5, - anon_sym_LBRACE, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_EQ_GT, - [19158] = 4, + ACTIONS(1461), 1, + anon_sym_DQUOTE, + ACTIONS(1463), 1, + anon_sym_DOLLAR_LBRACE, + ACTIONS(1465), 2, + sym__string_fragment, + sym__escape_sequence, + STATE(415), 2, + sym_template_substitution, + aux_sym_string_repeat1, + [20670] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(442), 1, + ACTIONS(519), 1, sym_identifier, - STATE(495), 2, + STATE(576), 2, sym_custom_type, sym_mutable_container_type, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - [19174] = 5, - ACTIONS(1254), 1, + [20686] = 7, + ACTIONS(3), 1, sym_comment, - ACTIONS(1256), 1, - anon_sym_DQUOTE, - ACTIONS(1258), 1, + ACTIONS(1467), 1, + sym_identifier, + ACTIONS(1469), 1, + anon_sym_inflight, + ACTIONS(1471), 1, + sym_reassignable, + ACTIONS(1473), 1, + sym_static, + ACTIONS(1475), 1, + sym_async_modifier, + STATE(575), 1, + sym__inflight_specifier, + [20708] = 5, + ACTIONS(1459), 1, + sym_comment, + ACTIONS(1463), 1, anon_sym_DOLLAR_LBRACE, - ACTIONS(1260), 2, + ACTIONS(1477), 1, + anon_sym_DQUOTE, + ACTIONS(1479), 2, sym__string_fragment, sym__escape_sequence, - STATE(367), 2, + STATE(409), 2, sym_template_substitution, aux_sym_string_repeat1, - [19192] = 4, + [20726] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1471), 1, + sym_reassignable, + ACTIONS(1481), 1, + sym_identifier, + ACTIONS(1483), 1, + anon_sym_inflight, + ACTIONS(1485), 1, + sym_static, + ACTIONS(1487), 1, + sym_async_modifier, + STATE(651), 1, + sym__inflight_specifier, + [20748] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(442), 1, + ACTIONS(519), 1, sym_identifier, - STATE(560), 2, + STATE(630), 2, sym_custom_type, sym_mutable_container_type, - ACTIONS(53), 3, + ACTIONS(55), 3, anon_sym_MutSet, anon_sym_MutMap, anon_sym_MutArray, - [19208] = 5, - ACTIONS(1254), 1, + [20764] = 5, + ACTIONS(1459), 1, sym_comment, - ACTIONS(1258), 1, - anon_sym_DOLLAR_LBRACE, - ACTIONS(1262), 1, + ACTIONS(1489), 1, anon_sym_DQUOTE, - ACTIONS(1264), 2, + ACTIONS(1491), 1, + anon_sym_DOLLAR_LBRACE, + ACTIONS(1494), 2, sym__string_fragment, sym__escape_sequence, - STATE(368), 2, + STATE(415), 2, sym_template_substitution, aux_sym_string_repeat1, - [19226] = 5, - ACTIONS(1254), 1, + [20782] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1497), 1, + sym_identifier, + ACTIONS(1499), 1, + anon_sym_inflight, + ACTIONS(1501), 1, + sym_reassignable, + ACTIONS(1503), 1, + sym_async_modifier, + STATE(584), 1, + sym__inflight_specifier, + [20801] = 6, + ACTIONS(3), 1, sym_comment, - ACTIONS(1266), 1, + ACTIONS(47), 1, anon_sym_DQUOTE, - ACTIONS(1268), 1, - anon_sym_DOLLAR_LBRACE, - ACTIONS(1271), 2, - sym__string_fragment, - sym__escape_sequence, - STATE(368), 2, - sym_template_substitution, - aux_sym_string_repeat1, - [19244] = 7, + ACTIONS(1505), 1, + sym_identifier, + ACTIONS(1507), 1, + anon_sym_RBRACE, + STATE(505), 1, + sym_map_literal_member, + STATE(691), 1, + sym_string, + [20820] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(47), 1, + anon_sym_DQUOTE, + ACTIONS(1505), 1, + sym_identifier, + ACTIONS(1509), 1, + anon_sym_RBRACE, + STATE(549), 1, + sym_map_literal_member, + STATE(691), 1, + sym_string, + [20839] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1511), 1, + sym_identifier, + ACTIONS(1513), 1, + anon_sym_inflight, + ACTIONS(1515), 1, + sym_reassignable, + ACTIONS(1517), 1, + sym_async_modifier, + STATE(617), 1, + sym__inflight_specifier, + [20858] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(47), 1, + anon_sym_DQUOTE, + ACTIONS(1505), 1, + sym_identifier, + ACTIONS(1519), 1, + anon_sym_RBRACE, + STATE(613), 1, + sym_map_literal_member, + STATE(691), 1, + sym_string, + [20877] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(47), 1, + anon_sym_DQUOTE, + ACTIONS(1505), 1, + sym_identifier, + ACTIONS(1521), 1, + anon_sym_RBRACE, + STATE(613), 1, + sym_map_literal_member, + STATE(691), 1, + sym_string, + [20896] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(47), 1, + anon_sym_DQUOTE, + ACTIONS(1505), 1, + sym_identifier, + ACTIONS(1523), 1, + anon_sym_RBRACE, + STATE(613), 1, + sym_map_literal_member, + STATE(691), 1, + sym_string, + [20915] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1525), 5, + sym_identifier, + anon_sym_inflight, + sym_reassignable, + sym_static, + sym_async_modifier, + [20926] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(47), 1, + anon_sym_DQUOTE, + ACTIONS(1505), 1, + sym_identifier, + ACTIONS(1527), 1, + anon_sym_RBRACE, + STATE(613), 1, + sym_map_literal_member, + STATE(691), 1, + sym_string, + [20945] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1515), 1, + sym_reassignable, + ACTIONS(1529), 1, + sym_identifier, + ACTIONS(1531), 1, + anon_sym_inflight, + ACTIONS(1533), 1, + sym_async_modifier, + STATE(628), 1, + sym__inflight_specifier, + [20964] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1501), 1, + sym_reassignable, + ACTIONS(1535), 1, + sym_identifier, + ACTIONS(1537), 1, + anon_sym_inflight, + ACTIONS(1539), 1, + sym_async_modifier, + STATE(637), 1, + sym__inflight_specifier, + [20983] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1541), 1, + anon_sym_LBRACE, + ACTIONS(1543), 1, + anon_sym_COMMA, + STATE(123), 1, + sym_resource_implementation, + STATE(569), 1, + aux_sym_class_definition_repeat1, + [20999] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1541), 1, + anon_sym_LBRACE, + ACTIONS(1545), 1, + sym_identifier, + STATE(123), 1, + sym_resource_implementation, + STATE(579), 1, + sym_custom_type, + [21015] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(858), 1, + anon_sym_COLON, + ACTIONS(1547), 1, + anon_sym_LPAREN, + STATE(445), 1, + sym_parameter_list, + STATE(594), 1, + sym__type_annotation, + [21031] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(858), 1, + anon_sym_COLON, + ACTIONS(1547), 1, + anon_sym_LPAREN, + STATE(442), 1, + sym_parameter_list, + STATE(598), 1, + sym__type_annotation, + [21047] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1274), 1, + ACTIONS(1541), 1, + anon_sym_LBRACE, + ACTIONS(1545), 1, sym_identifier, - ACTIONS(1276), 1, - anon_sym_inflight, - ACTIONS(1278), 1, - sym_reassignable, - ACTIONS(1280), 1, - sym_static, - ACTIONS(1282), 1, - sym_async_modifier, - STATE(494), 1, - sym__inflight_specifier, - [19266] = 6, + STATE(133), 1, + sym_resource_implementation, + STATE(579), 1, + sym_custom_type, + [21063] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(45), 1, - anon_sym_DQUOTE, - ACTIONS(1284), 1, - sym_identifier, - ACTIONS(1286), 1, + ACTIONS(1551), 1, + anon_sym_COMMA, + STATE(432), 1, + aux_sym_array_literal_repeat1, + ACTIONS(1549), 2, anon_sym_RBRACE, - STATE(543), 1, - sym_map_literal_member, - STATE(586), 1, - sym_string, - [19285] = 6, + anon_sym_RBRACK, + [21077] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(45), 1, - anon_sym_DQUOTE, - ACTIONS(1284), 1, + ACTIONS(1545), 1, sym_identifier, - ACTIONS(1288), 1, - anon_sym_RBRACE, - STATE(543), 1, - sym_map_literal_member, - STATE(586), 1, - sym_string, - [19304] = 6, + ACTIONS(1554), 1, + anon_sym_LBRACE, + STATE(134), 1, + sym_class_implementation, + STATE(579), 1, + sym_custom_type, + [21093] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(45), 1, - anon_sym_DQUOTE, - ACTIONS(1284), 1, - sym_identifier, - ACTIONS(1290), 1, - anon_sym_RBRACE, - STATE(543), 1, - sym_map_literal_member, - STATE(586), 1, - sym_string, - [19323] = 6, + ACTIONS(858), 1, + anon_sym_COLON, + ACTIONS(884), 1, + anon_sym_LBRACE, + STATE(352), 1, + sym_block, + STATE(599), 1, + sym__type_annotation, + [21109] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(45), 1, - anon_sym_DQUOTE, - ACTIONS(1284), 1, - sym_identifier, - ACTIONS(1292), 1, - anon_sym_RBRACE, - STATE(449), 1, - sym_map_literal_member, - STATE(586), 1, - sym_string, - [19342] = 6, + ACTIONS(858), 1, + anon_sym_COLON, + ACTIONS(884), 1, + anon_sym_LBRACE, + STATE(370), 1, + sym_block, + STATE(658), 1, + sym__type_annotation, + [21125] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(45), 1, - anon_sym_DQUOTE, - ACTIONS(1284), 1, - sym_identifier, - ACTIONS(1294), 1, - anon_sym_RBRACE, - STATE(423), 1, - sym_map_literal_member, - STATE(586), 1, - sym_string, - [19361] = 6, + ACTIONS(858), 1, + anon_sym_COLON, + ACTIONS(884), 1, + anon_sym_LBRACE, + STATE(333), 1, + sym_block, + STATE(654), 1, + sym__type_annotation, + [21141] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(45), 1, - anon_sym_DQUOTE, - ACTIONS(1284), 1, + ACTIONS(858), 1, + anon_sym_COLON, + ACTIONS(1547), 1, + anon_sym_LPAREN, + STATE(491), 1, + sym_parameter_list, + STATE(622), 1, + sym__type_annotation, + [21157] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1556), 1, sym_identifier, - ACTIONS(1296), 1, + ACTIONS(1558), 1, anon_sym_RBRACE, - STATE(543), 1, - sym_map_literal_member, - STATE(586), 1, - sym_string, - [19380] = 6, + STATE(496), 2, + sym_struct_field, + aux_sym_struct_definition_repeat2, + [21171] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1298), 1, + ACTIONS(1556), 1, sym_identifier, - ACTIONS(1300), 1, - anon_sym_inflight, - ACTIONS(1302), 1, - sym_reassignable, - ACTIONS(1304), 1, - sym_async_modifier, - STATE(554), 1, - sym__inflight_specifier, - [19399] = 6, + ACTIONS(1558), 1, + anon_sym_RBRACE, + STATE(495), 2, + sym_struct_field, + aux_sym_struct_definition_repeat2, + [21185] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1306), 1, - sym_identifier, - ACTIONS(1308), 1, - anon_sym_inflight, - ACTIONS(1310), 1, - sym_reassignable, - ACTIONS(1312), 1, - sym_async_modifier, - STATE(500), 1, - sym__inflight_specifier, - [19418] = 2, + ACTIONS(858), 1, + anon_sym_COLON, + ACTIONS(884), 1, + anon_sym_LBRACE, + STATE(353), 1, + sym_block, + STATE(629), 1, + sym__type_annotation, + [21201] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1314), 5, - sym_identifier, - anon_sym_inflight, - sym_reassignable, - sym_static, - sym_async_modifier, - [19429] = 5, + ACTIONS(858), 1, + anon_sym_COLON, + ACTIONS(1547), 1, + anon_sym_LPAREN, + STATE(477), 1, + sym_parameter_list, + STATE(645), 1, + sym__type_annotation, + [21217] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(787), 1, + ACTIONS(858), 1, anon_sym_COLON, - ACTIONS(815), 1, + ACTIONS(884), 1, anon_sym_LBRACE, - STATE(342), 1, + STATE(358), 1, sym_block, - STATE(548), 1, + STATE(632), 1, sym__type_annotation, - [19445] = 5, + [21233] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(787), 1, + ACTIONS(858), 1, anon_sym_COLON, - ACTIONS(1316), 1, + ACTIONS(1547), 1, anon_sym_LPAREN, - STATE(415), 1, + STATE(554), 1, sym_parameter_list, - STATE(490), 1, + STATE(594), 1, sym__type_annotation, - [19461] = 4, + [21249] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1318), 1, + ACTIONS(1556), 1, sym_identifier, - ACTIONS(1320), 1, + ACTIONS(1560), 1, anon_sym_RBRACE, - STATE(412), 2, + STATE(496), 2, sym_struct_field, aux_sym_struct_definition_repeat2, - [19475] = 5, + [21263] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(787), 1, + ACTIONS(858), 1, anon_sym_COLON, - ACTIONS(815), 1, + ACTIONS(884), 1, anon_sym_LBRACE, - STATE(315), 1, + STATE(367), 1, sym_block, - STATE(501), 1, + STATE(670), 1, + sym__type_annotation, + [21279] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1562), 4, + anon_sym_LBRACE, + anon_sym_SEMI, + anon_sym_COLON, + anon_sym_EQ_GT, + [21289] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(858), 1, + anon_sym_COLON, + ACTIONS(1547), 1, + anon_sym_LPAREN, + STATE(486), 1, + sym_parameter_list, + STATE(676), 1, + sym__type_annotation, + [21305] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_LBRACE, + ACTIONS(1564), 1, + anon_sym_COMMA, + STATE(145), 1, + sym_class_implementation, + STATE(455), 1, + aux_sym_class_definition_repeat1, + [21321] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1541), 1, + anon_sym_LBRACE, + ACTIONS(1566), 1, + anon_sym_COMMA, + STATE(119), 1, + sym_resource_implementation, + STATE(427), 1, + aux_sym_class_definition_repeat1, + [21337] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(858), 1, + anon_sym_COLON, + ACTIONS(1547), 1, + anon_sym_LPAREN, + STATE(533), 1, + sym_parameter_list, + STATE(645), 1, sym__type_annotation, - [19491] = 4, + [21353] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1318), 1, + ACTIONS(1545), 1, sym_identifier, - ACTIONS(1322), 1, - anon_sym_RBRACE, - STATE(410), 2, - sym_struct_field, - aux_sym_struct_definition_repeat2, - [19505] = 4, + ACTIONS(1554), 1, + anon_sym_LBRACE, + STATE(125), 1, + sym_class_implementation, + STATE(579), 1, + sym_custom_type, + [21369] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(858), 1, + anon_sym_COLON, + ACTIONS(1547), 1, + anon_sym_LPAREN, + STATE(482), 1, + sym_parameter_list, + STATE(669), 1, + sym__type_annotation, + [21385] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1318), 1, + ACTIONS(1556), 1, sym_identifier, - ACTIONS(1322), 1, + ACTIONS(1568), 1, anon_sym_RBRACE, - STATE(409), 2, + STATE(496), 2, sym_struct_field, aux_sym_struct_definition_repeat2, - [19519] = 5, + [21399] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_LBRACE, + ACTIONS(1570), 1, + anon_sym_COMMA, + STATE(109), 1, + sym_class_implementation, + STATE(479), 1, + aux_sym_class_definition_repeat1, + [21415] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_LBRACE, + ACTIONS(1572), 1, + anon_sym_COMMA, + STATE(125), 1, + sym_class_implementation, + STATE(569), 1, + aux_sym_class_definition_repeat1, + [21431] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1574), 1, + anon_sym_LBRACE, + ACTIONS(1576), 1, + anon_sym_COMMA, + STATE(94), 1, + sym_interface_implementation, + STATE(490), 1, + aux_sym_class_definition_repeat1, + [21447] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1545), 1, + sym_identifier, + ACTIONS(1554), 1, + anon_sym_LBRACE, + STATE(120), 1, + sym_class_implementation, + STATE(579), 1, + sym_custom_type, + [21463] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(190), 1, + sym_reassignable, + ACTIONS(1578), 1, + sym_identifier, + ACTIONS(1580), 1, + anon_sym_RPAREN, + STATE(643), 1, + sym_parameter_definition, + [21479] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1541), 1, + anon_sym_LBRACE, + ACTIONS(1582), 1, + anon_sym_COMMA, + STATE(115), 1, + sym_resource_implementation, + STATE(473), 1, + aux_sym_class_definition_repeat1, + [21495] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(787), 1, + ACTIONS(858), 1, anon_sym_COLON, - ACTIONS(1316), 1, + ACTIONS(1547), 1, anon_sym_LPAREN, - STATE(404), 1, + STATE(434), 1, sym_parameter_list, - STATE(507), 1, + STATE(614), 1, sym__type_annotation, - [19535] = 5, + [21511] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(45), 1, - anon_sym_DQUOTE, - ACTIONS(1284), 1, + ACTIONS(1541), 1, + anon_sym_LBRACE, + ACTIONS(1545), 1, sym_identifier, - STATE(543), 1, - sym_map_literal_member, - STATE(586), 1, - sym_string, - [19551] = 4, + STATE(141), 1, + sym_resource_implementation, + STATE(579), 1, + sym_custom_type, + [21527] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1318), 1, + ACTIONS(1556), 1, sym_identifier, - ACTIONS(1324), 1, + ACTIONS(1560), 1, anon_sym_RBRACE, - STATE(383), 2, + STATE(465), 2, sym_struct_field, aux_sym_struct_definition_repeat2, - [19565] = 3, - ACTIONS(1254), 1, + [21541] = 3, + ACTIONS(1459), 1, sym_comment, - ACTIONS(1326), 2, + ACTIONS(1584), 2, anon_sym_DQUOTE, anon_sym_DOLLAR_LBRACE, - ACTIONS(1328), 2, + ACTIONS(1586), 2, sym__string_fragment, sym__escape_sequence, - [19577] = 5, + [21553] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(185), 1, - sym_reassignable, - ACTIONS(1330), 1, + ACTIONS(858), 1, + anon_sym_COLON, + ACTIONS(1547), 1, + anon_sym_LPAREN, + STATE(555), 1, + sym_parameter_list, + STATE(604), 1, + sym__type_annotation, + [21569] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1556), 1, sym_identifier, - ACTIONS(1332), 1, - anon_sym_RPAREN, - STATE(521), 1, - sym_parameter_definition, - [19593] = 4, + ACTIONS(1588), 1, + anon_sym_RBRACE, + STATE(496), 2, + sym_struct_field, + aux_sym_struct_definition_repeat2, + [21583] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(858), 1, + anon_sym_COLON, + ACTIONS(1547), 1, + anon_sym_LPAREN, + STATE(499), 1, + sym_parameter_list, + STATE(622), 1, + sym__type_annotation, + [21599] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(858), 1, + anon_sym_COLON, + ACTIONS(1547), 1, + anon_sym_LPAREN, + STATE(565), 1, + sym_parameter_list, + STATE(614), 1, + sym__type_annotation, + [21615] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1318), 1, + ACTIONS(1556), 1, sym_identifier, - ACTIONS(1334), 1, + ACTIONS(1590), 1, anon_sym_RBRACE, - STATE(410), 2, + STATE(438), 2, sym_struct_field, aux_sym_struct_definition_repeat2, - [19607] = 5, + [21629] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(787), 1, + ACTIONS(858), 1, anon_sym_COLON, - ACTIONS(815), 1, - anon_sym_LBRACE, - STATE(305), 1, - sym_block, - STATE(511), 1, + ACTIONS(1547), 1, + anon_sym_LPAREN, + STATE(556), 1, + sym_parameter_list, + STATE(598), 1, sym__type_annotation, - [19623] = 5, + [21645] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(787), 1, + ACTIONS(858), 1, anon_sym_COLON, - ACTIONS(1316), 1, + ACTIONS(1547), 1, anon_sym_LPAREN, - STATE(403), 1, + STATE(560), 1, sym_parameter_list, - STATE(538), 1, + STATE(676), 1, sym__type_annotation, - [19639] = 5, + [21661] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1592), 4, + anon_sym_LBRACE, + anon_sym_SEMI, + anon_sym_COLON, + anon_sym_EQ_GT, + [21671] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1594), 4, + anon_sym_LBRACE, + anon_sym_SEMI, + anon_sym_COLON, + anon_sym_EQ_GT, + [21681] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1541), 1, + anon_sym_LBRACE, + ACTIONS(1596), 1, + anon_sym_COMMA, + STATE(95), 1, + sym_resource_implementation, + STATE(569), 1, + aux_sym_class_definition_repeat1, + [21697] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(787), 1, + ACTIONS(858), 1, anon_sym_COLON, - ACTIONS(1316), 1, + ACTIONS(1547), 1, anon_sym_LPAREN, - STATE(405), 1, + STATE(564), 1, sym_parameter_list, - STATE(480), 1, + STATE(669), 1, sym__type_annotation, - [19655] = 5, + [21713] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1541), 1, + anon_sym_LBRACE, + ACTIONS(1545), 1, + sym_identifier, + STATE(95), 1, + sym_resource_implementation, + STATE(579), 1, + sym_custom_type, + [21729] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1545), 1, + sym_identifier, + ACTIONS(1574), 1, + anon_sym_LBRACE, + STATE(106), 1, + sym_interface_implementation, + STATE(579), 1, + sym_custom_type, + [21745] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(787), 1, + ACTIONS(858), 1, anon_sym_COLON, - ACTIONS(815), 1, + ACTIONS(884), 1, anon_sym_LBRACE, - STATE(307), 1, + STATE(332), 1, sym_block, - STATE(524), 1, + STATE(616), 1, sym__type_annotation, - [19671] = 5, + [21761] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(190), 1, + sym_reassignable, + ACTIONS(1578), 1, + sym_identifier, + ACTIONS(1598), 1, + anon_sym_RPAREN, + STATE(643), 1, + sym_parameter_definition, + [21777] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_LBRACE, + ACTIONS(1600), 1, + anon_sym_COMMA, + STATE(129), 1, + sym_class_implementation, + STATE(569), 1, + aux_sym_class_definition_repeat1, + [21793] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1545), 1, + sym_identifier, + ACTIONS(1554), 1, + anon_sym_LBRACE, + STATE(129), 1, + sym_class_implementation, + STATE(579), 1, + sym_custom_type, + [21809] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1541), 1, + anon_sym_LBRACE, + ACTIONS(1602), 1, + anon_sym_extends, + ACTIONS(1604), 1, + anon_sym_impl, + STATE(137), 1, + sym_resource_implementation, + [21825] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(787), 1, + ACTIONS(858), 1, anon_sym_COLON, - ACTIONS(815), 1, + ACTIONS(884), 1, anon_sym_LBRACE, - STATE(320), 1, + STATE(340), 1, sym_block, - STATE(546), 1, + STATE(611), 1, sym__type_annotation, - [19687] = 5, + [21841] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(787), 1, + ACTIONS(858), 1, anon_sym_COLON, - ACTIONS(815), 1, + ACTIONS(884), 1, anon_sym_LBRACE, - STATE(344), 1, + STATE(328), 1, sym_block, - STATE(484), 1, + STATE(608), 1, sym__type_annotation, - [19703] = 5, + [21857] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(787), 1, + ACTIONS(858), 1, anon_sym_COLON, - ACTIONS(1316), 1, + ACTIONS(1547), 1, anon_sym_LPAREN, - STATE(391), 1, + STATE(435), 1, sym_parameter_list, - STATE(486), 1, + STATE(604), 1, sym__type_annotation, - [19719] = 4, + [21873] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1318), 1, - sym_identifier, - ACTIONS(1320), 1, - anon_sym_RBRACE, - STATE(410), 2, - sym_struct_field, - aux_sym_struct_definition_repeat2, - [19733] = 5, + ACTIONS(1554), 1, + anon_sym_LBRACE, + ACTIONS(1606), 1, + anon_sym_extends, + ACTIONS(1608), 1, + anon_sym_impl, + STATE(136), 1, + sym_class_implementation, + [21889] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(787), 1, + ACTIONS(858), 1, anon_sym_COLON, - ACTIONS(1316), 1, - anon_sym_LPAREN, - STATE(396), 1, - sym_parameter_list, - STATE(489), 1, + ACTIONS(884), 1, + anon_sym_LBRACE, + STATE(327), 1, + sym_block, + STATE(601), 1, sym__type_annotation, - [19749] = 5, + [21905] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(787), 1, + ACTIONS(1610), 4, + anon_sym_LBRACE, + anon_sym_SEMI, anon_sym_COLON, - ACTIONS(1316), 1, - anon_sym_LPAREN, - STATE(395), 1, - sym_parameter_list, - STATE(555), 1, - sym__type_annotation, - [19765] = 5, + anon_sym_EQ_GT, + [21915] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1240), 1, + ACTIONS(1441), 1, anon_sym_QMARK, - ACTIONS(1336), 1, + ACTIONS(1612), 1, anon_sym_COMMA, - ACTIONS(1338), 1, + ACTIONS(1614), 1, anon_sym_RPAREN, - STATE(478), 1, + STATE(514), 1, aux_sym_parameter_type_list_repeat1, - [19781] = 5, + [21931] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(787), 1, - anon_sym_COLON, - ACTIONS(1316), 1, - anon_sym_LPAREN, - STATE(379), 1, - sym_parameter_list, - STATE(564), 1, - sym__type_annotation, - [19797] = 5, + ACTIONS(190), 1, + sym_reassignable, + ACTIONS(192), 1, + anon_sym_RPAREN, + ACTIONS(1578), 1, + sym_identifier, + STATE(517), 1, + sym_parameter_definition, + [21947] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(787), 1, - anon_sym_COLON, - ACTIONS(815), 1, + ACTIONS(1574), 1, anon_sym_LBRACE, - STATE(310), 1, - sym_block, - STATE(505), 1, - sym__type_annotation, - [19813] = 5, + ACTIONS(1616), 1, + anon_sym_COMMA, + STATE(122), 1, + sym_interface_implementation, + STATE(569), 1, + aux_sym_class_definition_repeat1, + [21963] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(787), 1, + ACTIONS(858), 1, anon_sym_COLON, - ACTIONS(815), 1, + ACTIONS(884), 1, anon_sym_LBRACE, - STATE(323), 1, + STATE(336), 1, sym_block, - STATE(559), 1, + STATE(589), 1, sym__type_annotation, - [19829] = 5, + [21979] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(787), 1, + ACTIONS(858), 1, anon_sym_COLON, - ACTIONS(815), 1, + ACTIONS(884), 1, anon_sym_LBRACE, - STATE(312), 1, + STATE(339), 1, sym_block, - STATE(549), 1, + STATE(586), 1, sym__type_annotation, - [19845] = 4, + [21995] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1342), 1, - anon_sym_COMMA, - STATE(406), 1, - aux_sym_array_literal_repeat1, - ACTIONS(1340), 2, + ACTIONS(1556), 1, + sym_identifier, + ACTIONS(1618), 1, anon_sym_RBRACE, - anon_sym_RBRACK, - [19859] = 5, + STATE(444), 2, + sym_struct_field, + aux_sym_struct_definition_repeat2, + [22009] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(787), 1, - anon_sym_COLON, - ACTIONS(815), 1, + ACTIONS(1545), 1, + sym_identifier, + ACTIONS(1574), 1, anon_sym_LBRACE, - STATE(351), 1, - sym_block, - STATE(545), 1, - sym__type_annotation, - [19875] = 4, + STATE(122), 1, + sym_interface_implementation, + STATE(579), 1, + sym_custom_type, + [22025] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1318), 1, + ACTIONS(1556), 1, sym_identifier, - ACTIONS(1345), 1, + ACTIONS(1618), 1, anon_sym_RBRACE, - STATE(398), 2, + STATE(496), 2, sym_struct_field, aux_sym_struct_definition_repeat2, - [19889] = 4, + [22039] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1318), 1, + ACTIONS(1620), 1, sym_identifier, - ACTIONS(1345), 1, + ACTIONS(1623), 1, anon_sym_RBRACE, - STATE(410), 2, + STATE(496), 2, sym_struct_field, aux_sym_struct_definition_repeat2, - [19903] = 4, + [22053] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1347), 1, + ACTIONS(1556), 1, sym_identifier, - ACTIONS(1350), 1, + ACTIONS(1588), 1, anon_sym_RBRACE, - STATE(410), 2, + STATE(453), 2, sym_struct_field, aux_sym_struct_definition_repeat2, - [19917] = 5, + [22067] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(185), 1, - sym_reassignable, - ACTIONS(1330), 1, + ACTIONS(47), 1, + anon_sym_DQUOTE, + ACTIONS(1505), 1, sym_identifier, - ACTIONS(1352), 1, + STATE(613), 1, + sym_map_literal_member, + STATE(691), 1, + sym_string, + [22083] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(858), 1, + anon_sym_COLON, + ACTIONS(1625), 1, + anon_sym_SEMI, + STATE(705), 1, + sym__type_annotation, + [22096] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1627), 1, + anon_sym_COMMA, + ACTIONS(1629), 1, anon_sym_RPAREN, - STATE(521), 1, - sym_parameter_definition, - [19933] = 4, + STATE(550), 1, + aux_sym_argument_list_repeat2, + [22109] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1318), 1, + ACTIONS(47), 1, + anon_sym_DQUOTE, + ACTIONS(1631), 1, sym_identifier, - ACTIONS(1354), 1, + STATE(610), 1, + sym_string, + [22122] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1633), 1, + anon_sym_COMMA, + ACTIONS(1635), 1, + anon_sym_RBRACK, + STATE(432), 1, + aux_sym_array_literal_repeat1, + [22135] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(858), 1, + anon_sym_COLON, + ACTIONS(1637), 1, + anon_sym_EQ_GT, + STATE(690), 1, + sym__type_annotation, + [22148] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1639), 1, anon_sym_RBRACE, - STATE(410), 2, - sym_struct_field, - aux_sym_struct_definition_repeat2, - [19947] = 4, + ACTIONS(1641), 1, + anon_sym_COMMA, + STATE(567), 1, + aux_sym_map_literal_repeat1, + [22161] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1318), 1, - sym_identifier, - ACTIONS(1354), 1, + ACTIONS(1643), 1, anon_sym_RBRACE, - STATE(390), 2, - sym_struct_field, - aux_sym_struct_definition_repeat2, - [19961] = 5, + ACTIONS(1645), 1, + anon_sym_COMMA, + STATE(528), 1, + aux_sym_map_literal_repeat1, + [22174] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(185), 1, - sym_reassignable, - ACTIONS(187), 1, + ACTIONS(1647), 1, + anon_sym_RBRACE, + ACTIONS(1649), 1, + anon_sym_COMMA, + STATE(432), 1, + aux_sym_array_literal_repeat1, + [22187] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(182), 1, anon_sym_RPAREN, - ACTIONS(1330), 1, + ACTIONS(1651), 1, + anon_sym_COMMA, + STATE(537), 1, + aux_sym_argument_list_repeat2, + [22200] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(182), 1, + anon_sym_RPAREN, + ACTIONS(1653), 1, + sym_identifier, + STATE(668), 1, + sym_keyword_argument, + [22213] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(182), 1, + anon_sym_RPAREN, + ACTIONS(1655), 1, + anon_sym_COMMA, + STATE(535), 1, + aux_sym_argument_list_repeat1, + [22226] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(182), 1, + anon_sym_RPAREN, + ACTIONS(1651), 1, + anon_sym_COMMA, + STATE(529), 1, + aux_sym_argument_list_repeat2, + [22239] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(190), 1, + sym_reassignable, + ACTIONS(1578), 1, sym_identifier, - STATE(433), 1, + STATE(643), 1, sym_parameter_definition, - [19977] = 5, + [22252] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(787), 1, + ACTIONS(858), 1, anon_sym_COLON, - ACTIONS(815), 1, - anon_sym_LBRACE, - STATE(328), 1, - sym_block, - STATE(522), 1, + ACTIONS(1657), 1, + anon_sym_EQ_GT, + STATE(682), 1, sym__type_annotation, - [19993] = 5, + [22265] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(787), 1, + ACTIONS(858), 1, anon_sym_COLON, - ACTIONS(815), 1, - anon_sym_LBRACE, - STATE(322), 1, - sym_block, - STATE(518), 1, + ACTIONS(1659), 1, + anon_sym_EQ, + STATE(730), 1, sym__type_annotation, - [20009] = 4, + [22278] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1356), 1, - anon_sym_RBRACE, - ACTIONS(1358), 1, + ACTIONS(531), 1, + anon_sym_RPAREN, + ACTIONS(1661), 1, anon_sym_COMMA, - STATE(445), 1, - aux_sym_enum_definition_repeat1, - [20022] = 2, + STATE(536), 1, + aux_sym_parameter_type_list_repeat1, + [22291] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1360), 3, + ACTIONS(1574), 1, anon_sym_LBRACE, - anon_sym_COLON, - anon_sym_EQ_GT, - [20031] = 3, + ACTIONS(1663), 1, + anon_sym_extends, + STATE(138), 1, + sym_interface_implementation, + [22304] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1653), 1, + sym_identifier, + ACTIONS(1665), 1, + anon_sym_RPAREN, + STATE(500), 1, + sym_keyword_argument, + [22317] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1667), 1, + anon_sym_COMMA, + ACTIONS(1669), 1, + anon_sym_RPAREN, + STATE(543), 1, + aux_sym_parameter_list_repeat1, + [22330] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1671), 1, + anon_sym_RBRACE, + ACTIONS(1673), 1, + anon_sym_COMMA, + STATE(524), 1, + aux_sym_struct_literal_repeat1, + [22343] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1675), 1, + sym_identifier, + ACTIONS(1677), 1, + anon_sym_RBRACE, + STATE(545), 1, + sym_struct_literal_member, + [22356] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1240), 1, - anon_sym_QMARK, - ACTIONS(1362), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - [20042] = 4, + ACTIONS(1671), 1, + anon_sym_RBRACE, + ACTIONS(1675), 1, + sym_identifier, + STATE(631), 1, + sym_struct_literal_member, + [22369] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(45), 1, - anon_sym_DQUOTE, - ACTIONS(1364), 1, - sym_identifier, - STATE(535), 1, - sym_string, - [20055] = 4, + ACTIONS(1665), 1, + anon_sym_RPAREN, + ACTIONS(1679), 1, + anon_sym_COMMA, + STATE(537), 1, + aux_sym_argument_list_repeat2, + [22382] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1362), 1, + ACTIONS(1665), 1, anon_sym_RPAREN, - ACTIONS(1366), 1, + ACTIONS(1679), 1, anon_sym_COMMA, - STATE(421), 1, - aux_sym_parameter_type_list_repeat1, - [20068] = 4, + STATE(571), 1, + aux_sym_argument_list_repeat2, + [22395] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(787), 1, - anon_sym_COLON, - ACTIONS(1369), 1, - anon_sym_EQ_GT, - STATE(591), 1, - sym__type_annotation, - [20081] = 4, + ACTIONS(1675), 1, + sym_identifier, + ACTIONS(1681), 1, + anon_sym_RBRACE, + STATE(631), 1, + sym_struct_literal_member, + [22408] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1371), 1, + ACTIONS(1683), 1, anon_sym_RBRACE, - ACTIONS(1373), 1, + ACTIONS(1685), 1, anon_sym_COMMA, - STATE(436), 1, - aux_sym_map_literal_repeat1, - [20094] = 4, + STATE(524), 1, + aux_sym_struct_literal_repeat1, + [22421] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(787), 1, - anon_sym_COLON, - ACTIONS(1375), 1, - anon_sym_EQ_GT, - STATE(577), 1, - sym__type_annotation, - [20107] = 4, + ACTIONS(1653), 1, + sym_identifier, + ACTIONS(1665), 1, + anon_sym_RPAREN, + STATE(668), 1, + sym_keyword_argument, + [22434] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(787), 1, - anon_sym_COLON, - ACTIONS(1377), 1, - anon_sym_EQ, - STATE(576), 1, - sym__type_annotation, - [20120] = 4, + ACTIONS(1688), 1, + anon_sym_RBRACE, + ACTIONS(1690), 1, + anon_sym_COMMA, + STATE(432), 1, + aux_sym_array_literal_repeat1, + [22447] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1379), 1, - sym_identifier, - ACTIONS(1381), 1, + ACTIONS(186), 1, anon_sym_RPAREN, - STATE(520), 1, + ACTIONS(1653), 1, + sym_identifier, + STATE(668), 1, sym_keyword_argument, - [20133] = 4, + [22460] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1381), 1, - anon_sym_RPAREN, - ACTIONS(1383), 1, + ACTIONS(1692), 1, + anon_sym_RBRACE, + ACTIONS(1694), 1, anon_sym_COMMA, - STATE(461), 1, - aux_sym_argument_list_repeat2, - [20146] = 4, + STATE(567), 1, + aux_sym_map_literal_repeat1, + [22473] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1381), 1, + ACTIONS(186), 1, anon_sym_RPAREN, - ACTIONS(1383), 1, + ACTIONS(1696), 1, anon_sym_COMMA, - STATE(457), 1, + STATE(537), 1, aux_sym_argument_list_repeat2, - [20159] = 4, + [22486] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1379), 1, + ACTIONS(1653), 1, sym_identifier, - ACTIONS(1381), 1, + ACTIONS(1698), 1, anon_sym_RPAREN, - STATE(463), 1, + STATE(668), 1, sym_keyword_argument, - [20172] = 4, + [22499] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1385), 1, - anon_sym_LBRACE, - ACTIONS(1387), 1, - anon_sym_extends, - STATE(118), 1, - sym_class_implementation, - [20185] = 4, + ACTIONS(186), 1, + anon_sym_RPAREN, + ACTIONS(1653), 1, + sym_identifier, + STATE(522), 1, + sym_keyword_argument, + [22512] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1389), 1, - anon_sym_LBRACE, - ACTIONS(1391), 1, - anon_sym_extends, - STATE(115), 1, - sym_resource_implementation, - [20198] = 2, + ACTIONS(186), 1, + anon_sym_RPAREN, + ACTIONS(1696), 1, + anon_sym_COMMA, + STATE(521), 1, + aux_sym_argument_list_repeat2, + [22525] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1393), 3, - anon_sym_LBRACE, + ACTIONS(858), 1, anon_sym_COLON, - anon_sym_EQ_GT, - [20207] = 4, + ACTIONS(1700), 1, + anon_sym_SEMI, + STATE(731), 1, + sym__type_annotation, + [22538] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1395), 1, + ACTIONS(1702), 1, + anon_sym_LBRACE, + ACTIONS(1704), 1, anon_sym_COMMA, - ACTIONS(1397), 1, - anon_sym_RPAREN, - STATE(440), 1, - aux_sym_parameter_list_repeat1, - [20220] = 4, + STATE(553), 1, + aux_sym_struct_definition_repeat1, + [22551] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1399), 1, - sym_identifier, - ACTIONS(1401), 1, - anon_sym_RBRACE, - STATE(443), 1, - sym_struct_literal_member, - [20233] = 4, + ACTIONS(1706), 1, + anon_sym_COMMA, + ACTIONS(1709), 1, + anon_sym_RPAREN, + STATE(535), 1, + aux_sym_argument_list_repeat1, + [22564] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1403), 1, - anon_sym_RBRACE, - ACTIONS(1405), 1, + ACTIONS(1711), 1, anon_sym_COMMA, - STATE(406), 1, - aux_sym_array_literal_repeat1, - [20246] = 4, + ACTIONS(1714), 1, + anon_sym_RPAREN, + STATE(536), 1, + aux_sym_parameter_type_list_repeat1, + [22577] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1407), 1, - anon_sym_RBRACE, - ACTIONS(1409), 1, + ACTIONS(1716), 1, anon_sym_COMMA, - STATE(450), 1, - aux_sym_map_literal_repeat1, - [20259] = 4, + ACTIONS(1719), 1, + anon_sym_RPAREN, + STATE(537), 1, + aux_sym_argument_list_repeat2, + [22590] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(787), 1, + ACTIONS(858), 1, anon_sym_COLON, - ACTIONS(1411), 1, + ACTIONS(1721), 1, anon_sym_EQ, - STATE(590), 1, + STATE(713), 1, sym__type_annotation, - [20272] = 4, + [22603] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(815), 1, + ACTIONS(884), 1, anon_sym_LBRACE, - ACTIONS(1413), 1, + ACTIONS(1723), 1, sym_identifier, STATE(91), 1, sym_block, - [20285] = 2, + [22616] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1415), 3, - anon_sym_LBRACE, - anon_sym_COLON, - anon_sym_EQ_GT, - [20294] = 4, + ACTIONS(1441), 1, + anon_sym_QMARK, + ACTIONS(1714), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + [22627] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1352), 1, - anon_sym_RPAREN, - ACTIONS(1417), 1, + ACTIONS(1725), 1, anon_sym_COMMA, - STATE(456), 1, + ACTIONS(1728), 1, + anon_sym_RPAREN, + STATE(541), 1, aux_sym_parameter_list_repeat1, - [20307] = 4, + [22640] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1379), 1, - sym_identifier, - ACTIONS(1419), 1, + ACTIONS(1730), 1, + anon_sym_RBRACE, + ACTIONS(1732), 1, + anon_sym_COMMA, + STATE(559), 1, + aux_sym_enum_definition_repeat1, + [22653] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1580), 1, anon_sym_RPAREN, - STATE(520), 1, - sym_keyword_argument, - [20320] = 4, + ACTIONS(1734), 1, + anon_sym_COMMA, + STATE(541), 1, + aux_sym_parameter_list_repeat1, + [22666] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1421), 1, + ACTIONS(1736), 1, anon_sym_COMMA, - ACTIONS(1423), 1, + ACTIONS(1738), 1, anon_sym_RBRACK, - STATE(406), 1, + STATE(432), 1, aux_sym_array_literal_repeat1, - [20333] = 4, + [22679] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1425), 1, + ACTIONS(1740), 1, anon_sym_RBRACE, - ACTIONS(1427), 1, + ACTIONS(1742), 1, anon_sym_COMMA, - STATE(458), 1, + STATE(518), 1, aux_sym_struct_literal_repeat1, - [20346] = 4, + [22692] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1379), 1, + ACTIONS(1653), 1, sym_identifier, - ACTIONS(1429), 1, + ACTIONS(1744), 1, anon_sym_RPAREN, - STATE(469), 1, + STATE(510), 1, sym_keyword_argument, - [20359] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1431), 1, - anon_sym_RBRACE, - ACTIONS(1433), 1, - anon_sym_COMMA, - STATE(445), 1, - aux_sym_enum_definition_repeat1, - [20372] = 4, + [22705] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1429), 1, + ACTIONS(1744), 1, anon_sym_RPAREN, - ACTIONS(1436), 1, + ACTIONS(1746), 1, anon_sym_COMMA, - STATE(467), 1, + STATE(509), 1, aux_sym_argument_list_repeat1, - [20385] = 4, + [22718] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1429), 1, + ACTIONS(1744), 1, anon_sym_RPAREN, - ACTIONS(1438), 1, + ACTIONS(1748), 1, anon_sym_COMMA, - STATE(476), 1, + STATE(507), 1, aux_sym_argument_list_repeat2, - [20398] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1440), 1, - anon_sym_LBRACE, - ACTIONS(1442), 1, - anon_sym_COMMA, - STATE(448), 1, - aux_sym_struct_definition_repeat1, - [20411] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1445), 1, - anon_sym_RBRACE, - ACTIONS(1447), 1, - anon_sym_COMMA, - STATE(472), 1, - aux_sym_map_literal_repeat1, - [20424] = 4, + [22731] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1449), 1, + ACTIONS(1750), 1, anon_sym_RBRACE, - ACTIONS(1451), 1, + ACTIONS(1752), 1, anon_sym_COMMA, - STATE(450), 1, + STATE(504), 1, aux_sym_map_literal_repeat1, - [20437] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1454), 1, - anon_sym_LBRACE, - ACTIONS(1456), 1, - anon_sym_COMMA, - STATE(466), 1, - aux_sym_struct_definition_repeat1, - [20450] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1458), 1, - anon_sym_RBRACE, - ACTIONS(1460), 1, - anon_sym_COMMA, - STATE(417), 1, - aux_sym_enum_definition_repeat1, - [20463] = 4, + [22744] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1462), 1, + ACTIONS(1754), 1, anon_sym_COMMA, - ACTIONS(1464), 1, + ACTIONS(1756), 1, anon_sym_RPAREN, - STATE(457), 1, + STATE(537), 1, aux_sym_argument_list_repeat2, - [20476] = 4, + [22757] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1379), 1, + ACTIONS(1653), 1, sym_identifier, - ACTIONS(1464), 1, + ACTIONS(1756), 1, anon_sym_RPAREN, - STATE(520), 1, + STATE(668), 1, sym_keyword_argument, - [20489] = 2, + [22770] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1466), 3, - anon_sym_LBRACE, + ACTIONS(858), 1, anon_sym_COLON, - anon_sym_EQ_GT, - [20498] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1468), 1, - anon_sym_COMMA, - ACTIONS(1471), 1, - anon_sym_RPAREN, - STATE(456), 1, - aux_sym_parameter_list_repeat1, - [20511] = 4, + ACTIONS(1758), 1, + anon_sym_SEMI, + STATE(723), 1, + sym__type_annotation, + [22783] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1473), 1, + ACTIONS(1760), 1, + anon_sym_LBRACE, + ACTIONS(1762), 1, anon_sym_COMMA, - ACTIONS(1476), 1, - anon_sym_RPAREN, - STATE(457), 1, - aux_sym_argument_list_repeat2, - [20524] = 4, + STATE(553), 1, + aux_sym_struct_definition_repeat1, + [22796] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1478), 1, - anon_sym_RBRACE, - ACTIONS(1480), 1, - anon_sym_COMMA, - STATE(473), 1, - aux_sym_struct_literal_repeat1, - [20537] = 4, + ACTIONS(858), 1, + anon_sym_COLON, + ACTIONS(1765), 1, + anon_sym_SEMI, + STATE(700), 1, + sym__type_annotation, + [22809] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1482), 1, - anon_sym_COMMA, - ACTIONS(1485), 1, - anon_sym_RPAREN, - STATE(459), 1, - aux_sym_argument_list_repeat1, - [20550] = 4, + ACTIONS(858), 1, + anon_sym_COLON, + ACTIONS(1767), 1, + anon_sym_SEMI, + STATE(684), 1, + sym__type_annotation, + [22822] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1379), 1, - sym_identifier, - ACTIONS(1487), 1, - anon_sym_RPAREN, - STATE(520), 1, - sym_keyword_argument, - [20563] = 4, + ACTIONS(858), 1, + anon_sym_COLON, + ACTIONS(1769), 1, + anon_sym_SEMI, + STATE(698), 1, + sym__type_annotation, + [22835] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1487), 1, - anon_sym_RPAREN, - ACTIONS(1489), 1, - anon_sym_COMMA, - STATE(457), 1, - aux_sym_argument_list_repeat2, - [20576] = 4, + ACTIONS(858), 1, + anon_sym_COLON, + ACTIONS(1771), 1, + anon_sym_SEMI, + STATE(685), 1, + sym__type_annotation, + [22848] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(173), 1, - anon_sym_RPAREN, - ACTIONS(1491), 1, - anon_sym_COMMA, - STATE(428), 1, - aux_sym_argument_list_repeat2, - [20589] = 4, + ACTIONS(858), 1, + anon_sym_COLON, + ACTIONS(1773), 1, + anon_sym_SEMI, + STATE(695), 1, + sym__type_annotation, + [22861] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1487), 1, - anon_sym_RPAREN, - ACTIONS(1489), 1, + ACTIONS(1775), 1, + anon_sym_RBRACE, + ACTIONS(1777), 1, anon_sym_COMMA, - STATE(453), 1, - aux_sym_argument_list_repeat2, - [20602] = 4, + STATE(559), 1, + aux_sym_enum_definition_repeat1, + [22874] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(173), 1, - anon_sym_RPAREN, - ACTIONS(1379), 1, - sym_identifier, - STATE(427), 1, - sym_keyword_argument, - [20615] = 4, + ACTIONS(858), 1, + anon_sym_COLON, + ACTIONS(1780), 1, + anon_sym_SEMI, + STATE(701), 1, + sym__type_annotation, + [22887] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1399), 1, - sym_identifier, - ACTIONS(1478), 1, - anon_sym_RBRACE, - STATE(492), 1, - sym_struct_literal_member, - [20628] = 4, + ACTIONS(1554), 1, + anon_sym_LBRACE, + ACTIONS(1782), 1, + anon_sym_impl, + STATE(144), 1, + sym_class_implementation, + [22900] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1493), 1, + ACTIONS(1784), 1, anon_sym_LBRACE, - ACTIONS(1495), 1, + ACTIONS(1786), 1, anon_sym_COMMA, - STATE(448), 1, + STATE(534), 1, aux_sym_struct_definition_repeat1, - [20641] = 4, + [22913] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(858), 1, + anon_sym_COLON, + ACTIONS(1788), 1, + anon_sym_SEMI, + STATE(696), 1, + sym__type_annotation, + [22926] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(858), 1, + anon_sym_COLON, + ACTIONS(1790), 1, + anon_sym_SEMI, + STATE(694), 1, + sym__type_annotation, + [22939] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(858), 1, + anon_sym_COLON, + ACTIONS(1792), 1, + anon_sym_SEMI, + STATE(692), 1, + sym__type_annotation, + [22952] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(177), 1, - anon_sym_RPAREN, - ACTIONS(1497), 1, - anon_sym_COMMA, - STATE(459), 1, - aux_sym_argument_list_repeat1, - [20654] = 4, + ACTIONS(1541), 1, + anon_sym_LBRACE, + ACTIONS(1794), 1, + anon_sym_impl, + STATE(146), 1, + sym_resource_implementation, + [22965] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(173), 1, - anon_sym_RPAREN, - ACTIONS(1491), 1, + ACTIONS(1796), 1, + anon_sym_RBRACE, + ACTIONS(1798), 1, anon_sym_COMMA, - STATE(457), 1, - aux_sym_argument_list_repeat2, - [20667] = 4, + STATE(567), 1, + aux_sym_map_literal_repeat1, + [22978] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(177), 1, - anon_sym_RPAREN, - ACTIONS(1499), 1, + ACTIONS(1801), 1, + anon_sym_RBRACE, + ACTIONS(1803), 1, anon_sym_COMMA, - STATE(468), 1, - aux_sym_argument_list_repeat2, - [20680] = 4, + STATE(542), 1, + aux_sym_enum_definition_repeat1, + [22991] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1501), 1, + ACTIONS(1805), 1, + anon_sym_LBRACE, + ACTIONS(1807), 1, anon_sym_COMMA, - ACTIONS(1503), 1, - anon_sym_RBRACK, - STATE(406), 1, - aux_sym_array_literal_repeat1, - [20693] = 4, + STATE(569), 1, + aux_sym_class_definition_repeat1, + [23004] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(173), 1, + ACTIONS(1629), 1, anon_sym_RPAREN, - ACTIONS(1379), 1, + ACTIONS(1653), 1, sym_identifier, - STATE(520), 1, + STATE(668), 1, sym_keyword_argument, - [20706] = 4, + [23017] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1505), 1, - anon_sym_RBRACE, - ACTIONS(1507), 1, + ACTIONS(1627), 1, anon_sym_COMMA, - STATE(450), 1, - aux_sym_map_literal_repeat1, - [20719] = 4, + ACTIONS(1629), 1, + anon_sym_RPAREN, + STATE(537), 1, + aux_sym_argument_list_repeat2, + [23030] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1509), 1, - anon_sym_RBRACE, - ACTIONS(1511), 1, + ACTIONS(1709), 2, anon_sym_COMMA, - STATE(473), 1, - aux_sym_struct_literal_repeat1, - [20732] = 4, + anon_sym_RPAREN, + [23038] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1514), 1, - anon_sym_RBRACE, - ACTIONS(1516), 1, - anon_sym_COMMA, - STATE(406), 1, - aux_sym_array_literal_repeat1, - [20745] = 4, + ACTIONS(858), 1, + anon_sym_COLON, + STATE(640), 1, + sym__type_annotation, + [23048] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1399), 1, + ACTIONS(1547), 1, + anon_sym_LPAREN, + STATE(552), 1, + sym_parameter_list, + [23058] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1810), 1, sym_identifier, - ACTIONS(1518), 1, - anon_sym_RBRACE, - STATE(492), 1, - sym_struct_literal_member, - [20758] = 4, + ACTIONS(1812), 1, + sym_reassignable, + [23068] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(177), 1, - anon_sym_RPAREN, - ACTIONS(1499), 1, - anon_sym_COMMA, - STATE(457), 1, - aux_sym_argument_list_repeat2, - [20771] = 4, + ACTIONS(622), 1, + anon_sym_LPAREN, + STATE(244), 1, + sym_argument_list, + [23078] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(177), 1, - anon_sym_RPAREN, - ACTIONS(1379), 1, + ACTIONS(884), 1, + anon_sym_LBRACE, + STATE(98), 1, + sym_block, + [23088] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1814), 1, sym_identifier, - STATE(520), 1, - sym_keyword_argument, - [20784] = 4, + ACTIONS(1816), 1, + sym_reassignable, + [23098] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(448), 1, - anon_sym_RPAREN, - ACTIONS(1520), 1, + ACTIONS(1805), 2, + anon_sym_LBRACE, anon_sym_COMMA, - STATE(421), 1, - aux_sym_parameter_type_list_repeat1, - [20797] = 4, + [23106] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(185), 1, - sym_reassignable, - ACTIONS(1330), 1, + ACTIONS(1818), 1, sym_identifier, - STATE(521), 1, - sym_parameter_definition, - [20810] = 3, + ACTIONS(1820), 1, + sym_reassignable, + [23116] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1522), 1, - anon_sym_SEMI, - ACTIONS(1524), 1, - anon_sym_EQ, - [20820] = 3, + ACTIONS(884), 1, + anon_sym_LBRACE, + STATE(87), 1, + sym_block, + [23126] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1526), 1, - anon_sym_SEMI, - ACTIONS(1528), 1, - anon_sym_EQ, - [20830] = 3, + ACTIONS(884), 1, + anon_sym_LBRACE, + STATE(128), 1, + sym_block, + [23136] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1530), 1, - anon_sym_SEMI, - ACTIONS(1532), 1, - anon_sym_EQ, - [20840] = 2, + ACTIONS(1547), 1, + anon_sym_LPAREN, + STATE(483), 1, + sym_parameter_list, + [23146] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1485), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - [20848] = 3, + ACTIONS(1822), 1, + sym_identifier, + ACTIONS(1824), 1, + sym_reassignable, + [23156] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(815), 1, + ACTIONS(884), 1, anon_sym_LBRACE, - STATE(297), 1, + STATE(96), 1, sym_block, - [20858] = 3, + [23166] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1534), 1, - anon_sym_SEMI, - ACTIONS(1536), 1, - anon_sym_EQ, - [20868] = 3, + ACTIONS(884), 1, + anon_sym_LBRACE, + STATE(357), 1, + sym_block, + [23176] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1826), 1, + anon_sym_LT, + STATE(390), 1, + sym__container_value_type, + [23186] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1820), 1, + sym_reassignable, + ACTIONS(1828), 1, + sym_identifier, + [23196] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(884), 1, + anon_sym_LBRACE, + STATE(360), 1, + sym_block, + [23206] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1538), 1, + ACTIONS(1830), 1, anon_sym_SEMI, - ACTIONS(1540), 1, + ACTIONS(1832), 1, anon_sym_EQ, - [20878] = 3, + [23216] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(787), 1, + ACTIONS(858), 1, anon_sym_COLON, - STATE(512), 1, + STATE(671), 1, sym__type_annotation, - [20888] = 3, + [23226] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1316), 1, + ACTIONS(1826), 1, + anon_sym_LT, + STATE(366), 1, + sym__container_value_type, + [23236] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1547), 1, anon_sym_LPAREN, - STATE(407), 1, + STATE(618), 1, sym_parameter_list, - [20898] = 3, + [23246] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1542), 1, + ACTIONS(1834), 1, anon_sym_SEMI, - ACTIONS(1544), 1, + ACTIONS(1836), 1, anon_sym_EQ, - [20908] = 3, + [23256] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1546), 1, - anon_sym_SEMI, - ACTIONS(1548), 1, - anon_sym_EQ, - [20918] = 3, + ACTIONS(858), 1, + anon_sym_COLON, + STATE(603), 1, + sym__type_annotation, + [23266] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(787), 1, + ACTIONS(858), 1, anon_sym_COLON, - STATE(523), 1, + STATE(634), 1, sym__type_annotation, - [20928] = 2, + [23276] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1509), 2, - anon_sym_RBRACE, - anon_sym_COMMA, - [20936] = 3, + ACTIONS(1838), 1, + anon_sym_LBRACE, + ACTIONS(1840), 1, + anon_sym_LBRACK, + [23286] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1842), 1, + anon_sym_SEMI, + ACTIONS(1844), 1, + anon_sym_EQ, + [23296] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(815), 1, + ACTIONS(884), 1, anon_sym_LBRACE, - STATE(121), 1, + STATE(359), 1, sym_block, - [20946] = 3, + [23306] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1550), 1, - sym_identifier, - ACTIONS(1552), 1, - sym_reassignable, - [20956] = 3, + ACTIONS(858), 1, + anon_sym_COLON, + STATE(683), 1, + sym__type_annotation, + [23316] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, - anon_sym_LPAREN, - STATE(224), 1, - sym_argument_list, - [20966] = 3, + ACTIONS(884), 1, + anon_sym_LBRACE, + STATE(349), 1, + sym_block, + [23326] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1554), 1, - sym_identifier, - ACTIONS(1556), 1, - sym_reassignable, - [20976] = 3, + ACTIONS(1846), 1, + anon_sym_SEMI, + ACTIONS(1848), 1, + anon_sym_EQ, + [23336] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(815), 1, - anon_sym_LBRACE, - STATE(88), 1, - sym_block, - [20986] = 3, + ACTIONS(1850), 1, + anon_sym_SEMI, + ACTIONS(1852), 1, + anon_sym_EQ, + [23346] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1854), 1, + anon_sym_SEMI, + ACTIONS(1856), 1, + anon_sym_EQ, + [23356] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1316), 1, + ACTIONS(1547), 1, anon_sym_LPAREN, - STATE(394), 1, + STATE(492), 1, sym_parameter_list, - [20996] = 3, + [23366] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(815), 1, - anon_sym_LBRACE, - STATE(321), 1, - sym_block, - [21006] = 3, + ACTIONS(858), 1, + anon_sym_COLON, + STATE(659), 1, + sym__type_annotation, + [23376] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1558), 1, + ACTIONS(1858), 1, sym_identifier, - ACTIONS(1560), 1, - sym_reassignable, - [21016] = 3, + ACTIONS(1860), 1, + anon_sym_LBRACE, + [23386] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(815), 1, + ACTIONS(884), 1, anon_sym_LBRACE, - STATE(333), 1, + STATE(364), 1, sym_block, - [21026] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1562), 1, - anon_sym_LT, - STATE(358), 1, - sym__container_value_type, - [21036] = 3, + [23396] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1562), 1, - anon_sym_LT, - STATE(298), 1, - sym__container_value_type, - [21046] = 3, + ACTIONS(1862), 1, + anon_sym_LBRACE, + STATE(230), 1, + sym_block, + [23406] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(787), 1, - anon_sym_COLON, - STATE(540), 1, - sym__type_annotation, - [21056] = 3, + ACTIONS(1864), 1, + anon_sym_as, + ACTIONS(1866), 1, + anon_sym_SEMI, + [23416] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(815), 1, + ACTIONS(884), 1, anon_sym_LBRACE, - STATE(335), 1, + STATE(368), 1, sym_block, - [21066] = 3, + [23426] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1564), 1, + ACTIONS(1868), 1, anon_sym_SEMI, - ACTIONS(1566), 1, + ACTIONS(1870), 1, anon_sym_EQ, - [21076] = 3, + [23436] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1568), 1, + ACTIONS(1872), 2, + anon_sym_RBRACE, + anon_sym_COMMA, + [23444] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1874), 1, anon_sym_SEMI, - ACTIONS(1570), 1, + ACTIONS(1876), 1, anon_sym_EQ, - [21086] = 3, + [23454] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1356), 1, - anon_sym_RBRACE, - ACTIONS(1572), 1, - sym_identifier, - [21096] = 3, + ACTIONS(1878), 1, + anon_sym_SEMI, + ACTIONS(1880), 1, + anon_sym_EQ, + [23464] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1493), 1, + ACTIONS(884), 1, anon_sym_LBRACE, - ACTIONS(1574), 1, + STATE(314), 1, + sym_block, + [23474] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1882), 1, sym_identifier, - [21106] = 3, + ACTIONS(1884), 1, + sym_reassignable, + [23484] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(884), 1, + anon_sym_LBRACE, + STATE(331), 1, + sym_block, + [23494] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1886), 1, + anon_sym_LBRACE, + ACTIONS(1888), 1, + anon_sym_extends, + [23504] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1316), 1, + ACTIONS(1547), 1, anon_sym_LPAREN, - STATE(382), 1, + STATE(440), 1, sym_parameter_list, - [21116] = 3, + [23514] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(815), 1, - anon_sym_LBRACE, - STATE(292), 1, - sym_block, - [21126] = 3, + ACTIONS(1653), 1, + sym_identifier, + STATE(668), 1, + sym_keyword_argument, + [23524] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1576), 1, + ACTIONS(1890), 1, anon_sym_SEMI, - ACTIONS(1578), 1, + ACTIONS(1892), 1, anon_sym_EQ, - [21136] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1580), 1, - anon_sym_LBRACE, - ACTIONS(1582), 1, - anon_sym_LBRACK, - [21146] = 3, + [23534] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(787), 1, + ACTIONS(858), 1, anon_sym_COLON, - STATE(481), 1, + STATE(615), 1, sym__type_annotation, - [21156] = 3, + [23544] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(787), 1, - anon_sym_COLON, - STATE(482), 1, - sym__type_annotation, - [21166] = 3, + ACTIONS(1894), 1, + sym_identifier, + ACTIONS(1896), 1, + anon_sym_RBRACE, + [23554] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1898), 2, + anon_sym_RBRACE, + anon_sym_COMMA, + [23562] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(787), 1, + ACTIONS(858), 1, anon_sym_COLON, - STATE(550), 1, + STATE(590), 1, sym__type_annotation, - [21176] = 3, + [23572] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1399), 1, + ACTIONS(1547), 1, + anon_sym_LPAREN, + STATE(558), 1, + sym_parameter_list, + [23582] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1884), 1, + sym_reassignable, + ACTIONS(1900), 1, sym_identifier, - STATE(492), 1, - sym_struct_literal_member, - [21186] = 3, + [23592] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(815), 1, + ACTIONS(884), 1, anon_sym_LBRACE, - STATE(311), 1, + STATE(342), 1, sym_block, - [21196] = 3, + [23602] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(45), 1, - anon_sym_DQUOTE, - STATE(156), 1, - sym_string, - [21206] = 2, + ACTIONS(622), 1, + anon_sym_LPAREN, + STATE(160), 1, + sym_argument_list, + [23612] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1476), 2, + ACTIONS(1683), 2, + anon_sym_RBRACE, anon_sym_COMMA, - anon_sym_RPAREN, - [21214] = 2, + [23620] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1471), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - [21222] = 3, + ACTIONS(884), 1, + anon_sym_LBRACE, + STATE(315), 1, + sym_block, + [23630] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(815), 1, + ACTIONS(1902), 1, + sym_identifier, + ACTIONS(1904), 1, anon_sym_LBRACE, - STATE(295), 1, - sym_block, - [21232] = 3, + [23640] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1584), 1, + ACTIONS(1906), 1, anon_sym_SEMI, - ACTIONS(1586), 1, + ACTIONS(1908), 1, anon_sym_EQ, - [21242] = 3, + [23650] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1702), 1, + anon_sym_LBRACE, + ACTIONS(1902), 1, + sym_identifier, + [23660] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(815), 1, + ACTIONS(1862), 1, anon_sym_LBRACE, - STATE(304), 1, + STATE(201), 1, sym_block, - [21252] = 2, + [23670] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1588), 2, - anon_sym_RBRACE, + ACTIONS(1824), 1, + sym_reassignable, + ACTIONS(1910), 1, sym_identifier, - [21260] = 3, + [23680] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(787), 1, - anon_sym_COLON, - STATE(506), 1, - sym__type_annotation, - [21270] = 2, + ACTIONS(1862), 1, + anon_sym_LBRACE, + STATE(238), 1, + sym_block, + [23690] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1760), 2, + anon_sym_LBRACE, + anon_sym_COMMA, + [23698] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1590), 2, + ACTIONS(1912), 2, anon_sym_COMMA, anon_sym_RPAREN, - [21278] = 3, + [23706] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1547), 1, + anon_sym_LPAREN, + STATE(563), 1, + sym_parameter_list, + [23716] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(815), 1, + ACTIONS(884), 1, anon_sym_LBRACE, STATE(90), 1, sym_block, - [21288] = 3, + [23726] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(815), 1, - anon_sym_LBRACE, - STATE(101), 1, - sym_block, - [21298] = 3, + ACTIONS(1728), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + [23734] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1389), 1, + ACTIONS(1840), 1, + anon_sym_LBRACK, + ACTIONS(1914), 1, anon_sym_LBRACE, - STATE(123), 1, - sym_resource_implementation, - [21308] = 3, + [23744] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1385), 1, - anon_sym_LBRACE, - STATE(109), 1, - sym_class_implementation, - [21318] = 3, + ACTIONS(1916), 1, + anon_sym_SEMI, + ACTIONS(1918), 1, + anon_sym_EQ, + [23754] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1592), 1, + ACTIONS(1920), 2, + anon_sym_RBRACE, sym_identifier, - ACTIONS(1594), 1, - sym_reassignable, - [21328] = 3, + [23762] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(787), 1, - anon_sym_COLON, - STATE(485), 1, - sym__type_annotation, - [21338] = 3, + ACTIONS(1441), 1, + anon_sym_QMARK, + ACTIONS(1922), 1, + anon_sym_GT, + [23772] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1316), 1, + ACTIONS(523), 1, anon_sym_LPAREN, - STATE(499), 1, - sym_parameter_list, - [21348] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1596), 1, - anon_sym_as, - ACTIONS(1598), 1, - anon_sym_SEMI, - [21358] = 3, + STATE(380), 1, + sym_parameter_type_list, + [23782] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1600), 1, - anon_sym_LBRACE, - ACTIONS(1602), 1, - anon_sym_extends, - [21368] = 2, + ACTIONS(47), 1, + anon_sym_DQUOTE, + STATE(175), 1, + sym_string, + [23792] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1440), 2, - anon_sym_LBRACE, - anon_sym_COMMA, - [21376] = 3, + ACTIONS(1545), 1, + sym_identifier, + STATE(579), 1, + sym_custom_type, + [23802] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1604), 1, - anon_sym_SEMI, - ACTIONS(1606), 1, - anon_sym_EQ, - [21386] = 3, + ACTIONS(1812), 1, + sym_reassignable, + ACTIONS(1924), 1, + sym_identifier, + [23812] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(787), 1, - anon_sym_COLON, - STATE(596), 1, - sym__type_annotation, - [21396] = 3, + ACTIONS(1545), 1, + sym_identifier, + STATE(454), 1, + sym_custom_type, + [23822] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1608), 1, - anon_sym_SEMI, - ACTIONS(1610), 1, - anon_sym_EQ, - [21406] = 3, + ACTIONS(1547), 1, + anon_sym_LPAREN, + STATE(557), 1, + sym_parameter_list, + [23832] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1612), 1, + ACTIONS(884), 1, anon_sym_LBRACE, - STATE(173), 1, + STATE(343), 1, sym_block, - [21416] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1574), 1, - sym_identifier, - ACTIONS(1614), 1, - anon_sym_LBRACE, - [21426] = 2, + [23842] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1616), 2, - anon_sym_RBRACE, + ACTIONS(1926), 2, anon_sym_COMMA, - [21434] = 3, + anon_sym_RPAREN, + [23850] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1379), 1, + ACTIONS(1545), 1, sym_identifier, - STATE(520), 1, - sym_keyword_argument, - [21444] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(815), 1, - anon_sym_LBRACE, - STATE(334), 1, - sym_block, - [21454] = 3, + STATE(459), 1, + sym_custom_type, + [23860] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(815), 1, + ACTIONS(884), 1, anon_sym_LBRACE, - STATE(301), 1, + STATE(97), 1, sym_block, - [21464] = 3, + [23870] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1612), 1, + ACTIONS(884), 1, anon_sym_LBRACE, - STATE(185), 1, + STATE(320), 1, sym_block, - [21474] = 3, + [23880] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(815), 1, - anon_sym_LBRACE, - STATE(318), 1, - sym_block, - [21484] = 3, + ACTIONS(1928), 1, + anon_sym_SEMI, + ACTIONS(1930), 1, + anon_sym_EQ, + [23890] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(815), 1, + ACTIONS(884), 1, anon_sym_LBRACE, - STATE(308), 1, + STATE(108), 1, sym_block, - [21494] = 3, + [23900] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1618), 1, - anon_sym_SEMI, - ACTIONS(1620), 1, - anon_sym_EQ, - [21504] = 2, + ACTIONS(1545), 1, + sym_identifier, + STATE(456), 1, + sym_custom_type, + [23910] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1622), 2, - anon_sym_RBRACE, - anon_sym_COMMA, - [21512] = 3, + ACTIONS(1545), 1, + sym_identifier, + STATE(449), 1, + sym_custom_type, + [23920] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1572), 1, + ACTIONS(1545), 1, sym_identifier, - ACTIONS(1624), 1, - anon_sym_RBRACE, - [21522] = 3, + STATE(566), 1, + sym_custom_type, + [23930] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(815), 1, - anon_sym_LBRACE, - STATE(120), 1, - sym_block, - [21532] = 3, + ACTIONS(1545), 1, + sym_identifier, + STATE(448), 1, + sym_custom_type, + [23940] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1626), 1, + ACTIONS(1545), 1, sym_identifier, - ACTIONS(1628), 1, - sym_reassignable, - [21542] = 3, + STATE(561), 1, + sym_custom_type, + [23950] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1630), 1, - anon_sym_SEMI, - ACTIONS(1632), 1, - anon_sym_EQ, - [21552] = 3, + ACTIONS(858), 1, + anon_sym_COLON, + STATE(612), 1, + sym__type_annotation, + [23960] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1240), 1, - anon_sym_QMARK, - ACTIONS(1634), 1, - anon_sym_GT, - [21562] = 3, + ACTIONS(1730), 1, + anon_sym_RBRACE, + ACTIONS(1894), 1, + sym_identifier, + [23970] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(815), 1, - anon_sym_LBRACE, - STATE(126), 1, - sym_block, - [21572] = 3, + ACTIONS(1719), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + [23978] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(446), 1, - anon_sym_LPAREN, - STATE(356), 1, - sym_parameter_type_list, - [21582] = 3, + ACTIONS(1932), 1, + anon_sym_SEMI, + ACTIONS(1934), 1, + anon_sym_EQ, + [23988] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(815), 1, + ACTIONS(884), 1, anon_sym_LBRACE, - STATE(293), 1, + STATE(317), 1, sym_block, - [21592] = 3, + [23998] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1936), 1, + anon_sym_SEMI, + ACTIONS(1938), 1, + anon_sym_EQ, + [24008] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(549), 1, + ACTIONS(1547), 1, anon_sym_LPAREN, - STATE(142), 1, - sym_argument_list, - [21602] = 3, + STATE(436), 1, + sym_parameter_list, + [24018] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(787), 1, + ACTIONS(858), 1, anon_sym_COLON, - STATE(527), 1, + STATE(655), 1, sym__type_annotation, - [21612] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1636), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - [21620] = 3, + [24028] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(815), 1, + ACTIONS(1862), 1, anon_sym_LBRACE, - STATE(92), 1, + STATE(220), 1, sym_block, - [21630] = 3, + [24038] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(858), 1, + anon_sym_COLON, + STATE(602), 1, + sym__type_annotation, + [24048] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1638), 1, + ACTIONS(1940), 1, anon_sym_SEMI, - ACTIONS(1640), 1, + ACTIONS(1942), 1, anon_sym_EQ, - [21640] = 3, + [24058] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1642), 1, + ACTIONS(1675), 1, sym_identifier, - STATE(530), 1, - sym_custom_type, - [21650] = 3, + STATE(631), 1, + sym_struct_literal_member, + [24068] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1642), 1, + ACTIONS(1944), 1, sym_identifier, - STATE(531), 1, - sym_custom_type, - [21660] = 3, + ACTIONS(1946), 1, + anon_sym_RBRACE, + [24078] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1316), 1, + ACTIONS(1547), 1, anon_sym_LPAREN, - STATE(416), 1, + STATE(512), 1, sym_parameter_list, - [21670] = 3, + [24088] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1316), 1, - anon_sym_LPAREN, - STATE(424), 1, - sym_parameter_list, - [21680] = 3, + ACTIONS(1948), 1, + anon_sym_LBRACE, + [24095] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1644), 1, - sym_identifier, - ACTIONS(1646), 1, - anon_sym_RBRACE, - [21690] = 3, + ACTIONS(1950), 1, + anon_sym_SEMI, + [24102] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1648), 1, - sym_identifier, - ACTIONS(1650), 1, - anon_sym_LBRACE, - [21700] = 3, + ACTIONS(1952), 1, + anon_sym_EQ_GT, + [24109] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1612), 1, - anon_sym_LBRACE, - STATE(188), 1, - sym_block, - [21710] = 3, + ACTIONS(1954), 1, + anon_sym_SEMI, + [24116] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1582), 1, - anon_sym_LBRACK, - ACTIONS(1652), 1, - anon_sym_LBRACE, - [21720] = 3, + ACTIONS(1956), 1, + anon_sym_SEMI, + [24123] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1612), 1, - anon_sym_LBRACE, - STATE(216), 1, - sym_block, - [21730] = 3, + ACTIONS(1958), 1, + anon_sym_SEMI, + [24130] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(787), 1, - anon_sym_COLON, - STATE(562), 1, - sym__type_annotation, - [21740] = 2, + ACTIONS(1960), 1, + sym_identifier, + [24137] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1654), 1, + ACTIONS(1962), 1, sym_identifier, - [21747] = 2, + [24144] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1656), 1, - anon_sym_EQ, - [21754] = 2, + ACTIONS(1964), 1, + anon_sym_COLON, + [24151] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1658), 1, + ACTIONS(1966), 1, + sym_identifier, + [24158] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1968), 1, anon_sym_EQ_GT, - [21761] = 2, + [24165] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1660), 1, - sym_identifier, - [21768] = 2, + ACTIONS(860), 1, + anon_sym_COLON, + [24172] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1662), 1, - sym_identifier, - [21775] = 2, + ACTIONS(1970), 1, + anon_sym_SEMI, + [24179] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1574), 1, + ACTIONS(1972), 1, sym_identifier, - [21782] = 2, + [24186] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1572), 1, - sym_identifier, - [21789] = 2, + ACTIONS(1974), 1, + anon_sym_SEMI, + [24193] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1664), 1, - anon_sym_COLON, - [21796] = 2, + ACTIONS(1976), 1, + anon_sym_SEMI, + [24200] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1978), 1, + anon_sym_SEMI, + [24207] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1666), 1, + ACTIONS(1980), 1, sym_identifier, - [21803] = 2, + [24214] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1668), 1, + ACTIONS(1982), 1, + anon_sym_SEMI, + [24221] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1984), 1, sym_identifier, - [21810] = 2, + [24228] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1986), 1, + anon_sym_SEMI, + [24235] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1988), 1, + anon_sym_SEMI, + [24242] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1670), 1, + ACTIONS(1902), 1, sym_identifier, - [21817] = 2, + [24249] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(785), 1, - anon_sym_COLON, - [21824] = 2, + ACTIONS(1990), 1, + sym_identifier, + [24256] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1672), 1, + ACTIONS(1992), 1, sym_identifier, - [21831] = 2, + [24263] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1674), 1, + ACTIONS(1994), 1, anon_sym_SEMI, - [21838] = 2, + [24270] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1676), 1, - anon_sym_LBRACE, - [21845] = 2, + ACTIONS(1894), 1, + sym_identifier, + [24277] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1678), 1, - anon_sym_EQ, - [21852] = 2, + ACTIONS(1996), 1, + sym_identifier, + [24284] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1680), 1, - anon_sym_EQ_GT, - [21859] = 2, + ACTIONS(1998), 1, + sym_identifier, + [24291] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1682), 1, + ACTIONS(2000), 1, sym_identifier, - [21866] = 2, + [24298] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1684), 1, + ACTIONS(2002), 1, sym_identifier, - [21873] = 2, + [24305] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1686), 1, + ACTIONS(2004), 1, sym_identifier, - [21880] = 2, + [24312] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(781), 1, + ACTIONS(862), 1, anon_sym_COLON, - [21887] = 2, + [24319] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1688), 1, - anon_sym_SEMI, - [21894] = 2, + ACTIONS(2006), 1, + anon_sym_EQ, + [24326] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1690), 1, + ACTIONS(2008), 1, + sym_identifier, + [24333] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2010), 1, anon_sym_LBRACE, - [21901] = 2, + [24340] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1692), 1, + ACTIONS(2012), 1, ts_builtin_sym_end, - [21908] = 2, + [24347] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1694), 1, + ACTIONS(2014), 1, sym_identifier, - [21915] = 2, + [24354] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1696), 1, + ACTIONS(2016), 1, sym_identifier, - [21922] = 2, + [24361] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1698), 1, + ACTIONS(2018), 1, sym_identifier, - [21929] = 2, + [24368] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1700), 1, + ACTIONS(2020), 1, + sym_identifier, + [24375] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2022), 1, + sym_identifier, + [24382] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2024), 1, anon_sym_SEMI, - [21936] = 2, + [24389] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1702), 1, + ACTIONS(2026), 1, anon_sym_SEMI, - [21943] = 2, + [24396] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1704), 1, + ACTIONS(2028), 1, sym_identifier, - [21950] = 2, + [24403] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1706), 1, + ACTIONS(2030), 1, sym_identifier, - [21957] = 2, + [24410] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1708), 1, + ACTIONS(2032), 1, sym_identifier, - [21964] = 2, + [24417] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1710), 1, + ACTIONS(2034), 1, sym_identifier, - [21971] = 2, + [24424] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1712), 1, + ACTIONS(2036), 1, sym_identifier, - [21978] = 2, + [24431] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1714), 1, + ACTIONS(2038), 1, sym_identifier, - [21985] = 2, + [24438] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1716), 1, - sym_identifier, + ACTIONS(2040), 1, + anon_sym_EQ, + [24445] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2042), 1, + anon_sym_SEMI, + [24452] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2044), 1, + anon_sym_SEMI, }; static const uint32_t ts_small_parse_table_map[] = { @@ -23100,25 +25661,25 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(27)] = 1622, [SMALL_STATE(28)] = 1744, [SMALL_STATE(29)] = 1866, - [SMALL_STATE(30)] = 1988, - [SMALL_STATE(31)] = 2110, - [SMALL_STATE(32)] = 2232, - [SMALL_STATE(33)] = 2354, - [SMALL_STATE(34)] = 2476, - [SMALL_STATE(35)] = 2598, - [SMALL_STATE(36)] = 2720, - [SMALL_STATE(37)] = 2842, - [SMALL_STATE(38)] = 2964, - [SMALL_STATE(39)] = 3086, - [SMALL_STATE(40)] = 3208, - [SMALL_STATE(41)] = 3330, - [SMALL_STATE(42)] = 3452, - [SMALL_STATE(43)] = 3574, - [SMALL_STATE(44)] = 3696, - [SMALL_STATE(45)] = 3818, - [SMALL_STATE(46)] = 3940, - [SMALL_STATE(47)] = 4062, - [SMALL_STATE(48)] = 4184, + [SMALL_STATE(30)] = 1990, + [SMALL_STATE(31)] = 2112, + [SMALL_STATE(32)] = 2234, + [SMALL_STATE(33)] = 2356, + [SMALL_STATE(34)] = 2478, + [SMALL_STATE(35)] = 2600, + [SMALL_STATE(36)] = 2722, + [SMALL_STATE(37)] = 2844, + [SMALL_STATE(38)] = 2966, + [SMALL_STATE(39)] = 3088, + [SMALL_STATE(40)] = 3210, + [SMALL_STATE(41)] = 3332, + [SMALL_STATE(42)] = 3454, + [SMALL_STATE(43)] = 3576, + [SMALL_STATE(44)] = 3698, + [SMALL_STATE(45)] = 3820, + [SMALL_STATE(46)] = 3942, + [SMALL_STATE(47)] = 4064, + [SMALL_STATE(48)] = 4186, [SMALL_STATE(49)] = 4308, [SMALL_STATE(50)] = 4430, [SMALL_STATE(51)] = 4552, @@ -23153,534 +25714,656 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(80)] = 8090, [SMALL_STATE(81)] = 8212, [SMALL_STATE(82)] = 8334, - [SMALL_STATE(83)] = 8395, - [SMALL_STATE(84)] = 8456, - [SMALL_STATE(85)] = 8518, - [SMALL_STATE(86)] = 8578, - [SMALL_STATE(87)] = 8640, - [SMALL_STATE(88)] = 8692, - [SMALL_STATE(89)] = 8748, - [SMALL_STATE(90)] = 8800, - [SMALL_STATE(91)] = 8853, - [SMALL_STATE(92)] = 8906, - [SMALL_STATE(93)] = 8956, - [SMALL_STATE(94)] = 9006, - [SMALL_STATE(95)] = 9056, - [SMALL_STATE(96)] = 9106, - [SMALL_STATE(97)] = 9156, - [SMALL_STATE(98)] = 9206, - [SMALL_STATE(99)] = 9256, - [SMALL_STATE(100)] = 9306, - [SMALL_STATE(101)] = 9356, - [SMALL_STATE(102)] = 9406, - [SMALL_STATE(103)] = 9456, - [SMALL_STATE(104)] = 9506, - [SMALL_STATE(105)] = 9556, - [SMALL_STATE(106)] = 9606, - [SMALL_STATE(107)] = 9656, - [SMALL_STATE(108)] = 9706, - [SMALL_STATE(109)] = 9756, - [SMALL_STATE(110)] = 9806, - [SMALL_STATE(111)] = 9856, - [SMALL_STATE(112)] = 9906, - [SMALL_STATE(113)] = 9956, - [SMALL_STATE(114)] = 10006, - [SMALL_STATE(115)] = 10056, - [SMALL_STATE(116)] = 10106, - [SMALL_STATE(117)] = 10156, - [SMALL_STATE(118)] = 10206, - [SMALL_STATE(119)] = 10256, - [SMALL_STATE(120)] = 10306, - [SMALL_STATE(121)] = 10356, - [SMALL_STATE(122)] = 10406, - [SMALL_STATE(123)] = 10456, - [SMALL_STATE(124)] = 10506, - [SMALL_STATE(125)] = 10556, - [SMALL_STATE(126)] = 10606, - [SMALL_STATE(127)] = 10656, - [SMALL_STATE(128)] = 10706, - [SMALL_STATE(129)] = 10756, - [SMALL_STATE(130)] = 10822, - [SMALL_STATE(131)] = 10878, - [SMALL_STATE(132)] = 10934, - [SMALL_STATE(133)] = 10990, - [SMALL_STATE(134)] = 11033, - [SMALL_STATE(135)] = 11076, - [SMALL_STATE(136)] = 11129, - [SMALL_STATE(137)] = 11182, - [SMALL_STATE(138)] = 11221, - [SMALL_STATE(139)] = 11258, - [SMALL_STATE(140)] = 11311, - [SMALL_STATE(141)] = 11364, - [SMALL_STATE(142)] = 11401, - [SMALL_STATE(143)] = 11446, - [SMALL_STATE(144)] = 11499, - [SMALL_STATE(145)] = 11536, - [SMALL_STATE(146)] = 11572, - [SMALL_STATE(147)] = 11608, - [SMALL_STATE(148)] = 11644, - [SMALL_STATE(149)] = 11680, - [SMALL_STATE(150)] = 11716, - [SMALL_STATE(151)] = 11752, - [SMALL_STATE(152)] = 11788, - [SMALL_STATE(153)] = 11824, - [SMALL_STATE(154)] = 11860, - [SMALL_STATE(155)] = 11896, - [SMALL_STATE(156)] = 11935, - [SMALL_STATE(157)] = 11970, - [SMALL_STATE(158)] = 12011, - [SMALL_STATE(159)] = 12045, - [SMALL_STATE(160)] = 12079, - [SMALL_STATE(161)] = 12113, - [SMALL_STATE(162)] = 12147, - [SMALL_STATE(163)] = 12181, - [SMALL_STATE(164)] = 12215, - [SMALL_STATE(165)] = 12249, - [SMALL_STATE(166)] = 12283, - [SMALL_STATE(167)] = 12317, - [SMALL_STATE(168)] = 12351, - [SMALL_STATE(169)] = 12385, - [SMALL_STATE(170)] = 12419, - [SMALL_STATE(171)] = 12453, - [SMALL_STATE(172)] = 12487, - [SMALL_STATE(173)] = 12521, - [SMALL_STATE(174)] = 12555, - [SMALL_STATE(175)] = 12589, - [SMALL_STATE(176)] = 12623, - [SMALL_STATE(177)] = 12657, - [SMALL_STATE(178)] = 12691, - [SMALL_STATE(179)] = 12741, - [SMALL_STATE(180)] = 12789, - [SMALL_STATE(181)] = 12833, - [SMALL_STATE(182)] = 12875, - [SMALL_STATE(183)] = 12931, - [SMALL_STATE(184)] = 12985, - [SMALL_STATE(185)] = 13037, - [SMALL_STATE(186)] = 13071, - [SMALL_STATE(187)] = 13105, - [SMALL_STATE(188)] = 13139, - [SMALL_STATE(189)] = 13173, - [SMALL_STATE(190)] = 13207, - [SMALL_STATE(191)] = 13241, - [SMALL_STATE(192)] = 13275, - [SMALL_STATE(193)] = 13309, - [SMALL_STATE(194)] = 13343, - [SMALL_STATE(195)] = 13377, - [SMALL_STATE(196)] = 13411, - [SMALL_STATE(197)] = 13445, - [SMALL_STATE(198)] = 13479, - [SMALL_STATE(199)] = 13513, - [SMALL_STATE(200)] = 13547, - [SMALL_STATE(201)] = 13581, - [SMALL_STATE(202)] = 13615, - [SMALL_STATE(203)] = 13649, - [SMALL_STATE(204)] = 13683, - [SMALL_STATE(205)] = 13717, - [SMALL_STATE(206)] = 13751, - [SMALL_STATE(207)] = 13785, - [SMALL_STATE(208)] = 13819, - [SMALL_STATE(209)] = 13863, - [SMALL_STATE(210)] = 13923, - [SMALL_STATE(211)] = 13983, - [SMALL_STATE(212)] = 14017, - [SMALL_STATE(213)] = 14051, - [SMALL_STATE(214)] = 14085, - [SMALL_STATE(215)] = 14145, - [SMALL_STATE(216)] = 14179, - [SMALL_STATE(217)] = 14213, - [SMALL_STATE(218)] = 14247, - [SMALL_STATE(219)] = 14281, - [SMALL_STATE(220)] = 14315, - [SMALL_STATE(221)] = 14349, - [SMALL_STATE(222)] = 14383, - [SMALL_STATE(223)] = 14417, - [SMALL_STATE(224)] = 14458, - [SMALL_STATE(225)] = 14499, - [SMALL_STATE(226)] = 14540, - [SMALL_STATE(227)] = 14583, - [SMALL_STATE(228)] = 14645, - [SMALL_STATE(229)] = 14707, - [SMALL_STATE(230)] = 14769, - [SMALL_STATE(231)] = 14831, - [SMALL_STATE(232)] = 14889, - [SMALL_STATE(233)] = 14946, - [SMALL_STATE(234)] = 15003, - [SMALL_STATE(235)] = 15034, - [SMALL_STATE(236)] = 15093, - [SMALL_STATE(237)] = 15128, - [SMALL_STATE(238)] = 15185, - [SMALL_STATE(239)] = 15242, - [SMALL_STATE(240)] = 15301, - [SMALL_STATE(241)] = 15334, - [SMALL_STATE(242)] = 15393, - [SMALL_STATE(243)] = 15452, - [SMALL_STATE(244)] = 15508, - [SMALL_STATE(245)] = 15546, - [SMALL_STATE(246)] = 15602, - [SMALL_STATE(247)] = 15658, - [SMALL_STATE(248)] = 15714, - [SMALL_STATE(249)] = 15770, - [SMALL_STATE(250)] = 15818, - [SMALL_STATE(251)] = 15874, - [SMALL_STATE(252)] = 15930, - [SMALL_STATE(253)] = 15986, - [SMALL_STATE(254)] = 16042, - [SMALL_STATE(255)] = 16098, - [SMALL_STATE(256)] = 16144, - [SMALL_STATE(257)] = 16188, - [SMALL_STATE(258)] = 16244, - [SMALL_STATE(259)] = 16300, - [SMALL_STATE(260)] = 16356, - [SMALL_STATE(261)] = 16412, - [SMALL_STATE(262)] = 16468, - [SMALL_STATE(263)] = 16524, - [SMALL_STATE(264)] = 16564, - [SMALL_STATE(265)] = 16620, - [SMALL_STATE(266)] = 16656, - [SMALL_STATE(267)] = 16696, - [SMALL_STATE(268)] = 16752, - [SMALL_STATE(269)] = 16808, - [SMALL_STATE(270)] = 16864, - [SMALL_STATE(271)] = 16920, - [SMALL_STATE(272)] = 16976, - [SMALL_STATE(273)] = 17032, - [SMALL_STATE(274)] = 17084, - [SMALL_STATE(275)] = 17140, - [SMALL_STATE(276)] = 17196, - [SMALL_STATE(277)] = 17228, - [SMALL_STATE(278)] = 17278, - [SMALL_STATE(279)] = 17334, - [SMALL_STATE(280)] = 17390, - [SMALL_STATE(281)] = 17446, - [SMALL_STATE(282)] = 17502, - [SMALL_STATE(283)] = 17533, - [SMALL_STATE(284)] = 17586, - [SMALL_STATE(285)] = 17629, - [SMALL_STATE(286)] = 17672, - [SMALL_STATE(287)] = 17715, - [SMALL_STATE(288)] = 17758, - [SMALL_STATE(289)] = 17801, - [SMALL_STATE(290)] = 17824, - [SMALL_STATE(291)] = 17847, - [SMALL_STATE(292)] = 17870, - [SMALL_STATE(293)] = 17888, - [SMALL_STATE(294)] = 17906, - [SMALL_STATE(295)] = 17924, - [SMALL_STATE(296)] = 17942, - [SMALL_STATE(297)] = 17960, - [SMALL_STATE(298)] = 17978, - [SMALL_STATE(299)] = 17996, - [SMALL_STATE(300)] = 18014, - [SMALL_STATE(301)] = 18032, - [SMALL_STATE(302)] = 18050, - [SMALL_STATE(303)] = 18068, - [SMALL_STATE(304)] = 18086, - [SMALL_STATE(305)] = 18104, - [SMALL_STATE(306)] = 18122, - [SMALL_STATE(307)] = 18140, - [SMALL_STATE(308)] = 18158, - [SMALL_STATE(309)] = 18176, - [SMALL_STATE(310)] = 18194, - [SMALL_STATE(311)] = 18212, - [SMALL_STATE(312)] = 18230, - [SMALL_STATE(313)] = 18248, - [SMALL_STATE(314)] = 18266, - [SMALL_STATE(315)] = 18284, - [SMALL_STATE(316)] = 18302, - [SMALL_STATE(317)] = 18320, - [SMALL_STATE(318)] = 18338, - [SMALL_STATE(319)] = 18356, - [SMALL_STATE(320)] = 18374, - [SMALL_STATE(321)] = 18392, - [SMALL_STATE(322)] = 18410, - [SMALL_STATE(323)] = 18428, - [SMALL_STATE(324)] = 18446, - [SMALL_STATE(325)] = 18464, - [SMALL_STATE(326)] = 18482, - [SMALL_STATE(327)] = 18500, - [SMALL_STATE(328)] = 18518, - [SMALL_STATE(329)] = 18536, - [SMALL_STATE(330)] = 18554, - [SMALL_STATE(331)] = 18572, - [SMALL_STATE(332)] = 18590, - [SMALL_STATE(333)] = 18608, - [SMALL_STATE(334)] = 18626, - [SMALL_STATE(335)] = 18644, - [SMALL_STATE(336)] = 18662, - [SMALL_STATE(337)] = 18680, - [SMALL_STATE(338)] = 18698, - [SMALL_STATE(339)] = 18716, - [SMALL_STATE(340)] = 18734, - [SMALL_STATE(341)] = 18752, - [SMALL_STATE(342)] = 18770, - [SMALL_STATE(343)] = 18788, - [SMALL_STATE(344)] = 18806, - [SMALL_STATE(345)] = 18824, - [SMALL_STATE(346)] = 18842, - [SMALL_STATE(347)] = 18860, - [SMALL_STATE(348)] = 18878, - [SMALL_STATE(349)] = 18896, - [SMALL_STATE(350)] = 18914, - [SMALL_STATE(351)] = 18932, - [SMALL_STATE(352)] = 18950, - [SMALL_STATE(353)] = 18969, - [SMALL_STATE(354)] = 18986, - [SMALL_STATE(355)] = 19003, - [SMALL_STATE(356)] = 19020, - [SMALL_STATE(357)] = 19039, - [SMALL_STATE(358)] = 19056, - [SMALL_STATE(359)] = 19073, - [SMALL_STATE(360)] = 19089, - [SMALL_STATE(361)] = 19107, - [SMALL_STATE(362)] = 19123, - [SMALL_STATE(363)] = 19141, - [SMALL_STATE(364)] = 19158, - [SMALL_STATE(365)] = 19174, - [SMALL_STATE(366)] = 19192, - [SMALL_STATE(367)] = 19208, - [SMALL_STATE(368)] = 19226, - [SMALL_STATE(369)] = 19244, - [SMALL_STATE(370)] = 19266, - [SMALL_STATE(371)] = 19285, - [SMALL_STATE(372)] = 19304, - [SMALL_STATE(373)] = 19323, - [SMALL_STATE(374)] = 19342, - [SMALL_STATE(375)] = 19361, - [SMALL_STATE(376)] = 19380, - [SMALL_STATE(377)] = 19399, - [SMALL_STATE(378)] = 19418, - [SMALL_STATE(379)] = 19429, - [SMALL_STATE(380)] = 19445, - [SMALL_STATE(381)] = 19461, - [SMALL_STATE(382)] = 19475, - [SMALL_STATE(383)] = 19491, - [SMALL_STATE(384)] = 19505, - [SMALL_STATE(385)] = 19519, - [SMALL_STATE(386)] = 19535, - [SMALL_STATE(387)] = 19551, - [SMALL_STATE(388)] = 19565, - [SMALL_STATE(389)] = 19577, - [SMALL_STATE(390)] = 19593, - [SMALL_STATE(391)] = 19607, - [SMALL_STATE(392)] = 19623, - [SMALL_STATE(393)] = 19639, - [SMALL_STATE(394)] = 19655, - [SMALL_STATE(395)] = 19671, - [SMALL_STATE(396)] = 19687, - [SMALL_STATE(397)] = 19703, - [SMALL_STATE(398)] = 19719, - [SMALL_STATE(399)] = 19733, - [SMALL_STATE(400)] = 19749, - [SMALL_STATE(401)] = 19765, - [SMALL_STATE(402)] = 19781, - [SMALL_STATE(403)] = 19797, - [SMALL_STATE(404)] = 19813, - [SMALL_STATE(405)] = 19829, - [SMALL_STATE(406)] = 19845, - [SMALL_STATE(407)] = 19859, - [SMALL_STATE(408)] = 19875, - [SMALL_STATE(409)] = 19889, - [SMALL_STATE(410)] = 19903, - [SMALL_STATE(411)] = 19917, - [SMALL_STATE(412)] = 19933, - [SMALL_STATE(413)] = 19947, - [SMALL_STATE(414)] = 19961, - [SMALL_STATE(415)] = 19977, - [SMALL_STATE(416)] = 19993, - [SMALL_STATE(417)] = 20009, - [SMALL_STATE(418)] = 20022, - [SMALL_STATE(419)] = 20031, - [SMALL_STATE(420)] = 20042, - [SMALL_STATE(421)] = 20055, - [SMALL_STATE(422)] = 20068, - [SMALL_STATE(423)] = 20081, - [SMALL_STATE(424)] = 20094, - [SMALL_STATE(425)] = 20107, - [SMALL_STATE(426)] = 20120, - [SMALL_STATE(427)] = 20133, - [SMALL_STATE(428)] = 20146, - [SMALL_STATE(429)] = 20159, - [SMALL_STATE(430)] = 20172, - [SMALL_STATE(431)] = 20185, - [SMALL_STATE(432)] = 20198, - [SMALL_STATE(433)] = 20207, - [SMALL_STATE(434)] = 20220, - [SMALL_STATE(435)] = 20233, - [SMALL_STATE(436)] = 20246, - [SMALL_STATE(437)] = 20259, - [SMALL_STATE(438)] = 20272, - [SMALL_STATE(439)] = 20285, - [SMALL_STATE(440)] = 20294, - [SMALL_STATE(441)] = 20307, - [SMALL_STATE(442)] = 20320, - [SMALL_STATE(443)] = 20333, - [SMALL_STATE(444)] = 20346, - [SMALL_STATE(445)] = 20359, - [SMALL_STATE(446)] = 20372, - [SMALL_STATE(447)] = 20385, - [SMALL_STATE(448)] = 20398, - [SMALL_STATE(449)] = 20411, - [SMALL_STATE(450)] = 20424, - [SMALL_STATE(451)] = 20437, - [SMALL_STATE(452)] = 20450, - [SMALL_STATE(453)] = 20463, - [SMALL_STATE(454)] = 20476, - [SMALL_STATE(455)] = 20489, - [SMALL_STATE(456)] = 20498, - [SMALL_STATE(457)] = 20511, - [SMALL_STATE(458)] = 20524, - [SMALL_STATE(459)] = 20537, - [SMALL_STATE(460)] = 20550, - [SMALL_STATE(461)] = 20563, - [SMALL_STATE(462)] = 20576, - [SMALL_STATE(463)] = 20589, - [SMALL_STATE(464)] = 20602, - [SMALL_STATE(465)] = 20615, - [SMALL_STATE(466)] = 20628, - [SMALL_STATE(467)] = 20641, - [SMALL_STATE(468)] = 20654, - [SMALL_STATE(469)] = 20667, - [SMALL_STATE(470)] = 20680, - [SMALL_STATE(471)] = 20693, - [SMALL_STATE(472)] = 20706, - [SMALL_STATE(473)] = 20719, - [SMALL_STATE(474)] = 20732, - [SMALL_STATE(475)] = 20745, - [SMALL_STATE(476)] = 20758, - [SMALL_STATE(477)] = 20771, - [SMALL_STATE(478)] = 20784, - [SMALL_STATE(479)] = 20797, - [SMALL_STATE(480)] = 20810, - [SMALL_STATE(481)] = 20820, - [SMALL_STATE(482)] = 20830, - [SMALL_STATE(483)] = 20840, - [SMALL_STATE(484)] = 20848, - [SMALL_STATE(485)] = 20858, - [SMALL_STATE(486)] = 20868, - [SMALL_STATE(487)] = 20878, - [SMALL_STATE(488)] = 20888, - [SMALL_STATE(489)] = 20898, - [SMALL_STATE(490)] = 20908, - [SMALL_STATE(491)] = 20918, - [SMALL_STATE(492)] = 20928, - [SMALL_STATE(493)] = 20936, - [SMALL_STATE(494)] = 20946, - [SMALL_STATE(495)] = 20956, - [SMALL_STATE(496)] = 20966, - [SMALL_STATE(497)] = 20976, - [SMALL_STATE(498)] = 20986, - [SMALL_STATE(499)] = 20996, - [SMALL_STATE(500)] = 21006, - [SMALL_STATE(501)] = 21016, - [SMALL_STATE(502)] = 21026, - [SMALL_STATE(503)] = 21036, - [SMALL_STATE(504)] = 21046, - [SMALL_STATE(505)] = 21056, - [SMALL_STATE(506)] = 21066, - [SMALL_STATE(507)] = 21076, - [SMALL_STATE(508)] = 21086, - [SMALL_STATE(509)] = 21096, - [SMALL_STATE(510)] = 21106, - [SMALL_STATE(511)] = 21116, - [SMALL_STATE(512)] = 21126, - [SMALL_STATE(513)] = 21136, - [SMALL_STATE(514)] = 21146, - [SMALL_STATE(515)] = 21156, - [SMALL_STATE(516)] = 21166, - [SMALL_STATE(517)] = 21176, - [SMALL_STATE(518)] = 21186, - [SMALL_STATE(519)] = 21196, - [SMALL_STATE(520)] = 21206, - [SMALL_STATE(521)] = 21214, - [SMALL_STATE(522)] = 21222, - [SMALL_STATE(523)] = 21232, - [SMALL_STATE(524)] = 21242, - [SMALL_STATE(525)] = 21252, - [SMALL_STATE(526)] = 21260, - [SMALL_STATE(527)] = 21270, - [SMALL_STATE(528)] = 21278, - [SMALL_STATE(529)] = 21288, - [SMALL_STATE(530)] = 21298, - [SMALL_STATE(531)] = 21308, - [SMALL_STATE(532)] = 21318, - [SMALL_STATE(533)] = 21328, - [SMALL_STATE(534)] = 21338, - [SMALL_STATE(535)] = 21348, - [SMALL_STATE(536)] = 21358, - [SMALL_STATE(537)] = 21368, - [SMALL_STATE(538)] = 21376, - [SMALL_STATE(539)] = 21386, - [SMALL_STATE(540)] = 21396, - [SMALL_STATE(541)] = 21406, - [SMALL_STATE(542)] = 21416, - [SMALL_STATE(543)] = 21426, - [SMALL_STATE(544)] = 21434, - [SMALL_STATE(545)] = 21444, - [SMALL_STATE(546)] = 21454, - [SMALL_STATE(547)] = 21464, - [SMALL_STATE(548)] = 21474, - [SMALL_STATE(549)] = 21484, - [SMALL_STATE(550)] = 21494, - [SMALL_STATE(551)] = 21504, - [SMALL_STATE(552)] = 21512, - [SMALL_STATE(553)] = 21522, - [SMALL_STATE(554)] = 21532, - [SMALL_STATE(555)] = 21542, - [SMALL_STATE(556)] = 21552, - [SMALL_STATE(557)] = 21562, - [SMALL_STATE(558)] = 21572, - [SMALL_STATE(559)] = 21582, - [SMALL_STATE(560)] = 21592, - [SMALL_STATE(561)] = 21602, - [SMALL_STATE(562)] = 21612, - [SMALL_STATE(563)] = 21620, - [SMALL_STATE(564)] = 21630, - [SMALL_STATE(565)] = 21640, - [SMALL_STATE(566)] = 21650, - [SMALL_STATE(567)] = 21660, - [SMALL_STATE(568)] = 21670, - [SMALL_STATE(569)] = 21680, - [SMALL_STATE(570)] = 21690, - [SMALL_STATE(571)] = 21700, - [SMALL_STATE(572)] = 21710, - [SMALL_STATE(573)] = 21720, - [SMALL_STATE(574)] = 21730, - [SMALL_STATE(575)] = 21740, - [SMALL_STATE(576)] = 21747, - [SMALL_STATE(577)] = 21754, - [SMALL_STATE(578)] = 21761, - [SMALL_STATE(579)] = 21768, - [SMALL_STATE(580)] = 21775, - [SMALL_STATE(581)] = 21782, - [SMALL_STATE(582)] = 21789, - [SMALL_STATE(583)] = 21796, - [SMALL_STATE(584)] = 21803, - [SMALL_STATE(585)] = 21810, - [SMALL_STATE(586)] = 21817, - [SMALL_STATE(587)] = 21824, - [SMALL_STATE(588)] = 21831, - [SMALL_STATE(589)] = 21838, - [SMALL_STATE(590)] = 21845, - [SMALL_STATE(591)] = 21852, - [SMALL_STATE(592)] = 21859, - [SMALL_STATE(593)] = 21866, - [SMALL_STATE(594)] = 21873, - [SMALL_STATE(595)] = 21880, - [SMALL_STATE(596)] = 21887, - [SMALL_STATE(597)] = 21894, - [SMALL_STATE(598)] = 21901, - [SMALL_STATE(599)] = 21908, - [SMALL_STATE(600)] = 21915, - [SMALL_STATE(601)] = 21922, - [SMALL_STATE(602)] = 21929, - [SMALL_STATE(603)] = 21936, - [SMALL_STATE(604)] = 21943, - [SMALL_STATE(605)] = 21950, - [SMALL_STATE(606)] = 21957, - [SMALL_STATE(607)] = 21964, - [SMALL_STATE(608)] = 21971, - [SMALL_STATE(609)] = 21978, - [SMALL_STATE(610)] = 21985, + [SMALL_STATE(83)] = 8396, + [SMALL_STATE(84)] = 8458, + [SMALL_STATE(85)] = 8519, + [SMALL_STATE(86)] = 8582, + [SMALL_STATE(87)] = 8645, + [SMALL_STATE(88)] = 8702, + [SMALL_STATE(89)] = 8755, + [SMALL_STATE(90)] = 8808, + [SMALL_STATE(91)] = 8862, + [SMALL_STATE(92)] = 8916, + [SMALL_STATE(93)] = 8967, + [SMALL_STATE(94)] = 9018, + [SMALL_STATE(95)] = 9069, + [SMALL_STATE(96)] = 9120, + [SMALL_STATE(97)] = 9171, + [SMALL_STATE(98)] = 9222, + [SMALL_STATE(99)] = 9273, + [SMALL_STATE(100)] = 9324, + [SMALL_STATE(101)] = 9375, + [SMALL_STATE(102)] = 9426, + [SMALL_STATE(103)] = 9477, + [SMALL_STATE(104)] = 9528, + [SMALL_STATE(105)] = 9579, + [SMALL_STATE(106)] = 9630, + [SMALL_STATE(107)] = 9681, + [SMALL_STATE(108)] = 9732, + [SMALL_STATE(109)] = 9783, + [SMALL_STATE(110)] = 9834, + [SMALL_STATE(111)] = 9885, + [SMALL_STATE(112)] = 9936, + [SMALL_STATE(113)] = 9987, + [SMALL_STATE(114)] = 10038, + [SMALL_STATE(115)] = 10089, + [SMALL_STATE(116)] = 10140, + [SMALL_STATE(117)] = 10191, + [SMALL_STATE(118)] = 10242, + [SMALL_STATE(119)] = 10293, + [SMALL_STATE(120)] = 10344, + [SMALL_STATE(121)] = 10395, + [SMALL_STATE(122)] = 10446, + [SMALL_STATE(123)] = 10497, + [SMALL_STATE(124)] = 10548, + [SMALL_STATE(125)] = 10599, + [SMALL_STATE(126)] = 10650, + [SMALL_STATE(127)] = 10701, + [SMALL_STATE(128)] = 10752, + [SMALL_STATE(129)] = 10803, + [SMALL_STATE(130)] = 10854, + [SMALL_STATE(131)] = 10905, + [SMALL_STATE(132)] = 10956, + [SMALL_STATE(133)] = 11007, + [SMALL_STATE(134)] = 11058, + [SMALL_STATE(135)] = 11109, + [SMALL_STATE(136)] = 11160, + [SMALL_STATE(137)] = 11211, + [SMALL_STATE(138)] = 11262, + [SMALL_STATE(139)] = 11313, + [SMALL_STATE(140)] = 11364, + [SMALL_STATE(141)] = 11415, + [SMALL_STATE(142)] = 11466, + [SMALL_STATE(143)] = 11517, + [SMALL_STATE(144)] = 11568, + [SMALL_STATE(145)] = 11619, + [SMALL_STATE(146)] = 11670, + [SMALL_STATE(147)] = 11721, + [SMALL_STATE(148)] = 11787, + [SMALL_STATE(149)] = 11843, + [SMALL_STATE(150)] = 11899, + [SMALL_STATE(151)] = 11955, + [SMALL_STATE(152)] = 12008, + [SMALL_STATE(153)] = 12061, + [SMALL_STATE(154)] = 12114, + [SMALL_STATE(155)] = 12167, + [SMALL_STATE(156)] = 12210, + [SMALL_STATE(157)] = 12249, + [SMALL_STATE(158)] = 12286, + [SMALL_STATE(159)] = 12329, + [SMALL_STATE(160)] = 12366, + [SMALL_STATE(161)] = 12411, + [SMALL_STATE(162)] = 12448, + [SMALL_STATE(163)] = 12501, + [SMALL_STATE(164)] = 12537, + [SMALL_STATE(165)] = 12573, + [SMALL_STATE(166)] = 12609, + [SMALL_STATE(167)] = 12645, + [SMALL_STATE(168)] = 12681, + [SMALL_STATE(169)] = 12717, + [SMALL_STATE(170)] = 12753, + [SMALL_STATE(171)] = 12789, + [SMALL_STATE(172)] = 12825, + [SMALL_STATE(173)] = 12861, + [SMALL_STATE(174)] = 12900, + [SMALL_STATE(175)] = 12941, + [SMALL_STATE(176)] = 12976, + [SMALL_STATE(177)] = 13010, + [SMALL_STATE(178)] = 13044, + [SMALL_STATE(179)] = 13078, + [SMALL_STATE(180)] = 13112, + [SMALL_STATE(181)] = 13146, + [SMALL_STATE(182)] = 13180, + [SMALL_STATE(183)] = 13214, + [SMALL_STATE(184)] = 13274, + [SMALL_STATE(185)] = 13308, + [SMALL_STATE(186)] = 13342, + [SMALL_STATE(187)] = 13376, + [SMALL_STATE(188)] = 13436, + [SMALL_STATE(189)] = 13470, + [SMALL_STATE(190)] = 13504, + [SMALL_STATE(191)] = 13538, + [SMALL_STATE(192)] = 13572, + [SMALL_STATE(193)] = 13622, + [SMALL_STATE(194)] = 13670, + [SMALL_STATE(195)] = 13714, + [SMALL_STATE(196)] = 13756, + [SMALL_STATE(197)] = 13812, + [SMALL_STATE(198)] = 13866, + [SMALL_STATE(199)] = 13918, + [SMALL_STATE(200)] = 13952, + [SMALL_STATE(201)] = 13986, + [SMALL_STATE(202)] = 14020, + [SMALL_STATE(203)] = 14054, + [SMALL_STATE(204)] = 14088, + [SMALL_STATE(205)] = 14122, + [SMALL_STATE(206)] = 14156, + [SMALL_STATE(207)] = 14190, + [SMALL_STATE(208)] = 14234, + [SMALL_STATE(209)] = 14268, + [SMALL_STATE(210)] = 14302, + [SMALL_STATE(211)] = 14336, + [SMALL_STATE(212)] = 14370, + [SMALL_STATE(213)] = 14404, + [SMALL_STATE(214)] = 14438, + [SMALL_STATE(215)] = 14472, + [SMALL_STATE(216)] = 14506, + [SMALL_STATE(217)] = 14540, + [SMALL_STATE(218)] = 14574, + [SMALL_STATE(219)] = 14608, + [SMALL_STATE(220)] = 14668, + [SMALL_STATE(221)] = 14702, + [SMALL_STATE(222)] = 14736, + [SMALL_STATE(223)] = 14770, + [SMALL_STATE(224)] = 14804, + [SMALL_STATE(225)] = 14838, + [SMALL_STATE(226)] = 14872, + [SMALL_STATE(227)] = 14906, + [SMALL_STATE(228)] = 14940, + [SMALL_STATE(229)] = 14974, + [SMALL_STATE(230)] = 15008, + [SMALL_STATE(231)] = 15042, + [SMALL_STATE(232)] = 15076, + [SMALL_STATE(233)] = 15110, + [SMALL_STATE(234)] = 15144, + [SMALL_STATE(235)] = 15178, + [SMALL_STATE(236)] = 15212, + [SMALL_STATE(237)] = 15246, + [SMALL_STATE(238)] = 15280, + [SMALL_STATE(239)] = 15314, + [SMALL_STATE(240)] = 15348, + [SMALL_STATE(241)] = 15382, + [SMALL_STATE(242)] = 15425, + [SMALL_STATE(243)] = 15466, + [SMALL_STATE(244)] = 15507, + [SMALL_STATE(245)] = 15548, + [SMALL_STATE(246)] = 15610, + [SMALL_STATE(247)] = 15668, + [SMALL_STATE(248)] = 15730, + [SMALL_STATE(249)] = 15792, + [SMALL_STATE(250)] = 15854, + [SMALL_STATE(251)] = 15913, + [SMALL_STATE(252)] = 15972, + [SMALL_STATE(253)] = 16005, + [SMALL_STATE(254)] = 16062, + [SMALL_STATE(255)] = 16121, + [SMALL_STATE(256)] = 16178, + [SMALL_STATE(257)] = 16209, + [SMALL_STATE(258)] = 16268, + [SMALL_STATE(259)] = 16325, + [SMALL_STATE(260)] = 16382, + [SMALL_STATE(261)] = 16417, + [SMALL_STATE(262)] = 16473, + [SMALL_STATE(263)] = 16529, + [SMALL_STATE(264)] = 16585, + [SMALL_STATE(265)] = 16641, + [SMALL_STATE(266)] = 16697, + [SMALL_STATE(267)] = 16753, + [SMALL_STATE(268)] = 16809, + [SMALL_STATE(269)] = 16845, + [SMALL_STATE(270)] = 16901, + [SMALL_STATE(271)] = 16957, + [SMALL_STATE(272)] = 16997, + [SMALL_STATE(273)] = 17053, + [SMALL_STATE(274)] = 17109, + [SMALL_STATE(275)] = 17165, + [SMALL_STATE(276)] = 17221, + [SMALL_STATE(277)] = 17277, + [SMALL_STATE(278)] = 17333, + [SMALL_STATE(279)] = 17389, + [SMALL_STATE(280)] = 17445, + [SMALL_STATE(281)] = 17501, + [SMALL_STATE(282)] = 17549, + [SMALL_STATE(283)] = 17605, + [SMALL_STATE(284)] = 17661, + [SMALL_STATE(285)] = 17717, + [SMALL_STATE(286)] = 17767, + [SMALL_STATE(287)] = 17819, + [SMALL_STATE(288)] = 17857, + [SMALL_STATE(289)] = 17913, + [SMALL_STATE(290)] = 17953, + [SMALL_STATE(291)] = 18009, + [SMALL_STATE(292)] = 18053, + [SMALL_STATE(293)] = 18109, + [SMALL_STATE(294)] = 18141, + [SMALL_STATE(295)] = 18187, + [SMALL_STATE(296)] = 18243, + [SMALL_STATE(297)] = 18299, + [SMALL_STATE(298)] = 18355, + [SMALL_STATE(299)] = 18411, + [SMALL_STATE(300)] = 18467, + [SMALL_STATE(301)] = 18498, + [SMALL_STATE(302)] = 18551, + [SMALL_STATE(303)] = 18594, + [SMALL_STATE(304)] = 18637, + [SMALL_STATE(305)] = 18680, + [SMALL_STATE(306)] = 18723, + [SMALL_STATE(307)] = 18766, + [SMALL_STATE(308)] = 18805, + [SMALL_STATE(309)] = 18844, + [SMALL_STATE(310)] = 18883, + [SMALL_STATE(311)] = 18907, + [SMALL_STATE(312)] = 18931, + [SMALL_STATE(313)] = 18955, + [SMALL_STATE(314)] = 18974, + [SMALL_STATE(315)] = 18992, + [SMALL_STATE(316)] = 19010, + [SMALL_STATE(317)] = 19028, + [SMALL_STATE(318)] = 19046, + [SMALL_STATE(319)] = 19064, + [SMALL_STATE(320)] = 19082, + [SMALL_STATE(321)] = 19100, + [SMALL_STATE(322)] = 19118, + [SMALL_STATE(323)] = 19136, + [SMALL_STATE(324)] = 19154, + [SMALL_STATE(325)] = 19172, + [SMALL_STATE(326)] = 19190, + [SMALL_STATE(327)] = 19208, + [SMALL_STATE(328)] = 19226, + [SMALL_STATE(329)] = 19244, + [SMALL_STATE(330)] = 19262, + [SMALL_STATE(331)] = 19280, + [SMALL_STATE(332)] = 19298, + [SMALL_STATE(333)] = 19316, + [SMALL_STATE(334)] = 19334, + [SMALL_STATE(335)] = 19352, + [SMALL_STATE(336)] = 19370, + [SMALL_STATE(337)] = 19388, + [SMALL_STATE(338)] = 19406, + [SMALL_STATE(339)] = 19424, + [SMALL_STATE(340)] = 19442, + [SMALL_STATE(341)] = 19460, + [SMALL_STATE(342)] = 19478, + [SMALL_STATE(343)] = 19496, + [SMALL_STATE(344)] = 19514, + [SMALL_STATE(345)] = 19532, + [SMALL_STATE(346)] = 19550, + [SMALL_STATE(347)] = 19568, + [SMALL_STATE(348)] = 19586, + [SMALL_STATE(349)] = 19604, + [SMALL_STATE(350)] = 19622, + [SMALL_STATE(351)] = 19640, + [SMALL_STATE(352)] = 19658, + [SMALL_STATE(353)] = 19676, + [SMALL_STATE(354)] = 19694, + [SMALL_STATE(355)] = 19712, + [SMALL_STATE(356)] = 19730, + [SMALL_STATE(357)] = 19748, + [SMALL_STATE(358)] = 19766, + [SMALL_STATE(359)] = 19784, + [SMALL_STATE(360)] = 19802, + [SMALL_STATE(361)] = 19820, + [SMALL_STATE(362)] = 19838, + [SMALL_STATE(363)] = 19856, + [SMALL_STATE(364)] = 19874, + [SMALL_STATE(365)] = 19892, + [SMALL_STATE(366)] = 19910, + [SMALL_STATE(367)] = 19928, + [SMALL_STATE(368)] = 19946, + [SMALL_STATE(369)] = 19964, + [SMALL_STATE(370)] = 19982, + [SMALL_STATE(371)] = 20000, + [SMALL_STATE(372)] = 20018, + [SMALL_STATE(373)] = 20036, + [SMALL_STATE(374)] = 20053, + [SMALL_STATE(375)] = 20070, + [SMALL_STATE(376)] = 20087, + [SMALL_STATE(377)] = 20104, + [SMALL_STATE(378)] = 20121, + [SMALL_STATE(379)] = 20138, + [SMALL_STATE(380)] = 20155, + [SMALL_STATE(381)] = 20174, + [SMALL_STATE(382)] = 20191, + [SMALL_STATE(383)] = 20208, + [SMALL_STATE(384)] = 20225, + [SMALL_STATE(385)] = 20242, + [SMALL_STATE(386)] = 20259, + [SMALL_STATE(387)] = 20276, + [SMALL_STATE(388)] = 20293, + [SMALL_STATE(389)] = 20310, + [SMALL_STATE(390)] = 20327, + [SMALL_STATE(391)] = 20344, + [SMALL_STATE(392)] = 20361, + [SMALL_STATE(393)] = 20378, + [SMALL_STATE(394)] = 20397, + [SMALL_STATE(395)] = 20414, + [SMALL_STATE(396)] = 20431, + [SMALL_STATE(397)] = 20448, + [SMALL_STATE(398)] = 20465, + [SMALL_STATE(399)] = 20482, + [SMALL_STATE(400)] = 20499, + [SMALL_STATE(401)] = 20516, + [SMALL_STATE(402)] = 20533, + [SMALL_STATE(403)] = 20550, + [SMALL_STATE(404)] = 20567, + [SMALL_STATE(405)] = 20585, + [SMALL_STATE(406)] = 20601, + [SMALL_STATE(407)] = 20617, + [SMALL_STATE(408)] = 20635, + [SMALL_STATE(409)] = 20652, + [SMALL_STATE(410)] = 20670, + [SMALL_STATE(411)] = 20686, + [SMALL_STATE(412)] = 20708, + [SMALL_STATE(413)] = 20726, + [SMALL_STATE(414)] = 20748, + [SMALL_STATE(415)] = 20764, + [SMALL_STATE(416)] = 20782, + [SMALL_STATE(417)] = 20801, + [SMALL_STATE(418)] = 20820, + [SMALL_STATE(419)] = 20839, + [SMALL_STATE(420)] = 20858, + [SMALL_STATE(421)] = 20877, + [SMALL_STATE(422)] = 20896, + [SMALL_STATE(423)] = 20915, + [SMALL_STATE(424)] = 20926, + [SMALL_STATE(425)] = 20945, + [SMALL_STATE(426)] = 20964, + [SMALL_STATE(427)] = 20983, + [SMALL_STATE(428)] = 20999, + [SMALL_STATE(429)] = 21015, + [SMALL_STATE(430)] = 21031, + [SMALL_STATE(431)] = 21047, + [SMALL_STATE(432)] = 21063, + [SMALL_STATE(433)] = 21077, + [SMALL_STATE(434)] = 21093, + [SMALL_STATE(435)] = 21109, + [SMALL_STATE(436)] = 21125, + [SMALL_STATE(437)] = 21141, + [SMALL_STATE(438)] = 21157, + [SMALL_STATE(439)] = 21171, + [SMALL_STATE(440)] = 21185, + [SMALL_STATE(441)] = 21201, + [SMALL_STATE(442)] = 21217, + [SMALL_STATE(443)] = 21233, + [SMALL_STATE(444)] = 21249, + [SMALL_STATE(445)] = 21263, + [SMALL_STATE(446)] = 21279, + [SMALL_STATE(447)] = 21289, + [SMALL_STATE(448)] = 21305, + [SMALL_STATE(449)] = 21321, + [SMALL_STATE(450)] = 21337, + [SMALL_STATE(451)] = 21353, + [SMALL_STATE(452)] = 21369, + [SMALL_STATE(453)] = 21385, + [SMALL_STATE(454)] = 21399, + [SMALL_STATE(455)] = 21415, + [SMALL_STATE(456)] = 21431, + [SMALL_STATE(457)] = 21447, + [SMALL_STATE(458)] = 21463, + [SMALL_STATE(459)] = 21479, + [SMALL_STATE(460)] = 21495, + [SMALL_STATE(461)] = 21511, + [SMALL_STATE(462)] = 21527, + [SMALL_STATE(463)] = 21541, + [SMALL_STATE(464)] = 21553, + [SMALL_STATE(465)] = 21569, + [SMALL_STATE(466)] = 21583, + [SMALL_STATE(467)] = 21599, + [SMALL_STATE(468)] = 21615, + [SMALL_STATE(469)] = 21629, + [SMALL_STATE(470)] = 21645, + [SMALL_STATE(471)] = 21661, + [SMALL_STATE(472)] = 21671, + [SMALL_STATE(473)] = 21681, + [SMALL_STATE(474)] = 21697, + [SMALL_STATE(475)] = 21713, + [SMALL_STATE(476)] = 21729, + [SMALL_STATE(477)] = 21745, + [SMALL_STATE(478)] = 21761, + [SMALL_STATE(479)] = 21777, + [SMALL_STATE(480)] = 21793, + [SMALL_STATE(481)] = 21809, + [SMALL_STATE(482)] = 21825, + [SMALL_STATE(483)] = 21841, + [SMALL_STATE(484)] = 21857, + [SMALL_STATE(485)] = 21873, + [SMALL_STATE(486)] = 21889, + [SMALL_STATE(487)] = 21905, + [SMALL_STATE(488)] = 21915, + [SMALL_STATE(489)] = 21931, + [SMALL_STATE(490)] = 21947, + [SMALL_STATE(491)] = 21963, + [SMALL_STATE(492)] = 21979, + [SMALL_STATE(493)] = 21995, + [SMALL_STATE(494)] = 22009, + [SMALL_STATE(495)] = 22025, + [SMALL_STATE(496)] = 22039, + [SMALL_STATE(497)] = 22053, + [SMALL_STATE(498)] = 22067, + [SMALL_STATE(499)] = 22083, + [SMALL_STATE(500)] = 22096, + [SMALL_STATE(501)] = 22109, + [SMALL_STATE(502)] = 22122, + [SMALL_STATE(503)] = 22135, + [SMALL_STATE(504)] = 22148, + [SMALL_STATE(505)] = 22161, + [SMALL_STATE(506)] = 22174, + [SMALL_STATE(507)] = 22187, + [SMALL_STATE(508)] = 22200, + [SMALL_STATE(509)] = 22213, + [SMALL_STATE(510)] = 22226, + [SMALL_STATE(511)] = 22239, + [SMALL_STATE(512)] = 22252, + [SMALL_STATE(513)] = 22265, + [SMALL_STATE(514)] = 22278, + [SMALL_STATE(515)] = 22291, + [SMALL_STATE(516)] = 22304, + [SMALL_STATE(517)] = 22317, + [SMALL_STATE(518)] = 22330, + [SMALL_STATE(519)] = 22343, + [SMALL_STATE(520)] = 22356, + [SMALL_STATE(521)] = 22369, + [SMALL_STATE(522)] = 22382, + [SMALL_STATE(523)] = 22395, + [SMALL_STATE(524)] = 22408, + [SMALL_STATE(525)] = 22421, + [SMALL_STATE(526)] = 22434, + [SMALL_STATE(527)] = 22447, + [SMALL_STATE(528)] = 22460, + [SMALL_STATE(529)] = 22473, + [SMALL_STATE(530)] = 22486, + [SMALL_STATE(531)] = 22499, + [SMALL_STATE(532)] = 22512, + [SMALL_STATE(533)] = 22525, + [SMALL_STATE(534)] = 22538, + [SMALL_STATE(535)] = 22551, + [SMALL_STATE(536)] = 22564, + [SMALL_STATE(537)] = 22577, + [SMALL_STATE(538)] = 22590, + [SMALL_STATE(539)] = 22603, + [SMALL_STATE(540)] = 22616, + [SMALL_STATE(541)] = 22627, + [SMALL_STATE(542)] = 22640, + [SMALL_STATE(543)] = 22653, + [SMALL_STATE(544)] = 22666, + [SMALL_STATE(545)] = 22679, + [SMALL_STATE(546)] = 22692, + [SMALL_STATE(547)] = 22705, + [SMALL_STATE(548)] = 22718, + [SMALL_STATE(549)] = 22731, + [SMALL_STATE(550)] = 22744, + [SMALL_STATE(551)] = 22757, + [SMALL_STATE(552)] = 22770, + [SMALL_STATE(553)] = 22783, + [SMALL_STATE(554)] = 22796, + [SMALL_STATE(555)] = 22809, + [SMALL_STATE(556)] = 22822, + [SMALL_STATE(557)] = 22835, + [SMALL_STATE(558)] = 22848, + [SMALL_STATE(559)] = 22861, + [SMALL_STATE(560)] = 22874, + [SMALL_STATE(561)] = 22887, + [SMALL_STATE(562)] = 22900, + [SMALL_STATE(563)] = 22913, + [SMALL_STATE(564)] = 22926, + [SMALL_STATE(565)] = 22939, + [SMALL_STATE(566)] = 22952, + [SMALL_STATE(567)] = 22965, + [SMALL_STATE(568)] = 22978, + [SMALL_STATE(569)] = 22991, + [SMALL_STATE(570)] = 23004, + [SMALL_STATE(571)] = 23017, + [SMALL_STATE(572)] = 23030, + [SMALL_STATE(573)] = 23038, + [SMALL_STATE(574)] = 23048, + [SMALL_STATE(575)] = 23058, + [SMALL_STATE(576)] = 23068, + [SMALL_STATE(577)] = 23078, + [SMALL_STATE(578)] = 23088, + [SMALL_STATE(579)] = 23098, + [SMALL_STATE(580)] = 23106, + [SMALL_STATE(581)] = 23116, + [SMALL_STATE(582)] = 23126, + [SMALL_STATE(583)] = 23136, + [SMALL_STATE(584)] = 23146, + [SMALL_STATE(585)] = 23156, + [SMALL_STATE(586)] = 23166, + [SMALL_STATE(587)] = 23176, + [SMALL_STATE(588)] = 23186, + [SMALL_STATE(589)] = 23196, + [SMALL_STATE(590)] = 23206, + [SMALL_STATE(591)] = 23216, + [SMALL_STATE(592)] = 23226, + [SMALL_STATE(593)] = 23236, + [SMALL_STATE(594)] = 23246, + [SMALL_STATE(595)] = 23256, + [SMALL_STATE(596)] = 23266, + [SMALL_STATE(597)] = 23276, + [SMALL_STATE(598)] = 23286, + [SMALL_STATE(599)] = 23296, + [SMALL_STATE(600)] = 23306, + [SMALL_STATE(601)] = 23316, + [SMALL_STATE(602)] = 23326, + [SMALL_STATE(603)] = 23336, + [SMALL_STATE(604)] = 23346, + [SMALL_STATE(605)] = 23356, + [SMALL_STATE(606)] = 23366, + [SMALL_STATE(607)] = 23376, + [SMALL_STATE(608)] = 23386, + [SMALL_STATE(609)] = 23396, + [SMALL_STATE(610)] = 23406, + [SMALL_STATE(611)] = 23416, + [SMALL_STATE(612)] = 23426, + [SMALL_STATE(613)] = 23436, + [SMALL_STATE(614)] = 23444, + [SMALL_STATE(615)] = 23454, + [SMALL_STATE(616)] = 23464, + [SMALL_STATE(617)] = 23474, + [SMALL_STATE(618)] = 23484, + [SMALL_STATE(619)] = 23494, + [SMALL_STATE(620)] = 23504, + [SMALL_STATE(621)] = 23514, + [SMALL_STATE(622)] = 23524, + [SMALL_STATE(623)] = 23534, + [SMALL_STATE(624)] = 23544, + [SMALL_STATE(625)] = 23554, + [SMALL_STATE(626)] = 23562, + [SMALL_STATE(627)] = 23572, + [SMALL_STATE(628)] = 23582, + [SMALL_STATE(629)] = 23592, + [SMALL_STATE(630)] = 23602, + [SMALL_STATE(631)] = 23612, + [SMALL_STATE(632)] = 23620, + [SMALL_STATE(633)] = 23630, + [SMALL_STATE(634)] = 23640, + [SMALL_STATE(635)] = 23650, + [SMALL_STATE(636)] = 23660, + [SMALL_STATE(637)] = 23670, + [SMALL_STATE(638)] = 23680, + [SMALL_STATE(639)] = 23690, + [SMALL_STATE(640)] = 23698, + [SMALL_STATE(641)] = 23706, + [SMALL_STATE(642)] = 23716, + [SMALL_STATE(643)] = 23726, + [SMALL_STATE(644)] = 23734, + [SMALL_STATE(645)] = 23744, + [SMALL_STATE(646)] = 23754, + [SMALL_STATE(647)] = 23762, + [SMALL_STATE(648)] = 23772, + [SMALL_STATE(649)] = 23782, + [SMALL_STATE(650)] = 23792, + [SMALL_STATE(651)] = 23802, + [SMALL_STATE(652)] = 23812, + [SMALL_STATE(653)] = 23822, + [SMALL_STATE(654)] = 23832, + [SMALL_STATE(655)] = 23842, + [SMALL_STATE(656)] = 23850, + [SMALL_STATE(657)] = 23860, + [SMALL_STATE(658)] = 23870, + [SMALL_STATE(659)] = 23880, + [SMALL_STATE(660)] = 23890, + [SMALL_STATE(661)] = 23900, + [SMALL_STATE(662)] = 23910, + [SMALL_STATE(663)] = 23920, + [SMALL_STATE(664)] = 23930, + [SMALL_STATE(665)] = 23940, + [SMALL_STATE(666)] = 23950, + [SMALL_STATE(667)] = 23960, + [SMALL_STATE(668)] = 23970, + [SMALL_STATE(669)] = 23978, + [SMALL_STATE(670)] = 23988, + [SMALL_STATE(671)] = 23998, + [SMALL_STATE(672)] = 24008, + [SMALL_STATE(673)] = 24018, + [SMALL_STATE(674)] = 24028, + [SMALL_STATE(675)] = 24038, + [SMALL_STATE(676)] = 24048, + [SMALL_STATE(677)] = 24058, + [SMALL_STATE(678)] = 24068, + [SMALL_STATE(679)] = 24078, + [SMALL_STATE(680)] = 24088, + [SMALL_STATE(681)] = 24095, + [SMALL_STATE(682)] = 24102, + [SMALL_STATE(683)] = 24109, + [SMALL_STATE(684)] = 24116, + [SMALL_STATE(685)] = 24123, + [SMALL_STATE(686)] = 24130, + [SMALL_STATE(687)] = 24137, + [SMALL_STATE(688)] = 24144, + [SMALL_STATE(689)] = 24151, + [SMALL_STATE(690)] = 24158, + [SMALL_STATE(691)] = 24165, + [SMALL_STATE(692)] = 24172, + [SMALL_STATE(693)] = 24179, + [SMALL_STATE(694)] = 24186, + [SMALL_STATE(695)] = 24193, + [SMALL_STATE(696)] = 24200, + [SMALL_STATE(697)] = 24207, + [SMALL_STATE(698)] = 24214, + [SMALL_STATE(699)] = 24221, + [SMALL_STATE(700)] = 24228, + [SMALL_STATE(701)] = 24235, + [SMALL_STATE(702)] = 24242, + [SMALL_STATE(703)] = 24249, + [SMALL_STATE(704)] = 24256, + [SMALL_STATE(705)] = 24263, + [SMALL_STATE(706)] = 24270, + [SMALL_STATE(707)] = 24277, + [SMALL_STATE(708)] = 24284, + [SMALL_STATE(709)] = 24291, + [SMALL_STATE(710)] = 24298, + [SMALL_STATE(711)] = 24305, + [SMALL_STATE(712)] = 24312, + [SMALL_STATE(713)] = 24319, + [SMALL_STATE(714)] = 24326, + [SMALL_STATE(715)] = 24333, + [SMALL_STATE(716)] = 24340, + [SMALL_STATE(717)] = 24347, + [SMALL_STATE(718)] = 24354, + [SMALL_STATE(719)] = 24361, + [SMALL_STATE(720)] = 24368, + [SMALL_STATE(721)] = 24375, + [SMALL_STATE(722)] = 24382, + [SMALL_STATE(723)] = 24389, + [SMALL_STATE(724)] = 24396, + [SMALL_STATE(725)] = 24403, + [SMALL_STATE(726)] = 24410, + [SMALL_STATE(727)] = 24417, + [SMALL_STATE(728)] = 24424, + [SMALL_STATE(729)] = 24431, + [SMALL_STATE(730)] = 24438, + [SMALL_STATE(731)] = 24445, + [SMALL_STATE(732)] = 24452, }; static const TSParseActionEntry ts_parse_actions[] = { @@ -23688,835 +26371,995 @@ static const TSParseActionEntry ts_parse_actions[] = { [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(), [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(), [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source, 0), - [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(134), + [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(155), [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(568), - [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(420), - [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(608), - [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(607), - [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(14), - [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(496), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(605), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(604), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(48), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(39), - [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(603), - [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(602), - [35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(36), - [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(497), - [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(144), - [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144), - [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(169), - [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(365), - [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), - [49] = {.entry = {.count = 1, .reusable = false}}, SHIFT(366), - [51] = {.entry = {.count = 1, .reusable = false}}, SHIFT(502), - [53] = {.entry = {.count = 1, .reusable = false}}, SHIFT(503), - [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(33), - [59] = {.entry = {.count = 1, .reusable = false}}, SHIFT(34), - [61] = {.entry = {.count = 1, .reusable = false}}, SHIFT(35), - [63] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [65] = {.entry = {.count = 1, .reusable = false}}, SHIFT(234), - [67] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), - [69] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(134), - [72] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(12), - [75] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(568), - [78] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(420), - [81] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(608), - [84] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(607), - [87] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(14), - [90] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(496), - [93] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(605), - [96] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(604), - [99] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(48), - [102] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(39), - [105] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(603), - [108] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(602), - [111] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(36), - [114] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(497), - [117] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(144), - [120] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(144), - [123] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(169), - [126] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(365), - [129] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(11), - [132] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(366), - [135] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(502), - [138] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(503), - [141] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(33), - [144] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(33), - [147] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(34), - [150] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(35), - [153] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(20), - [156] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(234), - [159] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source, 1), - [161] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), - [163] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), - [165] = {.entry = {.count = 1, .reusable = true}}, SHIFT(200), - [167] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), - [169] = {.entry = {.count = 1, .reusable = false}}, SHIFT(223), - [171] = {.entry = {.count = 1, .reusable = true}}, SHIFT(429), - [173] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147), - [175] = {.entry = {.count = 1, .reusable = true}}, SHIFT(464), - [177] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), - [179] = {.entry = {.count = 1, .reusable = true}}, SHIFT(444), - [181] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), - [183] = {.entry = {.count = 1, .reusable = false}}, SHIFT(226), - [185] = {.entry = {.count = 1, .reusable = false}}, SHIFT(584), - [187] = {.entry = {.count = 1, .reusable = true}}, SHIFT(432), - [189] = {.entry = {.count = 1, .reusable = false}}, SHIFT(225), - [191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194), - [193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), - [195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), - [197] = {.entry = {.count = 1, .reusable = true}}, SHIFT(203), - [199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), - [201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(197), - [203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(207), - [205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202), - [207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211), - [209] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), - [211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199), - [213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193), - [215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), - [217] = {.entry = {.count = 1, .reusable = false}}, SHIFT(265), - [219] = {.entry = {.count = 1, .reusable = false}}, SHIFT(364), - [221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [223] = {.entry = {.count = 1, .reusable = false}}, SHIFT(72), - [225] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78), - [227] = {.entry = {.count = 1, .reusable = false}}, SHIFT(80), - [229] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), - [231] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3), - [233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), - [235] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), - [237] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 4, .production_id = 33), - [239] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 4, .production_id = 33), - [241] = {.entry = {.count = 1, .reusable = false}}, SHIFT(493), - [243] = {.entry = {.count = 1, .reusable = false}}, SHIFT(77), - [245] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 2, .production_id = 53), - [247] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 2, .production_id = 53), - [249] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 2, .production_id = 53), SHIFT_REPEAT(77), - [252] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 16), - [254] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, .production_id = 16), - [256] = {.entry = {.count = 1, .reusable = false}}, SHIFT(529), - [258] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_elif_block, 3, .production_id = 16), - [260] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_elif_block, 3, .production_id = 16), - [262] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_catch_statement, 2, .production_id = 3), - [264] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_catch_statement, 2, .production_id = 3), - [266] = {.entry = {.count = 1, .reusable = false}}, SHIFT(438), - [268] = {.entry = {.count = 1, .reusable = false}}, SHIFT(563), - [270] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 1, .production_id = 32), - [272] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 1, .production_id = 32), - [274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_catch_statement, 5, .production_id = 54), - [276] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_catch_statement, 5, .production_id = 54), - [278] = {.entry = {.count = 1, .reusable = false}}, SHIFT(557), - [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_catch_statement, 4, .production_id = 34), - [282] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_catch_statement, 4, .production_id = 34), - [284] = {.entry = {.count = 1, .reusable = false}}, SHIFT(553), - [286] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_catch_statement, 4, .production_id = 35), - [288] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_catch_statement, 4, .production_id = 35), - [290] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_definition, 6, .production_id = 48), - [292] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_definition, 6, .production_id = 48), - [294] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_definition_statement, 7, .production_id = 70), - [296] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_definition_statement, 7, .production_id = 70), - [298] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_short_import_statement, 3, .production_id = 13), - [300] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_short_import_statement, 3, .production_id = 13), - [302] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_statement, 2), - [304] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_statement, 2), - [306] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_resource_implementation, 3), - [308] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_resource_implementation, 3), - [310] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_definition, 7, .production_id = 48), - [312] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_definition, 7, .production_id = 48), - [314] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_resource_implementation, 2), - [316] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_resource_implementation, 2), - [318] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_short_import_statement, 5, .production_id = 47), - [320] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_short_import_statement, 5, .production_id = 47), - [322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 52), - [324] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 52), - [326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 3, .production_id = 16), - [328] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 3, .production_id = 16), - [330] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_continue_statement, 2), - [332] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_continue_statement, 2), - [334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_break_statement, 2), - [336] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_break_statement, 2), - [338] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_loop, 5, .production_id = 51), - [340] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_in_loop, 5, .production_id = 51), - [342] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_definition, 5, .production_id = 30), - [344] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_definition, 5, .production_id = 30), - [346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_implementation, 2), - [348] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_implementation, 2), - [350] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 3, .production_id = 14), - [352] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 3, .production_id = 14), - [354] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 5, .production_id = 50), - [356] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 5, .production_id = 50), - [358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_implementation, 3), - [360] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_implementation, 3), - [362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_definition, 8, .production_id = 30), - [364] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_definition, 8, .production_id = 30), - [366] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_definition, 9, .production_id = 30), - [368] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_definition, 9, .production_id = 30), - [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_definition_statement, 5, .production_id = 49), - [372] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_definition_statement, 5, .production_id = 49), - [374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_definition, 4, .production_id = 31), - [376] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_definition, 4, .production_id = 31), - [378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_resource_definition, 3, .production_id = 15), - [380] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_resource_definition, 3, .production_id = 15), - [382] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 2), - [384] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 2), - [386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_definition, 4, .production_id = 30), - [388] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_definition, 4, .production_id = 30), - [390] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 3, .production_id = 15), - [392] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 3, .production_id = 15), - [394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_definition, 5, .production_id = 48), - [396] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_definition, 5, .production_id = 48), - [398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_catch_statement, 6, .production_id = 67), - [400] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_catch_statement, 6, .production_id = 67), - [402] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, .production_id = 66), - [404] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, .production_id = 66), - [406] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_assignment_statement, 4, .production_id = 41), - [408] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_assignment_statement, 4, .production_id = 41), - [410] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_resource_definition, 5, .production_id = 50), - [412] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_resource_definition, 5, .production_id = 50), - [414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_definition, 7, .production_id = 30), - [416] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_definition, 7, .production_id = 30), - [418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_definition_statement, 6, .production_id = 62), - [420] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_definition_statement, 6, .production_id = 62), - [422] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_catch_statement, 7, .production_id = 79), - [424] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_catch_statement, 7, .production_id = 79), - [426] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_definition_statement, 6, .production_id = 63), - [428] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_definition_statement, 6, .production_id = 63), - [430] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_definition, 6, .production_id = 30), - [432] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_definition, 6, .production_id = 30), - [434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(374), - [436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169), - [438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(502), - [440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(503), - [442] = {.entry = {.count = 1, .reusable = false}}, SHIFT(291), - [444] = {.entry = {.count = 1, .reusable = false}}, SHIFT(558), - [446] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), - [448] = {.entry = {.count = 1, .reusable = true}}, SHIFT(357), - [450] = {.entry = {.count = 1, .reusable = false}}, SHIFT(359), - [452] = {.entry = {.count = 1, .reusable = true}}, SHIFT(355), - [454] = {.entry = {.count = 1, .reusable = true}}, SHIFT(354), - [456] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__literal, 1), - [458] = {.entry = {.count = 1, .reusable = true}}, SHIFT(218), - [460] = {.entry = {.count = 1, .reusable = true}}, SHIFT(219), - [462] = {.entry = {.count = 1, .reusable = true}}, SHIFT(222), - [464] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__literal, 1), - [466] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_custom_type, 1, .production_id = 1), - [468] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_reference, 1), - [470] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_reference, 1), SHIFT(575), - [473] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_reference, 1), - [475] = {.entry = {.count = 1, .reusable = false}}, SHIFT(151), - [477] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_nested_identifier, 2, .production_id = 1), - [479] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_nested_identifier, 2, .production_id = 1), - [481] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 2), - [483] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 2), - [485] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 3), - [487] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 3), - [489] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_new_expression, 3, .production_id = 18), - [491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(519), - [493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [495] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_new_expression, 3, .production_id = 18), - [497] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_number, 1), - [499] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_number, 1), - [501] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 8), - [503] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 8), - [505] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 7), - [507] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 7), - [509] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 5), - [511] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 5), - [513] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 2), - [515] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 2), - [517] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 3), - [519] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 3), - [521] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_nested_identifier, 3, .production_id = 21), - [523] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_nested_identifier, 3, .production_id = 21), - [525] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 6), - [527] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 6), - [529] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4), - [531] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 4), - [533] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 9), - [535] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 9), - [537] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_new_expression, 4, .production_id = 37), - [539] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_new_expression, 4, .production_id = 37), - [541] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_new_object_id, 2), - [543] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_new_object_id, 2), - [545] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_expression, 3, .production_id = 22), - [547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137), - [549] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), - [551] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_expression, 3, .production_id = 22), - [553] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1), - [555] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1), - [557] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_call, 2, .production_id = 6), - [559] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_call, 2, .production_id = 6), - [561] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_map_literal, 5, .production_id = 45), - [563] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_map_literal, 5, .production_id = 45), - [565] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_map_literal, 5, .production_id = 60), - [567] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_map_literal, 5, .production_id = 60), - [569] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_literal, 5, .production_id = 44), - [571] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_literal, 5, .production_id = 44), - [573] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set_literal, 5, .production_id = 59), - [575] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set_literal, 5, .production_id = 59), - [577] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_literal, 3, .production_id = 9), - [579] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_literal, 3, .production_id = 9), - [581] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set_literal, 5, .production_id = 44), - [583] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set_literal, 5, .production_id = 44), - [585] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set_literal, 5, .production_id = 25), - [587] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set_literal, 5, .production_id = 25), - [589] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_literal, 3, .production_id = 20), - [591] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_literal, 3, .production_id = 20), - [593] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bool, 1), - [595] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_bool, 1), - [597] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_map_literal, 3, .production_id = 20), - [599] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_map_literal, 3, .production_id = 20), - [601] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_expression, 3), - [603] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_expression, 3), - [605] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_literal, 4, .production_id = 44), - [607] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_literal, 4, .production_id = 44), - [609] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inflight_closure, 5, .production_id = 46), - [611] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_inflight_closure, 5, .production_id = 46), - [613] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_literal, 5, .production_id = 59), - [615] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_literal, 5, .production_id = 59), - [617] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_map_literal, 4, .production_id = 45), - [619] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_map_literal, 4, .production_id = 45), - [621] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set_literal, 4, .production_id = 44), - [623] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set_literal, 4, .production_id = 44), - [625] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_map_literal, 5, .production_id = 27), - [627] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_map_literal, 5, .production_id = 27), - [629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), - [631] = {.entry = {.count = 1, .reusable = false}}, SHIFT(75), - [633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [635] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), - [637] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [639] = {.entry = {.count = 1, .reusable = false}}, SHIFT(43), - [641] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [645] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), - [647] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preflight_closure, 4, .production_id = 43), - [649] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preflight_closure, 4, .production_id = 43), - [651] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_structured_access_expression, 4), - [653] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_structured_access_expression, 4), - [655] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preflight_closure, 3, .production_id = 24), - [657] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preflight_closure, 3, .production_id = 24), - [659] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_duration, 1), - [661] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_duration, 1), - [663] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_literal, 4, .production_id = 42), - [665] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_literal, 4, .production_id = 42), - [667] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_literal, 5, .production_id = 57), - [669] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_literal, 5, .production_id = 57), - [671] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_literal, 3, .production_id = 20), - [673] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_literal, 3, .production_id = 20), - [675] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_map_literal, 2), - [677] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_map_literal, 2), - [679] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_literal, 4, .production_id = 25), - [681] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_literal, 4, .production_id = 25), - [683] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_literal, 4, .production_id = 9), - [685] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_literal, 4, .production_id = 9), - [687] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_new_expression, 4, .production_id = 38), - [689] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_new_expression, 4, .production_id = 38), - [691] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set_literal, 4, .production_id = 9), - [693] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set_literal, 4, .production_id = 9), - [695] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set_literal, 4, .production_id = 25), - [697] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set_literal, 4, .production_id = 25), - [699] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_literal, 6, .production_id = 59), - [701] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_literal, 6, .production_id = 59), - [703] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_literal, 5, .production_id = 25), - [705] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_literal, 5, .production_id = 25), - [707] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_map_literal, 4, .production_id = 10), - [709] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_map_literal, 4, .production_id = 10), - [711] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_map_literal, 6, .production_id = 60), - [713] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_map_literal, 6, .production_id = 60), - [715] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_map_literal, 4, .production_id = 27), - [717] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_map_literal, 4, .production_id = 27), - [719] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set_literal, 6, .production_id = 59), - [721] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set_literal, 6, .production_id = 59), - [723] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_expression, 2, .production_id = 5), - [725] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_expression, 2, .production_id = 5), - [727] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_await_expression, 2), - [729] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [731] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [733] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_defer_expression, 2), - [735] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_literal, 2), - [737] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_literal, 2), - [739] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_map_literal, 3, .production_id = 10), - [741] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_map_literal, 3, .production_id = 10), - [743] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_new_expression, 5, .production_id = 55), - [745] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_new_expression, 5, .production_id = 55), - [747] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_new_object_scope, 2), - [749] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set_literal, 3, .production_id = 9), - [751] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set_literal, 3, .production_id = 9), - [753] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inflight_closure, 4, .production_id = 29), - [755] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_inflight_closure, 4, .production_id = 29), - [757] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_json_literal, 2, .production_id = 8), - [759] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_json_literal, 2, .production_id = 8), - [761] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_seconds, 2, .production_id = 7), - [763] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_seconds, 2, .production_id = 7), - [765] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_minutes, 2, .production_id = 7), - [767] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_minutes, 2, .production_id = 7), - [769] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_json_element, 1), - [771] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_json_element, 1), - [773] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_literal, 6, .production_id = 69), - [775] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_literal, 6, .production_id = 69), - [777] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_hours, 2, .production_id = 7), - [779] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_hours, 2, .production_id = 7), - [781] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [783] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [785] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [787] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140), - [789] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [791] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), - [793] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), - [795] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [797] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [799] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172), - [801] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215), - [803] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [805] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_array_literal_repeat1, 2, .production_id = 9), - [807] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_map_literal_member, 3), - [809] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_positional_argument, 1), - [811] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_json_container_type, 1), - [813] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_json_container_type, 1), - [815] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [817] = {.entry = {.count = 1, .reusable = false}}, SHIFT(79), - [819] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [821] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), - [823] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), - [825] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), - [827] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), - [829] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [831] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [833] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), - [835] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [837] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_keyword_argument, 3, .production_id = 58), - [839] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_literal_member, 3), - [841] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171), - [843] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), - [845] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), - [847] = {.entry = {.count = 1, .reusable = true}}, SHIFT(325), - [849] = {.entry = {.count = 1, .reusable = true}}, SHIFT(346), - [851] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), - [853] = {.entry = {.count = 1, .reusable = true}}, SHIFT(330), - [855] = {.entry = {.count = 1, .reusable = true}}, SHIFT(331), - [857] = {.entry = {.count = 1, .reusable = true}}, SHIFT(324), - [859] = {.entry = {.count = 1, .reusable = true}}, SHIFT(299), - [861] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [863] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), - [865] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), - [867] = {.entry = {.count = 1, .reusable = true}}, SHIFT(300), - [869] = {.entry = {.count = 1, .reusable = true}}, SHIFT(343), - [871] = {.entry = {.count = 1, .reusable = true}}, SHIFT(319), - [873] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_reference, 1), REDUCE(sym_custom_type, 1, .production_id = 1), - [876] = {.entry = {.count = 1, .reusable = true}}, SHIFT(350), - [878] = {.entry = {.count = 1, .reusable = true}}, SHIFT(306), - [880] = {.entry = {.count = 1, .reusable = true}}, SHIFT(349), - [882] = {.entry = {.count = 1, .reusable = true}}, SHIFT(313), - [884] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [886] = {.entry = {.count = 1, .reusable = true}}, SHIFT(340), - [888] = {.entry = {.count = 1, .reusable = false}}, SHIFT(42), - [890] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), - [892] = {.entry = {.count = 1, .reusable = true}}, SHIFT(338), - [894] = {.entry = {.count = 1, .reusable = true}}, SHIFT(388), - [896] = {.entry = {.count = 1, .reusable = true}}, SHIFT(341), - [898] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [900] = {.entry = {.count = 1, .reusable = false}}, SHIFT(385), - [902] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), - [904] = {.entry = {.count = 1, .reusable = false}}, SHIFT(532), - [906] = {.entry = {.count = 1, .reusable = false}}, SHIFT(578), - [908] = {.entry = {.count = 1, .reusable = false}}, SHIFT(377), - [910] = {.entry = {.count = 1, .reusable = false}}, SHIFT(534), - [912] = {.entry = {.count = 1, .reusable = false}}, SHIFT(594), - [914] = {.entry = {.count = 1, .reusable = false}}, SHIFT(378), - [916] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), - [918] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), - [920] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_class_implementation_repeat1, 2), SHIFT_REPEAT(385), - [923] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_class_implementation_repeat1, 2), - [925] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_class_implementation_repeat1, 2), SHIFT_REPEAT(532), - [928] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_class_implementation_repeat1, 2), SHIFT_REPEAT(578), - [931] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_class_implementation_repeat1, 2), SHIFT_REPEAT(377), - [934] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_class_implementation_repeat1, 2), SHIFT_REPEAT(534), - [937] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_class_implementation_repeat1, 2), SHIFT_REPEAT(594), - [940] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_class_implementation_repeat1, 2), SHIFT_REPEAT(378), - [943] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), - [945] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_custom_type_repeat1, 2, .production_id = 12), - [947] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_custom_type_repeat1, 2, .production_id = 12), SHIFT_REPEAT(575), - [950] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_custom_type_repeat1, 2, .production_id = 12), - [952] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_custom_type, 2, .production_id = 2), - [954] = {.entry = {.count = 1, .reusable = true}}, SHIFT(575), - [956] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_custom_type, 2, .production_id = 2), - [958] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_custom_type, 1, .production_id = 1), - [960] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_definition, 6, .production_id = 103), - [962] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_definition, 6, .production_id = 103), - [964] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_definition, 4, .production_id = 71), - [966] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_definition, 4, .production_id = 71), - [968] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__container_value_type, 3, .production_id = 40), - [970] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__container_value_type, 3, .production_id = 40), - [972] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_inflight_method_definition, 6, .production_id = 109), - [974] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inflight_method_definition, 6, .production_id = 109), - [976] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 5, .production_id = 88), - [978] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 5, .production_id = 88), - [980] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_definition, 5, .production_id = 89), - [982] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_definition, 5, .production_id = 89), - [984] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_mutable_container_type, 2, .production_id = 4), - [986] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_mutable_container_type, 2, .production_id = 4), - [988] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 9, .production_id = 124), - [990] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 9, .production_id = 124), - [992] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 8, .production_id = 123), - [994] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 8, .production_id = 123), - [996] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_inflight_method_definition, 5, .production_id = 87), - [998] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inflight_method_definition, 5, .production_id = 87), - [1000] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 5, .production_id = 90), - [1002] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 5, .production_id = 90), - [1004] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 5, .production_id = 91), - [1006] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 5, .production_id = 91), - [1008] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_definition, 5, .production_id = 86), - [1010] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_definition, 5, .production_id = 86), - [1012] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_definition, 5, .production_id = 92), - [1014] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_definition, 5, .production_id = 92), - [1016] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 8, .production_id = 122), - [1018] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 8, .production_id = 122), - [1020] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_definition, 4, .production_id = 74), - [1022] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_definition, 4, .production_id = 74), - [1024] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_inflight_method_definition, 7, .production_id = 117), - [1026] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inflight_method_definition, 7, .production_id = 117), - [1028] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 4, .production_id = 75), - [1030] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 4, .production_id = 75), - [1032] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_inflight_method_definition, 5, .production_id = 85), - [1034] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inflight_method_definition, 5, .production_id = 85), - [1036] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_definition, 6, .production_id = 108), - [1038] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_definition, 6, .production_id = 108), - [1040] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_inflight_method_definition, 6, .production_id = 107), - [1042] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inflight_method_definition, 6, .production_id = 107), - [1044] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 8, .production_id = 121), - [1046] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 8, .production_id = 121), - [1048] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 5, .production_id = 84), - [1050] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 5, .production_id = 84), - [1052] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_definition, 5, .production_id = 83), - [1054] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_definition, 5, .production_id = 83), - [1056] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_custom_type_repeat1, 2, .production_id = 11), - [1058] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_custom_type_repeat1, 2, .production_id = 11), - [1060] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 5, .production_id = 82), - [1062] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 5, .production_id = 82), - [1064] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_definition, 5, .production_id = 81), - [1066] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_definition, 5, .production_id = 81), - [1068] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 8, .production_id = 120), - [1070] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 8, .production_id = 120), - [1072] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_inflight_method_definition, 4, .production_id = 76), - [1074] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inflight_method_definition, 4, .production_id = 76), - [1076] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constructor, 3, .production_id = 65), - [1078] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constructor, 3, .production_id = 65), - [1080] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_definition, 5, .production_id = 93), - [1082] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_definition, 5, .production_id = 93), - [1084] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_definition, 3, .production_id = 64), - [1086] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_definition, 3, .production_id = 64), - [1088] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 5, .production_id = 80), - [1090] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 5, .production_id = 80), - [1092] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 7, .production_id = 119), - [1094] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 7, .production_id = 119), - [1096] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 5, .production_id = 94), - [1098] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 5, .production_id = 94), - [1100] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 3, .production_id = 17), - [1102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 3, .production_id = 17), - [1104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_inflight_method_definition, 5, .production_id = 95), - [1106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inflight_method_definition, 5, .production_id = 95), - [1108] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 7, .production_id = 118), - [1110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 7, .production_id = 118), - [1112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 6, .production_id = 96), - [1114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 6, .production_id = 96), - [1116] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 6, .production_id = 97), - [1118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 6, .production_id = 97), - [1120] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 4, .production_id = 36), - [1122] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 4, .production_id = 36), - [1124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_definition, 6, .production_id = 98), - [1126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_definition, 6, .production_id = 98), - [1128] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_definition, 7, .production_id = 116), - [1130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_definition, 7, .production_id = 116), - [1132] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_inflight_method_definition, 6, .production_id = 99), - [1134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inflight_method_definition, 6, .production_id = 99), - [1136] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 4, .production_id = 72), - [1138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 4, .production_id = 72), - [1140] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 6, .production_id = 100), - [1142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 6, .production_id = 100), - [1144] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 7, .production_id = 115), - [1146] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 7, .production_id = 115), - [1148] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 4, .production_id = 77), - [1150] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 4, .production_id = 77), - [1152] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 6, .production_id = 101), - [1154] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 6, .production_id = 101), - [1156] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 7, .production_id = 114), - [1158] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 7, .production_id = 114), - [1160] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_definition, 4, .production_id = 73), - [1162] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_definition, 4, .production_id = 73), - [1164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 6, .production_id = 102), - [1166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 6, .production_id = 102), - [1168] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_definition, 4, .production_id = 78), - [1170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_definition, 4, .production_id = 78), - [1172] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 6, .production_id = 110), - [1174] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 6, .production_id = 110), - [1176] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 7, .production_id = 113), - [1178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 7, .production_id = 113), - [1180] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 6, .production_id = 106), - [1182] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 6, .production_id = 106), - [1184] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 6, .production_id = 104), - [1186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 6, .production_id = 104), - [1188] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 7, .production_id = 112), - [1190] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 7, .production_id = 112), - [1192] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 7, .production_id = 111), - [1194] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 7, .production_id = 111), - [1196] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_definition, 6, .production_id = 105), - [1198] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_definition, 6, .production_id = 105), - [1200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_type, 1, .production_id = 19), - [1202] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_type, 1, .production_id = 19), - [1204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136), - [1206] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_type_list, 3), - [1208] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_type_list, 3), - [1210] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_type_list, 5), - [1212] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_type_list, 5), - [1214] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_type_list, 2), - [1216] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_type_list, 2), - [1218] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_type, 2, .production_id = 39), - [1220] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_type, 2, .production_id = 39), - [1222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), - [1224] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_type_list, 4), - [1226] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_type_list, 4), - [1228] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_immutable_container_type, 2, .production_id = 4), - [1230] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_immutable_container_type, 2, .production_id = 4), - [1232] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_builtin_type, 1), - [1234] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_builtin_type, 1), - [1236] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_type, 3, .production_id = 56), - [1238] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_type, 3, .production_id = 56), - [1240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(361), - [1242] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_optional, 2), - [1244] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_optional, 2), - [1246] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_type, 4, .production_id = 68), - [1248] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_type, 4, .production_id = 68), - [1250] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_annotation, 2, .production_id = 23), - [1252] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type_annotation, 2, .production_id = 23), - [1254] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), - [1256] = {.entry = {.count = 1, .reusable = false}}, SHIFT(138), - [1258] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76), - [1260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(367), - [1262] = {.entry = {.count = 1, .reusable = false}}, SHIFT(141), - [1264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(368), - [1266] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 2), - [1268] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 2), SHIFT_REPEAT(76), - [1271] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 2), SHIFT_REPEAT(368), - [1274] = {.entry = {.count = 1, .reusable = false}}, SHIFT(399), - [1276] = {.entry = {.count = 1, .reusable = false}}, SHIFT(494), - [1278] = {.entry = {.count = 1, .reusable = false}}, SHIFT(606), - [1280] = {.entry = {.count = 1, .reusable = false}}, SHIFT(376), - [1282] = {.entry = {.count = 1, .reusable = false}}, SHIFT(609), - [1284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(586), - [1286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177), - [1288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), - [1290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(205), - [1292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170), - [1294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195), - [1296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(204), - [1298] = {.entry = {.count = 1, .reusable = false}}, SHIFT(397), - [1300] = {.entry = {.count = 1, .reusable = false}}, SHIFT(554), - [1302] = {.entry = {.count = 1, .reusable = false}}, SHIFT(585), - [1304] = {.entry = {.count = 1, .reusable = false}}, SHIFT(593), - [1306] = {.entry = {.count = 1, .reusable = false}}, SHIFT(402), - [1308] = {.entry = {.count = 1, .reusable = false}}, SHIFT(500), - [1310] = {.entry = {.count = 1, .reusable = false}}, SHIFT(599), - [1312] = {.entry = {.count = 1, .reusable = false}}, SHIFT(600), - [1314] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_access_modifier, 1), - [1316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(414), - [1318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(539), - [1320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), - [1322] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), - [1324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), - [1326] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_substitution, 3), - [1328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_substitution, 3), - [1330] = {.entry = {.count = 1, .reusable = false}}, SHIFT(574), - [1332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(418), - [1334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), - [1336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), - [1338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(353), - [1340] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_array_literal_repeat1, 2, .production_id = 26), - [1342] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_array_literal_repeat1, 2, .production_id = 26), SHIFT_REPEAT(28), - [1345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), - [1347] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_struct_definition_repeat2, 2), SHIFT_REPEAT(539), - [1350] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_struct_definition_repeat2, 2), - [1352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(455), - [1354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), - [1356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [1358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(552), - [1360] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 5), - [1362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parameter_type_list_repeat1, 2), - [1364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(535), - [1366] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parameter_type_list_repeat1, 2), SHIFT_REPEAT(143), - [1369] = {.entry = {.count = 1, .reusable = true}}, SHIFT(571), - [1371] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212), - [1373] = {.entry = {.count = 1, .reusable = true}}, SHIFT(375), - [1375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(573), - [1377] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [1379] = {.entry = {.count = 1, .reusable = true}}, SHIFT(595), - [1381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), - [1383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(460), - [1385] = {.entry = {.count = 1, .reusable = true}}, SHIFT(288), - [1387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(566), - [1389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(285), - [1391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(565), - [1393] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 2), - [1395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(411), - [1397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(439), - [1399] = {.entry = {.count = 1, .reusable = true}}, SHIFT(582), - [1401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168), - [1403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201), - [1405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [1407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206), - [1409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(370), - [1411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), - [1413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(528), - [1415] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 3), - [1417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(389), - [1419] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), - [1421] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [1423] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196), - [1425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191), - [1427] = {.entry = {.count = 1, .reusable = true}}, SHIFT(465), - [1429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), - [1431] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_enum_definition_repeat1, 2), - [1433] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_enum_definition_repeat1, 2), SHIFT_REPEAT(581), - [1436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [1438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(477), - [1440] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_struct_definition_repeat1, 2), - [1442] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_struct_definition_repeat1, 2), SHIFT_REPEAT(580), - [1445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175), - [1447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(371), - [1449] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_map_literal_repeat1, 2, .production_id = 28), - [1451] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_map_literal_repeat1, 2, .production_id = 28), SHIFT_REPEAT(386), - [1454] = {.entry = {.count = 1, .reusable = true}}, SHIFT(408), - [1456] = {.entry = {.count = 1, .reusable = true}}, SHIFT(509), - [1458] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), - [1460] = {.entry = {.count = 1, .reusable = true}}, SHIFT(508), - [1462] = {.entry = {.count = 1, .reusable = true}}, SHIFT(441), - [1464] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145), - [1466] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 4), - [1468] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parameter_list_repeat1, 2), SHIFT_REPEAT(479), - [1471] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parameter_list_repeat1, 2), - [1473] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat2, 2), SHIFT_REPEAT(544), - [1476] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat2, 2), - [1478] = {.entry = {.count = 1, .reusable = true}}, SHIFT(192), - [1480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(475), - [1482] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2), SHIFT_REPEAT(21), - [1485] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2), - [1487] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), - [1489] = {.entry = {.count = 1, .reusable = true}}, SHIFT(454), - [1491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(426), - [1493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(381), - [1495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(542), - [1497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [1499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(471), - [1501] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [1503] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174), - [1505] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), - [1507] = {.entry = {.count = 1, .reusable = true}}, SHIFT(372), - [1509] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_struct_literal_repeat1, 2), - [1511] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_struct_literal_repeat1, 2), SHIFT_REPEAT(517), - [1514] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163), - [1516] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [1518] = {.entry = {.count = 1, .reusable = true}}, SHIFT(221), - [1520] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), - [1522] = {.entry = {.count = 1, .reusable = true}}, SHIFT(347), - [1524] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [1526] = {.entry = {.count = 1, .reusable = true}}, SHIFT(317), - [1528] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [1530] = {.entry = {.count = 1, .reusable = true}}, SHIFT(296), - [1532] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [1534] = {.entry = {.count = 1, .reusable = true}}, SHIFT(302), - [1536] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [1538] = {.entry = {.count = 1, .reusable = true}}, SHIFT(303), - [1540] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [1542] = {.entry = {.count = 1, .reusable = true}}, SHIFT(339), - [1544] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [1546] = {.entry = {.count = 1, .reusable = true}}, SHIFT(326), - [1548] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [1550] = {.entry = {.count = 1, .reusable = false}}, SHIFT(380), - [1552] = {.entry = {.count = 1, .reusable = false}}, SHIFT(583), - [1554] = {.entry = {.count = 1, .reusable = false}}, SHIFT(425), - [1556] = {.entry = {.count = 1, .reusable = false}}, SHIFT(587), - [1558] = {.entry = {.count = 1, .reusable = false}}, SHIFT(392), - [1560] = {.entry = {.count = 1, .reusable = false}}, SHIFT(592), - [1562] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), - [1564] = {.entry = {.count = 1, .reusable = true}}, SHIFT(337), - [1566] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), - [1568] = {.entry = {.count = 1, .reusable = true}}, SHIFT(327), - [1570] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [1572] = {.entry = {.count = 1, .reusable = true}}, SHIFT(551), - [1574] = {.entry = {.count = 1, .reusable = true}}, SHIFT(537), - [1576] = {.entry = {.count = 1, .reusable = true}}, SHIFT(348), - [1578] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [1580] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [1582] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [1584] = {.entry = {.count = 1, .reusable = true}}, SHIFT(345), - [1586] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [1588] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_field, 3, .production_id = 17), - [1590] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_definition, 3, .production_id = 36), - [1592] = {.entry = {.count = 1, .reusable = false}}, SHIFT(400), - [1594] = {.entry = {.count = 1, .reusable = false}}, SHIFT(601), - [1596] = {.entry = {.count = 1, .reusable = true}}, SHIFT(579), - [1598] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), - [1600] = {.entry = {.count = 1, .reusable = true}}, SHIFT(387), - [1602] = {.entry = {.count = 1, .reusable = true}}, SHIFT(570), - [1604] = {.entry = {.count = 1, .reusable = true}}, SHIFT(314), - [1606] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [1608] = {.entry = {.count = 1, .reusable = true}}, SHIFT(332), - [1610] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [1612] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [1614] = {.entry = {.count = 1, .reusable = true}}, SHIFT(413), - [1616] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_map_literal_repeat1, 2, .production_id = 10), - [1618] = {.entry = {.count = 1, .reusable = true}}, SHIFT(329), - [1620] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [1622] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_enum_definition_repeat1, 2, .production_id = 61), - [1624] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), - [1626] = {.entry = {.count = 1, .reusable = false}}, SHIFT(393), - [1628] = {.entry = {.count = 1, .reusable = false}}, SHIFT(610), - [1630] = {.entry = {.count = 1, .reusable = true}}, SHIFT(309), - [1632] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [1634] = {.entry = {.count = 1, .reusable = true}}, SHIFT(294), - [1636] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_definition, 2, .production_id = 17), - [1638] = {.entry = {.count = 1, .reusable = true}}, SHIFT(336), - [1640] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [1642] = {.entry = {.count = 1, .reusable = true}}, SHIFT(291), - [1644] = {.entry = {.count = 1, .reusable = true}}, SHIFT(452), - [1646] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), - [1648] = {.entry = {.count = 1, .reusable = true}}, SHIFT(451), - [1650] = {.entry = {.count = 1, .reusable = true}}, SHIFT(384), - [1652] = {.entry = {.count = 1, .reusable = true}}, SHIFT(373), - [1654] = {.entry = {.count = 1, .reusable = true}}, SHIFT(316), - [1656] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), - [1658] = {.entry = {.count = 1, .reusable = true}}, SHIFT(541), - [1660] = {.entry = {.count = 1, .reusable = true}}, SHIFT(504), - [1662] = {.entry = {.count = 1, .reusable = true}}, SHIFT(588), - [1664] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [1666] = {.entry = {.count = 1, .reusable = true}}, SHIFT(491), - [1668] = {.entry = {.count = 1, .reusable = true}}, SHIFT(561), - [1670] = {.entry = {.count = 1, .reusable = true}}, SHIFT(487), - [1672] = {.entry = {.count = 1, .reusable = true}}, SHIFT(437), - [1674] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), - [1676] = {.entry = {.count = 1, .reusable = true}}, SHIFT(569), - [1678] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [1680] = {.entry = {.count = 1, .reusable = true}}, SHIFT(547), - [1682] = {.entry = {.count = 1, .reusable = true}}, SHIFT(526), - [1684] = {.entry = {.count = 1, .reusable = true}}, SHIFT(488), - [1686] = {.entry = {.count = 1, .reusable = true}}, SHIFT(498), - [1688] = {.entry = {.count = 1, .reusable = true}}, SHIFT(525), - [1690] = {.entry = {.count = 1, .reusable = true}}, SHIFT(434), - [1692] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [1694] = {.entry = {.count = 1, .reusable = true}}, SHIFT(514), - [1696] = {.entry = {.count = 1, .reusable = true}}, SHIFT(510), - [1698] = {.entry = {.count = 1, .reusable = true}}, SHIFT(515), - [1700] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), - [1702] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), - [1704] = {.entry = {.count = 1, .reusable = true}}, SHIFT(431), - [1706] = {.entry = {.count = 1, .reusable = true}}, SHIFT(430), - [1708] = {.entry = {.count = 1, .reusable = true}}, SHIFT(533), - [1710] = {.entry = {.count = 1, .reusable = true}}, SHIFT(589), - [1712] = {.entry = {.count = 1, .reusable = true}}, SHIFT(536), - [1714] = {.entry = {.count = 1, .reusable = true}}, SHIFT(567), - [1716] = {.entry = {.count = 1, .reusable = true}}, SHIFT(516), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(679), + [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(501), + [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(729), + [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(728), + [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(18), + [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(578), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(726), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(725), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(724), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(29), + [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(48), + [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(681), + [35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(722), + [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(45), + [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(581), + [41] = {.entry = {.count = 1, .reusable = false}}, SHIFT(159), + [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), + [45] = {.entry = {.count = 1, .reusable = false}}, SHIFT(190), + [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(412), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), + [51] = {.entry = {.count = 1, .reusable = false}}, SHIFT(414), + [53] = {.entry = {.count = 1, .reusable = false}}, SHIFT(587), + [55] = {.entry = {.count = 1, .reusable = false}}, SHIFT(592), + [57] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [59] = {.entry = {.count = 1, .reusable = false}}, SHIFT(33), + [61] = {.entry = {.count = 1, .reusable = false}}, SHIFT(34), + [63] = {.entry = {.count = 1, .reusable = false}}, SHIFT(35), + [65] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [67] = {.entry = {.count = 1, .reusable = false}}, SHIFT(256), + [69] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), + [71] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(155), + [74] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(12), + [77] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(679), + [80] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(501), + [83] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(729), + [86] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(728), + [89] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(18), + [92] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(578), + [95] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(726), + [98] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(725), + [101] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(724), + [104] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(29), + [107] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(48), + [110] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(681), + [113] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(722), + [116] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(45), + [119] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(581), + [122] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(159), + [125] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(159), + [128] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(190), + [131] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(412), + [134] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(11), + [137] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(414), + [140] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(587), + [143] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(592), + [146] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(33), + [149] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(33), + [152] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(34), + [155] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(35), + [158] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(23), + [161] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(256), + [164] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), + [166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182), + [168] = {.entry = {.count = 1, .reusable = true}}, SHIFT(221), + [170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source, 1), + [174] = {.entry = {.count = 1, .reusable = false}}, SHIFT(243), + [176] = {.entry = {.count = 1, .reusable = true}}, SHIFT(546), + [178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170), + [180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(531), + [182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), + [184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(516), + [186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), + [188] = {.entry = {.count = 1, .reusable = false}}, SHIFT(241), + [190] = {.entry = {.count = 1, .reusable = false}}, SHIFT(699), + [192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(471), + [194] = {.entry = {.count = 1, .reusable = false}}, SHIFT(242), + [196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(222), + [198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(203), + [200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206), + [202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(231), + [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210), + [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211), + [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), + [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(233), + [212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191), + [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), + [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189), + [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(228), + [220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209), + [222] = {.entry = {.count = 1, .reusable = false}}, SHIFT(268), + [224] = {.entry = {.count = 1, .reusable = false}}, SHIFT(410), + [226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [228] = {.entry = {.count = 1, .reusable = false}}, SHIFT(64), + [230] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63), + [232] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62), + [234] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2), + [236] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2), + [238] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 3), + [240] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 3), + [242] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 2, .production_id = 54), + [244] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 2, .production_id = 54), + [246] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 2, .production_id = 54), SHIFT_REPEAT(61), + [249] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 16), + [251] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, .production_id = 16), + [253] = {.entry = {.count = 1, .reusable = false}}, SHIFT(577), + [255] = {.entry = {.count = 1, .reusable = false}}, SHIFT(61), + [257] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 4, .production_id = 33), + [259] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 4, .production_id = 33), + [261] = {.entry = {.count = 1, .reusable = false}}, SHIFT(582), + [263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_catch_statement, 2, .production_id = 3), + [265] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_catch_statement, 2, .production_id = 3), + [267] = {.entry = {.count = 1, .reusable = false}}, SHIFT(539), + [269] = {.entry = {.count = 1, .reusable = false}}, SHIFT(657), + [271] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_elif_block, 3, .production_id = 16), + [273] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_elif_block, 3, .production_id = 16), + [275] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 1, .production_id = 32), + [277] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 1, .production_id = 32), + [279] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_catch_statement, 5, .production_id = 55), + [281] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_catch_statement, 5, .production_id = 55), + [283] = {.entry = {.count = 1, .reusable = false}}, SHIFT(660), + [285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_catch_statement, 4, .production_id = 34), + [287] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_catch_statement, 4, .production_id = 34), + [289] = {.entry = {.count = 1, .reusable = false}}, SHIFT(585), + [291] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_statement, 2), + [293] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_statement, 2), + [295] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_implementation, 2), + [297] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_implementation, 2), + [299] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_definition, 5, .production_id = 51), + [301] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interface_definition, 5, .production_id = 51), + [303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_resource_definition, 8, .production_id = 106), + [305] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_resource_definition, 8, .production_id = 106), + [307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_catch_statement, 6, .production_id = 70), + [309] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_catch_statement, 6, .production_id = 70), + [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_catch_statement, 4, .production_id = 35), + [313] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_catch_statement, 4, .production_id = 35), + [315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 53), + [317] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 53), + [319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_definition_statement, 7, .production_id = 73), + [321] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_definition_statement, 7, .production_id = 73), + [323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_definition, 7, .production_id = 48), + [325] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_definition, 7, .production_id = 48), + [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_continue_statement, 2), + [329] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_continue_statement, 2), + [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_break_statement, 2), + [333] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_break_statement, 2), + [335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_definition, 7, .production_id = 30), + [337] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_definition, 7, .production_id = 30), + [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_short_import_statement, 5, .production_id = 47), + [341] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_short_import_statement, 5, .production_id = 47), + [343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_definition, 5, .production_id = 30), + [345] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_definition, 5, .production_id = 30), + [347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_definition, 7, .production_id = 83), + [349] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interface_definition, 7, .production_id = 83), + [351] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 2), + [353] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 2), + [355] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_catch_statement, 7, .production_id = 89), + [357] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_catch_statement, 7, .production_id = 89), + [359] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 7, .production_id = 82), + [361] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 7, .production_id = 82), + [363] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_implementation, 3), + [365] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interface_implementation, 3), + [367] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_definition, 9, .production_id = 30), + [369] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_definition, 9, .production_id = 30), + [371] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_definition, 8, .production_id = 30), + [373] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_definition, 8, .production_id = 30), + [375] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_implementation, 2), + [377] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interface_implementation, 2), + [379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_resource_implementation, 2), + [381] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_resource_implementation, 2), + [383] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_resource_definition, 7, .production_id = 82), + [385] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_resource_definition, 7, .production_id = 82), + [387] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_resource_implementation, 3), + [389] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_resource_implementation, 3), + [391] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_definition_statement, 6, .production_id = 63), + [393] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_definition_statement, 6, .production_id = 63), + [395] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_definition_statement, 5, .production_id = 49), + [397] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_definition_statement, 5, .production_id = 49), + [399] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_resource_definition, 5, .production_id = 51), + [401] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_resource_definition, 5, .production_id = 51), + [403] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 7, .production_id = 83), + [405] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 7, .production_id = 83), + [407] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_assignment_statement, 4, .production_id = 41), + [409] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_assignment_statement, 4, .production_id = 41), + [411] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_definition, 6, .production_id = 67), + [413] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interface_definition, 6, .production_id = 67), + [415] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_resource_definition, 6, .production_id = 67), + [417] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_resource_definition, 6, .production_id = 67), + [419] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_definition, 4, .production_id = 31), + [421] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_definition, 4, .production_id = 31), + [423] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 6, .production_id = 67), + [425] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 6, .production_id = 67), + [427] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_definition_statement, 6, .production_id = 64), + [429] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_definition_statement, 6, .production_id = 64), + [431] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_definition, 4, .production_id = 30), + [433] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_definition, 4, .production_id = 30), + [435] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, .production_id = 69), + [437] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, .production_id = 69), + [439] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 8, .production_id = 106), + [441] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 8, .production_id = 106), + [443] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_short_import_statement, 3, .production_id = 13), + [445] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_short_import_statement, 3, .production_id = 13), + [447] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 3, .production_id = 14), + [449] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 3, .production_id = 14), + [451] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_definition, 6, .production_id = 48), + [453] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_definition, 6, .production_id = 48), + [455] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_resource_definition, 9, .production_id = 131), + [457] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_resource_definition, 9, .production_id = 131), + [459] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 9, .production_id = 131), + [461] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 9, .production_id = 131), + [463] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_definition, 6, .production_id = 30), + [465] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_definition, 6, .production_id = 30), + [467] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 3, .production_id = 15), + [469] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 3, .production_id = 15), + [471] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_resource_definition, 3, .production_id = 15), + [473] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_resource_definition, 3, .production_id = 15), + [475] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_definition, 3, .production_id = 15), + [477] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interface_definition, 3, .production_id = 15), + [479] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_implementation, 3), + [481] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_implementation, 3), + [483] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 3, .production_id = 16), + [485] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 3, .production_id = 16), + [487] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_resource_definition, 7, .production_id = 83), + [489] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_resource_definition, 7, .production_id = 83), + [491] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_definition, 5, .production_id = 48), + [493] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_definition, 5, .production_id = 48), + [495] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_loop, 5, .production_id = 52), + [497] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_in_loop, 5, .production_id = 52), + [499] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 5, .production_id = 50), + [501] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 5, .production_id = 50), + [503] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 5, .production_id = 51), + [505] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 5, .production_id = 51), + [507] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_resource_definition, 5, .production_id = 50), + [509] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_resource_definition, 5, .production_id = 50), + [511] = {.entry = {.count = 1, .reusable = true}}, SHIFT(417), + [513] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), + [515] = {.entry = {.count = 1, .reusable = true}}, SHIFT(587), + [517] = {.entry = {.count = 1, .reusable = true}}, SHIFT(592), + [519] = {.entry = {.count = 1, .reusable = false}}, SHIFT(311), + [521] = {.entry = {.count = 1, .reusable = false}}, SHIFT(648), + [523] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), + [525] = {.entry = {.count = 1, .reusable = true}}, SHIFT(382), + [527] = {.entry = {.count = 1, .reusable = false}}, SHIFT(406), + [529] = {.entry = {.count = 1, .reusable = true}}, SHIFT(394), + [531] = {.entry = {.count = 1, .reusable = true}}, SHIFT(384), + [533] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_custom_type, 1, .production_id = 1), + [535] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_reference, 1), + [537] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_reference, 1), SHIFT(711), + [540] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_reference, 1), + [542] = {.entry = {.count = 1, .reusable = false}}, SHIFT(168), + [544] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_nested_identifier, 2, .production_id = 1), + [546] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_nested_identifier, 2, .production_id = 1), + [548] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 3), + [550] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 3), + [552] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__literal, 1), + [554] = {.entry = {.count = 1, .reusable = true}}, SHIFT(178), + [556] = {.entry = {.count = 1, .reusable = true}}, SHIFT(180), + [558] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), + [560] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__literal, 1), + [562] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_number, 1), + [564] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_number, 1), + [566] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_new_expression, 3, .production_id = 18), + [568] = {.entry = {.count = 1, .reusable = true}}, SHIFT(649), + [570] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [572] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_new_expression, 3, .production_id = 18), + [574] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 2), + [576] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 2), + [578] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 3), + [580] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 3), + [582] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 9), + [584] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 9), + [586] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 5), + [588] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 5), + [590] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4), + [592] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 4), + [594] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_nested_identifier, 3, .production_id = 21), + [596] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_nested_identifier, 3, .production_id = 21), + [598] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 6), + [600] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 6), + [602] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 2), + [604] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 2), + [606] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 7), + [608] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 7), + [610] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 8), + [612] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 8), + [614] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_new_expression, 4, .production_id = 37), + [616] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_new_expression, 4, .production_id = 37), + [618] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_expression, 3, .production_id = 22), + [620] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), + [622] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [624] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_expression, 3, .production_id = 22), + [626] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_new_object_id, 2), + [628] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_new_object_id, 2), + [630] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_call, 2, .production_id = 6), + [632] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_call, 2, .production_id = 6), + [634] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_duration, 1), + [636] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_duration, 1), + [638] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_seconds, 2, .production_id = 7), + [640] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_seconds, 2, .production_id = 7), + [642] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_new_expression, 5, .production_id = 56), + [644] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_new_expression, 5, .production_id = 56), + [646] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_minutes, 2, .production_id = 7), + [648] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_minutes, 2, .production_id = 7), + [650] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_literal, 3, .production_id = 9), + [652] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_literal, 3, .production_id = 9), + [654] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_new_object_scope, 2), + [656] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76), + [658] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [660] = {.entry = {.count = 1, .reusable = false}}, SHIFT(72), + [662] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [664] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [666] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [668] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [670] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [672] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [674] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [676] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [678] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_literal, 3, .production_id = 20), + [680] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_literal, 3, .production_id = 20), + [682] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_literal, 5, .production_id = 25), + [684] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_literal, 5, .production_id = 25), + [686] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_hours, 2, .production_id = 7), + [688] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_hours, 2, .production_id = 7), + [690] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_defer_expression, 2), + [692] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_literal, 5, .production_id = 58), + [694] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_literal, 5, .production_id = 58), + [696] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_literal, 2), + [698] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_literal, 2), + [700] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bool, 1), + [702] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_bool, 1), + [704] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set_literal, 5, .production_id = 44), + [706] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set_literal, 5, .production_id = 44), + [708] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set_literal, 5, .production_id = 60), + [710] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set_literal, 5, .production_id = 60), + [712] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_map_literal, 5, .production_id = 45), + [714] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_map_literal, 5, .production_id = 45), + [716] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preflight_closure, 3, .production_id = 24), + [718] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preflight_closure, 3, .production_id = 24), + [720] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_new_expression, 4, .production_id = 38), + [722] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_new_expression, 4, .production_id = 38), + [724] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_map_literal, 3, .production_id = 20), + [726] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_map_literal, 3, .production_id = 20), + [728] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_json_element, 1), + [730] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_json_element, 1), + [732] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_map_literal, 5, .production_id = 61), + [734] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_map_literal, 5, .production_id = 61), + [736] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_literal, 3, .production_id = 20), + [738] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_literal, 3, .production_id = 20), + [740] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_expression, 2, .production_id = 5), + [742] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_expression, 2, .production_id = 5), + [744] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_map_literal, 2), + [746] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_map_literal, 2), + [748] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_literal, 5, .production_id = 44), + [750] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_literal, 5, .production_id = 44), + [752] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_literal, 4, .production_id = 9), + [754] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_literal, 4, .production_id = 9), + [756] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set_literal, 4, .production_id = 9), + [758] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set_literal, 4, .production_id = 9), + [760] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_literal, 4, .production_id = 25), + [762] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_literal, 4, .production_id = 25), + [764] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set_literal, 4, .production_id = 25), + [766] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set_literal, 4, .production_id = 25), + [768] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_literal, 5, .production_id = 60), + [770] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_literal, 5, .production_id = 60), + [772] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_map_literal, 4, .production_id = 10), + [774] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_map_literal, 4, .production_id = 10), + [776] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1), + [778] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1), + [780] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_map_literal, 4, .production_id = 27), + [782] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_map_literal, 4, .production_id = 27), + [784] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_await_expression, 2), + [786] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inflight_closure, 4, .production_id = 29), + [788] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_inflight_closure, 4, .production_id = 29), + [790] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_json_literal, 2, .production_id = 8), + [792] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_json_literal, 2, .production_id = 8), + [794] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set_literal, 3, .production_id = 9), + [796] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set_literal, 3, .production_id = 9), + [798] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_literal, 4, .production_id = 42), + [800] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_literal, 4, .production_id = 42), + [802] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_literal, 6, .production_id = 72), + [804] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_literal, 6, .production_id = 72), + [806] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_expression, 3), + [808] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_expression, 3), + [810] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set_literal, 6, .production_id = 60), + [812] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set_literal, 6, .production_id = 60), + [814] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_map_literal, 6, .production_id = 61), + [816] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_map_literal, 6, .production_id = 61), + [818] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inflight_closure, 5, .production_id = 46), + [820] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_inflight_closure, 5, .production_id = 46), + [822] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_literal, 6, .production_id = 60), + [824] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_literal, 6, .production_id = 60), + [826] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_map_literal, 5, .production_id = 27), + [828] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_map_literal, 5, .production_id = 27), + [830] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set_literal, 5, .production_id = 25), + [832] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set_literal, 5, .production_id = 25), + [834] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_map_literal, 3, .production_id = 10), + [836] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_map_literal, 3, .production_id = 10), + [838] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_structured_access_expression, 4), + [840] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_structured_access_expression, 4), + [842] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_literal, 4, .production_id = 44), + [844] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_literal, 4, .production_id = 44), + [846] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_preflight_closure, 4, .production_id = 43), + [848] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_preflight_closure, 4, .production_id = 43), + [850] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_map_literal, 4, .production_id = 45), + [852] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_map_literal, 4, .production_id = 45), + [854] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set_literal, 4, .production_id = 44), + [856] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set_literal, 4, .production_id = 44), + [858] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), + [860] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [862] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [864] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [866] = {.entry = {.count = 1, .reusable = true}}, SHIFT(224), + [868] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [870] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_array_literal_repeat1, 2, .production_id = 9), + [872] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [874] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181), + [876] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [878] = {.entry = {.count = 1, .reusable = true}}, SHIFT(237), + [880] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240), + [882] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [884] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [886] = {.entry = {.count = 1, .reusable = false}}, SHIFT(60), + [888] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [890] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58), + [892] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [894] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [896] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [898] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [900] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [902] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [904] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [906] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_map_literal_member, 3), + [908] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_positional_argument, 1), + [910] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_json_container_type, 1), + [912] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_json_container_type, 1), + [914] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_keyword_argument, 3, .production_id = 59), + [916] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_literal_member, 3), + [918] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), + [920] = {.entry = {.count = 1, .reusable = true}}, SHIFT(365), + [922] = {.entry = {.count = 1, .reusable = true}}, SHIFT(324), + [924] = {.entry = {.count = 1, .reusable = true}}, SHIFT(369), + [926] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), + [928] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_reference, 1), REDUCE(sym_custom_type, 1, .production_id = 1), + [931] = {.entry = {.count = 1, .reusable = true}}, SHIFT(335), + [933] = {.entry = {.count = 1, .reusable = true}}, SHIFT(363), + [935] = {.entry = {.count = 1, .reusable = true}}, SHIFT(323), + [937] = {.entry = {.count = 1, .reusable = true}}, SHIFT(347), + [939] = {.entry = {.count = 1, .reusable = true}}, SHIFT(326), + [941] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), + [943] = {.entry = {.count = 1, .reusable = true}}, SHIFT(330), + [945] = {.entry = {.count = 1, .reusable = true}}, SHIFT(351), + [947] = {.entry = {.count = 1, .reusable = true}}, SHIFT(463), + [949] = {.entry = {.count = 1, .reusable = true}}, SHIFT(321), + [951] = {.entry = {.count = 1, .reusable = true}}, SHIFT(346), + [953] = {.entry = {.count = 1, .reusable = true}}, SHIFT(236), + [955] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), + [957] = {.entry = {.count = 1, .reusable = true}}, SHIFT(227), + [959] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), + [961] = {.entry = {.count = 1, .reusable = true}}, SHIFT(316), + [963] = {.entry = {.count = 1, .reusable = false}}, SHIFT(51), + [965] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), + [967] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), + [969] = {.entry = {.count = 1, .reusable = true}}, SHIFT(355), + [971] = {.entry = {.count = 1, .reusable = true}}, SHIFT(350), + [973] = {.entry = {.count = 1, .reusable = true}}, SHIFT(318), + [975] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [977] = {.entry = {.count = 1, .reusable = false}}, SHIFT(441), + [979] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), + [981] = {.entry = {.count = 1, .reusable = false}}, SHIFT(588), + [983] = {.entry = {.count = 1, .reusable = false}}, SHIFT(714), + [985] = {.entry = {.count = 1, .reusable = false}}, SHIFT(419), + [987] = {.entry = {.count = 1, .reusable = false}}, SHIFT(593), + [989] = {.entry = {.count = 1, .reusable = false}}, SHIFT(717), + [991] = {.entry = {.count = 1, .reusable = false}}, SHIFT(423), + [993] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_class_implementation_repeat1, 2), SHIFT_REPEAT(441), + [996] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_class_implementation_repeat1, 2), + [998] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_class_implementation_repeat1, 2), SHIFT_REPEAT(588), + [1001] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_class_implementation_repeat1, 2), SHIFT_REPEAT(714), + [1004] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_class_implementation_repeat1, 2), SHIFT_REPEAT(419), + [1007] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_class_implementation_repeat1, 2), SHIFT_REPEAT(593), + [1010] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_class_implementation_repeat1, 2), SHIFT_REPEAT(717), + [1013] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_class_implementation_repeat1, 2), SHIFT_REPEAT(423), + [1016] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), + [1018] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [1020] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), + [1022] = {.entry = {.count = 1, .reusable = false}}, SHIFT(450), + [1024] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), + [1026] = {.entry = {.count = 1, .reusable = false}}, SHIFT(580), + [1028] = {.entry = {.count = 1, .reusable = false}}, SHIFT(425), + [1030] = {.entry = {.count = 1, .reusable = false}}, SHIFT(721), + [1032] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_interface_implementation_repeat1, 2), SHIFT_REPEAT(450), + [1035] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_interface_implementation_repeat1, 2), + [1037] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_interface_implementation_repeat1, 2), SHIFT_REPEAT(580), + [1040] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_interface_implementation_repeat1, 2), SHIFT_REPEAT(714), + [1043] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_interface_implementation_repeat1, 2), SHIFT_REPEAT(425), + [1046] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_interface_implementation_repeat1, 2), SHIFT_REPEAT(721), + [1049] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_interface_implementation_repeat1, 2), SHIFT_REPEAT(423), + [1052] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), + [1054] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_custom_type_repeat1, 2, .production_id = 12), + [1056] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_custom_type_repeat1, 2, .production_id = 12), SHIFT_REPEAT(711), + [1059] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_custom_type_repeat1, 2, .production_id = 12), + [1061] = {.entry = {.count = 1, .reusable = true}}, SHIFT(711), + [1063] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_custom_type, 1, .production_id = 1), + [1065] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_custom_type, 2, .production_id = 2), + [1067] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_custom_type, 2, .production_id = 2), + [1069] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_custom_type_repeat1, 2, .production_id = 11), + [1071] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_custom_type_repeat1, 2, .production_id = 11), + [1073] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_definition, 4, .production_id = 74), + [1075] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_definition, 4, .production_id = 74), + [1077] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_inflight_method_definition, 5, .production_id = 97), + [1079] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inflight_method_definition, 5, .production_id = 97), + [1081] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 9, .production_id = 154), + [1083] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 9, .production_id = 154), + [1085] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_definition, 5, .production_id = 99), + [1087] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_definition, 5, .production_id = 99), + [1089] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 5, .production_id = 90), + [1091] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 5, .production_id = 90), + [1093] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 5, .production_id = 100), + [1095] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 5, .production_id = 100), + [1097] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_inflight_method_definition, 7, .production_id = 145), + [1099] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inflight_method_definition, 7, .production_id = 145), + [1101] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 7, .production_id = 143), + [1103] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 7, .production_id = 143), + [1105] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 5, .production_id = 101), + [1107] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 5, .production_id = 101), + [1109] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 7, .production_id = 142), + [1111] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 7, .production_id = 142), + [1113] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 6, .production_id = 122), + [1115] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 6, .production_id = 122), + [1117] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 6, .production_id = 124), + [1119] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 6, .production_id = 124), + [1121] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 7, .production_id = 141), + [1123] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 7, .production_id = 141), + [1125] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_definition, 5, .production_id = 102), + [1127] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_definition, 5, .production_id = 102), + [1129] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_definition, 5, .production_id = 103), + [1131] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_definition, 5, .production_id = 103), + [1133] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 5, .production_id = 104), + [1135] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 5, .production_id = 104), + [1137] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 7, .production_id = 140), + [1139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 7, .production_id = 140), + [1141] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constructor, 3, .production_id = 66), + [1143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constructor, 3, .production_id = 66), + [1145] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_definition, 3, .production_id = 65), + [1147] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_definition, 3, .production_id = 65), + [1149] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_definition, 6, .production_id = 125), + [1151] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_definition, 6, .production_id = 125), + [1153] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 3, .production_id = 17), + [1155] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 3, .production_id = 17), + [1157] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 8, .production_id = 153), + [1159] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 8, .production_id = 153), + [1161] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_inflight_method_definition, 5, .production_id = 95), + [1163] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inflight_method_definition, 5, .production_id = 95), + [1165] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 5, .production_id = 94), + [1167] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 5, .production_id = 94), + [1169] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 6, .production_id = 126), + [1171] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 6, .production_id = 126), + [1173] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_definition, 5, .production_id = 93), + [1175] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_definition, 5, .production_id = 93), + [1177] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_inflight_method_definition, 5, .production_id = 105), + [1179] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inflight_method_definition, 5, .production_id = 105), + [1181] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 4, .production_id = 36), + [1183] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 4, .production_id = 36), + [1185] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_definition, 5, .production_id = 96), + [1187] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_definition, 5, .production_id = 96), + [1189] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_definition, 7, .production_id = 144), + [1191] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_definition, 7, .production_id = 144), + [1193] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 4, .production_id = 80), + [1195] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 4, .production_id = 80), + [1197] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 6, .production_id = 130), + [1199] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 6, .production_id = 130), + [1201] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 7, .production_id = 139), + [1203] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 7, .production_id = 139), + [1205] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 6, .production_id = 116), + [1207] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 6, .production_id = 116), + [1209] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 4, .production_id = 75), + [1211] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 4, .production_id = 75), + [1213] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_definition, 6, .production_id = 123), + [1215] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_definition, 6, .production_id = 123), + [1217] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 8, .production_id = 151), + [1219] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 8, .production_id = 151), + [1221] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 6, .production_id = 117), + [1223] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 6, .production_id = 117), + [1225] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_definition, 4, .production_id = 76), + [1227] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_definition, 4, .production_id = 76), + [1229] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_definition, 4, .production_id = 77), + [1231] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_definition, 4, .production_id = 77), + [1233] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 5, .production_id = 98), + [1235] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 5, .production_id = 98), + [1237] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 8, .production_id = 150), + [1239] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 8, .production_id = 150), + [1241] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 5, .production_id = 92), + [1243] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 5, .production_id = 92), + [1245] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_definition, 6, .production_id = 118), + [1247] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_definition, 6, .production_id = 118), + [1249] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_inflight_method_definition, 4, .production_id = 79), + [1251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inflight_method_definition, 4, .production_id = 79), + [1253] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_definition, 5, .production_id = 91), + [1255] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_definition, 5, .production_id = 91), + [1257] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_inflight_method_definition, 6, .production_id = 119), + [1259] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inflight_method_definition, 6, .production_id = 119), + [1261] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 6, .production_id = 120), + [1263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 6, .production_id = 120), + [1265] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__container_value_type, 3, .production_id = 40), + [1267] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__container_value_type, 3, .production_id = 40), + [1269] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 6, .production_id = 121), + [1271] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 6, .production_id = 121), + [1273] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_definition, 6, .production_id = 128), + [1275] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_definition, 6, .production_id = 128), + [1277] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 8, .production_id = 152), + [1279] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 8, .production_id = 152), + [1281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_mutable_container_type, 2, .production_id = 4), + [1283] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_mutable_container_type, 2, .production_id = 4), + [1285] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_definition, 4, .production_id = 81), + [1287] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_definition, 4, .production_id = 81), + [1289] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_inflight_method_definition, 6, .production_id = 129), + [1291] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inflight_method_definition, 6, .production_id = 129), + [1293] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 7, .production_id = 147), + [1295] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 7, .production_id = 147), + [1297] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_inflight_method_definition, 6, .production_id = 127), + [1299] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inflight_method_definition, 6, .production_id = 127), + [1301] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 7, .production_id = 146), + [1303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 7, .production_id = 146), + [1305] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_field, 4, .production_id = 78), + [1307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_field, 4, .production_id = 78), + [1309] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_signature, 4, .production_id = 84), + [1311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_signature, 4, .production_id = 84), + [1313] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_signature, 5, .production_id = 108), + [1315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_signature, 5, .production_id = 108), + [1317] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_inflight_method_signature, 5, .production_id = 109), + [1319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inflight_method_signature, 5, .production_id = 109), + [1321] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_signature, 5, .production_id = 107), + [1323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_signature, 5, .production_id = 107), + [1325] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_signature, 5, .production_id = 110), + [1327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_signature, 5, .production_id = 110), + [1329] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_inflight_method_signature, 5, .production_id = 111), + [1331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inflight_method_signature, 5, .production_id = 111), + [1333] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_signature, 5, .production_id = 112), + [1335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_signature, 5, .production_id = 112), + [1337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_type, 2, .production_id = 39), + [1339] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_type, 2, .production_id = 39), + [1341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), + [1343] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_signature, 5, .production_id = 113), + [1345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_signature, 5, .production_id = 113), + [1347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_type_list, 2), + [1349] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_type_list, 2), + [1351] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_signature, 5, .production_id = 114), + [1353] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_signature, 5, .production_id = 114), + [1355] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_type_list, 4), + [1357] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_type_list, 4), + [1359] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_type_list, 3), + [1361] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_type_list, 3), + [1363] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_signature, 4, .production_id = 85), + [1365] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_signature, 4, .production_id = 85), + [1367] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_inflight_method_signature, 5, .production_id = 115), + [1369] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inflight_method_signature, 5, .production_id = 115), + [1371] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_signature, 3, .production_id = 68), + [1373] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_signature, 3, .production_id = 68), + [1375] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_signature, 4, .production_id = 86), + [1377] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_signature, 4, .production_id = 86), + [1379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_immutable_container_type, 2, .production_id = 4), + [1381] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_immutable_container_type, 2, .production_id = 4), + [1383] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_inflight_method_signature, 7, .production_id = 149), + [1385] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inflight_method_signature, 7, .production_id = 149), + [1387] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_signature, 7, .production_id = 148), + [1389] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_signature, 7, .production_id = 148), + [1391] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_type, 1, .production_id = 19), + [1393] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_type, 1, .production_id = 19), + [1395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), + [1397] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_type_list, 5), + [1399] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_type_list, 5), + [1401] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_inflight_method_signature, 4, .production_id = 87), + [1403] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inflight_method_signature, 4, .production_id = 87), + [1405] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_signature, 4, .production_id = 88), + [1407] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_signature, 4, .production_id = 88), + [1409] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_inflight_method_signature, 6, .production_id = 138), + [1411] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inflight_method_signature, 6, .production_id = 138), + [1413] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_signature, 6, .production_id = 137), + [1415] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_signature, 6, .production_id = 137), + [1417] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_inflight_method_signature, 6, .production_id = 136), + [1419] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inflight_method_signature, 6, .production_id = 136), + [1421] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_signature, 6, .production_id = 135), + [1423] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_signature, 6, .production_id = 135), + [1425] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_signature, 6, .production_id = 134), + [1427] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_signature, 6, .production_id = 134), + [1429] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_inflight_method_signature, 6, .production_id = 133), + [1431] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inflight_method_signature, 6, .production_id = 133), + [1433] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_signature, 6, .production_id = 132), + [1435] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_signature, 6, .production_id = 132), + [1437] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_type, 3, .production_id = 57), + [1439] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_type, 3, .production_id = 57), + [1441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(405), + [1443] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_optional, 2), + [1445] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_optional, 2), + [1447] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_builtin_type, 1), + [1449] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_builtin_type, 1), + [1451] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_type, 4, .production_id = 71), + [1453] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_type, 4, .production_id = 71), + [1455] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_annotation, 2, .production_id = 23), + [1457] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type_annotation, 2, .production_id = 23), + [1459] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), + [1461] = {.entry = {.count = 1, .reusable = false}}, SHIFT(157), + [1463] = {.entry = {.count = 1, .reusable = false}}, SHIFT(74), + [1465] = {.entry = {.count = 1, .reusable = true}}, SHIFT(415), + [1467] = {.entry = {.count = 1, .reusable = false}}, SHIFT(443), + [1469] = {.entry = {.count = 1, .reusable = false}}, SHIFT(575), + [1471] = {.entry = {.count = 1, .reusable = false}}, SHIFT(697), + [1473] = {.entry = {.count = 1, .reusable = false}}, SHIFT(426), + [1475] = {.entry = {.count = 1, .reusable = false}}, SHIFT(687), + [1477] = {.entry = {.count = 1, .reusable = false}}, SHIFT(161), + [1479] = {.entry = {.count = 1, .reusable = true}}, SHIFT(409), + [1481] = {.entry = {.count = 1, .reusable = false}}, SHIFT(429), + [1483] = {.entry = {.count = 1, .reusable = false}}, SHIFT(651), + [1485] = {.entry = {.count = 1, .reusable = false}}, SHIFT(416), + [1487] = {.entry = {.count = 1, .reusable = false}}, SHIFT(708), + [1489] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 2), + [1491] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 2), SHIFT_REPEAT(74), + [1494] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 2), SHIFT_REPEAT(415), + [1497] = {.entry = {.count = 1, .reusable = false}}, SHIFT(447), + [1499] = {.entry = {.count = 1, .reusable = false}}, SHIFT(584), + [1501] = {.entry = {.count = 1, .reusable = false}}, SHIFT(718), + [1503] = {.entry = {.count = 1, .reusable = false}}, SHIFT(719), + [1505] = {.entry = {.count = 1, .reusable = true}}, SHIFT(691), + [1507] = {.entry = {.count = 1, .reusable = true}}, SHIFT(208), + [1509] = {.entry = {.count = 1, .reusable = true}}, SHIFT(234), + [1511] = {.entry = {.count = 1, .reusable = false}}, SHIFT(460), + [1513] = {.entry = {.count = 1, .reusable = false}}, SHIFT(617), + [1515] = {.entry = {.count = 1, .reusable = false}}, SHIFT(727), + [1517] = {.entry = {.count = 1, .reusable = false}}, SHIFT(710), + [1519] = {.entry = {.count = 1, .reusable = true}}, SHIFT(232), + [1521] = {.entry = {.count = 1, .reusable = true}}, SHIFT(200), + [1523] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215), + [1525] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_access_modifier, 1), + [1527] = {.entry = {.count = 1, .reusable = true}}, SHIFT(229), + [1529] = {.entry = {.count = 1, .reusable = false}}, SHIFT(467), + [1531] = {.entry = {.count = 1, .reusable = false}}, SHIFT(628), + [1533] = {.entry = {.count = 1, .reusable = false}}, SHIFT(689), + [1535] = {.entry = {.count = 1, .reusable = false}}, SHIFT(470), + [1537] = {.entry = {.count = 1, .reusable = false}}, SHIFT(637), + [1539] = {.entry = {.count = 1, .reusable = false}}, SHIFT(693), + [1541] = {.entry = {.count = 1, .reusable = true}}, SHIFT(306), + [1543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(461), + [1545] = {.entry = {.count = 1, .reusable = true}}, SHIFT(311), + [1547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(489), + [1549] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_array_literal_repeat1, 2, .production_id = 26), + [1551] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_array_literal_repeat1, 2, .production_id = 26), SHIFT_REPEAT(67), + [1554] = {.entry = {.count = 1, .reusable = true}}, SHIFT(305), + [1556] = {.entry = {.count = 1, .reusable = true}}, SHIFT(600), + [1558] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [1560] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), + [1562] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 3), + [1564] = {.entry = {.count = 1, .reusable = true}}, SHIFT(451), + [1566] = {.entry = {.count = 1, .reusable = true}}, SHIFT(428), + [1568] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), + [1570] = {.entry = {.count = 1, .reusable = true}}, SHIFT(480), + [1572] = {.entry = {.count = 1, .reusable = true}}, SHIFT(457), + [1574] = {.entry = {.count = 1, .reusable = true}}, SHIFT(307), + [1576] = {.entry = {.count = 1, .reusable = true}}, SHIFT(494), + [1578] = {.entry = {.count = 1, .reusable = false}}, SHIFT(673), + [1580] = {.entry = {.count = 1, .reusable = true}}, SHIFT(472), + [1582] = {.entry = {.count = 1, .reusable = true}}, SHIFT(475), + [1584] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_substitution, 3), + [1586] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_substitution, 3), + [1588] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), + [1590] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), + [1592] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 2), + [1594] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 4), + [1596] = {.entry = {.count = 1, .reusable = true}}, SHIFT(431), + [1598] = {.entry = {.count = 1, .reusable = true}}, SHIFT(487), + [1600] = {.entry = {.count = 1, .reusable = true}}, SHIFT(433), + [1602] = {.entry = {.count = 1, .reusable = true}}, SHIFT(663), + [1604] = {.entry = {.count = 1, .reusable = true}}, SHIFT(662), + [1606] = {.entry = {.count = 1, .reusable = true}}, SHIFT(665), + [1608] = {.entry = {.count = 1, .reusable = true}}, SHIFT(664), + [1610] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 5), + [1612] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), + [1614] = {.entry = {.count = 1, .reusable = true}}, SHIFT(385), + [1616] = {.entry = {.count = 1, .reusable = true}}, SHIFT(476), + [1618] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), + [1620] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_struct_definition_repeat2, 2), SHIFT_REPEAT(600), + [1623] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_struct_definition_repeat2, 2), + [1625] = {.entry = {.count = 1, .reusable = true}}, SHIFT(375), + [1627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(551), + [1629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171), + [1631] = {.entry = {.count = 1, .reusable = true}}, SHIFT(610), + [1633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [1635] = {.entry = {.count = 1, .reusable = true}}, SHIFT(214), + [1637] = {.entry = {.count = 1, .reusable = true}}, SHIFT(636), + [1639] = {.entry = {.count = 1, .reusable = true}}, SHIFT(205), + [1641] = {.entry = {.count = 1, .reusable = true}}, SHIFT(424), + [1643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(235), + [1645] = {.entry = {.count = 1, .reusable = true}}, SHIFT(422), + [1647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199), + [1649] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [1651] = {.entry = {.count = 1, .reusable = true}}, SHIFT(527), + [1653] = {.entry = {.count = 1, .reusable = true}}, SHIFT(712), + [1655] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), + [1657] = {.entry = {.count = 1, .reusable = true}}, SHIFT(674), + [1659] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [1661] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), + [1663] = {.entry = {.count = 1, .reusable = true}}, SHIFT(661), + [1665] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169), + [1667] = {.entry = {.count = 1, .reusable = true}}, SHIFT(458), + [1669] = {.entry = {.count = 1, .reusable = true}}, SHIFT(446), + [1671] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188), + [1673] = {.entry = {.count = 1, .reusable = true}}, SHIFT(523), + [1675] = {.entry = {.count = 1, .reusable = true}}, SHIFT(688), + [1677] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184), + [1679] = {.entry = {.count = 1, .reusable = true}}, SHIFT(570), + [1681] = {.entry = {.count = 1, .reusable = true}}, SHIFT(226), + [1683] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_struct_literal_repeat1, 2), + [1685] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_struct_literal_repeat1, 2), SHIFT_REPEAT(677), + [1688] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), + [1690] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [1692] = {.entry = {.count = 1, .reusable = true}}, SHIFT(217), + [1694] = {.entry = {.count = 1, .reusable = true}}, SHIFT(420), + [1696] = {.entry = {.count = 1, .reusable = true}}, SHIFT(525), + [1698] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), + [1700] = {.entry = {.count = 1, .reusable = true}}, SHIFT(388), + [1702] = {.entry = {.count = 1, .reusable = true}}, SHIFT(462), + [1704] = {.entry = {.count = 1, .reusable = true}}, SHIFT(633), + [1706] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2), SHIFT_REPEAT(21), + [1709] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2), + [1711] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parameter_type_list_repeat1, 2), SHIFT_REPEAT(152), + [1714] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parameter_type_list_repeat1, 2), + [1716] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat2, 2), SHIFT_REPEAT(621), + [1719] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat2, 2), + [1721] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [1723] = {.entry = {.count = 1, .reusable = true}}, SHIFT(642), + [1725] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parameter_list_repeat1, 2), SHIFT_REPEAT(511), + [1728] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parameter_list_repeat1, 2), + [1730] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), + [1732] = {.entry = {.count = 1, .reusable = true}}, SHIFT(624), + [1734] = {.entry = {.count = 1, .reusable = true}}, SHIFT(478), + [1736] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [1738] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212), + [1740] = {.entry = {.count = 1, .reusable = true}}, SHIFT(225), + [1742] = {.entry = {.count = 1, .reusable = true}}, SHIFT(520), + [1744] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163), + [1746] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [1748] = {.entry = {.count = 1, .reusable = true}}, SHIFT(508), + [1750] = {.entry = {.count = 1, .reusable = true}}, SHIFT(239), + [1752] = {.entry = {.count = 1, .reusable = true}}, SHIFT(421), + [1754] = {.entry = {.count = 1, .reusable = true}}, SHIFT(530), + [1756] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172), + [1758] = {.entry = {.count = 1, .reusable = true}}, SHIFT(374), + [1760] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_struct_definition_repeat1, 2), + [1762] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_struct_definition_repeat1, 2), SHIFT_REPEAT(702), + [1765] = {.entry = {.count = 1, .reusable = true}}, SHIFT(396), + [1767] = {.entry = {.count = 1, .reusable = true}}, SHIFT(399), + [1769] = {.entry = {.count = 1, .reusable = true}}, SHIFT(395), + [1771] = {.entry = {.count = 1, .reusable = true}}, SHIFT(400), + [1773] = {.entry = {.count = 1, .reusable = true}}, SHIFT(389), + [1775] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_enum_definition_repeat1, 2), + [1777] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_enum_definition_repeat1, 2), SHIFT_REPEAT(706), + [1780] = {.entry = {.count = 1, .reusable = true}}, SHIFT(381), + [1782] = {.entry = {.count = 1, .reusable = true}}, SHIFT(652), + [1784] = {.entry = {.count = 1, .reusable = true}}, SHIFT(493), + [1786] = {.entry = {.count = 1, .reusable = true}}, SHIFT(635), + [1788] = {.entry = {.count = 1, .reusable = true}}, SHIFT(383), + [1790] = {.entry = {.count = 1, .reusable = true}}, SHIFT(387), + [1792] = {.entry = {.count = 1, .reusable = true}}, SHIFT(386), + [1794] = {.entry = {.count = 1, .reusable = true}}, SHIFT(656), + [1796] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_map_literal_repeat1, 2, .production_id = 28), + [1798] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_map_literal_repeat1, 2, .production_id = 28), SHIFT_REPEAT(498), + [1801] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), + [1803] = {.entry = {.count = 1, .reusable = true}}, SHIFT(667), + [1805] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_class_definition_repeat1, 2), + [1807] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_class_definition_repeat1, 2), SHIFT_REPEAT(650), + [1810] = {.entry = {.count = 1, .reusable = false}}, SHIFT(474), + [1812] = {.entry = {.count = 1, .reusable = false}}, SHIFT(720), + [1814] = {.entry = {.count = 1, .reusable = false}}, SHIFT(513), + [1816] = {.entry = {.count = 1, .reusable = false}}, SHIFT(704), + [1818] = {.entry = {.count = 1, .reusable = false}}, SHIFT(469), + [1820] = {.entry = {.count = 1, .reusable = false}}, SHIFT(703), + [1822] = {.entry = {.count = 1, .reusable = false}}, SHIFT(484), + [1824] = {.entry = {.count = 1, .reusable = false}}, SHIFT(686), + [1826] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), + [1828] = {.entry = {.count = 1, .reusable = false}}, SHIFT(430), + [1830] = {.entry = {.count = 1, .reusable = true}}, SHIFT(361), + [1832] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [1834] = {.entry = {.count = 1, .reusable = true}}, SHIFT(344), + [1836] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [1838] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), + [1840] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [1842] = {.entry = {.count = 1, .reusable = true}}, SHIFT(372), + [1844] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), + [1846] = {.entry = {.count = 1, .reusable = true}}, SHIFT(325), + [1848] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [1850] = {.entry = {.count = 1, .reusable = true}}, SHIFT(356), + [1852] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [1854] = {.entry = {.count = 1, .reusable = true}}, SHIFT(338), + [1856] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [1858] = {.entry = {.count = 1, .reusable = true}}, SHIFT(562), + [1860] = {.entry = {.count = 1, .reusable = true}}, SHIFT(439), + [1862] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [1864] = {.entry = {.count = 1, .reusable = true}}, SHIFT(707), + [1866] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), + [1868] = {.entry = {.count = 1, .reusable = true}}, SHIFT(345), + [1870] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [1872] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_map_literal_repeat1, 2, .production_id = 10), + [1874] = {.entry = {.count = 1, .reusable = true}}, SHIFT(348), + [1876] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [1878] = {.entry = {.count = 1, .reusable = true}}, SHIFT(341), + [1880] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [1882] = {.entry = {.count = 1, .reusable = false}}, SHIFT(437), + [1884] = {.entry = {.count = 1, .reusable = false}}, SHIFT(709), + [1886] = {.entry = {.count = 1, .reusable = true}}, SHIFT(468), + [1888] = {.entry = {.count = 1, .reusable = true}}, SHIFT(607), + [1890] = {.entry = {.count = 1, .reusable = true}}, SHIFT(337), + [1892] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [1894] = {.entry = {.count = 1, .reusable = true}}, SHIFT(625), + [1896] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [1898] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_enum_definition_repeat1, 2, .production_id = 62), + [1900] = {.entry = {.count = 1, .reusable = false}}, SHIFT(466), + [1902] = {.entry = {.count = 1, .reusable = true}}, SHIFT(639), + [1904] = {.entry = {.count = 1, .reusable = true}}, SHIFT(497), + [1906] = {.entry = {.count = 1, .reusable = true}}, SHIFT(354), + [1908] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [1910] = {.entry = {.count = 1, .reusable = false}}, SHIFT(464), + [1912] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_definition, 3, .production_id = 36), + [1914] = {.entry = {.count = 1, .reusable = true}}, SHIFT(418), + [1916] = {.entry = {.count = 1, .reusable = true}}, SHIFT(334), + [1918] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [1920] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_field, 3, .production_id = 17), + [1922] = {.entry = {.count = 1, .reusable = true}}, SHIFT(362), + [1924] = {.entry = {.count = 1, .reusable = false}}, SHIFT(452), + [1926] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_definition, 2, .production_id = 17), + [1928] = {.entry = {.count = 1, .reusable = true}}, SHIFT(371), + [1930] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [1932] = {.entry = {.count = 1, .reusable = true}}, SHIFT(329), + [1934] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [1936] = {.entry = {.count = 1, .reusable = true}}, SHIFT(319), + [1938] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [1940] = {.entry = {.count = 1, .reusable = true}}, SHIFT(322), + [1942] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [1944] = {.entry = {.count = 1, .reusable = true}}, SHIFT(568), + [1946] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), + [1948] = {.entry = {.count = 1, .reusable = true}}, SHIFT(678), + [1950] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), + [1952] = {.entry = {.count = 1, .reusable = true}}, SHIFT(609), + [1954] = {.entry = {.count = 1, .reusable = true}}, SHIFT(646), + [1956] = {.entry = {.count = 1, .reusable = true}}, SHIFT(391), + [1958] = {.entry = {.count = 1, .reusable = true}}, SHIFT(392), + [1960] = {.entry = {.count = 1, .reusable = true}}, SHIFT(606), + [1962] = {.entry = {.count = 1, .reusable = true}}, SHIFT(641), + [1964] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), + [1966] = {.entry = {.count = 1, .reusable = true}}, SHIFT(574), + [1968] = {.entry = {.count = 1, .reusable = true}}, SHIFT(638), + [1970] = {.entry = {.count = 1, .reusable = true}}, SHIFT(376), + [1972] = {.entry = {.count = 1, .reusable = true}}, SHIFT(653), + [1974] = {.entry = {.count = 1, .reusable = true}}, SHIFT(397), + [1976] = {.entry = {.count = 1, .reusable = true}}, SHIFT(377), + [1978] = {.entry = {.count = 1, .reusable = true}}, SHIFT(398), + [1980] = {.entry = {.count = 1, .reusable = true}}, SHIFT(591), + [1982] = {.entry = {.count = 1, .reusable = true}}, SHIFT(378), + [1984] = {.entry = {.count = 1, .reusable = true}}, SHIFT(573), + [1986] = {.entry = {.count = 1, .reusable = true}}, SHIFT(379), + [1988] = {.entry = {.count = 1, .reusable = true}}, SHIFT(401), + [1990] = {.entry = {.count = 1, .reusable = true}}, SHIFT(596), + [1992] = {.entry = {.count = 1, .reusable = true}}, SHIFT(538), + [1994] = {.entry = {.count = 1, .reusable = true}}, SHIFT(402), + [1996] = {.entry = {.count = 1, .reusable = true}}, SHIFT(732), + [1998] = {.entry = {.count = 1, .reusable = true}}, SHIFT(583), + [2000] = {.entry = {.count = 1, .reusable = true}}, SHIFT(626), + [2002] = {.entry = {.count = 1, .reusable = true}}, SHIFT(605), + [2004] = {.entry = {.count = 1, .reusable = true}}, SHIFT(313), + [2006] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [2008] = {.entry = {.count = 1, .reusable = true}}, SHIFT(623), + [2010] = {.entry = {.count = 1, .reusable = true}}, SHIFT(519), + [2012] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [2014] = {.entry = {.count = 1, .reusable = true}}, SHIFT(620), + [2016] = {.entry = {.count = 1, .reusable = true}}, SHIFT(675), + [2018] = {.entry = {.count = 1, .reusable = true}}, SHIFT(672), + [2020] = {.entry = {.count = 1, .reusable = true}}, SHIFT(666), + [2022] = {.entry = {.count = 1, .reusable = true}}, SHIFT(627), + [2024] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), + [2026] = {.entry = {.count = 1, .reusable = true}}, SHIFT(403), + [2028] = {.entry = {.count = 1, .reusable = true}}, SHIFT(515), + [2030] = {.entry = {.count = 1, .reusable = true}}, SHIFT(481), + [2032] = {.entry = {.count = 1, .reusable = true}}, SHIFT(485), + [2034] = {.entry = {.count = 1, .reusable = true}}, SHIFT(595), + [2036] = {.entry = {.count = 1, .reusable = true}}, SHIFT(680), + [2038] = {.entry = {.count = 1, .reusable = true}}, SHIFT(619), + [2040] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [2042] = {.entry = {.count = 1, .reusable = true}}, SHIFT(373), + [2044] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), }; #ifdef __cplusplus diff --git a/libs/tree-sitter-wing/test/corpus/statements/class_and_resource.txt b/libs/tree-sitter-wing/test/corpus/statements/class_and_resource.txt index fc43fe3e071..61fe6927e64 100644 --- a/libs/tree-sitter-wing/test/corpus/statements/class_and_resource.txt +++ b/libs/tree-sitter-wing/test/corpus/statements/class_and_resource.txt @@ -159,7 +159,7 @@ resource A { Resource inheritance ================================== -resource A extends B {} +resource A extends B impl C, D {} --- (source @@ -168,6 +168,49 @@ resource A extends B {} parent: (custom_type object: (identifier) ) + implements: (custom_type + object: (identifier) + ) + implements: (custom_type + object: (identifier) + ) implementation: (resource_implementation) ) ) + +================================== +Interface definition +================================== + +interface A extends B, C { + do_something(); + inflight do_something_else(x: str): num; + a_member: str; + inflight b_member: num; +} + +--- +(source + (interface_definition + name: (identifier) + implements: (custom_type + object: (identifier)) + implements: (custom_type + object: (identifier)) + implementation: (interface_implementation + (method_signature + name: (identifier) + parameter_list: (parameter_list)) + (inflight_method_signature + name: (identifier) + parameter_list: (parameter_list + (parameter_definition + name: (identifier) + type: (builtin_type))) + type: (builtin_type)) + (class_field + name: (identifier) + type: (builtin_type)) + (class_field + name: (identifier) + type: (builtin_type))))) diff --git a/libs/wingc/src/ast.rs b/libs/wingc/src/ast.rs index 7402f42a2b0..919a00305aa 100644 --- a/libs/wingc/src/ast.rs +++ b/libs/wingc/src/ast.rs @@ -120,6 +120,17 @@ pub struct UserDefinedType { pub fields: Vec, } +impl Display for UserDefinedType { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + let mut name = self.root.name.clone(); + for field in &self.fields { + name.push('.'); + name.push_str(&field.name); + } + write!(f, "{}", name) + } +} + impl Display for TypeAnnotation { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match self { @@ -137,9 +148,7 @@ impl Display for TypeAnnotation { TypeAnnotation::Set(t) => write!(f, "Set<{}>", t), TypeAnnotation::MutSet(t) => write!(f, "MutSet<{}>", t), TypeAnnotation::FunctionSignature(sig) => write!(f, "{}", sig), - TypeAnnotation::UserDefined(user_defined_type) => { - write!(f, "{}", user_defined_type.root.name) - } + TypeAnnotation::UserDefined(user_defined_type) => write!(f, "{}", user_defined_type), } } } @@ -237,6 +246,7 @@ pub struct Class { pub methods: Vec<(Symbol, FunctionDefinition)>, pub constructor: Constructor, pub parent: Option, + pub implements: Vec, pub is_resource: bool, } @@ -507,3 +517,35 @@ impl Display for Reference { } } } + +/// Represents any type that has a span. +pub trait ToSpan { + fn span(&self) -> WingSpan; +} + +impl ToSpan for Stmt { + fn span(&self) -> WingSpan { + self.span.clone() + } +} + +impl ToSpan for Expr { + fn span(&self) -> WingSpan { + self.span.clone() + } +} + +impl ToSpan for Symbol { + fn span(&self) -> WingSpan { + self.span.clone() + } +} + +impl ToSpan for Box +where + T: ToSpan, +{ + fn span(&self) -> WingSpan { + (&**self).span() + } +} diff --git a/libs/wingc/src/capture.rs b/libs/wingc/src/capture.rs index 7e847da7828..ae8b431b03c 100644 --- a/libs/wingc/src/capture.rs +++ b/libs/wingc/src/capture.rs @@ -182,7 +182,7 @@ fn scan_captures_in_expression( res.extend( resource .methods(true) - .filter(|(_, sig)| matches!(sig.as_function_sig().unwrap().flight, Phase::Inflight)) + .filter(|(_, sig)| matches!(sig.as_function_sig().unwrap().phase, Phase::Inflight)) .map(|(name, _)| Capture { symbol: symbol.clone(), ops: vec![CaptureOperation { member: name.clone() }], @@ -239,7 +239,7 @@ fn scan_captures_in_expression( // TODO: handle accessing things other than function_sigs while recursively accessing Reference? if let Some(func) = prop_type.as_function_sig() { assert!( - func.flight != Phase::Preflight, + func.phase != Phase::Preflight, "Can't access preflight method {property} inflight" ); } diff --git a/libs/wingc/src/jsify.rs b/libs/wingc/src/jsify.rs index d4eddba7319..50ca6512132 100644 --- a/libs/wingc/src/jsify.rs +++ b/libs/wingc/src/jsify.rs @@ -1173,7 +1173,7 @@ impl<'a> JSifier<'a> { .unwrap() .methods(true) .filter_map(|(name, sig)| { - if sig.as_function_sig().unwrap().flight == Phase::Inflight { + if sig.as_function_sig().unwrap().phase == Phase::Inflight { Some(name) } else { None diff --git a/libs/wingc/src/lib.rs b/libs/wingc/src/lib.rs index 4f0d13ae8dc..25daaf65bd6 100644 --- a/libs/wingc/src/lib.rs +++ b/libs/wingc/src/lib.rs @@ -177,7 +177,7 @@ pub fn type_check(scope: &mut Scope, types: &mut Types, source_path: &Path) -> D Type::Function(FunctionSignature { parameters: vec![types.string()], return_type: types.void(), - flight: Phase::Independent, + phase: Phase::Independent, js_override: Some("{console.log($args$)}".to_string()), }), scope, @@ -188,7 +188,7 @@ pub fn type_check(scope: &mut Scope, types: &mut Types, source_path: &Path) -> D Type::Function(FunctionSignature { parameters: vec![types.bool()], return_type: types.void(), - flight: Phase::Independent, + phase: Phase::Independent, js_override: Some("{((cond) => {if (!cond) throw new Error(`assertion failed: '$args$'`)})($args$)}".to_string()), }), scope, @@ -199,7 +199,7 @@ pub fn type_check(scope: &mut Scope, types: &mut Types, source_path: &Path) -> D Type::Function(FunctionSignature { parameters: vec![types.string()], return_type: types.void(), - flight: Phase::Independent, + phase: Phase::Independent, js_override: Some("{((msg) => {throw new Error(msg)})($args$)}".to_string()), }), scope, @@ -210,7 +210,7 @@ pub fn type_check(scope: &mut Scope, types: &mut Types, source_path: &Path) -> D Type::Function(FunctionSignature { parameters: vec![types.string()], return_type: types.void(), - flight: Phase::Independent, + phase: Phase::Independent, js_override: Some("{((msg) => {console.error(msg, (new Error()).stack);process.exit(1)})($args$)}".to_string()), }), scope, diff --git a/libs/wingc/src/parser.rs b/libs/wingc/src/parser.rs index f6eadb246f2..7097c9b9068 100644 --- a/libs/wingc/src/parser.rs +++ b/libs/wingc/src/parser.rs @@ -26,6 +26,7 @@ pub struct Parser<'a> { // k=grammar, v=optional_message, example: ("generic", "targed impl: 1.0.0") static UNIMPLEMENTED_GRAMMARS: phf::Map<&'static str, &'static str> = phf_map! { "struct_definition" => "see https://github.com/winglang/wing/issues/120", + "interface_definition" => "see https://github.com/winglang/wing/issues/123", "any" => "see https://github.com/winglang/wing/issues/434", "void" => "see https://github.com/winglang/wing/issues/432", "nil" => "see https://github.com/winglang/wing/issues/433", @@ -516,11 +517,40 @@ impl<'s> Parser<'s> { } else { None }; + + let mut implements = vec![]; + for type_node in statement_node.children_by_field_name("implements", &mut cursor) { + // ignore comments + if type_node.is_extra() { + continue; + } + + // ignore commas + if !type_node.is_named() { + continue; + } + + let interface_type = self.build_type_annotation(&type_node)?; + match interface_type { + TypeAnnotation::UserDefined(interface_type) => implements.push(interface_type), + _ => { + self.add_error::( + format!( + "Implemented interface must be a user defined type, found {}", + interface_type + ), + &type_node, + )?; + } + } + } + Ok(StmtKind::Class(Class { name, fields, methods, parent, + implements, constructor: constructor.unwrap(), is_resource, })) diff --git a/libs/wingc/src/type_check.rs b/libs/wingc/src/type_check.rs index 52bca849374..a9153703fa9 100644 --- a/libs/wingc/src/type_check.rs +++ b/libs/wingc/src/type_check.rs @@ -2,7 +2,7 @@ mod jsii_importer; pub mod symbol_env; use crate::ast::{ Class as AstClass, Expr, ExprKind, InterpolatedStringPart, Literal, Phase, Reference, Scope, Stmt, StmtKind, Symbol, - TypeAnnotation, UnaryOperator, UserDefinedType, + ToSpan, TypeAnnotation, UnaryOperator, UserDefinedType, }; use crate::diagnostic::{Diagnostic, DiagnosticLevel, Diagnostics, TypeError}; use crate::{ @@ -295,6 +295,9 @@ trait Subtype { /// Subtype is a partial order, so if a.is_subtype_of(b) is false, it does /// not imply that b.is_subtype_of(a) is true. It is also reflexive, so /// a.is_subtype_of(a) is always true. + /// + /// TODO: change return type to allow additional subtyping information to be + /// returned, for better error messages when one type isn't the subtype of another. fn is_subtype_of(&self, other: &Self) -> bool; fn is_same_type_as(&self, other: &Self) -> bool { @@ -306,6 +309,27 @@ trait Subtype { } } +impl Subtype for Phase { + fn is_subtype_of(&self, other: &Self) -> bool { + // We model phase subtyping as if the independent phase is an + // intersection type of preflight and inflight. This means that + // independent = preflight & inflight. + // + // This means the following pseudocode is valid: + // > let x: preflight fn = ; + // (a phase-independent function is a subtype of a preflight function) + // + // But the following pseudocode is not valid: + // > let x: independent fn = ; + // (a preflight function is not a subtype of an inflight function) + if self == &Phase::Independent { + true + } else { + self == other + } + } +} + impl Subtype for Type { fn is_subtype_of(&self, other: &Self) -> bool { // If references are the same this is the same type, if not then compare content @@ -317,8 +341,55 @@ impl Subtype for Type { // TODO: Hack to make anything's compatible with all other types, specifically useful for handling core.Inflight handlers true } - // TODO: implement function subtyping - https://github.com/winglang/wing/issues/1677 - (Self::Function(l0), Self::Function(r0)) => l0 == r0, + (Self::Function(l0), Self::Function(r0)) => { + if !l0.phase.is_subtype_of(&r0.phase) { + return false; + } + + // If the return types are not subtypes of each other, then this is not a subtype + // exception: if function type we are assigning to returns void, then any return type is ok + if !l0.return_type.is_subtype_of(&r0.return_type) && !(r0.return_type.is_void()) { + return false; + } + + // In this section, we check if the parameter types are not subtypes of each other, then this is not a subtype. + + // Check that this function has at least as many required parameters as the other function requires + if l0.min_parameters() < r0.min_parameters() { + return false; + } + + let mut lparams = l0.parameters.iter().peekable(); + let mut rparams = r0.parameters.iter().peekable(); + + // If the first parameter is a class or resource, then we assume it refers to the `this` parameter + // in a class or resource, and skip it. + // TODO: remove this after https://github.com/winglang/wing/issues/1678 + if matches!( + lparams.peek().map(|t| &***t), + Some(&Type::Class(_)) | Some(&Type::Resource(_)) | Some(&Type::Interface(_)) + ) { + lparams.next(); + } + + if matches!( + rparams.peek().map(|t| &***t), + Some(&Type::Class(_)) | Some(&Type::Resource(_)) | Some(&Type::Interface(_)) + ) { + rparams.next(); + } + + for (l, r) in lparams.zip(rparams) { + // parameter types are contravariant, which means even if Cat is a subtype of Animal, + // (Cat) => void is not a subtype of (Animal) => void + // but (Animal) => void is a subtype of (Cat) => void + // see https://en.wikipedia.org/wiki/Covariance_and_contravariance_(computer_science) + if l.is_strict_subtype_of(&r) { + return false; + } + } + true + } (Self::Class(l0), Self::Class(_)) => { // If we extend from `other` then I'm a subtype of it (inheritance) if let Some(parent) = l0.parent.as_ref() { @@ -438,7 +509,7 @@ impl Subtype for Type { pub struct FunctionSignature { pub parameters: Vec, pub return_type: TypeRef, - pub flight: Phase, + pub phase: Phase, /// During jsify, calls to this function will be replaced with this string /// In JSII imports, this is denoted by the `@macro` attribute @@ -448,6 +519,30 @@ pub struct FunctionSignature { pub js_override: Option, } +impl FunctionSignature { + /// Returns the minimum number of parameters that need to be passed to this function. + fn min_parameters(&self) -> usize { + // Count number of optional parameters from the end of the constructor's params + // Allow arg_list to be missing up to that number of option (or any) values to try and make the number of arguments match + let num_optionals = self + .parameters + .iter() + .rev() + // TODO - as a hack we treat `anything` arguments like optionals so that () => {} can be a subtype of (any) => {} + .take_while(|arg| arg.is_option() || arg.is_anything()) + .count(); + + self.parameters.len() - num_optionals + } + + /// Returns the maximum number of parameters that can be passed to this function. + /// + /// TODO: how to represent unlimited parameters in the case of variadics? + fn max_parameters(&self) -> usize { + self.parameters.len() + } +} + impl PartialEq for FunctionSignature { fn eq(&self, other: &Self) -> bool { self @@ -456,7 +551,7 @@ impl PartialEq for FunctionSignature { .zip(other.parameters.iter()) .all(|(x, y)| x.is_same_type_as(y)) && self.return_type.is_same_type_as(&other.return_type) - && self.flight == other.flight + && self.phase == other.phase } } @@ -500,7 +595,7 @@ impl Display for Type { impl Display for FunctionSignature { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - let phase_str = match self.flight { + let phase_str = match self.phase { Phase::Inflight => "inflight ", Phase::Preflight => "preflight ", Phase::Independent => "", @@ -557,6 +652,14 @@ impl TypeRef { } } + fn as_interface(&self) -> Option<&Interface> { + if let Type::Interface(ref iface) = **self { + Some(iface) + } else { + None + } + } + fn maybe_unwrap_option(&self) -> TypeRef { if let Type::Optional(ref t) = **self { *t @@ -1020,19 +1123,10 @@ impl<'a> TypeChecker<'a> { self.validate_structural_type(&arg_list.named_args, &last_arg, exp, env, statement_idx, context); } - // Count number of optional parameters from the end of the constructor's params - // Allow arg_list to be missing up to that number of nil values to try and make the number of arguments match - let num_optionals = constructor_sig - .parameters - .iter() - .rev() - .take_while(|arg| arg.is_option()) - .count(); - // Verify arity let arg_count = arg_list.pos_args.len() + (if arg_list.named_args.is_empty() { 0 } else { 1 }); - let min_args = constructor_sig.parameters.len() - num_optionals; - let max_args = constructor_sig.parameters.len(); + let min_args = constructor_sig.min_parameters(); + let max_args = constructor_sig.max_parameters(); if arg_count < min_args || arg_count > max_args { let err_text = if min_args == max_args { format!( @@ -1104,10 +1198,10 @@ impl<'a> TypeChecker<'a> { return self.expr_error(&*function, format!("should be a function or method")); }; - if !env.flight.can_call_to(&func_sig.flight) { + if !env.flight.can_call_to(&func_sig.phase) { self.expr_error( exp, - format!("Cannot call into {} phase while {}", func_sig.flight, env.flight), + format!("Cannot call into {} phase while {}", func_sig.phase, env.flight), ); } @@ -1380,14 +1474,14 @@ impl<'a> TypeChecker<'a> { /// Validate that the given type is a subtype (or same) as the expected type. If not, add an error /// to the diagnostics. /// Returns the given type on success, otherwise returns the expected type. - fn validate_type(&mut self, actual_type: TypeRef, expected_type: TypeRef, value: &Expr) -> TypeRef { - self.validate_type_in(actual_type, &[expected_type], value) + fn validate_type(&mut self, actual_type: TypeRef, expected_type: TypeRef, span: &impl ToSpan) -> TypeRef { + self.validate_type_in(actual_type, &[expected_type], span) } - /// Validate that the given type is a subtype (or same) as the on of the expected types. If not, add + /// Validate that the given type is a subtype (or same) as the one of the expected types. If not, add /// an error to the diagnostics. /// Returns the given type on success, otherwise returns one of the expected types. - fn validate_type_in(&mut self, actual_type: TypeRef, expected_types: &[TypeRef], value: &Expr) -> TypeRef { + fn validate_type_in(&mut self, actual_type: TypeRef, expected_types: &[TypeRef], span: &impl ToSpan) -> TypeRef { assert!(expected_types.len() > 0); if !actual_type.is_anything() && !expected_types @@ -1411,7 +1505,7 @@ impl<'a> TypeChecker<'a> { expected_types[0], actual_type ) }, - span: Some(value.span.clone()), + span: Some(span.span()), level: DiagnosticLevel::Error, }); expected_types[0] @@ -1454,7 +1548,7 @@ impl<'a> TypeChecker<'a> { return_type: ast_sig.return_type.as_ref().map_or(self.types.void(), |t| { self.resolve_type_annotation(t, env, statement_idx) }), - flight: ast_sig.flight, + phase: ast_sig.flight, js_override: None, }; // TODO: avoid creating a new type for each function_sig resolution @@ -1743,6 +1837,7 @@ impl<'a> TypeChecker<'a> { fields, methods, parent, + implements, constructor, is_resource, }) => { @@ -1934,7 +2029,7 @@ impl<'a> TypeChecker<'a> { method_sig.return_type, false, false, - method_sig.flight, + method_sig.phase, stmt.idx, ); // Add `this` as first argument @@ -1954,7 +2049,44 @@ impl<'a> TypeChecker<'a> { self.inner_scopes.push(&method_def.statements); } - // TODO: type check that class satisfies interfaces - https://github.com/winglang/wing/issues/1697 + // Check that the class satisfies all of its interfaces + for interface in implements.iter() { + let interface_type = + resolve_user_defined_type(interface, env, stmt.idx).unwrap_or_else(|e| self.type_error(e)); + let interface_type = interface_type.as_interface().expect("Expected interface type"); + + // Check all methods are implemented + for (method_name, method_type) in interface_type.methods(true) { + if let Some(symbol) = class_env.try_lookup(&method_name, None) { + let class_method_type = symbol.as_variable().expect("Expected method to be a variable").type_; + self.validate_type(class_method_type, method_type, name); + } else { + self.type_error(TypeError { + message: format!( + "Resource \"{}\" does not implement method \"{}\" of interface \"{}\"", + name, method_name, interface + ), + span: name.span.clone(), + }); + } + } + + // Check all fields are implemented + for (field_name, field_type) in interface_type.fields(true) { + if let Some(symbol) = class_env.try_lookup(&field_name, None) { + let class_field_type = symbol.as_variable().expect("Expected field to be a variable").type_; + self.validate_type(class_field_type, field_type, name); + } else { + self.type_error(TypeError { + message: format!( + "Resource \"{}\" does not implement field \"{}\" of interface \"{}\"", + name, field_name, interface + ), + span: name.span.clone(), + }); + } + } + } } StmtKind::Struct { name, extends, members } => { // Note: structs don't have a parent environment, instead they flatten their parent's members into the struct's env. @@ -2250,7 +2382,7 @@ impl<'a> TypeChecker<'a> { let new_sig = FunctionSignature { parameters: new_args, return_type: new_return_type, - flight: sig.flight.clone(), + phase: sig.phase, js_override: sig.js_override.clone(), }; @@ -2687,3 +2819,28 @@ pub fn resolve_user_defined_type_by_fqn( let user_defined_type = UserDefinedType { root, fields }; resolve_user_defined_type(&user_defined_type, env, statement_idx) } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn phase_subtyping() { + // subtyping is reflexive + assert!(Phase::Independent.is_subtype_of(&Phase::Independent)); + assert!(Phase::Preflight.is_subtype_of(&Phase::Preflight)); + assert!(Phase::Inflight.is_subtype_of(&Phase::Inflight)); + + // independent is a subtype of preflight + assert!(Phase::Independent.is_subtype_of(&Phase::Preflight)); + assert!(!Phase::Preflight.is_subtype_of(&Phase::Independent)); + + // independent is a subtype of inflight + assert!(Phase::Independent.is_subtype_of(&Phase::Inflight)); + assert!(!Phase::Inflight.is_subtype_of(&Phase::Independent)); + + // preflight and inflight are not subtypes of each other + assert!(!Phase::Preflight.is_subtype_of(&Phase::Inflight)); + assert!(!Phase::Inflight.is_subtype_of(&Phase::Preflight)); + } +} diff --git a/libs/wingc/src/type_check/jsii_importer.rs b/libs/wingc/src/type_check/jsii_importer.rs index 470370a49b8..e3dacd4c644 100644 --- a/libs/wingc/src/type_check/jsii_importer.rs +++ b/libs/wingc/src/type_check/jsii_importer.rs @@ -103,7 +103,7 @@ impl<'a> JsiiImporter<'a> { self.wing_types.add_type(Type::Function(FunctionSignature { parameters: vec![self.wing_types.anything()], return_type: self.wing_types.anything(), - flight: Phase::Inflight, + phase: Phase::Inflight, js_override: None, })) } else if type_fqn == &format!("{}.{}", WINGSDK_ASSEMBLY_NAME, WINGSDK_DURATION) { @@ -390,6 +390,37 @@ impl<'a> JsiiImporter<'a> { )); } + // Add inflight methods from any docstring-linked interfaces to the new interface's env + // For example, `IBucket` could contain all of the preflight methods of a bucket, and + // contain docstring tag of "@inflight IBucketClient" where `IBucketClient` is an interface + // that contains all of the inflight methods of a bucket. + if !is_struct { + // Look for a client interface for this resource + let inflight_tag: Option<&str> = extract_docstring_tag(&jsii_interface.docs, "inflight"); + + let client_interface = inflight_tag + .map(|fqn| { + // Some fully qualified package names include "@" characters, + // so they have to be escaped in the original docstring. + if fqn.starts_with("`") && fqn.ends_with("`") { + &fqn[1..fqn.len() - 1] + } else { + fqn + } + }) + .and_then(|fqn| self.jsii_types.find_interface(&FQN::from(fqn))); + + if let Some(client_interface) = client_interface { + // Add client interface's methods to the class environment + self.add_members_to_class_env(client_interface, false, Phase::Inflight, &mut iface_env, wing_type); + } else { + debug!( + "Interface {} does not seem to have an inflight client", + type_name.green() + ); + } + } + // Replace the dummy struct environment with the real one after adding all properties match *wing_type { Type::Struct(Struct { ref mut env, .. }) | Type::Interface(Interface { ref mut env, .. }) => *env = iface_env, @@ -450,7 +481,7 @@ impl<'a> JsiiImporter<'a> { let method_sig = self.wing_types.add_type(Type::Function(FunctionSignature { parameters: arg_types, return_type, - flight, + phase: flight, js_override: m .docs .as_ref() @@ -683,7 +714,7 @@ impl<'a> JsiiImporter<'a> { let method_sig = self.wing_types.add_type(Type::Function(FunctionSignature { parameters: arg_types, return_type: new_type, - flight: phase, + phase, js_override: None, })); if let Err(e) = class_env.define( @@ -699,24 +730,20 @@ impl<'a> JsiiImporter<'a> { self.add_members_to_class_env(jsii_class, is_resource, phase, &mut class_env, new_type); if is_resource { // Look for a client interface for this resource - let client_interface = jsii_class - .docs - .as_ref() - .and_then(|docs| docs.custom.as_ref()) - .and_then(|custom| { - custom - .get("inflight") - .map(|fqn| { - // Some fully qualified package names include "@" characters, - // so they have to be escaped in the original docstring. - if fqn.starts_with("`") && fqn.ends_with("`") { - &fqn[1..fqn.len() - 1] - } else { - fqn - } - }) - .and_then(|fqn| self.jsii_types.find_interface(&FQN::from(fqn))) - }); + let inflight_tag: Option<&str> = extract_docstring_tag(&jsii_class.docs, "inflight"); + + let client_interface = inflight_tag + .map(|fqn| { + // Some fully qualified package names include "@" characters, + // so they have to be escaped in the original docstring. + if fqn.starts_with("`") && fqn.ends_with("`") { + &fqn[1..fqn.len() - 1] + } else { + fqn + } + }) + .and_then(|fqn| self.jsii_types.find_interface(&FQN::from(fqn))); + if let Some(client_interface) = client_interface { // Add client interface's methods to the class environment self.add_members_to_class_env(client_interface, false, Phase::Inflight, &mut class_env, new_type); @@ -833,6 +860,15 @@ impl<'a> JsiiImporter<'a> { } } +fn extract_docstring_tag<'a>(docs: &'a Option, arg: &str) -> Option<&'a str> { + docs.as_ref().and_then(|docs| { + docs + .custom + .as_ref() + .and_then(|custom| custom.get(arg).map(|s| s.as_str())) + }) +} + /// Returns true if the FQN represents a "construct base class". /// /// TODO: this is a temporary hack until we support interfaces. diff --git a/libs/wingsdk/API.md b/libs/wingsdk/API.md index 571f063a616..d1d069209bb 100644 --- a/libs/wingsdk/API.md +++ b/libs/wingsdk/API.md @@ -3464,7 +3464,7 @@ Invoke the function asynchronously with a given payload. - *Implemented By:* IFunctionHandler -**Inflight client:** [wingsdk.cloud.IFunctionHandlerClient](#wingsdk.cloud.IFunctionHandlerClient) +**Inflight client:** [@winglang/sdk.cloud.IFunctionHandlerClient](#@winglang/sdk.cloud.IFunctionHandlerClient) Represents a resource with an inflight "handle" method that can be used to create a `cloud.Function`. @@ -3629,7 +3629,7 @@ Payload to send to the queue. - *Implemented By:* IQueueOnMessageHandler -**Inflight client:** [wingsdk.cloud.IQueueOnMessageHandlerClient](#wingsdk.cloud.IQueueOnMessageHandlerClient) +**Inflight client:** [@winglang/sdk.cloud.IQueueOnMessageHandlerClient](#@winglang/sdk.cloud.IQueueOnMessageHandlerClient) Represents a resource with an inflight "handle" method that can be passed to `Queue.on_message`. @@ -3704,7 +3704,7 @@ Function that will be called when a message is received from the queue. - *Implemented By:* IScheduleOnTickHandler -**Inflight client:** [wingsdk.cloud.IScheduleOnTickHandlerClient](#wingsdk.cloud.IScheduleOnTickHandlerClient) +**Inflight client:** [@winglang/sdk.cloud.IScheduleOnTickHandlerClient](#@winglang/sdk.cloud.IScheduleOnTickHandlerClient) Represents a resource with an inflight "handle" method that can be passed to `Schedule.on_tick`. @@ -3806,7 +3806,7 @@ Payload to publish to Topic. - *Implemented By:* ITopicOnMessageHandler -**Inflight client:** [wingsdk.cloud.ITopicOnMessageHandlerClient](#wingsdk.cloud.ITopicOnMessageHandlerClient) +**Inflight client:** [@winglang/sdk.cloud.ITopicOnMessageHandlerClient](#@winglang/sdk.cloud.ITopicOnMessageHandlerClient) Represents a resource with an inflight "handle" method that can be passed to `Topic.on_message`. diff --git a/libs/wingsdk/patches/jsii+1.73.0.patch b/libs/wingsdk/patches/jsii+1.74.0.patch similarity index 100% rename from libs/wingsdk/patches/jsii+1.73.0.patch rename to libs/wingsdk/patches/jsii+1.74.0.patch diff --git a/libs/wingsdk/src/cloud/function.ts b/libs/wingsdk/src/cloud/function.ts index b01e3051cc6..05f2f91cf16 100644 --- a/libs/wingsdk/src/cloud/function.ts +++ b/libs/wingsdk/src/cloud/function.ts @@ -195,7 +195,7 @@ export interface IFunctionClient { * Represents a resource with an inflight "handle" method that can be used to * create a `cloud.Function`. * - * @inflight `wingsdk.cloud.IFunctionHandlerClient` + * @inflight `@winglang/sdk.cloud.IFunctionHandlerClient` */ export interface IFunctionHandler extends IResource {} diff --git a/libs/wingsdk/src/cloud/queue.ts b/libs/wingsdk/src/cloud/queue.ts index 3db192dc1cb..ec96aa8616e 100644 --- a/libs/wingsdk/src/cloud/queue.ts +++ b/libs/wingsdk/src/cloud/queue.ts @@ -102,7 +102,7 @@ export interface IQueueClient { * Represents a resource with an inflight "handle" method that can be passed to * `Queue.on_message`. * - * @inflight `wingsdk.cloud.IQueueOnMessageHandlerClient` + * @inflight `@winglang/sdk.cloud.IQueueOnMessageHandlerClient` */ export interface IQueueOnMessageHandler extends IResource {} diff --git a/libs/wingsdk/src/cloud/schedule.ts b/libs/wingsdk/src/cloud/schedule.ts index 3831d41db98..1fbf2bff5b6 100644 --- a/libs/wingsdk/src/cloud/schedule.ts +++ b/libs/wingsdk/src/cloud/schedule.ts @@ -76,7 +76,7 @@ export interface ScheduleOnTickProps extends FunctionProps {} * Represents a resource with an inflight "handle" method that can be passed to * `Schedule.on_tick`. * - * @inflight `wingsdk.cloud.IScheduleOnTickHandlerClient` + * @inflight `@winglang/sdk.cloud.IScheduleOnTickHandlerClient` */ export interface IScheduleOnTickHandler extends IResource {} diff --git a/libs/wingsdk/src/cloud/topic.ts b/libs/wingsdk/src/cloud/topic.ts index 82d667fa415..75de8b28349 100644 --- a/libs/wingsdk/src/cloud/topic.ts +++ b/libs/wingsdk/src/cloud/topic.ts @@ -69,7 +69,7 @@ export interface ITopicClient { * Represents a resource with an inflight "handle" method that can be passed to * `Topic.on_message`. * - * @inflight `wingsdk.cloud.ITopicOnMessageHandlerClient` + * @inflight `@winglang/sdk.cloud.ITopicOnMessageHandlerClient` */ export interface ITopicOnMessageHandler extends IResource {} diff --git a/tools/hangar/__snapshots__/invalid.ts.snap b/tools/hangar/__snapshots__/invalid.ts.snap index b28f96e9583..dcc765b6253 100644 --- a/tools/hangar/__snapshots__/invalid.ts.snap +++ b/tools/hangar/__snapshots__/invalid.ts.snap @@ -83,6 +83,12 @@ exports[`immutable_container_types.w > stderr 1`] = ` Error at ../../../examples/tests/invalid/immutable_container_types.w:3:4 | Unknown symbol \\"set\\"" `; +exports[`impl_interface.w > stderr 1`] = ` +"Compilation failed with 2 error(s) +Error at ../../../examples/tests/invalid/impl_interface.w:3:10 | Resource \\"A (at ../../../examples/tests/invalid/impl_interface.w:3:10)\\" does not implement method \\"handle\\" of interface \\"cloud.IQueueOnMessageHandler\\" +Error at ../../../examples/tests/invalid/impl_interface.w:8:10 | Expected type to be \\"inflight (IQueueOnMessageHandler, str): void\\", but got \\"inflight (B): void\\" instead" +`; + exports[`inflight_in_class.w > stderr 1`] = ` "Compilation failed with 1 error(s) Error at ../../../examples/tests/invalid/inflight_in_class.w:3:3 | Class cannot have inflight fields" diff --git a/tools/hangar/__snapshots__/test_corpus/valid/impl_interface.w.ts.snap b/tools/hangar/__snapshots__/test_corpus/valid/impl_interface.w.ts.snap new file mode 100644 index 00000000000..4ea32d9d09a --- /dev/null +++ b/tools/hangar/__snapshots__/test_corpus/valid/impl_interface.w.ts.snap @@ -0,0 +1,106 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`wing compile -t tf-aws > clients/A.inflight.js 1`] = ` +"export class A_inflight { +constructor({ }) { + + +} +async handle(msg) { + { + return; +} +}}" +`; + +exports[`wing compile -t tf-aws > clients/B.inflight.js 1`] = ` +"export class B_inflight { +constructor({ }) { + + +} +async handle(msg) { + { + return 5; +} +}}" +`; + +exports[`wing compile -t tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, +} +`; + +exports[`wing compile -t tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const cloud = require('@winglang/sdk').cloud; +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"impl_interface\\", plugins: $plugins }); + + class A extends $stdlib.core.Resource { + constructor(scope, id, ) { + super(scope, id); + { + } + } + + _toInflight() { + + const self_client_path = require('path').resolve(__dirname, \\"clients/A.inflight.js\\").replace(/\\\\\\\\/g, \\"/\\"); + return $stdlib.core.NodeJsCode.fromInline(\`(new (require(\\"\${self_client_path}\\")).A_inflight({}))\`); + } + } + A._annotateInflight(\\"handle\\", {}); + class B extends $stdlib.core.Resource { + constructor(scope, id, ) { + super(scope, id); + { + } + } + + _toInflight() { + + const self_client_path = require('path').resolve(__dirname, \\"clients/B.inflight.js\\").replace(/\\\\\\\\/g, \\"/\\"); + return $stdlib.core.NodeJsCode.fromInline(\`(new (require(\\"\${self_client_path}\\")).B_inflight({}))\`); + } + } + B._annotateInflight(\\"handle\\", {}); +} +} +new MyApp().synth();" +`; + +exports[`wing test > stdout 1`] = `"pass ─ impl_interface.w (no tests)"`; diff --git a/tools/hangar/src/__snapshots__/compile.test.ts.snap b/tools/hangar/src/__snapshots__/compile.test.ts.snap new file mode 100644 index 00000000000..15b724370c4 --- /dev/null +++ b/tools/hangar/src/__snapshots__/compile.test.ts.snap @@ -0,0 +1,8885 @@ +// Vitest Snapshot v1 + +exports[`anon_function.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, +} +`; + +exports[`anon_function.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"anon_function\\", plugins: $plugins }); + + const myfunc = (x) => { + { + {console.log(\`\${x}\`)}; + x = (x + 1); + if ((x > 3.14)) { + return; + } + (myfunc(x)); + } + }; + (myfunc(1)); + (( (x) => { + { + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(x === 1)'\`)})((x === 1))}; + } + })(1)); +} +} +new MyApp().synth();" +`; + +exports[`asynchronous_model_implicit_await_in_functions.w > wing compile --target tf-aws > index.js 1`] = ` +"async handle(s) { const { str_to_str } = this; { + (await str_to_str.invoke(\\"one\\")); + {console.log((await str_to_str.invoke(\\"two\\")))}; +} };" +`; + +exports[`asynchronous_model_implicit_await_in_functions.w > wing compile --target tf-aws > index.js 2`] = ` +"async handle(s) { const { } = this; { +} };" +`; + +exports[`asynchronous_model_implicit_await_in_functions.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, + "resource": { + "aws_iam_role": { + "root_func_IamRole_EE572BCE": { + "//": { + "metadata": { + "path": "root/Default/func/IamRole", + "uniqueId": "root_func_IamRole_EE572BCE", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + "root_strtostr_IamRole_305ACAF8": { + "//": { + "metadata": { + "path": "root/Default/str_to_str/IamRole", + "uniqueId": "root_strtostr_IamRole_305ACAF8", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + }, + "aws_iam_role_policy": { + "root_func_IamRolePolicy_3AC5101F": { + "//": { + "metadata": { + "path": "root/Default/func/IamRolePolicy", + "uniqueId": "root_func_IamRolePolicy_3AC5101F", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":[\\"lambda:InvokeFunction\\"],\\"Resource\\":[\\"\${aws_lambda_function.root_strtostr_05420EE8.arn}\\"],\\"Effect\\":\\"Allow\\"}]}", + "role": "\${aws_iam_role.root_func_IamRole_EE572BCE.name}", + }, + "root_strtostr_IamRolePolicy_B80B33C4": { + "//": { + "metadata": { + "path": "root/Default/str_to_str/IamRolePolicy", + "uniqueId": "root_strtostr_IamRolePolicy_B80B33C4", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Effect\\":\\"Allow\\",\\"Action\\":\\"none:null\\",\\"Resource\\":\\"*\\"}]}", + "role": "\${aws_iam_role.root_strtostr_IamRole_305ACAF8.name}", + }, + }, + "aws_iam_role_policy_attachment": { + "root_func_IamRolePolicyAttachment_AD2DD410": { + "//": { + "metadata": { + "path": "root/Default/func/IamRolePolicyAttachment", + "uniqueId": "root_func_IamRolePolicyAttachment_AD2DD410", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_func_IamRole_EE572BCE.name}", + }, + "root_strtostr_IamRolePolicyAttachment_C5B57BBD": { + "//": { + "metadata": { + "path": "root/Default/str_to_str/IamRolePolicyAttachment", + "uniqueId": "root_strtostr_IamRolePolicyAttachment_C5B57BBD", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_strtostr_IamRole_305ACAF8.name}", + }, + }, + "aws_lambda_function": { + "root_func_0444AFD0": { + "//": { + "metadata": { + "path": "root/Default/func/Default", + "uniqueId": "root_func_0444AFD0", + }, + }, + "environment": { + "variables": { + "FUNCTION_NAME_8ca853c9": "\${aws_lambda_function.root_strtostr_05420EE8.arn}", + "WING_FUNCTION_NAME": "func-c8cf78f6", + }, + }, + "function_name": "func-c8cf78f6", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_func_IamRole_EE572BCE.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_func_Code_58BA0E0E.bucket}", + "s3_key": "\${aws_s3_object.root_func_S3Object_F6163647.key}", + "timeout": 30, + }, + "root_strtostr_05420EE8": { + "//": { + "metadata": { + "path": "root/Default/str_to_str/Default", + "uniqueId": "root_strtostr_05420EE8", + }, + }, + "environment": { + "variables": { + "WING_FUNCTION_NAME": "str_to_str-c8891c85", + }, + }, + "function_name": "str_to_str-c8891c85", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_strtostr_IamRole_305ACAF8.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_strtostr_Code_5BA38746.bucket}", + "s3_key": "\${aws_s3_object.root_strtostr_S3Object_C6E06A09.key}", + "timeout": 30, + }, + }, + "aws_s3_bucket": { + "root_func_Code_58BA0E0E": { + "//": { + "metadata": { + "path": "root/Default/func/Code", + "uniqueId": "root_func_Code_58BA0E0E", + }, + }, + "bucket_prefix": "code-c80d7959-", + }, + "root_strtostr_Code_5BA38746": { + "//": { + "metadata": { + "path": "root/Default/str_to_str/Code", + "uniqueId": "root_strtostr_Code_5BA38746", + }, + }, + "bucket_prefix": "code-c8b8906a-", + }, + }, + "aws_s3_object": { + "root_func_S3Object_F6163647": { + "//": { + "metadata": { + "path": "root/Default/func/S3Object", + "uniqueId": "root_func_S3Object_F6163647", + }, + }, + "bucket": "\${aws_s3_bucket.root_func_Code_58BA0E0E.bucket}", + "key": "", + }, + }, + }, +} +`; + +exports[`asynchronous_model_implicit_await_in_functions.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const cloud = require('@winglang/sdk').cloud; +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"asynchronous_model_implicit_await_in_functions\\", plugins: $plugins }); + + const q = this.node.root.newAbstract(\\"@winglang/sdk.cloud.Queue\\",this,\\"cloud.Queue\\"); + const str_to_str = this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"str_to_str\\",new $stdlib.core.Inflight(this, \\"$Inflight1\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.8eb95bcbc154530931e15fc418c8b1fe991095671409552099ea1aa596999ede/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + } + })); + const func = this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"func\\",new $stdlib.core.Inflight(this, \\"$Inflight2\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.2241fd974faa47c8b8d27f5a3e172f473ca36c6b44cb328a58655fd2d0aac7d7/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + str_to_str: { + obj: str_to_str, + ops: [\\"invoke\\"] + }, + } + })); +} +} +new MyApp().synth();" +`; + +exports[`bring_cdktf.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, + "resource": { + "aws_s3_bucket": { + "root_Bucket_966015A6": { + "//": { + "metadata": { + "path": "root/Default/Bucket", + "uniqueId": "root_Bucket_966015A6", + }, + }, + "bucket_prefix": "hello", + "versioning": { + "enabled": true, + }, + }, + }, + }, +} +`; + +exports[`bring_cdktf.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const aws = require(\\"@cdktf/provider-aws\\"); +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"bring_cdktf\\", plugins: $plugins }); + + this.node.root.new(\\"@cdktf/provider-aws.s3Bucket.S3Bucket\\",aws.s3Bucket.S3Bucket,this,\\"Bucket\\",{ bucketPrefix: \\"hello\\", versioning: { + \\"enabled\\": true, + \\"mfa_delete\\": true,} + }); +} +} +new MyApp().synth();" +`; + +exports[`bring_fs.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, + "resource": { + "aws_s3_bucket": { + "root_cloudBucket_4F3C4F53": { + "//": { + "metadata": { + "path": "root/Default/cloud.Bucket/Default", + "uniqueId": "root_cloudBucket_4F3C4F53", + }, + }, + "bucket_prefix": "cloud-bucket-c87175e7-", + }, + }, + "aws_s3_bucket_public_access_block": { + "root_cloudBucket_PublicAccessBlock_319C1C2E": { + "//": { + "metadata": { + "path": "root/Default/cloud.Bucket/PublicAccessBlock", + "uniqueId": "root_cloudBucket_PublicAccessBlock_319C1C2E", + }, + }, + "block_public_acls": true, + "block_public_policy": true, + "bucket": "\${aws_s3_bucket.root_cloudBucket_4F3C4F53.bucket}", + "ignore_public_acls": true, + "restrict_public_buckets": true, + }, + }, + "aws_s3_bucket_server_side_encryption_configuration": { + "root_cloudBucket_Encryption_8ED0CD9C": { + "//": { + "metadata": { + "path": "root/Default/cloud.Bucket/Encryption", + "uniqueId": "root_cloudBucket_Encryption_8ED0CD9C", + }, + }, + "bucket": "\${aws_s3_bucket.root_cloudBucket_4F3C4F53.bucket}", + "rule": [ + { + "apply_server_side_encryption_by_default": { + "sse_algorithm": "AES256", + }, + }, + ], + }, + }, + }, +} +`; + +exports[`bring_fs.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const cloud = require('@winglang/sdk').cloud; +const fs = require('@winglang/sdk').fs; +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"bring_fs\\", plugins: $plugins }); + + this.node.root.newAbstract(\\"@winglang/sdk.cloud.Bucket\\",this,\\"cloud.Bucket\\"); + this.node.root.new(\\"@winglang/sdk.fs.TextFile\\",fs.TextFile,this,\\"fs.TextFile\\",\\"/tmp/test.txt\\"); +} +} +new MyApp().synth();" +`; + +exports[`bring_jsii.w > wing compile --target tf-aws > index.js 1`] = ` +"async handle(m) { const { greeting } = this; { + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(greeting === \\"Hello, wingnuts\\")'\`)})((greeting === \\"Hello, wingnuts\\"))}; +} };" +`; + +exports[`bring_jsii.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, + "resource": { + "aws_iam_role": { + "root_testsayhello_IamRole_CD3CFB9C": { + "//": { + "metadata": { + "path": "root/Default/test:say_hello/IamRole", + "uniqueId": "root_testsayhello_IamRole_CD3CFB9C", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + }, + "aws_iam_role_policy": { + "root_testsayhello_IamRolePolicy_265A46FB": { + "//": { + "metadata": { + "path": "root/Default/test:say_hello/IamRolePolicy", + "uniqueId": "root_testsayhello_IamRolePolicy_265A46FB", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Effect\\":\\"Allow\\",\\"Action\\":\\"none:null\\",\\"Resource\\":\\"*\\"}]}", + "role": "\${aws_iam_role.root_testsayhello_IamRole_CD3CFB9C.name}", + }, + }, + "aws_iam_role_policy_attachment": { + "root_testsayhello_IamRolePolicyAttachment_1B179C34": { + "//": { + "metadata": { + "path": "root/Default/test:say_hello/IamRolePolicyAttachment", + "uniqueId": "root_testsayhello_IamRolePolicyAttachment_1B179C34", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_testsayhello_IamRole_CD3CFB9C.name}", + }, + }, + "aws_lambda_function": { + "root_testsayhello_8E3F8CF7": { + "//": { + "metadata": { + "path": "root/Default/test:say_hello/Default", + "uniqueId": "root_testsayhello_8E3F8CF7", + }, + }, + "environment": { + "variables": { + "WING_FUNCTION_NAME": "test-say_hello-c867d9d9", + }, + }, + "function_name": "test-say_hello-c867d9d9", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_testsayhello_IamRole_CD3CFB9C.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_testsayhello_Code_D4453363.bucket}", + "s3_key": "\${aws_s3_object.root_testsayhello_S3Object_A9281CAB.key}", + "timeout": 30, + }, + }, + "aws_s3_bucket": { + "root_testsayhello_Code_D4453363": { + "//": { + "metadata": { + "path": "root/Default/test:say_hello/Code", + "uniqueId": "root_testsayhello_Code_D4453363", + }, + }, + "bucket_prefix": "code-c89e1bce-", + }, + }, + "aws_s3_object": { + "root_testsayhello_S3Object_A9281CAB": { + "//": { + "metadata": { + "path": "root/Default/test:say_hello/S3Object", + "uniqueId": "root_testsayhello_S3Object_A9281CAB", + }, + }, + "bucket": "\${aws_s3_bucket.root_testsayhello_Code_D4453363.bucket}", + "key": "", + }, + }, + }, +} +`; + +exports[`bring_jsii.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const cloud = require('@winglang/sdk').cloud; +const stuff = require(\\"jsii-code-samples\\"); +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"bring_jsii\\", plugins: $plugins }); + + const hello = new stuff.HelloWorld(); + const greeting = (hello.sayHello(\\"wingnuts\\")); + this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"test:say_hello\\",new $stdlib.core.Inflight(this, \\"$Inflight1\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.5d209e0c3acca40c825662cab73c204803d9dd9f7903de90d0da6dc99ea7fa35/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + greeting: { + obj: greeting, + ops: [] + }, + } + })); +} +} +new MyApp().synth();" +`; + +exports[`bring_jsii_path.w > wing compile --target tf-aws > index.js 1`] = ` +"async handle(m) { const { greeting } = this; { + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(greeting === \\"Hello, wingnuts\\")'\`)})((greeting === \\"Hello, wingnuts\\"))}; +} };" +`; + +exports[`bring_jsii_path.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, + "resource": { + "aws_iam_role": { + "root_testsayhello_IamRole_CD3CFB9C": { + "//": { + "metadata": { + "path": "root/Default/test:say_hello/IamRole", + "uniqueId": "root_testsayhello_IamRole_CD3CFB9C", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + }, + "aws_iam_role_policy": { + "root_testsayhello_IamRolePolicy_265A46FB": { + "//": { + "metadata": { + "path": "root/Default/test:say_hello/IamRolePolicy", + "uniqueId": "root_testsayhello_IamRolePolicy_265A46FB", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Effect\\":\\"Allow\\",\\"Action\\":\\"none:null\\",\\"Resource\\":\\"*\\"}]}", + "role": "\${aws_iam_role.root_testsayhello_IamRole_CD3CFB9C.name}", + }, + }, + "aws_iam_role_policy_attachment": { + "root_testsayhello_IamRolePolicyAttachment_1B179C34": { + "//": { + "metadata": { + "path": "root/Default/test:say_hello/IamRolePolicyAttachment", + "uniqueId": "root_testsayhello_IamRolePolicyAttachment_1B179C34", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_testsayhello_IamRole_CD3CFB9C.name}", + }, + }, + "aws_lambda_function": { + "root_testsayhello_8E3F8CF7": { + "//": { + "metadata": { + "path": "root/Default/test:say_hello/Default", + "uniqueId": "root_testsayhello_8E3F8CF7", + }, + }, + "environment": { + "variables": { + "WING_FUNCTION_NAME": "test-say_hello-c867d9d9", + }, + }, + "function_name": "test-say_hello-c867d9d9", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_testsayhello_IamRole_CD3CFB9C.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_testsayhello_Code_D4453363.bucket}", + "s3_key": "\${aws_s3_object.root_testsayhello_S3Object_A9281CAB.key}", + "timeout": 30, + }, + }, + "aws_s3_bucket": { + "root_testsayhello_Code_D4453363": { + "//": { + "metadata": { + "path": "root/Default/test:say_hello/Code", + "uniqueId": "root_testsayhello_Code_D4453363", + }, + }, + "bucket_prefix": "code-c89e1bce-", + }, + }, + "aws_s3_object": { + "root_testsayhello_S3Object_A9281CAB": { + "//": { + "metadata": { + "path": "root/Default/test:say_hello/S3Object", + "uniqueId": "root_testsayhello_S3Object_A9281CAB", + }, + }, + "bucket": "\${aws_s3_bucket.root_testsayhello_Code_D4453363.bucket}", + "key": "", + }, + }, + }, +} +`; + +exports[`bring_jsii_path.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const cloud = require('@winglang/sdk').cloud; +const jsii_code_samples = require(\\"./node_modules/jsii-code-samples\\"); +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"bring_jsii_path\\", plugins: $plugins }); + + const hello = new jsii_code_samples.HelloWorld(); + const greeting = (hello.sayHello(\\"wingnuts\\")); + this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"test:say_hello\\",new $stdlib.core.Inflight(this, \\"$Inflight1\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.5d209e0c3acca40c825662cab73c204803d9dd9f7903de90d0da6dc99ea7fa35/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + greeting: { + obj: greeting, + ops: [] + }, + } + })); +} +} +new MyApp().synth();" +`; + +exports[`bring_projen.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, +} +`; + +exports[`bring_projen.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const projen = require(\\"projen\\"); +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"bring_projen\\", plugins: $plugins }); + + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(projen.LogLevel.OFF !== projen.LogLevel.VERBOSE)'\`)})((projen.LogLevel.OFF !== projen.LogLevel.VERBOSE))}; +} +} +new MyApp().synth();" +`; + +exports[`bucket_keys.w > wing compile --target tf-aws > index.js 1`] = ` +"async handle() { const { b } = this; { + (await b.put(\\"foo\\",\\"text\\")); + (await b.put(\\"foo/\\",\\"text\\")); + (await b.put(\\"foo/bar\\",\\"text\\")); + (await b.put(\\"foo/bar/\\",\\"text\\")); + (await b.put(\\"foo/bar/baz\\",\\"text\\")); + const objs = (await b.list()); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((await objs.at(0)) === \\"foo\\")'\`)})(((await objs.at(0)) === \\"foo\\"))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((await objs.at(1)) === \\"foo/\\")'\`)})(((await objs.at(1)) === \\"foo/\\"))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((await objs.at(2)) === \\"foo/bar\\")'\`)})(((await objs.at(2)) === \\"foo/bar\\"))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((await objs.at(3)) === \\"foo/bar/\\")'\`)})(((await objs.at(3)) === \\"foo/bar/\\"))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((await objs.at(4)) === \\"foo/bar/baz\\")'\`)})(((await objs.at(4)) === \\"foo/bar/baz\\"))}; +} };" +`; + +exports[`bucket_keys.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, + "resource": { + "aws_iam_role": { + "root_test_IamRole_6CDC2D16": { + "//": { + "metadata": { + "path": "root/Default/test/IamRole", + "uniqueId": "root_test_IamRole_6CDC2D16", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + }, + "aws_iam_role_policy": { + "root_test_IamRolePolicy_474A6820": { + "//": { + "metadata": { + "path": "root/Default/test/IamRolePolicy", + "uniqueId": "root_test_IamRolePolicy_474A6820", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":[\\"s3:PutObject*\\",\\"s3:Abort*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:DeleteObject*\\",\\"s3:DeleteObjectVersion*\\",\\"s3:PutLifecycleConfiguration*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"}]}", + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.name}", + }, + }, + "aws_iam_role_policy_attachment": { + "root_test_IamRolePolicyAttachment_1102A28A": { + "//": { + "metadata": { + "path": "root/Default/test/IamRolePolicyAttachment", + "uniqueId": "root_test_IamRolePolicyAttachment_1102A28A", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.name}", + }, + }, + "aws_lambda_function": { + "root_test_AAE85061": { + "//": { + "metadata": { + "path": "root/Default/test/Default", + "uniqueId": "root_test_AAE85061", + }, + }, + "environment": { + "variables": { + "BUCKET_NAME_d755b447": "\${aws_s3_bucket.root_cloudBucket_4F3C4F53.bucket}", + "WING_FUNCTION_NAME": "test-c8b6eece", + }, + }, + "function_name": "test-c8b6eece", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_test_Code_2D131EC2.bucket}", + "s3_key": "\${aws_s3_object.root_test_S3Object_A16CD789.key}", + "timeout": 30, + }, + }, + "aws_s3_bucket": { + "root_cloudBucket_4F3C4F53": { + "//": { + "metadata": { + "path": "root/Default/cloud.Bucket/Default", + "uniqueId": "root_cloudBucket_4F3C4F53", + }, + }, + "bucket_prefix": "cloud-bucket-c87175e7-", + }, + "root_test_Code_2D131EC2": { + "//": { + "metadata": { + "path": "root/Default/test/Code", + "uniqueId": "root_test_Code_2D131EC2", + }, + }, + "bucket_prefix": "code-c883c33b-", + }, + }, + "aws_s3_bucket_public_access_block": { + "root_cloudBucket_PublicAccessBlock_319C1C2E": { + "//": { + "metadata": { + "path": "root/Default/cloud.Bucket/PublicAccessBlock", + "uniqueId": "root_cloudBucket_PublicAccessBlock_319C1C2E", + }, + }, + "block_public_acls": true, + "block_public_policy": true, + "bucket": "\${aws_s3_bucket.root_cloudBucket_4F3C4F53.bucket}", + "ignore_public_acls": true, + "restrict_public_buckets": true, + }, + }, + "aws_s3_bucket_server_side_encryption_configuration": { + "root_cloudBucket_Encryption_8ED0CD9C": { + "//": { + "metadata": { + "path": "root/Default/cloud.Bucket/Encryption", + "uniqueId": "root_cloudBucket_Encryption_8ED0CD9C", + }, + }, + "bucket": "\${aws_s3_bucket.root_cloudBucket_4F3C4F53.bucket}", + "rule": [ + { + "apply_server_side_encryption_by_default": { + "sse_algorithm": "AES256", + }, + }, + ], + }, + }, + "aws_s3_object": { + "root_test_S3Object_A16CD789": { + "//": { + "metadata": { + "path": "root/Default/test/S3Object", + "uniqueId": "root_test_S3Object_A16CD789", + }, + }, + "bucket": "\${aws_s3_bucket.root_test_Code_2D131EC2.bucket}", + "key": "", + }, + }, + }, +} +`; + +exports[`bucket_keys.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const cloud = require('@winglang/sdk').cloud; +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"bucket_keys\\", plugins: $plugins }); + + const b = this.node.root.newAbstract(\\"@winglang/sdk.cloud.Bucket\\",this,\\"cloud.Bucket\\"); + this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"test\\",new $stdlib.core.Inflight(this, \\"$Inflight1\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.6228e26a5981501feaae450d2628c682bfebb15974f5cc021606bb6e273636e0/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + b: { + obj: b, + ops: [\\"delete\\",\\"get\\",\\"get_json\\",\\"list\\",\\"put\\",\\"put_json\\"] + }, + } + })); +} +} +new MyApp().synth();" +`; + +exports[`capture_containers.w > wing compile --target tf-aws > index.js 1`] = ` +"async handle(s) { const { arr, arr_of_map, j, my_map, my_set } = this; { + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((await arr.at(0)) === \\"hello\\")'\`)})(((await arr.at(0)) === \\"hello\\"))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((await arr.at(1)) === \\"world\\")'\`)})(((await arr.at(1)) === \\"world\\"))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(arr.length === 2)'\`)})((arr.length === 2))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(await my_set.has(\\"my\\"))'\`)})((await my_set.has(\\"my\\")))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(my_set.size === 2)'\`)})((my_set.size === 2))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(\\"world\\" in (my_map))'\`)})((\\"world\\" in (my_map)))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(Object.keys(my_map).length === 2)'\`)})((Object.keys(my_map).length === 2))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(\\"bang\\" in ((await arr_of_map.at(0))))'\`)})((\\"bang\\" in ((await arr_of_map.at(0)))))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((j)[\\"b\\"] === \\"world\\")'\`)})(((j)[\\"b\\"] === \\"world\\"))}; +} };" +`; + +exports[`capture_containers.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, + "resource": { + "aws_iam_role": { + "root_test_IamRole_6CDC2D16": { + "//": { + "metadata": { + "path": "root/Default/test/IamRole", + "uniqueId": "root_test_IamRole_6CDC2D16", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + }, + "aws_iam_role_policy": { + "root_test_IamRolePolicy_474A6820": { + "//": { + "metadata": { + "path": "root/Default/test/IamRolePolicy", + "uniqueId": "root_test_IamRolePolicy_474A6820", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Effect\\":\\"Allow\\",\\"Action\\":\\"none:null\\",\\"Resource\\":\\"*\\"}]}", + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.name}", + }, + }, + "aws_iam_role_policy_attachment": { + "root_test_IamRolePolicyAttachment_1102A28A": { + "//": { + "metadata": { + "path": "root/Default/test/IamRolePolicyAttachment", + "uniqueId": "root_test_IamRolePolicyAttachment_1102A28A", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.name}", + }, + }, + "aws_lambda_function": { + "root_test_AAE85061": { + "//": { + "metadata": { + "path": "root/Default/test/Default", + "uniqueId": "root_test_AAE85061", + }, + }, + "environment": { + "variables": { + "WING_FUNCTION_NAME": "test-c8b6eece", + }, + }, + "function_name": "test-c8b6eece", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_test_Code_2D131EC2.bucket}", + "s3_key": "\${aws_s3_object.root_test_S3Object_A16CD789.key}", + "timeout": 30, + }, + }, + "aws_s3_bucket": { + "root_test_Code_2D131EC2": { + "//": { + "metadata": { + "path": "root/Default/test/Code", + "uniqueId": "root_test_Code_2D131EC2", + }, + }, + "bucket_prefix": "code-c883c33b-", + }, + }, + "aws_s3_object": { + "root_test_S3Object_A16CD789": { + "//": { + "metadata": { + "path": "root/Default/test/S3Object", + "uniqueId": "root_test_S3Object_A16CD789", + }, + }, + "bucket": "\${aws_s3_bucket.root_test_Code_2D131EC2.bucket}", + "key": "", + }, + }, + }, +} +`; + +exports[`capture_containers.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const cloud = require('@winglang/sdk').cloud; +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"capture_containers\\", plugins: $plugins }); + + const arr = Object.freeze([\\"hello\\", \\"world\\"]); + const my_set = Object.freeze(new Set([\\"my\\", \\"my\\", \\"set\\"])); + const my_map = Object.freeze({\\"hello\\":123,\\"world\\":999}); + const arr_of_map = Object.freeze([Object.freeze({\\"bang\\":123})]); + const j = Object.freeze({\\"a\\":\\"hello\\",\\"b\\":\\"world\\"}); + const handler = new $stdlib.core.Inflight(this, \\"$Inflight1\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.dc7e5dc23da309970778fe7db4c795e3a6ae63c0d0ddc5e1780d4e2daadf67e1/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + arr: { + obj: arr, + ops: [] + }, + arr_of_map: { + obj: arr_of_map, + ops: [] + }, + j: { + obj: j, + ops: [] + }, + my_map: { + obj: my_map, + ops: [] + }, + my_set: { + obj: my_set, + ops: [] + }, + } + }); + this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"test\\",handler); +} +} +new MyApp().synth();" +`; + +exports[`capture_containers_of_resources.w > wing compile --target tf-aws > index.js 1`] = ` +"async handle(s) { const { arr, map, set } = this; { + const b1 = (await arr.at(0)); + const b2 = (await arr.at(1)); + const q = (map)[\\"my_queue\\"]; + (await b1.put(\\"file1.txt\\",\\"boom\\")); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((await b2.list()).length === 0)'\`)})(((await b2.list()).length === 0))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((await b1.get(\\"file1.txt\\")) === \\"boom\\")'\`)})(((await b1.get(\\"file1.txt\\")) === \\"boom\\"))}; + (await q.push(\\"hello\\")); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(await set.has(\\"foo\\"))'\`)})((await set.has(\\"foo\\")))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(set.size === 2)'\`)})((set.size === 2))}; +} };" +`; + +exports[`capture_containers_of_resources.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, + "resource": { + "aws_iam_role": { + "root_test_IamRole_6CDC2D16": { + "//": { + "metadata": { + "path": "root/Default/test/IamRole", + "uniqueId": "root_test_IamRole_6CDC2D16", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + }, + "aws_iam_role_policy": { + "root_test_IamRolePolicy_474A6820": { + "//": { + "metadata": { + "path": "root/Default/test/IamRolePolicy", + "uniqueId": "root_test_IamRolePolicy_474A6820", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Effect\\":\\"Allow\\",\\"Action\\":\\"none:null\\",\\"Resource\\":\\"*\\"}]}", + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.name}", + }, + }, + "aws_iam_role_policy_attachment": { + "root_test_IamRolePolicyAttachment_1102A28A": { + "//": { + "metadata": { + "path": "root/Default/test/IamRolePolicyAttachment", + "uniqueId": "root_test_IamRolePolicyAttachment_1102A28A", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.name}", + }, + }, + "aws_lambda_function": { + "root_test_AAE85061": { + "//": { + "metadata": { + "path": "root/Default/test/Default", + "uniqueId": "root_test_AAE85061", + }, + }, + "environment": { + "variables": { + "BUCKET_NAME_12a95bb8": "\${aws_s3_bucket.root_b1_A5C8D4B7.bucket}", + "BUCKET_NAME_fa6445bb": "\${aws_s3_bucket.root_b2_26383A0E.bucket}", + "QUEUE_URL_31e95cbd": "\${aws_sqs_queue.root_cloudQueue_E3597F7A.url}", + "WING_FUNCTION_NAME": "test-c8b6eece", + }, + }, + "function_name": "test-c8b6eece", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_test_Code_2D131EC2.bucket}", + "s3_key": "\${aws_s3_object.root_test_S3Object_A16CD789.key}", + "timeout": 30, + }, + }, + "aws_s3_bucket": { + "root_b1_A5C8D4B7": { + "//": { + "metadata": { + "path": "root/Default/b1/Default", + "uniqueId": "root_b1_A5C8D4B7", + }, + }, + "bucket_prefix": "b1-c88fb896-", + }, + "root_b2_26383A0E": { + "//": { + "metadata": { + "path": "root/Default/b2/Default", + "uniqueId": "root_b2_26383A0E", + }, + }, + "bucket_prefix": "b2-c844cd88-", + }, + "root_test_Code_2D131EC2": { + "//": { + "metadata": { + "path": "root/Default/test/Code", + "uniqueId": "root_test_Code_2D131EC2", + }, + }, + "bucket_prefix": "code-c883c33b-", + }, + }, + "aws_s3_bucket_public_access_block": { + "root_b1_PublicAccessBlock_8B468FE2": { + "//": { + "metadata": { + "path": "root/Default/b1/PublicAccessBlock", + "uniqueId": "root_b1_PublicAccessBlock_8B468FE2", + }, + }, + "block_public_acls": true, + "block_public_policy": true, + "bucket": "\${aws_s3_bucket.root_b1_A5C8D4B7.bucket}", + "ignore_public_acls": true, + "restrict_public_buckets": true, + }, + "root_b2_PublicAccessBlock_665E72FF": { + "//": { + "metadata": { + "path": "root/Default/b2/PublicAccessBlock", + "uniqueId": "root_b2_PublicAccessBlock_665E72FF", + }, + }, + "block_public_acls": true, + "block_public_policy": true, + "bucket": "\${aws_s3_bucket.root_b2_26383A0E.bucket}", + "ignore_public_acls": true, + "restrict_public_buckets": true, + }, + }, + "aws_s3_bucket_server_side_encryption_configuration": { + "root_b1_Encryption_98BA3084": { + "//": { + "metadata": { + "path": "root/Default/b1/Encryption", + "uniqueId": "root_b1_Encryption_98BA3084", + }, + }, + "bucket": "\${aws_s3_bucket.root_b1_A5C8D4B7.bucket}", + "rule": [ + { + "apply_server_side_encryption_by_default": { + "sse_algorithm": "AES256", + }, + }, + ], + }, + "root_b2_Encryption_096FF85A": { + "//": { + "metadata": { + "path": "root/Default/b2/Encryption", + "uniqueId": "root_b2_Encryption_096FF85A", + }, + }, + "bucket": "\${aws_s3_bucket.root_b2_26383A0E.bucket}", + "rule": [ + { + "apply_server_side_encryption_by_default": { + "sse_algorithm": "AES256", + }, + }, + ], + }, + }, + "aws_s3_object": { + "root_test_S3Object_A16CD789": { + "//": { + "metadata": { + "path": "root/Default/test/S3Object", + "uniqueId": "root_test_S3Object_A16CD789", + }, + }, + "bucket": "\${aws_s3_bucket.root_test_Code_2D131EC2.bucket}", + "key": "", + }, + }, + }, +} +`; + +exports[`capture_containers_of_resources.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const cloud = require('@winglang/sdk').cloud; +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"capture_containers_of_resources\\", plugins: $plugins }); + + const arr = Object.freeze([this.node.root.newAbstract(\\"@winglang/sdk.cloud.Bucket\\",this,\\"b1\\"), this.node.root.newAbstract(\\"@winglang/sdk.cloud.Bucket\\",this,\\"b2\\")]); + const map = Object.freeze({\\"my_queue\\":this.node.root.newAbstract(\\"@winglang/sdk.cloud.Queue\\",this,\\"cloud.Queue\\")}); + const set = Object.freeze(new Set([\\"foo\\", \\"foo\\", \\"bar\\"])); + this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"test\\",new $stdlib.core.Inflight(this, \\"$Inflight1\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.e204fa6fba10aa68396c0fe4d920796b1ec739609b648739fe4ae94d0621db6d/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + arr: { + obj: arr, + ops: [] + }, + map: { + obj: map, + ops: [] + }, + set: { + obj: set, + ops: [] + }, + } + })); +} +} +new MyApp().synth();" +`; + +exports[`capture_in_binary.w > wing compile --target tf-aws > index.js 1`] = ` +"async handle(e) { const { b, x } = this; { + (await b.put(\\"file\\",\\"foo\\")); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((await b.get(\\"file\\")) === \\"foo\\")'\`)})(((await b.get(\\"file\\")) === \\"foo\\"))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(12 === x)'\`)})((12 === x))}; +} };" +`; + +exports[`capture_in_binary.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, + "resource": { + "aws_iam_role": { + "root_test_IamRole_6CDC2D16": { + "//": { + "metadata": { + "path": "root/Default/test/IamRole", + "uniqueId": "root_test_IamRole_6CDC2D16", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + }, + "aws_iam_role_policy": { + "root_test_IamRolePolicy_474A6820": { + "//": { + "metadata": { + "path": "root/Default/test/IamRolePolicy", + "uniqueId": "root_test_IamRolePolicy_474A6820", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":[\\"s3:PutObject*\\",\\"s3:Abort*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:DeleteObject*\\",\\"s3:DeleteObjectVersion*\\",\\"s3:PutLifecycleConfiguration*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"}]}", + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.name}", + }, + }, + "aws_iam_role_policy_attachment": { + "root_test_IamRolePolicyAttachment_1102A28A": { + "//": { + "metadata": { + "path": "root/Default/test/IamRolePolicyAttachment", + "uniqueId": "root_test_IamRolePolicyAttachment_1102A28A", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.name}", + }, + }, + "aws_lambda_function": { + "root_test_AAE85061": { + "//": { + "metadata": { + "path": "root/Default/test/Default", + "uniqueId": "root_test_AAE85061", + }, + }, + "environment": { + "variables": { + "BUCKET_NAME_d755b447": "\${aws_s3_bucket.root_cloudBucket_4F3C4F53.bucket}", + "WING_FUNCTION_NAME": "test-c8b6eece", + }, + }, + "function_name": "test-c8b6eece", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_test_Code_2D131EC2.bucket}", + "s3_key": "\${aws_s3_object.root_test_S3Object_A16CD789.key}", + "timeout": 30, + }, + }, + "aws_s3_bucket": { + "root_cloudBucket_4F3C4F53": { + "//": { + "metadata": { + "path": "root/Default/cloud.Bucket/Default", + "uniqueId": "root_cloudBucket_4F3C4F53", + }, + }, + "bucket_prefix": "cloud-bucket-c87175e7-", + }, + "root_test_Code_2D131EC2": { + "//": { + "metadata": { + "path": "root/Default/test/Code", + "uniqueId": "root_test_Code_2D131EC2", + }, + }, + "bucket_prefix": "code-c883c33b-", + }, + }, + "aws_s3_bucket_public_access_block": { + "root_cloudBucket_PublicAccessBlock_319C1C2E": { + "//": { + "metadata": { + "path": "root/Default/cloud.Bucket/PublicAccessBlock", + "uniqueId": "root_cloudBucket_PublicAccessBlock_319C1C2E", + }, + }, + "block_public_acls": true, + "block_public_policy": true, + "bucket": "\${aws_s3_bucket.root_cloudBucket_4F3C4F53.bucket}", + "ignore_public_acls": true, + "restrict_public_buckets": true, + }, + }, + "aws_s3_bucket_server_side_encryption_configuration": { + "root_cloudBucket_Encryption_8ED0CD9C": { + "//": { + "metadata": { + "path": "root/Default/cloud.Bucket/Encryption", + "uniqueId": "root_cloudBucket_Encryption_8ED0CD9C", + }, + }, + "bucket": "\${aws_s3_bucket.root_cloudBucket_4F3C4F53.bucket}", + "rule": [ + { + "apply_server_side_encryption_by_default": { + "sse_algorithm": "AES256", + }, + }, + ], + }, + }, + "aws_s3_object": { + "root_test_S3Object_A16CD789": { + "//": { + "metadata": { + "path": "root/Default/test/S3Object", + "uniqueId": "root_test_S3Object_A16CD789", + }, + }, + "bucket": "\${aws_s3_bucket.root_test_Code_2D131EC2.bucket}", + "key": "", + }, + }, + }, +} +`; + +exports[`capture_in_binary.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const cloud = require('@winglang/sdk').cloud; +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"capture_in_binary\\", plugins: $plugins }); + + const b = this.node.root.newAbstract(\\"@winglang/sdk.cloud.Bucket\\",this,\\"cloud.Bucket\\"); + const x = 12; + const handler2 = new $stdlib.core.Inflight(this, \\"$Inflight1\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.d3cc1deae5ea8972097ff15c11d688f395bd17117453789488a005b829eea245/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + b: { + obj: b, + ops: [\\"delete\\",\\"get\\",\\"get_json\\",\\"list\\",\\"put\\",\\"put_json\\"] + }, + x: { + obj: x, + ops: [] + }, + } + }); + this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"test\\",handler2); +} +} +new MyApp().synth();" +`; + +exports[`capture_primitives.w > wing compile --target tf-aws > index.js 1`] = ` +"async handle(s) { const { my_bool, my_dur, my_num, my_second_bool, my_str } = this; { + {console.log(my_str)}; + const n = my_num; + {console.log(\`\${n}\`)}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(my_second_bool === false)'\`)})((my_second_bool === false))}; + if (my_bool) { + {console.log(\\"bool=true\\")}; + } else { + {console.log(\\"bool=false\\")}; + } + const min = my_dur.minutes; + const sec = my_dur.seconds; + const hr = my_dur.hours; + const split = (await \`min=\${min} sec=\${sec} hr=\${hr}\`.split(\\" \\")); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(split.length === 3)'\`)})((split.length === 3))}; +} };" +`; + +exports[`capture_primitives.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, + "resource": { + "aws_iam_role": { + "root_cloudFunction_IamRole_DAEC3578": { + "//": { + "metadata": { + "path": "root/Default/cloud.Function/IamRole", + "uniqueId": "root_cloudFunction_IamRole_DAEC3578", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + }, + "aws_iam_role_policy": { + "root_cloudFunction_IamRolePolicy_AAE6C0C0": { + "//": { + "metadata": { + "path": "root/Default/cloud.Function/IamRolePolicy", + "uniqueId": "root_cloudFunction_IamRolePolicy_AAE6C0C0", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Effect\\":\\"Allow\\",\\"Action\\":\\"none:null\\",\\"Resource\\":\\"*\\"}]}", + "role": "\${aws_iam_role.root_cloudFunction_IamRole_DAEC3578.name}", + }, + }, + "aws_iam_role_policy_attachment": { + "root_cloudFunction_IamRolePolicyAttachment_FC3D9E7C": { + "//": { + "metadata": { + "path": "root/Default/cloud.Function/IamRolePolicyAttachment", + "uniqueId": "root_cloudFunction_IamRolePolicyAttachment_FC3D9E7C", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_cloudFunction_IamRole_DAEC3578.name}", + }, + }, + "aws_lambda_function": { + "root_cloudFunction_6A57BA0A": { + "//": { + "metadata": { + "path": "root/Default/cloud.Function/Default", + "uniqueId": "root_cloudFunction_6A57BA0A", + }, + }, + "environment": { + "variables": { + "WING_FUNCTION_NAME": "cloud-Function-c8d2eca1", + }, + }, + "function_name": "cloud-Function-c8d2eca1", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_cloudFunction_IamRole_DAEC3578.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_cloudFunction_Code_2F6A7948.bucket}", + "s3_key": "\${aws_s3_object.root_cloudFunction_S3Object_C8435368.key}", + "timeout": 30, + }, + }, + "aws_s3_bucket": { + "root_cloudFunction_Code_2F6A7948": { + "//": { + "metadata": { + "path": "root/Default/cloud.Function/Code", + "uniqueId": "root_cloudFunction_Code_2F6A7948", + }, + }, + "bucket_prefix": "code-c8d4206f-", + }, + }, + "aws_s3_object": { + "root_cloudFunction_S3Object_C8435368": { + "//": { + "metadata": { + "path": "root/Default/cloud.Function/S3Object", + "uniqueId": "root_cloudFunction_S3Object_C8435368", + }, + }, + "bucket": "\${aws_s3_bucket.root_cloudFunction_Code_2F6A7948.bucket}", + "key": "", + }, + }, + }, +} +`; + +exports[`capture_primitives.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const cloud = require('@winglang/sdk').cloud; +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"capture_primitives\\", plugins: $plugins }); + + const my_str = \\"hello, string\\"; + const my_num = 1234; + const my_bool = true; + const my_second_bool = false; + const my_dur = $stdlib.std.Duration.fromSeconds(600); + const handler = new $stdlib.core.Inflight(this, \\"$Inflight1\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.275873c041545c7a2de55149fb73b77f5b75da61d16914ceadd71c3445173d97/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + my_bool: { + obj: my_bool, + ops: [] + }, + my_dur: { + obj: my_dur, + ops: [] + }, + my_num: { + obj: my_num, + ops: [] + }, + my_second_bool: { + obj: my_second_bool, + ops: [] + }, + my_str: { + obj: my_str, + ops: [] + }, + } + }); + this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"cloud.Function\\",handler); +} +} +new MyApp().synth();" +`; + +exports[`capture_resource_and_data.w > wing compile --target tf-aws > index.js 1`] = ` +"async handle(e) { const { data, queue, res } = this; { + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(data.size === 3)'\`)})((data.size === 3))}; + (await res.put(\\"file.txt\\",\\"world\\")); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((await res.get(\\"file.txt\\")) === \\"world\\")'\`)})(((await res.get(\\"file.txt\\")) === \\"world\\"))}; + (await queue.push(\\"spirulina\\")); +} };" +`; + +exports[`capture_resource_and_data.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, + "resource": { + "aws_iam_role": { + "root_test_IamRole_6CDC2D16": { + "//": { + "metadata": { + "path": "root/Default/test/IamRole", + "uniqueId": "root_test_IamRole_6CDC2D16", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + }, + "aws_iam_role_policy": { + "root_test_IamRolePolicy_474A6820": { + "//": { + "metadata": { + "path": "root/Default/test/IamRolePolicy", + "uniqueId": "root_test_IamRolePolicy_474A6820", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":[\\"s3:PutObject*\\",\\"s3:Abort*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:DeleteObject*\\",\\"s3:DeleteObjectVersion*\\",\\"s3:PutLifecycleConfiguration*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"sqs:SendMessage\\"],\\"Resource\\":\\"\${aws_sqs_queue.root_cloudQueue_E3597F7A.arn}\\",\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"sqs:PurgeQueue\\"],\\"Resource\\":\\"\${aws_sqs_queue.root_cloudQueue_E3597F7A.arn}\\",\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"sqs:GetQueueAttributes\\"],\\"Resource\\":\\"\${aws_sqs_queue.root_cloudQueue_E3597F7A.arn}\\",\\"Effect\\":\\"Allow\\"}]}", + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.name}", + }, + }, + "aws_iam_role_policy_attachment": { + "root_test_IamRolePolicyAttachment_1102A28A": { + "//": { + "metadata": { + "path": "root/Default/test/IamRolePolicyAttachment", + "uniqueId": "root_test_IamRolePolicyAttachment_1102A28A", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.name}", + }, + }, + "aws_lambda_function": { + "root_test_AAE85061": { + "//": { + "metadata": { + "path": "root/Default/test/Default", + "uniqueId": "root_test_AAE85061", + }, + }, + "environment": { + "variables": { + "BUCKET_NAME_d755b447": "\${aws_s3_bucket.root_cloudBucket_4F3C4F53.bucket}", + "QUEUE_URL_31e95cbd": "\${aws_sqs_queue.root_cloudQueue_E3597F7A.url}", + "WING_FUNCTION_NAME": "test-c8b6eece", + }, + }, + "function_name": "test-c8b6eece", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_test_Code_2D131EC2.bucket}", + "s3_key": "\${aws_s3_object.root_test_S3Object_A16CD789.key}", + "timeout": 30, + }, + }, + "aws_s3_bucket": { + "root_cloudBucket_4F3C4F53": { + "//": { + "metadata": { + "path": "root/Default/cloud.Bucket/Default", + "uniqueId": "root_cloudBucket_4F3C4F53", + }, + }, + "bucket_prefix": "cloud-bucket-c87175e7-", + }, + "root_test_Code_2D131EC2": { + "//": { + "metadata": { + "path": "root/Default/test/Code", + "uniqueId": "root_test_Code_2D131EC2", + }, + }, + "bucket_prefix": "code-c883c33b-", + }, + }, + "aws_s3_bucket_public_access_block": { + "root_cloudBucket_PublicAccessBlock_319C1C2E": { + "//": { + "metadata": { + "path": "root/Default/cloud.Bucket/PublicAccessBlock", + "uniqueId": "root_cloudBucket_PublicAccessBlock_319C1C2E", + }, + }, + "block_public_acls": true, + "block_public_policy": true, + "bucket": "\${aws_s3_bucket.root_cloudBucket_4F3C4F53.bucket}", + "ignore_public_acls": true, + "restrict_public_buckets": true, + }, + }, + "aws_s3_bucket_server_side_encryption_configuration": { + "root_cloudBucket_Encryption_8ED0CD9C": { + "//": { + "metadata": { + "path": "root/Default/cloud.Bucket/Encryption", + "uniqueId": "root_cloudBucket_Encryption_8ED0CD9C", + }, + }, + "bucket": "\${aws_s3_bucket.root_cloudBucket_4F3C4F53.bucket}", + "rule": [ + { + "apply_server_side_encryption_by_default": { + "sse_algorithm": "AES256", + }, + }, + ], + }, + }, + "aws_s3_object": { + "root_test_S3Object_A16CD789": { + "//": { + "metadata": { + "path": "root/Default/test/S3Object", + "uniqueId": "root_test_S3Object_A16CD789", + }, + }, + "bucket": "\${aws_s3_bucket.root_test_Code_2D131EC2.bucket}", + "key": "", + }, + }, + }, +} +`; + +exports[`capture_resource_and_data.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const cloud = require('@winglang/sdk').cloud; +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"capture_resource_and_data\\", plugins: $plugins }); + + const data = Object.freeze(new Set([1, 2, 3])); + const res = this.node.root.newAbstract(\\"@winglang/sdk.cloud.Bucket\\",this,\\"cloud.Bucket\\"); + const queue = this.node.root.newAbstract(\\"@winglang/sdk.cloud.Queue\\",this,\\"cloud.Queue\\"); + const handler = new $stdlib.core.Inflight(this, \\"$Inflight1\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.10149a479ee5940e90f4621a2bca78dda7429636b1f235fcd785b3e33c131537/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + data: { + obj: data, + ops: [] + }, + queue: { + obj: queue, + ops: [\\"approx_size\\",\\"purge\\",\\"push\\"] + }, + res: { + obj: res, + ops: [\\"delete\\",\\"get\\",\\"get_json\\",\\"list\\",\\"put\\",\\"put_json\\"] + }, + } + }); + this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"test\\",handler); +} +} +new MyApp().synth();" +`; + +exports[`capture_resource_with_no_inflight.w > wing compile --target tf-aws > A.inflight.js 1`] = ` +"export class A_inflight { +constructor({ field }) { + + this.field = field; +} +}" +`; + +exports[`capture_resource_with_no_inflight.w > wing compile --target tf-aws > index.js 1`] = ` +"async handle() { const { a } = this; { + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(\\"hey\\" === a.field)'\`)})((\\"hey\\" === a.field))}; +} };" +`; + +exports[`capture_resource_with_no_inflight.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, + "resource": { + "aws_iam_role": { + "root_test_IamRole_6CDC2D16": { + "//": { + "metadata": { + "path": "root/Default/test/IamRole", + "uniqueId": "root_test_IamRole_6CDC2D16", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + }, + "aws_iam_role_policy": { + "root_test_IamRolePolicy_474A6820": { + "//": { + "metadata": { + "path": "root/Default/test/IamRolePolicy", + "uniqueId": "root_test_IamRolePolicy_474A6820", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Effect\\":\\"Allow\\",\\"Action\\":\\"none:null\\",\\"Resource\\":\\"*\\"}]}", + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.name}", + }, + }, + "aws_iam_role_policy_attachment": { + "root_test_IamRolePolicyAttachment_1102A28A": { + "//": { + "metadata": { + "path": "root/Default/test/IamRolePolicyAttachment", + "uniqueId": "root_test_IamRolePolicyAttachment_1102A28A", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.name}", + }, + }, + "aws_lambda_function": { + "root_test_AAE85061": { + "//": { + "metadata": { + "path": "root/Default/test/Default", + "uniqueId": "root_test_AAE85061", + }, + }, + "environment": { + "variables": { + "WING_FUNCTION_NAME": "test-c8b6eece", + }, + }, + "function_name": "test-c8b6eece", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_test_Code_2D131EC2.bucket}", + "s3_key": "\${aws_s3_object.root_test_S3Object_A16CD789.key}", + "timeout": 30, + }, + }, + "aws_s3_bucket": { + "root_test_Code_2D131EC2": { + "//": { + "metadata": { + "path": "root/Default/test/Code", + "uniqueId": "root_test_Code_2D131EC2", + }, + }, + "bucket_prefix": "code-c883c33b-", + }, + }, + "aws_s3_object": { + "root_test_S3Object_A16CD789": { + "//": { + "metadata": { + "path": "root/Default/test/S3Object", + "uniqueId": "root_test_S3Object_A16CD789", + }, + }, + "bucket": "\${aws_s3_bucket.root_test_Code_2D131EC2.bucket}", + "key": "", + }, + }, + }, +} +`; + +exports[`capture_resource_with_no_inflight.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const cloud = require('@winglang/sdk').cloud; +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"capture_resource_with_no_inflight\\", plugins: $plugins }); + + class A extends $stdlib.core.Resource { + constructor(scope, id, ) { + super(scope, id); + { + this.field = \\"hey\\"; + } + } + + _toInflight() { + const field_client = this._lift(this.field); + const self_client_path = require('path').resolve(__dirname, \\"clients/A.inflight.js\\").replace(/\\\\\\\\/g, \\"/\\"); + return $stdlib.core.NodeJsCode.fromInline(\`(new (require(\\"\${self_client_path}\\")).A_inflight({field: \${field_client}}))\`); + } + } + + const a = new A(this,\\"A\\"); + this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"test\\",new $stdlib.core.Inflight(this, \\"$Inflight1\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.b771192b636450edefdc8f4b596a6372d5b2520efa1fcdb75c51589c12a10c59/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + a: { + obj: a, + ops: [] + }, + } + })); +} +} +new MyApp().synth();" +`; + +exports[`captures.w > wing compile --target tf-aws > index.js 1`] = ` +"async handle(event) { const { bucket1, bucket2, bucket3 } = this; { + (await bucket1.put(\\"file.txt\\",\\"data\\")); + (await bucket2.get(\\"file.txt\\")); + (await bucket2.get(\\"file2.txt\\")); + (await bucket3.get(\\"file3.txt\\")); + for (const stuff of (await bucket1.list())) { + {console.log(stuff)}; + } +} };" +`; + +exports[`captures.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, + "resource": { + "aws_iam_role": { + "root_AnotherFunction_IamRole_09A4D8EF": { + "//": { + "metadata": { + "path": "root/Default/AnotherFunction/IamRole", + "uniqueId": "root_AnotherFunction_IamRole_09A4D8EF", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + "root_cloudFunction_IamRole_DAEC3578": { + "//": { + "metadata": { + "path": "root/Default/cloud.Function/IamRole", + "uniqueId": "root_cloudFunction_IamRole_DAEC3578", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + "root_cloudQueueOnMessagee46e5cb7_IamRole_D8F85094": { + "//": { + "metadata": { + "path": "root/Default/cloud.Queue-OnMessage-e46e5cb7/IamRole", + "uniqueId": "root_cloudQueueOnMessagee46e5cb7_IamRole_D8F85094", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + }, + "aws_iam_role_policy": { + "root_AnotherFunction_IamRolePolicy_5B37F663": { + "//": { + "metadata": { + "path": "root/Default/AnotherFunction/IamRolePolicy", + "uniqueId": "root_AnotherFunction_IamRolePolicy_5B37F663", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":[\\"s3:PutObject*\\",\\"s3:Abort*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:DeleteObject*\\",\\"s3:DeleteObjectVersion*\\",\\"s3:PutLifecycleConfiguration*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:PutObject*\\",\\"s3:Abort*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_PublicBucket_73AE6C59.arn}\\",\\"\${aws_s3_bucket.root_PublicBucket_73AE6C59.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_PublicBucket_73AE6C59.arn}\\",\\"\${aws_s3_bucket.root_PublicBucket_73AE6C59.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_PublicBucket_73AE6C59.arn}\\",\\"\${aws_s3_bucket.root_PublicBucket_73AE6C59.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:DeleteObject*\\",\\"s3:DeleteObjectVersion*\\",\\"s3:PutLifecycleConfiguration*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_PublicBucket_73AE6C59.arn}\\",\\"\${aws_s3_bucket.root_PublicBucket_73AE6C59.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:PutObject*\\",\\"s3:Abort*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_PrivateBucket_82B4DCC5.arn}\\",\\"\${aws_s3_bucket.root_PrivateBucket_82B4DCC5.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_PrivateBucket_82B4DCC5.arn}\\",\\"\${aws_s3_bucket.root_PrivateBucket_82B4DCC5.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_PrivateBucket_82B4DCC5.arn}\\",\\"\${aws_s3_bucket.root_PrivateBucket_82B4DCC5.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:DeleteObject*\\",\\"s3:DeleteObjectVersion*\\",\\"s3:PutLifecycleConfiguration*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_PrivateBucket_82B4DCC5.arn}\\",\\"\${aws_s3_bucket.root_PrivateBucket_82B4DCC5.arn}/*\\"],\\"Effect\\":\\"Allow\\"}]}", + "role": "\${aws_iam_role.root_AnotherFunction_IamRole_09A4D8EF.name}", + }, + "root_cloudFunction_IamRolePolicy_AAE6C0C0": { + "//": { + "metadata": { + "path": "root/Default/cloud.Function/IamRolePolicy", + "uniqueId": "root_cloudFunction_IamRolePolicy_AAE6C0C0", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":[\\"s3:PutObject*\\",\\"s3:Abort*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:DeleteObject*\\",\\"s3:DeleteObjectVersion*\\",\\"s3:PutLifecycleConfiguration*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:PutObject*\\",\\"s3:Abort*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_PublicBucket_73AE6C59.arn}\\",\\"\${aws_s3_bucket.root_PublicBucket_73AE6C59.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_PublicBucket_73AE6C59.arn}\\",\\"\${aws_s3_bucket.root_PublicBucket_73AE6C59.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_PublicBucket_73AE6C59.arn}\\",\\"\${aws_s3_bucket.root_PublicBucket_73AE6C59.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:DeleteObject*\\",\\"s3:DeleteObjectVersion*\\",\\"s3:PutLifecycleConfiguration*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_PublicBucket_73AE6C59.arn}\\",\\"\${aws_s3_bucket.root_PublicBucket_73AE6C59.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:PutObject*\\",\\"s3:Abort*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_PrivateBucket_82B4DCC5.arn}\\",\\"\${aws_s3_bucket.root_PrivateBucket_82B4DCC5.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_PrivateBucket_82B4DCC5.arn}\\",\\"\${aws_s3_bucket.root_PrivateBucket_82B4DCC5.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_PrivateBucket_82B4DCC5.arn}\\",\\"\${aws_s3_bucket.root_PrivateBucket_82B4DCC5.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:DeleteObject*\\",\\"s3:DeleteObjectVersion*\\",\\"s3:PutLifecycleConfiguration*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_PrivateBucket_82B4DCC5.arn}\\",\\"\${aws_s3_bucket.root_PrivateBucket_82B4DCC5.arn}/*\\"],\\"Effect\\":\\"Allow\\"}]}", + "role": "\${aws_iam_role.root_cloudFunction_IamRole_DAEC3578.name}", + }, + "root_cloudQueueOnMessagee46e5cb7_IamRolePolicy_99F6B872": { + "//": { + "metadata": { + "path": "root/Default/cloud.Queue-OnMessage-e46e5cb7/IamRolePolicy", + "uniqueId": "root_cloudQueueOnMessagee46e5cb7_IamRolePolicy_99F6B872", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":[\\"sqs:ReceiveMessage\\",\\"sqs:ChangeMessageVisibility\\",\\"sqs:GetQueueUrl\\",\\"sqs:DeleteMessage\\",\\"sqs:GetQueueAttributes\\"],\\"Resource\\":\\"\${aws_sqs_queue.root_cloudQueue_E3597F7A.arn}\\",\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:PutObject*\\",\\"s3:Abort*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:DeleteObject*\\",\\"s3:DeleteObjectVersion*\\",\\"s3:PutLifecycleConfiguration*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:PutObject*\\",\\"s3:Abort*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_PublicBucket_73AE6C59.arn}\\",\\"\${aws_s3_bucket.root_PublicBucket_73AE6C59.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_PublicBucket_73AE6C59.arn}\\",\\"\${aws_s3_bucket.root_PublicBucket_73AE6C59.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_PublicBucket_73AE6C59.arn}\\",\\"\${aws_s3_bucket.root_PublicBucket_73AE6C59.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:DeleteObject*\\",\\"s3:DeleteObjectVersion*\\",\\"s3:PutLifecycleConfiguration*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_PublicBucket_73AE6C59.arn}\\",\\"\${aws_s3_bucket.root_PublicBucket_73AE6C59.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:PutObject*\\",\\"s3:Abort*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_PrivateBucket_82B4DCC5.arn}\\",\\"\${aws_s3_bucket.root_PrivateBucket_82B4DCC5.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_PrivateBucket_82B4DCC5.arn}\\",\\"\${aws_s3_bucket.root_PrivateBucket_82B4DCC5.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_PrivateBucket_82B4DCC5.arn}\\",\\"\${aws_s3_bucket.root_PrivateBucket_82B4DCC5.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:DeleteObject*\\",\\"s3:DeleteObjectVersion*\\",\\"s3:PutLifecycleConfiguration*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_PrivateBucket_82B4DCC5.arn}\\",\\"\${aws_s3_bucket.root_PrivateBucket_82B4DCC5.arn}/*\\"],\\"Effect\\":\\"Allow\\"}]}", + "role": "\${aws_iam_role.root_cloudQueueOnMessagee46e5cb7_IamRole_D8F85094.name}", + }, + }, + "aws_iam_role_policy_attachment": { + "root_AnotherFunction_IamRolePolicyAttachment_8AF040CB": { + "//": { + "metadata": { + "path": "root/Default/AnotherFunction/IamRolePolicyAttachment", + "uniqueId": "root_AnotherFunction_IamRolePolicyAttachment_8AF040CB", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_AnotherFunction_IamRole_09A4D8EF.name}", + }, + "root_cloudFunction_IamRolePolicyAttachment_FC3D9E7C": { + "//": { + "metadata": { + "path": "root/Default/cloud.Function/IamRolePolicyAttachment", + "uniqueId": "root_cloudFunction_IamRolePolicyAttachment_FC3D9E7C", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_cloudFunction_IamRole_DAEC3578.name}", + }, + "root_cloudQueueOnMessagee46e5cb7_IamRolePolicyAttachment_D3D5C118": { + "//": { + "metadata": { + "path": "root/Default/cloud.Queue-OnMessage-e46e5cb7/IamRolePolicyAttachment", + "uniqueId": "root_cloudQueueOnMessagee46e5cb7_IamRolePolicyAttachment_D3D5C118", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_cloudQueueOnMessagee46e5cb7_IamRole_D8F85094.name}", + }, + }, + "aws_lambda_event_source_mapping": { + "root_cloudQueue_EventSourceMapping_A2041279": { + "//": { + "metadata": { + "path": "root/Default/cloud.Queue/EventSourceMapping", + "uniqueId": "root_cloudQueue_EventSourceMapping_A2041279", + }, + }, + "batch_size": 5, + "event_source_arn": "\${aws_sqs_queue.root_cloudQueue_E3597F7A.arn}", + "function_name": "\${aws_lambda_function.root_cloudQueueOnMessagee46e5cb7_C394DE2A.function_name}", + }, + }, + "aws_lambda_function": { + "root_AnotherFunction_1D5A4455": { + "//": { + "metadata": { + "path": "root/Default/AnotherFunction/Default", + "uniqueId": "root_AnotherFunction_1D5A4455", + }, + }, + "environment": { + "variables": { + "BUCKET_NAME_0c557d45": "\${aws_s3_bucket.root_PrivateBucket_82B4DCC5.bucket}", + "BUCKET_NAME_21bd2572": "\${aws_s3_bucket.root_PublicBucket_73AE6C59.bucket}", + "BUCKET_NAME_d755b447": "\${aws_s3_bucket.root_cloudBucket_4F3C4F53.bucket}", + "WING_FUNCTION_NAME": "AnotherFunction-c88d2a81", + }, + }, + "function_name": "AnotherFunction-c88d2a81", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_AnotherFunction_IamRole_09A4D8EF.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_AnotherFunction_Code_B0183137.bucket}", + "s3_key": "\${aws_s3_object.root_AnotherFunction_S3Object_5AD7E879.key}", + "timeout": 30, + }, + "root_cloudFunction_6A57BA0A": { + "//": { + "metadata": { + "path": "root/Default/cloud.Function/Default", + "uniqueId": "root_cloudFunction_6A57BA0A", + }, + }, + "environment": { + "variables": { + "BUCKET_NAME_0c557d45": "\${aws_s3_bucket.root_PrivateBucket_82B4DCC5.bucket}", + "BUCKET_NAME_21bd2572": "\${aws_s3_bucket.root_PublicBucket_73AE6C59.bucket}", + "BUCKET_NAME_d755b447": "\${aws_s3_bucket.root_cloudBucket_4F3C4F53.bucket}", + "WING_FUNCTION_NAME": "cloud-Function-c8d2eca1", + }, + }, + "function_name": "cloud-Function-c8d2eca1", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_cloudFunction_IamRole_DAEC3578.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_cloudFunction_Code_2F6A7948.bucket}", + "s3_key": "\${aws_s3_object.root_cloudFunction_S3Object_C8435368.key}", + "timeout": 30, + }, + "root_cloudQueueOnMessagee46e5cb7_C394DE2A": { + "//": { + "metadata": { + "path": "root/Default/cloud.Queue-OnMessage-e46e5cb7/Default", + "uniqueId": "root_cloudQueueOnMessagee46e5cb7_C394DE2A", + }, + }, + "environment": { + "variables": { + "BUCKET_NAME_0c557d45": "\${aws_s3_bucket.root_PrivateBucket_82B4DCC5.bucket}", + "BUCKET_NAME_21bd2572": "\${aws_s3_bucket.root_PublicBucket_73AE6C59.bucket}", + "BUCKET_NAME_d755b447": "\${aws_s3_bucket.root_cloudBucket_4F3C4F53.bucket}", + "WING_FUNCTION_NAME": "cloud-Queue-OnMessage-e46e5cb7-c86cd0c0", + }, + }, + "function_name": "cloud-Queue-OnMessage-e46e5cb7-c86cd0c0", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_cloudQueueOnMessagee46e5cb7_IamRole_D8F85094.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_cloudQueueOnMessagee46e5cb7_Code_A7B6C6A0.bucket}", + "s3_key": "\${aws_s3_object.root_cloudQueueOnMessagee46e5cb7_S3Object_E583CB6B.key}", + "timeout": 30, + }, + }, + "aws_s3_bucket": { + "root_AnotherFunction_Code_B0183137": { + "//": { + "metadata": { + "path": "root/Default/AnotherFunction/Code", + "uniqueId": "root_AnotherFunction_Code_B0183137", + }, + }, + "bucket_prefix": "code-c8326137-", + }, + "root_PrivateBucket_82B4DCC5": { + "//": { + "metadata": { + "path": "root/Default/PrivateBucket/Default", + "uniqueId": "root_PrivateBucket_82B4DCC5", + }, + }, + "bucket_prefix": "privatebucket-c8a9b08c-", + }, + "root_PublicBucket_73AE6C59": { + "//": { + "metadata": { + "path": "root/Default/PublicBucket/Default", + "uniqueId": "root_PublicBucket_73AE6C59", + }, + }, + "bucket_prefix": "publicbucket-c8fea5d9-", + }, + "root_cloudBucket_4F3C4F53": { + "//": { + "metadata": { + "path": "root/Default/cloud.Bucket/Default", + "uniqueId": "root_cloudBucket_4F3C4F53", + }, + }, + "bucket_prefix": "cloud-bucket-c87175e7-", + }, + "root_cloudFunction_Code_2F6A7948": { + "//": { + "metadata": { + "path": "root/Default/cloud.Function/Code", + "uniqueId": "root_cloudFunction_Code_2F6A7948", + }, + }, + "bucket_prefix": "code-c8d4206f-", + }, + "root_cloudQueueOnMessagee46e5cb7_Code_A7B6C6A0": { + "//": { + "metadata": { + "path": "root/Default/cloud.Queue-OnMessage-e46e5cb7/Code", + "uniqueId": "root_cloudQueueOnMessagee46e5cb7_Code_A7B6C6A0", + }, + }, + "bucket_prefix": "code-c8b80a9a-", + }, + }, + "aws_s3_bucket_policy": { + "root_PublicBucket_PublicPolicy_98DDAE96": { + "//": { + "metadata": { + "path": "root/Default/PublicBucket/PublicPolicy", + "uniqueId": "root_PublicBucket_PublicPolicy_98DDAE96", + }, + }, + "bucket": "\${aws_s3_bucket.root_PublicBucket_73AE6C59.bucket}", + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Effect\\":\\"Allow\\",\\"Principal\\":\\"*\\",\\"Action\\":[\\"s3:GetObject\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_PublicBucket_73AE6C59.arn}/*\\"]}]}", + }, + }, + "aws_s3_bucket_public_access_block": { + "root_PrivateBucket_PublicAccessBlock_DB813250": { + "//": { + "metadata": { + "path": "root/Default/PrivateBucket/PublicAccessBlock", + "uniqueId": "root_PrivateBucket_PublicAccessBlock_DB813250", + }, + }, + "block_public_acls": true, + "block_public_policy": true, + "bucket": "\${aws_s3_bucket.root_PrivateBucket_82B4DCC5.bucket}", + "ignore_public_acls": true, + "restrict_public_buckets": true, + }, + "root_cloudBucket_PublicAccessBlock_319C1C2E": { + "//": { + "metadata": { + "path": "root/Default/cloud.Bucket/PublicAccessBlock", + "uniqueId": "root_cloudBucket_PublicAccessBlock_319C1C2E", + }, + }, + "block_public_acls": true, + "block_public_policy": true, + "bucket": "\${aws_s3_bucket.root_cloudBucket_4F3C4F53.bucket}", + "ignore_public_acls": true, + "restrict_public_buckets": true, + }, + }, + "aws_s3_bucket_server_side_encryption_configuration": { + "root_PrivateBucket_Encryption_F9F2144A": { + "//": { + "metadata": { + "path": "root/Default/PrivateBucket/Encryption", + "uniqueId": "root_PrivateBucket_Encryption_F9F2144A", + }, + }, + "bucket": "\${aws_s3_bucket.root_PrivateBucket_82B4DCC5.bucket}", + "rule": [ + { + "apply_server_side_encryption_by_default": { + "sse_algorithm": "AES256", + }, + }, + ], + }, + "root_PublicBucket_Encryption_FB9A8400": { + "//": { + "metadata": { + "path": "root/Default/PublicBucket/Encryption", + "uniqueId": "root_PublicBucket_Encryption_FB9A8400", + }, + }, + "bucket": "\${aws_s3_bucket.root_PublicBucket_73AE6C59.bucket}", + "rule": [ + { + "apply_server_side_encryption_by_default": { + "sse_algorithm": "AES256", + }, + }, + ], + }, + "root_cloudBucket_Encryption_8ED0CD9C": { + "//": { + "metadata": { + "path": "root/Default/cloud.Bucket/Encryption", + "uniqueId": "root_cloudBucket_Encryption_8ED0CD9C", + }, + }, + "bucket": "\${aws_s3_bucket.root_cloudBucket_4F3C4F53.bucket}", + "rule": [ + { + "apply_server_side_encryption_by_default": { + "sse_algorithm": "AES256", + }, + }, + ], + }, + }, + "aws_s3_object": { + "root_AnotherFunction_S3Object_5AD7E879": { + "//": { + "metadata": { + "path": "root/Default/AnotherFunction/S3Object", + "uniqueId": "root_AnotherFunction_S3Object_5AD7E879", + }, + }, + "bucket": "\${aws_s3_bucket.root_AnotherFunction_Code_B0183137.bucket}", + "key": "", + }, + }, + }, +} +`; + +exports[`captures.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const cloud = require('@winglang/sdk').cloud; +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"captures\\", plugins: $plugins }); + + const bucket1 = this.node.root.newAbstract(\\"@winglang/sdk.cloud.Bucket\\",this,\\"cloud.Bucket\\"); + const bucket2 = this.node.root.newAbstract(\\"@winglang/sdk.cloud.Bucket\\",this,\\"PublicBucket\\",{ + \\"public\\": true,} + ); + const bucket3 = this.node.root.newAbstract(\\"@winglang/sdk.cloud.Bucket\\",this,\\"PrivateBucket\\",{ public: false }); + const queue = this.node.root.newAbstract(\\"@winglang/sdk.cloud.Queue\\",this,\\"cloud.Queue\\"); + const handler = new $stdlib.core.Inflight(this, \\"$Inflight1\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.5f0e4e25898a72c973f063e92444f7572d58a18cdd38b3fb3a575af6adf7440f/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + bucket1: { + obj: bucket1, + ops: [\\"delete\\",\\"get\\",\\"get_json\\",\\"list\\",\\"put\\",\\"put_json\\"] + }, + bucket2: { + obj: bucket2, + ops: [\\"delete\\",\\"get\\",\\"get_json\\",\\"list\\",\\"put\\",\\"put_json\\"] + }, + bucket3: { + obj: bucket3, + ops: [\\"delete\\",\\"get\\",\\"get_json\\",\\"list\\",\\"put\\",\\"put_json\\"] + }, + } + }); + (queue.onMessage(handler,{ batchSize: 5 })); + this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"cloud.Function\\",handler,{ env: Object.freeze({}) }); + const empty_env = Object.freeze({}); + this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"AnotherFunction\\",handler,{ env: empty_env }); +} +} +new MyApp().synth();" +`; + +exports[`container_types.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, + "resource": { + "aws_s3_bucket": { + "root_bucket1_3A77B9B4": { + "//": { + "metadata": { + "path": "root/Default/bucket1/Default", + "uniqueId": "root_bucket1_3A77B9B4", + }, + }, + "bucket_prefix": "bucket1-c81ed215-", + }, + "root_bucket2_E39F70EE": { + "//": { + "metadata": { + "path": "root/Default/bucket2/Default", + "uniqueId": "root_bucket2_E39F70EE", + }, + }, + "bucket_prefix": "bucket2-c83a0be6-", + }, + "root_bucket3_A0C568EA": { + "//": { + "metadata": { + "path": "root/Default/bucket3/Default", + "uniqueId": "root_bucket3_A0C568EA", + }, + }, + "bucket_prefix": "bucket3-c8b6c706-", + }, + }, + "aws_s3_bucket_public_access_block": { + "root_bucket1_PublicAccessBlock_6C5071C0": { + "//": { + "metadata": { + "path": "root/Default/bucket1/PublicAccessBlock", + "uniqueId": "root_bucket1_PublicAccessBlock_6C5071C0", + }, + }, + "block_public_acls": true, + "block_public_policy": true, + "bucket": "\${aws_s3_bucket.root_bucket1_3A77B9B4.bucket}", + "ignore_public_acls": true, + "restrict_public_buckets": true, + }, + "root_bucket2_PublicAccessBlock_BC328E84": { + "//": { + "metadata": { + "path": "root/Default/bucket2/PublicAccessBlock", + "uniqueId": "root_bucket2_PublicAccessBlock_BC328E84", + }, + }, + "block_public_acls": true, + "block_public_policy": true, + "bucket": "\${aws_s3_bucket.root_bucket2_E39F70EE.bucket}", + "ignore_public_acls": true, + "restrict_public_buckets": true, + }, + "root_bucket3_PublicAccessBlock_CF2593D4": { + "//": { + "metadata": { + "path": "root/Default/bucket3/PublicAccessBlock", + "uniqueId": "root_bucket3_PublicAccessBlock_CF2593D4", + }, + }, + "block_public_acls": true, + "block_public_policy": true, + "bucket": "\${aws_s3_bucket.root_bucket3_A0C568EA.bucket}", + "ignore_public_acls": true, + "restrict_public_buckets": true, + }, + }, + "aws_s3_bucket_server_side_encryption_configuration": { + "root_bucket1_Encryption_33CABC1A": { + "//": { + "metadata": { + "path": "root/Default/bucket1/Encryption", + "uniqueId": "root_bucket1_Encryption_33CABC1A", + }, + }, + "bucket": "\${aws_s3_bucket.root_bucket1_3A77B9B4.bucket}", + "rule": [ + { + "apply_server_side_encryption_by_default": { + "sse_algorithm": "AES256", + }, + }, + ], + }, + "root_bucket2_Encryption_A83E82F9": { + "//": { + "metadata": { + "path": "root/Default/bucket2/Encryption", + "uniqueId": "root_bucket2_Encryption_A83E82F9", + }, + }, + "bucket": "\${aws_s3_bucket.root_bucket2_E39F70EE.bucket}", + "rule": [ + { + "apply_server_side_encryption_by_default": { + "sse_algorithm": "AES256", + }, + }, + ], + }, + "root_bucket3_Encryption_A2A51E22": { + "//": { + "metadata": { + "path": "root/Default/bucket3/Encryption", + "uniqueId": "root_bucket3_Encryption_A2A51E22", + }, + }, + "bucket": "\${aws_s3_bucket.root_bucket3_A0C568EA.bucket}", + "rule": [ + { + "apply_server_side_encryption_by_default": { + "sse_algorithm": "AES256", + }, + }, + ], + }, + }, + }, +} +`; + +exports[`container_types.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const cloud = require('@winglang/sdk').cloud; +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"container_types\\", plugins: $plugins }); + + const bucket1 = this.node.root.newAbstract(\\"@winglang/sdk.cloud.Bucket\\",this,\\"bucket1\\"); + const bucket2 = this.node.root.newAbstract(\\"@winglang/sdk.cloud.Bucket\\",this,\\"bucket2\\"); + const bucket3 = this.node.root.newAbstract(\\"@winglang/sdk.cloud.Bucket\\",this,\\"bucket3\\"); + const empty_array = Object.freeze([]); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(empty_array.length === 0)'\`)})((empty_array.length === 0))}; + const empty_array2 = []; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(empty_array2.length === 0)'\`)})((empty_array2.length === 0))}; + const arr1 = Object.freeze([1, 2, 3]); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(arr1.length === 3)'\`)})((arr1.length === 3))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((arr1.at(1)) === 2)'\`)})(((arr1.at(1)) === 2))}; + const arr2 = Object.freeze([\\"1\\", \\"2\\", \\"3\\"]); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(arr2.length === 3)'\`)})((arr2.length === 3))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((arr2.at(1)) === \\"2\\")'\`)})(((arr2.at(1)) === \\"2\\"))}; + const arr3 = Object.freeze([1, 2, 3]); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(arr3.length === 3)'\`)})((arr3.length === 3))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((arr3.at(1)) === 2)'\`)})(((arr3.at(1)) === 2))}; + const arr4 = Object.freeze([1, 2, 3]); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(arr4.length === 3)'\`)})((arr4.length === 3))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((arr4.at(1)) === 2)'\`)})(((arr4.at(1)) === 2))}; + const arr5 = Object.freeze([bucket1, bucket2, bucket3]); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(arr5.length === 3)'\`)})((arr5.length === 3))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((arr5.at(1)) === bucket2)'\`)})(((arr5.at(1)) === bucket2))}; + const arr6 = Object.freeze([bucket1, bucket2, bucket3]); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(arr6.length === 3)'\`)})((arr6.length === 3))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((arr6.at(1)) === bucket2)'\`)})(((arr6.at(1)) === bucket2))}; + const arr7 = arr4; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(arr7.length === 3)'\`)})((arr7.length === 3))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((arr7.at(1)) === 2)'\`)})(((arr7.at(1)) === 2))}; + const empty_map = Object.freeze({}); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(Object.keys(empty_map).length === 0)'\`)})((Object.keys(empty_map).length === 0))}; + const empty_map2 = {}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(Object.keys(empty_map2).length === 0)'\`)})((Object.keys(empty_map2).length === 0))}; + const m1 = Object.freeze({\\"a\\":1,\\"b\\":2,\\"c\\":3}); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(Object.keys(m1).length === 3)'\`)})((Object.keys(m1).length === 3))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((m1)[\\"b\\"] === 2)'\`)})(((m1)[\\"b\\"] === 2))}; + const m2 = Object.freeze({\\"a\\":1,\\"b\\":2,\\"c\\":3}); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(Object.keys(m2).length === 3)'\`)})((Object.keys(m2).length === 3))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((m2)[\\"b\\"] === 2)'\`)})(((m2)[\\"b\\"] === 2))}; + const m3 = Object.freeze({\\"a\\":1,\\"b\\":2,\\"c\\":3}); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(Object.keys(m3).length === 3)'\`)})((Object.keys(m3).length === 3))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((m3)[\\"b\\"] === 2)'\`)})(((m3)[\\"b\\"] === 2))}; + const m4 = Object.freeze({\\"a\\":1,\\"b\\":2,\\"c\\":3}); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(Object.keys(m4).length === 3)'\`)})((Object.keys(m4).length === 3))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((m4)[\\"b\\"] === 2)'\`)})(((m4)[\\"b\\"] === 2))}; + const m5 = Object.freeze({\\"a\\":bucket1,\\"b\\":bucket2,\\"c\\":bucket3}); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(Object.keys(m5).length === 3)'\`)})((Object.keys(m5).length === 3))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((m5)[\\"b\\"] === bucket2)'\`)})(((m5)[\\"b\\"] === bucket2))}; + const m6 = Object.freeze({\\"a\\":bucket1,\\"b\\":bucket2,\\"c\\":bucket3}); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(Object.keys(m6).length === 3)'\`)})((Object.keys(m6).length === 3))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((m6)[\\"b\\"] === bucket2)'\`)})(((m6)[\\"b\\"] === bucket2))}; + const m7 = m1; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(Object.keys(m7).length === 3)'\`)})((Object.keys(m7).length === 3))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((m7)[\\"b\\"] === 2)'\`)})(((m7)[\\"b\\"] === 2))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(\\"b\\" in (m7))'\`)})((\\"b\\" in (m7)))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((\\"boom\\" in (m4)) === false)'\`)})(((\\"boom\\" in (m4)) === false))}; + const empty_set = Object.freeze(new Set([])); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(empty_set.size === 0)'\`)})((empty_set.size === 0))}; + const empty_set2 = new Set([]); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(empty_set2.size === 0)'\`)})((empty_set2.size === 0))}; + const s2 = Object.freeze(new Set([1, 2, 3])); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(s2.size === 3)'\`)})((s2.size === 3))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(s2.has(1))'\`)})((s2.has(1)))}; + const s3 = Object.freeze(new Set([1, 2, 3])); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(s3.size === 3)'\`)})((s3.size === 3))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(s3.has(1))'\`)})((s3.has(1)))}; + const s4 = Object.freeze(new Set([1, 2, 3])); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(s4.size === 3)'\`)})((s4.size === 3))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(s4.has(1))'\`)})((s4.has(1)))}; + const s6 = Object.freeze(new Set([bucket1, bucket2, bucket3])); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(s6.size === 3)'\`)})((s6.size === 3))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(s6.has(bucket2))'\`)})((s6.has(bucket2)))}; + const s7 = s2; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(s7.size === 3)'\`)})((s7.size === 3))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(s7.has(1))'\`)})((s7.has(1)))}; +} +} +new MyApp().synth();" +`; + +exports[`enums.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, +} +`; + +exports[`enums.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"enums\\", plugins: $plugins }); + + const SomeEnum = Object.freeze((function (SomeEnum) { + SomeEnum[SomeEnum[\\"ONE\\"] = 0] = \\"ONE\\"; + SomeEnum[SomeEnum[\\"TWO\\"] = 1] = \\"TWO\\"; + SomeEnum[SomeEnum[\\"THREE\\"] = 2] = \\"THREE\\"; + return SomeEnum; + })({})); + const one = SomeEnum.ONE; + const two = SomeEnum.TWO; +} +} +new MyApp().synth();" +`; + +exports[`expressions_binary_operators.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, +} +`; + +exports[`expressions_binary_operators.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"expressions_binary_operators\\", plugins: $plugins }); + + const x = (-1); + const y = (2 * x); + const z = ((x + y) - 1); + const xyz = (((y * y) / (x * x)) * z); + const xf = 1; + const yf = ((-20.22) * xf); + const zf = ((xf + yf) - (-0.01)); + const fxzy = (5 ** (2 ** 3)); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(fxzy === 390625)'\`)})((fxzy === 390625))}; + const xyzf = Math.trunc(501 / (99 + 1)); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(xyzf === 5)'\`)})((xyzf === 5))}; + const xyznf = Math.trunc((-501) / (99 + 1)); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(xyznf === (-5))'\`)})((xyznf === (-5)))}; + const xyznfj = Math.trunc(501.9 / ((-99.1) - 0.91)); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(xyznfj === (-5))'\`)})((xyznfj === (-5)))}; + const xynfj = Math.trunc((-501.9) / ((-99.1) - 0.91)); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(xynfj === 5)'\`)})((xynfj === 5))}; +} +} +new MyApp().synth();" +`; + +exports[`expressions_string_interpolation.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, +} +`; + +exports[`expressions_string_interpolation.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"expressions_string_interpolation\\", plugins: $plugins }); + + const regular_string = \\"str\\\\n\\\\\\"\\"; + const empty_string = \\"\\"; + const number = 1; + const cool_string = \`cool \\\\\\"\\\\\${\${regular_string}}\\\\\\" test\`; + const really_cool_string = \`\${number}\${empty_string}\\\\n\${cool_string}\\\\n\\\\\${empty_string}\${\\"string-in-string\\"}!\`; + const begining_with_cool_strings = \`\${regular_string} \${number} <- cool\`; + const ending_with_cool_strings = \`cool -> \${regular_string} \${number}\`; +} +} +new MyApp().synth();" +`; + +exports[`file_counter.w > wing compile --target tf-aws > index.js 1`] = ` +"async handle(body) { const { bucket, counter } = this; { + const next = (await counter.inc()); + const key = \`myfile-\${\\"hi\\"}.txt\`; + (await bucket.put(key,body)); +} };" +`; + +exports[`file_counter.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, + "resource": { + "aws_dynamodb_table": { + "root_cloudCounter_E0AC1263": { + "//": { + "metadata": { + "path": "root/Default/cloud.Counter/Default", + "uniqueId": "root_cloudCounter_E0AC1263", + }, + }, + "attribute": [ + { + "name": "id", + "type": "S", + }, + ], + "billing_mode": "PAY_PER_REQUEST", + "hash_key": "id", + "name": "wing-counter-cloud.Counter-c866f225", + }, + }, + "aws_iam_role": { + "root_cloudQueueOnMessagee46e5cb7_IamRole_D8F85094": { + "//": { + "metadata": { + "path": "root/Default/cloud.Queue-OnMessage-e46e5cb7/IamRole", + "uniqueId": "root_cloudQueueOnMessagee46e5cb7_IamRole_D8F85094", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + }, + "aws_iam_role_policy": { + "root_cloudQueueOnMessagee46e5cb7_IamRolePolicy_99F6B872": { + "//": { + "metadata": { + "path": "root/Default/cloud.Queue-OnMessage-e46e5cb7/IamRolePolicy", + "uniqueId": "root_cloudQueueOnMessagee46e5cb7_IamRolePolicy_99F6B872", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":[\\"sqs:ReceiveMessage\\",\\"sqs:ChangeMessageVisibility\\",\\"sqs:GetQueueUrl\\",\\"sqs:DeleteMessage\\",\\"sqs:GetQueueAttributes\\"],\\"Resource\\":\\"\${aws_sqs_queue.root_cloudQueue_E3597F7A.arn}\\",\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:PutObject*\\",\\"s3:Abort*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:DeleteObject*\\",\\"s3:DeleteObjectVersion*\\",\\"s3:PutLifecycleConfiguration*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"dynamodb:UpdateItem\\"],\\"Resource\\":\\"\${aws_dynamodb_table.root_cloudCounter_E0AC1263.arn}\\",\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"dynamodb:GetItem\\"],\\"Resource\\":\\"\${aws_dynamodb_table.root_cloudCounter_E0AC1263.arn}\\",\\"Effect\\":\\"Allow\\"}]}", + "role": "\${aws_iam_role.root_cloudQueueOnMessagee46e5cb7_IamRole_D8F85094.name}", + }, + }, + "aws_iam_role_policy_attachment": { + "root_cloudQueueOnMessagee46e5cb7_IamRolePolicyAttachment_D3D5C118": { + "//": { + "metadata": { + "path": "root/Default/cloud.Queue-OnMessage-e46e5cb7/IamRolePolicyAttachment", + "uniqueId": "root_cloudQueueOnMessagee46e5cb7_IamRolePolicyAttachment_D3D5C118", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_cloudQueueOnMessagee46e5cb7_IamRole_D8F85094.name}", + }, + }, + "aws_lambda_event_source_mapping": { + "root_cloudQueue_EventSourceMapping_A2041279": { + "//": { + "metadata": { + "path": "root/Default/cloud.Queue/EventSourceMapping", + "uniqueId": "root_cloudQueue_EventSourceMapping_A2041279", + }, + }, + "batch_size": 1, + "event_source_arn": "\${aws_sqs_queue.root_cloudQueue_E3597F7A.arn}", + "function_name": "\${aws_lambda_function.root_cloudQueueOnMessagee46e5cb7_C394DE2A.function_name}", + }, + }, + "aws_lambda_function": { + "root_cloudQueueOnMessagee46e5cb7_C394DE2A": { + "//": { + "metadata": { + "path": "root/Default/cloud.Queue-OnMessage-e46e5cb7/Default", + "uniqueId": "root_cloudQueueOnMessagee46e5cb7_C394DE2A", + }, + }, + "environment": { + "variables": { + "BUCKET_NAME_d755b447": "\${aws_s3_bucket.root_cloudBucket_4F3C4F53.bucket}", + "DYNAMODB_TABLE_NAME_49baa65c": "\${aws_dynamodb_table.root_cloudCounter_E0AC1263.name}", + "WING_FUNCTION_NAME": "cloud-Queue-OnMessage-e46e5cb7-c86cd0c0", + }, + }, + "function_name": "cloud-Queue-OnMessage-e46e5cb7-c86cd0c0", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_cloudQueueOnMessagee46e5cb7_IamRole_D8F85094.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_cloudQueueOnMessagee46e5cb7_Code_A7B6C6A0.bucket}", + "s3_key": "\${aws_s3_object.root_cloudQueueOnMessagee46e5cb7_S3Object_E583CB6B.key}", + "timeout": 30, + }, + }, + "aws_s3_bucket": { + "root_cloudBucket_4F3C4F53": { + "//": { + "metadata": { + "path": "root/Default/cloud.Bucket/Default", + "uniqueId": "root_cloudBucket_4F3C4F53", + }, + }, + "bucket_prefix": "cloud-bucket-c87175e7-", + }, + "root_cloudQueueOnMessagee46e5cb7_Code_A7B6C6A0": { + "//": { + "metadata": { + "path": "root/Default/cloud.Queue-OnMessage-e46e5cb7/Code", + "uniqueId": "root_cloudQueueOnMessagee46e5cb7_Code_A7B6C6A0", + }, + }, + "bucket_prefix": "code-c8b80a9a-", + }, + }, + "aws_s3_bucket_public_access_block": { + "root_cloudBucket_PublicAccessBlock_319C1C2E": { + "//": { + "metadata": { + "path": "root/Default/cloud.Bucket/PublicAccessBlock", + "uniqueId": "root_cloudBucket_PublicAccessBlock_319C1C2E", + }, + }, + "block_public_acls": true, + "block_public_policy": true, + "bucket": "\${aws_s3_bucket.root_cloudBucket_4F3C4F53.bucket}", + "ignore_public_acls": true, + "restrict_public_buckets": true, + }, + }, + "aws_s3_bucket_server_side_encryption_configuration": { + "root_cloudBucket_Encryption_8ED0CD9C": { + "//": { + "metadata": { + "path": "root/Default/cloud.Bucket/Encryption", + "uniqueId": "root_cloudBucket_Encryption_8ED0CD9C", + }, + }, + "bucket": "\${aws_s3_bucket.root_cloudBucket_4F3C4F53.bucket}", + "rule": [ + { + "apply_server_side_encryption_by_default": { + "sse_algorithm": "AES256", + }, + }, + ], + }, + }, + "aws_s3_object": { + "root_cloudQueueOnMessagee46e5cb7_S3Object_E583CB6B": { + "//": { + "metadata": { + "path": "root/Default/cloud.Queue-OnMessage-e46e5cb7/S3Object", + "uniqueId": "root_cloudQueueOnMessagee46e5cb7_S3Object_E583CB6B", + }, + }, + "bucket": "\${aws_s3_bucket.root_cloudQueueOnMessagee46e5cb7_Code_A7B6C6A0.bucket}", + "key": "", + }, + }, + }, +} +`; + +exports[`file_counter.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const cloud = require('@winglang/sdk').cloud; +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"file_counter\\", plugins: $plugins }); + + const bucket = this.node.root.newAbstract(\\"@winglang/sdk.cloud.Bucket\\",this,\\"cloud.Bucket\\"); + const counter = this.node.root.newAbstract(\\"@winglang/sdk.cloud.Counter\\",this,\\"cloud.Counter\\",{ initial: 100 }); + const queue = this.node.root.newAbstract(\\"@winglang/sdk.cloud.Queue\\",this,\\"cloud.Queue\\",{ timeout: $stdlib.std.Duration.fromSeconds(10) }); + const handler = new $stdlib.core.Inflight(this, \\"$Inflight1\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.1ece6a476239c44d64d8b687b9e4389715198c49564defb8766e8b85b0f54620/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + bucket: { + obj: bucket, + ops: [\\"delete\\",\\"get\\",\\"get_json\\",\\"list\\",\\"put\\",\\"put_json\\"] + }, + counter: { + obj: counter, + ops: [\\"dec\\",\\"inc\\",\\"peek\\",\\"reset\\"] + }, + } + }); + (queue.onMessage(handler)); +} +} +new MyApp().synth();" +`; + +exports[`for_loop.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, +} +`; + +exports[`for_loop.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"for_loop\\", plugins: $plugins }); + + const words = Object.freeze([\\"wing\\", \\"lang\\", \\"dang\\"]); + const unique_numbers = Object.freeze(new Set([1, 2, 3])); + for (const word of words) { + for (const number of unique_numbers) { + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(number > 0)'\`)})((number > 0))}; + {console.log(\`\${word}: \${number}\`)}; + } + } +} +} +new MyApp().synth();" +`; + +exports[`forward_decl.w > wing compile --target tf-aws > R.inflight.js 1`] = ` +"export class R_inflight { +constructor({ f }) { + + this.f = f; +} +}" +`; + +exports[`forward_decl.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, +} +`; + +exports[`forward_decl.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"forward_decl\\", plugins: $plugins }); + + class R extends $stdlib.core.Resource { + constructor(scope, id, ) { + super(scope, id); + { + } + } + method2() { + { + (this.method1()); + {console.log(\`\${this.f}\`)}; + (this.method2()); + } + } + method1() { + { + } + } + _toInflight() { + const f_client = this._lift(this.f); + const self_client_path = require('path').resolve(__dirname, \\"clients/R.inflight.js\\").replace(/\\\\\\\\/g, \\"/\\"); + return $stdlib.core.NodeJsCode.fromInline(\`(new (require(\\"\${self_client_path}\\")).R_inflight({f: \${f_client}}))\`); + } + } + + const x = \\"hi\\"; + if (true) { + {console.log(\`\${x}\`)}; + const y = new R(this,\\"R\\"); + } +} +} +new MyApp().synth();" +`; + +exports[`hello.w > wing compile --target tf-aws > index.js 1`] = ` +"async handle(message) { const { bucket } = this; { + (await bucket.put(\\"wing.txt\\",\`Hello, \${message}\`)); +} };" +`; + +exports[`hello.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, + "resource": { + "aws_iam_role": { + "root_cloudQueueOnMessagee46e5cb7_IamRole_D8F85094": { + "//": { + "metadata": { + "path": "root/Default/cloud.Queue-OnMessage-e46e5cb7/IamRole", + "uniqueId": "root_cloudQueueOnMessagee46e5cb7_IamRole_D8F85094", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + }, + "aws_iam_role_policy": { + "root_cloudQueueOnMessagee46e5cb7_IamRolePolicy_99F6B872": { + "//": { + "metadata": { + "path": "root/Default/cloud.Queue-OnMessage-e46e5cb7/IamRolePolicy", + "uniqueId": "root_cloudQueueOnMessagee46e5cb7_IamRolePolicy_99F6B872", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":[\\"sqs:ReceiveMessage\\",\\"sqs:ChangeMessageVisibility\\",\\"sqs:GetQueueUrl\\",\\"sqs:DeleteMessage\\",\\"sqs:GetQueueAttributes\\"],\\"Resource\\":\\"\${aws_sqs_queue.root_cloudQueue_E3597F7A.arn}\\",\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:PutObject*\\",\\"s3:Abort*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:DeleteObject*\\",\\"s3:DeleteObjectVersion*\\",\\"s3:PutLifecycleConfiguration*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"}]}", + "role": "\${aws_iam_role.root_cloudQueueOnMessagee46e5cb7_IamRole_D8F85094.name}", + }, + }, + "aws_iam_role_policy_attachment": { + "root_cloudQueueOnMessagee46e5cb7_IamRolePolicyAttachment_D3D5C118": { + "//": { + "metadata": { + "path": "root/Default/cloud.Queue-OnMessage-e46e5cb7/IamRolePolicyAttachment", + "uniqueId": "root_cloudQueueOnMessagee46e5cb7_IamRolePolicyAttachment_D3D5C118", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_cloudQueueOnMessagee46e5cb7_IamRole_D8F85094.name}", + }, + }, + "aws_lambda_event_source_mapping": { + "root_cloudQueue_EventSourceMapping_A2041279": { + "//": { + "metadata": { + "path": "root/Default/cloud.Queue/EventSourceMapping", + "uniqueId": "root_cloudQueue_EventSourceMapping_A2041279", + }, + }, + "batch_size": 1, + "event_source_arn": "\${aws_sqs_queue.root_cloudQueue_E3597F7A.arn}", + "function_name": "\${aws_lambda_function.root_cloudQueueOnMessagee46e5cb7_C394DE2A.function_name}", + }, + }, + "aws_lambda_function": { + "root_cloudQueueOnMessagee46e5cb7_C394DE2A": { + "//": { + "metadata": { + "path": "root/Default/cloud.Queue-OnMessage-e46e5cb7/Default", + "uniqueId": "root_cloudQueueOnMessagee46e5cb7_C394DE2A", + }, + }, + "environment": { + "variables": { + "BUCKET_NAME_d755b447": "\${aws_s3_bucket.root_cloudBucket_4F3C4F53.bucket}", + "WING_FUNCTION_NAME": "cloud-Queue-OnMessage-e46e5cb7-c86cd0c0", + }, + }, + "function_name": "cloud-Queue-OnMessage-e46e5cb7-c86cd0c0", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_cloudQueueOnMessagee46e5cb7_IamRole_D8F85094.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_cloudQueueOnMessagee46e5cb7_Code_A7B6C6A0.bucket}", + "s3_key": "\${aws_s3_object.root_cloudQueueOnMessagee46e5cb7_S3Object_E583CB6B.key}", + "timeout": 30, + }, + }, + "aws_s3_bucket": { + "root_cloudBucket_4F3C4F53": { + "//": { + "metadata": { + "path": "root/Default/cloud.Bucket/Default", + "uniqueId": "root_cloudBucket_4F3C4F53", + }, + }, + "bucket_prefix": "cloud-bucket-c87175e7-", + }, + "root_cloudQueueOnMessagee46e5cb7_Code_A7B6C6A0": { + "//": { + "metadata": { + "path": "root/Default/cloud.Queue-OnMessage-e46e5cb7/Code", + "uniqueId": "root_cloudQueueOnMessagee46e5cb7_Code_A7B6C6A0", + }, + }, + "bucket_prefix": "code-c8b80a9a-", + }, + }, + "aws_s3_bucket_public_access_block": { + "root_cloudBucket_PublicAccessBlock_319C1C2E": { + "//": { + "metadata": { + "path": "root/Default/cloud.Bucket/PublicAccessBlock", + "uniqueId": "root_cloudBucket_PublicAccessBlock_319C1C2E", + }, + }, + "block_public_acls": true, + "block_public_policy": true, + "bucket": "\${aws_s3_bucket.root_cloudBucket_4F3C4F53.bucket}", + "ignore_public_acls": true, + "restrict_public_buckets": true, + }, + }, + "aws_s3_bucket_server_side_encryption_configuration": { + "root_cloudBucket_Encryption_8ED0CD9C": { + "//": { + "metadata": { + "path": "root/Default/cloud.Bucket/Encryption", + "uniqueId": "root_cloudBucket_Encryption_8ED0CD9C", + }, + }, + "bucket": "\${aws_s3_bucket.root_cloudBucket_4F3C4F53.bucket}", + "rule": [ + { + "apply_server_side_encryption_by_default": { + "sse_algorithm": "AES256", + }, + }, + ], + }, + }, + "aws_s3_object": { + "root_cloudQueueOnMessagee46e5cb7_S3Object_E583CB6B": { + "//": { + "metadata": { + "path": "root/Default/cloud.Queue-OnMessage-e46e5cb7/S3Object", + "uniqueId": "root_cloudQueueOnMessagee46e5cb7_S3Object_E583CB6B", + }, + }, + "bucket": "\${aws_s3_bucket.root_cloudQueueOnMessagee46e5cb7_Code_A7B6C6A0.bucket}", + "key": "", + }, + }, + }, +} +`; + +exports[`hello.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const cloud = require('@winglang/sdk').cloud; +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"hello\\", plugins: $plugins }); + + const bucket = this.node.root.newAbstract(\\"@winglang/sdk.cloud.Bucket\\",this,\\"cloud.Bucket\\"); + const queue = this.node.root.newAbstract(\\"@winglang/sdk.cloud.Queue\\",this,\\"cloud.Queue\\"); + (queue.onMessage(new $stdlib.core.Inflight(this, \\"$Inflight1\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.211d46e8ec3b5ce3e93872fcb29755356fb3566f5016eae5fcd6ec0f670ab580/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + bucket: { + obj: bucket, + ops: [\\"delete\\",\\"get\\",\\"get_json\\",\\"list\\",\\"put\\",\\"put_json\\"] + }, + } + }))); +} +} +new MyApp().synth();" +`; + +exports[`identical_inflights.w > wing compile --target tf-aws > index.js 1`] = ` +"async handle() { const { } = this; { +} };" +`; + +exports[`identical_inflights.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, +} +`; + +exports[`identical_inflights.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"identical_inflights\\", plugins: $plugins }); + + const x = new $stdlib.core.Inflight(this, \\"$Inflight1\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.8eb95bcbc154530931e15fc418c8b1fe991095671409552099ea1aa596999ede/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + } + }); + const y = new $stdlib.core.Inflight(this, \\"$Inflight2\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.8eb95bcbc154530931e15fc418c8b1fe991095671409552099ea1aa596999ede/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + } + }); +} +} +new MyApp().synth();" +`; + +exports[`impl_interface.w > wing compile --target tf-aws > A.inflight.js 1`] = ` +"export class A_inflight { +constructor({ }) { + + +} +async handle(msg) { + { + return; +} +}}" +`; + +exports[`impl_interface.w > wing compile --target tf-aws > B.inflight.js 1`] = ` +"export class B_inflight { +constructor({ }) { + + +} +async handle(msg) { + { + return 5; +} +}}" +`; + +exports[`impl_interface.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, +} +`; + +exports[`impl_interface.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const cloud = require('@winglang/sdk').cloud; +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"impl_interface\\", plugins: $plugins }); + + class A extends $stdlib.core.Resource { + constructor(scope, id, ) { + super(scope, id); + { + } + } + + _toInflight() { + + const self_client_path = require('path').resolve(__dirname, \\"clients/A.inflight.js\\").replace(/\\\\\\\\/g, \\"/\\"); + return $stdlib.core.NodeJsCode.fromInline(\`(new (require(\\"\${self_client_path}\\")).A_inflight({}))\`); + } + } + A._annotateInflight(\\"handle\\", {}); + class B extends $stdlib.core.Resource { + constructor(scope, id, ) { + super(scope, id); + { + } + } + + _toInflight() { + + const self_client_path = require('path').resolve(__dirname, \\"clients/B.inflight.js\\").replace(/\\\\\\\\/g, \\"/\\"); + return $stdlib.core.NodeJsCode.fromInline(\`(new (require(\\"\${self_client_path}\\")).B_inflight({}))\`); + } + } + B._annotateInflight(\\"handle\\", {}); +} +} +new MyApp().synth();" +`; + +exports[`inflight_ref_external.w > wing compile --target tf-aws > Test.inflight.js 1`] = ` +"export class Test_inflight { +constructor({ b, n }) { + + this.b = b; + this.n = n; +} +async test() { + { + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((await this.b.list()).length === 0)'\`)})(((await this.b.list()).length === 0))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(this.n === 12)'\`)})((this.n === 12))}; +} +}}" +`; + +exports[`inflight_ref_external.w > wing compile --target tf-aws > index.js 1`] = ` +"async handle() { const { f } = this; { + (await f.test()); +} };" +`; + +exports[`inflight_ref_external.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, + "resource": { + "aws_iam_role": { + "root_test_IamRole_6CDC2D16": { + "//": { + "metadata": { + "path": "root/Default/test/IamRole", + "uniqueId": "root_test_IamRole_6CDC2D16", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + }, + "aws_iam_role_policy": { + "root_test_IamRolePolicy_474A6820": { + "//": { + "metadata": { + "path": "root/Default/test/IamRolePolicy", + "uniqueId": "root_test_IamRolePolicy_474A6820", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"}]}", + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.name}", + }, + }, + "aws_iam_role_policy_attachment": { + "root_test_IamRolePolicyAttachment_1102A28A": { + "//": { + "metadata": { + "path": "root/Default/test/IamRolePolicyAttachment", + "uniqueId": "root_test_IamRolePolicyAttachment_1102A28A", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.name}", + }, + }, + "aws_lambda_function": { + "root_test_AAE85061": { + "//": { + "metadata": { + "path": "root/Default/test/Default", + "uniqueId": "root_test_AAE85061", + }, + }, + "environment": { + "variables": { + "BUCKET_NAME_d755b447": "\${aws_s3_bucket.root_cloudBucket_4F3C4F53.bucket}", + "WING_FUNCTION_NAME": "test-c8b6eece", + }, + }, + "function_name": "test-c8b6eece", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_test_Code_2D131EC2.bucket}", + "s3_key": "\${aws_s3_object.root_test_S3Object_A16CD789.key}", + "timeout": 30, + }, + }, + "aws_s3_bucket": { + "root_cloudBucket_4F3C4F53": { + "//": { + "metadata": { + "path": "root/Default/cloud.Bucket/Default", + "uniqueId": "root_cloudBucket_4F3C4F53", + }, + }, + "bucket_prefix": "cloud-bucket-c87175e7-", + }, + "root_test_Code_2D131EC2": { + "//": { + "metadata": { + "path": "root/Default/test/Code", + "uniqueId": "root_test_Code_2D131EC2", + }, + }, + "bucket_prefix": "code-c883c33b-", + }, + }, + "aws_s3_bucket_public_access_block": { + "root_cloudBucket_PublicAccessBlock_319C1C2E": { + "//": { + "metadata": { + "path": "root/Default/cloud.Bucket/PublicAccessBlock", + "uniqueId": "root_cloudBucket_PublicAccessBlock_319C1C2E", + }, + }, + "block_public_acls": true, + "block_public_policy": true, + "bucket": "\${aws_s3_bucket.root_cloudBucket_4F3C4F53.bucket}", + "ignore_public_acls": true, + "restrict_public_buckets": true, + }, + }, + "aws_s3_bucket_server_side_encryption_configuration": { + "root_cloudBucket_Encryption_8ED0CD9C": { + "//": { + "metadata": { + "path": "root/Default/cloud.Bucket/Encryption", + "uniqueId": "root_cloudBucket_Encryption_8ED0CD9C", + }, + }, + "bucket": "\${aws_s3_bucket.root_cloudBucket_4F3C4F53.bucket}", + "rule": [ + { + "apply_server_side_encryption_by_default": { + "sse_algorithm": "AES256", + }, + }, + ], + }, + }, + "aws_s3_object": { + "root_test_S3Object_A16CD789": { + "//": { + "metadata": { + "path": "root/Default/test/S3Object", + "uniqueId": "root_test_S3Object_A16CD789", + }, + }, + "bucket": "\${aws_s3_bucket.root_test_Code_2D131EC2.bucket}", + "key": "", + }, + }, + }, +} +`; + +exports[`inflight_ref_external.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const cloud = require('@winglang/sdk').cloud; +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"inflight_ref_external\\", plugins: $plugins }); + + class Test extends $stdlib.core.Resource { + constructor(scope, id, b, n) { + super(scope, id); + { + this.b = b; + this.n = n; + } + } + + _toInflight() { + const b_client = this._lift(this.b); + const n_client = this._lift(this.n); + const self_client_path = require('path').resolve(__dirname, \\"clients/Test.inflight.js\\").replace(/\\\\\\\\/g, \\"/\\"); + return $stdlib.core.NodeJsCode.fromInline(\`(new (require(\\"\${self_client_path}\\")).Test_inflight({b: \${b_client}, n: \${n_client}}))\`); + } + } + Test._annotateInflight(\\"test\\", {\\"this.b\\": { ops: [\\"list\\"] },\\"this.n\\": { ops: [] }}); + const my = this.node.root.newAbstract(\\"@winglang/sdk.cloud.Bucket\\",this,\\"cloud.Bucket\\"); + const f = new Test(this,\\"Test\\",my,12); + this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"test\\",new $stdlib.core.Inflight(this, \\"$Inflight1\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.80a17b6f758da66f2a7690bf5a9478936a9921da3421819b7a8bf7e1cfde82ed/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + f: { + obj: f, + ops: [\\"test\\"] + }, + } + })); +} +} +new MyApp().synth();" +`; + +exports[`inflight_ref_inflight_field.w > wing compile --target tf-aws > Foo.inflight.js 1`] = ` +"export class Foo_inflight { +constructor({ }) { + + +} +async set_field(v) { + { + this.inflight_field = (v * 10); +} +} +async get_field() { + { + return this.inflight_field; +} +}}" +`; + +exports[`inflight_ref_inflight_field.w > wing compile --target tf-aws > index.js 1`] = ` +"async handle() { const { f } = this; { + (await f.set_field(123)); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((await f.get_field()) === 1230)'\`)})(((await f.get_field()) === 1230))}; +} };" +`; + +exports[`inflight_ref_inflight_field.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, + "resource": { + "aws_iam_role": { + "root_test_IamRole_6CDC2D16": { + "//": { + "metadata": { + "path": "root/Default/test/IamRole", + "uniqueId": "root_test_IamRole_6CDC2D16", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + }, + "aws_iam_role_policy": { + "root_test_IamRolePolicy_474A6820": { + "//": { + "metadata": { + "path": "root/Default/test/IamRolePolicy", + "uniqueId": "root_test_IamRolePolicy_474A6820", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Effect\\":\\"Allow\\",\\"Action\\":\\"none:null\\",\\"Resource\\":\\"*\\"}]}", + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.name}", + }, + }, + "aws_iam_role_policy_attachment": { + "root_test_IamRolePolicyAttachment_1102A28A": { + "//": { + "metadata": { + "path": "root/Default/test/IamRolePolicyAttachment", + "uniqueId": "root_test_IamRolePolicyAttachment_1102A28A", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.name}", + }, + }, + "aws_lambda_function": { + "root_test_AAE85061": { + "//": { + "metadata": { + "path": "root/Default/test/Default", + "uniqueId": "root_test_AAE85061", + }, + }, + "environment": { + "variables": { + "WING_FUNCTION_NAME": "test-c8b6eece", + }, + }, + "function_name": "test-c8b6eece", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_test_Code_2D131EC2.bucket}", + "s3_key": "\${aws_s3_object.root_test_S3Object_A16CD789.key}", + "timeout": 30, + }, + }, + "aws_s3_bucket": { + "root_test_Code_2D131EC2": { + "//": { + "metadata": { + "path": "root/Default/test/Code", + "uniqueId": "root_test_Code_2D131EC2", + }, + }, + "bucket_prefix": "code-c883c33b-", + }, + }, + "aws_s3_object": { + "root_test_S3Object_A16CD789": { + "//": { + "metadata": { + "path": "root/Default/test/S3Object", + "uniqueId": "root_test_S3Object_A16CD789", + }, + }, + "bucket": "\${aws_s3_bucket.root_test_Code_2D131EC2.bucket}", + "key": "", + }, + }, + }, +} +`; + +exports[`inflight_ref_inflight_field.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const cloud = require('@winglang/sdk').cloud; +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"inflight_ref_inflight_field\\", plugins: $plugins }); + + class Foo extends $stdlib.core.Resource { + constructor(scope, id, ) { + super(scope, id); + { + } + } + + _toInflight() { + + const self_client_path = require('path').resolve(__dirname, \\"clients/Foo.inflight.js\\").replace(/\\\\\\\\/g, \\"/\\"); + return $stdlib.core.NodeJsCode.fromInline(\`(new (require(\\"\${self_client_path}\\")).Foo_inflight({}))\`); + } + } + Foo._annotateInflight(\\"set_field\\", {}); + Foo._annotateInflight(\\"get_field\\", {}); + const f = new Foo(this,\\"Foo\\"); + this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"test\\",new $stdlib.core.Inflight(this, \\"$Inflight1\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.ef866f1d1f55245bd0673c32e84f0500ca60a72f43baa3d446a83445a7f65861/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + f: { + obj: f, + ops: [\\"get_field\\",\\"set_field\\"] + }, + } + })); +} +} +new MyApp().synth();" +`; + +exports[`inflight_ref_primitive.w > wing compile --target tf-aws > Test.inflight.js 1`] = ` +"export class Test_inflight { +constructor({ my_arr, my_num, my_str }) { + + this.my_arr = my_arr; + this.my_num = my_num; + this.my_str = my_str; +} +async test() { + { + const y = (this.my_num + 456); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(y === 579)'\`)})((y === 579))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(this.my_str === \\"hello\\")'\`)})((this.my_str === \\"hello\\"))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((await this.my_arr.at(1)) === \\"bing\\")'\`)})(((await this.my_arr.at(1)) === \\"bing\\"))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(this.my_arr.length === 2)'\`)})((this.my_arr.length === 2))}; +} +}}" +`; + +exports[`inflight_ref_primitive.w > wing compile --target tf-aws > index.js 1`] = ` +"async handle() { const { f } = this; { + (await f.test()); +} };" +`; + +exports[`inflight_ref_primitive.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, + "resource": { + "aws_iam_role": { + "root_test_IamRole_6CDC2D16": { + "//": { + "metadata": { + "path": "root/Default/test/IamRole", + "uniqueId": "root_test_IamRole_6CDC2D16", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + }, + "aws_iam_role_policy": { + "root_test_IamRolePolicy_474A6820": { + "//": { + "metadata": { + "path": "root/Default/test/IamRolePolicy", + "uniqueId": "root_test_IamRolePolicy_474A6820", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Effect\\":\\"Allow\\",\\"Action\\":\\"none:null\\",\\"Resource\\":\\"*\\"}]}", + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.name}", + }, + }, + "aws_iam_role_policy_attachment": { + "root_test_IamRolePolicyAttachment_1102A28A": { + "//": { + "metadata": { + "path": "root/Default/test/IamRolePolicyAttachment", + "uniqueId": "root_test_IamRolePolicyAttachment_1102A28A", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.name}", + }, + }, + "aws_lambda_function": { + "root_test_AAE85061": { + "//": { + "metadata": { + "path": "root/Default/test/Default", + "uniqueId": "root_test_AAE85061", + }, + }, + "environment": { + "variables": { + "WING_FUNCTION_NAME": "test-c8b6eece", + }, + }, + "function_name": "test-c8b6eece", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_test_Code_2D131EC2.bucket}", + "s3_key": "\${aws_s3_object.root_test_S3Object_A16CD789.key}", + "timeout": 30, + }, + }, + "aws_s3_bucket": { + "root_test_Code_2D131EC2": { + "//": { + "metadata": { + "path": "root/Default/test/Code", + "uniqueId": "root_test_Code_2D131EC2", + }, + }, + "bucket_prefix": "code-c883c33b-", + }, + }, + "aws_s3_object": { + "root_test_S3Object_A16CD789": { + "//": { + "metadata": { + "path": "root/Default/test/S3Object", + "uniqueId": "root_test_S3Object_A16CD789", + }, + }, + "bucket": "\${aws_s3_bucket.root_test_Code_2D131EC2.bucket}", + "key": "", + }, + }, + }, +} +`; + +exports[`inflight_ref_primitive.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const cloud = require('@winglang/sdk').cloud; +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"inflight_ref_primitive\\", plugins: $plugins }); + + class Test extends $stdlib.core.Resource { + constructor(scope, id, ) { + super(scope, id); + { + this.my_str = \\"hello\\"; + this.my_num = 123; + this.my_arr = Object.freeze([\\"bang\\", \\"bing\\"]); + } + } + + _toInflight() { + const my_arr_client = this._lift(this.my_arr); + const my_num_client = this._lift(this.my_num); + const my_str_client = this._lift(this.my_str); + const self_client_path = require('path').resolve(__dirname, \\"clients/Test.inflight.js\\").replace(/\\\\\\\\/g, \\"/\\"); + return $stdlib.core.NodeJsCode.fromInline(\`(new (require(\\"\${self_client_path}\\")).Test_inflight({my_arr: \${my_arr_client}, my_num: \${my_num_client}, my_str: \${my_str_client}}))\`); + } + } + Test._annotateInflight(\\"test\\", {\\"this.my_arr\\": { ops: [\\"at\\",\\"length\\"] },\\"this.my_num\\": { ops: [] },\\"this.my_str\\": { ops: [] }}); + const f = new Test(this,\\"Test\\"); + this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"test\\",new $stdlib.core.Inflight(this, \\"$Inflight1\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.80a17b6f758da66f2a7690bf5a9478936a9921da3421819b7a8bf7e1cfde82ed/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + f: { + obj: f, + ops: [\\"test\\"] + }, + } + })); +} +} +new MyApp().synth();" +`; + +exports[`inflight_ref_resource.w > wing compile --target tf-aws > Test.inflight.js 1`] = ` +"export class Test_inflight { +constructor({ b }) { + + this.b = b; +} +async test() { + { + (await this.b.put(\\"hello\\",\\"world\\")); +} +}}" +`; + +exports[`inflight_ref_resource.w > wing compile --target tf-aws > index.js 1`] = ` +"async handle() { const { f } = this; { + (await f.test()); +} };" +`; + +exports[`inflight_ref_resource.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, + "resource": { + "aws_iam_role": { + "root_test_IamRole_6CDC2D16": { + "//": { + "metadata": { + "path": "root/Default/test/IamRole", + "uniqueId": "root_test_IamRole_6CDC2D16", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + }, + "aws_iam_role_policy": { + "root_test_IamRolePolicy_474A6820": { + "//": { + "metadata": { + "path": "root/Default/test/IamRolePolicy", + "uniqueId": "root_test_IamRolePolicy_474A6820", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":[\\"s3:PutObject*\\",\\"s3:Abort*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_Test_cloudBucket_8208F150.arn}\\",\\"\${aws_s3_bucket.root_Test_cloudBucket_8208F150.arn}/*\\"],\\"Effect\\":\\"Allow\\"}]}", + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.name}", + }, + }, + "aws_iam_role_policy_attachment": { + "root_test_IamRolePolicyAttachment_1102A28A": { + "//": { + "metadata": { + "path": "root/Default/test/IamRolePolicyAttachment", + "uniqueId": "root_test_IamRolePolicyAttachment_1102A28A", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.name}", + }, + }, + "aws_lambda_function": { + "root_test_AAE85061": { + "//": { + "metadata": { + "path": "root/Default/test/Default", + "uniqueId": "root_test_AAE85061", + }, + }, + "environment": { + "variables": { + "BUCKET_NAME_7f08500e": "\${aws_s3_bucket.root_Test_cloudBucket_8208F150.bucket}", + "WING_FUNCTION_NAME": "test-c8b6eece", + }, + }, + "function_name": "test-c8b6eece", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_test_Code_2D131EC2.bucket}", + "s3_key": "\${aws_s3_object.root_test_S3Object_A16CD789.key}", + "timeout": 30, + }, + }, + "aws_s3_bucket": { + "root_Test_cloudBucket_8208F150": { + "//": { + "metadata": { + "path": "root/Default/Test/cloud.Bucket/Default", + "uniqueId": "root_Test_cloudBucket_8208F150", + }, + }, + "bucket_prefix": "cloud-bucket-c88130da-", + }, + "root_test_Code_2D131EC2": { + "//": { + "metadata": { + "path": "root/Default/test/Code", + "uniqueId": "root_test_Code_2D131EC2", + }, + }, + "bucket_prefix": "code-c883c33b-", + }, + }, + "aws_s3_bucket_public_access_block": { + "root_Test_cloudBucket_PublicAccessBlock_94819ECF": { + "//": { + "metadata": { + "path": "root/Default/Test/cloud.Bucket/PublicAccessBlock", + "uniqueId": "root_Test_cloudBucket_PublicAccessBlock_94819ECF", + }, + }, + "block_public_acls": true, + "block_public_policy": true, + "bucket": "\${aws_s3_bucket.root_Test_cloudBucket_8208F150.bucket}", + "ignore_public_acls": true, + "restrict_public_buckets": true, + }, + }, + "aws_s3_bucket_server_side_encryption_configuration": { + "root_Test_cloudBucket_Encryption_CC613733": { + "//": { + "metadata": { + "path": "root/Default/Test/cloud.Bucket/Encryption", + "uniqueId": "root_Test_cloudBucket_Encryption_CC613733", + }, + }, + "bucket": "\${aws_s3_bucket.root_Test_cloudBucket_8208F150.bucket}", + "rule": [ + { + "apply_server_side_encryption_by_default": { + "sse_algorithm": "AES256", + }, + }, + ], + }, + }, + "aws_s3_object": { + "root_test_S3Object_A16CD789": { + "//": { + "metadata": { + "path": "root/Default/test/S3Object", + "uniqueId": "root_test_S3Object_A16CD789", + }, + }, + "bucket": "\${aws_s3_bucket.root_test_Code_2D131EC2.bucket}", + "key": "", + }, + }, + }, +} +`; + +exports[`inflight_ref_resource.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const cloud = require('@winglang/sdk').cloud; +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"inflight_ref_resource\\", plugins: $plugins }); + + class Test extends $stdlib.core.Resource { + constructor(scope, id, ) { + super(scope, id); + { + this.b = this.node.root.newAbstract(\\"@winglang/sdk.cloud.Bucket\\",this,\\"cloud.Bucket\\"); + } + } + + _toInflight() { + const b_client = this._lift(this.b); + const self_client_path = require('path').resolve(__dirname, \\"clients/Test.inflight.js\\").replace(/\\\\\\\\/g, \\"/\\"); + return $stdlib.core.NodeJsCode.fromInline(\`(new (require(\\"\${self_client_path}\\")).Test_inflight({b: \${b_client}}))\`); + } + } + Test._annotateInflight(\\"test\\", {\\"this.b\\": { ops: [\\"put\\"] }}); + const f = new Test(this,\\"Test\\"); + this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"test\\",new $stdlib.core.Inflight(this, \\"$Inflight1\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.80a17b6f758da66f2a7690bf5a9478936a9921da3421819b7a8bf7e1cfde82ed/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + f: { + obj: f, + ops: [\\"test\\"] + }, + } + })); +} +} +new MyApp().synth();" +`; + +exports[`inflight_ref_resource_collection.w > wing compile --target tf-aws > Test.inflight.js 1`] = ` +"export class Test_inflight { +constructor({ array }) { + + this.array = array; +} +async test() { + { + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((await (await this.array.at(0)).list()).length === 0)'\`)})(((await (await this.array.at(0)).list()).length === 0))}; +} +}}" +`; + +exports[`inflight_ref_resource_collection.w > wing compile --target tf-aws > index.js 1`] = ` +"async handle() { const { f } = this; { + (await f.test()); +} };" +`; + +exports[`inflight_ref_resource_collection.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, + "resource": { + "aws_iam_role": { + "root_test_IamRole_6CDC2D16": { + "//": { + "metadata": { + "path": "root/Default/test/IamRole", + "uniqueId": "root_test_IamRole_6CDC2D16", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + }, + "aws_iam_role_policy": { + "root_test_IamRolePolicy_474A6820": { + "//": { + "metadata": { + "path": "root/Default/test/IamRolePolicy", + "uniqueId": "root_test_IamRolePolicy_474A6820", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Effect\\":\\"Allow\\",\\"Action\\":\\"none:null\\",\\"Resource\\":\\"*\\"}]}", + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.name}", + }, + }, + "aws_iam_role_policy_attachment": { + "root_test_IamRolePolicyAttachment_1102A28A": { + "//": { + "metadata": { + "path": "root/Default/test/IamRolePolicyAttachment", + "uniqueId": "root_test_IamRolePolicyAttachment_1102A28A", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.name}", + }, + }, + "aws_lambda_function": { + "root_test_AAE85061": { + "//": { + "metadata": { + "path": "root/Default/test/Default", + "uniqueId": "root_test_AAE85061", + }, + }, + "environment": { + "variables": { + "BUCKET_NAME_7f08500e": "\${aws_s3_bucket.root_Test_cloudBucket_8208F150.bucket}", + "WING_FUNCTION_NAME": "test-c8b6eece", + }, + }, + "function_name": "test-c8b6eece", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_test_Code_2D131EC2.bucket}", + "s3_key": "\${aws_s3_object.root_test_S3Object_A16CD789.key}", + "timeout": 30, + }, + }, + "aws_s3_bucket": { + "root_Test_cloudBucket_8208F150": { + "//": { + "metadata": { + "path": "root/Default/Test/cloud.Bucket/Default", + "uniqueId": "root_Test_cloudBucket_8208F150", + }, + }, + "bucket_prefix": "cloud-bucket-c88130da-", + }, + "root_test_Code_2D131EC2": { + "//": { + "metadata": { + "path": "root/Default/test/Code", + "uniqueId": "root_test_Code_2D131EC2", + }, + }, + "bucket_prefix": "code-c883c33b-", + }, + }, + "aws_s3_bucket_public_access_block": { + "root_Test_cloudBucket_PublicAccessBlock_94819ECF": { + "//": { + "metadata": { + "path": "root/Default/Test/cloud.Bucket/PublicAccessBlock", + "uniqueId": "root_Test_cloudBucket_PublicAccessBlock_94819ECF", + }, + }, + "block_public_acls": true, + "block_public_policy": true, + "bucket": "\${aws_s3_bucket.root_Test_cloudBucket_8208F150.bucket}", + "ignore_public_acls": true, + "restrict_public_buckets": true, + }, + }, + "aws_s3_bucket_server_side_encryption_configuration": { + "root_Test_cloudBucket_Encryption_CC613733": { + "//": { + "metadata": { + "path": "root/Default/Test/cloud.Bucket/Encryption", + "uniqueId": "root_Test_cloudBucket_Encryption_CC613733", + }, + }, + "bucket": "\${aws_s3_bucket.root_Test_cloudBucket_8208F150.bucket}", + "rule": [ + { + "apply_server_side_encryption_by_default": { + "sse_algorithm": "AES256", + }, + }, + ], + }, + }, + "aws_s3_object": { + "root_test_S3Object_A16CD789": { + "//": { + "metadata": { + "path": "root/Default/test/S3Object", + "uniqueId": "root_test_S3Object_A16CD789", + }, + }, + "bucket": "\${aws_s3_bucket.root_test_Code_2D131EC2.bucket}", + "key": "", + }, + }, + }, +} +`; + +exports[`inflight_ref_resource_collection.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const cloud = require('@winglang/sdk').cloud; +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"inflight_ref_resource_collection\\", plugins: $plugins }); + + class Test extends $stdlib.core.Resource { + constructor(scope, id, ) { + super(scope, id); + { + this.array = Object.freeze([this.node.root.newAbstract(\\"@winglang/sdk.cloud.Bucket\\",this,\\"cloud.Bucket\\")]); + } + } + + _toInflight() { + const array_client = this._lift(this.array); + const self_client_path = require('path').resolve(__dirname, \\"clients/Test.inflight.js\\").replace(/\\\\\\\\/g, \\"/\\"); + return $stdlib.core.NodeJsCode.fromInline(\`(new (require(\\"\${self_client_path}\\")).Test_inflight({array: \${array_client}}))\`); + } + } + Test._annotateInflight(\\"test\\", {\\"this.array\\": { ops: [\\"at\\"] }}); + const f = new Test(this,\\"Test\\"); + this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"test\\",new $stdlib.core.Inflight(this, \\"$Inflight1\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.80a17b6f758da66f2a7690bf5a9478936a9921da3421819b7a8bf7e1cfde82ed/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + f: { + obj: f, + ops: [\\"test\\"] + }, + } + })); +} +} +new MyApp().synth();" +`; + +exports[`inflight_ref_resource_field.w > wing compile --target tf-aws > Test.inflight.js 1`] = ` +"export class Test_inflight { +constructor({ my_field }) { + + this.my_field = my_field; +} +async test() { + { + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(this.my_field === \\"hello\\")'\`)})((this.my_field === \\"hello\\"))}; +} +}}" +`; + +exports[`inflight_ref_resource_field.w > wing compile --target tf-aws > index.js 1`] = ` +"async handle() { const { f } = this; { + (await f.test()); +} };" +`; + +exports[`inflight_ref_resource_field.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, + "resource": { + "aws_iam_role": { + "root_test_IamRole_6CDC2D16": { + "//": { + "metadata": { + "path": "root/Default/test/IamRole", + "uniqueId": "root_test_IamRole_6CDC2D16", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + }, + "aws_iam_role_policy": { + "root_test_IamRolePolicy_474A6820": { + "//": { + "metadata": { + "path": "root/Default/test/IamRolePolicy", + "uniqueId": "root_test_IamRolePolicy_474A6820", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Effect\\":\\"Allow\\",\\"Action\\":\\"none:null\\",\\"Resource\\":\\"*\\"}]}", + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.name}", + }, + }, + "aws_iam_role_policy_attachment": { + "root_test_IamRolePolicyAttachment_1102A28A": { + "//": { + "metadata": { + "path": "root/Default/test/IamRolePolicyAttachment", + "uniqueId": "root_test_IamRolePolicyAttachment_1102A28A", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.name}", + }, + }, + "aws_lambda_function": { + "root_test_AAE85061": { + "//": { + "metadata": { + "path": "root/Default/test/Default", + "uniqueId": "root_test_AAE85061", + }, + }, + "environment": { + "variables": { + "WING_FUNCTION_NAME": "test-c8b6eece", + }, + }, + "function_name": "test-c8b6eece", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_test_Code_2D131EC2.bucket}", + "s3_key": "\${aws_s3_object.root_test_S3Object_A16CD789.key}", + "timeout": 30, + }, + }, + "aws_s3_bucket": { + "root_test_Code_2D131EC2": { + "//": { + "metadata": { + "path": "root/Default/test/Code", + "uniqueId": "root_test_Code_2D131EC2", + }, + }, + "bucket_prefix": "code-c883c33b-", + }, + }, + "aws_s3_object": { + "root_test_S3Object_A16CD789": { + "//": { + "metadata": { + "path": "root/Default/test/S3Object", + "uniqueId": "root_test_S3Object_A16CD789", + }, + }, + "bucket": "\${aws_s3_bucket.root_test_Code_2D131EC2.bucket}", + "key": "", + }, + }, + }, +} +`; + +exports[`inflight_ref_resource_field.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const cloud = require('@winglang/sdk').cloud; +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"inflight_ref_resource_field\\", plugins: $plugins }); + + class Test extends $stdlib.core.Resource { + constructor(scope, id, ) { + super(scope, id); + { + this.my_field = \\"hello\\"; + } + } + + _toInflight() { + const my_field_client = this._lift(this.my_field); + const self_client_path = require('path').resolve(__dirname, \\"clients/Test.inflight.js\\").replace(/\\\\\\\\/g, \\"/\\"); + return $stdlib.core.NodeJsCode.fromInline(\`(new (require(\\"\${self_client_path}\\")).Test_inflight({my_field: \${my_field_client}}))\`); + } + } + Test._annotateInflight(\\"test\\", {\\"this.my_field\\": { ops: [] }}); + const f = new Test(this,\\"Test\\"); + this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"test\\",new $stdlib.core.Inflight(this, \\"$Inflight1\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.80a17b6f758da66f2a7690bf5a9478936a9921da3421819b7a8bf7e1cfde82ed/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + f: { + obj: f, + ops: [\\"test\\"] + }, + } + })); +} +} +new MyApp().synth();" +`; + +exports[`inflight_ref_resource_sub_method.w > wing compile --target tf-aws > Another.inflight.js 1`] = ` +"export class Another_inflight { +constructor({ my_queue }) { + + this.my_queue = my_queue; +} +async inflight_returns_resource() { + { + return this.my_queue; +} +}}" +`; + +exports[`inflight_ref_resource_sub_method.w > wing compile --target tf-aws > Test.inflight.js 1`] = ` +"export class Test_inflight { +constructor({ another }) { + + this.another = another; +} +async test() { + { + const q = (await this.another.inflight_returns_resource()); + (await q.push(\\"push!\\")); +} +}}" +`; + +exports[`inflight_ref_resource_sub_method.w > wing compile --target tf-aws > index.js 1`] = ` +"async handle() { const { f } = this; { + (await f.test()); +} };" +`; + +exports[`inflight_ref_resource_sub_method.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, + "resource": { + "aws_iam_role": { + "root_test_IamRole_6CDC2D16": { + "//": { + "metadata": { + "path": "root/Default/test/IamRole", + "uniqueId": "root_test_IamRole_6CDC2D16", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + }, + "aws_iam_role_policy": { + "root_test_IamRolePolicy_474A6820": { + "//": { + "metadata": { + "path": "root/Default/test/IamRolePolicy", + "uniqueId": "root_test_IamRolePolicy_474A6820", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Effect\\":\\"Allow\\",\\"Action\\":\\"none:null\\",\\"Resource\\":\\"*\\"}]}", + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.name}", + }, + }, + "aws_iam_role_policy_attachment": { + "root_test_IamRolePolicyAttachment_1102A28A": { + "//": { + "metadata": { + "path": "root/Default/test/IamRolePolicyAttachment", + "uniqueId": "root_test_IamRolePolicyAttachment_1102A28A", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.name}", + }, + }, + "aws_lambda_function": { + "root_test_AAE85061": { + "//": { + "metadata": { + "path": "root/Default/test/Default", + "uniqueId": "root_test_AAE85061", + }, + }, + "environment": { + "variables": { + "QUEUE_URL_de2218c1": "\${aws_sqs_queue.root_Test_Another_cloudQueue_02574A51.url}", + "WING_FUNCTION_NAME": "test-c8b6eece", + }, + }, + "function_name": "test-c8b6eece", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_test_Code_2D131EC2.bucket}", + "s3_key": "\${aws_s3_object.root_test_S3Object_A16CD789.key}", + "timeout": 30, + }, + }, + "aws_s3_bucket": { + "root_test_Code_2D131EC2": { + "//": { + "metadata": { + "path": "root/Default/test/Code", + "uniqueId": "root_test_Code_2D131EC2", + }, + }, + "bucket_prefix": "code-c883c33b-", + }, + }, + "aws_s3_object": { + "root_test_S3Object_A16CD789": { + "//": { + "metadata": { + "path": "root/Default/test/S3Object", + "uniqueId": "root_test_S3Object_A16CD789", + }, + }, + "bucket": "\${aws_s3_bucket.root_test_Code_2D131EC2.bucket}", + "key": "", + }, + }, + }, +} +`; + +exports[`inflight_ref_resource_sub_method.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const cloud = require('@winglang/sdk').cloud; +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"inflight_ref_resource_sub_method\\", plugins: $plugins }); + + class Another extends $stdlib.core.Resource { + constructor(scope, id, ) { + super(scope, id); + { + this.my_queue = this.node.root.newAbstract(\\"@winglang/sdk.cloud.Queue\\",this,\\"cloud.Queue\\"); + } + } + + _toInflight() { + const my_queue_client = this._lift(this.my_queue); + const self_client_path = require('path').resolve(__dirname, \\"clients/Another.inflight.js\\").replace(/\\\\\\\\/g, \\"/\\"); + return $stdlib.core.NodeJsCode.fromInline(\`(new (require(\\"\${self_client_path}\\")).Another_inflight({my_queue: \${my_queue_client}}))\`); + } + } + Another._annotateInflight(\\"inflight_returns_resource\\", {\\"this.my_queue\\": { ops: [] }}); + class Test extends $stdlib.core.Resource { + constructor(scope, id, ) { + super(scope, id); + { + this.another = new Another(this,\\"Another\\"); + } + } + + _toInflight() { + const another_client = this._lift(this.another); + const self_client_path = require('path').resolve(__dirname, \\"clients/Test.inflight.js\\").replace(/\\\\\\\\/g, \\"/\\"); + return $stdlib.core.NodeJsCode.fromInline(\`(new (require(\\"\${self_client_path}\\")).Test_inflight({another: \${another_client}}))\`); + } + } + Test._annotateInflight(\\"test\\", {\\"this.another\\": { ops: [\\"inflight_returns_resource\\"] }}); + const f = new Test(this,\\"Test\\"); + this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"test\\",new $stdlib.core.Inflight(this, \\"$Inflight1\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.80a17b6f758da66f2a7690bf5a9478936a9921da3421819b7a8bf7e1cfde82ed/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + f: { + obj: f, + ops: [\\"test\\"] + }, + } + })); +} +} +new MyApp().synth();" +`; + +exports[`inflight_ref_resource_userdefined.w > wing compile --target tf-aws > Another.inflight.js 1`] = ` +"export class Another_inflight { +constructor({ }) { + + +} +async func() { + { + return \\"hello\\"; +} +}}" +`; + +exports[`inflight_ref_resource_userdefined.w > wing compile --target tf-aws > Test.inflight.js 1`] = ` +"export class Test_inflight { +constructor({ another }) { + + this.another = another; +} +async test() { + { + const res = (await this.another.func()); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(res === \\"hello\\")'\`)})((res === \\"hello\\"))}; +} +}}" +`; + +exports[`inflight_ref_resource_userdefined.w > wing compile --target tf-aws > index.js 1`] = ` +"async handle() { const { f } = this; { + (await f.test()); +} };" +`; + +exports[`inflight_ref_resource_userdefined.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, + "resource": { + "aws_iam_role": { + "root_test_IamRole_6CDC2D16": { + "//": { + "metadata": { + "path": "root/Default/test/IamRole", + "uniqueId": "root_test_IamRole_6CDC2D16", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + }, + "aws_iam_role_policy": { + "root_test_IamRolePolicy_474A6820": { + "//": { + "metadata": { + "path": "root/Default/test/IamRolePolicy", + "uniqueId": "root_test_IamRolePolicy_474A6820", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Effect\\":\\"Allow\\",\\"Action\\":\\"none:null\\",\\"Resource\\":\\"*\\"}]}", + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.name}", + }, + }, + "aws_iam_role_policy_attachment": { + "root_test_IamRolePolicyAttachment_1102A28A": { + "//": { + "metadata": { + "path": "root/Default/test/IamRolePolicyAttachment", + "uniqueId": "root_test_IamRolePolicyAttachment_1102A28A", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.name}", + }, + }, + "aws_lambda_function": { + "root_test_AAE85061": { + "//": { + "metadata": { + "path": "root/Default/test/Default", + "uniqueId": "root_test_AAE85061", + }, + }, + "environment": { + "variables": { + "WING_FUNCTION_NAME": "test-c8b6eece", + }, + }, + "function_name": "test-c8b6eece", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_test_Code_2D131EC2.bucket}", + "s3_key": "\${aws_s3_object.root_test_S3Object_A16CD789.key}", + "timeout": 30, + }, + }, + "aws_s3_bucket": { + "root_test_Code_2D131EC2": { + "//": { + "metadata": { + "path": "root/Default/test/Code", + "uniqueId": "root_test_Code_2D131EC2", + }, + }, + "bucket_prefix": "code-c883c33b-", + }, + }, + "aws_s3_object": { + "root_test_S3Object_A16CD789": { + "//": { + "metadata": { + "path": "root/Default/test/S3Object", + "uniqueId": "root_test_S3Object_A16CD789", + }, + }, + "bucket": "\${aws_s3_bucket.root_test_Code_2D131EC2.bucket}", + "key": "", + }, + }, + }, +} +`; + +exports[`inflight_ref_resource_userdefined.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const cloud = require('@winglang/sdk').cloud; +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"inflight_ref_resource_userdefined\\", plugins: $plugins }); + + class Another extends $stdlib.core.Resource { + constructor(scope, id, ) { + super(scope, id); + { + } + } + + _toInflight() { + + const self_client_path = require('path').resolve(__dirname, \\"clients/Another.inflight.js\\").replace(/\\\\\\\\/g, \\"/\\"); + return $stdlib.core.NodeJsCode.fromInline(\`(new (require(\\"\${self_client_path}\\")).Another_inflight({}))\`); + } + } + Another._annotateInflight(\\"func\\", {}); + class Test extends $stdlib.core.Resource { + constructor(scope, id, ) { + super(scope, id); + { + this.another = new Another(this,\\"Another\\"); + } + } + + _toInflight() { + const another_client = this._lift(this.another); + const self_client_path = require('path').resolve(__dirname, \\"clients/Test.inflight.js\\").replace(/\\\\\\\\/g, \\"/\\"); + return $stdlib.core.NodeJsCode.fromInline(\`(new (require(\\"\${self_client_path}\\")).Test_inflight({another: \${another_client}}))\`); + } + } + Test._annotateInflight(\\"test\\", {\\"this.another\\": { ops: [\\"func\\"] }}); + const f = new Test(this,\\"Test\\"); + this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"test\\",new $stdlib.core.Inflight(this, \\"$Inflight1\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.80a17b6f758da66f2a7690bf5a9478936a9921da3421819b7a8bf7e1cfde82ed/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + f: { + obj: f, + ops: [\\"test\\"] + }, + } + })); +} +} +new MyApp().synth();" +`; + +exports[`inflight_ref_unknown_op.w > wing compile --target tf-aws > Test.inflight.js 1`] = ` +"export class Test_inflight { +constructor({ b }) { + + this.b = b; +} +async test() { + { + const x = this.b; + (await x.put(\\"hello\\",\\"world\\")); +} +}}" +`; + +exports[`inflight_ref_unknown_op.w > wing compile --target tf-aws > index.js 1`] = ` +"async handle() { const { f } = this; { + (await f.test()); +} };" +`; + +exports[`inflight_ref_unknown_op.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, + "resource": { + "aws_iam_role": { + "root_test_IamRole_6CDC2D16": { + "//": { + "metadata": { + "path": "root/Default/test/IamRole", + "uniqueId": "root_test_IamRole_6CDC2D16", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + }, + "aws_iam_role_policy": { + "root_test_IamRolePolicy_474A6820": { + "//": { + "metadata": { + "path": "root/Default/test/IamRolePolicy", + "uniqueId": "root_test_IamRolePolicy_474A6820", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Effect\\":\\"Allow\\",\\"Action\\":\\"none:null\\",\\"Resource\\":\\"*\\"}]}", + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.name}", + }, + }, + "aws_iam_role_policy_attachment": { + "root_test_IamRolePolicyAttachment_1102A28A": { + "//": { + "metadata": { + "path": "root/Default/test/IamRolePolicyAttachment", + "uniqueId": "root_test_IamRolePolicyAttachment_1102A28A", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.name}", + }, + }, + "aws_lambda_function": { + "root_test_AAE85061": { + "//": { + "metadata": { + "path": "root/Default/test/Default", + "uniqueId": "root_test_AAE85061", + }, + }, + "environment": { + "variables": { + "BUCKET_NAME_7f08500e": "\${aws_s3_bucket.root_Test_cloudBucket_8208F150.bucket}", + "WING_FUNCTION_NAME": "test-c8b6eece", + }, + }, + "function_name": "test-c8b6eece", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_test_Code_2D131EC2.bucket}", + "s3_key": "\${aws_s3_object.root_test_S3Object_A16CD789.key}", + "timeout": 30, + }, + }, + "aws_s3_bucket": { + "root_Test_cloudBucket_8208F150": { + "//": { + "metadata": { + "path": "root/Default/Test/cloud.Bucket/Default", + "uniqueId": "root_Test_cloudBucket_8208F150", + }, + }, + "bucket_prefix": "cloud-bucket-c88130da-", + }, + "root_test_Code_2D131EC2": { + "//": { + "metadata": { + "path": "root/Default/test/Code", + "uniqueId": "root_test_Code_2D131EC2", + }, + }, + "bucket_prefix": "code-c883c33b-", + }, + }, + "aws_s3_bucket_public_access_block": { + "root_Test_cloudBucket_PublicAccessBlock_94819ECF": { + "//": { + "metadata": { + "path": "root/Default/Test/cloud.Bucket/PublicAccessBlock", + "uniqueId": "root_Test_cloudBucket_PublicAccessBlock_94819ECF", + }, + }, + "block_public_acls": true, + "block_public_policy": true, + "bucket": "\${aws_s3_bucket.root_Test_cloudBucket_8208F150.bucket}", + "ignore_public_acls": true, + "restrict_public_buckets": true, + }, + }, + "aws_s3_bucket_server_side_encryption_configuration": { + "root_Test_cloudBucket_Encryption_CC613733": { + "//": { + "metadata": { + "path": "root/Default/Test/cloud.Bucket/Encryption", + "uniqueId": "root_Test_cloudBucket_Encryption_CC613733", + }, + }, + "bucket": "\${aws_s3_bucket.root_Test_cloudBucket_8208F150.bucket}", + "rule": [ + { + "apply_server_side_encryption_by_default": { + "sse_algorithm": "AES256", + }, + }, + ], + }, + }, + "aws_s3_object": { + "root_test_S3Object_A16CD789": { + "//": { + "metadata": { + "path": "root/Default/test/S3Object", + "uniqueId": "root_test_S3Object_A16CD789", + }, + }, + "bucket": "\${aws_s3_bucket.root_test_Code_2D131EC2.bucket}", + "key": "", + }, + }, + }, +} +`; + +exports[`inflight_ref_unknown_op.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const cloud = require('@winglang/sdk').cloud; +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"inflight_ref_unknown_op\\", plugins: $plugins }); + + class Test extends $stdlib.core.Resource { + constructor(scope, id, ) { + super(scope, id); + { + this.b = this.node.root.newAbstract(\\"@winglang/sdk.cloud.Bucket\\",this,\\"cloud.Bucket\\"); + } + } + + _toInflight() { + const b_client = this._lift(this.b); + const self_client_path = require('path').resolve(__dirname, \\"clients/Test.inflight.js\\").replace(/\\\\\\\\/g, \\"/\\"); + return $stdlib.core.NodeJsCode.fromInline(\`(new (require(\\"\${self_client_path}\\")).Test_inflight({b: \${b_client}}))\`); + } + } + Test._annotateInflight(\\"test\\", {\\"this.b\\": { ops: [] }}); + const f = new Test(this,\\"Test\\"); + this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"test\\",new $stdlib.core.Inflight(this, \\"$Inflight1\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.80a17b6f758da66f2a7690bf5a9478936a9921da3421819b7a8bf7e1cfde82ed/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + f: { + obj: f, + ops: [\\"test\\"] + }, + } + })); +} +} +new MyApp().synth();" +`; + +exports[`json.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, +} +`; + +exports[`json.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"json\\", plugins: $plugins }); + + const json_number = 123; + const json_bool = true; + const json_array = [1, 2, 3]; + const json_obj = Object.freeze({\\"boom\\":123}); + const json_mut_obj = {\\"boom boom\\":{\\"hello\\":1233},\\"hello\\":123,\\"world\\":[1, \\"cat\\", 3]}; + const message = \\"Coolness\\"; + ((obj, args) => { obj[args[0]] = args[1]; })(json_mut_obj, [\\"hello\\",message]); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((json_mut_obj)[\\"hello\\"] === message)'\`)})(((json_mut_obj)[\\"hello\\"] === message))}; + const some_number = 999; + const some_json = {\\"x\\":some_number}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((some_json)[\\"x\\"] === some_number)'\`)})(((some_json)[\\"x\\"] === some_number))}; + ((obj, args) => { obj[args[0]] = args[1]; })(some_json, [\\"x\\",111]); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((some_json)[\\"x\\"] === 111)'\`)})(((some_json)[\\"x\\"] === 111))}; + const x = Object.freeze({\\"cool\\":\\"beans\\"}); + const nested_json = {\\"a\\":\\"hello\\",\\"b\\":{\\"c\\":\\"world\\",\\"d\\":{\\"bar\\":123,\\"foo\\":\\"foo\\"}}}; + ((obj, args) => { obj[args[0]] = args[1]; })(((nested_json)[\\"b\\"])[\\"d\\"], [\\"foo\\",\\"tastic\\"]); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((((nested_json)[\\"b\\"])[\\"d\\"])[\\"foo\\"] === \\"tastic\\")'\`)})(((((nested_json)[\\"b\\"])[\\"d\\"])[\\"foo\\"] === \\"tastic\\"))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((((nested_json)[\\"b\\"])[\\"d\\"])[\\"bar\\"] === 123)'\`)})(((((nested_json)[\\"b\\"])[\\"d\\"])[\\"bar\\"] === 123))}; + const arr = [1, 2, \\"buckle\\", \\"my\\", \\"shoe\\", 3, 4, [\\"shut\\", \\"the\\", \\"door\\"]]; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((arr)[0] === 1)'\`)})(((arr)[0] === 1))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((arr)[2] === \\"buckle\\")'\`)})(((arr)[2] === \\"buckle\\"))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(((arr)[7])[0] === \\"shut\\")'\`)})((((arr)[7])[0] === \\"shut\\"))}; +} +} +new MyApp().synth();" +`; + +exports[`json_bucket.w > wing compile --target tf-aws > index.js 1`] = ` +"async handle(msg) { const { b, file_name } = this; { + const x = (await b.getJson(file_name)); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(((((x)[\\"persons\\"])[0])[\\"fears\\"])[1] === \\"failure\\")'\`)})((((((x)[\\"persons\\"])[0])[\\"fears\\"])[1] === \\"failure\\"))}; +} };" +`; + +exports[`json_bucket.w > wing compile --target tf-aws > index.js 2`] = ` +"async handle(msg) { const { b, file_name, get_json, j } = this; { + (await b.putJson(file_name,j)); + (await get_json.invoke(msg)); +} };" +`; + +exports[`json_bucket.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, + "resource": { + "aws_iam_role": { + "root_cloudFunction_IamRole_DAEC3578": { + "//": { + "metadata": { + "path": "root/Default/cloud.Function/IamRole", + "uniqueId": "root_cloudFunction_IamRole_DAEC3578", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + "root_testput_IamRole_1BBF32A6": { + "//": { + "metadata": { + "path": "root/Default/test:put/IamRole", + "uniqueId": "root_testput_IamRole_1BBF32A6", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + }, + "aws_iam_role_policy": { + "root_cloudFunction_IamRolePolicy_AAE6C0C0": { + "//": { + "metadata": { + "path": "root/Default/cloud.Function/IamRolePolicy", + "uniqueId": "root_cloudFunction_IamRolePolicy_AAE6C0C0", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":[\\"s3:PutObject*\\",\\"s3:Abort*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:DeleteObject*\\",\\"s3:DeleteObjectVersion*\\",\\"s3:PutLifecycleConfiguration*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"}]}", + "role": "\${aws_iam_role.root_cloudFunction_IamRole_DAEC3578.name}", + }, + "root_testput_IamRolePolicy_98659F09": { + "//": { + "metadata": { + "path": "root/Default/test:put/IamRolePolicy", + "uniqueId": "root_testput_IamRolePolicy_98659F09", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":[\\"s3:PutObject*\\",\\"s3:Abort*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:DeleteObject*\\",\\"s3:DeleteObjectVersion*\\",\\"s3:PutLifecycleConfiguration*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"lambda:InvokeFunction\\"],\\"Resource\\":[\\"\${aws_lambda_function.root_cloudFunction_6A57BA0A.arn}\\"],\\"Effect\\":\\"Allow\\"}]}", + "role": "\${aws_iam_role.root_testput_IamRole_1BBF32A6.name}", + }, + }, + "aws_iam_role_policy_attachment": { + "root_cloudFunction_IamRolePolicyAttachment_FC3D9E7C": { + "//": { + "metadata": { + "path": "root/Default/cloud.Function/IamRolePolicyAttachment", + "uniqueId": "root_cloudFunction_IamRolePolicyAttachment_FC3D9E7C", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_cloudFunction_IamRole_DAEC3578.name}", + }, + "root_testput_IamRolePolicyAttachment_E73FB6BB": { + "//": { + "metadata": { + "path": "root/Default/test:put/IamRolePolicyAttachment", + "uniqueId": "root_testput_IamRolePolicyAttachment_E73FB6BB", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_testput_IamRole_1BBF32A6.name}", + }, + }, + "aws_lambda_function": { + "root_cloudFunction_6A57BA0A": { + "//": { + "metadata": { + "path": "root/Default/cloud.Function/Default", + "uniqueId": "root_cloudFunction_6A57BA0A", + }, + }, + "environment": { + "variables": { + "BUCKET_NAME_d755b447": "\${aws_s3_bucket.root_cloudBucket_4F3C4F53.bucket}", + "WING_FUNCTION_NAME": "cloud-Function-c8d2eca1", + }, + }, + "function_name": "cloud-Function-c8d2eca1", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_cloudFunction_IamRole_DAEC3578.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_cloudFunction_Code_2F6A7948.bucket}", + "s3_key": "\${aws_s3_object.root_cloudFunction_S3Object_C8435368.key}", + "timeout": 30, + }, + "root_testput_449428F9": { + "//": { + "metadata": { + "path": "root/Default/test:put/Default", + "uniqueId": "root_testput_449428F9", + }, + }, + "environment": { + "variables": { + "BUCKET_NAME_d755b447": "\${aws_s3_bucket.root_cloudBucket_4F3C4F53.bucket}", + "FUNCTION_NAME_5bb84dfa": "\${aws_lambda_function.root_cloudFunction_6A57BA0A.arn}", + "WING_FUNCTION_NAME": "test-put-c899ce9b", + }, + }, + "function_name": "test-put-c899ce9b", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_testput_IamRole_1BBF32A6.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_testput_Code_DE7653AD.bucket}", + "s3_key": "\${aws_s3_object.root_testput_S3Object_30BF1DDD.key}", + "timeout": 30, + }, + }, + "aws_s3_bucket": { + "root_cloudBucket_4F3C4F53": { + "//": { + "metadata": { + "path": "root/Default/cloud.Bucket/Default", + "uniqueId": "root_cloudBucket_4F3C4F53", + }, + }, + "bucket_prefix": "cloud-bucket-c87175e7-", + }, + "root_cloudFunction_Code_2F6A7948": { + "//": { + "metadata": { + "path": "root/Default/cloud.Function/Code", + "uniqueId": "root_cloudFunction_Code_2F6A7948", + }, + }, + "bucket_prefix": "code-c8d4206f-", + }, + "root_testput_Code_DE7653AD": { + "//": { + "metadata": { + "path": "root/Default/test:put/Code", + "uniqueId": "root_testput_Code_DE7653AD", + }, + }, + "bucket_prefix": "code-c8ab7128-", + }, + }, + "aws_s3_bucket_public_access_block": { + "root_cloudBucket_PublicAccessBlock_319C1C2E": { + "//": { + "metadata": { + "path": "root/Default/cloud.Bucket/PublicAccessBlock", + "uniqueId": "root_cloudBucket_PublicAccessBlock_319C1C2E", + }, + }, + "block_public_acls": true, + "block_public_policy": true, + "bucket": "\${aws_s3_bucket.root_cloudBucket_4F3C4F53.bucket}", + "ignore_public_acls": true, + "restrict_public_buckets": true, + }, + }, + "aws_s3_bucket_server_side_encryption_configuration": { + "root_cloudBucket_Encryption_8ED0CD9C": { + "//": { + "metadata": { + "path": "root/Default/cloud.Bucket/Encryption", + "uniqueId": "root_cloudBucket_Encryption_8ED0CD9C", + }, + }, + "bucket": "\${aws_s3_bucket.root_cloudBucket_4F3C4F53.bucket}", + "rule": [ + { + "apply_server_side_encryption_by_default": { + "sse_algorithm": "AES256", + }, + }, + ], + }, + }, + "aws_s3_object": { + "root_cloudFunction_S3Object_C8435368": { + "//": { + "metadata": { + "path": "root/Default/cloud.Function/S3Object", + "uniqueId": "root_cloudFunction_S3Object_C8435368", + }, + }, + "bucket": "\${aws_s3_bucket.root_cloudFunction_Code_2F6A7948.bucket}", + "key": "", + }, + }, + }, +} +`; + +exports[`json_bucket.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const cloud = require('@winglang/sdk').cloud; +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"json_bucket\\", plugins: $plugins }); + + const b = this.node.root.newAbstract(\\"@winglang/sdk.cloud.Bucket\\",this,\\"cloud.Bucket\\"); + const file_name = \\"file.json\\"; + const j = Object.freeze({\\"persons\\":[{\\"age\\":30,\\"fears\\":[\\"heights\\", \\"failure\\"],\\"name\\":\\"hasan\\"}]}); + const get_json = this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"cloud.Function\\",new $stdlib.core.Inflight(this, \\"$Inflight1\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.1dabd42192b8d28a57f44a84b644a18eb6fedb868257af123181c0ecec2c2a70/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + b: { + obj: b, + ops: [\\"delete\\",\\"get\\",\\"get_json\\",\\"list\\",\\"put\\",\\"put_json\\"] + }, + file_name: { + obj: file_name, + ops: [] + }, + } + })); + this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"test:put\\",new $stdlib.core.Inflight(this, \\"$Inflight2\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.742d4f24b17fb7f7f831acbd15487b30d36ad90d44229b79672a09f910cb6619/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + b: { + obj: b, + ops: [\\"delete\\",\\"get\\",\\"get_json\\",\\"list\\",\\"put\\",\\"put_json\\"] + }, + file_name: { + obj: file_name, + ops: [] + }, + get_json: { + obj: get_json, + ops: [\\"invoke\\"] + }, + j: { + obj: j, + ops: [] + }, + } + })); +} +} +new MyApp().synth();" +`; + +exports[`mut_container_types.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, + "resource": { + "aws_s3_bucket": { + "root_bucket1_3A77B9B4": { + "//": { + "metadata": { + "path": "root/Default/bucket1/Default", + "uniqueId": "root_bucket1_3A77B9B4", + }, + }, + "bucket_prefix": "bucket1-c81ed215-", + }, + "root_bucket2_E39F70EE": { + "//": { + "metadata": { + "path": "root/Default/bucket2/Default", + "uniqueId": "root_bucket2_E39F70EE", + }, + }, + "bucket_prefix": "bucket2-c83a0be6-", + }, + "root_bucket3_A0C568EA": { + "//": { + "metadata": { + "path": "root/Default/bucket3/Default", + "uniqueId": "root_bucket3_A0C568EA", + }, + }, + "bucket_prefix": "bucket3-c8b6c706-", + }, + }, + "aws_s3_bucket_public_access_block": { + "root_bucket1_PublicAccessBlock_6C5071C0": { + "//": { + "metadata": { + "path": "root/Default/bucket1/PublicAccessBlock", + "uniqueId": "root_bucket1_PublicAccessBlock_6C5071C0", + }, + }, + "block_public_acls": true, + "block_public_policy": true, + "bucket": "\${aws_s3_bucket.root_bucket1_3A77B9B4.bucket}", + "ignore_public_acls": true, + "restrict_public_buckets": true, + }, + "root_bucket2_PublicAccessBlock_BC328E84": { + "//": { + "metadata": { + "path": "root/Default/bucket2/PublicAccessBlock", + "uniqueId": "root_bucket2_PublicAccessBlock_BC328E84", + }, + }, + "block_public_acls": true, + "block_public_policy": true, + "bucket": "\${aws_s3_bucket.root_bucket2_E39F70EE.bucket}", + "ignore_public_acls": true, + "restrict_public_buckets": true, + }, + "root_bucket3_PublicAccessBlock_CF2593D4": { + "//": { + "metadata": { + "path": "root/Default/bucket3/PublicAccessBlock", + "uniqueId": "root_bucket3_PublicAccessBlock_CF2593D4", + }, + }, + "block_public_acls": true, + "block_public_policy": true, + "bucket": "\${aws_s3_bucket.root_bucket3_A0C568EA.bucket}", + "ignore_public_acls": true, + "restrict_public_buckets": true, + }, + }, + "aws_s3_bucket_server_side_encryption_configuration": { + "root_bucket1_Encryption_33CABC1A": { + "//": { + "metadata": { + "path": "root/Default/bucket1/Encryption", + "uniqueId": "root_bucket1_Encryption_33CABC1A", + }, + }, + "bucket": "\${aws_s3_bucket.root_bucket1_3A77B9B4.bucket}", + "rule": [ + { + "apply_server_side_encryption_by_default": { + "sse_algorithm": "AES256", + }, + }, + ], + }, + "root_bucket2_Encryption_A83E82F9": { + "//": { + "metadata": { + "path": "root/Default/bucket2/Encryption", + "uniqueId": "root_bucket2_Encryption_A83E82F9", + }, + }, + "bucket": "\${aws_s3_bucket.root_bucket2_E39F70EE.bucket}", + "rule": [ + { + "apply_server_side_encryption_by_default": { + "sse_algorithm": "AES256", + }, + }, + ], + }, + "root_bucket3_Encryption_A2A51E22": { + "//": { + "metadata": { + "path": "root/Default/bucket3/Encryption", + "uniqueId": "root_bucket3_Encryption_A2A51E22", + }, + }, + "bucket": "\${aws_s3_bucket.root_bucket3_A0C568EA.bucket}", + "rule": [ + { + "apply_server_side_encryption_by_default": { + "sse_algorithm": "AES256", + }, + }, + ], + }, + }, + }, +} +`; + +exports[`mut_container_types.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const cloud = require('@winglang/sdk').cloud; +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"mut_container_types\\", plugins: $plugins }); + + const bucket1 = this.node.root.newAbstract(\\"@winglang/sdk.cloud.Bucket\\",this,\\"bucket1\\"); + const bucket2 = this.node.root.newAbstract(\\"@winglang/sdk.cloud.Bucket\\",this,\\"bucket2\\"); + const bucket3 = this.node.root.newAbstract(\\"@winglang/sdk.cloud.Bucket\\",this,\\"bucket3\\"); + const arr1 = [\\"a\\", \\"b\\", \\"c\\"]; + const arr2 = [1, 2, 3]; + const arr3 = [bucket1, bucket2]; + const arr4 = arr1; + (arr1.push(\\"a\\")); + (arr2.push(4)); + (arr3.push(bucket3)); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((arr2.pop()) === 4)'\`)})(((arr2.pop()) === 4))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(arr1.length === 4)'\`)})((arr1.length === 4))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((arr4.at(0)) === \\"a\\")'\`)})(((arr4.at(0)) === \\"a\\"))}; + const s1 = new Set([1, 2, 3, 3]); + const s2 = new Set([\\"hello\\", \\"world\\", \\"hello\\"]); + const s3 = new Set([bucket1, bucket2, bucket2]); + (s1.add(5)); + (s2.add(\\"bye\\")); + (s3.add(bucket3)); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(s2.has(\\"bye\\"))'\`)})((s2.has(\\"bye\\")))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(s2.has(\\"hello\\"))'\`)})((s2.has(\\"hello\\")))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(s3.has(bucket2))'\`)})((s3.has(bucket2)))}; + const m1 = {\\"hello\\":\\"world\\"}; + const m2 = {\\"hello\\":123}; + const m3 = {\\"b1\\":bucket1,\\"b2\\":bucket2}; + const m4 = m1; + const m5 = {\\"goodbye\\":\\"world\\"}; + const m6 = {\\"a\\":m1,\\"b\\":m5}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(\\"hello\\" in (m1))'\`)})((\\"hello\\" in (m1)))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(Object.keys(m2).length === 1)'\`)})((Object.keys(m2).length === 1))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((m3)[\\"b1\\"] === bucket1)'\`)})(((m3)[\\"b1\\"] === bucket1))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(Object.keys(m4).length === 1)'\`)})((Object.keys(m4).length === 1))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(((m6)[\\"a\\"])[\\"hello\\"] === \\"world\\")'\`)})((((m6)[\\"a\\"])[\\"hello\\"] === \\"world\\"))}; + ((obj, args) => { obj[args[0]] = args[1]; })(m1, [\\"hello\\",\\"goodbye\\"]); + ((obj, args) => { obj[args[0]] = args[1]; })(m6, [\\"a\\",{\\"foo\\":\\"bar\\"}]); + ((map) => { for(const k in map){delete map[k]}; })(m2); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(Object.keys(m2).length === 0)'\`)})((Object.keys(m2).length === 0))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((m1)[\\"hello\\"] === \\"goodbye\\")'\`)})(((m1)[\\"hello\\"] === \\"goodbye\\"))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(((m6)[\\"a\\"])[\\"foo\\"] === \\"bar\\")'\`)})((((m6)[\\"a\\"])[\\"foo\\"] === \\"bar\\"))}; +} +} +new MyApp().synth();" +`; + +exports[`primitive_methods.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, +} +`; + +exports[`primitive_methods.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"primitive_methods\\", plugins: $plugins }); + + const dur = $stdlib.std.Duration.fromSeconds(60); + const dur2 = $stdlib.std.Duration.fromSeconds(600); + const f = (d) => { + { + } + }; + const stringy = \`\${dur.minutes}:\${dur.seconds}\`; + {console.log(stringy)}; + if ((stringy.includes(\\"60\\") && (((stringy.split(\\":\\")).at(0)) === \\"60\\"))) { + {console.log(\`\${stringy.length}!\`)}; + } +} +} +new MyApp().synth();" +`; + +exports[`print.w > wing compile --target tf-aws > index.js 1`] = ` +"async handle() { const { } = this; { + {console.log(\\"inflight print 2.1\\")}; + {console.log(\\"inflight print 2.2\\")}; +} };" +`; + +exports[`print.w > wing compile --target tf-aws > index.js 2`] = ` +"async handle() { const { } = this; { + {console.log(\\"inflight print 1.1\\")}; + {console.log(\\"inflight print 1.2\\")}; +} };" +`; + +exports[`print.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, + "resource": { + "aws_iam_role": { + "root_testprint1_IamRole_AC783F9C": { + "//": { + "metadata": { + "path": "root/Default/test:print1/IamRole", + "uniqueId": "root_testprint1_IamRole_AC783F9C", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + "root_testprint2_IamRole_1A5A4191": { + "//": { + "metadata": { + "path": "root/Default/test:print2/IamRole", + "uniqueId": "root_testprint2_IamRole_1A5A4191", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + }, + "aws_iam_role_policy": { + "root_testprint1_IamRolePolicy_806AD6C3": { + "//": { + "metadata": { + "path": "root/Default/test:print1/IamRolePolicy", + "uniqueId": "root_testprint1_IamRolePolicy_806AD6C3", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Effect\\":\\"Allow\\",\\"Action\\":\\"none:null\\",\\"Resource\\":\\"*\\"}]}", + "role": "\${aws_iam_role.root_testprint1_IamRole_AC783F9C.name}", + }, + "root_testprint2_IamRolePolicy_D459BDAF": { + "//": { + "metadata": { + "path": "root/Default/test:print2/IamRolePolicy", + "uniqueId": "root_testprint2_IamRolePolicy_D459BDAF", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Effect\\":\\"Allow\\",\\"Action\\":\\"none:null\\",\\"Resource\\":\\"*\\"}]}", + "role": "\${aws_iam_role.root_testprint2_IamRole_1A5A4191.name}", + }, + }, + "aws_iam_role_policy_attachment": { + "root_testprint1_IamRolePolicyAttachment_E361420B": { + "//": { + "metadata": { + "path": "root/Default/test:print1/IamRolePolicyAttachment", + "uniqueId": "root_testprint1_IamRolePolicyAttachment_E361420B", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_testprint1_IamRole_AC783F9C.name}", + }, + "root_testprint2_IamRolePolicyAttachment_00548F9A": { + "//": { + "metadata": { + "path": "root/Default/test:print2/IamRolePolicyAttachment", + "uniqueId": "root_testprint2_IamRolePolicyAttachment_00548F9A", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_testprint2_IamRole_1A5A4191.name}", + }, + }, + "aws_lambda_function": { + "root_testprint1_86EB7ADD": { + "//": { + "metadata": { + "path": "root/Default/test:print1/Default", + "uniqueId": "root_testprint1_86EB7ADD", + }, + }, + "environment": { + "variables": { + "WING_FUNCTION_NAME": "test-print1-c85e6495", + }, + }, + "function_name": "test-print1-c85e6495", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_testprint1_IamRole_AC783F9C.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_testprint1_Code_EF1D7786.bucket}", + "s3_key": "\${aws_s3_object.root_testprint1_S3Object_BF976A20.key}", + "timeout": 30, + }, + "root_testprint2_C35721E6": { + "//": { + "metadata": { + "path": "root/Default/test:print2/Default", + "uniqueId": "root_testprint2_C35721E6", + }, + }, + "environment": { + "variables": { + "WING_FUNCTION_NAME": "test-print2-c864b24f", + }, + }, + "function_name": "test-print2-c864b24f", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_testprint2_IamRole_1A5A4191.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_testprint2_Code_0F714597.bucket}", + "s3_key": "\${aws_s3_object.root_testprint2_S3Object_22A6E03D.key}", + "timeout": 30, + }, + }, + "aws_s3_bucket": { + "root_testprint1_Code_EF1D7786": { + "//": { + "metadata": { + "path": "root/Default/test:print1/Code", + "uniqueId": "root_testprint1_Code_EF1D7786", + }, + }, + "bucket_prefix": "code-c8dcf8b8-", + }, + "root_testprint2_Code_0F714597": { + "//": { + "metadata": { + "path": "root/Default/test:print2/Code", + "uniqueId": "root_testprint2_Code_0F714597", + }, + }, + "bucket_prefix": "code-c8d35efe-", + }, + }, + "aws_s3_object": { + "root_testprint1_S3Object_BF976A20": { + "//": { + "metadata": { + "path": "root/Default/test:print1/S3Object", + "uniqueId": "root_testprint1_S3Object_BF976A20", + }, + }, + "bucket": "\${aws_s3_bucket.root_testprint1_Code_EF1D7786.bucket}", + "key": "", + }, + }, + }, +} +`; + +exports[`print.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const cloud = require('@winglang/sdk').cloud; +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"print\\", plugins: $plugins }); + + {console.log(\\"preflight print\\")}; + this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"test:print1\\",new $stdlib.core.Inflight(this, \\"$Inflight1\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.5d5065e7d4d5abb68575b6b618fc014e76b4159c3240fef327354a5900bb9fa6/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + } + })); + this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"test:print2\\",new $stdlib.core.Inflight(this, \\"$Inflight2\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.44e74a6db41cb5fd5b35696592c6a747e9831b228b4d1ce62b6e65f43dee835d/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + } + })); +} +} +new MyApp().synth();" +`; + +exports[`reassignment.w > wing compile --target tf-aws > R.inflight.js 1`] = ` +"export class R_inflight { +constructor({ f1 }) { + + this.f1 = f1; +} +}" +`; + +exports[`reassignment.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, +} +`; + +exports[`reassignment.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"reassignment\\", plugins: $plugins }); + + class R extends $stdlib.core.Resource { + constructor(scope, id, ) { + super(scope, id); + { + if (true) { + this.f = 1; + this.f1 = 0; + } + } + } + inc() { + { + this.f = (this.f + 1); + } + } + _toInflight() { + const f1_client = this._lift(this.f1); + const self_client_path = require('path').resolve(__dirname, \\"clients/R.inflight.js\\").replace(/\\\\\\\\/g, \\"/\\"); + return $stdlib.core.NodeJsCode.fromInline(\`(new (require(\\"\${self_client_path}\\")).R_inflight({f1: \${f1_client}}))\`); + } + } + + let x = 5; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(x === 5)'\`)})((x === 5))}; + x = (x + 1); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(x === 6)'\`)})((x === 6))}; + const r = new R(this,\\"R\\"); + (r.inc()); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(r.f === 2)'\`)})((r.f === 2))}; + const f = (arg) => { + { + arg = 0; + return arg; + } + }; + const y = 1; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((f(y)) === 0)'\`)})(((f(y)) === 0))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(y === 1)'\`)})((y === 1))}; +} +} +new MyApp().synth();" +`; + +exports[`resource.w > wing compile --target tf-aws > Bar.inflight.js 1`] = ` +"export class Bar_inflight { +constructor({ b, foo, name }) { + + this.b = b; + this.foo = foo; + this.name = name; +} +async my_method() { + { + (await this.foo.foo_inc()); + (await this.b.put(\\"foo\\",\`counter is: \${(await this.foo.foo_get())}\`)); + return (await this.b.get(\\"foo\\")); +} +}}" +`; + +exports[`resource.w > wing compile --target tf-aws > Foo.inflight.js 1`] = ` +"export class Foo_inflight { +constructor({ c }) { + + this.c = c; +} +async foo_inc() { + { + (await this.c.inc()); +} +} +async foo_get() { + { + return (await this.c.peek()); +} +}}" +`; + +exports[`resource.w > wing compile --target tf-aws > index.js 1`] = ` +"async handle() { const { bucket, res } = this; { + const s = (await res.my_method()); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(s === \\"counter is: 1\\")'\`)})((s === \\"counter is: 1\\"))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((await bucket.list()).length === 1)'\`)})(((await bucket.list()).length === 1))}; +} };" +`; + +exports[`resource.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, + "resource": { + "aws_dynamodb_table": { + "root_Bar_Foo_cloudCounter_616CF239": { + "//": { + "metadata": { + "path": "root/Default/Bar/Foo/cloud.Counter/Default", + "uniqueId": "root_Bar_Foo_cloudCounter_616CF239", + }, + }, + "attribute": [ + { + "name": "id", + "type": "S", + }, + ], + "billing_mode": "PAY_PER_REQUEST", + "hash_key": "id", + "name": "wing-counter-cloud.Counter-c8ef80ad", + }, + }, + "aws_iam_role": { + "root_test_IamRole_6CDC2D16": { + "//": { + "metadata": { + "path": "root/Default/test/IamRole", + "uniqueId": "root_test_IamRole_6CDC2D16", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + }, + "aws_iam_role_policy": { + "root_test_IamRolePolicy_474A6820": { + "//": { + "metadata": { + "path": "root/Default/test/IamRolePolicy", + "uniqueId": "root_test_IamRolePolicy_474A6820", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":[\\"s3:PutObject*\\",\\"s3:Abort*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:DeleteObject*\\",\\"s3:DeleteObjectVersion*\\",\\"s3:PutLifecycleConfiguration*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"dynamodb:UpdateItem\\"],\\"Resource\\":\\"\${aws_dynamodb_table.root_Bar_Foo_cloudCounter_616CF239.arn}\\",\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"dynamodb:GetItem\\"],\\"Resource\\":\\"\${aws_dynamodb_table.root_Bar_Foo_cloudCounter_616CF239.arn}\\",\\"Effect\\":\\"Allow\\"}]}", + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.name}", + }, + }, + "aws_iam_role_policy_attachment": { + "root_test_IamRolePolicyAttachment_1102A28A": { + "//": { + "metadata": { + "path": "root/Default/test/IamRolePolicyAttachment", + "uniqueId": "root_test_IamRolePolicyAttachment_1102A28A", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.name}", + }, + }, + "aws_lambda_function": { + "root_test_AAE85061": { + "//": { + "metadata": { + "path": "root/Default/test/Default", + "uniqueId": "root_test_AAE85061", + }, + }, + "environment": { + "variables": { + "BUCKET_NAME_d755b447": "\${aws_s3_bucket.root_cloudBucket_4F3C4F53.bucket}", + "DYNAMODB_TABLE_NAME_c7446906": "\${aws_dynamodb_table.root_Bar_Foo_cloudCounter_616CF239.name}", + "WING_FUNCTION_NAME": "test-c8b6eece", + }, + }, + "function_name": "test-c8b6eece", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_test_Code_2D131EC2.bucket}", + "s3_key": "\${aws_s3_object.root_test_S3Object_A16CD789.key}", + "timeout": 30, + }, + }, + "aws_s3_bucket": { + "root_cloudBucket_4F3C4F53": { + "//": { + "metadata": { + "path": "root/Default/cloud.Bucket/Default", + "uniqueId": "root_cloudBucket_4F3C4F53", + }, + }, + "bucket_prefix": "cloud-bucket-c87175e7-", + }, + "root_test_Code_2D131EC2": { + "//": { + "metadata": { + "path": "root/Default/test/Code", + "uniqueId": "root_test_Code_2D131EC2", + }, + }, + "bucket_prefix": "code-c883c33b-", + }, + }, + "aws_s3_bucket_public_access_block": { + "root_cloudBucket_PublicAccessBlock_319C1C2E": { + "//": { + "metadata": { + "path": "root/Default/cloud.Bucket/PublicAccessBlock", + "uniqueId": "root_cloudBucket_PublicAccessBlock_319C1C2E", + }, + }, + "block_public_acls": true, + "block_public_policy": true, + "bucket": "\${aws_s3_bucket.root_cloudBucket_4F3C4F53.bucket}", + "ignore_public_acls": true, + "restrict_public_buckets": true, + }, + }, + "aws_s3_bucket_server_side_encryption_configuration": { + "root_cloudBucket_Encryption_8ED0CD9C": { + "//": { + "metadata": { + "path": "root/Default/cloud.Bucket/Encryption", + "uniqueId": "root_cloudBucket_Encryption_8ED0CD9C", + }, + }, + "bucket": "\${aws_s3_bucket.root_cloudBucket_4F3C4F53.bucket}", + "rule": [ + { + "apply_server_side_encryption_by_default": { + "sse_algorithm": "AES256", + }, + }, + ], + }, + }, + "aws_s3_object": { + "root_test_S3Object_A16CD789": { + "//": { + "metadata": { + "path": "root/Default/test/S3Object", + "uniqueId": "root_test_S3Object_A16CD789", + }, + }, + "bucket": "\${aws_s3_bucket.root_test_Code_2D131EC2.bucket}", + "key": "", + }, + }, + }, +} +`; + +exports[`resource.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const cloud = require('@winglang/sdk').cloud; +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"resource\\", plugins: $plugins }); + + class Foo extends $stdlib.core.Resource { + constructor(scope, id, ) { + super(scope, id); + { + this.c = this.node.root.newAbstract(\\"@winglang/sdk.cloud.Counter\\",this,\\"cloud.Counter\\"); + } + } + + _toInflight() { + const c_client = this._lift(this.c); + const self_client_path = require('path').resolve(__dirname, \\"clients/Foo.inflight.js\\").replace(/\\\\\\\\/g, \\"/\\"); + return $stdlib.core.NodeJsCode.fromInline(\`(new (require(\\"\${self_client_path}\\")).Foo_inflight({c: \${c_client}}))\`); + } + } + Foo._annotateInflight(\\"foo_inc\\", {\\"this.c\\": { ops: [\\"inc\\"] }}); + Foo._annotateInflight(\\"foo_get\\", {\\"this.c\\": { ops: [\\"peek\\"] }}); + class Bar extends $stdlib.core.Resource { + constructor(scope, id, name, b) { + super(scope, id); + { + this.name = name; + this.b = b; + this.foo = new Foo(this,\\"Foo\\"); + } + } + + _toInflight() { + const b_client = this._lift(this.b); + const foo_client = this._lift(this.foo); + const name_client = this._lift(this.name); + const self_client_path = require('path').resolve(__dirname, \\"clients/Bar.inflight.js\\").replace(/\\\\\\\\/g, \\"/\\"); + return $stdlib.core.NodeJsCode.fromInline(\`(new (require(\\"\${self_client_path}\\")).Bar_inflight({b: \${b_client}, foo: \${foo_client}, name: \${name_client}}))\`); + } + } + Bar._annotateInflight(\\"my_method\\", {\\"this.b\\": { ops: [\\"get\\",\\"put\\"] },\\"this.foo\\": { ops: [\\"foo_get\\",\\"foo_inc\\"] }}); + const bucket = this.node.root.newAbstract(\\"@winglang/sdk.cloud.Bucket\\",this,\\"cloud.Bucket\\"); + const res = new Bar(this,\\"Bar\\",\\"Arr\\",bucket); + this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"test\\",new $stdlib.core.Inflight(this, \\"$Inflight1\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.e50bc85b13df379286b4aa72aa88788422e26d9146adbc9bba989a8a59253a73/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + bucket: { + obj: bucket, + ops: [\\"delete\\",\\"get\\",\\"get_json\\",\\"list\\",\\"put\\",\\"put_json\\"] + }, + res: { + obj: res, + ops: [\\"my_method\\"] + }, + } + })); +} +} +new MyApp().synth();" +`; + +exports[`statements_if.w > wing compile --target tf-aws > index.js 1`] = ` +"async handle(s) { const { } = this; { + if (true) { + const x = 2; + if ((true && ((x + 2) === 4))) { + if ((true && ((x + 3) === 4))) { + {((cond) => {if (!cond) throw new Error(\`assertion failed: 'false'\`)})(false)}; + } else if ((true && ((x + 3) === 6))) { + {((cond) => {if (!cond) throw new Error(\`assertion failed: 'false'\`)})(false)}; + } else if ((false || ((x + 3) === 5))) { + {((cond) => {if (!cond) throw new Error(\`assertion failed: 'true'\`)})(true)}; + } else { + {((cond) => {if (!cond) throw new Error(\`assertion failed: 'false'\`)})(false)}; + } + } else { + {((cond) => {if (!cond) throw new Error(\`assertion failed: 'false'\`)})(false)}; + } + } +} };" +`; + +exports[`statements_if.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, + "resource": { + "aws_iam_role": { + "root_test_IamRole_6CDC2D16": { + "//": { + "metadata": { + "path": "root/Default/test/IamRole", + "uniqueId": "root_test_IamRole_6CDC2D16", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + }, + "aws_iam_role_policy": { + "root_test_IamRolePolicy_474A6820": { + "//": { + "metadata": { + "path": "root/Default/test/IamRolePolicy", + "uniqueId": "root_test_IamRolePolicy_474A6820", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Effect\\":\\"Allow\\",\\"Action\\":\\"none:null\\",\\"Resource\\":\\"*\\"}]}", + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.name}", + }, + }, + "aws_iam_role_policy_attachment": { + "root_test_IamRolePolicyAttachment_1102A28A": { + "//": { + "metadata": { + "path": "root/Default/test/IamRolePolicyAttachment", + "uniqueId": "root_test_IamRolePolicyAttachment_1102A28A", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.name}", + }, + }, + "aws_lambda_function": { + "root_test_AAE85061": { + "//": { + "metadata": { + "path": "root/Default/test/Default", + "uniqueId": "root_test_AAE85061", + }, + }, + "environment": { + "variables": { + "WING_FUNCTION_NAME": "test-c8b6eece", + }, + }, + "function_name": "test-c8b6eece", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_test_Code_2D131EC2.bucket}", + "s3_key": "\${aws_s3_object.root_test_S3Object_A16CD789.key}", + "timeout": 30, + }, + }, + "aws_s3_bucket": { + "root_test_Code_2D131EC2": { + "//": { + "metadata": { + "path": "root/Default/test/Code", + "uniqueId": "root_test_Code_2D131EC2", + }, + }, + "bucket_prefix": "code-c883c33b-", + }, + }, + "aws_s3_object": { + "root_test_S3Object_A16CD789": { + "//": { + "metadata": { + "path": "root/Default/test/S3Object", + "uniqueId": "root_test_S3Object_A16CD789", + }, + }, + "bucket": "\${aws_s3_bucket.root_test_Code_2D131EC2.bucket}", + "key": "", + }, + }, + }, +} +`; + +exports[`statements_if.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const cloud = require('@winglang/sdk').cloud; +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"statements_if\\", plugins: $plugins }); + + if (true) { + const x = 2; + const f = false; + if ((true && ((x + 2) === 4))) { + if ((true && ((x + 3) === 4))) { + {((cond) => {if (!cond) throw new Error(\`assertion failed: 'false'\`)})(false)}; + } else if ((true && ((x + 3) === 6))) { + {((cond) => {if (!cond) throw new Error(\`assertion failed: 'false'\`)})(false)}; + } else if ((false || ((x + 3) === 5))) { + {((cond) => {if (!cond) throw new Error(\`assertion failed: 'true'\`)})(true)}; + } else if ((!f)) { + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(!(!(!f)))'\`)})((!(!(!f))))}; + } else { + {((cond) => {if (!cond) throw new Error(\`assertion failed: 'false'\`)})(false)}; + } + } else { + {((cond) => {if (!cond) throw new Error(\`assertion failed: 'false'\`)})(false)}; + } + } + this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"test\\",new $stdlib.core.Inflight(this, \\"$Inflight1\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.09c5e24751d9ba1246f91518f2f7f5c5d1102a09d0b1acff479ae27ad134090f/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + } + })); +} +} +new MyApp().synth();" +`; + +exports[`statements_variable_declarations.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, +} +`; + +exports[`statements_variable_declarations.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"statements_variable_declarations\\", plugins: $plugins }); + + const x = 2; + const y = x; +} +} +new MyApp().synth();" +`; + +exports[`static_members.w > wing compile --target tf-aws > Foo.inflight.js 1`] = ` +"export class Foo_inflight { +constructor({ instance_field }) { + + this.instance_field = instance_field; +} +async static get_123() { + { + return 123; +} +}}" +`; + +exports[`static_members.w > wing compile --target tf-aws > index.js 1`] = ` +"async handle(s) { const { } = this; { + class InflightClass + { + constructor() { + { + } + } + + inflight_method() { + { + return \\"Inflight method\\"; + } + } + static static_inflight_method() { + { + return \\"Static inflight method\\"; + } + } + } + const inflight_class = new InflightClass(); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((await inflight_class.inflight_method()) === \\"Inflight method\\")'\`)})(((await inflight_class.inflight_method()) === \\"Inflight method\\"))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((await InflightClass.static_inflight_method()) === \\"Static inflight method\\")'\`)})(((await InflightClass.static_inflight_method()) === \\"Static inflight method\\"))}; +} };" +`; + +exports[`static_members.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, + "resource": { + "aws_iam_role": { + "root_test_IamRole_6CDC2D16": { + "//": { + "metadata": { + "path": "root/Default/test/IamRole", + "uniqueId": "root_test_IamRole_6CDC2D16", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + }, + "aws_iam_role_policy": { + "root_test_IamRolePolicy_474A6820": { + "//": { + "metadata": { + "path": "root/Default/test/IamRolePolicy", + "uniqueId": "root_test_IamRolePolicy_474A6820", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Effect\\":\\"Allow\\",\\"Action\\":\\"none:null\\",\\"Resource\\":\\"*\\"}]}", + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.name}", + }, + }, + "aws_iam_role_policy_attachment": { + "root_test_IamRolePolicyAttachment_1102A28A": { + "//": { + "metadata": { + "path": "root/Default/test/IamRolePolicyAttachment", + "uniqueId": "root_test_IamRolePolicyAttachment_1102A28A", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.name}", + }, + }, + "aws_lambda_function": { + "root_test_AAE85061": { + "//": { + "metadata": { + "path": "root/Default/test/Default", + "uniqueId": "root_test_AAE85061", + }, + }, + "environment": { + "variables": { + "WING_FUNCTION_NAME": "test-c8b6eece", + }, + }, + "function_name": "test-c8b6eece", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_test_IamRole_6CDC2D16.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_test_Code_2D131EC2.bucket}", + "s3_key": "\${aws_s3_object.root_test_S3Object_A16CD789.key}", + "timeout": 30, + }, + }, + "aws_s3_bucket": { + "root_test_Code_2D131EC2": { + "//": { + "metadata": { + "path": "root/Default/test/Code", + "uniqueId": "root_test_Code_2D131EC2", + }, + }, + "bucket_prefix": "code-c883c33b-", + }, + }, + "aws_s3_object": { + "root_test_S3Object_A16CD789": { + "//": { + "metadata": { + "path": "root/Default/test/S3Object", + "uniqueId": "root_test_S3Object_A16CD789", + }, + }, + "bucket": "\${aws_s3_bucket.root_test_Code_2D131EC2.bucket}", + "key": "", + }, + }, + }, +} +`; + +exports[`static_members.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const cloud = require('@winglang/sdk').cloud; +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"static_members\\", plugins: $plugins }); + + class Foo extends $stdlib.core.Resource { + constructor(scope, id, ) { + super(scope, id); + { + this.instance_field = 100; + } + } + static m() { + { + return 99; + } + } + _toInflight() { + const instance_field_client = this._lift(this.instance_field); + const self_client_path = require('path').resolve(__dirname, \\"clients/Foo.inflight.js\\").replace(/\\\\\\\\/g, \\"/\\"); + return $stdlib.core.NodeJsCode.fromInline(\`(new (require(\\"\${self_client_path}\\")).Foo_inflight({instance_field: \${instance_field_client}}))\`); + } + } + Foo._annotateInflight(\\"get_123\\", {}); + const foo = new Foo(this,\\"Foo\\"); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(foo.instance_field === 100)'\`)})((foo.instance_field === 100))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((Foo.m()) === 99)'\`)})(((Foo.m()) === 99))}; + this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"test\\",new $stdlib.core.Inflight(this, \\"$Inflight1\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.8b58045c72709175549d51937a233ff65ac5e5aa12e83837daf5ea7baf9f224b/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + } + })); +} +} +new MyApp().synth();" +`; + +exports[`std_containers.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, +} +`; + +exports[`std_containers.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"std_containers\\", plugins: $plugins }); + + const s_array = Object.freeze([\\"one\\", \\"two\\"]); + const mut_array = [...(s_array)]; + (mut_array.push(\\"three\\")); + const immut_array = Object.freeze([...(mut_array)]); + const s = (s_array.at(1)); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(s === \\"two\\")'\`)})((s === \\"two\\"))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((s_array.at(1)) === \\"two\\")'\`)})(((s_array.at(1)) === \\"two\\"))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(s_array.length === 2)'\`)})((s_array.length === 2))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(immut_array.length === 3)'\`)})((immut_array.length === 3))}; + const s_array2 = Object.freeze([\\"if\\", \\"you\\", \\"build\\", \\"it\\"]); + const s_array3 = Object.freeze([\\"he\\", \\"will\\", \\"come\\", \\"for\\", \\"you\\"]); + const merged_array = (s_array2.concat(s_array3)); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(merged_array.length === 9)'\`)})((merged_array.length === 9))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((merged_array.at(5)) === \\"will\\")'\`)})(((merged_array.at(5)) === \\"will\\"))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: 'merged_array.includes(\\"build\\")'\`)})(merged_array.includes(\\"build\\"))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(!merged_array.includes(\\"bring\\"))'\`)})((!merged_array.includes(\\"bring\\")))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(merged_array.indexOf(\\"you\\") === 1)'\`)})((merged_array.indexOf(\\"you\\") === 1))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((merged_array.join(\\" \\")) === \\"if you build it he will come for you\\")'\`)})(((merged_array.join(\\" \\")) === \\"if you build it he will come for you\\"))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((merged_array.join()) === \\"if,you,build,it,he,will,come,for,you\\")'\`)})(((merged_array.join()) === \\"if,you,build,it,he,will,come,for,you\\"))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(merged_array.lastIndexOf(\\"you\\") === 8)'\`)})((merged_array.lastIndexOf(\\"you\\") === 8))}; + const mut_array2 = [\\"how\\", \\"does\\", \\"that\\", \\"look\\"]; + const merged_mut_array = (mut_array.concat(mut_array2)); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(merged_mut_array.length === 7)'\`)})((merged_mut_array.length === 7))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((merged_mut_array.at(5)) === \\"that\\")'\`)})(((merged_mut_array.at(5)) === \\"that\\"))}; + const s_set = Object.freeze(new Set([\\"one\\", \\"two\\"])); + const mut_set = new Set(s_set); + (mut_set.add(\\"three\\")); + const immut_set = Object.freeze(new Set(mut_set)); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(s_set.has(\\"one\\"))'\`)})((s_set.has(\\"one\\")))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(s_set.size === 2)'\`)})((s_set.size === 2))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(immut_set.size === 3)'\`)})((immut_set.size === 3))}; + const s_map = Object.freeze({\\"one\\":1,\\"two\\":2}); + const nested_map = Object.freeze({\\"a\\":Object.freeze({\\"b\\":Object.freeze({\\"c\\":\\"hello\\"})})}); + const mut_map = {...(s_map)}; + ((obj, args) => { obj[args[0]] = args[1]; })(mut_map, [\\"five\\",5]); + const immut_map = Object.freeze({...(mut_map)}); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((s_map)[\\"one\\"] === 1)'\`)})(((s_map)[\\"one\\"] === 1))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(Object.keys(s_map).length === 2)'\`)})((Object.keys(s_map).length === 2))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(Object.keys(immut_map).length === 3)'\`)})((Object.keys(immut_map).length === 3))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((((nested_map)[\\"a\\"])[\\"b\\"])[\\"c\\"] === \\"hello\\")'\`)})(((((nested_map)[\\"a\\"])[\\"b\\"])[\\"c\\"] === \\"hello\\"))}; +} +} +new MyApp().synth();" +`; + +exports[`std_string.w > wing compile --target tf-aws > index.js 1`] = ` +"async handle() { const { s1, s2 } = this; { + {console.log(\`index of \\\\\\"s\\\\\\" in s1 is \${s1.indexOf(\\"s\\")}\`)}; + {console.log((await (await s1.split(\\" \\")).at(1)))}; + {console.log((await s1.concat(s2)))}; +} };" +`; + +exports[`std_string.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, + "resource": { + "aws_iam_role": { + "root_teststring_IamRole_A23B11BC": { + "//": { + "metadata": { + "path": "root/Default/test:string/IamRole", + "uniqueId": "root_teststring_IamRole_A23B11BC", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + }, + "aws_iam_role_policy": { + "root_teststring_IamRolePolicy_E68C254E": { + "//": { + "metadata": { + "path": "root/Default/test:string/IamRolePolicy", + "uniqueId": "root_teststring_IamRolePolicy_E68C254E", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Effect\\":\\"Allow\\",\\"Action\\":\\"none:null\\",\\"Resource\\":\\"*\\"}]}", + "role": "\${aws_iam_role.root_teststring_IamRole_A23B11BC.name}", + }, + }, + "aws_iam_role_policy_attachment": { + "root_teststring_IamRolePolicyAttachment_CF9D26FE": { + "//": { + "metadata": { + "path": "root/Default/test:string/IamRolePolicyAttachment", + "uniqueId": "root_teststring_IamRolePolicyAttachment_CF9D26FE", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_teststring_IamRole_A23B11BC.name}", + }, + }, + "aws_lambda_function": { + "root_teststring_0FD8A9C3": { + "//": { + "metadata": { + "path": "root/Default/test:string/Default", + "uniqueId": "root_teststring_0FD8A9C3", + }, + }, + "environment": { + "variables": { + "WING_FUNCTION_NAME": "test-string-c8b12930", + }, + }, + "function_name": "test-string-c8b12930", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_teststring_IamRole_A23B11BC.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_teststring_Code_042172E8.bucket}", + "s3_key": "\${aws_s3_object.root_teststring_S3Object_9049C921.key}", + "timeout": 30, + }, + }, + "aws_s3_bucket": { + "root_teststring_Code_042172E8": { + "//": { + "metadata": { + "path": "root/Default/test:string/Code", + "uniqueId": "root_teststring_Code_042172E8", + }, + }, + "bucket_prefix": "code-c8c4d274-", + }, + }, + "aws_s3_object": { + "root_teststring_S3Object_9049C921": { + "//": { + "metadata": { + "path": "root/Default/test:string/S3Object", + "uniqueId": "root_teststring_S3Object_9049C921", + }, + }, + "bucket": "\${aws_s3_bucket.root_teststring_Code_042172E8.bucket}", + "key": "", + }, + }, + }, +} +`; + +exports[`std_string.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const cloud = require('@winglang/sdk').cloud; +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"std_string\\", plugins: $plugins }); + + const s1 = \\"some string\\"; + const s2 = \\"s are immutable\\"; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(s1.length === 11)'\`)})((s1.length === 11))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((s1.at(7)) === \\"r\\")'\`)})(((s1.at(7)) === \\"r\\"))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((s1.concat(s2)) === \\"some strings are immutable\\")'\`)})(((s1.concat(s2)) === \\"some strings are immutable\\"))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: 's1.includes(\\"some\\")'\`)})(s1.includes(\\"some\\"))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(!\\"some\\".includes(s1))'\`)})((!\\"some\\".includes(s1)))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: 's1.endsWith(\\"string\\")'\`)})(s1.endsWith(\\"string\\"))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(s1.indexOf(\\"s\\") === 0)'\`)})((s1.indexOf(\\"s\\") === 0))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(\\"Some String\\".toLocaleLowerCase() === \\"some string\\")'\`)})((\\"Some String\\".toLocaleLowerCase() === \\"some string\\"))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(((s1.split(\\" \\")).at(0)) === \\"some\\")'\`)})((((s1.split(\\" \\")).at(0)) === \\"some\\"))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: 's1.startsWith(\\"some\\")'\`)})(s1.startsWith(\\"some\\"))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((s1.substring(5)) === \\"string\\")'\`)})(((s1.substring(5)) === \\"string\\"))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((s1.substring(5,7)) === \\"st\\")'\`)})(((s1.substring(5,7)) === \\"st\\"))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((\\" some string \\".trim()) === \\"some string\\")'\`)})(((\\" some string \\".trim()) === \\"some string\\"))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(\\"Some String\\".toLocaleUpperCase() === \\"SOME STRING\\")'\`)})((\\"Some String\\".toLocaleUpperCase() === \\"SOME STRING\\"))}; + this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"test:string\\",new $stdlib.core.Inflight(this, \\"$Inflight1\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.0fb01e81c63b003d77d6245e36ba84561e3e2d3268e69a7c975f81cfe7565fac/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + s1: { + obj: s1, + ops: [] + }, + s2: { + obj: s2, + ops: [] + }, + } + })); +} +} +new MyApp().synth();" +`; + +exports[`test_bucket.w > wing compile --target tf-aws > index.js 1`] = ` +"async handle(_) { const { b } = this; { + (await b.put(\\"hello.txt\\",\\"world\\")); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((await b.get(\\"hello.txt\\")) === \\"world\\")'\`)})(((await b.get(\\"hello.txt\\")) === \\"world\\"))}; +} };" +`; + +exports[`test_bucket.w > wing compile --target tf-aws > index.js 2`] = ` +"async handle(_) { const { b } = this; { + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((await b.list()).length === 0)'\`)})(((await b.list()).length === 0))}; + (await b.put(\\"hello.txt\\",\\"world\\")); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((await b.list()).length === 1)'\`)})(((await b.list()).length === 1))}; +} };" +`; + +exports[`test_bucket.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, + "resource": { + "aws_iam_role": { + "root_testget_IamRole_DD77F38A": { + "//": { + "metadata": { + "path": "root/Default/test:get/IamRole", + "uniqueId": "root_testget_IamRole_DD77F38A", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + "root_testput_IamRole_1BBF32A6": { + "//": { + "metadata": { + "path": "root/Default/test:put/IamRole", + "uniqueId": "root_testput_IamRole_1BBF32A6", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + }, + "aws_iam_role_policy": { + "root_testget_IamRolePolicy_2CFB696B": { + "//": { + "metadata": { + "path": "root/Default/test:get/IamRolePolicy", + "uniqueId": "root_testget_IamRolePolicy_2CFB696B", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":[\\"s3:PutObject*\\",\\"s3:Abort*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:DeleteObject*\\",\\"s3:DeleteObjectVersion*\\",\\"s3:PutLifecycleConfiguration*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"}]}", + "role": "\${aws_iam_role.root_testget_IamRole_DD77F38A.name}", + }, + "root_testput_IamRolePolicy_98659F09": { + "//": { + "metadata": { + "path": "root/Default/test:put/IamRolePolicy", + "uniqueId": "root_testput_IamRolePolicy_98659F09", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":[\\"s3:PutObject*\\",\\"s3:Abort*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:DeleteObject*\\",\\"s3:DeleteObjectVersion*\\",\\"s3:PutLifecycleConfiguration*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}\\",\\"\${aws_s3_bucket.root_cloudBucket_4F3C4F53.arn}/*\\"],\\"Effect\\":\\"Allow\\"}]}", + "role": "\${aws_iam_role.root_testput_IamRole_1BBF32A6.name}", + }, + }, + "aws_iam_role_policy_attachment": { + "root_testget_IamRolePolicyAttachment_1BD905A8": { + "//": { + "metadata": { + "path": "root/Default/test:get/IamRolePolicyAttachment", + "uniqueId": "root_testget_IamRolePolicyAttachment_1BD905A8", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_testget_IamRole_DD77F38A.name}", + }, + "root_testput_IamRolePolicyAttachment_E73FB6BB": { + "//": { + "metadata": { + "path": "root/Default/test:put/IamRolePolicyAttachment", + "uniqueId": "root_testput_IamRolePolicyAttachment_E73FB6BB", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_testput_IamRole_1BBF32A6.name}", + }, + }, + "aws_lambda_function": { + "root_testget_D2443E25": { + "//": { + "metadata": { + "path": "root/Default/test:get/Default", + "uniqueId": "root_testget_D2443E25", + }, + }, + "environment": { + "variables": { + "BUCKET_NAME_d755b447": "\${aws_s3_bucket.root_cloudBucket_4F3C4F53.bucket}", + "WING_FUNCTION_NAME": "test-get-c8e58069", + }, + }, + "function_name": "test-get-c8e58069", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_testget_IamRole_DD77F38A.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_testget_Code_EC989716.bucket}", + "s3_key": "\${aws_s3_object.root_testget_S3Object_071392B9.key}", + "timeout": 30, + }, + "root_testput_449428F9": { + "//": { + "metadata": { + "path": "root/Default/test:put/Default", + "uniqueId": "root_testput_449428F9", + }, + }, + "environment": { + "variables": { + "BUCKET_NAME_d755b447": "\${aws_s3_bucket.root_cloudBucket_4F3C4F53.bucket}", + "WING_FUNCTION_NAME": "test-put-c899ce9b", + }, + }, + "function_name": "test-put-c899ce9b", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_testput_IamRole_1BBF32A6.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_testput_Code_DE7653AD.bucket}", + "s3_key": "\${aws_s3_object.root_testput_S3Object_30BF1DDD.key}", + "timeout": 30, + }, + }, + "aws_s3_bucket": { + "root_cloudBucket_4F3C4F53": { + "//": { + "metadata": { + "path": "root/Default/cloud.Bucket/Default", + "uniqueId": "root_cloudBucket_4F3C4F53", + }, + }, + "bucket_prefix": "cloud-bucket-c87175e7-", + }, + "root_testget_Code_EC989716": { + "//": { + "metadata": { + "path": "root/Default/test:get/Code", + "uniqueId": "root_testget_Code_EC989716", + }, + }, + "bucket_prefix": "code-c8071909-", + }, + "root_testput_Code_DE7653AD": { + "//": { + "metadata": { + "path": "root/Default/test:put/Code", + "uniqueId": "root_testput_Code_DE7653AD", + }, + }, + "bucket_prefix": "code-c8ab7128-", + }, + }, + "aws_s3_bucket_public_access_block": { + "root_cloudBucket_PublicAccessBlock_319C1C2E": { + "//": { + "metadata": { + "path": "root/Default/cloud.Bucket/PublicAccessBlock", + "uniqueId": "root_cloudBucket_PublicAccessBlock_319C1C2E", + }, + }, + "block_public_acls": true, + "block_public_policy": true, + "bucket": "\${aws_s3_bucket.root_cloudBucket_4F3C4F53.bucket}", + "ignore_public_acls": true, + "restrict_public_buckets": true, + }, + }, + "aws_s3_bucket_server_side_encryption_configuration": { + "root_cloudBucket_Encryption_8ED0CD9C": { + "//": { + "metadata": { + "path": "root/Default/cloud.Bucket/Encryption", + "uniqueId": "root_cloudBucket_Encryption_8ED0CD9C", + }, + }, + "bucket": "\${aws_s3_bucket.root_cloudBucket_4F3C4F53.bucket}", + "rule": [ + { + "apply_server_side_encryption_by_default": { + "sse_algorithm": "AES256", + }, + }, + ], + }, + }, + "aws_s3_object": { + "root_testget_S3Object_071392B9": { + "//": { + "metadata": { + "path": "root/Default/test:get/S3Object", + "uniqueId": "root_testget_S3Object_071392B9", + }, + }, + "bucket": "\${aws_s3_bucket.root_testget_Code_EC989716.bucket}", + "key": "", + }, + }, + }, +} +`; + +exports[`test_bucket.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const cloud = require('@winglang/sdk').cloud; +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"test_bucket\\", plugins: $plugins }); + + const b = this.node.root.newAbstract(\\"@winglang/sdk.cloud.Bucket\\",this,\\"cloud.Bucket\\"); + this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"test:put\\",new $stdlib.core.Inflight(this, \\"$Inflight1\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.9f10a129b90bc1328dcb1e6194e3902931d1011d95e46825362ef5b06ec17380/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + b: { + obj: b, + ops: [\\"delete\\",\\"get\\",\\"get_json\\",\\"list\\",\\"put\\",\\"put_json\\"] + }, + } + })); + this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"test:get\\",new $stdlib.core.Inflight(this, \\"$Inflight2\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.1b9abefaef8ce4230db863000273d2c12bacb97e33ac10e6c8b50341e415fdac/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + b: { + obj: b, + ops: [\\"delete\\",\\"get\\",\\"get_json\\",\\"list\\",\\"put\\",\\"put_json\\"] + }, + } + })); +} +} +new MyApp().synth();" +`; + +exports[`try_catch.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, +} +`; + +exports[`try_catch.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"try_catch\\", plugins: $plugins }); + + let x = \\"\\"; + try { + { + {((msg) => {throw new Error(msg)})(\\"hello\\")}; + x = \\"no way I got here\\"; + } + } catch ($error_e) { + const e = $error_e.message; + { + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(e === \\"hello\\")'\`)})((e === \\"hello\\"))}; + x = \\"caught\\"; + } + } finally { + { + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(x === \\"caught\\")'\`)})((x === \\"caught\\"))}; + x = \\"finally\\"; + }; + } + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(x === \\"finally\\")'\`)})((x === \\"finally\\"))}; + try { + { + x = \\"I got here\\"; + } + } catch ($error_e) { + const e = $error_e.message; + { + x = \\"caught\\"; + } + } finally { + { + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(x === \\"I got here\\")'\`)})((x === \\"I got here\\"))}; + x = \\"finally\\"; + }; + } + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(x === \\"finally\\")'\`)})((x === \\"finally\\"))}; + try { + { + {((msg) => {throw new Error(msg)})(\\"hello\\")}; + } + } catch { + + + } finally { + { + x = \\"finally with no catch\\"; + }; + } + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(x === \\"finally with no catch\\")'\`)})((x === \\"finally with no catch\\"))}; + try { + { + } + } catch { + + + } finally { + { + x = \\"finally with no catch and no exception\\"; + }; + } + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(x === \\"finally with no catch and no exception\\")'\`)})((x === \\"finally with no catch and no exception\\"))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((( () => { + { + try { + { + } + } catch { + + + } finally { + { + return 1; + }; + } + } + })()) === 1)'\`)})(((( () => { + { + try { + { + } + } catch { + + + } finally { + { + return 1; + }; + } + } + })()) === 1))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((( () => { + { + try { + { + {((msg) => {throw new Error(msg)})(\\"\\")}; + } + } catch { + + { + return 2; + } + } finally { + + } + } + })()) === 2)'\`)})(((( () => { + { + try { + { + {((msg) => {throw new Error(msg)})(\\"\\")}; + } + } catch { + + { + return 2; + } + } finally { + + } + } + })()) === 2))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((( () => { + { + try { + { + return 3; + } + } catch { + + + } finally { + { + }; + } + } + })()) === 3)'\`)})(((( () => { + { + try { + { + return 3; + } + } catch { + + + } finally { + { + }; + } + } + })()) === 3))}; +} +} +new MyApp().synth();" +`; + +exports[`user-defined-resources-captures.w > wing compile --target tf-aws > MyResource.inflight.js 1`] = ` +"export class MyResource_inflight { +constructor({ array_of_queues, array_of_str, map_of_num, my_bool, my_num, my_resource, my_str, set_of_str }) { + + this.array_of_queues = array_of_queues; + this.array_of_str = array_of_str; + this.map_of_num = map_of_num; + this.my_bool = my_bool; + this.my_num = my_num; + this.my_resource = my_resource; + this.my_str = my_str; + this.set_of_str = set_of_str; +} +async capture_resource() { + { + (await this.my_resource.put(\\"f1.txt\\",\\"f1\\")); + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((await this.my_resource.get(\\"f1.txt\\")) === \\"f1\\")'\`)})(((await this.my_resource.get(\\"f1.txt\\")) === \\"f1\\"))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((await this.my_resource.list()).length === 1)'\`)})(((await this.my_resource.list()).length === 1))}; +} +} +async capture_primitives() { + { + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(this.my_str === \\"my_string\\")'\`)})((this.my_str === \\"my_string\\"))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(this.my_num === 42)'\`)})((this.my_num === 42))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(this.my_bool === true)'\`)})((this.my_bool === true))}; +} +} +async capture_array() { + { + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(this.array_of_str.length === 2)'\`)})((this.array_of_str.length === 2))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((await this.array_of_str.at(0)) === \\"s1\\")'\`)})(((await this.array_of_str.at(0)) === \\"s1\\"))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((await this.array_of_str.at(1)) === \\"s2\\")'\`)})(((await this.array_of_str.at(1)) === \\"s2\\"))}; +} +} +async capture_map() { + { + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((this.map_of_num)[\\"k1\\"] === 11)'\`)})(((this.map_of_num)[\\"k1\\"] === 11))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '((this.map_of_num)[\\"k2\\"] === 22)'\`)})(((this.map_of_num)[\\"k2\\"] === 22))}; +} +} +async capture_set() { + { + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(await this.set_of_str.has(\\"s1\\"))'\`)})((await this.set_of_str.has(\\"s1\\")))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(await this.set_of_str.has(\\"s2\\"))'\`)})((await this.set_of_str.has(\\"s2\\")))}; + {((cond) => {if (!cond) throw new Error(\`assertion failed: '(!(await this.set_of_str.has(\\"s3\\")))'\`)})((!(await this.set_of_str.has(\\"s3\\"))))}; +} +} +async capture_array_of_queues() { + { + (await (await this.array_of_queues.at(0)).push(\\"q1\\")); + (await (await this.array_of_queues.at(1)).push(\\"q2\\")); +} +}}" +`; + +exports[`user-defined-resources-captures.w > wing compile --target tf-aws > index.js 1`] = ` +"async handle() { const { r } = this; { + (await r.capture_array_of_queues()); +} };" +`; + +exports[`user-defined-resources-captures.w > wing compile --target tf-aws > index.js 2`] = ` +"async handle() { const { r } = this; { + (await r.capture_primitives()); +} };" +`; + +exports[`user-defined-resources-captures.w > wing compile --target tf-aws > index.js 3`] = ` +"async handle() { const { r } = this; { + (await r.capture_map()); +} };" +`; + +exports[`user-defined-resources-captures.w > wing compile --target tf-aws > index.js 4`] = ` +"async handle() { const { r } = this; { + (await r.capture_resource()); +} };" +`; + +exports[`user-defined-resources-captures.w > wing compile --target tf-aws > index.js 5`] = ` +"async handle() { const { r } = this; { + (await r.capture_set()); +} };" +`; + +exports[`user-defined-resources-captures.w > wing compile --target tf-aws > index.js 6`] = ` +"async handle() { const { r } = this; { + (await r.capture_array()); +} };" +`; + +exports[`user-defined-resources-captures.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, + "resource": { + "aws_iam_role": { + "root_testcapturearray_IamRole_0E03D456": { + "//": { + "metadata": { + "path": "root/Default/test:capture_array/IamRole", + "uniqueId": "root_testcapturearray_IamRole_0E03D456", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + "root_testcapturearrayofqueues_IamRole_223C9195": { + "//": { + "metadata": { + "path": "root/Default/test:capture_array_of_queues/IamRole", + "uniqueId": "root_testcapturearrayofqueues_IamRole_223C9195", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + "root_testcapturemap_IamRole_1B5F9F5E": { + "//": { + "metadata": { + "path": "root/Default/test:capture_map/IamRole", + "uniqueId": "root_testcapturemap_IamRole_1B5F9F5E", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + "root_testcaptureprimitives_IamRole_67F1EAC9": { + "//": { + "metadata": { + "path": "root/Default/test:capture_primitives/IamRole", + "uniqueId": "root_testcaptureprimitives_IamRole_67F1EAC9", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + "root_testcaptureresource_IamRole_69F520A4": { + "//": { + "metadata": { + "path": "root/Default/test:capture_resource/IamRole", + "uniqueId": "root_testcaptureresource_IamRole_69F520A4", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + "root_testcaptureset_IamRole_1FCDC76B": { + "//": { + "metadata": { + "path": "root/Default/test:capture_set/IamRole", + "uniqueId": "root_testcaptureset_IamRole_1FCDC76B", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + }, + "aws_iam_role_policy": { + "root_testcapturearray_IamRolePolicy_FBEBD531": { + "//": { + "metadata": { + "path": "root/Default/test:capture_array/IamRolePolicy", + "uniqueId": "root_testcapturearray_IamRolePolicy_FBEBD531", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":[\\"s3:PutObject*\\",\\"s3:Abort*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.arn}\\",\\"\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.arn}\\",\\"\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.arn}\\",\\"\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.arn}/*\\"],\\"Effect\\":\\"Allow\\"}]}", + "role": "\${aws_iam_role.root_testcapturearray_IamRole_0E03D456.name}", + }, + "root_testcapturearrayofqueues_IamRolePolicy_C28D32CE": { + "//": { + "metadata": { + "path": "root/Default/test:capture_array_of_queues/IamRolePolicy", + "uniqueId": "root_testcapturearrayofqueues_IamRolePolicy_C28D32CE", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":[\\"s3:PutObject*\\",\\"s3:Abort*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.arn}\\",\\"\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.arn}\\",\\"\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.arn}\\",\\"\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.arn}/*\\"],\\"Effect\\":\\"Allow\\"}]}", + "role": "\${aws_iam_role.root_testcapturearrayofqueues_IamRole_223C9195.name}", + }, + "root_testcapturemap_IamRolePolicy_8E51A860": { + "//": { + "metadata": { + "path": "root/Default/test:capture_map/IamRolePolicy", + "uniqueId": "root_testcapturemap_IamRolePolicy_8E51A860", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":[\\"s3:PutObject*\\",\\"s3:Abort*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.arn}\\",\\"\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.arn}\\",\\"\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.arn}\\",\\"\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.arn}/*\\"],\\"Effect\\":\\"Allow\\"}]}", + "role": "\${aws_iam_role.root_testcapturemap_IamRole_1B5F9F5E.name}", + }, + "root_testcaptureprimitives_IamRolePolicy_E3C1E921": { + "//": { + "metadata": { + "path": "root/Default/test:capture_primitives/IamRolePolicy", + "uniqueId": "root_testcaptureprimitives_IamRolePolicy_E3C1E921", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":[\\"s3:PutObject*\\",\\"s3:Abort*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.arn}\\",\\"\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.arn}\\",\\"\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.arn}\\",\\"\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.arn}/*\\"],\\"Effect\\":\\"Allow\\"}]}", + "role": "\${aws_iam_role.root_testcaptureprimitives_IamRole_67F1EAC9.name}", + }, + "root_testcaptureresource_IamRolePolicy_86C59E76": { + "//": { + "metadata": { + "path": "root/Default/test:capture_resource/IamRolePolicy", + "uniqueId": "root_testcaptureresource_IamRolePolicy_86C59E76", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":[\\"s3:PutObject*\\",\\"s3:Abort*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.arn}\\",\\"\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.arn}\\",\\"\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.arn}\\",\\"\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.arn}/*\\"],\\"Effect\\":\\"Allow\\"}]}", + "role": "\${aws_iam_role.root_testcaptureresource_IamRole_69F520A4.name}", + }, + "root_testcaptureset_IamRolePolicy_D409E226": { + "//": { + "metadata": { + "path": "root/Default/test:capture_set/IamRolePolicy", + "uniqueId": "root_testcaptureset_IamRolePolicy_D409E226", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":[\\"s3:PutObject*\\",\\"s3:Abort*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.arn}\\",\\"\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.arn}\\",\\"\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.arn}/*\\"],\\"Effect\\":\\"Allow\\"},{\\"Action\\":[\\"s3:GetObject*\\",\\"s3:GetBucket*\\",\\"s3:List*\\"],\\"Resource\\":[\\"\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.arn}\\",\\"\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.arn}/*\\"],\\"Effect\\":\\"Allow\\"}]}", + "role": "\${aws_iam_role.root_testcaptureset_IamRole_1FCDC76B.name}", + }, + }, + "aws_iam_role_policy_attachment": { + "root_testcapturearray_IamRolePolicyAttachment_C9E8AD0C": { + "//": { + "metadata": { + "path": "root/Default/test:capture_array/IamRolePolicyAttachment", + "uniqueId": "root_testcapturearray_IamRolePolicyAttachment_C9E8AD0C", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_testcapturearray_IamRole_0E03D456.name}", + }, + "root_testcapturearrayofqueues_IamRolePolicyAttachment_35651451": { + "//": { + "metadata": { + "path": "root/Default/test:capture_array_of_queues/IamRolePolicyAttachment", + "uniqueId": "root_testcapturearrayofqueues_IamRolePolicyAttachment_35651451", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_testcapturearrayofqueues_IamRole_223C9195.name}", + }, + "root_testcapturemap_IamRolePolicyAttachment_CF9F2BD2": { + "//": { + "metadata": { + "path": "root/Default/test:capture_map/IamRolePolicyAttachment", + "uniqueId": "root_testcapturemap_IamRolePolicyAttachment_CF9F2BD2", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_testcapturemap_IamRole_1B5F9F5E.name}", + }, + "root_testcaptureprimitives_IamRolePolicyAttachment_962C5CDE": { + "//": { + "metadata": { + "path": "root/Default/test:capture_primitives/IamRolePolicyAttachment", + "uniqueId": "root_testcaptureprimitives_IamRolePolicyAttachment_962C5CDE", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_testcaptureprimitives_IamRole_67F1EAC9.name}", + }, + "root_testcaptureresource_IamRolePolicyAttachment_5E6259D6": { + "//": { + "metadata": { + "path": "root/Default/test:capture_resource/IamRolePolicyAttachment", + "uniqueId": "root_testcaptureresource_IamRolePolicyAttachment_5E6259D6", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_testcaptureresource_IamRole_69F520A4.name}", + }, + "root_testcaptureset_IamRolePolicyAttachment_69E9E796": { + "//": { + "metadata": { + "path": "root/Default/test:capture_set/IamRolePolicyAttachment", + "uniqueId": "root_testcaptureset_IamRolePolicyAttachment_69E9E796", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_testcaptureset_IamRole_1FCDC76B.name}", + }, + }, + "aws_lambda_function": { + "root_testcapturearray_85E4D097": { + "//": { + "metadata": { + "path": "root/Default/test:capture_array/Default", + "uniqueId": "root_testcapturearray_85E4D097", + }, + }, + "environment": { + "variables": { + "BUCKET_NAME_51ee81c0": "\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.bucket}", + "QUEUE_URL_409f9855": "\${aws_sqs_queue.root_MyResource_q2_A7C72267.url}", + "QUEUE_URL_5a2f5a6e": "\${aws_sqs_queue.root_MyResource_q1_3171D68C.url}", + "WING_FUNCTION_NAME": "test-capture_array-c84da7f0", + }, + }, + "function_name": "test-capture_array-c84da7f0", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_testcapturearray_IamRole_0E03D456.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_testcapturearray_Code_013E59DB.bucket}", + "s3_key": "\${aws_s3_object.root_testcapturearray_S3Object_56C01E37.key}", + "timeout": 30, + }, + "root_testcapturearrayofqueues_B444E46D": { + "//": { + "metadata": { + "path": "root/Default/test:capture_array_of_queues/Default", + "uniqueId": "root_testcapturearrayofqueues_B444E46D", + }, + }, + "environment": { + "variables": { + "BUCKET_NAME_51ee81c0": "\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.bucket}", + "QUEUE_URL_409f9855": "\${aws_sqs_queue.root_MyResource_q2_A7C72267.url}", + "QUEUE_URL_5a2f5a6e": "\${aws_sqs_queue.root_MyResource_q1_3171D68C.url}", + "WING_FUNCTION_NAME": "test-capture_array_of_queues-c8f52b65", + }, + }, + "function_name": "test-capture_array_of_queues-c8f52b65", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_testcapturearrayofqueues_IamRole_223C9195.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_testcapturearrayofqueues_Code_D7325F27.bucket}", + "s3_key": "\${aws_s3_object.root_testcapturearrayofqueues_S3Object_C899E4CF.key}", + "timeout": 30, + }, + "root_testcapturemap_7AEC532C": { + "//": { + "metadata": { + "path": "root/Default/test:capture_map/Default", + "uniqueId": "root_testcapturemap_7AEC532C", + }, + }, + "environment": { + "variables": { + "BUCKET_NAME_51ee81c0": "\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.bucket}", + "QUEUE_URL_409f9855": "\${aws_sqs_queue.root_MyResource_q2_A7C72267.url}", + "QUEUE_URL_5a2f5a6e": "\${aws_sqs_queue.root_MyResource_q1_3171D68C.url}", + "WING_FUNCTION_NAME": "test-capture_map-c8002cff", + }, + }, + "function_name": "test-capture_map-c8002cff", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_testcapturemap_IamRole_1B5F9F5E.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_testcapturemap_Code_5F6F5256.bucket}", + "s3_key": "\${aws_s3_object.root_testcapturemap_S3Object_3618C235.key}", + "timeout": 30, + }, + "root_testcaptureprimitives_11A0A604": { + "//": { + "metadata": { + "path": "root/Default/test:capture_primitives/Default", + "uniqueId": "root_testcaptureprimitives_11A0A604", + }, + }, + "environment": { + "variables": { + "BUCKET_NAME_51ee81c0": "\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.bucket}", + "QUEUE_URL_409f9855": "\${aws_sqs_queue.root_MyResource_q2_A7C72267.url}", + "QUEUE_URL_5a2f5a6e": "\${aws_sqs_queue.root_MyResource_q1_3171D68C.url}", + "WING_FUNCTION_NAME": "test-capture_primitives-c8a111ce", + }, + }, + "function_name": "test-capture_primitives-c8a111ce", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_testcaptureprimitives_IamRole_67F1EAC9.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_testcaptureprimitives_Code_966F0D4F.bucket}", + "s3_key": "\${aws_s3_object.root_testcaptureprimitives_S3Object_FC670079.key}", + "timeout": 30, + }, + "root_testcaptureresource_369B2B56": { + "//": { + "metadata": { + "path": "root/Default/test:capture_resource/Default", + "uniqueId": "root_testcaptureresource_369B2B56", + }, + }, + "environment": { + "variables": { + "BUCKET_NAME_51ee81c0": "\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.bucket}", + "QUEUE_URL_409f9855": "\${aws_sqs_queue.root_MyResource_q2_A7C72267.url}", + "QUEUE_URL_5a2f5a6e": "\${aws_sqs_queue.root_MyResource_q1_3171D68C.url}", + "WING_FUNCTION_NAME": "test-capture_resource-c829c6e3", + }, + }, + "function_name": "test-capture_resource-c829c6e3", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_testcaptureresource_IamRole_69F520A4.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_testcaptureresource_Code_EC29DF7A.bucket}", + "s3_key": "\${aws_s3_object.root_testcaptureresource_S3Object_3988F6DC.key}", + "timeout": 30, + }, + "root_testcaptureset_140F1255": { + "//": { + "metadata": { + "path": "root/Default/test:capture_set/Default", + "uniqueId": "root_testcaptureset_140F1255", + }, + }, + "environment": { + "variables": { + "BUCKET_NAME_51ee81c0": "\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.bucket}", + "QUEUE_URL_409f9855": "\${aws_sqs_queue.root_MyResource_q2_A7C72267.url}", + "QUEUE_URL_5a2f5a6e": "\${aws_sqs_queue.root_MyResource_q1_3171D68C.url}", + "WING_FUNCTION_NAME": "test-capture_set-c849421f", + }, + }, + "function_name": "test-capture_set-c849421f", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_testcaptureset_IamRole_1FCDC76B.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_testcaptureset_Code_E2484ABD.bucket}", + "s3_key": "\${aws_s3_object.root_testcaptureset_S3Object_86C9A729.key}", + "timeout": 30, + }, + }, + "aws_s3_bucket": { + "root_MyResource_cloudBucket_AF30D75E": { + "//": { + "metadata": { + "path": "root/Default/MyResource/cloud.Bucket/Default", + "uniqueId": "root_MyResource_cloudBucket_AF30D75E", + }, + }, + "bucket_prefix": "cloud-bucket-c8f3d54f-", + }, + "root_testcapturearray_Code_013E59DB": { + "//": { + "metadata": { + "path": "root/Default/test:capture_array/Code", + "uniqueId": "root_testcapturearray_Code_013E59DB", + }, + }, + "bucket_prefix": "code-c87e637c-", + }, + "root_testcapturearrayofqueues_Code_D7325F27": { + "//": { + "metadata": { + "path": "root/Default/test:capture_array_of_queues/Code", + "uniqueId": "root_testcapturearrayofqueues_Code_D7325F27", + }, + }, + "bucket_prefix": "code-c8433a86-", + }, + "root_testcapturemap_Code_5F6F5256": { + "//": { + "metadata": { + "path": "root/Default/test:capture_map/Code", + "uniqueId": "root_testcapturemap_Code_5F6F5256", + }, + }, + "bucket_prefix": "code-c80e6a8e-", + }, + "root_testcaptureprimitives_Code_966F0D4F": { + "//": { + "metadata": { + "path": "root/Default/test:capture_primitives/Code", + "uniqueId": "root_testcaptureprimitives_Code_966F0D4F", + }, + }, + "bucket_prefix": "code-c83bb55b-", + }, + "root_testcaptureresource_Code_EC29DF7A": { + "//": { + "metadata": { + "path": "root/Default/test:capture_resource/Code", + "uniqueId": "root_testcaptureresource_Code_EC29DF7A", + }, + }, + "bucket_prefix": "code-c8b99a85-", + }, + "root_testcaptureset_Code_E2484ABD": { + "//": { + "metadata": { + "path": "root/Default/test:capture_set/Code", + "uniqueId": "root_testcaptureset_Code_E2484ABD", + }, + }, + "bucket_prefix": "code-c8c60189-", + }, + }, + "aws_s3_bucket_public_access_block": { + "root_MyResource_cloudBucket_PublicAccessBlock_953F0137": { + "//": { + "metadata": { + "path": "root/Default/MyResource/cloud.Bucket/PublicAccessBlock", + "uniqueId": "root_MyResource_cloudBucket_PublicAccessBlock_953F0137", + }, + }, + "block_public_acls": true, + "block_public_policy": true, + "bucket": "\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.bucket}", + "ignore_public_acls": true, + "restrict_public_buckets": true, + }, + }, + "aws_s3_bucket_server_side_encryption_configuration": { + "root_MyResource_cloudBucket_Encryption_1E1FD60D": { + "//": { + "metadata": { + "path": "root/Default/MyResource/cloud.Bucket/Encryption", + "uniqueId": "root_MyResource_cloudBucket_Encryption_1E1FD60D", + }, + }, + "bucket": "\${aws_s3_bucket.root_MyResource_cloudBucket_AF30D75E.bucket}", + "rule": [ + { + "apply_server_side_encryption_by_default": { + "sse_algorithm": "AES256", + }, + }, + ], + }, + }, + "aws_s3_object": { + "root_testcapturearray_S3Object_56C01E37": { + "//": { + "metadata": { + "path": "root/Default/test:capture_array/S3Object", + "uniqueId": "root_testcapturearray_S3Object_56C01E37", + }, + }, + "bucket": "\${aws_s3_bucket.root_testcapturearray_Code_013E59DB.bucket}", + "key": "", + }, + }, + }, +} +`; + +exports[`user-defined-resources-captures.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const cloud = require('@winglang/sdk').cloud; +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"user-defined-resources-captures\\", plugins: $plugins }); + + class MyResource extends $stdlib.core.Resource { + constructor(scope, id, ) { + super(scope, id); + { + this.my_resource = this.node.root.newAbstract(\\"@winglang/sdk.cloud.Bucket\\",this,\\"cloud.Bucket\\"); + this.my_str = \\"my_string\\"; + this.my_num = 42; + this.my_bool = true; + this.array_of_str = Object.freeze([\\"s1\\", \\"s2\\"]); + this.map_of_num = Object.freeze({\\"k1\\":11,\\"k2\\":22}); + this.set_of_str = Object.freeze(new Set([\\"s1\\", \\"s2\\", \\"s1\\"])); + this.array_of_queues = Object.freeze([this.node.root.newAbstract(\\"@winglang/sdk.cloud.Queue\\",this,\\"q1\\"), this.node.root.newAbstract(\\"@winglang/sdk.cloud.Queue\\",this,\\"q2\\")]); + } + } + + _toInflight() { + const array_of_queues_client = this._lift(this.array_of_queues); + const array_of_str_client = this._lift(this.array_of_str); + const map_of_num_client = this._lift(this.map_of_num); + const my_bool_client = this._lift(this.my_bool); + const my_num_client = this._lift(this.my_num); + const my_resource_client = this._lift(this.my_resource); + const my_str_client = this._lift(this.my_str); + const set_of_str_client = this._lift(this.set_of_str); + const self_client_path = require('path').resolve(__dirname, \\"clients/MyResource.inflight.js\\").replace(/\\\\\\\\/g, \\"/\\"); + return $stdlib.core.NodeJsCode.fromInline(\`(new (require(\\"\${self_client_path}\\")).MyResource_inflight({array_of_queues: \${array_of_queues_client}, array_of_str: \${array_of_str_client}, map_of_num: \${map_of_num_client}, my_bool: \${my_bool_client}, my_num: \${my_num_client}, my_resource: \${my_resource_client}, my_str: \${my_str_client}, set_of_str: \${set_of_str_client}}))\`); + } + } + MyResource._annotateInflight(\\"capture_resource\\", {\\"this.my_resource\\": { ops: [\\"get\\",\\"list\\",\\"put\\"] }}); + MyResource._annotateInflight(\\"capture_primitives\\", {\\"this.my_bool\\": { ops: [] },\\"this.my_num\\": { ops: [] },\\"this.my_str\\": { ops: [] }}); + MyResource._annotateInflight(\\"capture_array\\", {\\"this.array_of_str\\": { ops: [\\"at\\",\\"length\\"] }}); + MyResource._annotateInflight(\\"capture_map\\", {\\"this.map_of_num\\": { ops: [\\"get\\"] }}); + MyResource._annotateInflight(\\"capture_set\\", {\\"this.set_of_str\\": { ops: [\\"has\\"] }}); + MyResource._annotateInflight(\\"capture_array_of_queues\\", {\\"this.array_of_queues\\": { ops: [\\"at\\"] }}); + const r = new MyResource(this,\\"MyResource\\"); + this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"test:capture_resource\\",new $stdlib.core.Inflight(this, \\"$Inflight1\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.b5e7bd6cc9f6c741c4f0afa8adc0208ccee08e6297495b1fbe29db8afb6ee789/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + r: { + obj: r, + ops: [\\"capture_array\\",\\"capture_array_of_queues\\",\\"capture_map\\",\\"capture_primitives\\",\\"capture_resource\\",\\"capture_set\\"] + }, + } + })); + this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"test:capture_primitives\\",new $stdlib.core.Inflight(this, \\"$Inflight2\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.1814d20e284e4a33aff014ce4391d7da7998b0cd7db8ebee477a5400763bbe7b/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + r: { + obj: r, + ops: [\\"capture_array\\",\\"capture_array_of_queues\\",\\"capture_map\\",\\"capture_primitives\\",\\"capture_resource\\",\\"capture_set\\"] + }, + } + })); + this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"test:capture_array\\",new $stdlib.core.Inflight(this, \\"$Inflight3\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.c341832069b7b13603626bc26227d936f0a7d7b7da45751e3666d6f4e7fa599a/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + r: { + obj: r, + ops: [\\"capture_array\\",\\"capture_array_of_queues\\",\\"capture_map\\",\\"capture_primitives\\",\\"capture_resource\\",\\"capture_set\\"] + }, + } + })); + this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"test:capture_map\\",new $stdlib.core.Inflight(this, \\"$Inflight4\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.7235e8fbf10f106318ff9c22489e4e955483c8de6b39df0dbf143fdfa4691109/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + r: { + obj: r, + ops: [\\"capture_array\\",\\"capture_array_of_queues\\",\\"capture_map\\",\\"capture_primitives\\",\\"capture_resource\\",\\"capture_set\\"] + }, + } + })); + this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"test:capture_set\\",new $stdlib.core.Inflight(this, \\"$Inflight5\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.b7df534fba155b498841a75f4610f6bb576ee00e2fbe6869317adf3718597864/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + r: { + obj: r, + ops: [\\"capture_array\\",\\"capture_array_of_queues\\",\\"capture_map\\",\\"capture_primitives\\",\\"capture_resource\\",\\"capture_set\\"] + }, + } + })); + this.node.root.newAbstract(\\"@winglang/sdk.cloud.Function\\",this,\\"test:capture_array_of_queues\\",new $stdlib.core.Inflight(this, \\"$Inflight6\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.179eef1ca19aa2bf908a3113209c3d8b96c23bac7bc35f1d6381c0f5cd2ec603/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + r: { + obj: r, + ops: [\\"capture_array\\",\\"capture_array_of_queues\\",\\"capture_map\\",\\"capture_primitives\\",\\"capture_resource\\",\\"capture_set\\"] + }, + } + })); +} +} +new MyApp().synth();" +`; + +exports[`while.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, +} +`; + +exports[`while.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"while\\", plugins: $plugins }); + + while (false) { + const x = 1; + } + const y = 123; + while ((y < 0)) { + const x = 1; + } +} +} +new MyApp().synth();" +`; + +exports[`while_loop_await.w > wing compile --target tf-aws > index.js 1`] = ` +"async handle(j) { const { } = this; { + return (j + 1); +} };" +`; + +exports[`while_loop_await.w > wing compile --target tf-aws > index.js 2`] = ` +"async handle(body) { const { } = this; { + const i = 0; + while (((await iterator(i)) < 3)) { + {console.log(\`\${i}\`)}; + } +} };" +`; + +exports[`while_loop_await.w > wing compile --target tf-aws > main.tf.json 1`] = ` +{ + "//": { + "metadata": { + "backend": "local", + "stackName": "root", + "version": "0.15.2", + }, + "outputs": {}, + }, + "provider": { + "aws": [ + {}, + ], + }, + "resource": { + "aws_iam_role": { + "root_cloudQueueOnMessageb3f3d188_IamRole_2EDE9980": { + "//": { + "metadata": { + "path": "root/Default/cloud.Queue-OnMessage-b3f3d188/IamRole", + "uniqueId": "root_cloudQueueOnMessageb3f3d188_IamRole_2EDE9980", + }, + }, + "assume_role_policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":\\"sts:AssumeRole\\",\\"Principal\\":{\\"Service\\":\\"lambda.amazonaws.com\\"},\\"Effect\\":\\"Allow\\"}]}", + }, + }, + "aws_iam_role_policy": { + "root_cloudQueueOnMessageb3f3d188_IamRolePolicy_F06A54DE": { + "//": { + "metadata": { + "path": "root/Default/cloud.Queue-OnMessage-b3f3d188/IamRolePolicy", + "uniqueId": "root_cloudQueueOnMessageb3f3d188_IamRolePolicy_F06A54DE", + }, + }, + "policy": "{\\"Version\\":\\"2012-10-17\\",\\"Statement\\":[{\\"Action\\":[\\"sqs:ReceiveMessage\\",\\"sqs:ChangeMessageVisibility\\",\\"sqs:GetQueueUrl\\",\\"sqs:DeleteMessage\\",\\"sqs:GetQueueAttributes\\"],\\"Resource\\":\\"\${aws_sqs_queue.root_cloudQueue_E3597F7A.arn}\\",\\"Effect\\":\\"Allow\\"}]}", + "role": "\${aws_iam_role.root_cloudQueueOnMessageb3f3d188_IamRole_2EDE9980.name}", + }, + }, + "aws_iam_role_policy_attachment": { + "root_cloudQueueOnMessageb3f3d188_IamRolePolicyAttachment_6D0B5E93": { + "//": { + "metadata": { + "path": "root/Default/cloud.Queue-OnMessage-b3f3d188/IamRolePolicyAttachment", + "uniqueId": "root_cloudQueueOnMessageb3f3d188_IamRolePolicyAttachment_6D0B5E93", + }, + }, + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "\${aws_iam_role.root_cloudQueueOnMessageb3f3d188_IamRole_2EDE9980.name}", + }, + }, + "aws_lambda_event_source_mapping": { + "root_cloudQueue_EventSourceMapping_A2041279": { + "//": { + "metadata": { + "path": "root/Default/cloud.Queue/EventSourceMapping", + "uniqueId": "root_cloudQueue_EventSourceMapping_A2041279", + }, + }, + "batch_size": 1, + "event_source_arn": "\${aws_sqs_queue.root_cloudQueue_E3597F7A.arn}", + "function_name": "\${aws_lambda_function.root_cloudQueueOnMessageb3f3d188_29346340.function_name}", + }, + }, + "aws_lambda_function": { + "root_cloudQueueOnMessageb3f3d188_29346340": { + "//": { + "metadata": { + "path": "root/Default/cloud.Queue-OnMessage-b3f3d188/Default", + "uniqueId": "root_cloudQueueOnMessageb3f3d188_29346340", + }, + }, + "environment": { + "variables": { + "WING_FUNCTION_NAME": "cloud-Queue-OnMessage-b3f3d188-c87e2d03", + }, + }, + "function_name": "cloud-Queue-OnMessage-b3f3d188-c87e2d03", + "handler": "index.handler", + "publish": true, + "role": "\${aws_iam_role.root_cloudQueueOnMessageb3f3d188_IamRole_2EDE9980.arn}", + "runtime": "nodejs16.x", + "s3_bucket": "\${aws_s3_bucket.root_cloudQueueOnMessageb3f3d188_Code_4D451A84.bucket}", + "s3_key": "\${aws_s3_object.root_cloudQueueOnMessageb3f3d188_S3Object_18BDF7F0.key}", + "timeout": 30, + }, + }, + "aws_s3_bucket": { + "root_cloudQueueOnMessageb3f3d188_Code_4D451A84": { + "//": { + "metadata": { + "path": "root/Default/cloud.Queue-OnMessage-b3f3d188/Code", + "uniqueId": "root_cloudQueueOnMessageb3f3d188_Code_4D451A84", + }, + }, + "bucket_prefix": "code-c8b6a338-", + }, + }, + "aws_s3_object": { + "root_cloudQueueOnMessageb3f3d188_S3Object_18BDF7F0": { + "//": { + "metadata": { + "path": "root/Default/cloud.Queue-OnMessage-b3f3d188/S3Object", + "uniqueId": "root_cloudQueueOnMessageb3f3d188_S3Object_18BDF7F0", + }, + }, + "bucket": "\${aws_s3_bucket.root_cloudQueueOnMessageb3f3d188_Code_4D451A84.bucket}", + "key": "", + }, + }, + }, +} +`; + +exports[`while_loop_await.w > wing compile --target tf-aws > preflight.js 1`] = ` +"const $stdlib = require('@winglang/sdk'); +const $outdir = process.env.WINGSDK_SYNTH_DIR ?? \\".\\"; + +function __app(target) { + switch (target) { + case \\"sim\\": + return $stdlib.sim.App; + case \\"tfaws\\": + case \\"tf-aws\\": + return $stdlib.tfaws.App; + case \\"tf-gcp\\": + return $stdlib.tfgcp.App; + case \\"tf-azure\\": + return $stdlib.tfazure.App; + default: + throw new Error(\`Unknown WING_TARGET value: \\"\${process.env.WING_TARGET ?? \\"\\"}\\"\`); + } +} +const $App = __app(process.env.WING_TARGET); + +const cloud = require('@winglang/sdk').cloud; +class MyApp extends $App { +constructor() { + super({ outdir: $outdir, name: \\"while_loop_await\\", plugins: $plugins }); + + const queue = this.node.root.newAbstract(\\"@winglang/sdk.cloud.Queue\\",this,\\"cloud.Queue\\"); + const iterator = new $stdlib.core.Inflight(this, \\"$Inflight1\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.82d0059fdbaebaab6d1be68f497052f9d5b8662f4333952a6e9ad55f564e0c97/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + } + }); + const handler = new $stdlib.core.Inflight(this, \\"$Inflight2\\", { + code: $stdlib.core.NodeJsCode.fromFile(require('path').resolve(__dirname, \\"proc.f259e8d1edc5d47946ec1a1f3aa23e59fe550255ec12b899cffb307ecf525df6/index.js\\").replace(/\\\\\\\\/g, \\"/\\")), + bindings: { + } + }); + (queue.onMessage(handler)); +} +} +new MyApp().synth();" +`; diff --git a/tools/hangar/src/__snapshots__/invalid.test.ts.snap b/tools/hangar/src/__snapshots__/invalid.test.ts.snap new file mode 100644 index 00000000000..3b6cfc958d1 --- /dev/null +++ b/tools/hangar/src/__snapshots__/invalid.test.ts.snap @@ -0,0 +1,260 @@ +// Vitest Snapshot v1 + +exports[`access_hidden_namespace.w > wing test (--target sim) - invalid > stderr 1`] = ` +"Compilation failed with 1 error(s) +Error at ../../../../examples/tests/invalid/access_hidden_namespace.w:8:5 | Unknown symbol \\"core\\"" +`; + +exports[`access_static_from_instance.w > wing test (--target sim) - invalid > stderr 1`] = ` +"Compilation failed with 7 error(s) +Error at ../../../../examples/tests/invalid/access_static_from_instance.w:4:3 | Static class fields not supported yet, see https://github.com/winglang/wing/issues/1668 +Error at ../../../../examples/tests/invalid/access_static_from_instance.w:7:5 | Unknown symbol \\"this\\" +Error at ../../../../examples/tests/invalid/access_static_from_instance.w:7:5 | Variable this.instance_field is not reassignable +Error at ../../../../examples/tests/invalid/access_static_from_instance.w:8:5 | Unknown symbol \\"this\\" +Error at ../../../../examples/tests/invalid/access_static_from_instance.w:8:5 | Variable this.f is not reassignable +Error at ../../../../examples/tests/invalid/access_static_from_instance.w:19:5 | Cannot access static property \\"f\\" from instance +Error at ../../../../examples/tests/invalid/access_static_from_instance.w:20:5 | Cannot access static property \\"m\\" from instance" +`; + +exports[`bring.w > wing test (--target sim) - invalid > stderr 1`] = ` +"Compilation failed with 1 error(s) +Error at ../../../../examples/tests/invalid/bring.w:1:1 | Redundant bring of \\"std\\"" +`; + +exports[`bring_jsii.w > wing test (--target sim) - invalid > stderr 1`] = ` +"Compilation failed with 2 error(s) +Error at ../../../../examples/tests/invalid/bring_jsii.w:1:1 | bring \\"jsii-code-samples\\" must be assigned to an identifier (e.g. bring \\"foo\\" as foo) +Error at ../../../../examples/tests/invalid/bring_jsii.w:4:1 | Cannot find module \\"foobar\\" in source directory" +`; + +exports[`capture_mutables.w > wing test (--target sim) - invalid > stderr 1`] = ` +"Compilation failed with 5 error(s) +Error at ../../../../examples/tests/invalid/capture_mutables.w:8:10 | Cannot reference 'a' of type 'MutArray' from an inflight context +Error at ../../../../examples/tests/invalid/capture_mutables.w:10:10 | Cannot reference 's' of type 'MutSet' from an inflight context +Error at ../../../../examples/tests/invalid/capture_mutables.w:12:10 | Cannot reference 'm' of type 'MutMap' from an inflight context +Error at ../../../../examples/tests/invalid/capture_mutables.w:14:10 | Cannot reference 'a_cloned' of type 'MutArray' from an inflight context +Error at ../../../../examples/tests/invalid/capture_mutables.w:14:19 | Unknown symbol \\"size\\"" +`; + +exports[`capture_reassignable.w > wing test (--target sim) - invalid > stderr 1`] = ` +"Compilation failed with 1 error(s) +Error at ../../../../examples/tests/invalid/capture_reassignable.w:6:17 | Cannot capture a reassignable variable \\"x\\"" +`; + +exports[`cloud_function_expects_inflight.w > wing test (--target sim) - invalid > stderr 1`] = ` +"Compilation failed with 1 error(s) +Error at ../../../../examples/tests/invalid/cloud_function_expects_inflight.w:3:20 | Expected type to be \\"inflight (any): any\\", but got \\"preflight (str): str\\" instead" +`; + +exports[`container_types.w > wing test (--target sim) - invalid > stderr 1`] = ` +"Compilation failed with 17 error(s) +Error at ../../../../examples/tests/invalid/container_types.w:2:28 | Expected type to be \\"num\\", but got \\"str\\" instead +Error at ../../../../examples/tests/invalid/container_types.w:3:12 | Expected \\"Set\\" type, found \\"Array\\" +Error at ../../../../examples/tests/invalid/container_types.w:5:24 | Expected type to be \\"Array\\", but got \\"Array\\" instead +Error at ../../../../examples/tests/invalid/container_types.w:6:6 | Unknown symbol \\"some_random_method\\" +Error at ../../../../examples/tests/invalid/container_types.w:9:32 | Expected type to be \\"num\\", but got \\"str\\" instead +Error at ../../../../examples/tests/invalid/container_types.w:10:20 | Expected expression +Error at ../../../../examples/tests/invalid/container_types.w:10:24 | Unknown parser error. +Error at ../../../../examples/tests/invalid/container_types.w:10:28 | Unknown parser error. +Error at ../../../../examples/tests/invalid/container_types.w:10:40 | Unknown parser error. +Error at ../../../../examples/tests/invalid/container_types.w:12:20 | Expected type to be \\"Map\\", but got \\"Map\\" instead +Error at ../../../../examples/tests/invalid/container_types.w:12:26 | Unknown symbol \\"some_random_method\\" +Error at ../../../../examples/tests/invalid/container_types.w:15:24 | Expected type to be \\"num\\", but got \\"str\\" instead +Error at ../../../../examples/tests/invalid/container_types.w:16:10 | Expected \\"Array\\" type, found \\"Set\\" +Error at ../../../../examples/tests/invalid/container_types.w:17:20 | Expected type to be \\"Set\\", but got \\"Array\\" instead +Error at ../../../../examples/tests/invalid/container_types.w:17:24 | Expected type to be \\"num\\", but got \\"str\\" instead +Error at ../../../../examples/tests/invalid/container_types.w:19:20 | Expected type to be \\"Set\\", but got \\"Set\\" instead +Error at ../../../../examples/tests/invalid/container_types.w:20:4 | Unknown symbol \\"some_random_method\\"" +`; + +exports[`enums.w > wing test (--target sim) - invalid > stderr 1`] = ` +"Compilation failed with 2 error(s) +Error at ../../../../examples/tests/invalid/enums.w:5:21 | Enum \\"SomeEnum\\" does not contain value \\"FOUR\\" +Error at ../../../../examples/tests/invalid/enums.w:8:11 | Expression must be a class or resource instance to access property \\"TWO\\", instead found type \\"SomeEnum\\"" +`; + +exports[`for_loop.w > wing test (--target sim) - invalid > stderr 1`] = ` +"Compilation failed with 1 error(s) +Error at ../../../../examples/tests/invalid/for_loop.w:5:13 | Unable to iterate over \\"Bucket\\"" +`; + +exports[`immutable_container_types.w > wing test (--target sim) - invalid > stderr 1`] = ` +"Compilation failed with 1 error(s) +Error at ../../../../examples/tests/invalid/immutable_container_types.w:3:4 | Unknown symbol \\"set\\"" +`; + +exports[`impl_interface.w > wing test (--target sim) - invalid > stderr 1`] = ` +"Compilation failed with 2 error(s) +Error at ../../../../examples/tests/invalid/impl_interface.w:3:10 | Resource \\"A (at ../../../../examples/tests/invalid/impl_interface.w:3:10)\\" does not implement method \\"handle\\" of interface \\"cloud.IQueueOnMessageHandler\\" +Error at ../../../../examples/tests/invalid/impl_interface.w:8:10 | Expected type to be \\"inflight (IQueueOnMessageHandler, str): void\\", but got \\"inflight (B): void\\" instead" +`; + +exports[`inflight_in_class.w > wing test (--target sim) - invalid > stderr 1`] = ` +"Compilation failed with 1 error(s) +Error at ../../../../examples/tests/invalid/inflight_in_class.w:3:3 | Class cannot have inflight fields" +`; + +exports[`inflight_ref_invalid.w > wing test (--target sim) - invalid > stderr 1`] = ` +"Compilation failed with 2 error(s) +Error at ../../../../examples/tests/invalid/inflight_ref_invalid.w:12:19 | Unable to reference \\"this.reassignable\\" from inflight method \\"test\\" because it is reassignable (\\"var\\") +Error at ../../../../examples/tests/invalid/inflight_ref_invalid.w:14:16 | Unable to reference \\"this.mut_array\\" from inflight method \\"test\\" because type MutArray is not capturable" +`; + +exports[`inflight_ref_resource_sub_field.w > wing test (--target sim) - invalid > stderr 1`] = ` +"Compilation failed with 1 error(s) +Error at ../../../../examples/tests/invalid/inflight_ref_resource_sub_field.w:26:10 | Unable to reference \\"my_queue.push\\" from inflight method \\"test\\" because it is not an inflight method" +`; + +exports[`json.w > wing test (--target sim) - invalid > stderr 1`] = ` +"Compilation failed with 7 error(s) +Error at ../../../../examples/tests/invalid/json.w:5:14 | Expected type to be \\"str\\", but got \\"Json\\" instead +Error at ../../../../examples/tests/invalid/json.w:7:14 | Expected type to be \\"num\\", but got \\"Json\\" instead +Error at ../../../../examples/tests/invalid/json.w:9:15 | Expected type to be \\"bool\\", but got \\"Json\\" instead +Error at ../../../../examples/tests/invalid/json.w:11:19 | Expected type to be \\"Map\\", but got \\"Json\\" instead +Error at ../../../../examples/tests/invalid/json.w:13:20 | Expected type to be \\"Set\\", but got \\"Json\\" instead +Error at ../../../../examples/tests/invalid/json.w:15:21 | Expected type to be \\"Array\\", but got \\"Json\\" instead +Error at ../../../../examples/tests/invalid/json.w:20:14 | Unknown symbol \\"set\\"" +`; + +exports[`missing_semicolon.w > wing test (--target sim) - invalid > stderr 1`] = ` +"Compilation failed with 4 error(s) +Error at ../../../../examples/tests/invalid/missing_semicolon.w:7:1 | Expected expression +Error at ../../../../examples/tests/invalid/missing_semicolon.w:11:1 | Unknown parser error. +Error at ../../../../examples/tests/invalid/missing_semicolon.w:16:24 | ';' expected. +Error at ../../../../examples/tests/invalid/missing_semicolon.w:19:28 | '}' expected." +`; + +exports[`mut_container_types.w > wing test (--target sim) - invalid > stderr 1`] = ` +"Compilation failed with 14 error(s) +Error at ../../../../examples/tests/invalid/mut_container_types.w:2:29 | Expected type to be \\"num\\", but got \\"str\\" instead +Error at ../../../../examples/tests/invalid/mut_container_types.w:3:12 | Expected \\"Set\\" type, found \\"MutArray\\" +Error at ../../../../examples/tests/invalid/mut_container_types.w:4:27 | Expected type to be \\"MutArray\\", but got \\"Array\\" instead +Error at ../../../../examples/tests/invalid/mut_container_types.w:6:27 | Expected type to be \\"MutArray\\", but got \\"MutArray\\" instead +Error at ../../../../examples/tests/invalid/mut_container_types.w:7:6 | Unknown symbol \\"some_method\\" +Error at ../../../../examples/tests/invalid/mut_container_types.w:10:25 | Expected type to be \\"num\\", but got \\"str\\" instead +Error at ../../../../examples/tests/invalid/mut_container_types.w:11:10 | Expected \\"Array\\" type, found \\"MutSet\\" +Error at ../../../../examples/tests/invalid/mut_container_types.w:12:23 | Expected type to be \\"MutSet\\", but got \\"Set\\" instead +Error at ../../../../examples/tests/invalid/mut_container_types.w:14:23 | Expected type to be \\"MutSet\\", but got \\"MutSet\\" instead +Error at ../../../../examples/tests/invalid/mut_container_types.w:15:4 | Unknown symbol \\"some_method\\" +Error at ../../../../examples/tests/invalid/mut_container_types.w:18:31 | Expected type to be \\"num\\", but got \\"str\\" instead +Error at ../../../../examples/tests/invalid/mut_container_types.w:20:10 | Expected \\"Array\\" type, found \\"MutMap\\" +Error at ../../../../examples/tests/invalid/mut_container_types.w:22:23 | Expected type to be \\"MutMap\\", but got \\"Map\\" instead +Error at ../../../../examples/tests/invalid/mut_container_types.w:25:23 | Expected type to be \\"MutMap\\", but got \\"MutMap\\" instead" +`; + +exports[`optional_invoke.w > wing test (--target sim) - invalid > stderr 1`] = ` +"Compilation failed with 5 error(s) +Error at ../../../../examples/tests/invalid/optional_invoke.w:3:1 | Unknown parser error. +Error at ../../../../examples/tests/invalid/optional_invoke.w:3:10 | Unknown parser error. +Error at ../../../../examples/tests/invalid/optional_invoke.w:3:21 | Expected expression +Error at ../../../../examples/tests/invalid/optional_invoke.w:7:1 | Unknown parser error. +Error at ../../../../examples/tests/invalid/optional_invoke.w:8:1 | Unknown symbol \\"f\\"" +`; + +exports[`optionals.w > wing test (--target sim) - invalid > stderr 1`] = ` +"Compilation failed with 3 error(s) +Error at ../../../../examples/tests/invalid/optionals.w:1:1 | Unknown parser error. +Error at ../../../../examples/tests/invalid/optionals.w:1:10 | Unknown parser error. +Error at ../../../../examples/tests/invalid/optionals.w:6:1 | Unknown symbol \\"f\\"" +`; + +exports[`primitives.w > wing test (--target sim) - invalid > stderr 1`] = ` +"Compilation failed with 4 error(s) +Error at ../../../../examples/tests/invalid/primitives.w:5:7 | Unexpected expression \\"structured_access_expression\\" +Error at ../../../../examples/tests/invalid/primitives.w:9:16 | Unknown symbol \\"blabla\\" +Error at ../../../../examples/tests/invalid/primitives.w:11:5 | Unknown symbol \\"push\\" +Error at ../../../../examples/tests/invalid/primitives.w:13:14 | Expected type to be \\"str\\", but got \\"num\\" instead" +`; + +exports[`reassign_to_nonreassignable.w > wing test (--target sim) - invalid > stderr 1`] = ` +"Compilation failed with 4 error(s) +Error at ../../../../examples/tests/invalid/reassign_to_nonreassignable.w:3:1 | Variable x is not reassignable +Error at ../../../../examples/tests/invalid/reassign_to_nonreassignable.w:13:5 | Variable this.f is not reassignable +Error at ../../../../examples/tests/invalid/reassign_to_nonreassignable.w:19:3 | Variable arg is not reassignable +Error at ../../../../examples/tests/invalid/reassign_to_nonreassignable.w:21:2 | ';' expected." +`; + +exports[`resource_access_field_as_method.w > wing test (--target sim) - invalid > stderr 1`] = ` +"Compilation failed with 1 error(s) +Error at ../../../../examples/tests/invalid/resource_access_field_as_method.w:8:1 | should be a function or method" +`; + +exports[`resource_inflight.w > wing test (--target sim) - invalid > stderr 1`] = ` +"Compilation failed with 1 error(s) +Error | Cannot create the resource \\"Bucket (at src/cloud/bucket.ts:27:1)\\" in inflight phase" +`; + +exports[`sorted_errors_no_span.w > wing test (--target sim) - invalid > stderr 1`] = ` +"Compilation failed with 6 error(s) +Error | Class c (at ../../../../examples/tests/invalid/sorted_errors_no_span.w:3:7)'s parent \\"any\\" is not a class +Error | Class e (at ../../../../examples/tests/invalid/sorted_errors_no_span.w:7:7)'s parent \\"any\\" is not a class +Error at ../../../../examples/tests/invalid/sorted_errors_no_span.w:1:14 | Expected type to be \\"num\\", but got \\"str\\" instead +Error at ../../../../examples/tests/invalid/sorted_errors_no_span.w:3:17 | Expected b (at ../../../../examples/tests/invalid/sorted_errors_no_span.w:3:17) to be a type but it's a variable +Error at ../../../../examples/tests/invalid/sorted_errors_no_span.w:6:14 | Expected type to be \\"num\\", but got \\"str\\" instead +Error at ../../../../examples/tests/invalid/sorted_errors_no_span.w:7:17 | Expected b (at ../../../../examples/tests/invalid/sorted_errors_no_span.w:7:17) to be a type but it's a variable" +`; + +exports[`statements_if.w > wing test (--target sim) - invalid > stderr 1`] = ` +"Compilation failed with 3 error(s) +Error at ../../../../examples/tests/invalid/statements_if.w:2:1 | Unexpected unary operator \\"--\\" +Error at ../../../../examples/tests/invalid/statements_if.w:5:5 | Expected type to be \\"bool\\", but got \\"num\\" instead +Error at ../../../../examples/tests/invalid/statements_if.w:8:5 | Expected type to be \\"bool\\", but got \\"num\\" instead" +`; + +exports[`struct_expansion.w > wing test (--target sim) - invalid > stderr 1`] = ` +"Compilation failed with 6 error(s) +Error at ../../../../examples/tests/invalid/struct_expansion.w:3:15 | \\"bublic\\" is not a field of \\"BucketProps\\" +Error at ../../../../examples/tests/invalid/struct_expansion.w:4:15 | Expected between 0 and 1 arguments but got 2 when instantiating \\"Bucket\\" +Error at ../../../../examples/tests/invalid/struct_expansion.w:4:32 | Expected type to be \\"BucketProps?\\", but got \\"num\\" instead +Error at ../../../../examples/tests/invalid/struct_expansion.w:6:15 | Expected expression +Error at ../../../../examples/tests/invalid/struct_expansion.w:7:15 | Unknown parser error. +Error at ../../../../examples/tests/invalid/struct_expansion.w:11:3 | Unknown symbol \\"handler\\"" +`; + +exports[`try_no_catch_or_finally.w > wing test (--target sim) - invalid > stderr 1`] = ` +"Compilation failed with 1 error(s) +Error at ../../../../examples/tests/invalid/try_no_catch_or_finally.w:1:1 | Missing \`catch\` or \`finally\` blocks for this try statement" +`; + +exports[`types_strings_arithmetic.w > wing test (--target sim) - invalid > stderr 1`] = ` +"Compilation failed with 5 error(s) +Error at ../../../../examples/tests/invalid/types_strings_arithmetic.w:1:10 | Expected type to be \\"num\\", but got \\"str\\" instead +Error at ../../../../examples/tests/invalid/types_strings_arithmetic.w:1:16 | Expected type to be \\"num\\", but got \\"str\\" instead +Error at ../../../../examples/tests/invalid/types_strings_arithmetic.w:4:14 | Expected type to be \\"num\\", but got \\"str\\" instead +Error at ../../../../examples/tests/invalid/types_strings_arithmetic.w:7:10 | Expected type to be \\"num\\", but got \\"str\\" instead +Error at ../../../../examples/tests/invalid/types_strings_arithmetic.w:13:10 | Expected type to be \\"num\\", but got \\"str\\" instead" +`; + +exports[`unimplemented_grammar.w > wing test (--target sim) - invalid > stderr 1`] = ` +"Compilation failed with 5 error(s) +Error at ../../../../examples/tests/invalid/unimplemented_grammar.w:1:8 | builtin \\"void\\" is not supported yet see https://github.com/winglang/wing/issues/432 +Error at ../../../../examples/tests/invalid/unimplemented_grammar.w:2:8 | builtin \\"any\\" is not supported yet see https://github.com/winglang/wing/issues/434 +Error at ../../../../examples/tests/invalid/unimplemented_grammar.w:3:20 | builtin container type \\"Promise\\" is not supported yet see https://github.com/winglang/wing/issues/529 +Error at ../../../../examples/tests/invalid/unimplemented_grammar.w:4:9 | expression \\"defer_expression\\" is not supported yet see https://github.com/winglang/wing/issues/116 +Error at ../../../../examples/tests/invalid/unimplemented_grammar.w:5:9 | expression \\"await_expression\\" is not supported yet see https://github.com/winglang/wing/issues/116" +`; + +exports[`unknown_symbol.w > wing test (--target sim) - invalid > stderr 1`] = ` +"Compilation failed with 3 error(s) +Error at ../../../../examples/tests/invalid/unknown_symbol.w:3:18 | Unknown symbol \\"clod\\" +Error at ../../../../examples/tests/invalid/unknown_symbol.w:6:13 | Unknown symbol \\"y\\" +Error at ../../../../examples/tests/invalid/unknown_symbol.w:17:25 | Unknown symbol \\"method_which_is_not_part_of_bucket_api\\"" +`; + +exports[`use_before_defined.w > wing test (--target sim) - invalid > stderr 1`] = ` +"Compilation failed with 2 error(s) +Error at ../../../../examples/tests/invalid/use_before_defined.w:1:10 | Unknown symbol \\"y\\" +Error at ../../../../examples/tests/invalid/use_before_defined.w:5:12 | Symbol \\"x\\" used before being defined" +`; + +exports[`variable_scoping.w > wing test (--target sim) - invalid > stderr 1`] = ` +"Compilation failed with 1 error(s) +Error at ../../../../examples/tests/invalid/variable_scoping.w:6:11 | Unknown symbol \\"x\\"" +`; + +exports[`void_in_expression_position.w > wing test (--target sim) - invalid > stderr 1`] = ` +"Compilation failed with 3 error(s) +Error at ../../../../examples/tests/invalid/void_in_expression_position.w:1:1 | Expression must be a class or resource instance to access property \\"get\\", instead found type \\"void\\" +Error at ../../../../examples/tests/invalid/void_in_expression_position.w:7:13 | Expected type to be \\"num\\", but got \\"void\\" instead +Error at ../../../../examples/tests/invalid/void_in_expression_position.w:11:5 | Cannot assign expression of type \\"void\\" to a variable" +`; diff --git a/tools/hangar/src/__snapshots__/test.test.ts.snap b/tools/hangar/src/__snapshots__/test.test.ts.snap new file mode 100644 index 00000000000..5bed4e19d09 --- /dev/null +++ b/tools/hangar/src/__snapshots__/test.test.ts.snap @@ -0,0 +1,148 @@ +// Vitest Snapshot v1 + +exports[`anon_function.w > wing test --target sim > stdout 1`] = ` +"1 +2 +3 +pass ─ anon_function.w (no tests)" +`; + +exports[`asynchronous_model_implicit_await_in_functions.w > wing test --target sim > stdout 1`] = `"pass ─ asynchronous_model_implicit_await_in_functions.w (no tests)"`; + +exports[`bring_cdktf.w > wing test --target sim > stdout 1`] = `"pass ─ bring_cdktf.w (no tests)"`; + +exports[`bring_fs.w > wing test --target sim > stdout 1`] = `"pass ─ bring_fs.w (no tests)"`; + +exports[`bring_jsii.w > wing test --target sim > stdout 1`] = `"pass ─ bring_jsii.w » root/test:say_hello"`; + +exports[`bring_jsii_path.w > wing test --target sim > stdout 1`] = `"pass ─ bring_jsii_path.w » root/test:say_hello"`; + +exports[`bring_projen.w > wing test --target sim > stdout 1`] = `"pass ─ bring_projen.w (no tests)"`; + +exports[`bucket_keys.w > wing test --target sim > stdout 1`] = `"pass ─ bucket_keys.w » root/test"`; + +exports[`capture_containers.w > wing test --target sim > stdout 1`] = `"pass ─ capture_containers.w » root/test"`; + +exports[`capture_containers_of_resources.w > wing test --target sim > stdout 1`] = `"pass ─ capture_containers_of_resources.w » root/test"`; + +exports[`capture_in_binary.w > wing test --target sim > stdout 1`] = `"pass ─ capture_in_binary.w » root/test"`; + +exports[`capture_primitives.w > wing test --target sim > stdout 1`] = `"pass ─ capture_primitives.w (no tests)"`; + +exports[`capture_resource_and_data.w > wing test --target sim > stdout 1`] = `"pass ─ capture_resource_and_data.w » root/test"`; + +exports[`capture_resource_with_no_inflight.w > wing test --target sim > stdout 1`] = `"pass ─ capture_resource_with_no_inflight.w » root/test"`; + +exports[`captures.w > wing test --target sim > stdout 1`] = `"pass ─ captures.w (no tests)"`; + +exports[`container_types.w > wing test --target sim > stdout 1`] = `"pass ─ container_types.w (no tests)"`; + +exports[`enums.w > wing test --target sim > stdout 1`] = `"pass ─ enums.w (no tests)"`; + +exports[`expressions_binary_operators.w > wing test --target sim > stdout 1`] = `"pass ─ expressions_binary_operators.w (no tests)"`; + +exports[`expressions_string_interpolation.w > wing test --target sim > stdout 1`] = `"pass ─ expressions_string_interpolation.w (no tests)"`; + +exports[`file_counter.w > wing test --target sim > stdout 1`] = `"pass ─ file_counter.w (no tests)"`; + +exports[`for_loop.w > wing test --target sim > stdout 1`] = ` +"wing: 1 +wing: 2 +wing: 3 +lang: 1 +lang: 2 +lang: 3 +dang: 1 +dang: 2 +dang: 3 +pass ─ for_loop.w (no tests)" +`; + +exports[`forward_decl.w > wing test --target sim > stdout 1`] = ` +"hi +pass ─ forward_decl.w (no tests)" +`; + +exports[`hello.w > wing test --target sim > stdout 1`] = `"pass ─ hello.w (no tests)"`; + +exports[`identical_inflights.w > wing test --target sim > stdout 1`] = `"pass ─ identical_inflights.w (no tests)"`; + +exports[`impl_interface.w > wing test --target sim > stdout 1`] = `"pass ─ impl_interface.w (no tests)"`; + +exports[`inflight_ref_external.w > wing test --target sim > stdout 1`] = `"pass ─ inflight_ref_external.w » root/test"`; + +exports[`inflight_ref_inflight_field.w > wing test --target sim > stdout 1`] = `"pass ─ inflight_ref_inflight_field.w » root/test"`; + +exports[`inflight_ref_primitive.w > wing test --target sim > stdout 1`] = `"pass ─ inflight_ref_primitive.w » root/test"`; + +exports[`inflight_ref_resource.w > wing test --target sim > stdout 1`] = `"pass ─ inflight_ref_resource.w » root/test"`; + +exports[`inflight_ref_resource_collection.w > wing test --target sim > stdout 1`] = `"pass ─ inflight_ref_resource_collection.w » root/test"`; + +exports[`inflight_ref_resource_field.w > wing test --target sim > stdout 1`] = `"pass ─ inflight_ref_resource_field.w » root/test"`; + +exports[`inflight_ref_resource_sub_method.w > wing test --target sim > stdout 1`] = `"pass ─ inflight_ref_resource_sub_method.w » root/test"`; + +exports[`inflight_ref_resource_userdefined.w > wing test --target sim > stdout 1`] = `"pass ─ inflight_ref_resource_userdefined.w » root/test"`; + +exports[`inflight_ref_unknown_op.w > wing test --target sim > stdout 1`] = `"pass ─ inflight_ref_unknown_op.w » root/test"`; + +exports[`json.w > wing test --target sim > stdout 1`] = `"pass ─ json.w (no tests)"`; + +exports[`json_bucket.w > wing test --target sim > stdout 1`] = `"pass ─ json_bucket.w » root/test:put"`; + +exports[`mut_container_types.w > wing test --target sim > stdout 1`] = `"pass ─ mut_container_types.w (no tests)"`; + +exports[`primitive_methods.w > wing test --target sim > stdout 1`] = ` +"1:60 +pass ─ primitive_methods.w (no tests)" +`; + +exports[`print.w > wing test --target sim > stdout 1`] = ` +"preflight print +pass ┌ print.w » root/test:print1 + │ inflight print 1.1 + └ inflight print 1.2 +pass ┌ print.w » root/test:print2 + │ inflight print 2.1 + └ inflight print 2.2" +`; + +exports[`reassignment.w > wing test --target sim > stdout 1`] = `"pass ─ reassignment.w (no tests)"`; + +exports[`resource.w > wing test --target sim > stdout 1`] = `"pass ─ resource.w » root/test"`; + +exports[`statements_if.w > wing test --target sim > stdout 1`] = `"pass ─ statements_if.w » root/test"`; + +exports[`statements_variable_declarations.w > wing test --target sim > stdout 1`] = `"pass ─ statements_variable_declarations.w (no tests)"`; + +exports[`static_members.w > wing test --target sim > stdout 1`] = `"pass ─ static_members.w » root/test"`; + +exports[`std_containers.w > wing test --target sim > stdout 1`] = `"pass ─ std_containers.w (no tests)"`; + +exports[`std_string.w > wing test --target sim > stdout 1`] = ` +"pass ┌ std_string.w » root/test:string + │ index of \\"s\\" in s1 is 0 + │ string + └ some strings are immutable" +`; + +exports[`test_bucket.w > wing test --target sim > stdout 1`] = ` +"pass ─ test_bucket.w » root/test:get +pass ─ test_bucket.w » root/test:put" +`; + +exports[`try_catch.w > wing test --target sim > stdout 1`] = `"pass ─ try_catch.w (no tests)"`; + +exports[`user-defined-resources-captures.w > wing test --target sim > stdout 1`] = ` +"pass ─ user-defined-resources-captures.w » root/test:capture_array +pass ─ user-defined-resources-captures.w » root/test:capture_array_of_queues +pass ─ user-defined-resources-captures.w » root/test:capture_map +pass ─ user-defined-resources-captures.w » root/test:capture_primitives +pass ─ user-defined-resources-captures.w » root/test:capture_resource +pass ─ user-defined-resources-captures.w » root/test:capture_set " +`; + +exports[`while.w > wing test --target sim > stdout 1`] = `"pass ─ while.w (no tests)"`; + +exports[`while_loop_await.w > wing test --target sim > stdout 1`] = `"pass ─ while_loop_await.w (no tests)"`; diff --git a/tools/hangar/src/test_corpus/valid/impl_interface.w.test.ts b/tools/hangar/src/test_corpus/valid/impl_interface.w.test.ts new file mode 100644 index 00000000000..db338bd4534 --- /dev/null +++ b/tools/hangar/src/test_corpus/valid/impl_interface.w.test.ts @@ -0,0 +1,12 @@ +// This file is generated by tools/hangar/src/generate_tests.ts + +import { test } from "vitest"; +import { compileTest, testTest } from "../../generated_test_targets"; + +test.concurrent("wing compile -t tf-aws", async ({ expect }) => { + await compileTest(expect, "impl_interface.w"); +}); + +test.concurrent("wing test", async ({ expect }) => { + await testTest(expect, "impl_interface.w"); +}); \ No newline at end of file