1
2
3
4
5
6 #ifndef CMAJOR_BINDER_BOUND_NODE_VISITOR_INCLUDED
7 #define CMAJOR_BINDER_BOUND_NODE_VISITOR_INCLUDED
8 #include <cmajor/binder/BinderApi.hpp>
9
10 namespace cmajor { namespace binder {
11
12 class BoundCompileUnit;
13 class BoundNamespace;
14 class BoundClass;
15 class BoundEnumTypeDefinition;
16 class BoundFunction;
17 class BoundSequenceStatement;
18 class BoundCompoundStatement;
19 class BoundReturnStatement;
20 class BoundIfStatement;
21 class BoundWhileStatement;
22 class BoundDoStatement;
23 class BoundForStatement;
24 class BoundSwitchStatement;
25 class BoundCaseStatement;
26 class BoundGotoCaseStatement;
27 class BoundGotoDefaultStatement;
28 class BoundDefaultStatement;
29 class BoundBreakStatement;
30 class BoundContinueStatement;
31 class BoundGotoStatement;
32 class BoundConstructionStatement;
33 class BoundAssignmentStatement;
34 class BoundExpressionStatement;
35 class BoundInitializationStatement;
36 class BoundEmptyStatement;
37 class BoundSetVmtPtrStatement;
38 class BoundThrowStatement;
39 class BoundRethrowStatement;
40 class BoundTryStatement;
41 class BoundCatchStatement;
42 class BoundParameter;
43 class BoundLocalVariable;
44 class BoundMemberVariable;
45 class BoundConstant;
46 class BoundEnumConstant;
47 class BoundLiteral;
48 class BoundTemporary;
49 class BoundSizeOfExpression;
50 class BoundAddressOfExpression;
51 class BoundDereferenceExpression;
52 class BoundReferenceToPointerExpression;
53 class BoundFunctionCall;
54 class BoundDelegateCall;
55 class BoundClassDelegateCall;
56 class BoundInterfaceCall;
57 class BoundConversion;
58 class BoundConstructExpression;
59 class BoundConstructAndReturnTemporaryExpression;
60 class BoundClassOrClassDelegateConversionResult;
61 class BoundIsExpression;
62 class BoundAsExpression;
63 class BoundTypeNameExpression;
64 class BoundTypeIdExpression;
65 class BoundBitCast;
66 class BoundFunctionPtr;
67 class BoundDisjunction;
68 class BoundConjunction;
69 class BoundAtomicConstraint;
70 class BoundDisjunctiveConstraint;
71 class BoundConjunctiveConstraint;
72 class BoundGlobalVariable;
73
74 class BoundNodeVisitor
75 {
76 public:
77 virtual ~BoundNodeVisitor();
78 virtual void Visit(BoundCompileUnit& boundCompileUnit) {}
79 virtual void Visit(BoundNamespace& boundNamespace) {}
80 virtual void Visit(BoundClass& boundClass) {}
81 virtual void Visit(BoundEnumTypeDefinition& boundEnumTypeDefinition) {}
82 virtual void Visit(BoundFunction& boundFunction) {}
83 virtual void Visit(BoundSequenceStatement& boundSequenceStatement) {}
84 virtual void Visit(BoundCompoundStatement& boundCompoundStatement) {}
85 virtual void Visit(BoundReturnStatement& boundReturnStatement) {}
86 virtual void Visit(BoundIfStatement& boundIfStatement) {}
87 virtual void Visit(BoundWhileStatement& boundWhileStatement) {}
88 virtual void Visit(BoundDoStatement& boundDoStatement) {}
89 virtual void Visit(BoundForStatement& boundForStatement) {}
90 virtual void Visit(BoundSwitchStatement& boundSwitchStatement) {}
91 virtual void Visit(BoundCaseStatement& boundCaseStatement) {}
92 virtual void Visit(BoundDefaultStatement& boundDefaultStatement) {}
93 virtual void Visit(BoundGotoCaseStatement& boundGotoCaseStatement) {}
94 virtual void Visit(BoundGotoDefaultStatement& boundGotoDefaultStatement) {}
95 virtual void Visit(BoundBreakStatement& boundBreakStatement) {}
96 virtual void Visit(BoundContinueStatement& boundContinueStatement) {}
97 virtual void Visit(BoundGotoStatement& boundGotoStatement) {}
98 virtual void Visit(BoundConstructionStatement& boundConstructionStatement) {}
99 virtual void Visit(BoundAssignmentStatement& boundAssignmentStatement) {}
100 virtual void Visit(BoundExpressionStatement& boundExpressionStatement) {}
101 virtual void Visit(BoundInitializationStatement& boundInitializationStatement) {}
102 virtual void Visit(BoundEmptyStatement& boundEmptyStatement) {}
103 virtual void Visit(BoundSetVmtPtrStatement& boundSetVmtPtrStatement) {}
104 virtual void Visit(BoundThrowStatement& boundThrowStatement) {}
105 virtual void Visit(BoundRethrowStatement& boundRethrowStatement) {}
106 virtual void Visit(BoundTryStatement& boundTryStatement) {}
107 virtual void Visit(BoundCatchStatement& boundCatchStatement) {}
108 virtual void Visit(BoundParameter& boundParameter) {}
109 virtual void Visit(BoundLocalVariable& boundLocalVariable) {}
110 virtual void Visit(BoundMemberVariable& boundMemberVariable) {}
111 virtual void Visit(BoundConstant& boundConstant) {}
112 virtual void Visit(BoundEnumConstant& boundEnumConstant) {}
113 virtual void Visit(BoundLiteral& boundLiteral) {}
114 virtual void Visit(BoundTemporary& boundTemporary) {}
115 virtual void Visit(BoundSizeOfExpression& boundSizeOfExpression) {}
116 virtual void Visit(BoundAddressOfExpression& boundAddressOfExpression) {}
117 virtual void Visit(BoundDereferenceExpression& boundDereferenceExpression) {}
118 virtual void Visit(BoundReferenceToPointerExpression& boundReferenceToPointerExpression) {}
119 virtual void Visit(BoundFunctionCall& boundFunctionCall) {}
120 virtual void Visit(BoundDelegateCall& boundDelegateCall) {}
121 virtual void Visit(BoundClassDelegateCall& boundClassDelegateCall) {}
122 virtual void Visit(BoundInterfaceCall& boundInterfaceCall) {}
123 virtual void Visit(BoundConversion& boundConversion) {}
124 virtual void Visit(BoundConstructExpression& boundConstructExpression) {}
125 virtual void Visit(BoundConstructAndReturnTemporaryExpression& boundConstructAndReturnTemporaryExpression) {}
126 virtual void Visit(BoundClassOrClassDelegateConversionResult& boundClassOrClassDelegateConversionResult) {}
127 virtual void Visit(BoundIsExpression& boundIsExpression) {}
128 virtual void Visit(BoundAsExpression& boundAsExpression) {}
129 virtual void Visit(BoundTypeNameExpression& boundTypeNameExpression) {}
130 virtual void Visit(BoundTypeIdExpression& boundTypeIdExpression) {}
131 virtual void Visit(BoundBitCast& boundBitCast) {}
132 virtual void Visit(BoundFunctionPtr& boundFunctionPtr) {}
133 virtual void Visit(BoundDisjunction& boundDisjunction) {}
134 virtual void Visit(BoundConjunction& boundConjunction) {}
135 virtual void Visit(BoundAtomicConstraint& boundAtomicConstraint) {}
136 virtual void Visit(BoundDisjunctiveConstraint& boundDisjunctiveConstraint) {}
137 virtual void Visit(BoundConjunctiveConstraint& boundConjunctiveConstraint) {}
138 virtual void Visit(BoundGlobalVariable& boundGlobalVariable) {}
139 };
140
141 } }
142
143 #endif // CMAJOR_BINDER_BOUND_NODE_VISITOR_INCLUDED