Template Class SgCombinedTreeTraversal#

Inheritance Relationships#

Base Type#

Class Documentation#

template<class InheritedAttributeType, class SynthesizedAttributeType>
class SgCombinedTreeTraversal : public SgTreeTraversal<std::vector<InheritedAttributeType>*, std::vector<SynthesizedAttributeType>*>#

Public Types

typedef SgTreeTraversal<InheritedAttributeType, SynthesizedAttributeType> TraversalType#
typedef TraversalType *TraversalPtr#
typedef std::vector<TraversalPtr> TraversalPtrList#
typedef std::vector<InheritedAttributeType> InheritedAttributeTypeList#
typedef std::vector<SynthesizedAttributeType> SynthesizedAttributeTypeList#
typedef SgTreeTraversal<std::vector<InheritedAttributeType>*, std::vector<SynthesizedAttributeType>*> Superclass#
typedef Superclass::SynthesizedAttributesList SynthesizedAttributesList#

Public Functions

SgCombinedTreeTraversal()#

default constructor

SgCombinedTreeTraversal(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)#
virtual SynthesizedAttributeTypeList *evaluateSynthesizedAttribute(SgNode *astNode, InheritedAttributeTypeList *inheritedValues, SynthesizedAttributesList synthesizedAttributes)#
virtual SynthesizedAttributeTypeList *defaultSynthesizedAttribute(InheritedAttributeTypeList*)#
virtual void atTraversalStart()#
virtual void atTraversalEnd()#

Protected Attributes

TraversalPtrList traversals#