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) \