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"
Attribute Evaluator for synthesized attributes.
Attribute Evaluator for inherited attributes.
This class represents the base class for all IR nodes within Sage III.
Attribute Evaluator for inherited and synthesized attributes.