souffle  2.0.2-371-g6315b36
Public Member Functions | Data Fields
souffle::ram::detail::LambdaVisitor< R, N > Struct Template Reference

A specialized visitor wrapping a lambda function – an auxiliary type required for visitor convenience functions. More...

#include <Visitor.h>

Inheritance diagram for souffle::ram::detail::LambdaVisitor< R, N >:
Inheritance graph
Collaboration diagram for souffle::ram::detail::LambdaVisitor< R, N >:
Collaboration graph

Public Member Functions

 LambdaVisitor (std::function< R(const N &)> lambda)
 
void visit (const Node &node) override
 
- Public Member Functions inherited from souffle::ram::Visitor< void >
void operator() (const Node &node, Params... args)
 The main entry for the user allowing visitors to be utilized as functions. More...
 
void operator() (const Node *node, Params... args)
 The main entry for the user allowing visitors to be utilized as functions. More...
 
virtual void 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 void visit (const Node *node, Params... args)
 
virtual ~Visitor ()=default
 A virtual destructor. More...
 

Data Fields

std::function< R(const N &)> lambda
 

Additional Inherited Members

- Protected Member Functions inherited from souffle::ram::Visitor< void >
 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 void visitNode (const Node &, Params...)
 The base case for all visitors – if no more specific overload was defined. More...
 

Detailed Description

template<typename R, typename N>
struct souffle::ram::detail::LambdaVisitor< R, N >

A specialized visitor wrapping a lambda function – an auxiliary type required for visitor convenience functions.

Definition at line 368 of file Visitor.h.

Constructor & Destructor Documentation

◆ LambdaVisitor()

template<typename R , typename N >
souffle::ram::detail::LambdaVisitor< R, N >::LambdaVisitor ( std::function< R(const N &)>  lambda)
inline

Definition at line 370 of file Visitor.h.

Member Function Documentation

◆ visit()

template<typename R , typename N >
void souffle::ram::detail::LambdaVisitor< R, N >::visit ( const Node node)
inlineoverride

Definition at line 371 of file Visitor.h.

375  {

Field Documentation

◆ lambda

template<typename R , typename N >
std::function<R(const N&)> souffle::ram::detail::LambdaVisitor< R, N >::lambda

Definition at line 369 of file Visitor.h.


The documentation for this struct was generated from the following file: