pub const NODE_TYPES: &str = "[\n {\n \"type\": \"_abstract_declarator\",\n \"named\": true,\n \"subtypes\": [\n {\n \"type\": \"abstract_array_declarator\",\n \"named\": true\n },\n {\n \"type\": \"abstract_block_pointer_declarator\",\n \"named\": true\n },\n {\n \"type\": \"abstract_function_declarator\",\n \"named\": true\n },\n {\n \"type\": \"abstract_parenthesized_declarator\",\n \"named\": true\n },\n {\n \"type\": \"abstract_pointer_declarator\",\n \"named\": true\n }\n ]\n },\n {\n \"type\": \"_declarator\",\n \"named\": true,\n \"subtypes\": [\n {\n \"type\": \"array_declarator\",\n \"named\": true\n },\n {\n \"type\": \"block_pointer_declarator\",\n \"named\": true\n },\n {\n \"type\": \"function_declarator\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_declarator\",\n \"named\": true\n },\n {\n \"type\": \"pointer_declarator\",\n \"named\": true\n }\n ]\n },\n {\n \"type\": \"_field_declarator\",\n \"named\": true,\n \"subtypes\": [\n {\n \"type\": \"array_declarator\",\n \"named\": true\n },\n {\n \"type\": \"attributed_declarator\",\n \"named\": true\n },\n {\n \"type\": \"block_pointer_declarator\",\n \"named\": true\n },\n {\n \"type\": \"field_identifier\",\n \"named\": true\n },\n {\n \"type\": \"function_declarator\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_declarator\",\n \"named\": true\n },\n {\n \"type\": \"pointer_declarator\",\n \"named\": true\n }\n ]\n },\n {\n \"type\": \"_type_declarator\",\n \"named\": true,\n \"subtypes\": [\n {\n \"type\": \"array_declarator\",\n \"named\": true\n },\n {\n \"type\": \"block_pointer_declarator\",\n \"named\": true\n },\n {\n \"type\": \"function_declarator\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_declarator\",\n \"named\": true\n },\n {\n \"type\": \"pointer_declarator\",\n \"named\": true\n },\n {\n \"type\": \"primitive_type\",\n \"named\": true\n },\n {\n \"type\": \"type_identifier\",\n \"named\": true\n }\n ]\n },\n {\n \"type\": \"expression\",\n \"named\": true,\n \"subtypes\": [\n {\n \"type\": \"alignof_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true\n },\n {\n \"type\": \"at_expression\",\n \"named\": true\n },\n {\n \"type\": \"available_expression\",\n \"named\": true\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"block_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"cast_expression\",\n \"named\": true\n },\n {\n \"type\": \"char_literal\",\n \"named\": true\n },\n {\n \"type\": \"compound_literal_expression\",\n \"named\": true\n },\n {\n \"type\": \"concatenated_string\",\n \"named\": true\n },\n {\n \"type\": \"conditional_expression\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"encode_expression\",\n \"named\": true\n },\n {\n \"type\": \"extension_expression\",\n \"named\": true\n },\n {\n \"type\": \"false\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"generic_expression\",\n \"named\": true\n },\n {\n \"type\": \"gnu_asm_expression\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"message_expression\",\n \"named\": true\n },\n {\n \"type\": \"null\",\n \"named\": true\n },\n {\n \"type\": \"number_literal\",\n \"named\": true\n },\n {\n \"type\": \"offsetof_expression\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"pointer_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"sizeof_expression\",\n \"named\": true\n },\n {\n \"type\": \"string_literal\",\n \"named\": true\n },\n {\n \"type\": \"subscript_expression\",\n \"named\": true\n },\n {\n \"type\": \"true\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n },\n {\n \"type\": \"update_expression\",\n \"named\": true\n },\n {\n \"type\": \"va_arg_expression\",\n \"named\": true\n }\n ]\n },\n {\n \"type\": \"specifier_qualifier\",\n \"named\": true,\n \"subtypes\": [\n {\n \"type\": \"protocol_qualifier\",\n \"named\": true\n },\n {\n \"type\": \"type_qualifier\",\n \"named\": true\n },\n {\n \"type\": \"type_specifier\",\n \"named\": true\n }\n ]\n },\n {\n \"type\": \"statement\",\n \"named\": true,\n \"subtypes\": [\n {\n \"type\": \"attributed_statement\",\n \"named\": true\n },\n {\n \"type\": \"break_statement\",\n \"named\": true\n },\n {\n \"type\": \"case_statement\",\n \"named\": true\n },\n {\n \"type\": \"compound_statement\",\n \"named\": true\n },\n {\n \"type\": \"continue_statement\",\n \"named\": true\n },\n {\n \"type\": \"do_statement\",\n \"named\": true\n },\n {\n \"type\": \"expression_statement\",\n \"named\": true\n },\n {\n \"type\": \"for_statement\",\n \"named\": true\n },\n {\n \"type\": \"goto_statement\",\n \"named\": true\n },\n {\n \"type\": \"if_statement\",\n \"named\": true\n },\n {\n \"type\": \"labeled_statement\",\n \"named\": true\n },\n {\n \"type\": \"ms_asm_block\",\n \"named\": true\n },\n {\n \"type\": \"return_statement\",\n \"named\": true\n },\n {\n \"type\": \"switch_statement\",\n \"named\": true\n },\n {\n \"type\": \"synchronized_statement\",\n \"named\": true\n },\n {\n \"type\": \"throw_statement\",\n \"named\": true\n },\n {\n \"type\": \"try_statement\",\n \"named\": true\n },\n {\n \"type\": \"while_statement\",\n \"named\": true\n }\n ]\n },\n {\n \"type\": \"type_specifier\",\n \"named\": true,\n \"subtypes\": [\n {\n \"type\": \"array_type_specifier\",\n \"named\": true\n },\n {\n \"type\": \"enum_specifier\",\n \"named\": true\n },\n {\n \"type\": \"generic_specifier\",\n \"named\": true\n },\n {\n \"type\": \"macro_type_specifier\",\n \"named\": true\n },\n {\n \"type\": \"primitive_type\",\n \"named\": true\n },\n {\n \"type\": \"sized_type_specifier\",\n \"named\": true\n },\n {\n \"type\": \"struct_specifier\",\n \"named\": true\n },\n {\n \"type\": \"type_identifier\",\n \"named\": true\n },\n {\n \"type\": \"typedefed_specifier\",\n \"named\": true\n },\n {\n \"type\": \"typeof_specifier\",\n \"named\": true\n },\n {\n \"type\": \"union_specifier\",\n \"named\": true\n }\n ]\n },\n {\n \"type\": \"abstract_array_declarator\",\n \"named\": true,\n \"fields\": {\n \"declarator\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_abstract_declarator\",\n \"named\": true\n }\n ]\n },\n \"size\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_qualifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"abstract_block_pointer_declarator\",\n \"named\": true,\n \"fields\": {\n \"declarator\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_abstract_declarator\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_qualifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"abstract_function_declarator\",\n \"named\": true,\n \"fields\": {\n \"declarator\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_abstract_declarator\",\n \"named\": true\n }\n ]\n },\n \"parameters\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"parameter_list\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"type_qualifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"abstract_parenthesized_declarator\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_abstract_declarator\",\n \"named\": true\n },\n {\n \"type\": \"attribute_declaration\",\n \"named\": true\n },\n {\n \"type\": \"attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"availability_attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"ms_declspec_modifier\",\n \"named\": true\n },\n {\n \"type\": \"storage_class_specifier\",\n \"named\": true\n },\n {\n \"type\": \"type_qualifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"abstract_pointer_declarator\",\n \"named\": true,\n \"fields\": {\n \"declarator\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_abstract_declarator\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"attribute_declaration\",\n \"named\": true\n },\n {\n \"type\": \"attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"availability_attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"ms_declspec_modifier\",\n \"named\": true\n },\n {\n \"type\": \"storage_class_specifier\",\n \"named\": true\n },\n {\n \"type\": \"type_qualifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"alignas_qualifier\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"type_descriptor\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"alignof_expression\",\n \"named\": true,\n \"fields\": {\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_descriptor\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"argument_list\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"availability\",\n \"named\": true\n },\n {\n \"type\": \"compound_statement\",\n \"named\": true\n },\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"objc_bridge\",\n \"named\": true\n },\n {\n \"type\": \"preproc_defined\",\n \"named\": true\n },\n {\n \"type\": \"system_lib_string\",\n \"named\": true\n },\n {\n \"type\": \"type_identifier\",\n \"named\": true\n },\n {\n \"type\": \"type_name\",\n \"named\": true\n },\n {\n \"type\": \"type_qualifier\",\n \"named\": true\n },\n {\n \"type\": \"typeof_specifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"array_declarator\",\n \"named\": true,\n \"fields\": {\n \"declarator\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_declarator\",\n \"named\": true\n },\n {\n \"type\": \"_field_declarator\",\n \"named\": true\n },\n {\n \"type\": \"_type_declarator\",\n \"named\": true\n }\n ]\n },\n \"size\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_qualifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"array_literal\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"array_type_specifier\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"type_qualifier\",\n \"named\": true\n },\n {\n \"type\": \"type_specifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"assignment_expression\",\n \"named\": true,\n \"fields\": {\n \"left\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"field_expression\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"pointer_expression\",\n \"named\": true\n },\n {\n \"type\": \"subscript_expression\",\n \"named\": true\n }\n ]\n },\n \"operator\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"%=\",\n \"named\": false\n },\n {\n \"type\": \"&=\",\n \"named\": false\n },\n {\n \"type\": \"*=\",\n \"named\": false\n },\n {\n \"type\": \"+=\",\n \"named\": false\n },\n {\n \"type\": \"-=\",\n \"named\": false\n },\n {\n \"type\": \"/=\",\n \"named\": false\n },\n {\n \"type\": \"<<=\",\n \"named\": false\n },\n {\n \"type\": \"=\",\n \"named\": false\n },\n {\n \"type\": \">>=\",\n \"named\": false\n },\n {\n \"type\": \"^=\",\n \"named\": false\n },\n {\n \"type\": \"|=\",\n \"named\": false\n }\n ]\n },\n \"right\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"at_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"atdef_field\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"atomic_declaration\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"field_identifier\",\n \"named\": true\n },\n {\n \"type\": \"type_specifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"attribute\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n },\n \"prefix\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"attribute_declaration\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"attribute\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"attribute_specifier\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"argument_list\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"attributed_declarator\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_field_declarator\",\n \"named\": true\n },\n {\n \"type\": \"attribute_declaration\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"attributed_statement\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"attribute_declaration\",\n \"named\": true\n },\n {\n \"type\": \"statement\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"availability\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"version\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"availability_attribute_specifier\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"concatenated_string\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"method_identifier\",\n \"named\": true\n },\n {\n \"type\": \"string_literal\",\n \"named\": true\n },\n {\n \"type\": \"version\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"available_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"version\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"binary_expression\",\n \"named\": true,\n \"fields\": {\n \"left\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"preproc_defined\",\n \"named\": true\n },\n {\n \"type\": \"system_lib_string\",\n \"named\": true\n }\n ]\n },\n \"operator\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"&\",\n \"named\": false\n },\n {\n \"type\": \"&&\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \">>\",\n \"named\": false\n },\n {\n \"type\": \"^\",\n \"named\": false\n },\n {\n \"type\": \"|\",\n \"named\": false\n },\n {\n \"type\": \"||\",\n \"named\": false\n }\n ]\n },\n \"right\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"preproc_defined\",\n \"named\": true\n },\n {\n \"type\": \"system_lib_string\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"bitfield_clause\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"block_literal\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"compound_statement\",\n \"named\": true\n },\n {\n \"type\": \"parameter_list\",\n \"named\": true\n },\n {\n \"type\": \"type_name\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"block_pointer_declarator\",\n \"named\": true,\n \"fields\": {\n \"declarator\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_declarator\",\n \"named\": true\n },\n {\n \"type\": \"_field_declarator\",\n \"named\": true\n },\n {\n \"type\": \"_type_declarator\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_qualifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"break_statement\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"call_expression\",\n \"named\": true,\n \"fields\": {\n \"arguments\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"argument_list\",\n \"named\": true\n }\n ]\n },\n \"function\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"case_statement\",\n \"named\": true,\n \"fields\": {\n \"value\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"attributed_statement\",\n \"named\": true\n },\n {\n \"type\": \"break_statement\",\n \"named\": true\n },\n {\n \"type\": \"compound_statement\",\n \"named\": true\n },\n {\n \"type\": \"continue_statement\",\n \"named\": true\n },\n {\n \"type\": \"declaration\",\n \"named\": true\n },\n {\n \"type\": \"do_statement\",\n \"named\": true\n },\n {\n \"type\": \"expression_statement\",\n \"named\": true\n },\n {\n \"type\": \"for_statement\",\n \"named\": true\n },\n {\n \"type\": \"goto_statement\",\n \"named\": true\n },\n {\n \"type\": \"if_statement\",\n \"named\": true\n },\n {\n \"type\": \"labeled_statement\",\n \"named\": true\n },\n {\n \"type\": \"ms_asm_block\",\n \"named\": true\n },\n {\n \"type\": \"return_statement\",\n \"named\": true\n },\n {\n \"type\": \"switch_statement\",\n \"named\": true\n },\n {\n \"type\": \"synchronized_statement\",\n \"named\": true\n },\n {\n \"type\": \"throw_statement\",\n \"named\": true\n },\n {\n \"type\": \"try_statement\",\n \"named\": true\n },\n {\n \"type\": \"type_definition\",\n \"named\": true\n },\n {\n \"type\": \"while_statement\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"cast_expression\",\n \"named\": true,\n \"fields\": {\n \"type\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"parameterized_arguments\",\n \"named\": true\n },\n {\n \"type\": \"type_descriptor\",\n \"named\": true\n },\n {\n \"type\": \"typeof_specifier\",\n \"named\": true\n }\n ]\n },\n \"value\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"catch_clause\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"compound_statement\",\n \"named\": true\n },\n {\n \"type\": \"type_name\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"char_literal\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"character\",\n \"named\": true\n },\n {\n \"type\": \"escape_sequence\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"class_declaration\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"parameterized_arguments\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"class_implementation\",\n \"named\": true,\n \"fields\": {\n \"category\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n },\n \"superclass\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"attribute_declaration\",\n \"named\": true\n },\n {\n \"type\": \"attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"availability_attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"generic_arguments\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"implementation_definition\",\n \"named\": true\n },\n {\n \"type\": \"instance_variables\",\n \"named\": true\n },\n {\n \"type\": \"ms_declspec_modifier\",\n \"named\": true\n },\n {\n \"type\": \"parameterized_arguments\",\n \"named\": true\n },\n {\n \"type\": \"storage_class_specifier\",\n \"named\": true\n },\n {\n \"type\": \"type_qualifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"class_interface\",\n \"named\": true,\n \"fields\": {\n \"category\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n },\n \"superclass\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"attribute_declaration\",\n \"named\": true\n },\n {\n \"type\": \"attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"availability_attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"declaration\",\n \"named\": true\n },\n {\n \"type\": \"function_definition\",\n \"named\": true\n },\n {\n \"type\": \"generic_arguments\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"instance_variables\",\n \"named\": true\n },\n {\n \"type\": \"method_declaration\",\n \"named\": true\n },\n {\n \"type\": \"ms_declspec_modifier\",\n \"named\": true\n },\n {\n \"type\": \"parameterized_arguments\",\n \"named\": true\n },\n {\n \"type\": \"preproc_call\",\n \"named\": true\n },\n {\n \"type\": \"preproc_def\",\n \"named\": true\n },\n {\n \"type\": \"preproc_if\",\n \"named\": true\n },\n {\n \"type\": \"preproc_ifdef\",\n \"named\": true\n },\n {\n \"type\": \"preproc_undef\",\n \"named\": true\n },\n {\n \"type\": \"property_declaration\",\n \"named\": true\n },\n {\n \"type\": \"storage_class_specifier\",\n \"named\": true\n },\n {\n \"type\": \"struct_specifier\",\n \"named\": true\n },\n {\n \"type\": \"type_definition\",\n \"named\": true\n },\n {\n \"type\": \"type_qualifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"comma_expression\",\n \"named\": true,\n \"fields\": {\n \"left\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n },\n \"right\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"comma_expression\",\n \"named\": true\n },\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"compatibility_alias_declaration\",\n \"named\": true,\n \"fields\": {\n \"alias\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n },\n \"class\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"compound_literal_expression\",\n \"named\": true,\n \"fields\": {\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_descriptor\",\n \"named\": true\n }\n ]\n },\n \"value\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"initializer_list\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"compound_statement\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"class_declaration\",\n \"named\": true\n },\n {\n \"type\": \"class_implementation\",\n \"named\": true\n },\n {\n \"type\": \"class_interface\",\n \"named\": true\n },\n {\n \"type\": \"compatibility_alias_declaration\",\n \"named\": true\n },\n {\n \"type\": \"declaration\",\n \"named\": true\n },\n {\n \"type\": \"function_definition\",\n \"named\": true\n },\n {\n \"type\": \"linkage_specification\",\n \"named\": true\n },\n {\n \"type\": \"module_import\",\n \"named\": true\n },\n {\n \"type\": \"preproc_call\",\n \"named\": true\n },\n {\n \"type\": \"preproc_def\",\n \"named\": true\n },\n {\n \"type\": \"preproc_function_def\",\n \"named\": true\n },\n {\n \"type\": \"preproc_if\",\n \"named\": true\n },\n {\n \"type\": \"preproc_ifdef\",\n \"named\": true\n },\n {\n \"type\": \"preproc_include\",\n \"named\": true\n },\n {\n \"type\": \"preproc_linemarker\",\n \"named\": true\n },\n {\n \"type\": \"preproc_undef\",\n \"named\": true\n },\n {\n \"type\": \"protocol_declaration\",\n \"named\": true\n },\n {\n \"type\": \"protocol_forward_declaration\",\n \"named\": true\n },\n {\n \"type\": \"statement\",\n \"named\": true\n },\n {\n \"type\": \"type_definition\",\n \"named\": true\n },\n {\n \"type\": \"type_specifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"concatenated_string\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"string_literal\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"conditional_expression\",\n \"named\": true,\n \"fields\": {\n \"alternative\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n },\n \"condition\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n },\n \"consequence\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"comma_expression\",\n \"named\": true\n },\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"continue_statement\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"declaration\",\n \"named\": true,\n \"fields\": {\n \"declarator\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_declarator\",\n \"named\": true\n },\n {\n \"type\": \"gnu_asm_expression\",\n \"named\": true\n },\n {\n \"type\": \"init_declarator\",\n \"named\": true\n },\n {\n \"type\": \"type_qualifier\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_specifier\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"attribute_declaration\",\n \"named\": true\n },\n {\n \"type\": \"attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"availability_attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"ms_declspec_modifier\",\n \"named\": true\n },\n {\n \"type\": \"storage_class_specifier\",\n \"named\": true\n },\n {\n \"type\": \"type_qualifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"declaration_list\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"class_declaration\",\n \"named\": true\n },\n {\n \"type\": \"class_implementation\",\n \"named\": true\n },\n {\n \"type\": \"class_interface\",\n \"named\": true\n },\n {\n \"type\": \"compatibility_alias_declaration\",\n \"named\": true\n },\n {\n \"type\": \"declaration\",\n \"named\": true\n },\n {\n \"type\": \"function_definition\",\n \"named\": true\n },\n {\n \"type\": \"linkage_specification\",\n \"named\": true\n },\n {\n \"type\": \"module_import\",\n \"named\": true\n },\n {\n \"type\": \"preproc_call\",\n \"named\": true\n },\n {\n \"type\": \"preproc_def\",\n \"named\": true\n },\n {\n \"type\": \"preproc_function_def\",\n \"named\": true\n },\n {\n \"type\": \"preproc_if\",\n \"named\": true\n },\n {\n \"type\": \"preproc_ifdef\",\n \"named\": true\n },\n {\n \"type\": \"preproc_include\",\n \"named\": true\n },\n {\n \"type\": \"preproc_linemarker\",\n \"named\": true\n },\n {\n \"type\": \"preproc_undef\",\n \"named\": true\n },\n {\n \"type\": \"protocol_declaration\",\n \"named\": true\n },\n {\n \"type\": \"protocol_forward_declaration\",\n \"named\": true\n },\n {\n \"type\": \"statement\",\n \"named\": true\n },\n {\n \"type\": \"type_definition\",\n \"named\": true\n },\n {\n \"type\": \"type_specifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"dictionary_pair\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"dictionary_pair\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"do_statement\",\n \"named\": true,\n \"fields\": {\n \"body\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"statement\",\n \"named\": true\n }\n ]\n },\n \"condition\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"else_clause\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"statement\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"encode_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_name\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"enum_specifier\",\n \"named\": true,\n \"fields\": {\n \"base\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_identifier\",\n \"named\": true\n }\n ]\n },\n \"body\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"enumerator_list\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_identifier\",\n \"named\": true\n }\n ]\n },\n \"underlying_type\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"primitive_type\",\n \"named\": true\n },\n {\n \"type\": \"type_identifier\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"ms_declspec_modifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"enumerator\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n },\n \"value\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"enumerator_list\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"attribute_declaration\",\n \"named\": true\n },\n {\n \"type\": \"attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"availability_attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"enumerator\",\n \"named\": true\n },\n {\n \"type\": \"ms_declspec_modifier\",\n \"named\": true\n },\n {\n \"type\": \"preproc_ifdef\",\n \"named\": true\n },\n {\n \"type\": \"storage_class_specifier\",\n \"named\": true\n },\n {\n \"type\": \"type_qualifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"expression_statement\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"comma_expression\",\n \"named\": true\n },\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"extension_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"field_declaration\",\n \"named\": true,\n \"fields\": {\n \"declarator\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_field_declarator\",\n \"named\": true\n },\n {\n \"type\": \"enum_specifier\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_specifier\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"attribute_declaration\",\n \"named\": true\n },\n {\n \"type\": \"attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"availability_attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"bitfield_clause\",\n \"named\": true\n },\n {\n \"type\": \"ms_declspec_modifier\",\n \"named\": true\n },\n {\n \"type\": \"storage_class_specifier\",\n \"named\": true\n },\n {\n \"type\": \"type_qualifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"field_declaration_list\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"atdef_field\",\n \"named\": true\n },\n {\n \"type\": \"field_declaration\",\n \"named\": true\n },\n {\n \"type\": \"preproc_call\",\n \"named\": true\n },\n {\n \"type\": \"preproc_def\",\n \"named\": true\n },\n {\n \"type\": \"preproc_function_def\",\n \"named\": true\n },\n {\n \"type\": \"preproc_if\",\n \"named\": true\n },\n {\n \"type\": \"preproc_ifdef\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"field_designator\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"field_identifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"field_expression\",\n \"named\": true,\n \"fields\": {\n \"argument\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n },\n \"field\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"field_identifier\",\n \"named\": true\n }\n ]\n },\n \"operator\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"->\",\n \"named\": false\n },\n {\n \"type\": \".\",\n \"named\": false\n }\n ]\n }\n }\n },\n {\n \"type\": \"finally_clause\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"compound_statement\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"for_statement\",\n \"named\": true,\n \"fields\": {\n \"body\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"statement\",\n \"named\": true\n }\n ]\n },\n \"condition\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"comma_expression\",\n \"named\": true\n },\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n },\n \"initializer\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"comma_expression\",\n \"named\": true\n },\n {\n \"type\": \"declaration\",\n \"named\": true\n },\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_specifier\",\n \"named\": true\n }\n ]\n },\n \"update\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"comma_expression\",\n \"named\": true\n },\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_declarator\",\n \"named\": true\n },\n {\n \"type\": \"attribute_declaration\",\n \"named\": true\n },\n {\n \"type\": \"attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"attributed_statement\",\n \"named\": true\n },\n {\n \"type\": \"availability_attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"break_statement\",\n \"named\": true\n },\n {\n \"type\": \"compound_statement\",\n \"named\": true\n },\n {\n \"type\": \"continue_statement\",\n \"named\": true\n },\n {\n \"type\": \"do_statement\",\n \"named\": true\n },\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"expression_statement\",\n \"named\": true\n },\n {\n \"type\": \"for_statement\",\n \"named\": true\n },\n {\n \"type\": \"goto_statement\",\n \"named\": true\n },\n {\n \"type\": \"if_statement\",\n \"named\": true\n },\n {\n \"type\": \"labeled_statement\",\n \"named\": true\n },\n {\n \"type\": \"ms_asm_block\",\n \"named\": true\n },\n {\n \"type\": \"ms_declspec_modifier\",\n \"named\": true\n },\n {\n \"type\": \"return_statement\",\n \"named\": true\n },\n {\n \"type\": \"storage_class_specifier\",\n \"named\": true\n },\n {\n \"type\": \"switch_statement\",\n \"named\": true\n },\n {\n \"type\": \"synchronized_statement\",\n \"named\": true\n },\n {\n \"type\": \"throw_statement\",\n \"named\": true\n },\n {\n \"type\": \"try_statement\",\n \"named\": true\n },\n {\n \"type\": \"type_qualifier\",\n \"named\": true\n },\n {\n \"type\": \"while_statement\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"function_declarator\",\n \"named\": true,\n \"fields\": {\n \"declarator\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_declarator\",\n \"named\": true\n },\n {\n \"type\": \"_field_declarator\",\n \"named\": true\n },\n {\n \"type\": \"_type_declarator\",\n \"named\": true\n }\n ]\n },\n \"parameters\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"parameter_list\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"gnu_asm_expression\",\n \"named\": true\n },\n {\n \"type\": \"type_qualifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"function_definition\",\n \"named\": true,\n \"fields\": {\n \"body\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"compound_statement\",\n \"named\": true\n }\n ]\n },\n \"declarator\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_declarator\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_specifier\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"attribute_declaration\",\n \"named\": true\n },\n {\n \"type\": \"attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"availability_attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"declaration\",\n \"named\": true\n },\n {\n \"type\": \"ms_call_modifier\",\n \"named\": true\n },\n {\n \"type\": \"ms_declspec_modifier\",\n \"named\": true\n },\n {\n \"type\": \"storage_class_specifier\",\n \"named\": true\n },\n {\n \"type\": \"type_qualifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"generic_arguments\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_identifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"generic_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"type_descriptor\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"generic_specifier\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_identifier\",\n \"named\": true\n },\n {\n \"type\": \"type_name\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"gnu_asm_clobber_list\",\n \"named\": true,\n \"fields\": {\n \"register\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"concatenated_string\",\n \"named\": true\n },\n {\n \"type\": \"string_literal\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"gnu_asm_expression\",\n \"named\": true,\n \"fields\": {\n \"assembly_code\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"concatenated_string\",\n \"named\": true\n },\n {\n \"type\": \"string_literal\",\n \"named\": true\n }\n ]\n },\n \"clobbers\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"gnu_asm_clobber_list\",\n \"named\": true\n }\n ]\n },\n \"goto_labels\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"gnu_asm_goto_list\",\n \"named\": true\n }\n ]\n },\n \"input_operands\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"gnu_asm_input_operand_list\",\n \"named\": true\n }\n ]\n },\n \"output_operands\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"gnu_asm_output_operand_list\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"gnu_asm_qualifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"gnu_asm_goto_list\",\n \"named\": true,\n \"fields\": {\n \"label\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"gnu_asm_input_operand\",\n \"named\": true,\n \"fields\": {\n \"constraint\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"string_literal\",\n \"named\": true\n }\n ]\n },\n \"symbol\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n },\n \"value\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"gnu_asm_input_operand_list\",\n \"named\": true,\n \"fields\": {\n \"operand\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"gnu_asm_input_operand\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"gnu_asm_output_operand\",\n \"named\": true,\n \"fields\": {\n \"constraint\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"string_literal\",\n \"named\": true\n }\n ]\n },\n \"symbol\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n },\n \"value\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"gnu_asm_output_operand_list\",\n \"named\": true,\n \"fields\": {\n \"operand\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"gnu_asm_output_operand\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"gnu_asm_qualifier\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"goto_statement\",\n \"named\": true,\n \"fields\": {\n \"label\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"statement_identifier\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"if_statement\",\n \"named\": true,\n \"fields\": {\n \"alternative\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"else_clause\",\n \"named\": true\n }\n ]\n },\n \"condition\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n }\n ]\n },\n \"consequence\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"statement\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"implementation_definition\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"declaration\",\n \"named\": true\n },\n {\n \"type\": \"function_definition\",\n \"named\": true\n },\n {\n \"type\": \"macro_type_specifier\",\n \"named\": true\n },\n {\n \"type\": \"method_definition\",\n \"named\": true\n },\n {\n \"type\": \"preproc_call\",\n \"named\": true\n },\n {\n \"type\": \"preproc_def\",\n \"named\": true\n },\n {\n \"type\": \"preproc_function_def\",\n \"named\": true\n },\n {\n \"type\": \"preproc_if\",\n \"named\": true\n },\n {\n \"type\": \"preproc_ifdef\",\n \"named\": true\n },\n {\n \"type\": \"preproc_undef\",\n \"named\": true\n },\n {\n \"type\": \"property_implementation\",\n \"named\": true\n },\n {\n \"type\": \"struct_specifier\",\n \"named\": true\n },\n {\n \"type\": \"type_definition\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"init_declarator\",\n \"named\": true,\n \"fields\": {\n \"declarator\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_declarator\",\n \"named\": true\n }\n ]\n },\n \"value\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"initializer_list\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"attribute_specifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"initializer_list\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"initializer_list\",\n \"named\": true\n },\n {\n \"type\": \"initializer_pair\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"initializer_pair\",\n \"named\": true,\n \"fields\": {\n \"designator\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"field_designator\",\n \"named\": true\n },\n {\n \"type\": \"field_identifier\",\n \"named\": true\n },\n {\n \"type\": \"subscript_designator\",\n \"named\": true\n },\n {\n \"type\": \"subscript_range_designator\",\n \"named\": true\n }\n ]\n },\n \"value\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"initializer_list\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"instance_variable\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"atomic_declaration\",\n \"named\": true\n },\n {\n \"type\": \"preproc_if\",\n \"named\": true\n },\n {\n \"type\": \"preproc_ifdef\",\n \"named\": true\n },\n {\n \"type\": \"struct_declaration\",\n \"named\": true\n },\n {\n \"type\": \"visibility_specification\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"instance_variables\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"attribute_declaration\",\n \"named\": true\n },\n {\n \"type\": \"attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"instance_variable\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"keyword_declarator\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"method_type\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"labeled_statement\",\n \"named\": true,\n \"fields\": {\n \"label\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"statement_identifier\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"declaration\",\n \"named\": true\n },\n {\n \"type\": \"statement\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"linkage_specification\",\n \"named\": true,\n \"fields\": {\n \"body\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"declaration\",\n \"named\": true\n },\n {\n \"type\": \"declaration_list\",\n \"named\": true\n },\n {\n \"type\": \"function_definition\",\n \"named\": true\n }\n ]\n },\n \"value\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"string_literal\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"macro_type_specifier\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_descriptor\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"message_expression\",\n \"named\": true,\n \"fields\": {\n \"method\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n },\n \"receiver\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"generic_specifier\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"method_declaration\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"attribute_declaration\",\n \"named\": true\n },\n {\n \"type\": \"attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"availability_attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"keyword_declarator\",\n \"named\": true\n },\n {\n \"type\": \"method_parameter\",\n \"named\": true\n },\n {\n \"type\": \"method_type\",\n \"named\": true\n },\n {\n \"type\": \"ms_declspec_modifier\",\n \"named\": true\n },\n {\n \"type\": \"storage_class_specifier\",\n \"named\": true\n },\n {\n \"type\": \"type_qualifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"method_definition\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"attribute_declaration\",\n \"named\": true\n },\n {\n \"type\": \"attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"availability_attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"compound_statement\",\n \"named\": true\n },\n {\n \"type\": \"declaration\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"keyword_declarator\",\n \"named\": true\n },\n {\n \"type\": \"method_parameter\",\n \"named\": true\n },\n {\n \"type\": \"method_type\",\n \"named\": true\n },\n {\n \"type\": \"ms_declspec_modifier\",\n \"named\": true\n },\n {\n \"type\": \"storage_class_specifier\",\n \"named\": true\n },\n {\n \"type\": \"type_qualifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"method_identifier\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"method_parameter\",\n \"named\": true,\n \"fields\": {\n \"declarator\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_declarator\",\n \"named\": true\n },\n {\n \"type\": \"init_declarator\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_specifier\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"attribute_declaration\",\n \"named\": true\n },\n {\n \"type\": \"attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"availability_attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"method_type\",\n \"named\": true\n },\n {\n \"type\": \"ms_declspec_modifier\",\n \"named\": true\n },\n {\n \"type\": \"storage_class_specifier\",\n \"named\": true\n },\n {\n \"type\": \"type_qualifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"method_type\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"parameterized_arguments\",\n \"named\": true\n },\n {\n \"type\": \"type_name\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"module_import\",\n \"named\": true,\n \"fields\": {\n \"path\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \".\",\n \"named\": false\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"ms_asm_block\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"ms_based_modifier\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"argument_list\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"ms_call_modifier\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"ms_declspec_modifier\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"ms_pointer_modifier\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"ms_restrict_modifier\",\n \"named\": true\n },\n {\n \"type\": \"ms_signed_ptr_modifier\",\n \"named\": true\n },\n {\n \"type\": \"ms_unaligned_ptr_modifier\",\n \"named\": true\n },\n {\n \"type\": \"ms_unsigned_ptr_modifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"ms_unaligned_ptr_modifier\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"null\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"objc_bridge\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"offsetof_expression\",\n \"named\": true,\n \"fields\": {\n \"member\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"field_identifier\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_descriptor\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"parameter_declaration\",\n \"named\": true,\n \"fields\": {\n \"declarator\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_abstract_declarator\",\n \"named\": true\n },\n {\n \"type\": \"_declarator\",\n \"named\": true\n },\n {\n \"type\": \"attribute_declaration\",\n \"named\": true\n },\n {\n \"type\": \"attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"availability_attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"ms_declspec_modifier\",\n \"named\": true\n },\n {\n \"type\": \"storage_class_specifier\",\n \"named\": true\n },\n {\n \"type\": \"type_qualifier\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_specifier\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"attribute_declaration\",\n \"named\": true\n },\n {\n \"type\": \"attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"availability_attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"ms_declspec_modifier\",\n \"named\": true\n },\n {\n \"type\": \"storage_class_specifier\",\n \"named\": true\n },\n {\n \"type\": \"type_qualifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"parameter_list\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"compound_statement\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"parameter_declaration\",\n \"named\": true\n },\n {\n \"type\": \"variadic_parameter\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"parameterized_arguments\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_identifier\",\n \"named\": true\n },\n {\n \"type\": \"type_name\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"parenthesized_declarator\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_declarator\",\n \"named\": true\n },\n {\n \"type\": \"_field_declarator\",\n \"named\": true\n },\n {\n \"type\": \"_type_declarator\",\n \"named\": true\n },\n {\n \"type\": \"attribute_declaration\",\n \"named\": true\n },\n {\n \"type\": \"attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"availability_attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"ms_declspec_modifier\",\n \"named\": true\n },\n {\n \"type\": \"storage_class_specifier\",\n \"named\": true\n },\n {\n \"type\": \"type_qualifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"comma_expression\",\n \"named\": true\n },\n {\n \"type\": \"compound_statement\",\n \"named\": true\n },\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"preproc_defined\",\n \"named\": true\n },\n {\n \"type\": \"system_lib_string\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"platform\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"pointer_declarator\",\n \"named\": true,\n \"fields\": {\n \"declarator\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_declarator\",\n \"named\": true\n },\n {\n \"type\": \"_field_declarator\",\n \"named\": true\n },\n {\n \"type\": \"_type_declarator\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"attribute_declaration\",\n \"named\": true\n },\n {\n \"type\": \"attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"availability_attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"ms_based_modifier\",\n \"named\": true\n },\n {\n \"type\": \"ms_declspec_modifier\",\n \"named\": true\n },\n {\n \"type\": \"ms_pointer_modifier\",\n \"named\": true\n },\n {\n \"type\": \"storage_class_specifier\",\n \"named\": true\n },\n {\n \"type\": \"type_qualifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"pointer_expression\",\n \"named\": true,\n \"fields\": {\n \"argument\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n },\n \"operator\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"&\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n }\n ]\n }\n }\n },\n {\n \"type\": \"preproc_call\",\n \"named\": true,\n \"fields\": {\n \"argument\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"preproc_arg\",\n \"named\": true\n }\n ]\n },\n \"directive\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"preproc_directive\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"preproc_def\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n },\n \"value\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"preproc_arg\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"preproc_defined\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"preproc_elif\",\n \"named\": true,\n \"fields\": {\n \"alternative\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"preproc_elif\",\n \"named\": true\n },\n {\n \"type\": \"preproc_elifdef\",\n \"named\": true\n },\n {\n \"type\": \"preproc_else\",\n \"named\": true\n }\n ]\n },\n \"condition\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"char_literal\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"number_literal\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"preproc_defined\",\n \"named\": true\n },\n {\n \"type\": \"system_lib_string\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"atdef_field\",\n \"named\": true\n },\n {\n \"type\": \"attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"class_declaration\",\n \"named\": true\n },\n {\n \"type\": \"class_implementation\",\n \"named\": true\n },\n {\n \"type\": \"class_interface\",\n \"named\": true\n },\n {\n \"type\": \"compatibility_alias_declaration\",\n \"named\": true\n },\n {\n \"type\": \"declaration\",\n \"named\": true\n },\n {\n \"type\": \"enumerator\",\n \"named\": true\n },\n {\n \"type\": \"field_declaration\",\n \"named\": true\n },\n {\n \"type\": \"function_definition\",\n \"named\": true\n },\n {\n \"type\": \"implementation_definition\",\n \"named\": true\n },\n {\n \"type\": \"linkage_specification\",\n \"named\": true\n },\n {\n \"type\": \"method_declaration\",\n \"named\": true\n },\n {\n \"type\": \"module_import\",\n \"named\": true\n },\n {\n \"type\": \"preproc_call\",\n \"named\": true\n },\n {\n \"type\": \"preproc_def\",\n \"named\": true\n },\n {\n \"type\": \"preproc_function_def\",\n \"named\": true\n },\n {\n \"type\": \"preproc_if\",\n \"named\": true\n },\n {\n \"type\": \"preproc_ifdef\",\n \"named\": true\n },\n {\n \"type\": \"preproc_include\",\n \"named\": true\n },\n {\n \"type\": \"preproc_linemarker\",\n \"named\": true\n },\n {\n \"type\": \"preproc_undef\",\n \"named\": true\n },\n {\n \"type\": \"property_declaration\",\n \"named\": true\n },\n {\n \"type\": \"property_implementation\",\n \"named\": true\n },\n {\n \"type\": \"protocol_declaration\",\n \"named\": true\n },\n {\n \"type\": \"protocol_forward_declaration\",\n \"named\": true\n },\n {\n \"type\": \"statement\",\n \"named\": true\n },\n {\n \"type\": \"type_definition\",\n \"named\": true\n },\n {\n \"type\": \"type_specifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"preproc_elifdef\",\n \"named\": true,\n \"fields\": {\n \"alternative\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"preproc_elif\",\n \"named\": true\n },\n {\n \"type\": \"preproc_elifdef\",\n \"named\": true\n },\n {\n \"type\": \"preproc_else\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"atdef_field\",\n \"named\": true\n },\n {\n \"type\": \"attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"class_declaration\",\n \"named\": true\n },\n {\n \"type\": \"class_implementation\",\n \"named\": true\n },\n {\n \"type\": \"class_interface\",\n \"named\": true\n },\n {\n \"type\": \"compatibility_alias_declaration\",\n \"named\": true\n },\n {\n \"type\": \"declaration\",\n \"named\": true\n },\n {\n \"type\": \"field_declaration\",\n \"named\": true\n },\n {\n \"type\": \"function_definition\",\n \"named\": true\n },\n {\n \"type\": \"linkage_specification\",\n \"named\": true\n },\n {\n \"type\": \"module_import\",\n \"named\": true\n },\n {\n \"type\": \"preproc_call\",\n \"named\": true\n },\n {\n \"type\": \"preproc_def\",\n \"named\": true\n },\n {\n \"type\": \"preproc_function_def\",\n \"named\": true\n },\n {\n \"type\": \"preproc_if\",\n \"named\": true\n },\n {\n \"type\": \"preproc_ifdef\",\n \"named\": true\n },\n {\n \"type\": \"preproc_include\",\n \"named\": true\n },\n {\n \"type\": \"preproc_linemarker\",\n \"named\": true\n },\n {\n \"type\": \"preproc_undef\",\n \"named\": true\n },\n {\n \"type\": \"property_implementation\",\n \"named\": true\n },\n {\n \"type\": \"protocol_declaration\",\n \"named\": true\n },\n {\n \"type\": \"protocol_forward_declaration\",\n \"named\": true\n },\n {\n \"type\": \"statement\",\n \"named\": true\n },\n {\n \"type\": \"type_definition\",\n \"named\": true\n },\n {\n \"type\": \"type_specifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"preproc_else\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"atdef_field\",\n \"named\": true\n },\n {\n \"type\": \"attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"class_declaration\",\n \"named\": true\n },\n {\n \"type\": \"class_implementation\",\n \"named\": true\n },\n {\n \"type\": \"class_interface\",\n \"named\": true\n },\n {\n \"type\": \"compatibility_alias_declaration\",\n \"named\": true\n },\n {\n \"type\": \"declaration\",\n \"named\": true\n },\n {\n \"type\": \"enumerator\",\n \"named\": true\n },\n {\n \"type\": \"field_declaration\",\n \"named\": true\n },\n {\n \"type\": \"function_definition\",\n \"named\": true\n },\n {\n \"type\": \"implementation_definition\",\n \"named\": true\n },\n {\n \"type\": \"linkage_specification\",\n \"named\": true\n },\n {\n \"type\": \"method_declaration\",\n \"named\": true\n },\n {\n \"type\": \"module_import\",\n \"named\": true\n },\n {\n \"type\": \"preproc_call\",\n \"named\": true\n },\n {\n \"type\": \"preproc_def\",\n \"named\": true\n },\n {\n \"type\": \"preproc_function_def\",\n \"named\": true\n },\n {\n \"type\": \"preproc_if\",\n \"named\": true\n },\n {\n \"type\": \"preproc_ifdef\",\n \"named\": true\n },\n {\n \"type\": \"preproc_include\",\n \"named\": true\n },\n {\n \"type\": \"preproc_linemarker\",\n \"named\": true\n },\n {\n \"type\": \"preproc_undef\",\n \"named\": true\n },\n {\n \"type\": \"property_declaration\",\n \"named\": true\n },\n {\n \"type\": \"property_implementation\",\n \"named\": true\n },\n {\n \"type\": \"protocol_declaration\",\n \"named\": true\n },\n {\n \"type\": \"protocol_forward_declaration\",\n \"named\": true\n },\n {\n \"type\": \"statement\",\n \"named\": true\n },\n {\n \"type\": \"type_definition\",\n \"named\": true\n },\n {\n \"type\": \"type_specifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"preproc_function_def\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n },\n \"parameters\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"preproc_params\",\n \"named\": true\n }\n ]\n },\n \"value\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"preproc_arg\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"preproc_if\",\n \"named\": true,\n \"fields\": {\n \"alternative\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"preproc_elif\",\n \"named\": true\n },\n {\n \"type\": \"preproc_elifdef\",\n \"named\": true\n },\n {\n \"type\": \"preproc_else\",\n \"named\": true\n }\n ]\n },\n \"condition\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"binary_expression\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"char_literal\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"number_literal\",\n \"named\": true\n },\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n },\n {\n \"type\": \"preproc_defined\",\n \"named\": true\n },\n {\n \"type\": \"system_lib_string\",\n \"named\": true\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"atdef_field\",\n \"named\": true\n },\n {\n \"type\": \"attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"class_declaration\",\n \"named\": true\n },\n {\n \"type\": \"class_implementation\",\n \"named\": true\n },\n {\n \"type\": \"class_interface\",\n \"named\": true\n },\n {\n \"type\": \"compatibility_alias_declaration\",\n \"named\": true\n },\n {\n \"type\": \"declaration\",\n \"named\": true\n },\n {\n \"type\": \"field_declaration\",\n \"named\": true\n },\n {\n \"type\": \"function_definition\",\n \"named\": true\n },\n {\n \"type\": \"implementation_definition\",\n \"named\": true\n },\n {\n \"type\": \"linkage_specification\",\n \"named\": true\n },\n {\n \"type\": \"method_declaration\",\n \"named\": true\n },\n {\n \"type\": \"module_import\",\n \"named\": true\n },\n {\n \"type\": \"preproc_call\",\n \"named\": true\n },\n {\n \"type\": \"preproc_def\",\n \"named\": true\n },\n {\n \"type\": \"preproc_function_def\",\n \"named\": true\n },\n {\n \"type\": \"preproc_if\",\n \"named\": true\n },\n {\n \"type\": \"preproc_ifdef\",\n \"named\": true\n },\n {\n \"type\": \"preproc_include\",\n \"named\": true\n },\n {\n \"type\": \"preproc_linemarker\",\n \"named\": true\n },\n {\n \"type\": \"preproc_undef\",\n \"named\": true\n },\n {\n \"type\": \"property_declaration\",\n \"named\": true\n },\n {\n \"type\": \"property_implementation\",\n \"named\": true\n },\n {\n \"type\": \"protocol_declaration\",\n \"named\": true\n },\n {\n \"type\": \"protocol_forward_declaration\",\n \"named\": true\n },\n {\n \"type\": \"statement\",\n \"named\": true\n },\n {\n \"type\": \"type_definition\",\n \"named\": true\n },\n {\n \"type\": \"type_specifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"preproc_ifdef\",\n \"named\": true,\n \"fields\": {\n \"alternative\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"preproc_elif\",\n \"named\": true\n },\n {\n \"type\": \"preproc_elifdef\",\n \"named\": true\n },\n {\n \"type\": \"preproc_else\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"atdef_field\",\n \"named\": true\n },\n {\n \"type\": \"attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"class_declaration\",\n \"named\": true\n },\n {\n \"type\": \"class_implementation\",\n \"named\": true\n },\n {\n \"type\": \"class_interface\",\n \"named\": true\n },\n {\n \"type\": \"compatibility_alias_declaration\",\n \"named\": true\n },\n {\n \"type\": \"declaration\",\n \"named\": true\n },\n {\n \"type\": \"enumerator\",\n \"named\": true\n },\n {\n \"type\": \"field_declaration\",\n \"named\": true\n },\n {\n \"type\": \"function_definition\",\n \"named\": true\n },\n {\n \"type\": \"linkage_specification\",\n \"named\": true\n },\n {\n \"type\": \"module_import\",\n \"named\": true\n },\n {\n \"type\": \"preproc_call\",\n \"named\": true\n },\n {\n \"type\": \"preproc_def\",\n \"named\": true\n },\n {\n \"type\": \"preproc_function_def\",\n \"named\": true\n },\n {\n \"type\": \"preproc_if\",\n \"named\": true\n },\n {\n \"type\": \"preproc_ifdef\",\n \"named\": true\n },\n {\n \"type\": \"preproc_include\",\n \"named\": true\n },\n {\n \"type\": \"preproc_linemarker\",\n \"named\": true\n },\n {\n \"type\": \"preproc_undef\",\n \"named\": true\n },\n {\n \"type\": \"property_implementation\",\n \"named\": true\n },\n {\n \"type\": \"protocol_declaration\",\n \"named\": true\n },\n {\n \"type\": \"protocol_forward_declaration\",\n \"named\": true\n },\n {\n \"type\": \"statement\",\n \"named\": true\n },\n {\n \"type\": \"type_definition\",\n \"named\": true\n },\n {\n \"type\": \"type_specifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"preproc_include\",\n \"named\": true,\n \"fields\": {\n \"directive\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"#import\",\n \"named\": false\n },\n {\n \"type\": \"#include\",\n \"named\": false\n }\n ]\n },\n \"path\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"string_literal\",\n \"named\": true\n },\n {\n \"type\": \"system_lib_string\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"preproc_linemarker\",\n \"named\": true,\n \"fields\": {\n \"column\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"number_literal\",\n \"named\": true\n }\n ]\n },\n \"filename\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"string_literal\",\n \"named\": true\n }\n ]\n },\n \"row\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"number_literal\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"number_literal\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"preproc_params\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"preproc_undef\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"property_attribute\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"property_attributes_declaration\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"property_attribute\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"property_declaration\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"atomic_declaration\",\n \"named\": true\n },\n {\n \"type\": \"attribute_declaration\",\n \"named\": true\n },\n {\n \"type\": \"attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"availability_attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"ms_declspec_modifier\",\n \"named\": true\n },\n {\n \"type\": \"property_attributes_declaration\",\n \"named\": true\n },\n {\n \"type\": \"storage_class_specifier\",\n \"named\": true\n },\n {\n \"type\": \"struct_declaration\",\n \"named\": true\n },\n {\n \"type\": \"type_qualifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"property_implementation\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"protocol_declaration\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"attribute_declaration\",\n \"named\": true\n },\n {\n \"type\": \"attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"availability_attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"declaration\",\n \"named\": true\n },\n {\n \"type\": \"function_definition\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"method_declaration\",\n \"named\": true\n },\n {\n \"type\": \"ms_declspec_modifier\",\n \"named\": true\n },\n {\n \"type\": \"preproc_call\",\n \"named\": true\n },\n {\n \"type\": \"preproc_def\",\n \"named\": true\n },\n {\n \"type\": \"preproc_if\",\n \"named\": true\n },\n {\n \"type\": \"preproc_ifdef\",\n \"named\": true\n },\n {\n \"type\": \"preproc_undef\",\n \"named\": true\n },\n {\n \"type\": \"property_declaration\",\n \"named\": true\n },\n {\n \"type\": \"protocol_reference_list\",\n \"named\": true\n },\n {\n \"type\": \"qualified_protocol_interface_declaration\",\n \"named\": true\n },\n {\n \"type\": \"storage_class_specifier\",\n \"named\": true\n },\n {\n \"type\": \"struct_specifier\",\n \"named\": true\n },\n {\n \"type\": \"type_definition\",\n \"named\": true\n },\n {\n \"type\": \"type_qualifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"protocol_forward_declaration\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"attribute_declaration\",\n \"named\": true\n },\n {\n \"type\": \"attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"availability_attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"ms_declspec_modifier\",\n \"named\": true\n },\n {\n \"type\": \"storage_class_specifier\",\n \"named\": true\n },\n {\n \"type\": \"type_qualifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"protocol_qualifier\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"protocol_reference_list\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"qualified_protocol_interface_declaration\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"declaration\",\n \"named\": true\n },\n {\n \"type\": \"function_definition\",\n \"named\": true\n },\n {\n \"type\": \"method_declaration\",\n \"named\": true\n },\n {\n \"type\": \"preproc_call\",\n \"named\": true\n },\n {\n \"type\": \"preproc_def\",\n \"named\": true\n },\n {\n \"type\": \"preproc_if\",\n \"named\": true\n },\n {\n \"type\": \"preproc_ifdef\",\n \"named\": true\n },\n {\n \"type\": \"preproc_undef\",\n \"named\": true\n },\n {\n \"type\": \"property_declaration\",\n \"named\": true\n },\n {\n \"type\": \"struct_specifier\",\n \"named\": true\n },\n {\n \"type\": \"type_definition\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"range_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"return_statement\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"comma_expression\",\n \"named\": true\n },\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"method_identifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"sized_type_specifier\",\n \"named\": true,\n \"fields\": {\n \"type\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"primitive_type\",\n \"named\": true\n },\n {\n \"type\": \"type_identifier\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_qualifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"sizeof_expression\",\n \"named\": true,\n \"fields\": {\n \"type\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_descriptor\",\n \"named\": true\n }\n ]\n },\n \"value\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"storage_class_specifier\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"string_literal\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"escape_sequence\",\n \"named\": true\n },\n {\n \"type\": \"string_content\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"struct_declaration\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"attribute_declaration\",\n \"named\": true\n },\n {\n \"type\": \"attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"availability_attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"ms_declspec_modifier\",\n \"named\": true\n },\n {\n \"type\": \"specifier_qualifier\",\n \"named\": true\n },\n {\n \"type\": \"storage_class_specifier\",\n \"named\": true\n },\n {\n \"type\": \"struct_declarator\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"struct_declarator\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_declarator\",\n \"named\": true\n },\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"struct_specifier\",\n \"named\": true,\n \"fields\": {\n \"body\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"field_declaration_list\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_identifier\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"ms_declspec_modifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"subscript_designator\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"subscript_expression\",\n \"named\": true,\n \"fields\": {\n \"argument\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n },\n \"index\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"subscript_range_designator\",\n \"named\": true,\n \"fields\": {\n \"end\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n },\n \"start\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"switch_statement\",\n \"named\": true,\n \"fields\": {\n \"body\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"compound_statement\",\n \"named\": true\n }\n ]\n },\n \"condition\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"synchronized_statement\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"compound_statement\",\n \"named\": true\n },\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"throw_statement\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"translation_unit\",\n \"named\": true,\n \"root\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"attributed_statement\",\n \"named\": true\n },\n {\n \"type\": \"break_statement\",\n \"named\": true\n },\n {\n \"type\": \"case_statement\",\n \"named\": true\n },\n {\n \"type\": \"class_declaration\",\n \"named\": true\n },\n {\n \"type\": \"class_implementation\",\n \"named\": true\n },\n {\n \"type\": \"class_interface\",\n \"named\": true\n },\n {\n \"type\": \"compatibility_alias_declaration\",\n \"named\": true\n },\n {\n \"type\": \"compound_statement\",\n \"named\": true\n },\n {\n \"type\": \"continue_statement\",\n \"named\": true\n },\n {\n \"type\": \"declaration\",\n \"named\": true\n },\n {\n \"type\": \"do_statement\",\n \"named\": true\n },\n {\n \"type\": \"expression_statement\",\n \"named\": true\n },\n {\n \"type\": \"for_statement\",\n \"named\": true\n },\n {\n \"type\": \"function_definition\",\n \"named\": true\n },\n {\n \"type\": \"goto_statement\",\n \"named\": true\n },\n {\n \"type\": \"if_statement\",\n \"named\": true\n },\n {\n \"type\": \"labeled_statement\",\n \"named\": true\n },\n {\n \"type\": \"linkage_specification\",\n \"named\": true\n },\n {\n \"type\": \"module_import\",\n \"named\": true\n },\n {\n \"type\": \"preproc_call\",\n \"named\": true\n },\n {\n \"type\": \"preproc_def\",\n \"named\": true\n },\n {\n \"type\": \"preproc_function_def\",\n \"named\": true\n },\n {\n \"type\": \"preproc_if\",\n \"named\": true\n },\n {\n \"type\": \"preproc_ifdef\",\n \"named\": true\n },\n {\n \"type\": \"preproc_include\",\n \"named\": true\n },\n {\n \"type\": \"preproc_linemarker\",\n \"named\": true\n },\n {\n \"type\": \"preproc_undef\",\n \"named\": true\n },\n {\n \"type\": \"protocol_declaration\",\n \"named\": true\n },\n {\n \"type\": \"protocol_forward_declaration\",\n \"named\": true\n },\n {\n \"type\": \"return_statement\",\n \"named\": true\n },\n {\n \"type\": \"switch_statement\",\n \"named\": true\n },\n {\n \"type\": \"type_definition\",\n \"named\": true\n },\n {\n \"type\": \"type_specifier\",\n \"named\": true\n },\n {\n \"type\": \"while_statement\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"try_statement\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"catch_clause\",\n \"named\": true\n },\n {\n \"type\": \"compound_statement\",\n \"named\": true\n },\n {\n \"type\": \"finally_clause\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"type_definition\",\n \"named\": true,\n \"fields\": {\n \"declarator\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_type_declarator\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_specifier\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"attribute_declaration\",\n \"named\": true\n },\n {\n \"type\": \"attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"availability_attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"ms_declspec_modifier\",\n \"named\": true\n },\n {\n \"type\": \"storage_class_specifier\",\n \"named\": true\n },\n {\n \"type\": \"type_qualifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"type_descriptor\",\n \"named\": true,\n \"fields\": {\n \"declarator\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"_abstract_declarator\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_specifier\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_qualifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"type_name\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"_abstract_declarator\",\n \"named\": true\n },\n {\n \"type\": \"_declarator\",\n \"named\": true\n },\n {\n \"type\": \"attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"protocol_reference_list\",\n \"named\": true\n },\n {\n \"type\": \"specifier_qualifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"type_qualifier\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"alignas_qualifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"typedefed_specifier\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"protocol_reference_list\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"typeof_specifier\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"type_descriptor\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"unary_expression\",\n \"named\": true,\n \"fields\": {\n \"argument\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"preproc_defined\",\n \"named\": true\n },\n {\n \"type\": \"system_lib_string\",\n \"named\": true\n }\n ]\n },\n \"operator\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n }\n }\n },\n {\n \"type\": \"union_specifier\",\n \"named\": true,\n \"fields\": {\n \"body\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"field_declaration_list\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_identifier\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"attribute_specifier\",\n \"named\": true\n },\n {\n \"type\": \"ms_declspec_modifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"update_expression\",\n \"named\": true,\n \"fields\": {\n \"argument\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n }\n ]\n },\n \"operator\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n }\n ]\n }\n }\n },\n {\n \"type\": \"va_arg_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"expression\",\n \"named\": true\n },\n {\n \"type\": \"type_descriptor\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"variadic_parameter\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"version\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"number_literal\",\n \"named\": true\n },\n {\n \"type\": \"platform\",\n \"named\": true\n },\n {\n \"type\": \"version_number\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"visibility_specification\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"while_statement\",\n \"named\": true,\n \"fields\": {\n \"body\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"statement\",\n \"named\": true\n }\n ]\n },\n \"condition\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"parenthesized_expression\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"\\n\",\n \"named\": false\n },\n {\n \"type\": \"!\",\n \"named\": false\n },\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"\\\"\",\n \"named\": false\n },\n {\n \"type\": \"#\",\n \"named\": false\n },\n {\n \"type\": \"#define\",\n \"named\": false\n },\n {\n \"type\": \"#elif\",\n \"named\": false\n },\n {\n \"type\": \"#elifdef\",\n \"named\": false\n },\n {\n \"type\": \"#elifndef\",\n \"named\": false\n },\n {\n \"type\": \"#else\",\n \"named\": false\n },\n {\n \"type\": \"#endif\",\n \"named\": false\n },\n {\n \"type\": \"#if\",\n \"named\": false\n },\n {\n \"type\": \"#ifdef\",\n \"named\": false\n },\n {\n \"type\": \"#ifndef\",\n \"named\": false\n },\n {\n \"type\": \"#import\",\n \"named\": false\n },\n {\n \"type\": \"#include\",\n \"named\": false\n },\n {\n \"type\": \"#undef\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"%=\",\n \"named\": false\n },\n {\n \"type\": \"&\",\n \"named\": false\n },\n {\n \"type\": \"&&\",\n \"named\": false\n },\n {\n \"type\": \"&=\",\n \"named\": false\n },\n {\n \"type\": \"\'\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \"(class)\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"*=\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \"+=\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"-=\",\n \"named\": false\n },\n {\n \"type\": \"->\",\n \"named\": false\n },\n {\n \"type\": \".\",\n \"named\": false\n },\n {\n \"type\": \"...\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \"/=\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"::\",\n \"named\": false\n },\n {\n \"type\": \";\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<<\",\n \"named\": false\n },\n {\n \"type\": \"<<=\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \">>\",\n \"named\": false\n },\n {\n \"type\": \">>=\",\n \"named\": false\n },\n {\n \"type\": \"?\",\n \"named\": false\n },\n {\n \"type\": \"@\",\n \"named\": false\n },\n {\n \"type\": \"@autoreleasepool\",\n \"named\": false\n },\n {\n \"type\": \"@available\",\n \"named\": false\n },\n {\n \"type\": \"@catch\",\n \"named\": false\n },\n {\n \"type\": \"@compatibility_alias\",\n \"named\": false\n },\n {\n \"type\": \"@defs\",\n \"named\": false\n },\n {\n \"type\": \"@dynamic\",\n \"named\": false\n },\n {\n \"type\": \"@encode\",\n \"named\": false\n },\n {\n \"type\": \"@end\",\n \"named\": false\n },\n {\n \"type\": \"@finally\",\n \"named\": false\n },\n {\n \"type\": \"@implementation\",\n \"named\": false\n },\n {\n \"type\": \"@import\",\n \"named\": false\n },\n {\n \"type\": \"@interface\",\n \"named\": false\n },\n {\n \"type\": \"@optional\",\n \"named\": false\n },\n {\n \"type\": \"@package\",\n \"named\": false\n },\n {\n \"type\": \"@private\",\n \"named\": false\n },\n {\n \"type\": \"@property\",\n \"named\": false\n },\n {\n \"type\": \"@protected\",\n \"named\": false\n },\n {\n \"type\": \"@protocol\",\n \"named\": false\n },\n {\n \"type\": \"@public\",\n \"named\": false\n },\n {\n \"type\": \"@required\",\n \"named\": false\n },\n {\n \"type\": \"@selector\",\n \"named\": false\n },\n {\n \"type\": \"@synchronized\",\n \"named\": false\n },\n {\n \"type\": \"@synthesize\",\n \"named\": false\n },\n {\n \"type\": \"@throw\",\n \"named\": false\n },\n {\n \"type\": \"@try\",\n \"named\": false\n },\n {\n \"type\": \"API_AVAILABLE\",\n \"named\": false\n },\n {\n \"type\": \"API_DEPRECATED\",\n \"named\": false\n },\n {\n \"type\": \"API_UNAVAILABLE\",\n \"named\": false\n },\n {\n \"type\": \"BOOL\",\n \"named\": false\n },\n {\n \"type\": \"CF_FORMAT_FUNCTION\",\n \"named\": false\n },\n {\n \"type\": \"CF_RETURNS_NOT_RETAINED\",\n \"named\": false\n },\n {\n \"type\": \"CF_RETURNS_RETAINED\",\n \"named\": false\n },\n {\n \"type\": \"CG_EXTERN\",\n \"named\": false\n },\n {\n \"type\": \"CG_INLINE\",\n \"named\": false\n },\n {\n \"type\": \"Class\",\n \"named\": false\n },\n {\n \"type\": \"DEPRECATED_ATTRIBUTE\",\n \"named\": false\n },\n {\n \"type\": \"DEPRECATED_MSG_ATTRIBUTE\",\n \"named\": false\n },\n {\n \"type\": \"FOUNDATION_EXPORT\",\n \"named\": false\n },\n {\n \"type\": \"FOUNDATION_EXTERN\",\n \"named\": false\n },\n {\n \"type\": \"FOUNDATION_STATIC_INLINE\",\n \"named\": false\n },\n {\n \"type\": \"IBInspectable\",\n \"named\": false\n },\n {\n \"type\": \"IBOutlet\",\n \"named\": false\n },\n {\n \"type\": \"IB_DESIGNABLE\",\n \"named\": false\n },\n {\n \"type\": \"IMP\",\n \"named\": false\n },\n {\n \"type\": \"L\\\"\",\n \"named\": false\n },\n {\n \"type\": \"L\'\",\n \"named\": false\n },\n {\n \"type\": \"NS_AUTOMATED_REFCOUNT_UNAVAILABLE\",\n \"named\": false\n },\n {\n \"type\": \"NS_AVAILABLE\",\n \"named\": false\n },\n {\n \"type\": \"NS_AVAILABLE_IOS\",\n \"named\": false\n },\n {\n \"type\": \"NS_CLASS_AVAILABLE_IOS\",\n \"named\": false\n },\n {\n \"type\": \"NS_CLASS_DEPRECATED_IOS\",\n \"named\": false\n },\n {\n \"type\": \"NS_DEPRECATED_IOS\",\n \"named\": false\n },\n {\n \"type\": \"NS_ENUM_AVAILABLE_IOS\",\n \"named\": false\n },\n {\n \"type\": \"NS_ENUM_DEPRECATED_IOS\",\n \"named\": false\n },\n {\n \"type\": \"NS_EXTENSION_UNAVAILABLE_IOS\",\n \"named\": false\n },\n {\n \"type\": \"NS_FORMAT_FUNCTION\",\n \"named\": false\n },\n {\n \"type\": \"NS_INLINE\",\n \"named\": false\n },\n {\n \"type\": \"NS_REQUIRES_NIL_TERMINATION\",\n \"named\": false\n },\n {\n \"type\": \"NS_ROOT_CLASS\",\n \"named\": false\n },\n {\n \"type\": \"NS_SWIFT_NAME\",\n \"named\": false\n },\n {\n \"type\": \"NS_SWIFT_UNAVAILABLE\",\n \"named\": false\n },\n {\n \"type\": \"NS_UNAVAILABLE\",\n \"named\": false\n },\n {\n \"type\": \"NS_VALID_UNTIL_END_OF_SCOPE\",\n \"named\": false\n },\n {\n \"type\": \"NULL\",\n \"named\": false\n },\n {\n \"type\": \"OBJC_EXPORT\",\n \"named\": false\n },\n {\n \"type\": \"OBJC_ROOT_CLASS\",\n \"named\": false\n },\n {\n \"type\": \"SEL\",\n \"named\": false\n },\n {\n \"type\": \"U\\\"\",\n \"named\": false\n },\n {\n \"type\": \"U\'\",\n \"named\": false\n },\n {\n \"type\": \"UIKIT_EXTERN\",\n \"named\": false\n },\n {\n \"type\": \"UI_APPEARANCE_SELECTOR\",\n \"named\": false\n },\n {\n \"type\": \"UNAVAILABLE_ATTRIBUTE\",\n \"named\": false\n },\n {\n \"type\": \"[\",\n \"named\": false\n },\n {\n \"type\": \"]\",\n \"named\": false\n },\n {\n \"type\": \"^\",\n \"named\": false\n },\n {\n \"type\": \"^=\",\n \"named\": false\n },\n {\n \"type\": \"_Alignas\",\n \"named\": false\n },\n {\n \"type\": \"_Alignof\",\n \"named\": false\n },\n {\n \"type\": \"_Atomic\",\n \"named\": false\n },\n {\n \"type\": \"_Complex\",\n \"named\": false\n },\n {\n \"type\": \"_Generic\",\n \"named\": false\n },\n {\n \"type\": \"_Nonnull\",\n \"named\": false\n },\n {\n \"type\": \"_Noreturn\",\n \"named\": false\n },\n {\n \"type\": \"_Null_unspecified\",\n \"named\": false\n },\n {\n \"type\": \"_Nullable\",\n \"named\": false\n },\n {\n \"type\": \"_Nullable_result\",\n \"named\": false\n },\n {\n \"type\": \"__IOS_AVAILABLE\",\n \"named\": false\n },\n {\n \"type\": \"__OSX_AVAILABLE_STARTING\",\n \"named\": false\n },\n {\n \"type\": \"__alignof\",\n \"named\": false\n },\n {\n \"type\": \"__alignof__\",\n \"named\": false\n },\n {\n \"type\": \"__asm\",\n \"named\": false\n },\n {\n \"type\": \"__asm__\",\n \"named\": false\n },\n {\n \"type\": \"__attribute\",\n \"named\": false\n },\n {\n \"type\": \"__attribute__\",\n \"named\": false\n },\n {\n \"type\": \"__autoreleasing\",\n \"named\": false\n },\n {\n \"type\": \"__based\",\n \"named\": false\n },\n {\n \"type\": \"__block\",\n \"named\": false\n },\n {\n \"type\": \"__bridge\",\n \"named\": false\n },\n {\n \"type\": \"__bridge_retained\",\n \"named\": false\n },\n {\n \"type\": \"__bridge_transfer\",\n \"named\": false\n },\n {\n \"type\": \"__builtin_available\",\n \"named\": false\n },\n {\n \"type\": \"__catch\",\n \"named\": false\n },\n {\n \"type\": \"__cdecl\",\n \"named\": false\n },\n {\n \"type\": \"__clrcall\",\n \"named\": false\n },\n {\n \"type\": \"__complex\",\n \"named\": false\n },\n {\n \"type\": \"__const\",\n \"named\": false\n },\n {\n \"type\": \"__contravariant\",\n \"named\": false\n },\n {\n \"type\": \"__covariant\",\n \"named\": false\n },\n {\n \"type\": \"__declspec\",\n \"named\": false\n },\n {\n \"type\": \"__deprecated_enum_msg\",\n \"named\": false\n },\n {\n \"type\": \"__deprecated_msg\",\n \"named\": false\n },\n {\n \"type\": \"__extension__\",\n \"named\": false\n },\n {\n \"type\": \"__fastcall\",\n \"named\": false\n },\n {\n \"type\": \"__finally\",\n \"named\": false\n },\n {\n \"type\": \"__forceinline\",\n \"named\": false\n },\n {\n \"type\": \"__imag\",\n \"named\": false\n },\n {\n \"type\": \"__inline\",\n \"named\": false\n },\n {\n \"type\": \"__inline__\",\n \"named\": false\n },\n {\n \"type\": \"__kindof\",\n \"named\": false\n },\n {\n \"type\": \"__nonnull\",\n \"named\": false\n },\n {\n \"type\": \"__nullable\",\n \"named\": false\n },\n {\n \"type\": \"__ptrauth_objc_class_ro\",\n \"named\": false\n },\n {\n \"type\": \"__ptrauth_objc_isa_pointer\",\n \"named\": false\n },\n {\n \"type\": \"__ptrauth_objc_super_pointer\",\n \"named\": false\n },\n {\n \"type\": \"__real\",\n \"named\": false\n },\n {\n \"type\": \"__restrict__\",\n \"named\": false\n },\n {\n \"type\": \"__stdcall\",\n \"named\": false\n },\n {\n \"type\": \"__strong\",\n \"named\": false\n },\n {\n \"type\": \"__thiscall\",\n \"named\": false\n },\n {\n \"type\": \"__thread\",\n \"named\": false\n },\n {\n \"type\": \"__try\",\n \"named\": false\n },\n {\n \"type\": \"__typeof\",\n \"named\": false\n },\n {\n \"type\": \"__typeof__\",\n \"named\": false\n },\n {\n \"type\": \"__unaligned\",\n \"named\": false\n },\n {\n \"type\": \"__unsafe_unretained\",\n \"named\": false\n },\n {\n \"type\": \"__unused\",\n \"named\": false\n },\n {\n \"type\": \"__vectorcall\",\n \"named\": false\n },\n {\n \"type\": \"__volatile__\",\n \"named\": false\n },\n {\n \"type\": \"__weak\",\n \"named\": false\n },\n {\n \"type\": \"_alignof\",\n \"named\": false\n },\n {\n \"type\": \"_unaligned\",\n \"named\": false\n },\n {\n \"type\": \"alignas\",\n \"named\": false\n },\n {\n \"type\": \"alignof\",\n \"named\": false\n },\n {\n \"type\": \"asm\",\n \"named\": false\n },\n {\n \"type\": \"auto\",\n \"named\": false\n },\n {\n \"type\": \"availability\",\n \"named\": false\n },\n {\n \"type\": \"break\",\n \"named\": false\n },\n {\n \"type\": \"bycopy\",\n \"named\": false\n },\n {\n \"type\": \"byref\",\n \"named\": false\n },\n {\n \"type\": \"case\",\n \"named\": false\n },\n {\n \"type\": \"character\",\n \"named\": true\n },\n {\n \"type\": \"class\",\n \"named\": false\n },\n {\n \"type\": \"comment\",\n \"named\": true\n },\n {\n \"type\": \"const\",\n \"named\": false\n },\n {\n \"type\": \"constexpr\",\n \"named\": false\n },\n {\n \"type\": \"continue\",\n \"named\": false\n },\n {\n \"type\": \"default\",\n \"named\": false\n },\n {\n \"type\": \"defined\",\n \"named\": false\n },\n {\n \"type\": \"do\",\n \"named\": false\n },\n {\n \"type\": \"else\",\n \"named\": false\n },\n {\n \"type\": \"enum\",\n \"named\": false\n },\n {\n \"type\": \"escape_sequence\",\n \"named\": true\n },\n {\n \"type\": \"extern\",\n \"named\": false\n },\n {\n \"type\": \"false\",\n \"named\": true\n },\n {\n \"type\": \"field_identifier\",\n \"named\": true\n },\n {\n \"type\": \"for\",\n \"named\": false\n },\n {\n \"type\": \"goto\",\n \"named\": false\n },\n {\n \"type\": \"id\",\n \"named\": false\n },\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"if\",\n \"named\": false\n },\n {\n \"type\": \"in\",\n \"named\": false\n },\n {\n \"type\": \"inline\",\n \"named\": false\n },\n {\n \"type\": \"inout\",\n \"named\": false\n },\n {\n \"type\": \"ios\",\n \"named\": false\n },\n {\n \"type\": \"long\",\n \"named\": false\n },\n {\n \"type\": \"macos\",\n \"named\": false\n },\n {\n \"type\": \"macosx\",\n \"named\": false\n },\n {\n \"type\": \"ms_restrict_modifier\",\n \"named\": true\n },\n {\n \"type\": \"ms_signed_ptr_modifier\",\n \"named\": true\n },\n {\n \"type\": \"ms_unsigned_ptr_modifier\",\n \"named\": true\n },\n {\n \"type\": \"noreturn\",\n \"named\": false\n },\n {\n \"type\": \"nothrow\",\n \"named\": false\n },\n {\n \"type\": \"nullable\",\n \"named\": false\n },\n {\n \"type\": \"nullptr\",\n \"named\": false\n },\n {\n \"type\": \"number_literal\",\n \"named\": true\n },\n {\n \"type\": \"objc_bridge_related\",\n \"named\": false\n },\n {\n \"type\": \"offsetof\",\n \"named\": false\n },\n {\n \"type\": \"oneway\",\n \"named\": false\n },\n {\n \"type\": \"out\",\n \"named\": false\n },\n {\n \"type\": \"preproc_arg\",\n \"named\": true\n },\n {\n \"type\": \"preproc_directive\",\n \"named\": true\n },\n {\n \"type\": \"primitive_type\",\n \"named\": true\n },\n {\n \"type\": \"register\",\n \"named\": false\n },\n {\n \"type\": \"restrict\",\n \"named\": false\n },\n {\n \"type\": \"return\",\n \"named\": false\n },\n {\n \"type\": \"short\",\n \"named\": false\n },\n {\n \"type\": \"signed\",\n \"named\": false\n },\n {\n \"type\": \"sizeof\",\n \"named\": false\n },\n {\n \"type\": \"statement_identifier\",\n \"named\": true\n },\n {\n \"type\": \"static\",\n \"named\": false\n },\n {\n \"type\": \"string_content\",\n \"named\": true\n },\n {\n \"type\": \"struct\",\n \"named\": false\n },\n {\n \"type\": \"switch\",\n \"named\": false\n },\n {\n \"type\": \"system_lib_string\",\n \"named\": true\n },\n {\n \"type\": \"thread_local\",\n \"named\": false\n },\n {\n \"type\": \"true\",\n \"named\": true\n },\n {\n \"type\": \"tvos\",\n \"named\": false\n },\n {\n \"type\": \"type_identifier\",\n \"named\": true\n },\n {\n \"type\": \"typedef\",\n \"named\": false\n },\n {\n \"type\": \"typeof\",\n \"named\": false\n },\n {\n \"type\": \"u\\\"\",\n \"named\": false\n },\n {\n \"type\": \"u\'\",\n \"named\": false\n },\n {\n \"type\": \"u8\\\"\",\n \"named\": false\n },\n {\n \"type\": \"u8\'\",\n \"named\": false\n },\n {\n \"type\": \"union\",\n \"named\": false\n },\n {\n \"type\": \"unsigned\",\n \"named\": false\n },\n {\n \"type\": \"va_arg\",\n \"named\": false\n },\n {\n \"type\": \"version_number\",\n \"named\": true\n },\n {\n \"type\": \"volatile\",\n \"named\": false\n },\n {\n \"type\": \"watchos\",\n \"named\": false\n },\n {\n \"type\": \"while\",\n \"named\": false\n },\n {\n \"type\": \"{\",\n \"named\": false\n },\n {\n \"type\": \"|\",\n \"named\": false\n },\n {\n \"type\": \"|=\",\n \"named\": false\n },\n {\n \"type\": \"||\",\n \"named\": false\n },\n {\n \"type\": \"}\",\n \"named\": false\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n]";
Expand description
The content of the node-types.json
file for this grammar.