| souffle
    2.0.2-371-g6315b36
    | 
| Namespaces | |
| analysis | |
| detail | |
| test | |
| transform | |
| Data Structures | |
| class | Aggregator | 
| Defines the aggregator class.  More... | |
| class | AlgebraicDataType | 
| Combination of types using sums and products.  More... | |
| class | AllBoundSips | 
| Goal: Prioritise atoms with all arguments bound.  More... | |
| class | Argument | 
| An abstract class for arguments.  More... | |
| struct | ast_visitor_tag | 
| A tag type required for the is_ast_visitor type trait to identify AstVisitors.  More... | |
| class | Atom | 
| An atom class.  More... | |
| class | Attribute | 
| Attribute class.  More... | |
| class | BinaryConstraint | 
| Binary constraint class.  More... | |
| class | BindingStore | 
| class | BooleanConstraint | 
| Boolean constraint class.  More... | |
| class | BranchDeclaration | 
| Wrapper for the single branch declaration (product type) inside ADT declaration.  More... | |
| class | BranchInit | 
| Initialization of ADT instance.  More... | |
| class | Clause | 
| Intermediate representation of a horn clause.  More... | |
| class | Component | 
| Component class.  More... | |
| class | ComponentInit | 
| Component initialization class.  More... | |
| class | ComponentType | 
| Component type of a component.  More... | |
| class | Constant | 
| Abstract constant class.  More... | |
| class | Constraint | 
| Abstract class for AST constraints.  More... | |
| class | Counter | 
| counter functor (incrementing a value after each invocation)  More... | |
| class | DeltaInputSips | 
| Goal: prioritise (1) all-bound, then (2) deltas, then (3) input, and then (4) left-most.  More... | |
| class | DeltaSips | 
| Goal: prioritise (1) all-bound, then (2) deltas, and then (3) left-most.  More... | |
| class | Directive | 
| a directive has a type (e.g. input/output/printsize/limitsize), qualified relation name, and a key value map for storing parameters of the directive.  More... | |
| class | ExecutionOrder | 
| An execution order for atoms within a clause; one or more execution orders form a plan.  More... | |
| class | ExecutionPlan | 
| class | Functor | 
| Abstract functor class.  More... | |
| class | FunctorDeclaration | 
| User-defined functor declaration.  More... | |
| class | InputSips | 
| Goal: prioritise (1) all-bound, then (2) input, and then (3) left-most.  More... | |
| class | IntrinsicFunctor | 
| Intrinsic Functor class for functors are in-built.  More... | |
| class | LeastFreeSips | 
| Goal: choose the atom with the least number of unbound arguments.  More... | |
| class | LeastFreeVarsSips | 
| Goal: choose the atom with the least amount of unbound variables.  More... | |
| class | Literal | 
| Defines an abstract class for literals in a horn clause.  More... | |
| class | MaxBoundSips | 
| Goal: prioritise (1) all-bound, then (2) max number of bound vars, then (3) left-most.  More... | |
| class | MaxRatioSips | 
| Goal: prioritise max ratio of bound args.  More... | |
| class | NaiveSips | 
| Goal: Prioritise (1) all bound, then (2) atoms with at least one bound argument, then (3) left-most.  More... | |
| class | NameComparison | 
| Comparator for relations.  More... | |
| class | Negation | 
| Negation of an atom negated atom.  More... | |
| class | NilConstant | 
| Defines the nil constant.  More... | |
| class | Node | 
| Abstract class for syntactic elements in an input program.  More... | |
| class | NodeMapper | 
| An abstract class for manipulating AST Nodes by substitution.  More... | |
| class | NumericConstant | 
| Numeric Constant.  More... | |
| class | Pragma | 
| Representation of a global option.  More... | |
| class | ProfileUseSips | 
| Goal: reorder based on the given profiling information Metric: cost(atom_R) = log(|atom_R|) * #free/#args.  More... | |
| class | Program | 
| The program class consists of relations, clauses and types.  More... | |
| class | ProvenanceNegation | 
| Subclass of Literal that represents a negated atom, * e.g., !parent(x,y).  More... | |
| class | QualifiedName | 
| Qualified Name class defines fully/partially qualified names to identify objects in components.  More... | |
| class | RecordInit | 
| Defines a record initialization class.  More... | |
| class | RecordType | 
| Record type class for record type declarations.  More... | |
| class | Relation | 
| Defines a relation with a name, attributes, qualifiers, and internal representation.  More... | |
| class | SipsMetric | 
| Class for SIPS cost-metric functions Each subclass represents a different heuristic used for evaluating the cost of choosing an atom next in the schedule.  More... | |
| class | StrictSips | 
| Goal: Always choose the left-most atom.  More... | |
| class | StringConstant | 
| String constant class.  More... | |
| class | SubroutineArgument | 
| Defines the argument class for subrountines.  More... | |
| class | SubsetType | 
| Defines subset type class.  More... | |
| class | Term | 
| Defines an abstract term class used for functors and other constructors.  More... | |
| class | TranslationUnit | 
| Translation unit class for the translation pipeline.  More... | |
| class | Type | 
| An abstract base class for types.  More... | |
| class | TypeCast | 
| Defines a type cast class for expressions.  More... | |
| class | UnionType | 
| The union type class.  More... | |
| class | UnnamedVariable | 
| Unnamed variable class.  More... | |
| class | UserDefinedFunctor | 
| User-Defined functor class.  More... | |
| class | Variable | 
| Named variable class.  More... | |
| struct | Visitor | 
| The generic base type of all AstVisitors realizing the dispatching of visitor calls.  More... | |
| Typedefs | |
| using | RelationSet = std::set< const Relation *, NameComparison > | 
| Relation set.  More... | |
| Enumerations | |
| enum | DirectiveType { DirectiveType::input, DirectiveType::output, DirectiveType::printsize, DirectiveType::limitsize } | 
| Functions | |
| Clause * | cloneHead (const Clause *clause) | 
| Returns a clause which contains head of the given clause.  More... | |
| const Relation * | getAtomRelation (const Atom *atom, const Program *program) | 
| Returns the relation referenced by the given atom.  More... | |
| template<typename T , typename C > | |
| std::vector< T * > | getBodyLiterals (const C &clause) | 
| Returns literals of a particular type in the body of a clause.  More... | |
| std::set< const Relation * > | getBodyRelations (const Clause *clause, const Program *program) | 
| Returns the relations referenced in the body of the given clause.  More... | |
| size_t | getClauseNum (const Program *program, const Clause *clause) | 
| Returns the index of a clause within its relation, ignoring facts.  More... | |
| std::vector< Clause * > | getClauses (const Program &program, const QualifiedName &relationName) | 
| Returns a vector of clauses in the program describing the relation with the given name.  More... | |
| std::vector< Clause * > | getClauses (const Program &program, const Relation &rel) | 
| Returns a vector of clauses in the program describing the given relation.  More... | |
| std::vector< Directive * > | getDirectives (const Program &program, const QualifiedName &relationName) | 
| const Relation * | getHeadRelation (const Clause *clause, const Program *program) | 
| Returns the relation referenced by the head of the given clause.  More... | |
| std::vector< const RecordInit * > | getRecords (const Node &root) | 
| Obtains a list of all records referenced within the AST rooted by the given root node.  More... | |
| Relation * | getRelation (const Program &program, const QualifiedName &name) | 
| Returns the relation with the given name in the program.  More... | |
| std::vector< const Variable * > | getVariables (const Node &root) | 
| Obtains a list of all variables referenced within the AST rooted by the given root node.  More... | |
| bool | hasClauseWithAggregatedRelation (const Relation *relation, const Relation *aggRelation, const Program *program, const Literal *&foundLiteral) | 
| Returns whether the given relation has any clauses which contain an aggregation over of a specific relation.  More... | |
| bool | hasClauseWithNegatedRelation (const Relation *relation, const Relation *negRelation, const Program *program, const Literal *&foundLiteral) | 
| Returns whether the given relation has any clauses which contain a negation of a specific relation.  More... | |
| bool | isDeltaRelation (const QualifiedName &name) | 
| Returns whether the given atom is a delta relation.  More... | |
| bool | isFact (const Clause &clause) | 
| Returns whether the given clause is a fact.  More... | |
| bool | isProposition (const Atom *atom) | 
| Returns whether the given atom is a propositon.  More... | |
| bool | isRecursiveClause (const Clause &clause) | 
| Returns whether the given clause is recursive.  More... | |
| bool | isRule (const Clause &clause) | 
| Returns whether the given clause is a rule.  More... | |
| template<typename Lambda > | |
| detail::LambdaNodeMapper< Lambda > | makeLambdaAstMapper (const Lambda &lambda) | 
| Creates a node mapper based on a corresponding lambda expression.  More... | |
| void | negateConstraintInPlace (Constraint &constraint) | 
| Negate an ast constraint.  More... | |
| QualifiedName | operator+ (const std::string &name, const QualifiedName &id) | 
| std::ostream & | operator<< (std::ostream &os, DirectiveType e) | 
| std::string | pprint (const Node &node) | 
| void | removeRelation (TranslationUnit &tu, const QualifiedName &name) | 
| Remove relation and all its clauses from the program.  More... | |
| void | removeRelationClauses (TranslationUnit &tu, const QualifiedName &name) | 
| Removes the set of clauses with the given relation name.  More... | |
| void | removeRelationIOs (TranslationUnit &tu, const QualifiedName &name) | 
| Removes the set of IOs with the given relation name.  More... | |
| bool | renameAtoms (Node &node, const std::map< QualifiedName, QualifiedName > &oldToNew) | 
| Rename all atoms hat appear in a node to a given name.  More... | |
| Clause * | reorderAtoms (const Clause *clause, const std::vector< unsigned int > &newOrder) | 
| Reorders the atoms of a clause to be in the given order.  More... | |
| IntrinsicFunctors | validOverloads (const analysis::TypeAnalysis &, const IntrinsicFunctor &) | 
| Pick valid overloads for a functor, sorted by some measure of "preference".  More... | |
| template<typename Lambda , typename R = typename lambda_traits<Lambda>::result_type, typename N = typename lambda_traits<Lambda>::arg0_type> | |
| std::enable_if<!detail::is_ast_visitor< Lambda >::value, void >::type | visitDepthFirst (const Node &root, const Lambda &fun) | 
| A utility function visiting all nodes within the ast rooted by the given node recursively in a depth-first pre-order fashion applying the given function to each encountered node.  More... | |
| template<typename R , typename N > | |
| void | visitDepthFirst (const Node &root, const std::function< R(const N &)> &fun) | 
| A utility function visiting all nodes within the ast rooted by the given node recursively in a depth-first pre-order fashion applying the given function to each encountered node.  More... | |
| template<typename R , typename... Ps, typename... Args> | |
| void | visitDepthFirst (const Node &root, Visitor< R, Ps... > &visitor, Args &... args) | 
| A utility function visiting all nodes within the ast rooted by the given node recursively in a depth-first pre-order fashion applying the given visitor to each encountered node.  More... | |
| template<typename T , typename Lambda > | |
| void | visitDepthFirst (const std::vector< T * > &list, const Lambda &fun) | 
| A utility function visiting all nodes within a given list of AST root nodes recursively in a depth-first pre-order fashion applying the given function to each encountered node.  More... | |
| template<typename T , typename Lambda > | |
| void | visitDepthFirst (const VecOwn< T > &list, const Lambda &fun) | 
| A utility function visiting all nodes within a given list of AST root nodes recursively in a depth-first pre-order fashion applying the given function to each encountered node.  More... | |
| template<typename Lambda , typename R = typename lambda_traits<Lambda>::result_type, typename N = typename lambda_traits<Lambda>::arg0_type> | |
| std::enable_if<!detail::is_ast_visitor< Lambda >::value, void >::type | visitDepthFirstPostOrder (const Node &root, const Lambda &fun) | 
| A utility function visiting all nodes within the ast rooted by the given node recursively in a depth-first post-order fashion applying the given function to each encountered node.  More... | |
| template<typename R , typename N > | |
| void | visitDepthFirstPostOrder (const Node &root, const std::function< R(const N &)> &fun) | 
| A utility function visiting all nodes within the ast rooted by the given node recursively in a depth-first post-order fashion applying the given function to each encountered node.  More... | |
| template<typename R , typename... Ps, typename... Args> | |
| void | visitDepthFirstPostOrder (const Node &root, Visitor< R, Ps... > &visitor, Args &... args) | 
| A utility function visiting all nodes within the ast rooted by the given node recursively in a depth-first post-order fashion applying the given visitor to each encountered node.  More... | |
| template<typename R , typename... Ps, typename... Args> | |
| void | visitDepthFirstPreOrder (const Node &root, Visitor< R, Ps... > &visitor, Args &... args) | 
| A utility function visiting all nodes within the ast rooted by the given node recursively in a depth-first pre-order fashion applying the given visitor to each encountered node.  More... | |
| using souffle::ast::RelationSet = typedef std::set<const Relation*, NameComparison> | 
Relation set.
Definition at line 180 of file Relation.h.
| 
 | strong | 
