souffle
2.0.2-371-g6315b36
|
Operator that represents an extrinsic (user-defined) functor. More...
#include <UserDefinedOperator.h>
Public Member Functions | |
UserDefinedOperator * | clone () const override |
Create a clone (i.e. More... | |
const std::vector< TypeAttribute > & | getArgsTypes () const |
Get types of arguments. More... | |
const std::string & | getName () const |
Get operator name. More... | |
TypeAttribute | getReturnType () const |
Get return type. More... | |
bool | isStateful () const |
Is functor stateful? More... | |
UserDefinedOperator (std::string n, std::vector< TypeAttribute > argsTypes, TypeAttribute returnType, bool stateful, VecOwn< Expression > args) | |
Public Member Functions inherited from souffle::ram::AbstractOperator | |
AbstractOperator (VecOwn< Expression > args) | |
void | apply (const NodeMapper &map) override |
Apply the mapper to all child nodes. More... | |
std::vector< Expression * > | getArguments () const |
Get argument values. More... | |
std::vector< const Node * > | getChildNodes () const override |
Obtain list of all embedded child nodes. More... | |
Public Member Functions inherited from souffle::ram::Node | |
bool | operator!= (const Node &other) const |
Inequality check for two RAM nodes. More... | |
bool | operator== (const Node &other) const |
Equivalence check for two RAM nodes. More... | |
virtual void | rewrite (const Node *oldNode, Own< Node > newNode) |
Rewrite a child node. More... | |
virtual | ~Node ()=default |
Protected Member Functions | |
bool | equal (const Node &node) const override |
Equality check for two RAM nodes. More... | |
void | print (std::ostream &os) const override |
Print RAM node. More... | |
Protected Attributes | |
const std::vector< TypeAttribute > | argsTypes |
Argument types. More... | |
const std::string | name |
Name of user-defined operator. More... | |
const TypeAttribute | returnType |
Return type. More... | |
const bool | stateful |
Stateful. More... | |
Protected Attributes inherited from souffle::ram::AbstractOperator | |
VecOwn< Expression > | arguments |
Arguments of user defined operator. More... | |
Operator that represents an extrinsic (user-defined) functor.
Definition at line 43 of file UserDefinedOperator.h.
|
inline |
|
inlineoverridevirtual |
Create a clone (i.e.
deep copy) of this node
Implements souffle::ram::Expression.
Definition at line 72 of file UserDefinedOperator.h.
|
inlineoverrideprotectedvirtual |
Equality check for two RAM nodes.
Default action is that nothing needs to be checked.
Reimplemented from souffle::ram::AbstractOperator.
Definition at line 92 of file UserDefinedOperator.h.
|
inline |
|
inline |
|
inline |
|
inline |
Is functor stateful?
Definition at line 68 of file UserDefinedOperator.h.
References souffle::ram::Expression::clone().
|
inlineoverrideprotectedvirtual |
|
protected |
Argument types.
Definition at line 102 of file UserDefinedOperator.h.
|
protected |
Name of user-defined operator.
Definition at line 99 of file UserDefinedOperator.h.
Referenced by UserDefinedOperator().
|
protected |
Return type.
Definition at line 105 of file UserDefinedOperator.h.
|
protected |
Stateful.
Definition at line 108 of file UserDefinedOperator.h.