Template Class AstCombinedTopDownBottomUpProcessing#
Defined in File AstCombinedProcessing.h
Inheritance Relationships#
Base Type#
public AstTopDownBottomUpProcessing< std::vector< InheritedAttributeType > *, std::vector< SynthesizedAttributeType > * >(Template Class AstTopDownBottomUpProcessing)
Derived Types#
public AstSharedMemoryParallelTopDownBottomUpProcessing< InheritedAttributeType, SynthesizedAttributeType >(Template Class AstSharedMemoryParallelTopDownBottomUpProcessing)public AstSharedMemoryParallelizableTopDownBottomUpProcessing< InheritedAttributeType, SynthesizedAttributeType >(Template Class AstSharedMemoryParallelizableTopDownBottomUpProcessing)
Class Documentation#
-
template<class InheritedAttributeType, class SynthesizedAttributeType>
class AstCombinedTopDownBottomUpProcessing : public AstTopDownBottomUpProcessing<std::vector<InheritedAttributeType>*, std::vector<SynthesizedAttributeType>*># Subclassed by AstSharedMemoryParallelTopDownBottomUpProcessing< InheritedAttributeType, SynthesizedAttributeType >, AstSharedMemoryParallelizableTopDownBottomUpProcessing< InheritedAttributeType, SynthesizedAttributeType >
Public Types
-
typedef AstTopDownBottomUpProcessing<InheritedAttributeType, SynthesizedAttributeType> TraversalType#
-
typedef TraversalType *TraversalPtr#
-
typedef std::vector<TraversalPtr> TraversalPtrList#
-
typedef std::vector<InheritedAttributeType> InheritedAttributeTypeList#
-
typedef std::vector<SynthesizedAttributeType> SynthesizedAttributeTypeList#
-
typedef AstTopDownBottomUpProcessing<std::vector<InheritedAttributeType>*, std::vector<SynthesizedAttributeType>*> Superclass#
-
typedef Superclass::SynthesizedAttributesList SynthesizedAttributesList#
Public Functions
-
AstCombinedTopDownBottomUpProcessing()#
default constructor
-
AstCombinedTopDownBottomUpProcessing(const TraversalPtrList&)#
constructor that makes an internal copy of an existing list of traversals
-
void addTraversal(TraversalPtr)#
simple function for adding a traversal to the internal list
-
TraversalPtrList &get_traversalPtrListRef()#
function for obtaining a reference to the internal list of traversals, you can use this for any container operations you like (deleting elements etc.)
Protected Functions
-
virtual InheritedAttributeTypeList *evaluateInheritedAttribute(SgNode *astNode, InheritedAttributeTypeList *inheritedValues)#
pure virtual function which must be implemented to compute the inherited attribute at a node
-
virtual SynthesizedAttributeTypeList *evaluateSynthesizedAttribute(SgNode *astNode, InheritedAttributeTypeList *inheritedValues, SynthesizedAttributesList synthesizedAttributes)#
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 SynthesizedAttributeTypeList *defaultSynthesizedAttribute(InheritedAttributeTypeList*)#
-
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()#
Protected Attributes
-
TraversalPtrList traversals#
-
typedef AstTopDownBottomUpProcessing<InheritedAttributeType, SynthesizedAttributeType> TraversalType#