souffle
2.0.2-371-g6315b36
|
Go to the documentation of this file.
47 class Conjunction :
public Condition {
50 assert(
lhs !=
nullptr &&
"left-hand side of conjunction is a nullptr");
51 assert(
rhs !=
nullptr &&
"right-hand side of conjunction is a nullptr");
65 return {
lhs.get(),
rhs.get()};
78 void print(std::ostream& os)
const override {
79 os <<
"(" << *
lhs <<
" AND " << *
rhs <<
")";
82 bool equal(
const Node& node)
const override {
83 const auto& other =
static_cast<const Conjunction&
>(node);
std::vector< const Node * > getChildNodes() const override
Obtain list of all embedded child nodes.
bool equal(const Node &node) const override
Equality check for two RAM nodes.
void apply(const NodeMapper &map) override
Apply the mapper to all child nodes.
auto map(const std::vector< A > &xs, F &&f)
Applies a function to each element of a vector and returns the results.
Abstract class for conditions and boolean values in RAM.
const Condition & getLHS() const
Get left-hand side of conjunction.
Conjunction * clone() const override
Create a clone (i.e.
A conjunction of conditions.
Node is a superclass for all RAM IR classes.
auto clone(const std::vector< A * > &xs)
An abstract class for manipulating RAM Nodes by substitution.
Conjunction(Own< Condition > l, Own< Condition > r)
void print(std::ostream &os) const override
Print RAM node.
bool equal_ptr(const T *a, const T *b)
Compares two values referenced by a pointer where the case where both pointers are null is also consi...
Own< Condition > lhs
Left-hand side of conjunction.
const Condition & getRHS() const
Get right-hand side of conjunction.
Own< Condition > rhs
Right-hand side of conjunction.