souffle
2.0.2-371-g6315b36
|
Go to the documentation of this file.
41 class IntrinsicFunctor :
public Functor {
43 template <
typename... Operands>
45 : Functor(
std::forward<Operands>(operands)...),
function(
std::move(op)) {}
47 template <
typename... Operands>
52 :
Functor(std::move(
args), std::move(loc)),
function(std::move(op)) {}
61 function = std::move(functor);
92 void print(std::ostream& os)
const override {
94 os <<
"(" <<
join(
args,
function) <<
")";
106 bool equal(
const Node& node)
const override {
112 std::string
function;
VecOwn< Argument > args
Arguments.
std::optional< FunctorOp > getFinalOpType() const
void setFinalReturnType(TypeAttribute newType)
const std::string & getBaseFunctionOp() const
Get (base type) function.
auto clone(const std::vector< A * > &xs)
std::string function
Function.
std::optional< FunctorOp > finalTranslatorOpType
IntrinsicFunctor(std::string op, Operands &&... operands)
bool equal(const Node &node) const override
Abstract equality check for two AST nodes.
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...
Intrinsic Functor class for functors are in-built.
void print(std::ostream &os) const override
Output to a given output stream.
IntrinsicFunctor * clone() const override
Create clone.
auto copy(span< A, arity > s)
void setFinalOpType(FunctorOp newType)
A class describing a range in an input file.
const SrcLocation & getSrcLoc() const
Return source location of the Node.
bool isInfixFunctorOp(std::string_view symbol)
Determines whether a functor should be written using infix notation (e.g.
bool equal(const Node &node) const override
Abstract equality check for two AST nodes.
std::vector< Own< A > > VecOwn
void setFunction(std::string functor)
Set function.
std::optional< TypeAttribute > getFinalReturnType() const
std::optional< TypeAttribute > finalTranslatorReturnType
constexpr char FUNCTOR_INTRINSIC_PREFIX_NEGATE_NAME[]