pub const NODE_TYPES: &str = "[\n {\n \"type\": \"argument_declaration\",\n \"named\": true,\n \"fields\": {\n \"mut\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"mut_keyword\",\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 \"type\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"qualified_name\",\n \"named\": true\n },\n {\n \"type\": \"type_array\",\n \"named\": true\n },\n {\n \"type\": \"type_bool\",\n \"named\": true\n },\n {\n \"type\": \"type_fn\",\n \"named\": true\n },\n {\n \"type\": \"type_i16\",\n \"named\": true\n },\n {\n \"type\": \"type_i32\",\n \"named\": true\n },\n {\n \"type\": \"type_i64\",\n \"named\": true\n },\n {\n \"type\": \"type_i8\",\n \"named\": true\n },\n {\n \"type\": \"type_qualified_name\",\n \"named\": true\n },\n {\n \"type\": \"type_u16\",\n \"named\": true\n },\n {\n \"type\": \"type_u32\",\n \"named\": true\n },\n {\n \"type\": \"type_u64\",\n \"named\": true\n },\n {\n \"type\": \"type_u8\",\n \"named\": true\n },\n {\n \"type\": \"type_unit\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"argument_list\",\n \"named\": true,\n \"fields\": {\n \"argument\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"argument_declaration\",\n \"named\": true\n },\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"ignore_argument\",\n \"named\": true\n },\n {\n \"type\": \"qualified_name\",\n \"named\": true\n },\n {\n \"type\": \"self_reference\",\n \"named\": true\n },\n {\n \"type\": \"type_array\",\n \"named\": true\n },\n {\n \"type\": \"type_bool\",\n \"named\": true\n },\n {\n \"type\": \"type_fn\",\n \"named\": true\n },\n {\n \"type\": \"type_i16\",\n \"named\": true\n },\n {\n \"type\": \"type_i32\",\n \"named\": true\n },\n {\n \"type\": \"type_i64\",\n \"named\": true\n },\n {\n \"type\": \"type_i8\",\n \"named\": true\n },\n {\n \"type\": \"type_qualified_name\",\n \"named\": true\n },\n {\n \"type\": \"type_u16\",\n \"named\": true\n },\n {\n \"type\": \"type_u32\",\n \"named\": true\n },\n {\n \"type\": \"type_u64\",\n \"named\": true\n },\n {\n \"type\": \"type_u8\",\n \"named\": true\n },\n {\n \"type\": \"type_unit\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"array_index_access_expression\",\n \"named\": true,\n \"fields\": {\n \"array\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_index_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"member_access_expression\",\n \"named\": true\n }\n ]\n },\n \"index\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_index_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"bool_literal\",\n \"named\": true\n },\n {\n \"type\": \"function_call_expression\",\n \"named\": true\n },\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"number_literal\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_literal\",\n \"named\": true\n },\n {\n \"type\": \"struct_expression\",\n \"named\": true\n },\n {\n \"type\": \"type_member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_literal\",\n \"named\": true\n },\n {\n \"type\": \"uzumaki_keyword\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"array_literal\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_index_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"bool_literal\",\n \"named\": true\n },\n {\n \"type\": \"function_call_expression\",\n \"named\": true\n },\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"number_literal\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_literal\",\n \"named\": true\n },\n {\n \"type\": \"struct_expression\",\n \"named\": true\n },\n {\n \"type\": \"type_member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_literal\",\n \"named\": true\n },\n {\n \"type\": \"uzumaki_keyword\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"assert_statement\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_index_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"bool_literal\",\n \"named\": true\n },\n {\n \"type\": \"function_call_expression\",\n \"named\": true\n },\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"number_literal\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_literal\",\n \"named\": true\n },\n {\n \"type\": \"struct_expression\",\n \"named\": true\n },\n {\n \"type\": \"type_member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_literal\",\n \"named\": true\n },\n {\n \"type\": \"uzumaki_keyword\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"assign_statement\",\n \"named\": true,\n \"fields\": {\n \"left\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_index_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"member_access_expression\",\n \"named\": true\n }\n ]\n },\n \"right\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_index_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"bool_literal\",\n \"named\": true\n },\n {\n \"type\": \"function_call_expression\",\n \"named\": true\n },\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"number_literal\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_literal\",\n \"named\": true\n },\n {\n \"type\": \"struct_expression\",\n \"named\": true\n },\n {\n \"type\": \"type_member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_literal\",\n \"named\": true\n },\n {\n \"type\": \"uzumaki_keyword\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"assume_block\",\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 }\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true,\n \"fields\": {\n \"left\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_index_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"bool_literal\",\n \"named\": true\n },\n {\n \"type\": \"function_call_expression\",\n \"named\": true\n },\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"number_literal\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_literal\",\n \"named\": true\n },\n {\n \"type\": \"struct_expression\",\n \"named\": true\n },\n {\n \"type\": \"type_member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_literal\",\n \"named\": true\n },\n {\n \"type\": \"uzumaki_keyword\",\n \"named\": true\n }\n ]\n },\n \"operator\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\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 },\n \"right\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_index_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"bool_literal\",\n \"named\": true\n },\n {\n \"type\": \"function_call_expression\",\n \"named\": true\n },\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"number_literal\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_literal\",\n \"named\": true\n },\n {\n \"type\": \"struct_expression\",\n \"named\": true\n },\n {\n \"type\": \"type_member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_literal\",\n \"named\": true\n },\n {\n \"type\": \"uzumaki_keyword\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"block\",\n \"named\": true,\n \"fields\": {\n \"statement\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"assert_statement\",\n \"named\": true\n },\n {\n \"type\": \"assign_statement\",\n \"named\": true\n },\n {\n \"type\": \"assume_block\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"break_statement\",\n \"named\": true\n },\n {\n \"type\": \"constant_definition\",\n \"named\": true\n },\n {\n \"type\": \"exists_block\",\n \"named\": true\n },\n {\n \"type\": \"expression_statement\",\n \"named\": true\n },\n {\n \"type\": \"forall_block\",\n \"named\": true\n },\n {\n \"type\": \"if_statement\",\n \"named\": true\n },\n {\n \"type\": \"loop_statement\",\n \"named\": true\n },\n {\n \"type\": \"return_statement\",\n \"named\": true\n },\n {\n \"type\": \"type_definition_statement\",\n \"named\": true\n },\n {\n \"type\": \"unique_block\",\n \"named\": true\n },\n {\n \"type\": \"variable_definition_statement\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"bool_literal\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"break_statement\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"constant_definition\",\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\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"qualified_name\",\n \"named\": true\n },\n {\n \"type\": \"type_array\",\n \"named\": true\n },\n {\n \"type\": \"type_bool\",\n \"named\": true\n },\n {\n \"type\": \"type_fn\",\n \"named\": true\n },\n {\n \"type\": \"type_i16\",\n \"named\": true\n },\n {\n \"type\": \"type_i32\",\n \"named\": true\n },\n {\n \"type\": \"type_i64\",\n \"named\": true\n },\n {\n \"type\": \"type_i8\",\n \"named\": true\n },\n {\n \"type\": \"type_qualified_name\",\n \"named\": true\n },\n {\n \"type\": \"type_u16\",\n \"named\": true\n },\n {\n \"type\": \"type_u32\",\n \"named\": true\n },\n {\n \"type\": \"type_u64\",\n \"named\": true\n },\n {\n \"type\": \"type_u8\",\n \"named\": true\n },\n {\n \"type\": \"type_unit\",\n \"named\": true\n }\n ]\n },\n \"value\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_index_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"bool_literal\",\n \"named\": true\n },\n {\n \"type\": \"function_call_expression\",\n \"named\": true\n },\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"number_literal\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_literal\",\n \"named\": true\n },\n {\n \"type\": \"struct_expression\",\n \"named\": true\n },\n {\n \"type\": \"type_member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_literal\",\n \"named\": true\n },\n {\n \"type\": \"uzumaki_keyword\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"enum_definition\",\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 \"variant\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"exists_block\",\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 }\n },\n {\n \"type\": \"expression_statement\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_index_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"bool_literal\",\n \"named\": true\n },\n {\n \"type\": \"function_call_expression\",\n \"named\": true\n },\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"number_literal\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_literal\",\n \"named\": true\n },\n {\n \"type\": \"struct_expression\",\n \"named\": true\n },\n {\n \"type\": \"type_member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_literal\",\n \"named\": true\n },\n {\n \"type\": \"uzumaki_keyword\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"external_function_definition\",\n \"named\": true,\n \"fields\": {\n \"argument_list\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"argument_list\",\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 \"returns\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"qualified_name\",\n \"named\": true\n },\n {\n \"type\": \"type_array\",\n \"named\": true\n },\n {\n \"type\": \"type_bool\",\n \"named\": true\n },\n {\n \"type\": \"type_fn\",\n \"named\": true\n },\n {\n \"type\": \"type_i16\",\n \"named\": true\n },\n {\n \"type\": \"type_i32\",\n \"named\": true\n },\n {\n \"type\": \"type_i64\",\n \"named\": true\n },\n {\n \"type\": \"type_i8\",\n \"named\": true\n },\n {\n \"type\": \"type_qualified_name\",\n \"named\": true\n },\n {\n \"type\": \"type_u16\",\n \"named\": true\n },\n {\n \"type\": \"type_u32\",\n \"named\": true\n },\n {\n \"type\": \"type_u64\",\n \"named\": true\n },\n {\n \"type\": \"type_u8\",\n \"named\": true\n },\n {\n \"type\": \"type_unit\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"forall_block\",\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 }\n },\n {\n \"type\": \"function_call_expression\",\n \"named\": true,\n \"fields\": {\n \"argument\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_index_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"bool_literal\",\n \"named\": true\n },\n {\n \"type\": \"function_call_expression\",\n \"named\": true\n },\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"number_literal\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_literal\",\n \"named\": true\n },\n {\n \"type\": \"struct_expression\",\n \"named\": true\n },\n {\n \"type\": \"type_member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_literal\",\n \"named\": true\n },\n {\n \"type\": \"uzumaki_keyword\",\n \"named\": true\n }\n ]\n },\n \"argument_name\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"qualified_name\",\n \"named\": true\n },\n {\n \"type\": \"type_qualified_name\",\n \"named\": true\n }\n ]\n },\n \"function\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_index_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"type_member_access_expression\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"function_definition\",\n \"named\": true,\n \"fields\": {\n \"argument_list\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"argument_list\",\n \"named\": true\n }\n ]\n },\n \"body\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"assume_block\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"exists_block\",\n \"named\": true\n },\n {\n \"type\": \"forall_block\",\n \"named\": true\n },\n {\n \"type\": \"unique_block\",\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 \"returns\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"qualified_name\",\n \"named\": true\n },\n {\n \"type\": \"type_array\",\n \"named\": true\n },\n {\n \"type\": \"type_bool\",\n \"named\": true\n },\n {\n \"type\": \"type_fn\",\n \"named\": true\n },\n {\n \"type\": \"type_i16\",\n \"named\": true\n },\n {\n \"type\": \"type_i32\",\n \"named\": true\n },\n {\n \"type\": \"type_i64\",\n \"named\": true\n },\n {\n \"type\": \"type_i8\",\n \"named\": true\n },\n {\n \"type\": \"type_qualified_name\",\n \"named\": true\n },\n {\n \"type\": \"type_u16\",\n \"named\": true\n },\n {\n \"type\": \"type_u32\",\n \"named\": true\n },\n {\n \"type\": \"type_u64\",\n \"named\": true\n },\n {\n \"type\": \"type_u8\",\n \"named\": true\n },\n {\n \"type\": \"type_unit\",\n \"named\": true\n }\n ]\n },\n \"type_parameters\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_argument_list_definition\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"generic_name\",\n \"named\": true,\n \"fields\": {\n \"base_type\": {\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_argument_list\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"identifier\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"if_statement\",\n \"named\": true,\n \"fields\": {\n \"condition\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_index_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"bool_literal\",\n \"named\": true\n },\n {\n \"type\": \"function_call_expression\",\n \"named\": true\n },\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"number_literal\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_literal\",\n \"named\": true\n },\n {\n \"type\": \"struct_expression\",\n \"named\": true\n },\n {\n \"type\": \"type_member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_literal\",\n \"named\": true\n },\n {\n \"type\": \"uzumaki_keyword\",\n \"named\": true\n }\n ]\n },\n \"else_arm\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"assume_block\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"exists_block\",\n \"named\": true\n },\n {\n \"type\": \"forall_block\",\n \"named\": true\n },\n {\n \"type\": \"unique_block\",\n \"named\": true\n }\n ]\n },\n \"else_if_arm\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"assume_block\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"exists_block\",\n \"named\": true\n },\n {\n \"type\": \"forall_block\",\n \"named\": true\n },\n {\n \"type\": \"unique_block\",\n \"named\": true\n }\n ]\n },\n \"else_if_condition\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_index_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"bool_literal\",\n \"named\": true\n },\n {\n \"type\": \"function_call_expression\",\n \"named\": true\n },\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"number_literal\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_literal\",\n \"named\": true\n },\n {\n \"type\": \"struct_expression\",\n \"named\": true\n },\n {\n \"type\": \"type_member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_literal\",\n \"named\": true\n },\n {\n \"type\": \"uzumaki_keyword\",\n \"named\": true\n }\n ]\n },\n \"if_arm\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"assume_block\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"exists_block\",\n \"named\": true\n },\n {\n \"type\": \"forall_block\",\n \"named\": true\n },\n {\n \"type\": \"unique_block\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"ignore_argument\",\n \"named\": true,\n \"fields\": {\n \"type\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"qualified_name\",\n \"named\": true\n },\n {\n \"type\": \"type_array\",\n \"named\": true\n },\n {\n \"type\": \"type_bool\",\n \"named\": true\n },\n {\n \"type\": \"type_fn\",\n \"named\": true\n },\n {\n \"type\": \"type_i16\",\n \"named\": true\n },\n {\n \"type\": \"type_i32\",\n \"named\": true\n },\n {\n \"type\": \"type_i64\",\n \"named\": true\n },\n {\n \"type\": \"type_i8\",\n \"named\": true\n },\n {\n \"type\": \"type_qualified_name\",\n \"named\": true\n },\n {\n \"type\": \"type_u16\",\n \"named\": true\n },\n {\n \"type\": \"type_u32\",\n \"named\": true\n },\n {\n \"type\": \"type_u64\",\n \"named\": true\n },\n {\n \"type\": \"type_u8\",\n \"named\": true\n },\n {\n \"type\": \"type_unit\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"loop_statement\",\n \"named\": true,\n \"fields\": {\n \"body\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"assume_block\",\n \"named\": true\n },\n {\n \"type\": \"block\",\n \"named\": true\n },\n {\n \"type\": \"exists_block\",\n \"named\": true\n },\n {\n \"type\": \"forall_block\",\n \"named\": true\n },\n {\n \"type\": \"unique_block\",\n \"named\": true\n }\n ]\n },\n \"condition\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_index_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"bool_literal\",\n \"named\": true\n },\n {\n \"type\": \"function_call_expression\",\n \"named\": true\n },\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"number_literal\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_literal\",\n \"named\": true\n },\n {\n \"type\": \"struct_expression\",\n \"named\": true\n },\n {\n \"type\": \"type_member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_literal\",\n \"named\": true\n },\n {\n \"type\": \"uzumaki_keyword\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"member_access_expression\",\n \"named\": true,\n \"fields\": {\n \"expression\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"qualified_name\",\n \"named\": true\n },\n {\n \"type\": \"type_qualified_name\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"number_literal\",\n \"named\": true,\n \"fields\": {}\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_index_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"bool_literal\",\n \"named\": true\n },\n {\n \"type\": \"function_call_expression\",\n \"named\": true\n },\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"number_literal\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_literal\",\n \"named\": true\n },\n {\n \"type\": \"struct_expression\",\n \"named\": true\n },\n {\n \"type\": \"type_member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_literal\",\n \"named\": true\n },\n {\n \"type\": \"uzumaki_keyword\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"prefix_unary_expression\",\n \"named\": true,\n \"fields\": {\n \"operator\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"unary_not\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_index_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"bool_literal\",\n \"named\": true\n },\n {\n \"type\": \"function_call_expression\",\n \"named\": true\n },\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"number_literal\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_literal\",\n \"named\": true\n },\n {\n \"type\": \"struct_expression\",\n \"named\": true\n },\n {\n \"type\": \"type_member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_literal\",\n \"named\": true\n },\n {\n \"type\": \"uzumaki_keyword\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"qualified_name\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n },\n \"qualifier\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"qualified_name\",\n \"named\": true\n },\n {\n \"type\": \"type_qualified_name\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"return_statement\",\n \"named\": true,\n \"fields\": {\n \"expression\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_index_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"bool_literal\",\n \"named\": true\n },\n {\n \"type\": \"function_call_expression\",\n \"named\": true\n },\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"number_literal\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_literal\",\n \"named\": true\n },\n {\n \"type\": \"struct_expression\",\n \"named\": true\n },\n {\n \"type\": \"type_member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_literal\",\n \"named\": true\n },\n {\n \"type\": \"uzumaki_keyword\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"self_reference\",\n \"named\": true,\n \"fields\": {\n \"mut\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"mut_keyword\",\n \"named\": true\n }\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\": \"constant_definition\",\n \"named\": true\n },\n {\n \"type\": \"enum_definition\",\n \"named\": true\n },\n {\n \"type\": \"external_function_definition\",\n \"named\": true\n },\n {\n \"type\": \"function_definition\",\n \"named\": true\n },\n {\n \"type\": \"spec_definition\",\n \"named\": true\n },\n {\n \"type\": \"struct_definition\",\n \"named\": true\n },\n {\n \"type\": \"type_definition_statement\",\n \"named\": true\n },\n {\n \"type\": \"use_directive\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"spec_definition\",\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\": \"constant_definition\",\n \"named\": true\n },\n {\n \"type\": \"enum_definition\",\n \"named\": true\n },\n {\n \"type\": \"external_function_definition\",\n \"named\": true\n },\n {\n \"type\": \"function_definition\",\n \"named\": true\n },\n {\n \"type\": \"struct_definition\",\n \"named\": true\n },\n {\n \"type\": \"type_definition_statement\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"string_literal\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"struct_definition\",\n \"named\": true,\n \"fields\": {\n \"field\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"struct_field\",\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 \"value\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"function_definition\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"struct_expression\",\n \"named\": true,\n \"fields\": {\n \"field_name\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"qualified_name\",\n \"named\": true\n },\n {\n \"type\": \"type_qualified_name\",\n \"named\": true\n }\n ]\n },\n \"field_value\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_index_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"bool_literal\",\n \"named\": true\n },\n {\n \"type\": \"function_call_expression\",\n \"named\": true\n },\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"number_literal\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_literal\",\n \"named\": true\n },\n {\n \"type\": \"struct_expression\",\n \"named\": true\n },\n {\n \"type\": \"type_member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_literal\",\n \"named\": true\n },\n {\n \"type\": \"uzumaki_keyword\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"qualified_name\",\n \"named\": true\n },\n {\n \"type\": \"type_qualified_name\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"struct_field\",\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\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"qualified_name\",\n \"named\": true\n },\n {\n \"type\": \"type_array\",\n \"named\": true\n },\n {\n \"type\": \"type_bool\",\n \"named\": true\n },\n {\n \"type\": \"type_fn\",\n \"named\": true\n },\n {\n \"type\": \"type_i16\",\n \"named\": true\n },\n {\n \"type\": \"type_i32\",\n \"named\": true\n },\n {\n \"type\": \"type_i64\",\n \"named\": true\n },\n {\n \"type\": \"type_i8\",\n \"named\": true\n },\n {\n \"type\": \"type_qualified_name\",\n \"named\": true\n },\n {\n \"type\": \"type_u16\",\n \"named\": true\n },\n {\n \"type\": \"type_u32\",\n \"named\": true\n },\n {\n \"type\": \"type_u64\",\n \"named\": true\n },\n {\n \"type\": \"type_u8\",\n \"named\": true\n },\n {\n \"type\": \"type_unit\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"type_argument_list\",\n \"named\": true,\n \"fields\": {\n \"type\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"qualified_name\",\n \"named\": true\n },\n {\n \"type\": \"type_array\",\n \"named\": true\n },\n {\n \"type\": \"type_bool\",\n \"named\": true\n },\n {\n \"type\": \"type_fn\",\n \"named\": true\n },\n {\n \"type\": \"type_i16\",\n \"named\": true\n },\n {\n \"type\": \"type_i32\",\n \"named\": true\n },\n {\n \"type\": \"type_i64\",\n \"named\": true\n },\n {\n \"type\": \"type_i8\",\n \"named\": true\n },\n {\n \"type\": \"type_qualified_name\",\n \"named\": true\n },\n {\n \"type\": \"type_u16\",\n \"named\": true\n },\n {\n \"type\": \"type_u32\",\n \"named\": true\n },\n {\n \"type\": \"type_u64\",\n \"named\": true\n },\n {\n \"type\": \"type_u8\",\n \"named\": true\n },\n {\n \"type\": \"type_unit\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"type_argument_list_definition\",\n \"named\": true,\n \"fields\": {\n \"type\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"type_array\",\n \"named\": true,\n \"fields\": {\n \"length\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"number_literal\",\n \"named\": true\n },\n {\n \"type\": \"qualified_name\",\n \"named\": true\n },\n {\n \"type\": \"type_qualified_name\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"qualified_name\",\n \"named\": true\n },\n {\n \"type\": \"type_array\",\n \"named\": true\n },\n {\n \"type\": \"type_bool\",\n \"named\": true\n },\n {\n \"type\": \"type_fn\",\n \"named\": true\n },\n {\n \"type\": \"type_i16\",\n \"named\": true\n },\n {\n \"type\": \"type_i32\",\n \"named\": true\n },\n {\n \"type\": \"type_i64\",\n \"named\": true\n },\n {\n \"type\": \"type_i8\",\n \"named\": true\n },\n {\n \"type\": \"type_qualified_name\",\n \"named\": true\n },\n {\n \"type\": \"type_u16\",\n \"named\": true\n },\n {\n \"type\": \"type_u32\",\n \"named\": true\n },\n {\n \"type\": \"type_u64\",\n \"named\": true\n },\n {\n \"type\": \"type_u8\",\n \"named\": true\n },\n {\n \"type\": \"type_unit\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"type_definition_statement\",\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\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"qualified_name\",\n \"named\": true\n },\n {\n \"type\": \"type_array\",\n \"named\": true\n },\n {\n \"type\": \"type_bool\",\n \"named\": true\n },\n {\n \"type\": \"type_fn\",\n \"named\": true\n },\n {\n \"type\": \"type_i16\",\n \"named\": true\n },\n {\n \"type\": \"type_i32\",\n \"named\": true\n },\n {\n \"type\": \"type_i64\",\n \"named\": true\n },\n {\n \"type\": \"type_i8\",\n \"named\": true\n },\n {\n \"type\": \"type_qualified_name\",\n \"named\": true\n },\n {\n \"type\": \"type_u16\",\n \"named\": true\n },\n {\n \"type\": \"type_u32\",\n \"named\": true\n },\n {\n \"type\": \"type_u64\",\n \"named\": true\n },\n {\n \"type\": \"type_u8\",\n \"named\": true\n },\n {\n \"type\": \"type_unit\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"type_fn\",\n \"named\": true,\n \"fields\": {\n \"arguments\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"argument_list\",\n \"named\": true\n }\n ]\n },\n \"returns\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"qualified_name\",\n \"named\": true\n },\n {\n \"type\": \"type_array\",\n \"named\": true\n },\n {\n \"type\": \"type_bool\",\n \"named\": true\n },\n {\n \"type\": \"type_fn\",\n \"named\": true\n },\n {\n \"type\": \"type_i16\",\n \"named\": true\n },\n {\n \"type\": \"type_i32\",\n \"named\": true\n },\n {\n \"type\": \"type_i64\",\n \"named\": true\n },\n {\n \"type\": \"type_i8\",\n \"named\": true\n },\n {\n \"type\": \"type_qualified_name\",\n \"named\": true\n },\n {\n \"type\": \"type_u16\",\n \"named\": true\n },\n {\n \"type\": \"type_u32\",\n \"named\": true\n },\n {\n \"type\": \"type_u64\",\n \"named\": true\n },\n {\n \"type\": \"type_u8\",\n \"named\": true\n },\n {\n \"type\": \"type_unit\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"type_member_access_expression\",\n \"named\": true,\n \"fields\": {\n \"expression\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"qualified_name\",\n \"named\": true\n },\n {\n \"type\": \"type_bool\",\n \"named\": true\n },\n {\n \"type\": \"type_fn\",\n \"named\": true\n },\n {\n \"type\": \"type_i16\",\n \"named\": true\n },\n {\n \"type\": \"type_i32\",\n \"named\": true\n },\n {\n \"type\": \"type_i64\",\n \"named\": true\n },\n {\n \"type\": \"type_i8\",\n \"named\": true\n },\n {\n \"type\": \"type_member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"type_qualified_name\",\n \"named\": true\n },\n {\n \"type\": \"type_u16\",\n \"named\": true\n },\n {\n \"type\": \"type_u32\",\n \"named\": true\n },\n {\n \"type\": \"type_u64\",\n \"named\": true\n },\n {\n \"type\": \"type_u8\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"type_qualified_name\",\n \"named\": true,\n \"fields\": {\n \"alias\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"type_unit\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"unique_block\",\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 }\n },\n {\n \"type\": \"unit_literal\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"use_directive\",\n \"named\": true,\n \"fields\": {\n \"from_literal\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"string_literal\",\n \"named\": true\n }\n ]\n },\n \"imported_type\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n },\n \"segment\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"variable_definition_statement\",\n \"named\": true,\n \"fields\": {\n \"mut\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"mut_keyword\",\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 \"type\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"qualified_name\",\n \"named\": true\n },\n {\n \"type\": \"type_array\",\n \"named\": true\n },\n {\n \"type\": \"type_bool\",\n \"named\": true\n },\n {\n \"type\": \"type_fn\",\n \"named\": true\n },\n {\n \"type\": \"type_i16\",\n \"named\": true\n },\n {\n \"type\": \"type_i32\",\n \"named\": true\n },\n {\n \"type\": \"type_i64\",\n \"named\": true\n },\n {\n \"type\": \"type_i8\",\n \"named\": true\n },\n {\n \"type\": \"type_qualified_name\",\n \"named\": true\n },\n {\n \"type\": \"type_u16\",\n \"named\": true\n },\n {\n \"type\": \"type_u32\",\n \"named\": true\n },\n {\n \"type\": \"type_u64\",\n \"named\": true\n },\n {\n \"type\": \"type_u8\",\n \"named\": true\n },\n {\n \"type\": \"type_unit\",\n \"named\": true\n }\n ]\n },\n \"value\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_index_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"bool_literal\",\n \"named\": true\n },\n {\n \"type\": \"function_call_expression\",\n \"named\": true\n },\n {\n \"type\": \"generic_name\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"number_literal\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_literal\",\n \"named\": true\n },\n {\n \"type\": \"struct_expression\",\n \"named\": true\n },\n {\n \"type\": \"type_member_access_expression\",\n \"named\": true\n },\n {\n \"type\": \"unit_literal\",\n \"named\": true\n },\n {\n \"type\": \"uzumaki_keyword\",\n \"named\": true\n }\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\": \"assert\",\n \"named\": false\n },\n {\n \"type\": \"assume\",\n \"named\": false\n },\n {\n \"type\": \"break\",\n \"named\": false\n },\n {\n \"type\": \"const\",\n \"named\": false\n },\n {\n \"type\": \"constructor\",\n \"named\": false\n },\n {\n \"type\": \"else\",\n \"named\": false\n },\n {\n \"type\": \"enum\",\n \"named\": false\n },\n {\n \"type\": \"exists\",\n \"named\": false\n },\n {\n \"type\": \"external\",\n \"named\": false\n },\n {\n \"type\": \"false\",\n \"named\": false\n },\n {\n \"type\": \"fn\",\n \"named\": false\n },\n {\n \"type\": \"forall\",\n \"named\": false\n },\n {\n \"type\": \"from\",\n \"named\": false\n },\n {\n \"type\": \"if\",\n \"named\": false\n },\n {\n \"type\": \"let\",\n \"named\": false\n },\n {\n \"type\": \"loop\",\n \"named\": false\n },\n {\n \"type\": \"mut_keyword\",\n \"named\": true\n },\n {\n \"type\": \"proof\",\n \"named\": false\n },\n {\n \"type\": \"return\",\n \"named\": false\n },\n {\n \"type\": \"self\",\n \"named\": false\n },\n {\n \"type\": \"spec\",\n \"named\": false\n },\n {\n \"type\": \"struct\",\n \"named\": false\n },\n {\n \"type\": \"true\",\n \"named\": false\n },\n {\n \"type\": \"type\",\n \"named\": false\n },\n {\n \"type\": \"type_bool\",\n \"named\": true\n },\n {\n \"type\": \"type_i16\",\n \"named\": true\n },\n {\n \"type\": \"type_i32\",\n \"named\": true\n },\n {\n \"type\": \"type_i64\",\n \"named\": true\n },\n {\n \"type\": \"type_i8\",\n \"named\": true\n },\n {\n \"type\": \"type_u16\",\n \"named\": true\n },\n {\n \"type\": \"type_u32\",\n \"named\": true\n },\n {\n \"type\": \"type_u64\",\n \"named\": true\n },\n {\n \"type\": \"type_u8\",\n \"named\": true\n },\n {\n \"type\": \"unary_not\",\n \"named\": true\n },\n {\n \"type\": \"unique\",\n \"named\": false\n },\n {\n \"type\": \"use\",\n \"named\": false\n },\n {\n \"type\": \"uzumaki\",\n \"named\": false\n },\n {\n \"type\": \"uzumaki_keyword\",\n \"named\": true\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.