[ { "type": "alias_type", "named": true, "fields": { "type": { "multiple": false, "required": true, "types": [ { "type": "type", "named": true } ] } } }, { "type": "argument_list", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "expression", "named": true } ] } }, { "type": "array_literal", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "expression", "named": true } ] } }, { "type": "array_type", "named": true, "fields": { "element": { "multiple": false, "required": true, "types": [ { "type": "type", "named": true } ] }, "length": { "multiple": false, "required": false, "types": [ { "type": "expression", "named": true }, { "type": "sink", "named": true } ] }, "sentinel": { "multiple": true, "required": false, "types": [ { "type": "-", "named": false }, { "type": "character", "named": true }, { "type": "integer", "named": true } ] } } }, { "type": "assignment_statement", "named": true, "fields": { "left": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] }, "operator": { "multiple": false, "required": true, "types": [ { "type": "*=", "named": false }, { "type": "+=", "named": false }, { "type": "-=", "named": false }, { "type": "/=", "named": false }, { "type": "=", "named": false } ] }, "right": { "multiple": false, "required": true, "types": [ { "type": "block", "named": true }, { "type": "expression", "named": true }, { "type": "for_statement", "named": true }, { "type": "if_statement", "named": true }, { "type": "labeled_block", "named": true }, { "type": "match_statement", "named": true }, { "type": "while_statement", "named": true } ] } } }, { "type": "binary_expression", "named": true, "fields": { "left": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] }, "operator": { "multiple": false, "required": false, "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": "catch", "named": false }, { "type": "orelse", "named": false } ] }, "right": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] } } }, { "type": "block", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "statement", "named": true } ] } }, { "type": "boolean", "named": true, "fields": {} }, { "type": "break_statement", "named": true, "fields": { "label": { "multiple": false, "required": false, "types": [ { "type": "identifier", "named": true } ] } } }, { "type": "builtin_type", "named": true, "fields": {} }, { "type": "c_struct_type", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "record_body", "named": true } ] } }, { "type": "call_expression", "named": true, "fields": { "arguments": { "multiple": false, "required": true, "types": [ { "type": "argument_list", "named": true } ] }, "function": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] } } }, { "type": "capture_list", "named": true, "fields": { "guard": { "multiple": false, "required": false, "types": [ { "type": "expression", "named": true } ] } }, "children": { "multiple": true, "required": true, "types": [ { "type": "identifier", "named": true }, { "type": "sink", "named": true } ] } }, { "type": "catch_expression", "named": true, "fields": { "body": { "multiple": false, "required": true, "types": [ { "type": "block", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true }, { "type": "sink", "named": true } ] }, "value": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] } } }, { "type": "comptime_block", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "block", "named": true } ] } }, { "type": "constant_declaration", "named": true, "fields": { "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true }, { "type": "sink", "named": true } ] }, "type": { "multiple": false, "required": false, "types": [ { "type": "type", "named": true } ] }, "value": { "multiple": false, "required": true, "types": [ { "type": "block", "named": true }, { "type": "expression", "named": true }, { "type": "for_statement", "named": true }, { "type": "if_statement", "named": true }, { "type": "labeled_block", "named": true }, { "type": "match_statement", "named": true }, { "type": "while_statement", "named": true } ] } } }, { "type": "continue_statement", "named": true, "fields": { "label": { "multiple": false, "required": false, "types": [ { "type": "identifier", "named": true } ] } } }, { "type": "defer_statement", "named": true, "fields": { "body": { "multiple": false, "required": true, "types": [ { "type": "statement", "named": true } ] } } }, { "type": "distinct_type", "named": true, "fields": { "type": { "multiple": false, "required": true, "types": [ { "type": "type", "named": true } ] } } }, { "type": "enum_body", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "enum_member", "named": true } ] } }, { "type": "enum_literal", "named": true, "fields": { "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] } }, "children": { "multiple": false, "required": false, "types": [ { "type": "variant_payload", "named": true } ] } }, { "type": "enum_member", "named": true, "fields": { "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "value": { "multiple": false, "required": false, "types": [ { "type": "integer", "named": true } ] } } }, { "type": "enum_type", "named": true, "fields": { "backing": { "multiple": false, "required": false, "types": [ { "type": "type", "named": true } ] } }, "children": { "multiple": false, "required": true, "types": [ { "type": "enum_body", "named": true } ] } }, { "type": "expression", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "array_literal", "named": true }, { "type": "array_type", "named": true }, { "type": "binary_expression", "named": true }, { "type": "boolean", "named": true }, { "type": "builtin_type", "named": true }, { "type": "call_expression", "named": true }, { "type": "catch_expression", "named": true }, { "type": "character", "named": true }, { "type": "comptime_block", "named": true }, { "type": "enum_literal", "named": true }, { "type": "field_expression", "named": true }, { "type": "float", "named": true }, { "type": "function_literal", "named": true }, { "type": "identifier", "named": true }, { "type": "index_expression", "named": true }, { "type": "integer", "named": true }, { "type": "multiline_string", "named": true }, { "type": "none", "named": true }, { "type": "parenthesized_expression", "named": true }, { "type": "postfix_expression", "named": true }, { "type": "sink", "named": true }, { "type": "slice_expression", "named": true }, { "type": "string", "named": true }, { "type": "struct_literal", "named": true }, { "type": "struct_type", "named": true }, { "type": "unary_expression", "named": true }, { "type": "undefined", "named": true } ] } }, { "type": "expression_statement", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] } }, { "type": "field_expression", "named": true, "fields": { "field": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "value": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] } } }, { "type": "field_initializer", "named": true, "fields": { "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "value": { "multiple": false, "required": false, "types": [ { "type": "expression", "named": true } ] } } }, { "type": "for_statement", "named": true, "fields": { "body": { "multiple": false, "required": true, "types": [ { "type": "block", "named": true } ] }, "index": { "multiple": false, "required": false, "types": [ { "type": "identifier", "named": true } ] }, "item": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "iterable": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] }, "label": { "multiple": false, "required": false, "types": [ { "type": "identifier", "named": true } ] } } }, { "type": "function_declaration", "named": true, "fields": { "body": { "multiple": false, "required": false, "types": [ { "type": "block", "named": true } ] }, "error": { "multiple": false, "required": false, "types": [ { "type": "enum_type", "named": true }, { "type": "type", "named": true }, { "type": "union_type", "named": true } ] }, "kind": { "multiple": false, "required": true, "types": [ { "type": "c_func", "named": false }, { "type": "func", "named": false } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "parameters": { "multiple": false, "required": true, "types": [ { "type": "parameter_list", "named": true } ] }, "result": { "multiple": false, "required": true, "types": [ { "type": "type", "named": true } ] } } }, { "type": "function_literal", "named": true, "fields": { "body": { "multiple": false, "required": true, "types": [ { "type": "block", "named": true } ] }, "error": { "multiple": false, "required": false, "types": [ { "type": "enum_type", "named": true }, { "type": "type", "named": true }, { "type": "union_type", "named": true } ] }, "result": { "multiple": false, "required": true, "types": [ { "type": "type", "named": true } ] } }, "children": { "multiple": false, "required": true, "types": [ { "type": "parameter_list", "named": true } ] } }, { "type": "function_type", "named": true, "fields": { "error": { "multiple": false, "required": false, "types": [ { "type": "enum_type", "named": true }, { "type": "type", "named": true }, { "type": "union_type", "named": true } ] }, "result": { "multiple": false, "required": true, "types": [ { "type": "type", "named": true } ] } }, "children": { "multiple": false, "required": true, "types": [ { "type": "parameter_list", "named": true } ] } }, { "type": "global_constant_declaration", "named": true, "fields": { "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "type": { "multiple": false, "required": false, "types": [ { "type": "type", "named": true } ] }, "value": { "multiple": false, "required": true, "types": [ { "type": "block", "named": true }, { "type": "expression", "named": true }, { "type": "for_statement", "named": true }, { "type": "if_statement", "named": true }, { "type": "labeled_block", "named": true }, { "type": "match_statement", "named": true }, { "type": "while_statement", "named": true } ] } } }, { "type": "global_variable_declaration", "named": true, "fields": { "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "type": { "multiple": false, "required": false, "types": [ { "type": "type", "named": true } ] }, "value": { "multiple": false, "required": true, "types": [ { "type": "block", "named": true }, { "type": "expression", "named": true }, { "type": "for_statement", "named": true }, { "type": "if_statement", "named": true }, { "type": "labeled_block", "named": true }, { "type": "match_statement", "named": true }, { "type": "while_statement", "named": true } ] } } }, { "type": "if_statement", "named": true, "fields": { "alternative": { "multiple": false, "required": false, "types": [ { "type": "statement", "named": true } ] }, "condition": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] }, "consequence": { "multiple": false, "required": true, "types": [ { "type": "statement", "named": true } ] } }, "children": { "multiple": false, "required": false, "types": [ { "type": "capture_list", "named": true } ] } }, { "type": "import_declaration", "named": true, "fields": { "alias": { "multiple": false, "required": false, "types": [ { "type": "identifier", "named": true } ] }, "path": { "multiple": false, "required": true, "types": [ { "type": "string", "named": true } ] } } }, { "type": "index_expression", "named": true, "fields": { "index": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] }, "value": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] } } }, { "type": "initializer_list", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "field_initializer", "named": true } ] } }, { "type": "keyed_field_initializer", "named": true, "fields": { "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "value": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] } } }, { "type": "labeled_block", "named": true, "fields": { "label": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] } }, "children": { "multiple": false, "required": true, "types": [ { "type": "block", "named": true } ] } }, { "type": "match_arm", "named": true, "fields": { "body": { "multiple": false, "required": true, "types": [ { "type": "statement", "named": true } ] }, "pattern": { "multiple": true, "required": true, "types": [ { "type": ",", "named": false }, { "type": "else", "named": false }, { "type": "expression", "named": true } ] } }, "children": { "multiple": false, "required": false, "types": [ { "type": "match_capture", "named": true } ] } }, { "type": "match_capture", "named": true, "fields": { "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true }, { "type": "sink", "named": true } ] } } }, { "type": "match_statement", "named": true, "fields": { "subject": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "match_arm", "named": true } ] } }, { "type": "named_type", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "argument_list", "named": true }, { "type": "qualified_identifier", "named": true } ] } }, { "type": "optional_type", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "type", "named": true } ] } }, { "type": "parameter", "named": true, "fields": { "name": { "multiple": true, "required": true, "types": [ { "type": "identifier", "named": true }, { "type": "sink", "named": true } ] }, "type": { "multiple": false, "required": true, "types": [ { "type": "type", "named": true } ] } } }, { "type": "parameter_list", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "parameter", "named": true } ] } }, { "type": "parenthesized_expression", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] } }, { "type": "pointer_type", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "type", "named": true } ] } }, { "type": "postfix_expression", "named": true, "fields": { "operator": { "multiple": false, "required": true, "types": [ { "type": "?", "named": false }, { "type": "^", "named": false } ] }, "value": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] } } }, { "type": "qualified_identifier", "named": true, "fields": { "name": { "multiple": false, "required": false, "types": [ { "type": "identifier", "named": true } ] }, "qualifier": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] } } }, { "type": "record_body", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "record_field", "named": true } ] } }, { "type": "record_field", "named": true, "fields": { "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "type": { "multiple": false, "required": true, "types": [ { "type": "struct_type", "named": true }, { "type": "type", "named": true } ] } } }, { "type": "return_statement", "named": true, "fields": { "value": { "multiple": false, "required": true, "types": [ { "type": "block", "named": true }, { "type": "expression", "named": true }, { "type": "for_statement", "named": true }, { "type": "if_statement", "named": true }, { "type": "labeled_block", "named": true }, { "type": "match_statement", "named": true }, { "type": "while_statement", "named": true } ] } } }, { "type": "slice_expression", "named": true, "fields": { "end": { "multiple": false, "required": false, "types": [ { "type": "expression", "named": true } ] }, "start": { "multiple": false, "required": false, "types": [ { "type": "expression", "named": true } ] }, "value": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] } } }, { "type": "source_file", "named": true, "root": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "function_declaration", "named": true }, { "type": "global_constant_declaration", "named": true }, { "type": "global_variable_declaration", "named": true }, { "type": "import_declaration", "named": true }, { "type": "type_declaration", "named": true } ] } }, { "type": "statement", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "assignment_statement", "named": true }, { "type": "block", "named": true }, { "type": "break_statement", "named": true }, { "type": "constant_declaration", "named": true }, { "type": "continue_statement", "named": true }, { "type": "defer_statement", "named": true }, { "type": "expression_statement", "named": true }, { "type": "for_statement", "named": true }, { "type": "if_statement", "named": true }, { "type": "labeled_block", "named": true }, { "type": "match_statement", "named": true }, { "type": "return_statement", "named": true }, { "type": "variable_declaration", "named": true }, { "type": "while_statement", "named": true }, { "type": "yield_statement", "named": true } ] } }, { "type": "string", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "escape_sequence", "named": true }, { "type": "string_content", "named": true } ] } }, { "type": "struct_literal", "named": true, "fields": { "fields": { "multiple": false, "required": true, "types": [ { "type": "initializer_list", "named": true } ] }, "type": { "multiple": false, "required": true, "types": [ { "type": "qualified_identifier", "named": true } ] } }, "children": { "multiple": false, "required": false, "types": [ { "type": "argument_list", "named": true } ] } }, { "type": "struct_type", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "record_body", "named": true } ] } }, { "type": "type", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "array_type", "named": true }, { "type": "builtin_type", "named": true }, { "type": "function_type", "named": true }, { "type": "named_type", "named": true }, { "type": "optional_type", "named": true }, { "type": "pointer_type", "named": true } ] } }, { "type": "type_declaration", "named": true, "fields": { "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "value": { "multiple": false, "required": true, "types": [ { "type": "alias_type", "named": true }, { "type": "c_struct_type", "named": true }, { "type": "distinct_type", "named": true }, { "type": "enum_type", "named": true }, { "type": "opaque_type", "named": true }, { "type": "struct_type", "named": true }, { "type": "union_type", "named": true } ] } } }, { "type": "unary_expression", "named": true, "fields": { "operand": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] }, "operator": { "multiple": false, "required": true, "types": [ { "type": "!", "named": false }, { "type": "$", "named": false }, { "type": "&", "named": false }, { "type": "-", "named": false }, { "type": "try", "named": false } ] } } }, { "type": "union_type", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "record_body", "named": true }, { "type": "type", "named": true } ] } }, { "type": "variable_declaration", "named": true, "fields": { "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true }, { "type": "sink", "named": true } ] }, "type": { "multiple": false, "required": true, "types": [ { "type": "type", "named": true } ] }, "value": { "multiple": false, "required": true, "types": [ { "type": "block", "named": true }, { "type": "expression", "named": true }, { "type": "for_statement", "named": true }, { "type": "if_statement", "named": true }, { "type": "labeled_block", "named": true }, { "type": "match_statement", "named": true }, { "type": "while_statement", "named": true } ] } } }, { "type": "variant_payload", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "expression", "named": true }, { "type": "keyed_field_initializer", "named": true } ] } }, { "type": "while_statement", "named": true, "fields": { "body": { "multiple": false, "required": true, "types": [ { "type": "block", "named": true } ] }, "condition": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] }, "label": { "multiple": false, "required": false, "types": [ { "type": "identifier", "named": true } ] }, "update": { "multiple": true, "required": false, "types": [ { "type": "(", "named": false }, { "type": ")", "named": false }, { "type": "assignment_statement", "named": true }, { "type": "expression_statement", "named": true } ] } } }, { "type": "yield_statement", "named": true, "fields": { "label": { "multiple": false, "required": false, "types": [ { "type": "identifier", "named": true } ] }, "value": { "multiple": false, "required": true, "types": [ { "type": "block", "named": true }, { "type": "expression", "named": true }, { "type": "for_statement", "named": true }, { "type": "if_statement", "named": true }, { "type": "labeled_block", "named": true }, { "type": "match_statement", "named": true }, { "type": "while_statement", "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": "[", "named": false }, { "type": "]", "named": false }, { "type": "^", "named": false }, { "type": "alias", "named": false }, { "type": "and", "named": false }, { "type": "anyopaque", "named": false }, { "type": "bool", "named": false }, { "type": "break", "named": false }, { "type": "c_char", "named": false }, { "type": "c_double", "named": false }, { "type": "c_float", "named": false }, { "type": "c_func", "named": false }, { "type": "c_int", "named": false }, { "type": "c_long", "named": false }, { "type": "c_longdouble", "named": false }, { "type": "c_longlong", "named": false }, { "type": "c_schar", "named": false }, { "type": "c_short", "named": false }, { "type": "c_struct", "named": false }, { "type": "c_uchar", "named": false }, { "type": "c_uint", "named": false }, { "type": "c_ulong", "named": false }, { "type": "c_ulonglong", "named": false }, { "type": "c_ushort", "named": false }, { "type": "catch", "named": false }, { "type": "character", "named": true }, { "type": "comment", "named": true, "extra": true }, { "type": "continue", "named": false }, { "type": "defer", "named": false }, { "type": "distinct", "named": false }, { "type": "else", "named": false }, { "type": "enum", "named": false }, { "type": "escape_sequence", "named": true }, { "type": "f32", "named": false }, { "type": "f64", "named": false }, { "type": "false", "named": false }, { "type": "float", "named": false }, { "type": "float", "named": true }, { "type": "for", "named": false }, { "type": "func", "named": false }, { "type": "i16", "named": false }, { "type": "i32", "named": false }, { "type": "i64", "named": false }, { "type": "i8", "named": false }, { "type": "identifier", "named": true }, { "type": "if", "named": false }, { "type": "import", "named": false }, { "type": "int", "named": false }, { "type": "integer", "named": true }, { "type": "isize", "named": false }, { "type": "match", "named": false }, { "type": "multiline_string", "named": true }, { "type": "mut", "named": false }, { "type": "none", "named": true }, { "type": "opaque_type", "named": true }, { "type": "or", "named": false }, { "type": "orelse", "named": false }, { "type": "range", "named": false }, { "type": "return", "named": false }, { "type": "sink", "named": true }, { "type": "string_content", "named": true }, { "type": "struct", "named": false }, { "type": "true", "named": false }, { "type": "try", "named": false }, { "type": "u16", "named": false }, { "type": "u32", "named": false }, { "type": "u64", "named": false }, { "type": "u8", "named": false }, { "type": "undefined", "named": true }, { "type": "union", "named": false }, { "type": "usize", "named": false }, { "type": "void", "named": false }, { "type": "while", "named": false }, { "type": "yield", "named": false }, { "type": "{", "named": false }, { "type": "|", "named": false }, { "type": "}", "named": false } ]