OpenADFortTk (including Open64 and OpenAnalysis references)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
OA::NewExprTree Class Reference

#include <NewExprTree.hpp>

Inheritance diagram for OA::NewExprTree:
Inheritance graph
Collaboration diagram for OA::NewExprTree:
Collaboration graph

Classes

class  CallNode
 
class  ChildNodesIterator
 
class  ConstSymNode
 
class  ConstValNode
 
class  Edge
 
class  EdgesIterator
 
class  MemRefNode
 
class  Node
 
class  NodesIterator
 
class  OpNode
 
class  OutEdgesIterator
 
class  PostOrderIterator
 
class  PreOrderIterator
 
class  ReversePostOrderIterator
 

Public Member Functions

 NewExprTree ()
 
virtual ~NewExprTree ()
 
OA_ptr< NodegetRoot ()
 
void acceptVisitor (NewExprTreeVisitor &pVisitor)
 visit root and then accept visitor on tree More...
 
void connect (OA_ptr< Node > src, OA_ptr< Node > dst)
 
void disconnect (OA_ptr< Edge > e)
 
void copyAndConnectSubTree (OA_ptr< Node > src, OA_ptr< NewExprTree > subtree)
 
bool operator< (NewExprTree &rhs)
 
bool operator== (NewExprTree &rhs)
 
void str (std::ostream &os)
 
void dump (std::ostream &os, OA_ptr< IRHandlesIRInterface > ir)
 
void output (IRHandlesIRInterface &ir)
 
- Public Member Functions inherited from OA::ExprTree
 ExprTree ()
 
virtual ~ExprTree ()
 
OA_ptr< NodegetRoot ()
 
void acceptVisitor (ExprTreeVisitor &pVisitor)
 visit root and then accept visitor on tree More...
 
void connect (OA_ptr< Node > src, OA_ptr< Node > dst)
 
void disconnect (OA_ptr< Edge > e)
 
void copyAndConnectSubTree (OA_ptr< Node > src, OA_ptr< ExprTree > subtree)
 
bool operator< (ExprTree &other)
 an ordering for expression trees, needed for use within STL containers More...
 
bool operator== (ExprTree &other)
 
virtual int getOrder ()
 
void str (std::ostream &os)
 
void dump (std::ostream &os, OA_ptr< IRHandlesIRInterface > ir)
 
 ExprTree ()
 
virtual ~ExprTree ()
 
OA_ptr< NodegetRoot ()
 
void acceptVisitor (ExprTreeVisitor &pVisitor)
 visit root and then accept visitor on tree More...
 
void connect (OA_ptr< Node > src, OA_ptr< Node > dst)
 
void disconnect (OA_ptr< Edge > e)
 
void copyAndConnectSubTree (OA_ptr< Node > src, OA_ptr< ExprTree > subtree)
 
bool operator< (ExprTree &other)
 an ordering for expression trees, needed for use within STL containers More...
 
bool operator== (ExprTree &other)
 
virtual int getOrder ()
 
void str (std::ostream &os)
 
void dump (std::ostream &os, OA_ptr< IRHandlesIRInterface > ir)
 
- Public Member Functions inherited from OA::Tree
 Tree ()
 
 Tree (OA_ptr< Node > root)
 
virtual ~Tree ()
 
OA_ptr< NodegetRoot ()
 
void addEdge (OA_ptr< Edge >) throw (DuplicateEdge, EdgeInUse, EmptyEdge, SecondParent, EmptyEndPoint)
 
void addNode (OA_ptr< Node >) throw (DuplicateNode, NodeInUse, EmptyNode)
 
void add_empty_edge (OA_ptr< Node >) throw (EmptyNode)
 
void removeEdge (OA_ptr< Edge >) throw (NonexistentEdge, EmptyEdge)
 
void removeNode (OA_ptr< Node >) throw (NonexistentNode, DeletingRootOfNonSingletonTree, EmptyNode)
 
OA_ptr< NodesIteratorgetNodesIterator () const
 
OA_ptr< EdgesIteratorgetEdgesIterator () const
 
OA_ptr< PreOrderIteratorgetPreOrderIterator ()
 
OA_ptr< PostOrderIteratorgetPostOrderIterator ()
 
