OpenVDB 10.0.1
|
#include <openvdb_ax/ast/Scanners.h>
Public Types | |
using | VisitorT = typename std::conditional< std::is_same< Derived, void >::value, VisitNodeType< NodeT, OpT >, Derived >::type |
template<typename NodeT > | |
using | NodeType = typename std::conditional< ConstVisit, const NodeT, NodeT >::type |
Templated conditional which resolves to a const NodeT if ConstVisit is true, or a non-const NodeT if ConstVisit is false. | |
Public Member Functions | |
bool | visitNodeHierarchies () const |
VisitNodeType (const OpT &op) | |
~VisitNodeType ()=default | |
bool | visit (const NodeT *node) |
Derived & | derived () |
Accesses the derived class by static casting the current object. Assumes use of the Curiously Recursive Template Pattern (CRTP). | |
Options | |
bool | postOrderNodes () const |
Default behavior option. If true, this results in post-order traversal, where node children are traversed and visited before their parent node. If false, this results in pre-order traversal, where by the current node is visited before the node's children. | |
bool | reverseChildVisits () const |
Default behavior option. Reverses the traversal order of child nodes. If true, child nodes are accessed from last to first index .i.e. Node::children() -> 0. If false, child nodes are accessed from first to last .i.e. 0 -> Node::children() | |
bool | reverseHierarchyVisits () const |
Default behavior option. Reverses the traversal order of node hierarchies. If true, hierarchical visits start at the very top of their inheritance structure (always a Node AST node) and visit downwards until the lowest derived concrete node is reached. If false, hierarchical visits start at the lowest derived concrete node and visit upwards until the very top of their inheritance structure (always a Node AST node) is reached. | |
Traversals | |
bool | traverse (NodeType< ast::Tree > *tree) |
Default traversals for a given concrete AST node type. | |
bool | traverse (NodeType< ast::StatementList > *cond) |
Default traversals for a given concrete AST node type. | |
bool | traverse (NodeType< ast::Block > *block) |
Default traversals for a given concrete AST node type. | |
bool | traverse (NodeType< ast::CommaOperator > *comma) |
Default traversals for a given concrete AST node type. | |
bool | traverse (NodeType< ast::Loop > *loop) |
Default traversals for a given concrete AST node type. | |
bool | traverse (NodeType< ast::Keyword > *keyw) |
Default traversals for a given concrete AST node type. | |
bool | traverse (NodeType< ast::ConditionalStatement > *cond) |
Default traversals for a given concrete AST node type. | |
bool | traverse (NodeType< ast::AssignExpression > *asgn) |
Default traversals for a given concrete AST node type. | |
bool | traverse (NodeType< ast::Crement > *crmt) |
Default traversals for a given concrete AST node type. | |
bool | traverse (NodeType< ast::UnaryOperator > *unry) |
Default traversals for a given concrete AST node type. | |
bool | traverse (NodeType< ast::BinaryOperator > *bin) |
Default traversals for a given concrete AST node type. | |
bool | traverse (NodeType< ast::TernaryOperator > *tern) |
Default traversals for a given concrete AST node type. | |
bool | traverse (NodeType< ast::Cast > *cast) |
Default traversals for a given concrete AST node type. | |
bool | traverse (NodeType< ast::FunctionCall > *call) |
Default traversals for a given concrete AST node type. | |
bool | traverse (NodeType< ast::Attribute > *attr) |
Default traversals for a given concrete AST node type. | |
bool | traverse (NodeType< ast::ExternalVariable > *ext) |
Default traversals for a given concrete AST node type. | |
bool | traverse (NodeType< ast::DeclareLocal > *decl) |
Default traversals for a given concrete AST node type. | |
bool | traverse (NodeType< ast::Local > *loc) |
Default traversals for a given concrete AST node type. | |
bool | traverse (NodeType< ast::ArrayPack > *pack) |
Default traversals for a given concrete AST node type. | |
bool | traverse (NodeType< ast::ArrayUnpack > *pack) |
Default traversals for a given concrete AST node type. | |
bool | traverse (NodeType< ast::Value< bool > > *val) |
Default traversals for a given concrete AST node type. | |
bool | traverse (NodeType< ast::Value< int16_t > > *val) |
Default traversals for a given concrete AST node type. | |
bool | traverse (NodeType< ast::Value< int32_t > > *val) |
Default traversals for a given concrete AST node type. | |
bool | traverse (NodeType< ast::Value< int64_t > > *val) |
Default traversals for a given concrete AST node type. | |
bool | traverse (NodeType< ast::Value< float > > *val) |
Default traversals for a given concrete AST node type. | |
bool | traverse (NodeType< ast::Value< double > > *val) |
Default traversals for a given concrete AST node type. | |
bool | traverse (NodeType< ast::Value< std::string > > *val) |
Default traversals for a given concrete AST node type. | |
bool | traverse (NodeType< ast::Node > *node) |
The default traversal method which is hit for all child traversals. The correct derived traversal scheme is selected by using the node enumerated type. | |
Visits | |
bool | visit (NodeType< ast::Node > *) |
Visits for abstract (pure-virtual) Node types. | |
bool | visit (NodeType< ast::Statement > *) |
Visits for abstract (pure-virtual) Node types. | |
bool | visit (NodeType< ast::Expression > *) |
Visits for abstract (pure-virtual) Node types. | |
bool | visit (NodeType< ast::Variable > *) |
Visits for abstract (pure-virtual) Node types. | |
bool | visit (NodeType< ast::ValueBase > *) |
Visits for abstract (pure-virtual) Node types. | |
bool | visit (NodeType< ast::Tree > *) |
Visits for concrete Node types. | |
bool | visit (NodeType< ast::StatementList > *) |
Visits for abstract (pure-virtual) Node types. | |
bool | visit (NodeType< ast::Block > *) |
Visits for abstract (pure-virtual) Node types. | |
bool | visit (NodeType< ast::CommaOperator > *) |
Visits for abstract (pure-virtual) Node types. | |
bool | visit (NodeType< ast::Loop > *) |
Visits for abstract (pure-virtual) Node types. | |
bool | visit (NodeType< ast::Keyword > *) |
Visits for abstract (pure-virtual) Node types. | |
bool | visit (NodeType< ast::ConditionalStatement > *) |
Visits for abstract (pure-virtual) Node types. | |
bool | visit (NodeType< ast::AssignExpression > *) |
Visits for abstract (pure-virtual) Node types. | |
bool | visit (NodeType< ast::Crement > *) |
Visits for abstract (pure-virtual) Node types. | |
bool | visit (NodeType< ast::UnaryOperator > *) |
Visits for abstract (pure-virtual) Node types. | |
bool | visit (NodeType< ast::BinaryOperator > *) |
Visits for abstract (pure-virtual) Node types. | |
bool | visit (NodeType< ast::TernaryOperator > *) |
Visits for abstract (pure-virtual) Node types. | |
bool | visit (NodeType< ast::Cast > *) |
Visits for abstract (pure-virtual) Node types. | |
bool | visit (NodeType< ast::FunctionCall > *) |
Visits for abstract (pure-virtual) Node types. | |
bool | visit (NodeType< ast::Attribute > *) |
Visits for abstract (pure-virtual) Node types. | |
bool | visit (NodeType< ast::ExternalVariable > *) |
Visits for abstract (pure-virtual) Node types. | |
bool | visit (NodeType< ast::DeclareLocal > *) |
Visits for abstract (pure-virtual) Node types. | |
bool | visit (NodeType< ast::Local > *) |
Visits for abstract (pure-virtual) Node types. | |
bool | visit (NodeType< ast::ArrayPack > *) |
Visits for abstract (pure-virtual) Node types. | |
bool | visit (NodeType< ast::ArrayUnpack > *) |
Visits for abstract (pure-virtual) Node types. | |
bool | visit (NodeType< ast::Value< bool > > *) |
Visits for abstract (pure-virtual) Node types. | |
bool | visit (NodeType< ast::Value< int16_t > > *) |
Visits for abstract (pure-virtual) Node types. | |
bool | visit (NodeType< ast::Value< int32_t > > *) |
Visits for abstract (pure-virtual) Node types. | |
bool | visit (NodeType< ast::Value< int64_t > > *) |
Visits for abstract (pure-virtual) Node types. | |
bool | visit (NodeType< ast::Value< float > > *) |
Visits for abstract (pure-virtual) Node types. | |
bool | visit (NodeType< ast::Value< double > > *) |
Visits for abstract (pure-virtual) Node types. | |
bool | visit (NodeType< ast::Value< std::string > > *) |
Visits for abstract (pure-virtual) Node types. | |
|
inherited |
Templated conditional which resolves to a const NodeT if ConstVisit is true, or a non-const NodeT if ConstVisit is false.
using VisitorT = typename std::conditional< std::is_same<Derived, void>::value, VisitNodeType<NodeT, OpT>, Derived>::type |
|
inline |
|
default |
|
inlineinherited |
Accesses the derived class by static casting the current object. Assumes use of the Curiously Recursive Template Pattern (CRTP).
|
inlineinherited |
Default behavior option. If true, this results in post-order traversal, where node children are traversed and visited before their parent node. If false, this results in pre-order traversal, where by the current node is visited before the node's children.
Post-order traversal (for each node):
|
inlineinherited |
Default behavior option. Reverses the traversal order of child nodes. If true, child nodes are accessed from last to first index .i.e. Node::children() -> 0. If false, child nodes are accessed from first to last .i.e. 0 -> Node::children()
|
inlineinherited |
Default behavior option. Reverses the traversal order of node hierarchies. If true, hierarchical visits start at the very top of their inheritance structure (always a Node AST node) and visit downwards until the lowest derived concrete node is reached. If false, hierarchical visits start at the lowest derived concrete node and visit upwards until the very top of their inheritance structure (always a Node AST node) is reached.
|
inlineinherited |
Default traversals for a given concrete AST node type.
|
inlineinherited |
Default traversals for a given concrete AST node type.
|
inlineinherited |
Default traversals for a given concrete AST node type.
|
inlineinherited |
Default traversals for a given concrete AST node type.
|
inlineinherited |
Default traversals for a given concrete AST node type.
|
inlineinherited |
Default traversals for a given concrete AST node type.
|
inlineinherited |
Default traversals for a given concrete AST node type.
|
inlineinherited |
Default traversals for a given concrete AST node type.
|
inlineinherited |
Default traversals for a given concrete AST node type.
|
inlineinherited |
Default traversals for a given concrete AST node type.
|
inlineinherited |
Default traversals for a given concrete AST node type.
|
inlineinherited |
Default traversals for a given concrete AST node type.
|
inlineinherited |
Default traversals for a given concrete AST node type.
|
inlineinherited |
Default traversals for a given concrete AST node type.
|
inlineinherited |
Default traversals for a given concrete AST node type.
|
inlineinherited |
Default traversals for a given concrete AST node type.
|
inlineinherited |
The default traversal method which is hit for all child traversals. The correct derived traversal scheme is selected by using the node enumerated type.
|
inlineinherited |
Default traversals for a given concrete AST node type.
|
inlineinherited |
Default traversals for a given concrete AST node type.
|
inlineinherited |
Default traversals for a given concrete AST node type.
|
inlineinherited |
Default traversals for a given concrete AST node type.
|
inlineinherited |
Default traversals for a given concrete AST node type.
|
inlineinherited |
Default traversals for a given concrete AST node type.
|
inlineinherited |
Default traversals for a given concrete AST node type.
|
inlineinherited |
Default traversals for a given concrete AST node type.
|
inlineinherited |
Default traversals for a given concrete AST node type.
|
inlineinherited |
Default traversals for a given concrete AST node type.
|
inlineinherited |
Default traversals for a given concrete AST node type.
|
inline |
|
inlineinherited |
Visits for abstract (pure-virtual) Node types.
|
inlineinherited |
Visits for abstract (pure-virtual) Node types.
|
inlineinherited |
Visits for abstract (pure-virtual) Node types.
|
inlineinherited |
Visits for abstract (pure-virtual) Node types.
|
inlineinherited |
Visits for abstract (pure-virtual) Node types.
|
inlineinherited |
Visits for abstract (pure-virtual) Node types.
|
inlineinherited |
Visits for abstract (pure-virtual) Node types.
|
inlineinherited |
Visits for abstract (pure-virtual) Node types.
|
inlineinherited |
Visits for abstract (pure-virtual) Node types.
|
inlineinherited |
Visits for abstract (pure-virtual) Node types.
|
inlineinherited |
Visits for abstract (pure-virtual) Node types.
|
inlineinherited |
Visits for abstract (pure-virtual) Node types.
|
inlineinherited |
Visits for abstract (pure-virtual) Node types.
|
inlineinherited |
Visits for abstract (pure-virtual) Node types.
|
inlineinherited |
Visits for abstract (pure-virtual) Node types.
|
inlineinherited |
Visits for abstract (pure-virtual) Node types.
|
inlineinherited |
Visits for abstract (pure-virtual) Node types.
|
inlineinherited |
Visits for abstract (pure-virtual) Node types.
|
inlineinherited |
Visits for abstract (pure-virtual) Node types.
|
inlineinherited |
Visits for abstract (pure-virtual) Node types.
|
inlineinherited |
Visits for abstract (pure-virtual) Node types.
|
inlineinherited |
Visits for concrete Node types.
|
inlineinherited |
Visits for abstract (pure-virtual) Node types.
|
inlineinherited |
Visits for abstract (pure-virtual) Node types.
|
inlineinherited |
Visits for abstract (pure-virtual) Node types.
|
inlineinherited |
Visits for abstract (pure-virtual) Node types.
|
inlineinherited |
Visits for abstract (pure-virtual) Node types.
|
inlineinherited |
Visits for abstract (pure-virtual) Node types.
|
inlineinherited |
Visits for abstract (pure-virtual) Node types.
|
inlineinherited |
Visits for abstract (pure-virtual) Node types.
|
inlineinherited |
Visits for abstract (pure-virtual) Node types.
|
inlineinherited |
Visits for abstract (pure-virtual) Node types.
|
inline |