| Enumerator | |
|---|---|
| input | |
| output | |
| printsize | |
| limitsize | |
Definition at line 37 of file Directive.h.
Returns a clause which contains head of the given clause.
| clause | the clause which head to be cloned | 
Returns the relation referenced by the given atom.
| atom | the atom | 
| program | the program containing the relations | 
Definition at line 129 of file Utils.cpp.
Referenced by getBodyRelations(), getHeadRelation(), and souffle::ast::transform::ExecutionPlanChecker::transform().
| std::vector<T*> souffle::ast::getBodyLiterals | ( | const C & | clause | ) | 
| std::set< const Relation * > souffle::ast::getBodyRelations | ( | const Clause * | clause, | 
| const Program * | program | ||
| ) | 
Returns the relations referenced in the body of the given clause.
| clause | the clause | 
| program | the program containing the relations | 
Definition at line 137 of file Utils.cpp.
References getAtomRelation(), and visitDepthFirst().

Returns the index of a clause within its relation, ignoring facts.
Used in provenance as a unique ID for clauses within their relations.
| program | the program | 
| clause | the clause to get the index of | 
Definition at line 150 of file Utils.cpp.
References isFact().

| std::vector< Clause * > souffle::ast::getClauses | ( | const Program & | program, | 
| const QualifiedName & | relationName | ||
| ) | 
Returns a vector of clauses in the program describing the relation with the given name.
| program | the program | 
| name | the name of the relation to search for | 
Definition at line 77 of file Utils.cpp.
Referenced by souffle::ast::transform::getInlinedLiteral(), souffle::ast::transform::MagicSetTransformer::getTriviallyIgnoredRelations(), souffle::ast::transform::MinimiseProgramTransformer::reduceLocallyEquivalentClauses(), souffle::ast::transform::MinimiseProgramTransformer::reduceSingletonRelations(), souffle::ast::transform::RemoveEmptyRelationsTransformer::removeEmptyRelations(), souffle::ast::transform::RemoveRelationCopiesTransformer::removeRelationCopies(), and souffle::ast::transform::ExecutionPlanChecker::transform().
Returns a vector of clauses in the program describing the given relation.
| program | the program | 
| rel | the relation to search for | 
Definition at line 87 of file Utils.cpp.
References directives.
| std::vector<Directive*> souffle::ast::getDirectives | ( | const Program & | program, | 
| const QualifiedName & | relationName | ||
| ) | 
Returns the relation referenced by the head of the given clause.
| clause | the clause | 
| program | the program containing the relations | 
Definition at line 133 of file Utils.cpp.
References getAtomRelation(), and visitDepthFirst().

