The generic base type of all RamVisitors realizing the dispatching of visitor calls.
More...
|
| R | operator() (const Node &node, Params... args) |
| | The main entry for the user allowing visitors to be utilized as functions. More...
|
| |
| R | operator() (const Node *node, Params... args) |
| | The main entry for the user allowing visitors to be utilized as functions. More...
|
| |
| virtual R | visit (const Node &node, Params... args) |
| | The main entry for a visit process conducting the dispatching of a visit to the various sub-types of Nodes. More...
|
| |
| virtual R | visit (const Node *node, Params... args) |
| |
| virtual | ~Visitor ()=default |
| | A virtual destructor. More...
|
| |
|
| | LINK (AbstractConditional, NestedOperation) |
| |
| | LINK (AbstractExistenceCheck, Condition) |
| |
| | LINK (AbstractOperator, Expression) |
| |
| | LINK (Aggregate, RelationOperation) |
| |
| | LINK (AutoIncrement, Expression) |
| |
| | LINK (BinRelationStatement, Statement) |
| |
| | LINK (Break, AbstractConditional) |
| |
| | LINK (Call, Statement) |
| |
| | LINK (Choice, RelationOperation) |
| |
| | LINK (Clear, RelationStatement) |
| |
| | LINK (Condition, Node) |
| |
| | LINK (Conjunction, Condition) |
| |
| | LINK (Constant, Expression) |
| |
| | LINK (Constraint, Condition) |
| |
| | LINK (DebugInfo, Statement) |
| |
| | LINK (EmptinessCheck, Condition) |
| |
| | LINK (ExistenceCheck, AbstractExistenceCheck) |
| |
| | LINK (Exit, Statement) |
| |
| | LINK (Expression, Node) |
| |
| | LINK (Extend, BinRelationStatement) |
| |
| | LINK (False, Condition) |
| |
| | LINK (Filter, AbstractConditional) |
| |
| | LINK (FloatConstant, Constant) |
| |
| | LINK (IndexAggregate, IndexOperation) |
| |
| | LINK (IndexChoice, IndexOperation) |
| |
| | LINK (IndexOperation, RelationOperation) |
| |
| | LINK (IndexScan, IndexOperation) |
| |
| | LINK (IntrinsicOperator, AbstractOperator) |
| |
| | LINK (IO, RelationStatement) |
| |
| | LINK (ListStatement, Statement) |
| |
| | LINK (LogRelationTimer, Statement) |
| |
| | LINK (LogSize, RelationStatement) |
| |
| | LINK (LogTimer, Statement) |
| |
| | LINK (Loop, Statement) |
| |
| | LINK (Negation, Condition) |
| |
| | LINK (NestedOperation, Operation) |
| |
| | LINK (Operation, Node) |
| |
| | LINK (PackRecord, Expression) |
| |
| | LINK (Parallel, ListStatement) |
| |
| | LINK (ParallelAggregate, Aggregate) |
| |
| | LINK (ParallelChoice, Choice) |
| |
| | LINK (ParallelIndexAggregate, IndexAggregate) |
| |
| | LINK (ParallelIndexChoice, IndexChoice) |
| |
| | LINK (ParallelIndexScan, IndexScan) |
| |
| | LINK (ParallelScan, Scan) |
| |
| | LINK (Program, Node) |
| |
| | LINK (Project, Operation) |
| |
| | LINK (ProvenanceExistenceCheck, AbstractExistenceCheck) |
| |
| | LINK (Query, Statement) |
| |
| | LINK (Relation, Node) |
| |
| | LINK (RelationOperation, TupleOperation) |
| |
| | LINK (RelationSize, Expression) |
| |
| | LINK (RelationStatement, Statement) |
| |
| | LINK (Scan, RelationOperation) |
| |
| | LINK (Sequence, ListStatement) |
| |
| | LINK (SignedConstant, Constant) |
| |
| | LINK (Statement, Node) |
| |
| | LINK (SubroutineArgument, Expression) |
| |
| | LINK (SubroutineReturn, Operation) |
| |
| | LINK (Swap, BinRelationStatement) |
| |
| | LINK (True, Condition) |
| |
| | LINK (TupleElement, Expression) |
| |
| | LINK (TupleOperation, NestedOperation) |
| |
| | LINK (UndefValue, Expression) |
| |
| | LINK (UnpackRecord, TupleOperation) |
| |
| | LINK (UnsignedConstant, Constant) |
| |
| | LINK (UserDefinedOperator, AbstractOperator) |
| |
| virtual R | visitNode (const Node &, Params...) |
| | The base case for all visitors – if no more specific overload was defined. More...
|
| |
template<typename R = void, typename... Params>
struct souffle::ram::Visitor< R, Params >
The generic base type of all RamVisitors realizing the dispatching of visitor calls.
Each visitor may define a return type R and a list of extra parameters to be passed along with the visited Nodes to the corresponding visitor function.
- Template Parameters
-
| R | the result type produced by a visit call |
| Params | extra parameters to be passed to the visit call |
Definition at line 119 of file Visitor.h.
template<typename R = void, typename... Params>
The main entry for a visit process conducting the dispatching of a visit to the various sub-types of Nodes.
Sub-classes may override this implementation to conduct pre-visit operations.
Note that the order of this list is important. Sub-classes must be listed before their super-classes; otherwise sub-classes cannot be visited.
- Parameters
-
| node | the node to be visited |
| args | a list of extra parameters to be forwarded |
Definition at line 144 of file Visitor.h.
213 : %s
", typeid(node).name());
216 virtual R visit(const Node* node, Params... args) {
217 return visit(*node, args...);
221 #define LINK(Node, Parent) \