souffle
2.0.2-371-g6315b36
|
Go to the documentation of this file.
36 class IntrinsicOperator :
public AbstractOperator {
38 template <
typename... Args>
52 argsCopy.emplace_back(arg->clone());
58 void print(std::ostream& os)
const override {
66 bool equal(
const Node& node)
const override {
bool equal(const Node &node) const override
Equality check for two RAM nodes.
void print(std::ostream &os) const override
Print RAM node.
VecOwn< Expression > arguments
Arguments of user defined operator.
FunctorOp getOperator() const
Get operator symbol.
AbstractOperator(VecOwn< Expression > args)
const FunctorOp operation
Operation symbol.
bool equal(const Node &node) const override
Equality check for two RAM nodes.
IntrinsicOperator * clone() const override
Create a clone (i.e.
Node is a superclass for all RAM IR classes.
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...
Operator that represents an intrinsic (built-in) functor.
IntrinsicOperator(FunctorOp op, Args... args)
bool isInfixFunctorOp(std::string_view symbol)
Determines whether a functor should be written using infix notation (e.g.
std::vector< Own< A > > VecOwn
Abstract class for an operator/functor.