|
souffle
2.0.2-371-g6315b36
|
#include "ram/AbstractConditional.h"#include "ram/AbstractExistenceCheck.h"#include "ram/AbstractOperator.h"#include "ram/Aggregate.h"#include "ram/AutoIncrement.h"#include "ram/BinRelationStatement.h"#include "ram/Break.h"#include "ram/Call.h"#include "ram/Choice.h"#include "ram/Clear.h"#include "ram/Condition.h"#include "ram/Conjunction.h"#include "ram/Constant.h"#include "ram/Constraint.h"#include "ram/DebugInfo.h"#include "ram/EmptinessCheck.h"#include "ram/ExistenceCheck.h"#include "ram/Exit.h"#include "ram/Expression.h"#include "ram/Extend.h"#include "ram/False.h"#include "ram/Filter.h"#include "ram/FloatConstant.h"#include "ram/IO.h"#include "ram/IndexAggregate.h"#include "ram/IndexChoice.h"#include "ram/IndexOperation.h"#include "ram/IndexScan.h"#include "ram/IntrinsicOperator.h"#include "ram/ListStatement.h"#include "ram/LogRelationTimer.h"#include "ram/LogSize.h"#include "ram/LogTimer.h"#include "ram/Loop.h"#include "ram/Negation.h"#include "ram/NestedIntrinsicOperator.h"#include "ram/NestedOperation.h"#include "ram/Node.h"#include "ram/Operation.h"#include "ram/PackRecord.h"#include "ram/Parallel.h"#include "ram/ParallelAggregate.h"#include "ram/ParallelChoice.h"#include "ram/ParallelIndexAggregate.h"#include "ram/ParallelIndexChoice.h"#include "ram/ParallelIndexScan.h"#include "ram/ParallelScan.h"#include "ram/Program.h"#include "ram/Project.h"#include "ram/ProvenanceExistenceCheck.h"#include "ram/Query.h"#include "ram/Relation.h"#include "ram/RelationOperation.h"#include "ram/RelationSize.h"#include "ram/RelationStatement.h"#include "ram/Scan.h"#include "ram/Sequence.h"#include "ram/SignedConstant.h"#include "ram/Statement.h"#include "ram/SubroutineArgument.h"#include "ram/SubroutineReturn.h"#include "ram/Swap.h"#include "ram/True.h"#include "ram/TupleElement.h"#include "ram/TupleOperation.h"#include "ram/UndefValue.h"#include "ram/UnpackRecord.h"#include "ram/UnsignedConstant.h"#include "ram/UserDefinedOperator.h"#include "souffle/utility/FunctionalUtil.h"#include "souffle/utility/MiscUtil.h"#include <cstddef>#include <functional>#include <type_traits>#include <typeinfo>#include <vector>
Go to the source code of this file.
Data Structures | |
| struct | souffle::ram::detail::is_ram_visitor< T > |
| A type trait determining whether a given type is a visitor or not. More... | |
| struct | souffle::ram::detail::is_ram_visitor< const T > |
| struct | souffle::ram::detail::is_ram_visitor< T & > |
| struct | souffle::ram::detail::LambdaVisitor< R, N > |
| A specialized visitor wrapping a lambda function – an auxiliary type required for visitor convenience functions. More... | |
| struct | souffle::ram::ram_visitor_tag |
| A tag type required for the is_ram_visitor type trait to identify RamVisitors. More... | |
| struct | souffle::ram::Visitor< R, Params > |
| The generic base type of all RamVisitors realizing the dispatching of visitor calls. More... | |
Namespaces | |
| souffle | |
| souffle::ram | |
| souffle::ram::detail | |
Macros | |
| #define | FORWARD(Kind) if (const auto* n = dynamic_cast<const Kind*>(&node)) return visit##Kind(*n, args...); |
| #define | LINK(Node, Parent) |
Functions | |
| template<typename R , typename N > | |
| LambdaVisitor< R, N > | souffle::ram::detail::makeLambdaVisitor (const std::function< R(const N &)> &fun) |
| A factory function for creating LambdaVisitor instances. 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_ram_visitor< Lambda >::value, void >::type | souffle::ram::visitDepthFirst (const Node &root, const Lambda &fun) |
| A utility function visiting all nodes within the RAM fragment 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 | souffle::ram::visitDepthFirst (const Node &root, const std::function< R(const N &)> &fun) |
| A utility function visiting all nodes within the RAM fragment 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 | souffle::ram::visitDepthFirst (const Node &root, Visitor< R, Ps... > &visitor, Args &... args) |
| A utility function visiting all nodes within the RAM fragments rooted by the given node recursively in a depth-first pre-order fashion applying the given visitor to each encountered node. More... | |
| template<typename R , typename... Ps, typename... Args> | |
| void | souffle::ram::visitDepthFirstPreOrder (const Node &root, Visitor< R, Ps... > &visitor, Args &... args) |
| A utility function visiting all nodes within the RAM fragment rooted by the given node recursively in a depth-first pre-order fashion applying the given visitor to each encountered node. More... | |
| #define FORWARD | ( | Kind | ) | if (const auto* n = dynamic_cast<const Kind*>(&node)) return visit##Kind(*n, args...); |
1.8.17