[ { "type": "_abstract_declarator", "named": true, "subtypes": [ { "type": "abstract_array_declarator", "named": true }, { "type": "abstract_function_declarator", "named": true }, { "type": "abstract_parenthesized_declarator", "named": true }, { "type": "abstract_pointer_declarator", "named": true }, { "type": "block_abstract_declarator", "named": true } ] }, { "type": "_declarator", "named": true, "subtypes": [ { "type": "array_declarator", "named": true }, { "type": "block_declarator", "named": true }, { "type": "function_declarator", "named": true }, { "type": "identifier", "named": true }, { "type": "parenthesized_declarator", "named": true }, { "type": "pointer_declarator", "named": true } ] }, { "type": "_expression", "named": true, "subtypes": [ { "type": "NO", "named": true }, { "type": "YES", "named": true }, { "type": "array_expression", "named": true }, { "type": "assignment_expression", "named": true }, { "type": "available_expression", "named": true }, { "type": "binary_expression", "named": true }, { "type": "block_expression", "named": true }, { "type": "boolean_expression", "named": true }, { "type": "call_expression", "named": true }, { "type": "cast_expression", "named": true }, { "type": "char_literal", "named": true }, { "type": "compound_literal_expression", "named": true }, { "type": "concatenated_string", "named": true }, { "type": "conditional_expression", "named": true }, { "type": "dictionary_expression", "named": true }, { "type": "encode_expression", "named": true }, { "type": "false", "named": true }, { "type": "field_expression", "named": true }, { "type": "identifier", "named": true }, { "type": "message_expression", "named": true }, { "type": "nil", "named": true }, { "type": "null", "named": true }, { "type": "number_expression", "named": true }, { "type": "number_literal", "named": true }, { "type": "object_expression", "named": true }, { "type": "parenthesized_expression", "named": true }, { "type": "pointer_expression", "named": true }, { "type": "protocol_expression", "named": true }, { "type": "selector_expression", "named": true }, { "type": "self", "named": true }, { "type": "sizeof_expression", "named": true }, { "type": "statement_expression", "named": true }, { "type": "string_expression", "named": true }, { "type": "string_literal", "named": true }, { "type": "subscript_expression", "named": true }, { "type": "super", "named": true }, { "type": "true", "named": true }, { "type": "unary_expression", "named": true }, { "type": "update_expression", "named": true }, { "type": "va_arg_expression", "named": true } ] }, { "type": "_field_declarator", "named": true, "subtypes": [ { "type": "array_declarator", "named": true }, { "type": "block_declarator", "named": true }, { "type": "field_identifier", "named": true }, { "type": "function_declarator", "named": true }, { "type": "parenthesized_declarator", "named": true }, { "type": "pointer_declarator", "named": true } ] }, { "type": "_statement", "named": true, "subtypes": [ { "type": "autoreleasepool_statement", "named": true }, { "type": "break_statement", "named": true }, { "type": "case_statement", "named": true }, { "type": "compound_statement", "named": true }, { "type": "continue_statement", "named": true }, { "type": "do_statement", "named": true }, { "type": "expression_statement", "named": true }, { "type": "for_in_statement", "named": true }, { "type": "for_statement", "named": true }, { "type": "goto_statement", "named": true }, { "type": "if_statement", "named": true }, { "type": "labeled_statement", "named": true }, { "type": "return_statement", "named": true }, { "type": "switch_statement", "named": true }, { "type": "synchronized_statement", "named": true }, { "type": "throw_statement", "named": true }, { "type": "try_catch_statement", "named": true }, { "type": "while_statement", "named": true } ] }, { "type": "_type_declarator", "named": true, "subtypes": [ { "type": "array_declarator", "named": true }, { "type": "block_declarator", "named": true }, { "type": "function_declarator", "named": true }, { "type": "parenthesized_declarator", "named": true }, { "type": "pointer_declarator", "named": true }, { "type": "type_identifier", "named": true } ] }, { "type": "abstract_array_declarator", "named": true, "fields": { "declarator": { "multiple": false, "required": false, "types": [ { "type": "_abstract_declarator", "named": true } ] }, "size": { "multiple": false, "required": false, "types": [ { "type": "*", "named": false }, { "type": "_expression", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "type_qualifier", "named": true } ] } }, { "type": "abstract_function_declarator", "named": true, "fields": { "declarator": { "multiple": false, "required": false, "types": [ { "type": "_abstract_declarator", "named": true } ] }, "parameters": { "multiple": false, "required": true, "types": [ { "type": "parameter_list", "named": true } ] } } }, { "type": "abstract_parenthesized_declarator", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "_abstract_declarator", "named": true } ] } }, { "type": "abstract_pointer_declarator", "named": true, "fields": { "declarator": { "multiple": false, "required": false, "types": [ { "type": "_abstract_declarator", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "type_qualifier", "named": true } ] } }, { "type": "argument_list", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "_expression", "named": true }, { "type": "preproc_defined", "named": true }, { "type": "preproc_has_include", "named": true } ] } }, { "type": "array_declarator", "named": true, "fields": { "declarator": { "multiple": false, "required": true, "types": [ { "type": "_declarator", "named": true }, { "type": "_field_declarator", "named": true }, { "type": "_type_declarator", "named": true } ] }, "size": { "multiple": false, "required": false, "types": [ { "type": "*", "named": false }, { "type": "_expression", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "type_qualifier", "named": true } ] } }, { "type": "array_expression", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "_expression", "named": true } ] } }, { "type": "assignment_expression", "named": true, "fields": { "left": { "multiple": false, "required": true, "types": [ { "type": "call_expression", "named": true }, { "type": "field_expression", "named": true }, { "type": "identifier", "named": true }, { "type": "parenthesized_expression", "named": true }, { "type": "pointer_expression", "named": true }, { "type": "self", "named": true }, { "type": "subscript_expression", "named": true } ] }, "right": { "multiple": false, "required": true, "types": [ { "type": "_expression", "named": true } ] } } }, { "type": "atomic_specifier", "named": true, "fields": { "operator": { "multiple": false, "required": true, "types": [ { "type": "_Atomic", "named": false } ] }, "type": { "multiple": false, "required": true, "types": [ { "type": "type_descriptor", "named": true } ] } } }, { "type": "attribute_specifier", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "argument_list", "named": true }, { "type": "availability_attribute_specifier", "named": true }, { "type": "method_attribute_specifier", "named": true }, { "type": "method_variadic_arguments_attribute_specifier", "named": true } ] } }, { "type": "autoreleasepool_statement", "named": true, "fields": { "consequence": { "multiple": false, "required": true, "types": [ { "type": "_statement", "named": true } ] } } }, { "type": "availability_attribute_specifier", "named": true, "fields": { "message": { "multiple": true, "required": false, "types": [ { "type": "string_literal", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "platform_version", "named": true } ] } }, { "type": "available_expression", "named": true, "fields": { "platform": { "multiple": true, "required": true, "types": [ { "type": "identifier", "named": true } ] } } }, { "type": "binary_expression", "named": true, "fields": { "left": { "multiple": false, "required": true, "types": [ { "type": "_expression", "named": true }, { "type": "preproc_defined", "named": true }, { "type": "preproc_has_include", "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 } ] }, "right": { "multiple": false, "required": true, "types": [ { "type": "_expression", "named": true }, { "type": "preproc_defined", "named": true }, { "type": "preproc_has_include", "named": true } ] } } }, { "type": "bitfield_clause", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "_expression", "named": true } ] } }, { "type": "block_abstract_declarator", "named": true, "fields": { "parameters": { "multiple": false, "required": true, "types": [ { "type": "parameter_list", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "type_qualifier", "named": true } ] } }, { "type": "block_declarator", "named": true, "fields": { "declarator": { "multiple": false, "required": false, "types": [ { "type": "identifier", "named": true } ] }, "parameters": { "multiple": false, "required": true, "types": [ { "type": "parameter_list", "named": true } ] }, "return_type": { "multiple": false, "required": false, "types": [ { "type": "block_declarator", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "type_qualifier", "named": true } ] } }, { "type": "block_expression", "named": true, "fields": { "declarator": { "multiple": false, "required": false, "types": [ { "type": "type_descriptor", "named": true }, { "type": "type_qualifier", "named": true } ] }, "parameters": { "multiple": false, "required": false, "types": [ { "type": "parameter_list", "named": true } ] } }, "children": { "multiple": false, "required": true, "types": [ { "type": "compound_statement", "named": true } ] } }, { "type": "boolean_expression", "named": true, "fields": {}, "children": { "multiple": false, "required": false, "types": [ { "type": "NO", "named": true }, { "type": "YES", "named": true } ] } }, { "type": "break_statement", "named": true, "fields": {} }, { "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": "case_statement", "named": true, "fields": { "value": { "multiple": false, "required": false, "types": [ { "type": "_expression", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "autoreleasepool_statement", "named": true }, { "type": "break_statement", "named": true }, { "type": "compound_statement", "named": true }, { "type": "continue_statement", "named": true }, { "type": "declaration", "named": true }, { "type": "do_statement", "named": true }, { "type": "expression_statement", "named": true }, { "type": "for_in_statement", "named": true }, { "type": "for_statement", "named": true }, { "type": "goto_statement", "named": true }, { "type": "if_statement", "named": true }, { "type": "labeled_statement", "named": true }, { "type": "return_statement", "named": true }, { "type": "switch_statement", "named": true }, { "type": "synchronized_statement", "named": true }, { "type": "throw_statement", "named": true }, { "type": "try_catch_statement", "named": true }, { "type": "type_definition", "named": true }, { "type": "while_statement", "named": true } ] } }, { "type": "cast_expression", "named": true, "fields": { "type": { "multiple": false, "required": true, "types": [ { "type": "block_abstract_declarator", "named": true }, { "type": "type_descriptor", "named": true } ] }, "value": { "multiple": false, "required": true, "types": [ { "type": "_expression", "named": true } ] } } }, { "type": "category_implementation", "named": true, "fields": { "category": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "attribute_specifier", "named": true }, { "type": "declaration", "named": true }, { "type": "dynamic_definition", "named": true }, { "type": "function_definition", "named": true }, { "type": "method_definition", "named": true }, { "type": "preproc_def", "named": true }, { "type": "preproc_function_def", "named": true }, { "type": "synthesize_definition", "named": true }, { "type": "type_definition", "named": true } ] } }, { "type": "category_interface", "named": true, "fields": { "category": { "multiple": false, "required": false, "types": [ { "type": "identifier", "named": true } ] }, "name": { "multiple": false, "required": false, "types": [ { "type": "identifier", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "BOOL", "named": true }, { "type": "Class", "named": true }, { "type": "IMP", "named": true }, { "type": "SEL", "named": true }, { "type": "atomic_specifier", "named": true }, { "type": "auto", "named": true }, { "type": "declaration", "named": true }, { "type": "enum_specifier", "named": true }, { "type": "field_declaration", "named": true }, { "type": "generic_type_specifier", "named": true }, { "type": "generics_type_reference", "named": true }, { "type": "id", "named": true }, { "type": "instancetype", "named": true }, { "type": "macro_type_specifier", "named": true }, { "type": "method_declaration", "named": true }, { "type": "ns_enum_specifier", "named": true }, { "type": "optional", "named": true }, { "type": "package", "named": true }, { "type": "parameterized_class_type_arguments", "named": true }, { "type": "preproc_def", "named": true }, { "type": "preproc_function_def", "named": true }, { "type": "primitive_type", "named": true }, { "type": "private", "named": true }, { "type": "property_declaration", "named": true }, { "type": "protected", "named": true }, { "type": "protocol_qualifiers", "named": true }, { "type": "public", "named": true }, { "type": "required", "named": true }, { "type": "sized_type_specifier", "named": true }, { "type": "struct_specifier", "named": true }, { "type": "type_definition", "named": true }, { "type": "type_identifier", "named": true }, { "type": "typeof_specifier", "named": true }, { "type": "union_specifier", "named": true } ] } }, { "type": "char_literal", "named": true, "fields": {}, "children": { "multiple": false, "required": false, "types": [ { "type": "escape_sequence", "named": true } ] } }, { "type": "class_forward_declaration", "named": true, "fields": { "name": { "multiple": true, "required": true, "types": [ { "type": "identifier", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "parameterized_class_type_arguments", "named": true }, { "type": "protocol_qualifiers", "named": true } ] } }, { "type": "class_implementation", "named": true, "fields": { "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "attribute_specifier", "named": true }, { "type": "declaration", "named": true }, { "type": "dynamic_definition", "named": true }, { "type": "field_declaration", "named": true }, { "type": "function_definition", "named": true }, { "type": "method_definition", "named": true }, { "type": "package", "named": true }, { "type": "preproc_def", "named": true }, { "type": "preproc_function_def", "named": true }, { "type": "private", "named": true }, { "type": "protected", "named": true }, { "type": "public", "named": true }, { "type": "superclass_reference", "named": true }, { "type": "synthesize_definition", "named": true }, { "type": "type_definition", "named": true } ] } }, { "type": "class_interface", "named": true, "fields": { "name": { "multiple": false, "required": false, "types": [ { "type": "identifier", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "BOOL", "named": true }, { "type": "Class", "named": true }, { "type": "IMP", "named": true }, { "type": "SEL", "named": true }, { "type": "atomic_specifier", "named": true }, { "type": "attribute_specifier", "named": true }, { "type": "auto", "named": true }, { "type": "class_interface_attribute_sepcifier", "named": true }, { "type": "declaration", "named": true }, { "type": "enum_specifier", "named": true }, { "type": "field_declaration", "named": true }, { "type": "generic_type_specifier", "named": true }, { "type": "generics_type_reference", "named": true }, { "type": "id", "named": true }, { "type": "instancetype", "named": true }, { "type": "macro_type_specifier", "named": true }, { "type": "method_declaration", "named": true }, { "type": "ns_enum_specifier", "named": true }, { "type": "optional", "named": true }, { "type": "package", "named": true }, { "type": "parameterized_class_type_arguments", "named": true }, { "type": "preproc_def", "named": true }, { "type": "preproc_function_def", "named": true }, { "type": "primitive_type", "named": true }, { "type": "private", "named": true }, { "type": "property_declaration", "named": true }, { "type": "protected", "named": true }, { "type": "protocol_qualifiers", "named": true }, { "type": "public", "named": true }, { "type": "required", "named": true }, { "type": "sized_type_specifier", "named": true }, { "type": "struct_specifier", "named": true }, { "type": "superclass_reference", "named": true }, { "type": "swift_name_attribute_sepcifier", "named": true }, { "type": "type_definition", "named": true }, { "type": "type_identifier", "named": true }, { "type": "typeof_specifier", "named": true }, { "type": "union_specifier", "named": true } ] } }, { "type": "class_scope", "named": true, "fields": {} }, { "type": "comma_expression", "named": true, "fields": { "left": { "multiple": false, "required": true, "types": [ { "type": "_expression", "named": true } ] }, "right": { "multiple": false, "required": true, "types": [ { "type": "_expression", "named": true }, { "type": "comma_expression", "named": true } ] } } }, { "type": "compatibility_alias_declaration", "named": true, "fields": { "alias_name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "class_name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] } } }, { "type": "compound_literal_expression", "named": true, "fields": { "type": { "multiple": false, "required": true, "types": [ { "type": "type_descriptor", "named": true } ] }, "value": { "multiple": false, "required": true, "types": [ { "type": "initializer_list", "named": true } ] } } }, { "type": "compound_statement", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "BOOL", "named": true }, { "type": "Class", "named": true }, { "type": "IMP", "named": true }, { "type": "SEL", "named": true }, { "type": "_statement", "named": true }, { "type": "atomic_specifier", "named": true }, { "type": "auto", "named": true }, { "type": "category_implementation", "named": true }, { "type": "category_interface", "named": true }, { "type": "class_forward_declaration", "named": true }, { "type": "class_implementation", "named": true }, { "type": "class_interface", "named": true }, { "type": "compatibility_alias_declaration", "named": true }, { "type": "declaration", "named": true }, { "type": "enum_specifier", "named": true }, { "type": "function_definition", "named": true }, { "type": "generic_type_specifier", "named": true }, { "type": "id", "named": true }, { "type": "instancetype", "named": true }, { "type": "linkage_specification", "named": true }, { "type": "macro_type_specifier", "named": true }, { "type": "module_import", "named": true }, { "type": "ns_enum_specifier", "named": true }, { "type": "preproc_def", "named": true }, { "type": "preproc_function_def", "named": true }, { "type": "preproc_if", "named": true }, { "type": "preproc_ifdef", "named": true }, { "type": "preproc_import", "named": true }, { "type": "preproc_include", "named": true }, { "type": "primitive_type", "named": true }, { "type": "protocol_declaration", "named": true }, { "type": "protocol_forward_declaration", "named": true }, { "type": "sized_type_specifier", "named": true }, { "type": "struct_specifier", "named": true }, { "type": "type_definition", "named": true }, { "type": "type_identifier", "named": true }, { "type": "typeof_specifier", "named": true }, { "type": "union_specifier", "named": true } ] } }, { "type": "concatenated_string", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "string_literal", "named": true } ] } }, { "type": "conditional_expression", "named": true, "fields": { "alternative": { "multiple": false, "required": true, "types": [ { "type": "_expression", "named": true } ] }, "condition": { "multiple": false, "required": true, "types": [ { "type": "_expression", "named": true } ] }, "consequence": { "multiple": false, "required": false, "types": [ { "type": "_expression", "named": true } ] } } }, { "type": "continue_statement", "named": true, "fields": {} }, { "type": "declaration", "named": true, "fields": { "declarator": { "multiple": true, "required": true, "types": [ { "type": "_declarator", "named": true }, { "type": "init_declarator", "named": true } ] }, "type": { "multiple": false, "required": true, "types": [ { "type": "BOOL", "named": true }, { "type": "Class", "named": true }, { "type": "IMP", "named": true }, { "type": "SEL", "named": true }, { "type": "atomic_specifier", "named": true }, { "type": "auto", "named": true }, { "type": "enum_specifier", "named": true }, { "type": "generic_type_specifier", "named": true }, { "type": "id", "named": true }, { "type": "instancetype", "named": true }, { "type": "macro_type_specifier", "named": true }, { "type": "ns_enum_specifier", "named": true }, { "type": "primitive_type", "named": true }, { "type": "sized_type_specifier", "named": true }, { "type": "struct_specifier", "named": true }, { "type": "type_identifier", "named": true }, { "type": "typeof_specifier", "named": true }, { "type": "union_specifier", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "attribute_specifier", "named": true }, { "type": "ms_declspec_modifier", "named": true }, { "type": "storage_class_specifier", "named": true }, { "type": "swift_name_attribute_sepcifier", "named": true }, { "type": "type_qualifier", "named": true } ] } }, { "type": "declaration_list", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "BOOL", "named": true }, { "type": "Class", "named": true }, { "type": "IMP", "named": true }, { "type": "SEL", "named": true }, { "type": "_statement", "named": true }, { "type": "atomic_specifier", "named": true }, { "type": "auto", "named": true }, { "type": "category_implementation", "named": true }, { "type": "category_interface", "named": true }, { "type": "class_forward_declaration", "named": true }, { "type": "class_implementation", "named": true }, { "type": "class_interface", "named": true }, { "type": "compatibility_alias_declaration", "named": true }, { "type": "declaration", "named": true }, { "type": "enum_specifier", "named": true }, { "type": "function_definition", "named": true }, { "type": "generic_type_specifier", "named": true }, { "type": "id", "named": true }, { "type": "instancetype", "named": true }, { "type": "linkage_specification", "named": true }, { "type": "macro_type_specifier", "named": true }, { "type": "module_import", "named": true }, { "type": "ns_enum_specifier", "named": true }, { "type": "preproc_def", "named": true }, { "type": "preproc_function_def", "named": true }, { "type": "preproc_if", "named": true }, { "type": "preproc_ifdef", "named": true }, { "type": "preproc_import", "named": true }, { "type": "preproc_include", "named": true }, { "type": "primitive_type", "named": true }, { "type": "protocol_declaration", "named": true }, { "type": "protocol_forward_declaration", "named": true }, { "type": "sized_type_specifier", "named": true }, { "type": "struct_specifier", "named": true }, { "type": "type_definition", "named": true }, { "type": "type_identifier", "named": true }, { "type": "typeof_specifier", "named": true }, { "type": "union_specifier", "named": true } ] } }, { "type": "dictionary_expression", "named": true, "fields": { "key": { "multiple": true, "required": false, "types": [ { "type": "_expression", "named": true } ] }, "value": { "multiple": true, "required": false, "types": [ { "type": "_expression", "named": true } ] } } }, { "type": "do_statement", "named": true, "fields": { "body": { "multiple": false, "required": true, "types": [ { "type": "_statement", "named": true } ] }, "condition": { "multiple": false, "required": true, "types": [ { "type": "parenthesized_expression", "named": true } ] } } }, { "type": "dynamic_definition", "named": true, "fields": { "property": { "multiple": true, "required": true, "types": [ { "type": "identifier", "named": true } ] } } }, { "type": "encode_expression", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "type_descriptor", "named": true } ] } }, { "type": "enum_specifier", "named": true, "fields": { "body": { "multiple": false, "required": false, "types": [ { "type": "enumerator_list", "named": true } ] }, "name": { "multiple": false, "required": false, "types": [ { "type": "type_identifier", "named": true } ] }, "superclass": { "multiple": true, "required": false, "types": [ { "type": ":", "named": false }, { "type": "BOOL", "named": true }, { "type": "Class", "named": true }, { "type": "IMP", "named": true }, { "type": "SEL", "named": true }, { "type": "atomic_specifier", "named": true }, { "type": "auto", "named": true }, { "type": "enum_specifier", "named": true }, { "type": "generic_type_specifier", "named": true }, { "type": "id", "named": true }, { "type": "instancetype", "named": true }, { "type": "macro_type_specifier", "named": true }, { "type": "ns_enum_specifier", "named": true }, { "type": "primitive_type", "named": true }, { "type": "sized_type_specifier", "named": true }, { "type": "struct_specifier", "named": true }, { "type": "type_identifier", "named": true }, { "type": "typeof_specifier", "named": true }, { "type": "union_specifier", "named": true } ] } } }, { "type": "enumerator", "named": true, "fields": { "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "value": { "multiple": false, "required": false, "types": [ { "type": "_expression", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "attribute_specifier", "named": true }, { "type": "swift_name_attribute_sepcifier", "named": true } ] } }, { "type": "enumerator_list", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "enumerator", "named": true } ] } }, { "type": "expression_statement", "named": true, "fields": {}, "children": { "multiple": false, "required": false, "types": [ { "type": "_expression", "named": true }, { "type": "comma_expression", "named": true } ] } }, { "type": "field_declaration", "named": true, "fields": { "declarator": { "multiple": true, "required": false, "types": [ { "type": "_field_declarator", "named": true } ] }, "type": { "multiple": false, "required": true, "types": [ { "type": "BOOL", "named": true }, { "type": "Class", "named": true }, { "type": "IMP", "named": true }, { "type": "SEL", "named": true }, { "type": "atomic_specifier", "named": true }, { "type": "auto", "named": true }, { "type": "enum_specifier", "named": true }, { "type": "generic_type_specifier", "named": true }, { "type": "id", "named": true }, { "type": "instancetype", "named": true }, { "type": "macro_type_specifier", "named": true }, { "type": "ns_enum_specifier", "named": true }, { "type": "primitive_type", "named": true }, { "type": "sized_type_specifier", "named": true }, { "type": "struct_specifier", "named": true }, { "type": "type_identifier", "named": true }, { "type": "typeof_specifier", "named": true }, { "type": "union_specifier", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "attribute_specifier", "named": true }, { "type": "bitfield_clause", "named": true }, { "type": "ms_declspec_modifier", "named": true }, { "type": "storage_class_specifier", "named": true }, { "type": "type_qualifier", "named": true } ] } }, { "type": "field_declaration_list", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "field_declaration", "named": true }, { "type": "preproc_call", "named": true }, { "type": "preproc_def", "named": true }, { "type": "preproc_function_def", "named": true }, { "type": "preproc_if", "named": true }, { "type": "preproc_ifdef", "named": true } ] } }, { "type": "field_designator", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "field_identifier", "named": true } ] } }, { "type": "field_expression", "named": true, "fields": { "argument": { "multiple": false, "required": true, "types": [ { "type": "_expression", "named": true } ] }, "field": { "multiple": false, "required": true, "types": [ { "type": "field_identifier", "named": true } ] } } }, { "type": "for_in_statement", "named": true, "fields": { "declarator": { "multiple": false, "required": false, "types": [ { "type": "_abstract_declarator", "named": true }, { "type": "_declarator", "named": true } ] }, "initializer": { "multiple": true, "required": true, "types": [ { "type": "BOOL", "named": true }, { "type": "Class", "named": true }, { "type": "IMP", "named": true }, { "type": "NS_NOESCAPE", "named": false }, { "type": "SEL", "named": true }, { "type": "_abstract_declarator", "named": true }, { "type": "_declarator", "named": true }, { "type": "atomic_specifier", "named": true }, { "type": "attribute_specifier", "named": true }, { "type": "auto", "named": true }, { "type": "enum_specifier", "named": true }, { "type": "generic_type_specifier", "named": true }, { "type": "id", "named": true }, { "type": "instancetype", "named": true }, { "type": "macro_type_specifier", "named": true }, { "type": "ms_declspec_modifier", "named": true }, { "type": "nonnull", "named": true }, { "type": "ns_enum_specifier", "named": true }, { "type": "nullable", "named": true }, { "type": "primitive_type", "named": true }, { "type": "sized_type_specifier", "named": true }, { "type": "storage_class_specifier", "named": true }, { "type": "struct_specifier", "named": true }, { "type": "type_identifier", "named": true }, { "type": "type_qualifier", "named": true }, { "type": "typeof_specifier", "named": true }, { "type": "union_specifier", "named": true } ] }, "loop": { "multiple": false, "required": true, "types": [ { "type": "_expression", "named": true } ] }, "type": { "multiple": false, "required": true, "types": [ { "type": "BOOL", "named": true }, { "type": "Class", "named": true }, { "type": "IMP", "named": true }, { "type": "SEL", "named": true }, { "type": "atomic_specifier", "named": true }, { "type": "auto", "named": true }, { "type": "enum_specifier", "named": true }, { "type": "generic_type_specifier", "named": true }, { "type": "id", "named": true }, { "type": "instancetype", "named": true }, { "type": "macro_type_specifier", "named": true }, { "type": "ns_enum_specifier", "named": true }, { "type": "primitive_type", "named": true }, { "type": "sized_type_specifier", "named": true }, { "type": "struct_specifier", "named": true }, { "type": "type_identifier", "named": true }, { "type": "typeof_specifier", "named": true }, { "type": "union_specifier", "named": true } ] } }, "children": { "multiple": false, "required": true, "types": [ { "type": "_statement", "named": true } ] } }, { "type": "for_statement", "named": true, "fields": { "condition": { "multiple": false, "required": false, "types": [ { "type": "_expression", "named": true } ] }, "initializer": { "multiple": false, "required": false, "types": [ { "type": "_expression", "named": true }, { "type": "comma_expression", "named": true }, { "type": "declaration", "named": true } ] }, "update": { "multiple": false, "required": false, "types": [ { "type": "_expression", "named": true }, { "type": "comma_expression", "named": true } ] } }, "children": { "multiple": false, "required": true, "types": [ { "type": "_statement", "named": true } ] } }, { "type": "function_declarator", "named": true, "fields": { "declarator": { "multiple": false, "required": true, "types": [ { "type": "_declarator", "named": true }, { "type": "_field_declarator", "named": true }, { "type": "_type_declarator", "named": true } ] }, "parameters": { "multiple": false, "required": true, "types": [ { "type": "parameter_list", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "attribute_specifier", "named": true } ] } }, { "type": "function_definition", "named": true, "fields": { "body": { "multiple": false, "required": true, "types": [ { "type": "compound_statement", "named": true } ] }, "declarator": { "multiple": false, "required": true, "types": [ { "type": "_declarator", "named": true } ] }, "type": { "multiple": false, "required": true, "types": [ { "type": "BOOL", "named": true }, { "type": "Class", "named": true }, { "type": "IMP", "named": true }, { "type": "SEL", "named": true }, { "type": "atomic_specifier", "named": true }, { "type": "auto", "named": true }, { "type": "enum_specifier", "named": true }, { "type": "generic_type_specifier", "named": true }, { "type": "id", "named": true }, { "type": "instancetype", "named": true }, { "type": "macro_type_specifier", "named": true }, { "type": "ns_enum_specifier", "named": true }, { "type": "primitive_type", "named": true }, { "type": "sized_type_specifier", "named": true }, { "type": "struct_specifier", "named": true }, { "type": "type_identifier", "named": true }, { "type": "typeof_specifier", "named": true }, { "type": "union_specifier", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "attribute_specifier", "named": true }, { "type": "ms_call_modifier", "named": true }, { "type": "ms_declspec_modifier", "named": true }, { "type": "storage_class_specifier", "named": true }, { "type": "type_qualifier", "named": true } ] } }, { "type": "generic_type_references", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "type_descriptor", "named": true } ] } }, { "type": "generic_type_specifier", "named": true, "fields": { "class_name": { "multiple": false, "required": true, "types": [ { "type": "Class", "named": true }, { "type": "id", "named": true }, { "type": "type_identifier", "named": true } ] }, "type_reference": { "multiple": true, "required": true, "types": [ { "type": "generic_type_references", "named": true }, { "type": "protocol_qualifiers", "named": true } ] } } }, { "type": "generics_type_reference", "named": true, "fields": { "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "BOOL", "named": true }, { "type": "Class", "named": true }, { "type": "IMP", "named": true }, { "type": "SEL", "named": true }, { "type": "atomic_specifier", "named": true }, { "type": "auto", "named": true }, { "type": "enum_specifier", "named": true }, { "type": "generic_type_specifier", "named": true }, { "type": "id", "named": true }, { "type": "instancetype", "named": true }, { "type": "macro_type_specifier", "named": true }, { "type": "ns_enum_specifier", "named": true }, { "type": "primitive_type", "named": true }, { "type": "sized_type_specifier", "named": true }, { "type": "struct_specifier", "named": true }, { "type": "type_identifier", "named": true }, { "type": "typeof_specifier", "named": true }, { "type": "union_specifier", "named": true } ] } }, { "type": "getter", "named": true, "fields": { "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] } } }, { "type": "goto_statement", "named": true, "fields": { "label": { "multiple": false, "required": true, "types": [ { "type": "statement_identifier", "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": "parenthesized_expression", "named": true } ] }, "consequence": { "multiple": false, "required": true, "types": [ { "type": "_statement", "named": true } ] } } }, { "type": "init_declarator", "named": true, "fields": { "declarator": { "multiple": false, "required": true, "types": [ { "type": "_declarator", "named": true } ] }, "value": { "multiple": false, "required": true, "types": [ { "type": "_expression", "named": true }, { "type": "initializer_list", "named": true } ] } } }, { "type": "initializer_list", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "_expression", "named": true }, { "type": "initializer_list", "named": true }, { "type": "initializer_pair", "named": true } ] } }, { "type": "initializer_pair", "named": true, "fields": { "designator": { "multiple": true, "required": true, "types": [ { "type": "field_designator", "named": true }, { "type": "subscript_designator", "named": true } ] }, "value": { "multiple": false, "required": true, "types": [ { "type": "_expression", "named": true }, { "type": "initializer_list", "named": true } ] } } }, { "type": "instance_scope", "named": true, "fields": {} }, { "type": "keyword_argument", "named": true, "fields": { "argument": { "multiple": true, "required": true, "types": [ { "type": ",", "named": false }, { "type": "_expression", "named": true } ] }, "keyword": { "multiple": false, "required": false, "types": [ { "type": "identifier", "named": true } ] } } }, { "type": "keyword_argument_list", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "keyword_argument", "named": true } ] } }, { "type": "keyword_declarator", "named": true, "fields": { "declarator": { "multiple": false, "required": false, "types": [ { "type": "_abstract_declarator", "named": true }, { "type": "_declarator", "named": true } ] }, "keyword": { "multiple": false, "required": false, "types": [ { "type": "identifier", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "type": { "multiple": true, "required": false, "types": [ { "type": "(", "named": false }, { "type": ")", "named": false }, { "type": "BOOL", "named": true }, { "type": "Class", "named": true }, { "type": "IMP", "named": true }, { "type": "NS_NOESCAPE", "named": false }, { "type": "SEL", "named": true }, { "type": "_abstract_declarator", "named": true }, { "type": "_declarator", "named": true }, { "type": "atomic_specifier", "named": true }, { "type": "attribute_specifier", "named": true }, { "type": "auto", "named": true }, { "type": "enum_specifier", "named": true }, { "type": "generic_type_specifier", "named": true }, { "type": "id", "named": true }, { "type": "instancetype", "named": true }, { "type": "macro_type_specifier", "named": true }, { "type": "ms_declspec_modifier", "named": true }, { "type": "nonnull", "named": true }, { "type": "ns_enum_specifier", "named": true }, { "type": "nullable", "named": true }, { "type": "primitive_type", "named": true }, { "type": "sized_type_specifier", "named": true }, { "type": "storage_class_specifier", "named": true }, { "type": "struct_specifier", "named": true }, { "type": "type_identifier", "named": true }, { "type": "type_qualifier", "named": true }, { "type": "typeof_specifier", "named": true }, { "type": "union_specifier", "named": true } ] } } }, { "type": "keyword_selector", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "keyword_declarator", "named": true } ] } }, { "type": "labeled_statement", "named": true, "fields": { "label": { "multiple": false, "required": true, "types": [ { "type": "statement_identifier", "named": true } ] } }, "children": { "multiple": false, "required": true, "types": [ { "type": "_statement", "named": true } ] } }, { "type": "linkage_specification", "named": true, "fields": { "body": { "multiple": false, "required": true, "types": [ { "type": "declaration", "named": true }, { "type": "declaration_list", "named": true }, { "type": "function_definition", "named": true } ] }, "value": { "multiple": false, "required": true, "types": [ { "type": "string_literal", "named": true } ] } } }, { "type": "macro_type_specifier", "named": true, "fields": { "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "type": { "multiple": false, "required": true, "types": [ { "type": "type_descriptor", "named": true } ] } } }, { "type": "message_expression", "named": true, "fields": { "receiver": { "multiple": false, "required": true, "types": [ { "type": "BOOL", "named": true }, { "type": "Class", "named": true }, { "type": "IMP", "named": true }, { "type": "SEL", "named": true }, { "type": "_expression", "named": true }, { "type": "atomic_specifier", "named": true }, { "type": "auto", "named": true }, { "type": "enum_specifier", "named": true }, { "type": "generic_type_specifier", "named": true }, { "type": "id", "named": true }, { "type": "instancetype", "named": true }, { "type": "macro_type_specifier", "named": true }, { "type": "ns_enum_specifier", "named": true }, { "type": "primitive_type", "named": true }, { "type": "sized_type_specifier", "named": true }, { "type": "struct_specifier", "named": true }, { "type": "type_identifier", "named": true }, { "type": "typeof_specifier", "named": true }, { "type": "union_specifier", "named": true } ] }, "selector": { "multiple": true, "required": true, "types": [ { "type": "identifier", "named": true }, { "type": "keyword_argument_list", "named": true } ] } } }, { "type": "method_declaration", "named": true, "fields": { "declarator": { "multiple": false, "required": false, "types": [ { "type": "_abstract_declarator", "named": true }, { "type": "_declarator", "named": true } ] }, "return_type": { "multiple": true, "required": false, "types": [ { "type": "(", "named": false }, { "type": ")", "named": false }, { "type": "BOOL", "named": true }, { "type": "Class", "named": true }, { "type": "IMP", "named": true }, { "type": "NS_NOESCAPE", "named": false }, { "type": "SEL", "named": true }, { "type": "_abstract_declarator", "named": true }, { "type": "_declarator", "named": true }, { "type": "atomic_specifier", "named": true }, { "type": "attribute_specifier", "named": true }, { "type": "auto", "named": true }, { "type": "enum_specifier", "named": true }, { "type": "generic_type_specifier", "named": true }, { "type": "id", "named": true }, { "type": "instancetype", "named": true }, { "type": "macro_type_specifier", "named": true }, { "type": "ms_declspec_modifier", "named": true }, { "type": "nonnull", "named": true }, { "type": "ns_enum_specifier", "named": true }, { "type": "nullable", "named": true }, { "type": "primitive_type", "named": true }, { "type": "sized_type_specifier", "named": true }, { "type": "storage_class_specifier", "named": true }, { "type": "struct_specifier", "named": true }, { "type": "type_identifier", "named": true }, { "type": "type_qualifier", "named": true }, { "type": "typeof_specifier", "named": true }, { "type": "union_specifier", "named": true } ] }, "scope": { "multiple": false, "required": true, "types": [ { "type": "class_scope", "named": true }, { "type": "instance_scope", "named": true } ] }, "selector": { "multiple": true, "required": true, "types": [ { "type": ",", "named": false }, { "type": "...", "named": false }, { "type": "identifier", "named": true }, { "type": "keyword_selector", "named": true } ] }, "type": { "multiple": false, "required": false, "types": [ { "type": "BOOL", "named": true }, { "type": "Class", "named": true }, { "type": "IMP", "named": true }, { "type": "SEL", "named": true }, { "type": "atomic_specifier", "named": true }, { "type": "auto", "named": true }, { "type": "enum_specifier", "named": true }, { "type": "generic_type_specifier", "named": true }, { "type": "id", "named": true }, { "type": "instancetype", "named": true }, { "type": "macro_type_specifier", "named": true }, { "type": "ns_enum_specifier", "named": true }, { "type": "primitive_type", "named": true }, { "type": "sized_type_specifier", "named": true }, { "type": "struct_specifier", "named": true }, { "type": "type_identifier", "named": true }, { "type": "typeof_specifier", "named": true }, { "type": "union_specifier", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "attribute_specifier", "named": true }, { "type": "swift_name_attribute_sepcifier", "named": true } ] } }, { "type": "method_definition", "named": true, "fields": { "body": { "multiple": false, "required": true, "types": [ { "type": "compound_statement", "named": true } ] }, "declarator": { "multiple": false, "required": false, "types": [ { "type": "_abstract_declarator", "named": true }, { "type": "_declarator", "named": true } ] }, "return_type": { "multiple": true, "required": false, "types": [ { "type": "(", "named": false }, { "type": ")", "named": false }, { "type": "BOOL", "named": true }, { "type": "Class", "named": true }, { "type": "IMP", "named": true }, { "type": "NS_NOESCAPE", "named": false }, { "type": "SEL", "named": true }, { "type": "_abstract_declarator", "named": true }, { "type": "_declarator", "named": true }, { "type": "atomic_specifier", "named": true }, { "type": "attribute_specifier", "named": true }, { "type": "auto", "named": true }, { "type": "enum_specifier", "named": true }, { "type": "generic_type_specifier", "named": true }, { "type": "id", "named": true }, { "type": "instancetype", "named": true }, { "type": "macro_type_specifier", "named": true }, { "type": "ms_declspec_modifier", "named": true }, { "type": "nonnull", "named": true }, { "type": "ns_enum_specifier", "named": true }, { "type": "nullable", "named": true }, { "type": "primitive_type", "named": true }, { "type": "sized_type_specifier", "named": true }, { "type": "storage_class_specifier", "named": true }, { "type": "struct_specifier", "named": true }, { "type": "type_identifier", "named": true }, { "type": "type_qualifier", "named": true }, { "type": "typeof_specifier", "named": true }, { "type": "union_specifier", "named": true } ] }, "scope": { "multiple": false, "required": true, "types": [ { "type": "class_scope", "named": true }, { "type": "instance_scope", "named": true } ] }, "selector": { "multiple": true, "required": true, "types": [ { "type": ",", "named": false }, { "type": "...", "named": false }, { "type": "identifier", "named": true }, { "type": "keyword_selector", "named": true } ] }, "type": { "multiple": false, "required": false, "types": [ { "type": "BOOL", "named": true }, { "type": "Class", "named": true }, { "type": "IMP", "named": true }, { "type": "SEL", "named": true }, { "type": "atomic_specifier", "named": true }, { "type": "auto", "named": true }, { "type": "enum_specifier", "named": true }, { "type": "generic_type_specifier", "named": true }, { "type": "id", "named": true }, { "type": "instancetype", "named": true }, { "type": "macro_type_specifier", "named": true }, { "type": "ns_enum_specifier", "named": true }, { "type": "primitive_type", "named": true }, { "type": "sized_type_specifier", "named": true }, { "type": "struct_specifier", "named": true }, { "type": "type_identifier", "named": true }, { "type": "typeof_specifier", "named": true }, { "type": "union_specifier", "named": true } ] } }, "children": { "multiple": false, "required": false, "types": [ { "type": "attribute_specifier", "named": true } ] } }, { "type": "method_variadic_arguments_attribute_specifier", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "number_literal", "named": true } ] } }, { "type": "module_import", "named": true, "fields": { "module": { "multiple": false, "required": true, "types": [ { "type": "module_string", "named": true } ] } } }, { "type": "ms_based_modifier", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "argument_list", "named": true } ] } }, { "type": "ms_call_modifier", "named": true, "fields": {} }, { "type": "ms_declspec_modifier", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] } }, { "type": "ms_pointer_modifier", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "ms_restrict_modifier", "named": true }, { "type": "ms_signed_ptr_modifier", "named": true }, { "type": "ms_unaligned_ptr_modifier", "named": true }, { "type": "ms_unsigned_ptr_modifier", "named": true } ] } }, { "type": "ms_unaligned_ptr_modifier", "named": true, "fields": {} }, { "type": "ns_enum_specifier", "named": true, "fields": { "body": { "multiple": false, "required": false, "types": [ { "type": "enumerator_list", "named": true } ] }, "name": { "multiple": false, "required": false, "types": [ { "type": "type_identifier", "named": true } ] }, "type": { "multiple": false, "required": true, "types": [ { "type": "BOOL", "named": true }, { "type": "Class", "named": true }, { "type": "IMP", "named": true }, { "type": "SEL", "named": true }, { "type": "atomic_specifier", "named": true }, { "type": "auto", "named": true }, { "type": "enum_specifier", "named": true }, { "type": "generic_type_specifier", "named": true }, { "type": "id", "named": true }, { "type": "instancetype", "named": true }, { "type": "macro_type_specifier", "named": true }, { "type": "ns_enum_specifier", "named": true }, { "type": "primitive_type", "named": true }, { "type": "sized_type_specifier", "named": true }, { "type": "struct_specifier", "named": true }, { "type": "type_identifier", "named": true }, { "type": "typeof_specifier", "named": true }, { "type": "union_specifier", "named": true } ] } } }, { "type": "number_expression", "named": true, "fields": {} }, { "type": "object_expression", "named": true, "fields": {}, "children": { "multiple": false, "required": false, "types": [ { "type": "_expression", "named": true } ] } }, { "type": "parameter_declaration", "named": true, "fields": { "declarator": { "multiple": false, "required": false, "types": [ { "type": "_abstract_declarator", "named": true }, { "type": "_declarator", "named": true } ] }, "type": { "multiple": false, "required": true, "types": [ { "type": "BOOL", "named": true }, { "type": "Class", "named": true }, { "type": "IMP", "named": true }, { "type": "SEL", "named": true }, { "type": "atomic_specifier", "named": true }, { "type": "auto", "named": true }, { "type": "enum_specifier", "named": true }, { "type": "generic_type_specifier", "named": true }, { "type": "id", "named": true }, { "type": "instancetype", "named": true }, { "type": "macro_type_specifier", "named": true }, { "type": "ns_enum_specifier", "named": true }, { "type": "primitive_type", "named": true }, { "type": "sized_type_specifier", "named": true }, { "type": "struct_specifier", "named": true }, { "type": "type_identifier", "named": true }, { "type": "typeof_specifier", "named": true }, { "type": "union_specifier", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "attribute_specifier", "named": true }, { "type": "ms_declspec_modifier", "named": true }, { "type": "storage_class_specifier", "named": true }, { "type": "type_qualifier", "named": true } ] } }, { "type": "parameter_list", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "parameter_declaration", "named": true } ] } }, { "type": "parameterized_class_type_arguments", "named": true, "fields": { "type": { "multiple": true, "required": true, "types": [ { "type": "identifier", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "type_descriptor", "named": true } ] } }, { "type": "parenthesized_declarator", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "_declarator", "named": true }, { "type": "_field_declarator", "named": true }, { "type": "_type_declarator", "named": true } ] } }, { "type": "parenthesized_expression", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "_expression", "named": true }, { "type": "comma_expression", "named": true }, { "type": "preproc_defined", "named": true }, { "type": "preproc_has_include", "named": true } ] } }, { "type": "platform", "named": true, "fields": {} }, { "type": "platform_version", "named": true, "fields": { "platform": { "multiple": false, "required": false, "types": [ { "type": "platform", "named": true } ] }, "version": { "multiple": true, "required": false, "types": [ { "type": ",", "named": false }, { "type": "identifier", "named": true }, { "type": "number_literal", "named": true } ] } } }, { "type": "pointer_declarator", "named": true, "fields": { "declarator": { "multiple": false, "required": true, "types": [ { "type": "_declarator", "named": true }, { "type": "_field_declarator", "named": true }, { "type": "_type_declarator", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "ms_based_modifier", "named": true }, { "type": "ms_pointer_modifier", "named": true }, { "type": "type_qualifier", "named": true } ] } }, { "type": "pointer_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": "preproc_call", "named": true, "fields": { "argument": { "multiple": false, "required": false, "types": [ { "type": "preproc_arg", "named": true } ] }, "directive": { "multiple": false, "required": true, "types": [ { "type": "preproc_directive", "named": true } ] } } }, { "type": "preproc_def", "named": true, "fields": { "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "value": { "multiple": false, "required": false, "types": [ { "type": "preproc_arg", "named": true } ] } } }, { "type": "preproc_defined", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] } }, { "type": "preproc_elif", "named": true, "fields": { "alternative": { "multiple": false, "required": false, "types": [ { "type": "preproc_elif", "named": true }, { "type": "preproc_else", "named": true } ] }, "condition": { "multiple": false, "required": true, "types": [ { "type": "binary_expression", "named": true }, { "type": "call_expression", "named": true }, { "type": "char_literal", "named": true }, { "type": "identifier", "named": true }, { "type": "number_literal", "named": true }, { "type": "parenthesized_expression", "named": true }, { "type": "preproc_defined", "named": true }, { "type": "preproc_has_include", "named": true }, { "type": "unary_expression", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "BOOL", "named": true }, { "type": "Class", "named": true }, { "type": "IMP", "named": true }, { "type": "SEL", "named": true }, { "type": "_statement", "named": true }, { "type": "atomic_specifier", "named": true }, { "type": "auto", "named": true }, { "type": "category_implementation", "named": true }, { "type": "category_interface", "named": true }, { "type": "class_forward_declaration", "named": true }, { "type": "class_implementation", "named": true }, { "type": "class_interface", "named": true }, { "type": "compatibility_alias_declaration", "named": true }, { "type": "declaration", "named": true }, { "type": "enum_specifier", "named": true }, { "type": "field_declaration", "named": true }, { "type": "function_definition", "named": true }, { "type": "generic_type_specifier", "named": true }, { "type": "id", "named": true }, { "type": "instancetype", "named": true }, { "type": "linkage_specification", "named": true }, { "type": "macro_type_specifier", "named": true }, { "type": "module_import", "named": true }, { "type": "ns_enum_specifier", "named": true }, { "type": "preproc_call", "named": true }, { "type": "preproc_def", "named": true }, { "type": "preproc_function_def", "named": true }, { "type": "preproc_if", "named": true }, { "type": "preproc_ifdef", "named": true }, { "type": "preproc_import", "named": true }, { "type": "preproc_include", "named": true }, { "type": "primitive_type", "named": true }, { "type": "protocol_declaration", "named": true }, { "type": "protocol_forward_declaration", "named": true }, { "type": "sized_type_specifier", "named": true }, { "type": "struct_specifier", "named": true }, { "type": "type_definition", "named": true }, { "type": "type_identifier", "named": true }, { "type": "typeof_specifier", "named": true }, { "type": "union_specifier", "named": true } ] } }, { "type": "preproc_else", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "BOOL", "named": true }, { "type": "Class", "named": true }, { "type": "IMP", "named": true }, { "type": "SEL", "named": true }, { "type": "_statement", "named": true }, { "type": "atomic_specifier", "named": true }, { "type": "auto", "named": true }, { "type": "category_implementation", "named": true }, { "type": "category_interface", "named": true }, { "type": "class_forward_declaration", "named": true }, { "type": "class_implementation", "named": true }, { "type": "class_interface", "named": true }, { "type": "compatibility_alias_declaration", "named": true }, { "type": "declaration", "named": true }, { "type": "enum_specifier", "named": true }, { "type": "field_declaration", "named": true }, { "type": "function_definition", "named": true }, { "type": "generic_type_specifier", "named": true }, { "type": "id", "named": true }, { "type": "instancetype", "named": true }, { "type": "linkage_specification", "named": true }, { "type": "macro_type_specifier", "named": true }, { "type": "module_import", "named": true }, { "type": "ns_enum_specifier", "named": true }, { "type": "preproc_call", "named": true }, { "type": "preproc_def", "named": true }, { "type": "preproc_function_def", "named": true }, { "type": "preproc_if", "named": true }, { "type": "preproc_ifdef", "named": true }, { "type": "preproc_import", "named": true }, { "type": "preproc_include", "named": true }, { "type": "primitive_type", "named": true }, { "type": "protocol_declaration", "named": true }, { "type": "protocol_forward_declaration", "named": true }, { "type": "sized_type_specifier", "named": true }, { "type": "struct_specifier", "named": true }, { "type": "type_definition", "named": true }, { "type": "type_identifier", "named": true }, { "type": "typeof_specifier", "named": true }, { "type": "union_specifier", "named": true } ] } }, { "type": "preproc_function_def", "named": true, "fields": { "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "parameters": { "multiple": false, "required": true, "types": [ { "type": "preproc_params", "named": true } ] }, "value": { "multiple": false, "required": false, "types": [ { "type": "preproc_arg", "named": true } ] } } }, { "type": "preproc_has_include", "named": true, "fields": { "path": { "multiple": false, "required": true, "types": [ { "type": "module_string", "named": true }, { "type": "string_literal", "named": true }, { "type": "system_lib_string", "named": true } ] } } }, { "type": "preproc_if", "named": true, "fields": { "alternative": { "multiple": false, "required": false, "types": [ { "type": "preproc_elif", "named": true }, { "type": "preproc_else", "named": true } ] }, "condition": { "multiple": false, "required": true, "types": [ { "type": "binary_expression", "named": true }, { "type": "call_expression", "named": true }, { "type": "char_literal", "named": true }, { "type": "identifier", "named": true }, { "type": "number_literal", "named": true }, { "type": "parenthesized_expression", "named": true }, { "type": "preproc_defined", "named": true }, { "type": "preproc_has_include", "named": true }, { "type": "unary_expression", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "BOOL", "named": true }, { "type": "Class", "named": true }, { "type": "IMP", "named": true }, { "type": "SEL", "named": true }, { "type": "_statement", "named": true }, { "type": "atomic_specifier", "named": true }, { "type": "auto", "named": true }, { "type": "category_implementation", "named": true }, { "type": "category_interface", "named": true }, { "type": "class_forward_declaration", "named": true }, { "type": "class_implementation", "named": true }, { "type": "class_interface", "named": true }, { "type": "compatibility_alias_declaration", "named": true }, { "type": "declaration", "named": true }, { "type": "enum_specifier", "named": true }, { "type": "field_declaration", "named": true }, { "type": "function_definition", "named": true }, { "type": "generic_type_specifier", "named": true }, { "type": "id", "named": true }, { "type": "instancetype", "named": true }, { "type": "linkage_specification", "named": true }, { "type": "macro_type_specifier", "named": true }, { "type": "module_import", "named": true }, { "type": "ns_enum_specifier", "named": true }, { "type": "preproc_call", "named": true }, { "type": "preproc_def", "named": true }, { "type": "preproc_function_def", "named": true }, { "type": "preproc_if", "named": true }, { "type": "preproc_ifdef", "named": true }, { "type": "preproc_import", "named": true }, { "type": "preproc_include", "named": true }, { "type": "primitive_type", "named": true }, { "type": "protocol_declaration", "named": true }, { "type": "protocol_forward_declaration", "named": true }, { "type": "sized_type_specifier", "named": true }, { "type": "struct_specifier", "named": true }, { "type": "type_definition", "named": true }, { "type": "type_identifier", "named": true }, { "type": "typeof_specifier", "named": true }, { "type": "union_specifier", "named": true } ] } }, { "type": "preproc_ifdef", "named": true, "fields": { "alternative": { "multiple": false, "required": false, "types": [ { "type": "preproc_elif", "named": true }, { "type": "preproc_else", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "BOOL", "named": true }, { "type": "Class", "named": true }, { "type": "IMP", "named": true }, { "type": "SEL", "named": true }, { "type": "_statement", "named": true }, { "type": "atomic_specifier", "named": true }, { "type": "auto", "named": true }, { "type": "category_implementation", "named": true }, { "type": "category_interface", "named": true }, { "type": "class_forward_declaration", "named": true }, { "type": "class_implementation", "named": true }, { "type": "class_interface", "named": true }, { "type": "compatibility_alias_declaration", "named": true }, { "type": "declaration", "named": true }, { "type": "enum_specifier", "named": true }, { "type": "field_declaration", "named": true }, { "type": "function_definition", "named": true }, { "type": "generic_type_specifier", "named": true }, { "type": "id", "named": true }, { "type": "instancetype", "named": true }, { "type": "linkage_specification", "named": true }, { "type": "macro_type_specifier", "named": true }, { "type": "module_import", "named": true }, { "type": "ns_enum_specifier", "named": true }, { "type": "preproc_call", "named": true }, { "type": "preproc_def", "named": true }, { "type": "preproc_function_def", "named": true }, { "type": "preproc_if", "named": true }, { "type": "preproc_ifdef", "named": true }, { "type": "preproc_import", "named": true }, { "type": "preproc_include", "named": true }, { "type": "primitive_type", "named": true }, { "type": "protocol_declaration", "named": true }, { "type": "protocol_forward_declaration", "named": true }, { "type": "sized_type_specifier", "named": true }, { "type": "struct_specifier", "named": true }, { "type": "type_definition", "named": true }, { "type": "type_identifier", "named": true }, { "type": "typeof_specifier", "named": true }, { "type": "union_specifier", "named": true } ] } }, { "type": "preproc_import", "named": true, "fields": { "path": { "multiple": false, "required": true, "types": [ { "type": "string_literal", "named": true }, { "type": "system_lib_string", "named": true } ] } } }, { "type": "preproc_include", "named": true, "fields": { "path": { "multiple": false, "required": true, "types": [ { "type": "call_expression", "named": true }, { "type": "identifier", "named": true }, { "type": "string_literal", "named": true }, { "type": "system_lib_string", "named": true } ] } } }, { "type": "preproc_params", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "identifier", "named": true } ] } }, { "type": "property_attributes", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "DISPATCH_QUEUE_REFERENCE_TYPE", "named": true }, { "type": "NS_NONATOMIC_IOSONLY", "named": true }, { "type": "assign", "named": true }, { "type": "atomic", "named": true }, { "type": "class", "named": true }, { "type": "copy", "named": true }, { "type": "direct", "named": true }, { "type": "getter", "named": true }, { "type": "nonatomic", "named": true }, { "type": "nonnull", "named": true }, { "type": "null_resettable", "named": true }, { "type": "null_unspecified", "named": true }, { "type": "nullable", "named": true }, { "type": "readonly", "named": true }, { "type": "readwrite", "named": true }, { "type": "retain", "named": true }, { "type": "setter", "named": true }, { "type": "strong", "named": true }, { "type": "unsafe_unretained", "named": true }, { "type": "weak", "named": true } ] } }, { "type": "property_declaration", "named": true, "fields": { "declarator": { "multiple": true, "required": true, "types": [ { "type": "_declarator", "named": true } ] }, "type": { "multiple": false, "required": true, "types": [ { "type": "BOOL", "named": true }, { "type": "Class", "named": true }, { "type": "IMP", "named": true }, { "type": "SEL", "named": true }, { "type": "atomic_specifier", "named": true }, { "type": "auto", "named": true }, { "type": "enum_specifier", "named": true }, { "type": "generic_type_specifier", "named": true }, { "type": "id", "named": true }, { "type": "instancetype", "named": true }, { "type": "macro_type_specifier", "named": true }, { "type": "ns_enum_specifier", "named": true }, { "type": "primitive_type", "named": true }, { "type": "sized_type_specifier", "named": true }, { "type": "struct_specifier", "named": true }, { "type": "type_identifier", "named": true }, { "type": "typeof_specifier", "named": true }, { "type": "union_specifier", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "attribute_specifier", "named": true }, { "type": "property_attributes", "named": true }, { "type": "swift_name_attribute_sepcifier", "named": true }, { "type": "type_qualifier", "named": true } ] } }, { "type": "protocol_declaration", "named": true, "fields": { "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "BOOL", "named": true }, { "type": "Class", "named": true }, { "type": "IMP", "named": true }, { "type": "SEL", "named": true }, { "type": "atomic_specifier", "named": true }, { "type": "attribute_specifier", "named": true }, { "type": "auto", "named": true }, { "type": "declaration", "named": true }, { "type": "enum_specifier", "named": true }, { "type": "generic_type_specifier", "named": true }, { "type": "id", "named": true }, { "type": "instancetype", "named": true }, { "type": "macro_type_specifier", "named": true }, { "type": "method_declaration", "named": true }, { "type": "ns_enum_specifier", "named": true }, { "type": "optional", "named": true }, { "type": "preproc_def", "named": true }, { "type": "preproc_function_def", "named": true }, { "type": "primitive_type", "named": true }, { "type": "property_declaration", "named": true }, { "type": "protocol_qualifiers", "named": true }, { "type": "required", "named": true }, { "type": "sized_type_specifier", "named": true }, { "type": "struct_specifier", "named": true }, { "type": "swift_name_attribute_sepcifier", "named": true }, { "type": "type_definition", "named": true }, { "type": "type_identifier", "named": true }, { "type": "typeof_specifier", "named": true }, { "type": "union_specifier", "named": true } ] } }, { "type": "protocol_expression", "named": true, "fields": { "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] } } }, { "type": "protocol_forward_declaration", "named": true, "fields": { "name": { "multiple": true, "required": true, "types": [ { "type": "identifier", "named": true } ] } } }, { "type": "protocol_qualifiers", "named": true, "fields": { "name": { "multiple": true, "required": true, "types": [ { "type": "identifier", "named": true } ] } } }, { "type": "return_statement", "named": true, "fields": {}, "children": { "multiple": false, "required": false, "types": [ { "type": "_expression", "named": true }, { "type": "comma_expression", "named": true } ] } }, { "type": "selector_expression", "named": true, "fields": { "name": { "multiple": true, "required": false, "types": [ { "type": "identifier", "named": true } ] } } }, { "type": "setter", "named": true, "fields": { "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] } } }, { "type": "sized_type_specifier", "named": true, "fields": { "type": { "multiple": false, "required": false, "types": [ { "type": "primitive_type", "named": true }, { "type": "type_identifier", "named": true } ] } } }, { "type": "sizeof_expression", "named": true, "fields": { "type": { "multiple": false, "required": false, "types": [ { "type": "type_descriptor", "named": true } ] }, "value": { "multiple": false, "required": false, "types": [ { "type": "_expression", "named": true } ] } } }, { "type": "statement_expression", "named": true, "fields": { "body": { "multiple": false, "required": true, "types": [ { "type": "_statement", "named": true } ] } } }, { "type": "storage_class_specifier", "named": true, "fields": {} }, { "type": "string_expression", "named": true, "fields": {} }, { "type": "string_literal", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "escape_sequence", "named": true } ] } }, { "type": "struct_specifier", "named": true, "fields": { "body": { "multiple": true, "required": false, "types": [ { "type": "(", "named": false }, { "type": ")", "named": false }, { "type": "@defs", "named": false }, { "type": "field_declaration_list", "named": true } ] }, "class_name": { "multiple": false, "required": false, "types": [ { "type": "identifier", "named": true } ] }, "name": { "multiple": false, "required": false, "types": [ { "type": "identifier", "named": true }, { "type": "type_identifier", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "attribute_specifier", "named": true }, { "type": "superclass_reference", "named": true } ] } }, { "type": "subscript_designator", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "_expression", "named": true } ] } }, { "type": "subscript_expression", "named": true, "fields": { "argument": { "multiple": false, "required": true, "types": [ { "type": "_expression", "named": true } ] }, "index": { "multiple": false, "required": true, "types": [ { "type": "_expression", "named": true } ] } } }, { "type": "superclass_reference", "named": true, "fields": { "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "type_reference": { "multiple": false, "required": false, "types": [ { "type": "generic_type_references", "named": true } ] } } }, { "type": "swift_name_attribute_sepcifier", "named": true, "fields": { "class": { "multiple": false, "required": false, "types": [ { "type": "identifier", "named": true } ] }, "method": { "multiple": false, "required": false, "types": [ { "type": "identifier", "named": true } ] }, "parameters": { "multiple": true, "required": false, "types": [ { "type": "(", "named": false }, { "type": ")", "named": false }, { "type": ":", "named": false }, { "type": "BOOL", "named": true }, { "type": "Class", "named": true }, { "type": "IMP", "named": true }, { "type": "SEL", "named": true }, { "type": "atomic_specifier", "named": true }, { "type": "auto", "named": true }, { "type": "enum_specifier", "named": true }, { "type": "generic_type_specifier", "named": true }, { "type": "id", "named": true }, { "type": "instancetype", "named": true }, { "type": "macro_type_specifier", "named": true }, { "type": "ns_enum_specifier", "named": true }, { "type": "primitive_type", "named": true }, { "type": "sized_type_specifier", "named": true }, { "type": "struct_specifier", "named": true }, { "type": "type_identifier", "named": true }, { "type": "typeof_specifier", "named": true }, { "type": "union_specifier", "named": true } ] } } }, { "type": "switch_statement", "named": true, "fields": { "body": { "multiple": false, "required": true, "types": [ { "type": "compound_statement", "named": true } ] }, "condition": { "multiple": false, "required": true, "types": [ { "type": "parenthesized_expression", "named": true } ] } } }, { "type": "synchronized_statement", "named": true, "fields": { "condition": { "multiple": false, "required": true, "types": [ { "type": "parenthesized_expression", "named": true } ] }, "consequence": { "multiple": false, "required": true, "types": [ { "type": "_statement", "named": true } ] } } }, { "type": "synthesize_definition", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "synthesize_property", "named": true } ] } }, { "type": "synthesize_property", "named": true, "fields": { "instance_variable": { "multiple": false, "required": false, "types": [ { "type": "identifier", "named": true } ] }, "property": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] } } }, { "type": "throw_statement", "named": true, "fields": {}, "children": { "multiple": false, "required": false, "types": [ { "type": "_expression", "named": true }, { "type": "comma_expression", "named": true } ] } }, { "type": "translation_unit", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "BOOL", "named": true }, { "type": "Class", "named": true }, { "type": "IMP", "named": true }, { "type": "SEL", "named": true }, { "type": "_statement", "named": true }, { "type": "atomic_specifier", "named": true }, { "type": "auto", "named": true }, { "type": "category_implementation", "named": true }, { "type": "category_interface", "named": true }, { "type": "class_forward_declaration", "named": true }, { "type": "class_implementation", "named": true }, { "type": "class_interface", "named": true }, { "type": "compatibility_alias_declaration", "named": true }, { "type": "declaration", "named": true }, { "type": "enum_specifier", "named": true }, { "type": "function_definition", "named": true }, { "type": "generic_type_specifier", "named": true }, { "type": "id", "named": true }, { "type": "instancetype", "named": true }, { "type": "linkage_specification", "named": true }, { "type": "macro_type_specifier", "named": true }, { "type": "module_import", "named": true }, { "type": "ns_enum_specifier", "named": true }, { "type": "preproc_def", "named": true }, { "type": "preproc_function_def", "named": true }, { "type": "preproc_if", "named": true }, { "type": "preproc_ifdef", "named": true }, { "type": "preproc_import", "named": true }, { "type": "preproc_include", "named": true }, { "type": "primitive_type", "named": true }, { "type": "protocol_declaration", "named": true }, { "type": "protocol_forward_declaration", "named": true }, { "type": "sized_type_specifier", "named": true }, { "type": "struct_specifier", "named": true }, { "type": "type_definition", "named": true }, { "type": "type_identifier", "named": true }, { "type": "typeof_specifier", "named": true }, { "type": "union_specifier", "named": true } ] } }, { "type": "try_catch_statement", "named": true, "fields": { "body": { "multiple": false, "required": true, "types": [ { "type": "_statement", "named": true } ] }, "catch": { "multiple": true, "required": false, "types": [ { "type": "_statement", "named": true } ] }, "declaration": { "multiple": true, "required": false, "types": [ { "type": "(", "named": false }, { "type": ")", "named": false }, { "type": "...", "named": false }, { "type": "parameter_declaration", "named": true } ] }, "finally": { "multiple": false, "required": false, "types": [ { "type": "_statement", "named": true } ] } } }, { "type": "type_definition", "named": true, "fields": { "attributes": { "multiple": false, "required": false, "types": [ { "type": "attribute_specifier", "named": true }, { "type": "identifier", "named": true } ] }, "declarator": { "multiple": false, "required": false, "types": [ { "type": "_type_declarator", "named": true } ] }, "type": { "multiple": false, "required": true, "types": [ { "type": "BOOL", "named": true }, { "type": "Class", "named": true }, { "type": "IMP", "named": true }, { "type": "SEL", "named": true }, { "type": "atomic_specifier", "named": true }, { "type": "auto", "named": true }, { "type": "enum_specifier", "named": true }, { "type": "generic_type_specifier", "named": true }, { "type": "id", "named": true }, { "type": "instancetype", "named": true }, { "type": "macro_type_specifier", "named": true }, { "type": "ns_enum_specifier", "named": true }, { "type": "primitive_type", "named": true }, { "type": "sized_type_specifier", "named": true }, { "type": "struct_specifier", "named": true }, { "type": "type_identifier", "named": true }, { "type": "typeof_specifier", "named": true }, { "type": "union_specifier", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "attribute_specifier", "named": true }, { "type": "swift_name_attribute_sepcifier", "named": true }, { "type": "type_qualifier", "named": true } ] } }, { "type": "type_descriptor", "named": true, "fields": { "declarator": { "multiple": false, "required": false, "types": [ { "type": "_abstract_declarator", "named": true } ] }, "type": { "multiple": false, "required": true, "types": [ { "type": "BOOL", "named": true }, { "type": "Class", "named": true }, { "type": "IMP", "named": true }, { "type": "SEL", "named": true }, { "type": "atomic_specifier", "named": true }, { "type": "auto", "named": true }, { "type": "enum_specifier", "named": true }, { "type": "generic_type_specifier", "named": true }, { "type": "id", "named": true }, { "type": "instancetype", "named": true }, { "type": "macro_type_specifier", "named": true }, { "type": "ns_enum_specifier", "named": true }, { "type": "primitive_type", "named": true }, { "type": "sized_type_specifier", "named": true }, { "type": "struct_specifier", "named": true }, { "type": "type_identifier", "named": true }, { "type": "typeof_specifier", "named": true }, { "type": "union_specifier", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "type_qualifier", "named": true } ] } }, { "type": "type_qualifier", "named": true, "fields": {} }, { "type": "typeof_specifier", "named": true, "fields": { "operator": { "multiple": false, "required": true, "types": [ { "type": "__typeof", "named": false }, { "type": "__typeof__", "named": false }, { "type": "typeof", "named": false } ] }, "type": { "multiple": false, "required": true, "types": [ { "type": "_expression", "named": true } ] } } }, { "type": "unary_expression", "named": true, "fields": { "argument": { "multiple": false, "required": true, "types": [ { "type": "_expression", "named": true }, { "type": "preproc_defined", "named": true }, { "type": "preproc_has_include", "named": true } ] }, "operator": { "multiple": false, "required": true, "types": [ { "type": "!", "named": false }, { "type": "+", "named": false }, { "type": "-", "named": false }, { "type": "~", "named": false } ] } } }, { "type": "union_specifier", "named": true, "fields": { "body": { "multiple": false, "required": false, "types": [ { "type": "field_declaration_list", "named": true } ] }, "name": { "multiple": false, "required": false, "types": [ { "type": "type_identifier", "named": true } ] } }, "children": { "multiple": false, "required": false, "types": [ { "type": "ms_declspec_modifier", "named": true } ] } }, { "type": "update_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": "va_arg_expression", "named": true, "fields": { "type": { "multiple": false, "required": true, "types": [ { "type": "type_descriptor", "named": true } ] }, "va_list": { "multiple": false, "required": true, "types": [ { "type": "_expression", "named": true } ] } } }, { "type": "while_statement", "named": true, "fields": { "body": { "multiple": false, "required": true, "types": [ { "type": "_statement", "named": true } ] }, "condition": { "multiple": false, "required": true, "types": [ { "type": "parenthesized_expression", "named": true } ] } } }, { "type": "\n", "named": false }, { "type": "!", "named": false }, { "type": "!=", "named": false }, { "type": "\"", "named": false }, { "type": "#define", "named": false }, { "type": "#elif", "named": false }, { "type": "#else", "named": false }, { "type": "#endif", "named": false }, { "type": "#if", "named": false }, { "type": "#ifdef", "named": false }, { "type": "#ifndef", "named": false }, { "type": "#import", "named": false }, { "type": "#include", "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": "@autoreleasepool", "named": false }, { "type": "@available", "named": false }, { "type": "@catch", "named": false }, { "type": "@class", "named": false }, { "type": "@compatibility_alias", "named": false }, { "type": "@defs", "named": false }, { "type": "@dynamic", "named": false }, { "type": "@encode", "named": false }, { "type": "@end", "named": false }, { "type": "@finally", "named": false }, { "type": "@implementation", "named": false }, { "type": "@import", "named": false }, { "type": "@interface", "named": false }, { "type": "@property", "named": false }, { "type": "@protocol", "named": false }, { "type": "@selector", "named": false }, { "type": "@synchronized", "named": false }, { "type": "@synthesize", "named": false }, { "type": "@throw", "named": false }, { "type": "@try", "named": false }, { "type": "API_AVAILABLE", "named": false }, { "type": "API_DEPRECATED", "named": false }, { "type": "API_UNAVAILABLE", "named": false }, { "type": "BOOL", "named": true }, { "type": "CF_FORMAT_FUNCTION", "named": false }, { "type": "Class", "named": true }, { "type": "DEPRECATED_ATTRIBUTE", "named": false }, { "type": "DEPRECATED_MSG_ATTRIBUTE", "named": false }, { "type": "DISPATCH_QUEUE_REFERENCE_TYPE", "named": true }, { "type": "IBInspectable", "named": false }, { "type": "IBOutlet", "named": false }, { "type": "IMP", "named": true }, { "type": "L\"", "named": false }, { "type": "L'", "named": false }, { "type": "NO", "named": true }, { "type": "NS_AVAILABLE", "named": false }, { "type": "NS_AVAILABLE_IOS", "named": false }, { "type": "NS_CLASS_AVAILABLE_IOS", "named": false }, { "type": "NS_CLASS_DEPRECATED_IOS", "named": false }, { "type": "NS_DEPRECATED_IOS", "named": false }, { "type": "NS_ENUM", "named": false }, { "type": "NS_ENUM_AVAILABLE_IOS", "named": false }, { "type": "NS_ENUM_DEPRECATED_IOS", "named": false }, { "type": "NS_ERROR_ENUM", "named": false }, { "type": "NS_EXTENSION_UNAVAILABLE_IOS", "named": false }, { "type": "NS_FORMAT_FUNCTION", "named": false }, { "type": "NS_NOESCAPE", "named": false }, { "type": "NS_NONATOMIC_IOSONLY", "named": true }, { "type": "NS_OPTIONS", "named": false }, { "type": "NS_REFINED_FOR_SWIFT", "named": false }, { "type": "NS_SWIFT_NAME", "named": false }, { "type": "NS_SWIFT_UNAVAILABLE", "named": false }, { "type": "NS_UNAVAILABLE", "named": false }, { "type": "NS_VALID_UNTIL_END_OF_SCOPE", "named": false }, { "type": "SEL", "named": true }, { "type": "U\"", "named": false }, { "type": "U'", "named": false }, { "type": "UI_APPEARANCE_SELECTOR", "named": false }, { "type": "UNAVAILABLE_ATTRIBUTE", "named": false }, { "type": "YES", "named": true }, { "type": "[", "named": false }, { "type": "]", "named": false }, { "type": "^", "named": false }, { "type": "^=", "named": false }, { "type": "_Atomic", "named": false }, { "type": "_Complex", "named": false }, { "type": "_Nonnull", "named": false }, { "type": "_Null_unspecified", "named": false }, { "type": "_Nullable", "named": false }, { "type": "_Nullable_result", "named": false }, { "type": "__GENERICS", "named": false }, { "type": "__IOS_AVAILABLE", "named": false }, { "type": "__attribute", "named": false }, { "type": "__attribute__", "named": false }, { "type": "__autoreleasing", "named": false }, { "type": "__based", "named": false }, { "type": "__block", "named": false }, { "type": "__bridge", "named": false }, { "type": "__bridge_retained", "named": false }, { "type": "__bridge_transfer", "named": false }, { "type": "__builtin_available", "named": false }, { "type": "__cdecl", "named": false }, { "type": "__clrcall", "named": false }, { "type": "__complex", "named": false }, { "type": "__contravariant", "named": false }, { "type": "__covariant", "named": false }, { "type": "__declspec", "named": false }, { "type": "__deprecated_enum_msg", "named": false }, { "type": "__deprecated_msg", "named": false }, { "type": "__fastcall", "named": false }, { "type": "__has_include", "named": false }, { "type": "__kindof", "named": false }, { "type": "__nonnull", "named": false }, { "type": "__nullable", "named": false }, { "type": "__objc_no", "named": false }, { "type": "__objc_yes", "named": false }, { "type": "__stdcall", "named": false }, { "type": "__strong", "named": false }, { "type": "__thiscall", "named": false }, { "type": "__typeof", "named": false }, { "type": "__typeof__", "named": false }, { "type": "__unaligned", "named": false }, { "type": "__unsafe_unretained", "named": false }, { "type": "__unused", "named": false }, { "type": "__vectorcall", "named": false }, { "type": "__weak", "named": false }, { "type": "_unaligned", "named": false }, { "type": "assign", "named": true }, { "type": "atomic", "named": true }, { "type": "auto", "named": false }, { "type": "auto", "named": true }, { "type": "break", "named": false }, { "type": "bycopy", "named": false }, { "type": "byref", "named": false }, { "type": "case", "named": false }, { "type": "class", "named": true }, { "type": "class_interface_attribute_sepcifier", "named": true }, { "type": "comment", "named": true }, { "type": "const", "named": false }, { "type": "continue", "named": false }, { "type": "copy", "named": true }, { "type": "default", "named": false }, { "type": "defined", "named": false }, { "type": "direct", "named": true }, { "type": "do", "named": false }, { "type": "else", "named": false }, { "type": "enum", "named": false }, { "type": "escape_sequence", "named": true }, { "type": "extern", "named": false }, { "type": "false", "named": true }, { "type": "field_identifier", "named": true }, { "type": "for", "named": false }, { "type": "getter", "named": false }, { "type": "goto", "named": false }, { "type": "id", "named": true }, { "type": "identifier", "named": true }, { "type": "if", "named": false }, { "type": "in", "named": false }, { "type": "inline", "named": false }, { "type": "inout", "named": false }, { "type": "instancetype", "named": true }, { "type": "ios", "named": false }, { "type": "long", "named": false }, { "type": "macos", "named": false }, { "type": "macosx", "named": false }, { "type": "method_attribute_specifier", "named": true }, { "type": "module_string", "named": true }, { "type": "ms_restrict_modifier", "named": true }, { "type": "ms_signed_ptr_modifier", "named": true }, { "type": "ms_unsigned_ptr_modifier", "named": true }, { "type": "nil", "named": true }, { "type": "nonatomic", "named": true }, { "type": "nonnull", "named": true }, { "type": "null", "named": true }, { "type": "null_resettable", "named": true }, { "type": "null_unspecified", "named": true }, { "type": "nullable", "named": true }, { "type": "number_literal", "named": false }, { "type": "number_literal", "named": true }, { "type": "oneway", "named": false }, { "type": "optional", "named": true }, { "type": "out", "named": false }, { "type": "package", "named": true }, { "type": "pragma", "named": true }, { "type": "preproc_arg", "named": true }, { "type": "preproc_directive", "named": true }, { "type": "primitive_type", "named": true }, { "type": "private", "named": true }, { "type": "protected", "named": true }, { "type": "public", "named": true }, { "type": "readonly", "named": true }, { "type": "readwrite", "named": true }, { "type": "register", "named": false }, { "type": "required", "named": true }, { "type": "restrict", "named": false }, { "type": "retain", "named": true }, { "type": "return", "named": false }, { "type": "self", "named": true }, { "type": "setter", "named": false }, { "type": "short", "named": false }, { "type": "signed", "named": false }, { "type": "sizeof", "named": false }, { "type": "statement_identifier", "named": true }, { "type": "static", "named": false }, { "type": "strong", "named": true }, { "type": "struct", "named": false }, { "type": "super", "named": true }, { "type": "switch", "named": false }, { "type": "system_lib_string", "named": true }, { "type": "true", "named": true }, { "type": "tvos", "named": false }, { "type": "type_identifier", "named": true }, { "type": "typedef", "named": false }, { "type": "typeof", "named": false }, { "type": "u\"", "named": false }, { "type": "u'", "named": false }, { "type": "u8\"", "named": false }, { "type": "u8'", "named": false }, { "type": "union", "named": false }, { "type": "unsafe_unretained", "named": true }, { "type": "unsigned", "named": false }, { "type": "va_arg", "named": false }, { "type": "volatile", "named": false }, { "type": "watchos", "named": false }, { "type": "weak", "named": true }, { "type": "while", "named": false }, { "type": "{", "named": false }, { "type": "|", "named": false }, { "type": "|=", "named": false }, { "type": "||", "named": false }, { "type": "}", "named": false }, { "type": "~", "named": false } ]