OA_ptr< ReversePostOrderIteratorgetReversePostOrderIterator () const
 
- Public Member Functions inherited from OA::Annotation
 Annotation ()
 
virtual ~Annotation ()
 

Private Member Functions

bool compareTreesRootedAt (OA_ptr< Node > rootLHS, OA_ptr< Node > rootRHS)
 

Additional Inherited Members

- Static Public Member Functions inherited from OA::Annotation
static void configOutput (OA_ptr< OutputBuilder > ob)
 
- Protected Attributes inherited from OA::Tree
OA_ptr< Noderoot_node
 
OA_ptr< NodemPostOrderStart
 
OA_ptr< std::set< OA_ptr< Edge > > > edge_set
 
OA_ptr< std::set< OA_ptr< Node > > > node_set
 
bool preorder_needed
 
bool postorder_needed
 
bool rpostorder_needed
 
- Static Protected Attributes inherited from OA::Annotation
static OA_ptr< OutputBuildersOutBuild
 

Detailed Description

ExprTree is a Tree with enhanced nodes. It represents expressions involving various IRHandles.

Definition at line 44 of file NewExprTree.hpp.

Constructor & Destructor Documentation

OA::NewExprTree::NewExprTree ( )

Definition at line 28 of file NewExprTree.cpp.

References OA::debug, and OA_DEBUG_CTRL_MACRO.

OA::NewExprTree::~NewExprTree ( )
virtual

Definition at line 33 of file NewExprTree.cpp.

Member Function Documentation

void OA::NewExprTree::acceptVisitor ( NewExprTreeVisitor pVisitor)

visit root and then accept visitor on tree

visit nodes in require order and then accept visitor on tree

Definition at line 38 of file NewExprTree.cpp.

References OA::NewExprTree::Node::acceptVisitor(), getRoot(), OA::NewExprTreeVisitor::visitExprTreeAfter(), and OA::NewExprTreeVisitor::visitExprTreeBefore().

Referenced by output().

Here is the call graph for this function:

bool OA::NewExprTree::compareTreesRootedAt ( OA_ptr< Node rootLHS,
OA_ptr< Node rootRHS 
)
private

Definition at line 99 of file NewExprTree.cpp.

References OA::OA_ptr< T >::convert(), and OA::debug.

Referenced by operator<().

Here is the call graph for this function:

void OA::NewExprTree::connect ( OA_ptr< Node src,
OA_ptr< Node dst 
)
inline

Definition at line 65 of file NewExprTree.hpp.

Referenced by copyAndConnectSubTree().

void OA::NewExprTree::copyAndConnectSubTree ( OA_ptr< Node src,
OA_ptr< NewExprTree subtree 
)
void OA::NewExprTree::disconnect ( OA_ptr< Edge e)
inline

Definition at line 67 of file NewExprTree.hpp.

References OA::OA_ptr< T >::convert().

Here is the call graph for this function:

void OA::NewExprTree::dump ( std::ostream &  os,
OA_ptr< IRHandlesIRInterface ir 
)

Definition at line 73 of file NewExprTree.cpp.

References OA::NewExprTree::NodesIterator::current(), OA::OA_ptr< T >::dump(), and OA::Tree::NodesIterator::isValid().

Here is the call graph for this function:

OA_ptr<Node> OA::NewExprTree::getRoot ( )
inline

Definition at line 53 of file NewExprTree.hpp.

References OA::OA_ptr< T >::convert(), OA::Tree::getRoot(), and OA::n.

Referenced by acceptVisitor(), and operator<().

Here is the call graph for this function:

bool OA::NewExprTree::operator< ( NewExprTree rhs)

Definition at line 88 of file NewExprTree.cpp.

References compareTreesRootedAt(), OA::debug, and getRoot().

Here is the call graph for this function:

bool OA::NewExprTree::operator== ( NewExprTree rhs)

Definition at line 142 of file NewExprTree.cpp.

void OA::NewExprTree::output ( IRHandlesIRInterface ir)
virtual

Reimplemented from OA::ExprTree.

Definition at line 153 of file NewExprTree.cpp.

References acceptVisitor(), and OA::Annotation::sOutBuild.

Here is the call graph for this function:

void OA::NewExprTree::str ( std::ostream &  os)

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