[ { "type": "declaration", "named": true, "subtypes": [ { "type": "?", "named": false }, { "type": "address", "named": true }, { "type": "binary_expression", "named": true }, { "type": "bit_field_declaration", "named": true }, { "type": "build_tag", "named": true }, { "type": "call_expression", "named": true }, { "type": "cast_expression", "named": true }, { "type": "const_declaration", "named": true }, { "type": "const_type_declaration", "named": true }, { "type": "distinct_type", "named": true }, { "type": "enum_declaration", "named": true }, { "type": "foreign_block", "named": true }, { "type": "identifier", "named": true }, { "type": "import_declaration", "named": true }, { "type": "in_expression", "named": true }, { "type": "index_expression", "named": true }, { "type": "literal", "named": true }, { "type": "map_type", "named": true }, { "type": "matrix_type", "named": true }, { "type": "member_expression", "named": true }, { "type": "or_break_expression", "named": true }, { "type": "or_continue_expression", "named": true }, { "type": "or_return_expression", "named": true }, { "type": "overloaded_procedure_declaration", "named": true }, { "type": "package_declaration", "named": true }, { "type": "parenthesized_expression", "named": true }, { "type": "procedure_declaration", "named": true }, { "type": "range_expression", "named": true }, { "type": "selector_call_expression", "named": true }, { "type": "slice_expression", "named": true }, { "type": "struct_declaration", "named": true }, { "type": "ternary_expression", "named": true }, { "type": "unary_expression", "named": true }, { "type": "union_declaration", "named": true }, { "type": "var_declaration", "named": true }, { "type": "variable_declaration", "named": true }, { "type": "variadic_expression", "named": true }, { "type": "when_statement", "named": true } ] }, { "type": "expression", "named": true, "subtypes": [ { "type": "?", "named": false }, { "type": "address", "named": true }, { "type": "binary_expression", "named": true }, { "type": "call_expression", "named": true }, { "type": "cast_expression", "named": true }, { "type": "distinct_type", "named": true }, { "type": "identifier", "named": true }, { "type": "in_expression", "named": true }, { "type": "index_expression", "named": true }, { "type": "literal", "named": true }, { "type": "map_type", "named": true }, { "type": "matrix_type", "named": true }, { "type": "member_expression", "named": true }, { "type": "or_break_expression", "named": true }, { "type": "or_continue_expression", "named": true }, { "type": "or_return_expression", "named": true }, { "type": "parenthesized_expression", "named": true }, { "type": "range_expression", "named": true }, { "type": "selector_call_expression", "named": true }, { "type": "slice_expression", "named": true }, { "type": "tag", "named": true }, { "type": "ternary_expression", "named": true }, { "type": "unary_expression", "named": true }, { "type": "variadic_expression", "named": true } ] }, { "type": "literal", "named": true, "subtypes": [ { "type": "bit_set", "named": true }, { "type": "boolean", "named": true }, { "type": "character", "named": true }, { "type": "float", "named": true }, { "type": "map", "named": true }, { "type": "matrix", "named": true }, { "type": "nil", "named": true }, { "type": "number", "named": true }, { "type": "string", "named": true }, { "type": "struct", "named": true }, { "type": "uninitialized", "named": true } ] }, { "type": "statement", "named": true, "subtypes": [ { "type": "?", "named": false }, { "type": "address", "named": true }, { "type": "assignment_statement", "named": true }, { "type": "binary_expression", "named": true }, { "type": "bit_field_declaration", "named": true }, { "type": "block", "named": true }, { "type": "break_statement", "named": true }, { "type": "call_expression", "named": true }, { "type": "cast_expression", "named": true }, { "type": "const_declaration", "named": true }, { "type": "continue_statement", "named": true }, { "type": "defer_statement", "named": true }, { "type": "distinct_type", "named": true }, { "type": "enum_declaration", "named": true }, { "type": "fallthrough_statement", "named": true }, { "type": "for_statement", "named": true }, { "type": "foreign_block", "named": true }, { "type": "identifier", "named": true }, { "type": "if_statement", "named": true }, { "type": "import_declaration", "named": true }, { "type": "in_expression", "named": true }, { "type": "index_expression", "named": true }, { "type": "label_statement", "named": true }, { "type": "literal", "named": true }, { "type": "map_type", "named": true }, { "type": "matrix_type", "named": true }, { "type": "member_expression", "named": true }, { "type": "or_break_expression", "named": true }, { "type": "or_continue_expression", "named": true }, { "type": "or_return_expression", "named": true }, { "type": "overloaded_procedure_declaration", "named": true }, { "type": "parenthesized_expression", "named": true }, { "type": "procedure_declaration", "named": true }, { "type": "range_expression", "named": true }, { "type": "return_statement", "named": true }, { "type": "selector_call_expression", "named": true }, { "type": "slice_expression", "named": true }, { "type": "struct_declaration", "named": true }, { "type": "switch_statement", "named": true }, { "type": "tagged_block", "named": true }, { "type": "ternary_expression", "named": true }, { "type": "unary_expression", "named": true }, { "type": "union_declaration", "named": true }, { "type": "update_statement", "named": true }, { "type": "using_statement", "named": true }, { "type": "var_declaration", "named": true }, { "type": "variadic_expression", "named": true }, { "type": "when_statement", "named": true } ] }, { "type": "address", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] } }, { "type": "array_type", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "expression", "named": true }, { "type": "type", "named": true } ] } }, { "type": "assignment_statement", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "attributes", "named": true }, { "type": "expression", "named": true }, { "type": "procedure", "named": true } ] } }, { "type": "attribute", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "expression", "named": true } ] } }, { "type": "attributes", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "attribute", "named": true } ] } }, { "type": "binary_expression", "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 }, { "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": "or_else", "named": false }, { "type": "|", "named": false }, { "type": "||", "named": false }, { "type": "~", "named": false }, { "type": "~=", "named": false } ] }, "right": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] } } }, { "type": "bit_field_declaration", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "attributes", "named": true }, { "type": "expression", "named": true }, { "type": "type", "named": true } ] } }, { "type": "bit_field_type", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "expression", "named": true }, { "type": "type", "named": true } ] } }, { "type": "bit_set", "named": true, "fields": { "underlying_type": { "multiple": false, "required": false, "types": [ { "type": "type", "named": true } ] } }, "children": { "multiple": true, "required": true, "types": [ { "type": "expression", "named": true } ] } }, { "type": "bit_set_type", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "constant_type", "named": true }, { "type": "expression", "named": true }, { "type": "type", "named": true } ] } }, { "type": "block", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "statement", "named": true }, { "type": "tag", "named": true } ] } }, { "type": "boolean", "named": true, "fields": {} }, { "type": "break_statement", "named": true, "fields": {}, "children": { "multiple": false, "required": false, "types": [ { "type": "identifier", "named": true } ] } }, { "type": "build_tag", "named": true, "fields": {} }, { "type": "call_expression", "named": true, "fields": { "argument": { "multiple": true, "required": false, "types": [ { "type": "array_type", "named": true }, { "type": "expression", "named": true }, { "type": "pointer_type", "named": true }, { "type": "procedure", "named": true }, { "type": "struct_type", "named": true } ] }, "function": { "multiple": true, "required": true, "types": [ { "type": "?", "named": false }, { "type": "address", "named": true }, { "type": "binary_expression", "named": true }, { "type": "call_expression", "named": true }, { "type": "cast_expression", "named": true }, { "type": "distinct_type", "named": true }, { "type": "identifier", "named": true }, { "type": "in_expression", "named": true }, { "type": "index_expression", "named": true }, { "type": "literal", "named": true }, { "type": "map_type", "named": true }, { "type": "matrix_type", "named": true }, { "type": "member_expression", "named": true }, { "type": "or_break_expression", "named": true }, { "type": "or_continue_expression", "named": true }, { "type": "or_return_expression", "named": true }, { "type": "parenthesized_expression", "named": true }, { "type": "range_expression", "named": true }, { "type": "selector_call_expression", "named": true }, { "type": "slice_expression", "named": true }, { "type": "tag", "named": true }, { "type": "ternary_expression", "named": true }, { "type": "unary_expression", "named": true }, { "type": "variadic_expression", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "expression", "named": true } ] } }, { "type": "calling_convention", "named": true, "fields": {} }, { "type": "cast_expression", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "array_type", "named": true }, { "type": "expression", "named": true }, { "type": "pointer_type", "named": true }, { "type": "procedure_type", "named": true }, { "type": "type", "named": true } ] } }, { "type": "character", "named": true, "fields": {}, "children": { "multiple": false, "required": false, "types": [ { "type": "escape_sequence", "named": true } ] } }, { "type": "conditional_type", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "expression", "named": true }, { "type": "type", "named": true } ] } }, { "type": "const_declaration", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "array_type", "named": true }, { "type": "attributes", "named": true }, { "type": "bit_set_type", "named": true }, { "type": "expression", "named": true }, { "type": "pointer_type", "named": true }, { "type": "type", "named": true } ] } }, { "type": "const_type_declaration", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "attributes", "named": true }, { "type": "expression", "named": true }, { "type": "type", "named": true } ] } }, { "type": "constant_type", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "type", "named": true } ] } }, { "type": "continue_statement", "named": true, "fields": {}, "children": { "multiple": false, "required": false, "types": [ { "type": "identifier", "named": true } ] } }, { "type": "default_parameter", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "expression", "named": true } ] } }, { "type": "default_type", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "expression", "named": true } ] } }, { "type": "defer_statement", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "statement", "named": true } ] } }, { "type": "distinct_type", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "tag", "named": true }, { "type": "type", "named": true } ] } }, { "type": "else_clause", "named": true, "fields": { "consequence": { "multiple": false, "required": true, "types": [ { "type": "statement", "named": true } ] } } }, { "type": "else_if_clause", "named": true, "fields": { "condition": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] }, "consequence": { "multiple": false, "required": true, "types": [ { "type": "statement", "named": true } ] }, "initializer": { "multiple": false, "required": false, "types": [ { "type": "assignment_statement", "named": true } ] } } }, { "type": "else_when_clause", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "block", "named": true }, { "type": "expression", "named": true } ] } }, { "type": "empty_type", "named": true, "fields": {} }, { "type": "enum_declaration", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "attributes", "named": true }, { "type": "expression", "named": true }, { "type": "type", "named": true } ] } }, { "type": "enum_type", "named": true, "fields": { "underlying_type": { "multiple": false, "required": false, "types": [ { "type": "type", "named": true } ] } }, "children": { "multiple": true, "required": true, "types": [ { "type": "expression", "named": true } ] } }, { "type": "field", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "identifier", "named": true }, { "type": "string", "named": true }, { "type": "tag", "named": true }, { "type": "type", "named": true } ] } }, { "type": "field_identifier", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "identifier", "named": true } ] } }, { "type": "field_type", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "identifier", "named": true } ] } }, { "type": "for_statement", "named": true, "fields": { "condition": { "multiple": false, "required": false, "types": [ { "type": "expression", "named": true } ] }, "consequence": { "multiple": true, "required": true, "types": [ { "type": "do", "named": false }, { "type": "statement", "named": true } ] }, "initializer": { "multiple": false, "required": false, "types": [ { "type": "assignment_statement", "named": true }, { "type": "update_statement", "named": true }, { "type": "var_declaration", "named": true } ] }, "post": { "multiple": false, "required": false, "types": [ { "type": "assignment_statement", "named": true }, { "type": "update_statement", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "expression", "named": true } ] } }, { "type": "foreign_block", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "attributes", "named": true }, { "type": "block", "named": true }, { "type": "identifier", "named": true } ] } }, { "type": "if_statement", "named": true, "fields": { "condition": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] }, "consequence": { "multiple": false, "required": true, "types": [ { "type": "statement", "named": true } ] }, "initializer": { "multiple": false, "required": false, "types": [ { "type": "assignment_statement", "named": true }, { "type": "update_statement", "named": true }, { "type": "var_declaration", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "else_clause", "named": true }, { "type": "else_if_clause", "named": true }, { "type": "tag", "named": true } ] } }, { "type": "import_declaration", "named": true, "fields": { "alias": { "multiple": false, "required": false, "types": [ { "type": "identifier", "named": true } ] } }, "children": { "multiple": true, "required": true, "types": [ { "type": "attributes", "named": true }, { "type": "identifier", "named": true }, { "type": "string", "named": true } ] } }, { "type": "in_expression", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "expression", "named": true } ] } }, { "type": "index_expression", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "expression", "named": true } ] } }, { "type": "label_statement", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "block", "named": true }, { "type": "expression", "named": true }, { "type": "for_statement", "named": true }, { "type": "if_statement", "named": true }, { "type": "switch_statement", "named": true } ] } }, { "type": "map", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "expression", "named": true }, { "type": "type", "named": true } ] } }, { "type": "map_type", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "type", "named": true } ] } }, { "type": "matrix", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "expression", "named": true }, { "type": "type", "named": true } ] } }, { "type": "matrix_type", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "constant_type", "named": true }, { "type": "expression", "named": true }, { "type": "type", "named": true } ] } }, { "type": "member_expression", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "expression", "named": true } ] } }, { "type": "named_type", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "identifier", "named": true }, { "type": "literal", "named": true }, { "type": "type", "named": true } ] } }, { "type": "or_break_expression", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "expression", "named": true } ] } }, { "type": "or_continue_expression", "named": true, "fields": { "label": { "multiple": false, "required": false, "types": [ { "type": "identifier", "named": true } ] } }, "children": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] } }, { "type": "or_return_expression", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] } }, { "type": "overloaded_procedure_declaration", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "attributes", "named": true }, { "type": "expression", "named": true } ] } }, { "type": "package_declaration", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] } }, { "type": "parameter", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "array_type", "named": true }, { "type": "expression", "named": true }, { "type": "field_type", "named": true }, { "type": "pointer_type", "named": true }, { "type": "procedure_type", "named": true }, { "type": "type", "named": true }, { "type": "variadic_type", "named": true } ] } }, { "type": "parameters", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "default_parameter", "named": true }, { "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": "polymorphic_parameters", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "identifier", "named": true }, { "type": "type", "named": true } ] } }, { "type": "polymorphic_type", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "literal", "named": true }, { "type": "type", "named": true } ] } }, { "type": "procedure", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "block", "named": true }, { "type": "calling_convention", "named": true }, { "type": "named_type", "named": true }, { "type": "parameters", "named": true }, { "type": "tag", "named": true }, { "type": "type", "named": true }, { "type": "uninitialized", "named": true }, { "type": "where_clause", "named": true } ] } }, { "type": "procedure_declaration", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "attributes", "named": true }, { "type": "expression", "named": true }, { "type": "procedure", "named": true } ] } }, { "type": "procedure_type", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "block", "named": true }, { "type": "calling_convention", "named": true }, { "type": "named_type", "named": true }, { "type": "parameters", "named": true }, { "type": "tag", "named": true }, { "type": "type", "named": true }, { "type": "uninitialized", "named": true }, { "type": "where_clause", "named": true } ] } }, { "type": "range_expression", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "expression", "named": true } ] } }, { "type": "return_statement", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "expression", "named": true }, { "type": "procedure_type", "named": true } ] } }, { "type": "selector_call_expression", "named": true, "fields": { "function": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] } }, "children": { "multiple": false, "required": true, "types": [ { "type": "call_expression", "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 } ] } }, "children": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] } }, { "type": "source_file", "named": true, "root": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "declaration", "named": true } ] } }, { "type": "specialized_type", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "type", "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", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "expression", "named": true }, { "type": "field_identifier", "named": true }, { "type": "struct_field", "named": true }, { "type": "type", "named": true } ] } }, { "type": "struct_declaration", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "attributes", "named": true }, { "type": "expression", "named": true }, { "type": "field", "named": true }, { "type": "number", "named": true }, { "type": "polymorphic_parameters", "named": true }, { "type": "where_clause", "named": true } ] } }, { "type": "struct_field", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "expression", "named": true }, { "type": "procedure_type", "named": true } ] } }, { "type": "struct_member", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "identifier", "named": true }, { "type": "string", "named": true }, { "type": "tag", "named": true }, { "type": "type", "named": true } ] } }, { "type": "struct_type", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "number", "named": true }, { "type": "polymorphic_parameters", "named": true }, { "type": "struct_member", "named": true }, { "type": "tag", "named": true } ] } }, { "type": "switch_case", "named": true, "fields": { "condition": { "multiple": true, "required": false, "types": [ { "type": "array_type", "named": true }, { "type": "expression", "named": true }, { "type": "pointer_type", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "statement", "named": true }, { "type": "tag", "named": true } ] } }, { "type": "switch_statement", "named": true, "fields": { "condition": { "multiple": true, "required": false, "types": [ { "type": ";", "named": false }, { "type": "assignment_statement", "named": true }, { "type": "expression", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "switch_case", "named": true } ] } }, { "type": "tagged_block", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "block", "named": true }, { "type": "tag", "named": true } ] } }, { "type": "ternary_expression", "named": true, "fields": { "alternative": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] }, "condition": { "multiple": false, "required": true, "types": [ { "type": "?", "named": false }, { "type": "address", "named": true }, { "type": "binary_expression", "named": true }, { "type": "call_expression", "named": true }, { "type": "cast_expression", "named": true }, { "type": "distinct_type", "named": true }, { "type": "identifier", "named": true }, { "type": "in_expression", "named": true }, { "type": "index_expression", "named": true }, { "type": "literal", "named": true }, { "type": "map_type", "named": true }, { "type": "matrix_type", "named": true }, { "type": "member_expression", "named": true }, { "type": "or_break_expression", "named": true }, { "type": "or_continue_expression", "named": true }, { "type": "or_return_expression", "named": true }, { "type": "parenthesized_expression", "named": true }, { "type": "range_expression", "named": true }, { "type": "selector_call_expression", "named": true }, { "type": "slice_expression", "named": true }, { "type": "ternary_expression", "named": true }, { "type": "unary_expression", "named": true }, { "type": "variadic_expression", "named": true } ] }, "consequence": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] } } }, { "type": "tuple_type", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "default_type", "named": true }, { "type": "named_type", "named": true }, { "type": "type", "named": true } ] } }, { "type": "type", "named": true, "fields": {}, "children": { "multiple": false, "required": false, "types": [ { "type": "array_type", "named": true }, { "type": "bit_field_type", "named": true }, { "type": "bit_set_type", "named": true }, { "type": "conditional_type", "named": true }, { "type": "constant_type", "named": true }, { "type": "distinct_type", "named": true }, { "type": "empty_type", "named": true }, { "type": "enum_type", "named": true }, { "type": "field_type", "named": true }, { "type": "identifier", "named": true }, { "type": "map_type", "named": true }, { "type": "matrix_type", "named": true }, { "type": "pointer_type", "named": true }, { "type": "polymorphic_type", "named": true }, { "type": "procedure_type", "named": true }, { "type": "specialized_type", "named": true }, { "type": "struct_type", "named": true }, { "type": "tuple_type", "named": true }, { "type": "union_type", "named": true }, { "type": "variadic_type", "named": true } ] } }, { "type": "unary_expression", "named": true, "fields": { "argument": { "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 } ] } } }, { "type": "union_declaration", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "attributes", "named": true }, { "type": "expression", "named": true }, { "type": "polymorphic_parameters", "named": true }, { "type": "type", "named": true } ] } }, { "type": "union_type", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "type", "named": true } ] } }, { "type": "update_statement", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "expression", "named": true } ] } }, { "type": "using_statement", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] } }, { "type": "var_declaration", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "attributes", "named": true }, { "type": "expression", "named": true }, { "type": "type", "named": true } ] } }, { "type": "variable_declaration", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "attributes", "named": true }, { "type": "expression", "named": true }, { "type": "procedure", "named": true } ] } }, { "type": "variadic_expression", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] } }, { "type": "variadic_type", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "type", "named": true } ] } }, { "type": "when_statement", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "else_clause", "named": true }, { "type": "else_when_clause", "named": true }, { "type": "expression", "named": true }, { "type": "statement", "named": true } ] } }, { "type": "where_clause", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "expression", "named": true } ] } }, { "type": "!", "named": false }, { "type": "!=", "named": false }, { "type": "\"", "named": false }, { "type": "\"c\"", "named": false }, { "type": "\"cdecl\"", "named": false }, { "type": "\"contextless\"", "named": false }, { "type": "\"fast\"", "named": false }, { "type": "\"fastcall\"", "named": false }, { "type": "\"none\"", "named": false }, { "type": "\"odin\"", "named": false }, { "type": "\"std\"", "named": false }, { "type": "\"stdcall\"", "named": false }, { "type": "\"system\"", "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": "<", "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": "auto_cast", "named": false }, { "type": "bit_field", "named": false }, { "type": "bit_set", "named": false }, { "type": "block_comment", "named": true }, { "type": "break", "named": false }, { "type": "case", "named": false }, { "type": "cast", "named": false }, { "type": "comment", "named": true }, { "type": "continue", "named": false }, { "type": "defer", "named": false }, { "type": "distinct", "named": false }, { "type": "do", "named": false }, { "type": "dynamic", "named": false }, { "type": "else", "named": false }, { "type": "enum", "named": false }, { "type": "escape_sequence", "named": true }, { "type": "fallthrough_statement", "named": true }, { "type": "false", "named": false }, { "type": "float", "named": true }, { "type": "for", "named": false }, { "type": "foreign", "named": false }, { "type": "identifier", "named": true }, { "type": "if", "named": false }, { "type": "import", "named": false }, { "type": "in", "named": false }, { "type": "map", "named": false }, { "type": "matrix", "named": false }, { "type": "nil", "named": true }, { "type": "not_in", "named": false }, { "type": "number", "named": true }, { "type": "or_break", "named": false }, { "type": "or_continue", "named": false }, { "type": "or_else", "named": false }, { "type": "or_return", "named": false }, { "type": "package", "named": false }, { "type": "proc", "named": false }, { "type": "return", "named": false }, { "type": "string_content", "named": true }, { "type": "struct", "named": false }, { "type": "switch", "named": false }, { "type": "tag", "named": true }, { "type": "transmute", "named": false }, { "type": "true", "named": false }, { "type": "uninitialized", "named": true }, { "type": "union", "named": false }, { "type": "using", "named": false }, { "type": "when", "named": false }, { "type": "where", "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 } ]