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...