Logo Search packages:      
Sourcecode: fauhdlc version File versions

ast::DotVisitor Class Reference

#include <DotVisitor.hpp>

Inheritance diagram for ast::DotVisitor:

ast::TopDownVisitor ast::Visitor

List of all members.


Detailed Description

convert AST to a dot graph.

This visitor will convert the abstract syntax tree to a dot graph. The output can then be converted to e.g. a postscript file with dot -Tps output.dot > output.ps This visitor is safe to be used during all frontend stages.

Definition at line 25 of file DotVisitor.hpp.


Public Member Functions

 DotVisitor ()
 c'tor
void put (std::ostream &stream) const
 write the dot-graph to stream.
 ~DotVisitor ()
 d'tor

Protected Member Functions

template<typename T>
void listTraverse (T &l, bool &deleteFlag)
 traverse a list of AST nodes, eventually deleting a node.
template<typename T>
void listTraverse (T l)
 traverse a list of AST nodes.
virtual void process (AttributableDeclaration &node)
 Process a AttributableDeclaration.
virtual void process (AstNode &node)
 Process a generic AstNode.

Static Protected Attributes

static int visits = 0

Private Member Functions

int assignId (AstNode &node)
NodeDescriptionmakeDescription (AstNode &node, const char *desc)
template<typename T>
void makeEdges (int fromId, T l, const char *s)
template<typename T>
void makeEdges (int fromId, T l)
virtual void process (PrefixedName &node)
 Process a generic PrefixedName.
virtual void process (Name &node)
 Process a generic Name.
virtual void process (TypeDeclaration &node)
 Process a generic TypeDeclaration.
virtual void process (LibUnit &node)
 Process a generic LibUnit.
virtual void process (Callable &node)
 Process a generic Callable.
virtual void process (ConditionedStat &node)
 Process a generic ConditionedStat.
virtual void process (LoopStat &node)
 Process a generic LoopStat.
virtual void process (SeqStat &node)
 Process a generic SeqStat.
virtual void process (Expression &node)
 Process a generic Expression.
virtual void process (SymbolDeclaration &node)
 Process a generic SymbolDeclaration.
virtual void process (ValDeclaration &node)
 Process a generic ValDeclaration.
virtual void visit (AttributeSpecification &node)
virtual void visit (AttributeDeclaration &node)
virtual void visit (TypeConversion &node)
virtual void visit (Slice &node)
virtual void visit (Subscript &node)
virtual void visit (LibraryList &node)
virtual void visit (Library &node)
virtual void visit (SubtypeIndication &node)
virtual void visit (EnumerationElement &node)
virtual void visit (Aggregate &node)
virtual void visit (RecordTypeElement &node)
virtual void visit (RecordType &node)
virtual void visit (UnconstrainedArrayType &node)
virtual void visit (RangeConstraintType &node)
virtual void visit (PhysicalTypeUnit &node)
virtual void visit (PhysicalType &node)
virtual void visit (EnumerationType &node)
virtual void visit (CondalSigAssign &node)
virtual void visit (SubprogBody &node)
virtual void visit (Process &node)
virtual void visit (PackageBody &node)
virtual void visit (Package &node)
virtual void visit (CompInstStat &node)
virtual void visit (ProcedureDeclaration &node)
virtual void visit (FunctionDeclaration &node)
virtual void visit (AssociationElement &node)
virtual void visit (Architecture &node)
virtual void visit (Others &node)
virtual void visit (CaseAlternative &node)
virtual void visit (CaseStat &node)
virtual void visit (DiscreteRange &node)
virtual void visit (VarDeclaration &node)
virtual void visit (AssertStat &node)
virtual void visit (ProcCallStat &node)
virtual void visit (ReturnStat &node)
virtual void visit (WaveFormElem &node)
virtual void visit (SigAssignStat &node)
virtual void visit (ExitStat &node)
virtual void visit (WaitStat &node)
virtual void visit (VarAssignStat &node)
virtual void visit (NextStat &node)
virtual void visit (WhileLoopStat &node)
virtual void visit (ForLoopStat &node)
virtual void visit (NullStat &node)
virtual void visit (IfStat &node)
virtual void visit (FunctionCall &node)
virtual void visit (ConstantDeclaration &node)
virtual void visit (SignalDeclaration &node)
virtual void visit (Entity &node)
virtual void visit (TemporaryName &node)
virtual void visit (AttributeName &node)
virtual void visit (SelectedName &node)
virtual void visit (SimpleName &node)
virtual void visit (ConstArray &node)
virtual void visit (ConstReal &node)
virtual void visit (ConstInteger &node)
virtual void visit (ElementAssociation &node)

Private Attributes

NodeDescriptioncurrentDesc
std::list< Edgeedges
int idCounter
std::list< NodeDescription * > nodes

Classes

class  Edge
class  NodeDescription

The documentation for this class was generated from the following files:

Generated by  Doxygen 1.6.0   Back to index