4 #ifndef ASTREVERSEPROCESSING_H
5 #define ASTREVERSEPROCESSING_H
11 #include "AstProcessing.h"
17 template<
typename InheritedAttributeType>
22 virtual void setNodeSuccessors(
SgNode* node,
typename AstReversePrefixInhProcessing<InheritedAttributeType>::SuccessorsContainer& succContainer);
25 template<
class SynthesizedAttributeType>
30 virtual void setNodeSuccessors(
SgNode* node,
typename AstReversePrefixSynProcessing<SynthesizedAttributeType>::SuccessorsContainer & succContainer);
33 template<
class InheritedAttributeType,
class SynthesizedAttributeType>
38 virtual void setNodeSuccessors(
SgNode* node,
typename AstReversePrefixInhSynProcessing<InheritedAttributeType,SynthesizedAttributeType>::SuccessorsContainer & succContainer);
45 template<
class InheritedAttributeType,
class SynthesizedAttributeType>
50 virtual void setNodeSuccessors(
SgNode* node,
typename AstReverseBranchInhSynProcessing<InheritedAttributeType,SynthesizedAttributeType>::SuccessorsContainer & succContainer);
53 template<
class InheritedAttributeType>
58 virtual void setNodeSuccessors(
SgNode* node,
typename AstReverseBranchInhProcessing<InheritedAttributeType>::SuccessorsContainer & succContainer);
61 template<
class SynthesizedAttributeType>
66 virtual void setNodeSuccessors(
SgNode* node,
typename AstReverseBranchSynProcessing<SynthesizedAttributeType>::SuccessorsContainer & succContainer);
83 template<
class InheritedAttributeType>
89 template<
class InheritedAttributeType>
92 ::setNodeSuccessors(
SgNode* node,
typename AstReversePrefixInhProcessing<InheritedAttributeType>::SuccessorsContainer& succContainer) {
93 AstSuccessorsSelectors::selectReversePrefixSuccessors(node,succContainer);
97 template<
class SynthesizedAttributeType>
103 template<
class SynthesizedAttributeType>
106 ::setNodeSuccessors(
SgNode* node,
typename AstReversePrefixSynProcessing<SynthesizedAttributeType>::SuccessorsContainer& succContainer) {
107 AstSuccessorsSelectors::selectReversePrefixSuccessors(node,succContainer);
111 template<
class InheritedAttributeType,
class SynthesizedAttributeType>
117 template<
class InheritedAttributeType,
class SynthesizedAttributeType>
120 ::setNodeSuccessors(
SgNode* node,
typename AstReversePrefixInhSynProcessing<InheritedAttributeType, SynthesizedAttributeType>::SuccessorsContainer& succContainer) {
121 AstSuccessorsSelectors::selectReversePrefixSuccessors(node,succContainer);
129 template<
class InheritedAttributeType,
class SynthesizedAttributeType>
135 template<
class InheritedAttributeType,
class SynthesizedAttributeType>
138 ::setNodeSuccessors(
SgNode* node,
typename AstReverseBranchInhSynProcessing<InheritedAttributeType, SynthesizedAttributeType>::SuccessorsContainer& succContainer) {
139 AstSuccessorsSelectors::selectReverseBranchSuccessors(node,succContainer);
143 template<
class InheritedAttributeType>
149 template<
class InheritedAttributeType>
152 ::setNodeSuccessors(
SgNode* node,
typename AstReverseBranchInhProcessing<InheritedAttributeType>::SuccessorsContainer& succContainer) {
153 AstSuccessorsSelectors::selectReverseBranchSuccessors(node,succContainer);
157 template<
class SynthesizedAttributeType>
163 template<
class SynthesizedAttributeType>
166 ::setNodeSuccessors(
SgNode* node,
typename AstReverseBranchSynProcessing<SynthesizedAttributeType>::SuccessorsContainer& succContainer) {
167 AstSuccessorsSelectors::selectReverseBranchSuccessors(node,succContainer);
170 #include "AstReverseSimpleProcessing.h"