| std::vector< const RecordInit * > souffle::ast::getRecords | ( | const Node & | root | ) | 
Obtains a list of all records referenced within the AST rooted by the given root node.
| root | the root of the AST to be searched | 
Definition at line 70 of file Utils.cpp.
References clauses, and souffle::ast::Program::getClauses().

| Relation * souffle::ast::getRelation | ( | const Program & | program, | 
| const QualifiedName & | name | ||
| ) | 
Returns the relation with the given name in the program.
| program | the program | 
| name | the name of the relation to search for | 
Definition at line 101 of file Utils.cpp.
References removeRelationClauses(), and removeRelationIOs().
Referenced by souffle::ParserDriver::addRelation(), souffle::ast::transform::getInlinedLiteral(), removeRelationIOs(), and souffle::ast::transform::IOAttributesTransformer::transform().

Obtains a list of all variables referenced within the AST rooted by the given root node.
| root | the root of the AST to be searched | 
Definition at line 63 of file Utils.cpp.
References visitDepthFirst().

| bool souffle::ast::hasClauseWithAggregatedRelation | ( | const Relation * | relation, | 
| const Relation * | aggRelation, | ||
| const Program * | program, | ||
| const Literal *& | foundLiteral | ||
| ) | 
Returns whether the given relation has any clauses which contain an aggregation over of a specific relation.
| relation | the relation to search the clauses of | 
| aggRelation | the relation to search for in aggregations in clause bodies | 
| program | the program containing the relations | 
| foundLiteral | set to the literal found in an aggregation | 
Definition at line 184 of file Utils.cpp.
| bool souffle::ast::hasClauseWithNegatedRelation | ( | const Relation * | relation, | 
| const Relation * | negRelation, | ||
| const Program * | program, | ||
| const Literal *& | foundLiteral | ||
| ) | 
Returns whether the given relation has any clauses which contain a negation of a specific relation.
| relation | the relation to search the clauses of | 
| negRelation | the relation to search for negations of in clause bodies | 
| program | the program containing the relations | 
| foundLiteral | set to the negation literal that was found | 
Definition at line 171 of file Utils.cpp.
| bool souffle::ast::isDeltaRelation | ( | const QualifiedName & | name | ) | 
| bool souffle::ast::isFact | ( | const Clause & | clause | ) | 
Returns whether the given clause is a fact.
Definition at line 214 of file Utils.cpp.
Referenced by getClauseNum(), and souffle::ast::transform::RemoveRelationCopiesTransformer::removeRelationCopies().
| bool souffle::ast::isProposition | ( | const Atom * | atom | ) | 
| bool souffle::ast::isRecursiveClause | ( | const Clause & | clause | ) | 
| bool souffle::ast::isRule | ( | const Clause & | clause | ) | 
| detail::LambdaNodeMapper<Lambda> souffle::ast::makeLambdaAstMapper | ( | const Lambda & | lambda | ) | 
Creates a node mapper based on a corresponding lambda expression.
Definition at line 53 of file LambdaNodeMapper.h.
| void souffle::ast::negateConstraintInPlace | ( | Constraint & | constraint | ) | 
Negate an ast constraint.
| constraint | constraint that will be negated | 
Definition at line 297 of file Utils.cpp.
Referenced by souffle::RuleBody::toClauseBodies().
| 
 | inline | 
