souffle
2.0.2-371-g6315b36
|
Go to the documentation of this file.
40 class AbstractExistenceCheck :
public Condition {
44 for (
const auto& v :
values) {
45 assert(v !=
nullptr &&
"NULL value");
59 const std::vector<Expression*>
getValues()
const {
64 std::vector<const Node*> res;
65 for (
const auto& cur :
values) {
66 res.push_back(cur.get());
73 val =
map(std::move(val));
78 void print(std::ostream& os)
const override {
82 bool equal(
const Node& node)
const override {
const std::vector< Expression * > getValues() const
Get arguments of the tuple/pattern A null pointer element in the vector denotes an unspecified patter...
void apply(const NodeMapper &map) override
Apply the mapper to all child nodes.
void print(std::ostream &os) const override
Print RAM node.
auto map(const std::vector< A > &xs, F &&f)
Applies a function to each element of a vector and returns the results.
std::vector< const Node * > getChildNodes() const override
Obtain list of all embedded child nodes.
Node is a superclass for all RAM IR classes.
An abstract class for manipulating RAM Nodes by substitution.
detail::joined_sequence< Iter, Printer > join(const Iter &a, const Iter &b, const std::string &sep, const Printer &p)
Creates an object to be forwarded to some output stream for printing sequences of elements interspers...
bool equal_targets(const Container &a, const Container &b, const Comparator &comp)
A function testing whether two containers are equal with the given Comparator.
Abstract existence check for a tuple in a relation.
const std::string & getRelation() const
Get relation.
const std::string relation
Relation.
VecOwn< Expression > values
Search tuple.
AbstractExistenceCheck(std::string rel, VecOwn< Expression > vals)
void rel(size_t limit, bool showLimit=true)
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
bool equal(const Node &node) const override
Equality check for two RAM nodes.