Template Class AstTopDownProcessing#

Inheritance Relationships#

Base Type#

Derived Types#

Class Documentation#

template<class InheritedAttributeType>
class AstTopDownProcessing : public SgTreeTraversal<InheritedAttributeType, DummyAttribute>#

Subclassed by AstReverseBranchInhProcessing< DI >, AstReversePrefixInhProcessing< DI >, SgTopDownProcessing< AddPrototypesForTemplateInstantiationsInheritedAttribute >, SgTopDownProcessing< FixupFunctionDefaultArgumentsInheritedAttribute >, SgTopDownProcessing< FixupPrettyFunctionVariablesInheritedAttribute >, SgTopDownProcessing< LinearizeInheritedAttribute >, SgTopDownProcessing< MarkSharedDeclarationsInheritedAttribute >, SgTopDownProcessing< MarkTemplateSpecializationsForOutputInheritedAttribute >, SgTopDownProcessing< MarkTransformationsForOutputInheritedAttribute >, SgTopDownProcessing< PDFInheritedAttribute >, SgTopDownProcessing< PropagateHiddenListDataInheritedAttribute >, SgTopDownProcessing< RemoveInitializedNamePtrInheritedAttribute >, SgTopDownProcessing< ResetParentPointersInheritedAttribute >, SgTopDownProcessing< SimpleColorFilesInheritedAttribute >, AstReverseBranchInhProcessing< InheritedAttributeType >, AstReversePrefixInhProcessing< InheritedAttributeType >, SgTopDownProcessing< InheritedAttributeType >

Public Types

typedef SgTreeTraversal<InheritedAttributeType, DummyAttribute>::SynthesizedAttributesList SynthesizedAttributesList#

Public Functions

void traverse(SgNode *node, InheritedAttributeType inheritedValue)#

evaluates attributes on the entire AST

void 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 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()#
virtual void destroyInheritedValue(SgNode*, InheritedAttributeType)#

Friends

friend class AstCombinedTopDownProcessing< InheritedAttributeType >
friend class DistributedMemoryAnalysisPreTraversal< InheritedAttributeType >