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