pub const NODE_TYPES: &str = "[\n {\n \"type\": \"literal\",\n \"named\": true,\n \"subtypes\": [\n {\n \"type\": \"bigint_literal\",\n \"named\": true\n },\n {\n \"type\": \"bool_literal\",\n \"named\": true\n },\n {\n \"type\": \"float_literal\",\n \"named\": true\n },\n {\n \"type\": \"imaginary_literal\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"pauli_literal\",\n \"named\": true\n },\n {\n \"type\": \"result_literal\",\n \"named\": true\n },\n {\n \"type\": \"string_literal\",\n \"named\": true\n }\n ]\n },\n {\n \"type\": \"type\",\n \"named\": true,\n \"subtypes\": [\n {\n \"type\": \"apos_ident\",\n \"named\": true\n },\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"builtin_type\",\n \"named\": true\n },\n {\n \"type\": \"callable_type\",\n \"named\": true\n },\n {\n \"type\": \"discard\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"path\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n }\n ]\n },\n {\n \"type\": \"array_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true\n },\n {\n \"type\": \"discard\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"full_range\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"new_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"path\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true\n },\n {\n \"type\": \"discard\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"full_range\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"new_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"path\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"array_type\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true\n },\n {\n \"type\": \"discard\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"full_range\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"new_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"path\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"attribute\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true\n },\n {\n \"type\": \"discard\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"full_range\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"new_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"path\",\n \"named\": true\n },\n {\n \"type\": \"path_or_identifier\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true\n },\n {\n \"type\": \"discard\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"full_range\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"new_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"path\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"block\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"borrow_statement\",\n \"named\": true\n },\n {\n \"type\": \"empty_statement\",\n \"named\": true\n },\n {\n \"type\": \"expression_statement\",\n \"named\": true\n },\n {\n \"type\": \"fail_statement\",\n \"named\": true\n },\n {\n \"type\": \"import_decl\",\n \"named\": true\n },\n {\n \"type\": \"let_statement\",\n \"named\": true\n },\n {\n \"type\": \"mutable_statement\",\n \"named\": true\n },\n {\n \"type\": \"return_statement\",\n \"named\": true\n },\n {\n \"type\": \"set_statement\",\n \"named\": true\n },\n {\n \"type\": \"struct_decl\",\n \"named\": true\n },\n {\n \"type\": \"use_statement\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"bool_literal\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"borrow_statement\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"pattern\",\n \"named\": true\n },\n {\n \"type\": \"qubit_init\",\n \"named\": true\n },\n {\n \"type\": \"type\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"builtin_type\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"call_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true\n },\n {\n \"type\": \"discard\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"full_range\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"new_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"path\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"callable_body\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"specialization_list\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"callable_decl\",\n \"named\": true,\n \"fields\": {\n \"body\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"callable_body\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n },\n \"params\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"param_list\",\n \"named\": true\n }\n ]\n },\n \"return_type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"attribute\",\n \"named\": true\n },\n {\n \"type\": \"functor_clause\",\n \"named\": true\n },\n {\n \"type\": \"type_params\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"callable_type\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"functor_expr\",\n \"named\": true\n },\n {\n \"type\": \"type\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true\n },\n {\n \"type\": \"discard\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"full_range\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"new_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"path\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"block\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"elif_clause\",\n \"named\": true,\n \"fields\": {\n \"body\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"block\",\n \"named\": true\n }\n ]\n },\n \"condition\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true\n },\n {\n \"type\": \"discard\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"full_range\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"new_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"path\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"else_clause\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"block\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"empty_statement\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"export_decl\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"attribute\",\n \"named\": true\n },\n {\n \"type\": \"export_item\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"export_item\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"path_or_identifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"expression_statement\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true\n },\n {\n \"type\": \"discard\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"full_range\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"new_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"path\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"fail_statement\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true\n },\n {\n \"type\": \"discard\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"full_range\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"new_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"path\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"field_assign\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n },\n \"value\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true\n },\n {\n \"type\": \"discard\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"full_range\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"new_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"path\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"field_def\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"field_expression\",\n \"named\": true,\n \"fields\": {\n \"field\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true\n },\n {\n \"type\": \"discard\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"full_range\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"new_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"path\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"for_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true\n },\n {\n \"type\": \"discard\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"full_range\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"new_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"path\",\n \"named\": true\n },\n {\n \"type\": \"pattern\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"full_range\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"functor_clause\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"functor_expr\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"functor_expr\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"functor_expr\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"if_expression\",\n \"named\": true,\n \"fields\": {\n \"body\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"block\",\n \"named\": true\n }\n ]\n },\n \"condition\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true\n },\n {\n \"type\": \"discard\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"full_range\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"new_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"path\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"elif_clause\",\n \"named\": true\n },\n {\n \"type\": \"else_clause\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"import_decl\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"import_item\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"import_item\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"import_path\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"import_path\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"index_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true\n },\n {\n \"type\": \"discard\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"full_range\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"new_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"path\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"interpolation_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true\n },\n {\n \"type\": \"discard\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"full_range\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"new_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"path\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true\n },\n {\n \"type\": \"discard\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"full_range\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"new_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"path\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"let_statement\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"full_range\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"new_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"pattern\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"type\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"mutable_statement\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"full_range\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"new_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"pattern\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"type\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"namespace\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"path_or_identifier\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"callable_decl\",\n \"named\": true\n },\n {\n \"type\": \"export_decl\",\n \"named\": true\n },\n {\n \"type\": \"import_decl\",\n \"named\": true\n },\n {\n \"type\": \"newtype_decl\",\n \"named\": true\n },\n {\n \"type\": \"open_decl\",\n \"named\": true\n },\n {\n \"type\": \"struct_decl\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"new_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"full_range\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"new_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"path_or_identifier\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true\n },\n {\n \"type\": \"struct_fields\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"type\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"newtype_decl\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_def\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"open_decl\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"path_or_identifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true\n },\n {\n \"type\": \"discard\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"full_range\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"new_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"path\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true\n },\n {\n \"type\": \"discard\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"full_range\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"new_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"path\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"param_list\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"tuple_param\",\n \"named\": true\n },\n {\n \"type\": \"typed_param\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true\n },\n {\n \"type\": \"discard\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"full_range\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"new_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"path\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"path\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"path_or_identifier\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"path\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"pattern\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"discard\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"pattern\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"pauli_literal\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"qubit_init\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true\n },\n {\n \"type\": \"discard\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"full_range\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"new_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"path\",\n \"named\": true\n },\n {\n \"type\": \"qubit_init\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"range_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true\n },\n {\n \"type\": \"discard\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"full_range\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"new_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"path\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true\n },\n {\n \"type\": \"discard\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"full_range\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"new_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"path\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"result_literal\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"return_statement\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true\n },\n {\n \"type\": \"discard\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"full_range\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"new_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"path\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"set_statement\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true\n },\n {\n \"type\": \"discard\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"full_range\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"new_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"path\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"source_file\",\n \"named\": true,\n \"root\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"borrow_statement\",\n \"named\": true\n },\n {\n \"type\": \"callable_decl\",\n \"named\": true\n },\n {\n \"type\": \"empty_statement\",\n \"named\": true\n },\n {\n \"type\": \"export_decl\",\n \"named\": true\n },\n {\n \"type\": \"expression_statement\",\n \"named\": true\n },\n {\n \"type\": \"fail_statement\",\n \"named\": true\n },\n {\n \"type\": \"import_decl\",\n \"named\": true\n },\n {\n \"type\": \"let_statement\",\n \"named\": true\n },\n {\n \"type\": \"mutable_statement\",\n \"named\": true\n },\n {\n \"type\": \"namespace\",\n \"named\": true\n },\n {\n \"type\": \"newtype_decl\",\n \"named\": true\n },\n {\n \"type\": \"open_decl\",\n \"named\": true\n },\n {\n \"type\": \"return_statement\",\n \"named\": true\n },\n {\n \"type\": \"set_statement\",\n \"named\": true\n },\n {\n \"type\": \"struct_decl\",\n \"named\": true\n },\n {\n \"type\": \"use_statement\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"spec_generator\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"spec_name\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"spec_param\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"specialization\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"spec_generator\",\n \"named\": true\n },\n {\n \"type\": \"spec_name\",\n \"named\": true\n },\n {\n \"type\": \"spec_param\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"specialization_list\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"specialization\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true\n },\n {\n \"type\": \"discard\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"full_range\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"new_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"path\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"interpolation_content\",\n \"named\": true\n },\n {\n \"type\": \"interpolation_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"struct_decl\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"field_def\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"struct_fields\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true\n },\n {\n \"type\": \"discard\",\n \"named\": true\n },\n {\n \"type\": \"field_assign\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"full_range\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"new_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"path\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true\n },\n {\n \"type\": \"discard\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"full_range\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"new_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"path\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true\n },\n {\n \"type\": \"discard\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"full_range\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"new_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"path\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"tuple_param\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"tuple_param\",\n \"named\": true\n },\n {\n \"type\": \"typed_param\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"type_def\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type\",\n \"named\": true\n },\n {\n \"type\": \"type_def\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"type_param\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"apos_ident\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"type_params\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_param\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"typed_param\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true\n },\n {\n \"type\": \"discard\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"full_range\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"new_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"path\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true\n },\n {\n \"type\": \"discard\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"full_range\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"new_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"path\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"update_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true\n },\n {\n \"type\": \"discard\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"full_range\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"new_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"path\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"use_statement\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"pattern\",\n \"named\": true\n },\n {\n \"type\": \"qubit_init\",\n \"named\": true\n },\n {\n \"type\": \"type\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"while_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjugation_expression\",\n \"named\": true\n },\n {\n \"type\": \"discard\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_expression\",\n \"named\": true\n },\n {\n \"type\": \"full_range\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if_expression\",\n \"named\": true\n },\n {\n \"type\": \"index_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_expression\",\n \"named\": true\n },\n {\n \"type\": \"literal\",\n \"named\": true\n },\n {\n \"type\": \"new_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_range_end\",\n \"named\": true\n },\n {\n \"type\": \"open_range_start\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"path\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"repeat_expression\",\n \"named\": true\n },\n {\n \"type\": \"step_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_interpolation\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_expression\",\n \"named\": true\n },\n {\n \"type\": \"unwrap_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"while_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"!\",\n \"named\": false\n },\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"\\\"\",\n \"named\": false\n },\n {\n \"type\": \"$\\\"\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"%=\",\n \"named\": false\n },\n {\n \"type\": \"&&&\",\n \"named\": false\n },\n {\n \"type\": \"&&&=\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"*=\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"+=\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"-=\",\n \"named\": false\n },\n {\n \"type\": \"->\",\n \"named\": false\n },\n {\n \"type\": \".\",\n \"named\": false\n },\n {\n \"type\": \"..\",\n \"named\": false\n },\n {\n \"type\": \"...\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \"/=\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"::\",\n \"named\": false\n },\n {\n \"type\": \";\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<-\",\n \"named\": false\n },\n {\n \"type\": \"<<<\",\n \"named\": false\n },\n {\n \"type\": \"<<<=\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"=>\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \">>>\",\n \"named\": false\n },\n {\n \"type\": \">>>=\",\n \"named\": false\n },\n {\n \"type\": \"?\",\n \"named\": false\n },\n {\n \"type\": \"@\",\n \"named\": false\n },\n {\n \"type\": \"Adj\",\n \"named\": false\n },\n {\n \"type\": \"Adjoint\",\n \"named\": false\n },\n {\n \"type\": \"BigInt\",\n \"named\": false\n },\n {\n \"type\": \"Bool\",\n \"named\": false\n },\n {\n \"type\": \"Controlled\",\n \"named\": false\n },\n {\n \"type\": \"Ctl\",\n \"named\": false\n },\n {\n \"type\": \"Double\",\n \"named\": false\n },\n {\n \"type\": \"Int\",\n \"named\": false\n },\n {\n \"type\": \"One\",\n \"named\": false\n },\n {\n \"type\": \"Pauli\",\n \"named\": false\n },\n {\n \"type\": \"PauliI\",\n \"named\": false\n },\n {\n \"type\": \"PauliX\",\n \"named\": false\n },\n {\n \"type\": \"PauliY\",\n \"named\": false\n },\n {\n \"type\": \"PauliZ\",\n \"named\": false\n },\n {\n \"type\": \"Qubit\",\n \"named\": false\n },\n {\n \"type\": \"Range\",\n \"named\": false\n },\n {\n \"type\": \"Result\",\n \"named\": false\n },\n {\n \"type\": \"String\",\n \"named\": false\n },\n {\n \"type\": \"Unit\",\n \"named\": false\n },\n {\n \"type\": \"Zero\",\n \"named\": false\n },\n {\n \"type\": \"[\",\n \"named\": false\n },\n {\n \"type\": \"]\",\n \"named\": false\n },\n {\n \"type\": \"^\",\n \"named\": false\n },\n {\n \"type\": \"^=\",\n \"named\": false\n },\n {\n \"type\": \"^^^\",\n \"named\": false\n },\n {\n \"type\": \"^^^=\",\n \"named\": false\n },\n {\n \"type\": \"adjoint\",\n \"named\": false\n },\n {\n \"type\": \"and\",\n \"named\": false\n },\n {\n \"type\": \"and=\",\n \"named\": false\n },\n {\n \"type\": \"apos_ident\",\n \"named\": true\n },\n {\n \"type\": \"apply\",\n \"named\": false\n },\n {\n \"type\": \"as\",\n \"named\": false\n },\n {\n \"type\": \"auto\",\n \"named\": false\n },\n {\n \"type\": \"bigint_literal\",\n \"named\": true\n },\n {\n \"type\": \"body\",\n \"named\": false\n },\n {\n \"type\": \"borrow\",\n \"named\": false\n },\n {\n \"type\": \"comment\",\n \"named\": true,\n \"extra\": true\n },\n {\n \"type\": \"controlled\",\n \"named\": false\n },\n {\n \"type\": \"discard\",\n \"named\": true\n },\n {\n \"type\": \"distribute\",\n \"named\": false\n },\n {\n \"type\": \"doc_comment\",\n \"named\": true,\n \"extra\": true\n },\n {\n \"type\": \"elif\",\n \"named\": false\n },\n {\n \"type\": \"else\",\n \"named\": false\n },\n {\n \"type\": \"export\",\n \"named\": false\n },\n {\n \"type\": \"fail\",\n \"named\": false\n },\n {\n \"type\": \"false\",\n \"named\": false\n },\n {\n \"type\": \"fixup\",\n \"named\": false\n },\n {\n \"type\": \"float_literal\",\n \"named\": true\n },\n {\n \"type\": \"for\",\n \"named\": false\n },\n {\n \"type\": \"function\",\n \"named\": false\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if\",\n \"named\": false\n },\n {\n \"type\": \"imaginary_literal\",\n \"named\": true\n },\n {\n \"type\": \"import\",\n \"named\": false\n },\n {\n \"type\": \"in\",\n \"named\": false\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"internal\",\n \"named\": false\n },\n {\n \"type\": \"interpolation_content\",\n \"named\": true\n },\n {\n \"type\": \"intrinsic\",\n \"named\": false\n },\n {\n \"type\": \"invert\",\n \"named\": false\n },\n {\n \"type\": \"is\",\n \"named\": false\n },\n {\n \"type\": \"let\",\n \"named\": false\n },\n {\n \"type\": \"mutable\",\n \"named\": false\n },\n {\n \"type\": \"namespace\",\n \"named\": false\n },\n {\n \"type\": \"new\",\n \"named\": false\n },\n {\n \"type\": \"newtype\",\n \"named\": false\n },\n {\n \"type\": \"not\",\n \"named\": false\n },\n {\n \"type\": \"open\",\n \"named\": false\n },\n {\n \"type\": \"operation\",\n \"named\": false\n },\n {\n \"type\": \"or\",\n \"named\": false\n },\n {\n \"type\": \"or=\",\n \"named\": false\n },\n {\n \"type\": \"repeat\",\n \"named\": false\n },\n {\n \"type\": \"return\",\n \"named\": false\n },\n {\n \"type\": \"self\",\n \"named\": false\n },\n {\n \"type\": \"set\",\n \"named\": false\n },\n {\n \"type\": \"size\",\n \"named\": false\n },\n {\n \"type\": \"string_literal\",\n \"named\": true\n },\n {\n \"type\": \"struct\",\n \"named\": false\n },\n {\n \"type\": \"true\",\n \"named\": false\n },\n {\n \"type\": \"until\",\n \"named\": false\n },\n {\n \"type\": \"use\",\n \"named\": false\n },\n {\n \"type\": \"w/\",\n \"named\": false\n },\n {\n \"type\": \"w/=\",\n \"named\": false\n },\n {\n \"type\": \"while\",\n \"named\": false\n },\n {\n \"type\": \"within\",\n \"named\": false\n },\n {\n \"type\": \"{\",\n \"named\": false\n },\n {\n \"type\": \"|\",\n \"named\": false\n },\n {\n \"type\": \"|||\",\n \"named\": false\n },\n {\n \"type\": \"|||=\",\n \"named\": false\n },\n {\n \"type\": \"}\",\n \"named\": false\n },\n {\n \"type\": \"~~~\",\n \"named\": false\n }\n]";Expand description
The content of the node-types.json file for this grammar.