Definition at line 105 of file QualifiedName.h.
| 
 | inline | 
Definition at line 40 of file Directive.h.
| std::string souffle::ast::pprint | ( | const Node & | node | ) | 
| void souffle::ast::removeRelation | ( | TranslationUnit & | tu, | 
| const QualifiedName & | name | ||
| ) | 
Remove relation and all its clauses from the program.
| tu | the translation unit | 
| name | the name of the relation to delete | 
Definition at line 105 of file Utils.cpp.
Referenced by souffle::ast::transform::RemoveRedundantRelationsTransformer::transform().
| void souffle::ast::removeRelationClauses | ( | TranslationUnit & | tu, | 
| const QualifiedName & | name | ||
| ) | 
Removes the set of clauses with the given relation name.
| tu | the translation unit | 
| name | the name of the relation to search for | 
Definition at line 114 of file Utils.cpp.
Referenced by getRelation().
| void souffle::ast::removeRelationIOs | ( | TranslationUnit & | tu, | 
| const QualifiedName & | name | ||
| ) | 
Removes the set of IOs with the given relation name.
| tu | the translation unit | 
| name | the name of the relation to search for | 
Definition at line 122 of file Utils.cpp.
References souffle::ast::Atom::getQualifiedName(), and getRelation().
Referenced by getRelation().

