Template Class AstTopDownBottomUpProcessing#
Defined in File AstProcessing.h
Inheritance Relationships#
Base Type#
public SgTreeTraversal< InheritedAttributeType, SynthesizedAttributeType >(Template Class SgTreeTraversal)
Derived Types#
public AstReverseBranchInhSynProcessing< DI, DS >(Template Class AstReverseBranchInhSynProcessing)public AstReversePrefixInhSynProcessing< DI, DS >(Template Class AstReversePrefixInhSynProcessing)public SgTopDownBottomUpProcessing< AddIncludeDirectivesInheritedAttribute, AddIncludeDirectivesSynthesizedAttribute >(Template Class SgTopDownBottomUpProcessing)public SgTopDownBottomUpProcessing< DOTInheritedAttribute, DOTSynthesizedAttribute >(Template Class SgTopDownBottomUpProcessing)public SgTopDownBottomUpProcessing< AttachPreprocessingInfoTreeTraversalInheritedAttrribute, AttachPreprocessingInfoTreeTraversalSynthesizedAttribute >(Template Class SgTopDownBottomUpProcessing)public SgTopDownBottomUpProcessing< BooleanQueryInheritedAttributeType, BooleanQuerySynthesizedAttributeType >(Template Class SgTopDownBottomUpProcessing)public SgTopDownBottomUpProcessing< ConstantFoldingInheritedAttribute, ConstantFoldingSynthesizedAttribute >(Template Class SgTopDownBottomUpProcessing)public SgTopDownBottomUpProcessing< DetectMacroOrIncludeFileExpansionsInheritedAttribute, DetectMacroOrIncludeFileExpansionsSynthesizedAttribute >(Template Class SgTopDownBottomUpProcessing)public SgTopDownBottomUpProcessing< FixupInitializersUsingIncludeFilesInheritedAttribute, FixupInitializersUsingIncludeFilesSynthesizedAttribute >(Template Class SgTopDownBottomUpProcessing)public SgTopDownBottomUpProcessing< FixupSourcePositionInformationInheritedAttribute, FixupSourcePositionInformationSynthesizedAttribute >(Template Class SgTopDownBottomUpProcessing)public SgTopDownBottomUpProcessing< FrontierDetectionForTokenStreamMapping_InheritedAttribute, FrontierDetectionForTokenStreamMapping_SynthesizedAttribute >(Template Class SgTopDownBottomUpProcessing)public SgTopDownBottomUpProcessing< MarkTemplateInstantiationsForOutputSupportInheritedAttribute, MarkTemplateInstantiationsForOutputSupportSynthesizedAttribute >(Template Class SgTopDownBottomUpProcessing)public SgTopDownBottomUpProcessing< InheritedAttribute, SynthesizedAttribute >(Template Class SgTopDownBottomUpProcessing)public SgTopDownBottomUpProcessing< SimpleFrontierDetectionForTokenStreamMapping_InheritedAttribute, SimpleFrontierDetectionForTokenStreamMapping_SynthesizedAttribute >(Template Class SgTopDownBottomUpProcessing)public AstReverseBranchInhSynProcessing< InheritedAttributeType, SynthesizedAttributeType >(Template Class AstReverseBranchInhSynProcessing)public AstReversePrefixInhSynProcessing< InheritedAttributeType, SynthesizedAttributeType >(Template Class AstReversePrefixInhSynProcessing)public SgTopDownBottomUpProcessing< InheritedAttributeType, SynthesizedAttributeType >(Template Class SgTopDownBottomUpProcessing)
Class Documentation#
-
template<class InheritedAttributeType, class SynthesizedAttributeType>
class AstTopDownBottomUpProcessing : public SgTreeTraversal<InheritedAttributeType, SynthesizedAttributeType># Subclassed by AstReverseBranchInhSynProcessing< DI, DS >, AstReversePrefixInhSynProcessing< DI, DS >, SgTopDownBottomUpProcessing< AddIncludeDirectivesInheritedAttribute, AddIncludeDirectivesSynthesizedAttribute >, SgTopDownBottomUpProcessing< DOTInheritedAttribute, DOTSynthesizedAttribute >, SgTopDownBottomUpProcessing< AttachPreprocessingInfoTreeTraversalInheritedAttrribute, AttachPreprocessingInfoTreeTraversalSynthesizedAttribute >, SgTopDownBottomUpProcessing< BooleanQueryInheritedAttributeType, BooleanQuerySynthesizedAttributeType >, SgTopDownBottomUpProcessing< ConstantFoldingInheritedAttribute, ConstantFoldingSynthesizedAttribute >, SgTopDownBottomUpProcessing< DetectMacroOrIncludeFileExpansionsInheritedAttribute, DetectMacroOrIncludeFileExpansionsSynthesizedAttribute >, SgTopDownBottomUpProcessing< FixupInitializersUsingIncludeFilesInheritedAttribute, FixupInitializersUsingIncludeFilesSynthesizedAttribute >, SgTopDownBottomUpProcessing< FixupSourcePositionInformationInheritedAttribute, FixupSourcePositionInformationSynthesizedAttribute >, SgTopDownBottomUpProcessing< FrontierDetectionForTokenStreamMapping_InheritedAttribute, FrontierDetectionForTokenStreamMapping_SynthesizedAttribute >, SgTopDownBottomUpProcessing< MarkTemplateInstantiationsForOutputSupportInheritedAttribute, MarkTemplateInstantiationsForOutputSupportSynthesizedAttribute >, SgTopDownBottomUpProcessing< InheritedAttribute, SynthesizedAttribute >, SgTopDownBottomUpProcessing< SimpleFrontierDetectionForTokenStreamMapping_InheritedAttribute, SimpleFrontierDetectionForTokenStreamMapping_SynthesizedAttribute >, AstReverseBranchInhSynProcessing< InheritedAttributeType, SynthesizedAttributeType >, AstReversePrefixInhSynProcessing< InheritedAttributeType, SynthesizedAttributeType >, SgTopDownBottomUpProcessing< InheritedAttributeType, SynthesizedAttributeType >
Public Types
-
typedef SgTreeTraversal<InheritedAttributeType, SynthesizedAttributeType>::SynthesizedAttributesList SynthesizedAttributesList#
-
typedef SynthesizedAttributesList SubTreeSynthesizedAttributes#
Public Functions
-
SynthesizedAttributeType traverse(SgNode *node, InheritedAttributeType inheritedValue)#
evaluates attributes on the entire AST
-
SynthesizedAttributeType traverseWithinFile(SgNode *node, InheritedAttributeType inheritedValue)#
evaluates attributes only at nodes which represent the same file as where the evaluation was started
Protected Functions
-
virtual InheritedAttributeType evaluateInheritedAttribute(SgNode *astNode, InheritedAttributeType inheritedValue) = 0#
pure virtual function which must be implemented to compute the inherited attribute at a node
-
virtual SynthesizedAttributeType evaluateSynthesizedAttribute(SgNode*, InheritedAttributeType, SynthesizedAttributesList) = 0#
pure virtual function which must be implemented to compute the synthesized attribute at a node. The list of synthesized attributes consists of the synthesized attributes computed at the children node of the current node. The inherited attribute value is computed by evaluateInheritedAttribute at the same node and simply passed to this function. Use the typedef SynthesizedAttributeList as type for the synthesized attributes list.
-
virtual void atTraversalStart()#
Function called at the start of the traversal, before any node is visited; override if necessary, the default implementation is a no-op.
-
virtual void atTraversalEnd()#
Friends
- friend class AstCombinedTopDownBottomUpProcessing< InheritedAttributeType, SynthesizedAttributeType >
-
typedef SgTreeTraversal<InheritedAttributeType, SynthesizedAttributeType>::SynthesizedAttributesList SynthesizedAttributesList#