1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | #ifndef LLVM_CLANG_AST_ASTMUTATIONLISTENER_H |
13 | #define LLVM_CLANG_AST_ASTMUTATIONLISTENER_H |
14 | |
15 | namespace clang { |
16 | class Attr; |
17 | class ClassTemplateDecl; |
18 | class ClassTemplateSpecializationDecl; |
19 | class ConstructorUsingShadowDecl; |
20 | class CXXDestructorDecl; |
21 | class CXXRecordDecl; |
22 | class Decl; |
23 | class DeclContext; |
24 | class Expr; |
25 | class FieldDecl; |
26 | class FunctionDecl; |
27 | class FunctionTemplateDecl; |
28 | class Module; |
29 | class NamedDecl; |
30 | class ObjCCategoryDecl; |
31 | class ObjCContainerDecl; |
32 | class ObjCInterfaceDecl; |
33 | class ObjCPropertyDecl; |
34 | class ParmVarDecl; |
35 | class QualType; |
36 | class RecordDecl; |
37 | class TagDecl; |
38 | class ValueDecl; |
39 | class VarDecl; |
40 | class VarTemplateDecl; |
41 | class VarTemplateSpecializationDecl; |
42 | |
43 | |
44 | |
45 | |
46 | class ASTMutationListener { |
47 | public: |
48 | virtual ~ASTMutationListener(); |
49 | |
50 | |
51 | virtual void CompletedTagDefinition(const TagDecl *D) { } |
52 | |
53 | |
54 | virtual void AddedVisibleDecl(const DeclContext *DC, const Decl *D) {} |
55 | |
56 | |
57 | virtual void AddedCXXImplicitMember(const CXXRecordDecl *RD, const Decl *D) {} |
58 | |
59 | |
60 | |
61 | virtual void AddedCXXTemplateSpecialization(const ClassTemplateDecl *TD, |
62 | const ClassTemplateSpecializationDecl *D) {} |
63 | |
64 | |
65 | |
66 | virtual void |
67 | AddedCXXTemplateSpecialization(const VarTemplateDecl *TD, |
68 | const VarTemplateSpecializationDecl *D) {} |
69 | |
70 | |
71 | |
72 | virtual void AddedCXXTemplateSpecialization(const FunctionTemplateDecl *TD, |
73 | const FunctionDecl *D) {} |
74 | |
75 | |
76 | |
77 | virtual void ResolvedExceptionSpec(const FunctionDecl *FD) {} |
78 | |
79 | |
80 | virtual void DeducedReturnType(const FunctionDecl *FD, QualType ReturnType); |
81 | |
82 | |
83 | virtual void ResolvedOperatorDelete(const CXXDestructorDecl *DD, |
84 | const FunctionDecl *Delete, |
85 | Expr *ThisArg) {} |
86 | |
87 | |
88 | virtual void CompletedImplicitDefinition(const FunctionDecl *D) {} |
89 | |
90 | |
91 | |
92 | |
93 | virtual void InstantiationRequested(const ValueDecl *D) {} |
94 | |
95 | |
96 | virtual void VariableDefinitionInstantiated(const VarDecl *D) {} |
97 | |
98 | |
99 | virtual void FunctionDefinitionInstantiated(const FunctionDecl *D) {} |
100 | |
101 | |
102 | virtual void DefaultArgumentInstantiated(const ParmVarDecl *D) {} |
103 | |
104 | |
105 | virtual void DefaultMemberInitializerInstantiated(const FieldDecl *D) {} |
106 | |
107 | |
108 | virtual void AddedObjCCategoryToInterface(const ObjCCategoryDecl *CatD, |
109 | const ObjCInterfaceDecl *IFD) {} |
110 | |
111 | |
112 | |
113 | |
114 | virtual void DeclarationMarkedUsed(const Decl *D) {} |
115 | |
116 | |
117 | |
118 | |
119 | |
120 | virtual void DeclarationMarkedOpenMPThreadPrivate(const Decl *D) {} |
121 | |
122 | |
123 | |
124 | |
125 | |
126 | |
127 | virtual void DeclarationMarkedOpenMPDeclareTarget(const Decl *D, |
128 | const Attr *Attr) {} |
129 | |
130 | |
131 | |
132 | |
133 | virtual void DeclarationMarkedOpenMPAllocate(const Decl *D, const Attr *A) {} |
134 | |
135 | |
136 | |
137 | |
138 | |
139 | |
140 | virtual void RedefinedHiddenDefinition(const NamedDecl *D, Module *M) {} |
141 | |
142 | |
143 | |
144 | |
145 | |
146 | |
147 | virtual void AddedAttributeToRecord(const Attr *Attr, |
148 | const RecordDecl *Record) {} |
149 | |
150 | |
151 | |
152 | }; |
153 | |
154 | } |
155 | |
156 | #endif |
157 | |