clang: include/clang/Sema/TemplateInstCallback.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14#ifndef LLVM_CLANG_SEMA_TEMPLATEINSTCALLBACK_H
15#define LLVM_CLANG_SEMA_TEMPLATEINSTCALLBACK_H
16
18
20
21
22
24public:
26
27
29
30
32
33
36
37
40};
41
42template
43void initialize(TemplateInstantiationCallbackPtrs &Callbacks,
44 const Sema &TheSema) {
45 for (auto &C : Callbacks) {
46 if (C)
47 C->initialize(TheSema);
48 }
49}
50
51template
52void finalize(TemplateInstantiationCallbackPtrs &Callbacks,
53 const Sema &TheSema) {
54 for (auto &C : Callbacks) {
55 if (C)
56 C->finalize(TheSema);
57 }
58}
59
60template
62 const Sema &TheSema,
64 for (auto &C : Callbacks) {
65 if (C)
66 C->atTemplateBegin(TheSema, Inst);
67 }
68}
69
70template
71void atTemplateEnd(TemplateInstantiationCallbackPtrs &Callbacks,
72 const Sema &TheSema,
74 for (auto &C : Callbacks) {
75 if (C)
76 C->atTemplateEnd(TheSema, Inst);
77 }
78}
79
80}
81
82#endif
Sema - This implements semantic analysis and AST building for C.
This is a base class for callbacks that will be notified at every template instantiation.
virtual void atTemplateEnd(const Sema &TheSema, const Sema::CodeSynthesisContext &Inst)=0
Called when instantiation of a template is just about to end.
virtual void finalize(const Sema &TheSema)=0
Called after AST-parsing is completed.
virtual void initialize(const Sema &TheSema)=0
Called before doing AST-parsing.
virtual ~TemplateInstantiationCallback()=default
virtual void atTemplateBegin(const Sema &TheSema, const Sema::CodeSynthesisContext &Inst)=0
Called when instantiation of a template just began.
The JSON file list parser is used to communicate input to InstallAPI.
void atTemplateEnd(TemplateInstantiationCallbackPtrs &Callbacks, const Sema &TheSema, const Sema::CodeSynthesisContext &Inst)
void atTemplateBegin(TemplateInstantiationCallbackPtrs &Callbacks, const Sema &TheSema, const Sema::CodeSynthesisContext &Inst)
void initialize(TemplateInstantiationCallbackPtrs &Callbacks, const Sema &TheSema)
void finalize(TemplateInstantiationCallbackPtrs &Callbacks, const Sema &TheSema)
A context in which code is being synthesized (where a source location alone is not sufficient to iden...