4#ifndef ASTREVERSEPROCESSING_H
5#define ASTREVERSEPROCESSING_H
11#include "AstProcessing.h"
17template<
typename InheritedAttributeType>
22 virtual void setNodeSuccessors(
SgNode* node,
typename AstReversePrefixInhProcessing<InheritedAttributeType>::SuccessorsContainer& succContainer);
25template<
class SynthesizedAttributeType>
30 virtual void setNodeSuccessors(
SgNode* node,
typename AstReversePrefixSynProcessing<SynthesizedAttributeType>::SuccessorsContainer & succContainer);
33template<
class InheritedAttributeType,
class SynthesizedAttributeType>
38 virtual void setNodeSuccessors(
SgNode* node,
typename AstReversePrefixInhSynProcessing<InheritedAttributeType,SynthesizedAttributeType>::SuccessorsContainer & succContainer);
45template<
class InheritedAttributeType,
class SynthesizedAttributeType>
50 virtual void setNodeSuccessors(
SgNode* node,
typename AstReverseBranchInhSynProcessing<InheritedAttributeType,SynthesizedAttributeType>::SuccessorsContainer & succContainer);
53template<
class InheritedAttributeType>
58 virtual void setNodeSuccessors(
SgNode* node,
typename AstReverseBranchInhProcessing<InheritedAttributeType>::SuccessorsContainer & succContainer);
61template<
class SynthesizedAttributeType>
66 virtual void setNodeSuccessors(
SgNode* node,
typename AstReverseBranchSynProcessing<SynthesizedAttributeType>::SuccessorsContainer & succContainer);
83template<
class InheritedAttributeType>
89template<
class InheritedAttributeType>
92::setNodeSuccessors(
SgNode* node,
typename AstReversePrefixInhProcessing<InheritedAttributeType>::SuccessorsContainer& succContainer) {
93 AstSuccessorsSelectors::selectReversePrefixSuccessors(node,succContainer);
97template<
class SynthesizedAttributeType>
103template<
class SynthesizedAttributeType>
106::setNodeSuccessors(
SgNode* node,
typename AstReversePrefixSynProcessing<SynthesizedAttributeType>::SuccessorsContainer& succContainer) {
107 AstSuccessorsSelectors::selectReversePrefixSuccessors(node,succContainer);
111template<
class InheritedAttributeType,
class SynthesizedAttributeType>
117template<
class InheritedAttributeType,
class SynthesizedAttributeType>
120::setNodeSuccessors(
SgNode* node,
typename AstReversePrefixInhSynProcessing<InheritedAttributeType, SynthesizedAttributeType>::SuccessorsContainer& succContainer) {
121 AstSuccessorsSelectors::selectReversePrefixSuccessors(node,succContainer);
129template<
class InheritedAttributeType,
class SynthesizedAttributeType>
135template<
class InheritedAttributeType,
class SynthesizedAttributeType>
138::setNodeSuccessors(
SgNode* node,
typename AstReverseBranchInhSynProcessing<InheritedAttributeType, SynthesizedAttributeType>::SuccessorsContainer& succContainer) {
139 AstSuccessorsSelectors::selectReverseBranchSuccessors(node,succContainer);
143template<
class InheritedAttributeType>
149template<
class InheritedAttributeType>
152::setNodeSuccessors(
SgNode* node,
typename AstReverseBranchInhProcessing<InheritedAttributeType>::SuccessorsContainer& succContainer) {
153 AstSuccessorsSelectors::selectReverseBranchSuccessors(node,succContainer);
157template<
class SynthesizedAttributeType>
163template<
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 and synthesized attributes.
Attribute Evaluator for inherited attributes.
This class represents the base class for all IR nodes within Sage III.