#include <ExprTreeVisitor.hpp>

Public Member Functions | |
| virtual | ~ExprTreeVisitor () |
| virtual void | visitExprTreeBefore (ExprTree &)=0 |
| called before root noded in the expression tree is visited | |
| virtual void | visitExprTreeAfter (ExprTree &)=0 |
| called after root noded in the expression tree is visited | |
| virtual void | visitNode (ExprTree::Node &)=0 |
| virtual void | visitOpNode (ExprTree::OpNode &n) |
| virtual void | visitCallNode (ExprTree::CallNode &n) |
| virtual void | visitMemRefNode (ExprTree::MemRefNode &n) |
| virtual void | visitConstSymNode (ExprTree::ConstSymNode &n) |
| virtual void | visitConstValNode (ExprTree::ConstValNode &n) |
Protected Member Functions | |
| ExprTreeVisitor () | |
ExprTreeVisitor is an abstract base class used to implement the Visitor pattern on ExprTree Nodes.
The ExprTree::acceptVisitor method will call visitExprTreeBefore, visitExprTreeAfter, and acceptVisitor on the root node. If you want to traverse other nodes then you must call acceptVisitor on children nodes when appropriate. See EvalToConstVisitor::visitOpNode for an example.
Memory Management: It is assumed that the concrete visitors will NOT keep references to expression tree nodes and that the expression tree will not be deallocated while an ExprTreeVisitor is visiting an ExprTree. Concrete visitors should also never take the address of a Node or ExprTree and pass it to a method that requires an OA_ptr<Node>.
Definition at line 39 of file ExprTreeVisitor.hpp.
| OA::ExprTreeVisitor::ExprTreeVisitor | ( | ) | [inline, protected] |
Definition at line 41 of file ExprTreeVisitor.hpp.
| virtual OA::ExprTreeVisitor::~ExprTreeVisitor | ( | ) | [inline, virtual] |
Definition at line 43 of file ExprTreeVisitor.hpp.
| virtual void OA::ExprTreeVisitor::visitCallNode | ( | ExprTree::CallNode & | n | ) | [inline, virtual] |
Reimplemented in OA::AffineExpr::AffineExprExprTreeVisitor, OA::DifferentiableLocsVisitor, OA::EvalToConstVisitor, OA::EvalToMemRefVisitor, OA::LinearityLocsVisitor, OA::MemRefsVisitor, and OA::OutputExprTreeVisitor.
Definition at line 60 of file ExprTreeVisitor.hpp.
References visitNode().
Referenced by OA::ExprTree::CallNode::acceptVisitor().

| virtual void OA::ExprTreeVisitor::visitConstSymNode | ( | ExprTree::ConstSymNode & | n | ) | [inline, virtual] |
Reimplemented in OA::AffineExpr::AffineExprExprTreeVisitor, OA::DifferentiableLocsVisitor, OA::EvalToConstVisitor, OA::EvalToMemRefVisitor, OA::LinearityLocsVisitor, OA::MemRefsVisitor, and OA::OutputExprTreeVisitor.
Definition at line 62 of file ExprTreeVisitor.hpp.
References visitNode().
Referenced by OA::ExprTree::ConstSymNode::acceptVisitor().

| virtual void OA::ExprTreeVisitor::visitConstValNode | ( | ExprTree::ConstValNode & | n | ) | [inline, virtual] |
Reimplemented in OA::AffineExpr::AffineExprExprTreeVisitor, OA::DifferentiableLocsVisitor, OA::EvalToConstVisitor, OA::EvalToMemRefVisitor, OA::LinearityLocsVisitor, OA::MemRefsVisitor, and OA::OutputExprTreeVisitor.
Definition at line 63 of file ExprTreeVisitor.hpp.
References visitNode().
Referenced by OA::ExprTree::ConstValNode::acceptVisitor().

| virtual void OA::ExprTreeVisitor::visitExprTreeAfter | ( | ExprTree & | ) | [pure virtual] |
called after root noded in the expression tree is visited
Implemented in OA::AffineExpr::AffineExprExprTreeVisitor, OA::DifferentiableLocsVisitor, OA::EvalToConstVisitor, OA::EvalToMemRefVisitor, OA::LinearityLocsVisitor, OA::MemRefsVisitor, and OA::OutputExprTreeVisitor.
Referenced by OA::ExprTree::acceptVisitor().
| virtual void OA::ExprTreeVisitor::visitExprTreeBefore | ( | ExprTree & | ) | [pure virtual] |
called before root noded in the expression tree is visited
Implemented in OA::AffineExpr::AffineExprExprTreeVisitor, OA::DifferentiableLocsVisitor, OA::EvalToConstVisitor, OA::EvalToMemRefVisitor, OA::LinearityLocsVisitor, OA::MemRefsVisitor, and OA::OutputExprTreeVisitor.
Referenced by OA::ExprTree::acceptVisitor().
| virtual void OA::ExprTreeVisitor::visitMemRefNode | ( | ExprTree::MemRefNode & | n | ) | [inline, virtual] |
Reimplemented in OA::AffineExpr::AffineExprExprTreeVisitor, OA::DifferentiableLocsVisitor, OA::EvalToConstVisitor, OA::EvalToMemRefVisitor, OA::LinearityLocsVisitor, OA::MemRefsVisitor, and OA::OutputExprTreeVisitor.
Definition at line 61 of file ExprTreeVisitor.hpp.
References visitNode().
Referenced by OA::ExprTree::MemRefNode::acceptVisitor().

| virtual void OA::ExprTreeVisitor::visitNode | ( | ExprTree::Node & | ) | [pure virtual] |
Implemented in OA::AffineExpr::AffineExprExprTreeVisitor, OA::DifferentiableLocsVisitor, OA::EvalToConstVisitor, OA::EvalToMemRefVisitor, OA::LinearityLocsVisitor, OA::MemRefsVisitor, and OA::OutputExprTreeVisitor.
Referenced by visitCallNode(), visitConstSymNode(), visitConstValNode(), visitMemRefNode(), and visitOpNode().
| virtual void OA::ExprTreeVisitor::visitOpNode | ( | ExprTree::OpNode & | n | ) | [inline, virtual] |
Reimplemented in OA::AffineExpr::AffineExprExprTreeVisitor, OA::DifferentiableLocsVisitor, OA::EvalToConstVisitor, OA::EvalToMemRefVisitor, OA::LinearityLocsVisitor, OA::MemRefsVisitor, and OA::OutputExprTreeVisitor.
Definition at line 59 of file ExprTreeVisitor.hpp.
References visitNode().
Referenced by OA::ExprTree::OpNode::acceptVisitor().

1.6.1