souffle
2.0.2-371-g6315b36
|
Go to the documentation of this file.
32 class ListStatement :
public Statement {
37 template <
typename... Stmts>
40 for (
auto& cur : tmp) {
41 assert(cur.get() !=
nullptr &&
"statement is a null-pointer");
52 std::vector<const Node*> res;
54 res.push_back(cur.get());
59 void apply(
const NodeMapper&
map)
override {
61 stmt =
map(std::move(stmt));
66 bool equal(
const Node& node)
const override {
std::vector< Statement * > getStatements() const
Get statements.
auto map(const std::vector< A > &xs, F &&f)
Applies a function to each element of a vector and returns the results.
VecOwn< Statement > statements
Ordered list of RAM statements.
Node is a superclass for all RAM IR classes.
bool equal_targets(const Container &a, const Container &b, const Comparator &comp)
A function testing whether two containers are equal with the given Comparator.
bool equal(const Node &node) const override
Equality check for two RAM nodes.
std::vector< const Node * > getChildNodes() const override
Obtain list of all embedded child nodes.
void apply(const NodeMapper &map) override
Apply the mapper to all child nodes.
Abstract class for a list of RAM statements.
std::vector< T * > toPtrVector(const std::vector< std::unique_ptr< T >> &v)
A utility function enabling the creation of a vector of pointers.
std::vector< Own< A > > VecOwn