1//===- ExtractAPI/APIRecords.inc --------------------------------*- C++ -*-===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8/// 9/// \file 10/// This file defines the classes defined from ExtractAPI's APIRecord 11/// 12//===----------------------------------------------------------------------===// 13 14#ifndef ABSTRACT_RECORD 15#define ABSTRACT_RECORD(CLASS, BASE) RECORD(CLASS, BASE) 16#endif 17#ifndef CONCRETE_RECORD 18#define CONCRETE_RECORD(CLASS, BASE, KIND) RECORD(CLASS, BASE) 19#endif 20#ifndef RECORD 21#define RECORD(CLASS, BASE) 22#endif 23 24CONCRETE_RECORD(NamespaceRecord, APIRecord, RK_Namespace) 25CONCRETE_RECORD(GlobalFunctionRecord, APIRecord, RK_GlobalFunction) 26CONCRETE_RECORD(GlobalFunctionTemplateRecord, GlobalFunctionRecord, 27 RK_GlobalFunctionTemplate) 28CONCRETE_RECORD(GlobalFunctionTemplateSpecializationRecord, 29 GlobalFunctionRecord, RK_GlobalFunctionTemplateSpecialization) 30CONCRETE_RECORD(GlobalVariableRecord, APIRecord, RK_GlobalVariable) 31CONCRETE_RECORD(GlobalVariableTemplateRecord, GlobalVariableRecord, 32 RK_GlobalVariableTemplate) 33CONCRETE_RECORD(GlobalVariableTemplateSpecializationRecord, 34 GlobalVariableRecord, RK_GlobalVariableTemplateSpecialization) 35CONCRETE_RECORD(GlobalVariableTemplatePartialSpecializationRecord, 36 GlobalVariableRecord, 37 RK_GlobalVariableTemplatePartialSpecialization) 38ABSTRACT_RECORD(TagRecord, APIRecord) 39CONCRETE_RECORD(EnumConstantRecord, APIRecord, RK_EnumConstant) 40CONCRETE_RECORD(EnumRecord, TagRecord, RK_Enum) 41ABSTRACT_RECORD(RecordFieldRecord, APIRecord) 42ABSTRACT_RECORD(RecordRecord, TagRecord) 43CONCRETE_RECORD(StructFieldRecord, RecordFieldRecord, RK_StructField) 44CONCRETE_RECORD(StructRecord, APIRecord, RK_Struct) 45CONCRETE_RECORD(UnionFieldRecord, RecordFieldRecord, RK_UnionField) 46CONCRETE_RECORD(UnionRecord, APIRecord, RK_Union) 47CONCRETE_RECORD(CXXFieldRecord, APIRecord, RK_CXXField) 48CONCRETE_RECORD(CXXFieldTemplateRecord, CXXFieldRecord, RK_CXXFieldTemplate) 49ABSTRACT_RECORD(CXXMethodRecord, APIRecord) 50CONCRETE_RECORD(CXXConstructorRecord, CXXMethodRecord, RK_CXXConstructorMethod) 51CONCRETE_RECORD(CXXDestructorRecord, CXXMethodRecord, RK_CXXDestructorMethod) 52CONCRETE_RECORD(CXXStaticMethodRecord, CXXMethodRecord, RK_CXXStaticMethod) 53CONCRETE_RECORD(CXXInstanceMethodRecord, CXXMethodRecord, RK_CXXInstanceMethod) 54CONCRETE_RECORD(CXXMethodTemplateRecord, CXXMethodRecord, RK_CXXMethodTemplate) 55CONCRETE_RECORD(CXXMethodTemplateSpecializationRecord, CXXMethodRecord, 56 RK_CXXMethodTemplateSpecialization) 57ABSTRACT_RECORD(ObjCPropertyRecord, APIRecord) 58CONCRETE_RECORD(ObjCInstancePropertyRecord, ObjCPropertyRecord, 59 RK_ObjCInstanceProperty) 60CONCRETE_RECORD(ObjCClassPropertyRecord, ObjCPropertyRecord, 61 RK_ObjCClassProperty) 62CONCRETE_RECORD(ObjCInstanceVariableRecord, APIRecord, RK_ObjCIvar) 63ABSTRACT_RECORD(ObjCMethodRecord, APIRecord) 64CONCRETE_RECORD(ObjCInstanceMethodRecord, ObjCMethodRecord, 65 RK_ObjCInstanceMethod) 66CONCRETE_RECORD(ObjCClassMethodRecord, ObjCMethodRecord, RK_ObjCClassMethod) 67CONCRETE_RECORD(StaticFieldRecord, CXXFieldRecord, RK_StaticField) 68ABSTRACT_RECORD(ObjCContainerRecord, APIRecord) 69CONCRETE_RECORD(CXXClassRecord, APIRecord, RK_CXXClass) 70CONCRETE_RECORD(ClassTemplateRecord, CXXClassRecord, RK_ClassTemplate) 71CONCRETE_RECORD(ClassTemplateSpecializationRecord, CXXClassRecord, 72 RK_ClassTemplateSpecialization) 73CONCRETE_RECORD(ClassTemplatePartialSpecializationRecord, CXXClassRecord, 74 RK_ClassTemplatePartialSpecialization) 75CONCRETE_RECORD(ConceptRecord, APIRecord, RK_Concept) 76CONCRETE_RECORD(ObjCCategoryRecord, ObjCContainerRecord, RK_ObjCCategory) 77CONCRETE_RECORD(ObjCInterfaceRecord, ObjCContainerRecord, RK_ObjCInterface) 78CONCRETE_RECORD(ObjCProtocolRecord, ObjCContainerRecord, RK_ObjCProtocol) 79CONCRETE_RECORD(MacroDefinitionRecord, APIRecord, RK_MacroDefinition) 80CONCRETE_RECORD(TypedefRecord, APIRecord, RK_Typedef) 81 82#undef CONCRETE_RECORD 83#undef ABSTRACT_RECORD 84#undef RECORD 85 86#ifndef RECORD_CONTEXT 87#define RECORD_CONTEXT(CLASS, KIND) 88#endif 89 90RECORD_CONTEXT(NamespaceRecord, RK_Namespace) 91RECORD_CONTEXT(EnumRecord, RK_Enum) 92RECORD_CONTEXT(StructRecord, RK_Struct) 93RECORD_CONTEXT(UnionRecord, RK_Union) 94RECORD_CONTEXT(ObjCCategoryRecord, RK_ObjCCategory) 95RECORD_CONTEXT(ObjCInterfaceRecord, RK_ObjCInterface) 96RECORD_CONTEXT(ObjCProtocolRecord, RK_ObjCProtocol) 97RECORD_CONTEXT(CXXClassRecord, RK_CXXClass) 98RECORD_CONTEXT(ClassTemplateRecord, RK_ClassTemplate) 99RECORD_CONTEXT(ClassTemplateSpecializationRecord, 100 RK_ClassTemplateSpecialization) 101RECORD_CONTEXT(ClassTemplatePartialSpecializationRecord, 102 RK_ClassTemplatePartialSpecialization) 103RECORD_CONTEXT(StructFieldRecord, RK_StructField) 104RECORD_CONTEXT(UnionFieldRecord, RK_UnionField) 105RECORD_CONTEXT(CXXFieldRecord, RK_CXXField) 106RECORD_CONTEXT(StaticFieldRecord, RK_StaticField) 107RECORD_CONTEXT(CXXFieldTemplateRecord, RK_CXXFieldTemplate) 108RECORD_CONTEXT(GlobalVariableRecord, RK_GlobalVariable) 109RECORD_CONTEXT(GlobalVariableTemplateRecord, RK_GlobalVariableTemplate) 110RECORD_CONTEXT(GlobalVariableTemplateSpecializationRecord, 111 RK_GlobalVariableTemplateSpecialization) 112RECORD_CONTEXT(GlobalVariableTemplatePartialSpecializationRecord, 113 RK_GlobalVariableTemplatePartialSpecialization) 114 115#undef RECORD_CONTEXT 116