| bool souffle::ast::renameAtoms | ( | Node & | node, | 
| const std::map< QualifiedName, QualifiedName > & | oldToNew | ||
| ) | 
Rename all atoms hat appear in a node to a given name.
| node | node to alter the children of | 
| oldToNew | map from old atom names to new atom names | 
Definition at line 307 of file Utils.cpp.
References souffle::clone(), and souffle::contains().

| Clause * souffle::ast::reorderAtoms | ( | const Clause * | clause, | 
| const std::vector< unsigned int > & | newOrder | ||
| ) | 
Reorders the atoms of a clause to be in the given order.
Remaining body literals remain in the same order.
E.g. if atoms are [a,b,c] and given order is [1,2,0], then the final atom order will be [b,c,a].
| clause | clause to reorder atoms in | 
| newOrder | new order of atoms; atoms[i] = atoms[newOrder[i]] | 
Definition at line 264 of file Utils.cpp.
| IntrinsicFunctors souffle::ast::validOverloads | ( | const analysis::TypeAnalysis & | , | 
| const IntrinsicFunctor & | |||
| ) | 
Pick valid overloads for a functor, sorted by some measure of "preference".
| std::enable_if<!detail::is_ast_visitor<Lambda>::value, void>::type souffle::ast::visitDepthFirst | ( | const Node & | root, | 
| const Lambda & | fun | ||
| ) | 
A utility function visiting all nodes within the ast rooted by the given node recursively in a depth-first pre-order fashion applying the given function to each encountered node.
| root | the root of the AST to be visited | 
| fun | the function to be applied | 
| args | a list of extra parameters to be forwarded to the visitor | 
Definition at line 343 of file Visitor.h.
References visitDepthFirst().

