xref: /freebsd/contrib/llvm-project/clang/include/clang/ExtractAPI/APIRecords.inc (revision 0fca6ea1d4eea4c934cfff25ac9ee8ad6fe95583)
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