| void souffle::ast::visitDepthFirst | ( | const Node & | root, | 
| const std::function< R(const N &)> & | fun | ||
| ) | 
A utility function visiting all nodes within the ast rooted by the given node recursively in a depth-first pre-order fashion applying the given function to each encountered node.
| root | the root of the AST to be visited | 
| fun | the function to be applied | 
| args | a list of extra parameters to be forwarded to the visitor | 
Definition at line 327 of file Visitor.h.
References visitDepthFirst().

| void souffle::ast::visitDepthFirst | ( | const Node & | root, | 
| Visitor< R, Ps... > & | visitor, | ||
| Args &... | args | ||
| ) | 
A utility function visiting all nodes within the ast rooted by the given node recursively in a depth-first pre-order fashion applying the given visitor to each encountered node.
| root | the root of the AST to be visited | 
| visitor | the visitor to be applied on each node | 
| args | a list of extra parameters to be forwarded to the visitor | 
Definition at line 273 of file Visitor.h.
References souffle::ast::detail::LambdaVisitor< R, N >::lambda, souffle::ast::detail::LambdaVisitor< R, N >::LambdaVisitor(), n, and souffle::ast::detail::LambdaVisitor< R, N >::visit().
Referenced by souffle::ast::BindingStore::BindingStore(), souffle::ast::transform::SemanticCheckerImpl::checkComplexRule(), souffle::ast::transform::MagicSetTransformer::NormaliseDatabaseTransformer::extractIDB(), souffle::ast::transform::MagicSetTransformer::MagicSetCoreTransformer::getBindingEqualityConstraints(), getBodyRelations(), getHeadRelation(), souffle::ast::transform::MagicSetTransformer::getStronglyIgnoredRelations(), souffle::ast::transform::MagicSetTransformer::getTriviallyIgnoredRelations(), getVariables(), souffle::ast::transform::MaterializeAggregationQueriesTransformer::materializeAggregationQueries(), souffle::ast::transform::MagicSetTransformer::NormaliseDatabaseTransformer::querifyOutputRelations(), souffle::ast::transform::RemoveEmptyRelationsTransformer::removeEmptyRelations(), souffle::ast::transform::SimplifyAggregateTargetExpressionTransformer::transform(), souffle::ast::transform::MaterializeSingletonAggregationTransformer::transform(), souffle::ast::transform::PartitionBodyLiteralsTransformer::transform(), visitDepthFirst(), and souffle::interpreter::NodeGenerator::visitQuery().

| void souffle::ast::visitDepthFirst | ( | const std::vector< T * > & | list, | 
| const Lambda & | fun | ||
| ) | 
A utility function visiting all nodes within a given list of AST root nodes recursively in a depth-first pre-order fashion applying the given function to each encountered node.
| list | the list of roots of the ASTs to be visited | 
| fun | the function to be applied | 
| args | a list of extra parameters to be forwarded to the visitor | 
Definition at line 358 of file Visitor.h.
References visitDepthFirst().

| void souffle::ast::visitDepthFirst | ( | const VecOwn< T > & | list, | 
| const Lambda & | fun | ||
| ) | 
A utility function visiting all nodes within a given list of AST root nodes recursively in a depth-first pre-order fashion applying the given function to each encountered node.
| list | the list of roots of the ASTs to be visited | 
| fun | the function to be applied | 
| args | a list of extra parameters to be forwarded to the visitor | 
Definition at line 374 of file Visitor.h.
References souffle::ast::detail::makeLambdaVisitor().

| std::enable_if<!detail::is_ast_visitor<Lambda>::value, void>::type souffle::ast::visitDepthFirstPostOrder | ( | const Node & | root, | 
| const Lambda & | fun | ||
| ) | 
A utility function visiting all nodes within the ast rooted by the given node recursively in a depth-first post-order fashion applying the given function to each encountered node.
| root | the root of the AST to be visited | 
| fun | the function to be applied | 
| args | a list of extra parameters to be forwarded to the visitor | 
| void souffle::ast::visitDepthFirstPostOrder | ( | const Node & | root, | 
| const std::function< R(const N &)> & | fun | ||
| ) | 
A utility function visiting all nodes within the ast rooted by the given node recursively in a depth-first post-order fashion applying the given function to each encountered node.
| root | the root of the AST to be visited | 
| fun | the function to be applied | 
| args | a list of extra parameters to be forwarded to the visitor | 
Definition at line 390 of file Visitor.h.
References visitDepthFirstPostOrder().

| void souffle::ast::visitDepthFirstPostOrder | ( | const Node & | root, | 
| Visitor< R, Ps... > & | visitor, | ||
| Args &... | args | ||
| ) | 
A utility function visiting all nodes within the ast rooted by the given node recursively in a depth-first post-order fashion applying the given visitor to each encountered node.
| root | the root of the AST to be visited | 
| visitor | the visitor to be applied on each node | 
| args | a list of extra parameters to be forwarded to the visitor | 
Definition at line 254 of file Visitor.h.
Referenced by visitDepthFirstPostOrder().
| void souffle::ast::visitDepthFirstPreOrder | ( | const Node & | root, | 
| Visitor< R, Ps... > & | visitor, | ||
| Args &... | args | ||
| ) | 
A utility function visiting all nodes within the ast rooted by the given node recursively in a depth-first pre-order fashion applying the given visitor to each encountered node.
| root | the root of the AST to be visited | 
| visitor | the visitor to be applied on each node | 
| args | a list of extra parameters to be forwarded to the visitor | 
Definition at line 235 of file Visitor.h.
Referenced by souffle::ast::Visitor< void >::visitNode().
 1.8.17
 1.8.17