souffle
2.0.2-371-g6315b36
|
An atom class. More...
#include <Atom.h>
Public Member Functions | |
void | addArgument (Own< Argument > arg) |
Add argument to the atom. More... | |
void | apply (const NodeMapper &map) override |
Apply the mapper to all child nodes. More... | |
Atom (QualifiedName name={}, VecOwn< Argument > args={}, SrcLocation loc={}) | |
Atom * | clone () const override |
Create a clone (i.e. More... | |
std::vector< Argument * > | getArguments () const |
Return arguments. More... | |
size_t | getArity () const |
Return arity of the atom. More... | |
std::vector< const Node * > | getChildNodes () const override |
Obtain a list of all embedded AST child nodes. More... | |
const QualifiedName & | getQualifiedName () const |
Return qualified name. More... | |
void | setQualifiedName (QualifiedName n) |
Set qualified name. More... | |
Public Member Functions inherited from souffle::ast::Literal | |
Node (SrcLocation loc={}) | |
Public Member Functions inherited from souffle::ast::Node | |
std::string | extloc () const |
Return source location of the syntactic element. More... | |
const SrcLocation & | getSrcLoc () const |
Return source location of the Node. More... | |
Node (SrcLocation loc={}) | |
bool | operator!= (const Node &other) const |
Inequality check for two AST nodes. More... | |
bool | operator== (const Node &other) const |
Equivalence check for two AST nodes. More... | |
void | setSrcLoc (SrcLocation l) |
Set source location for the Node. More... | |
virtual | ~Node ()=default |
Protected Member Functions | |
bool | equal (const Node &node) const override |
Abstract equality check for two AST nodes. More... | |
void | print (std::ostream &os) const override |
Output to a given output stream. More... | |
Protected Attributes | |
VecOwn< Argument > | arguments |
Arguments of atom. More... | |
QualifiedName | name |
Name of atom. More... | |
An atom class.
An atom representing the use of a relation either in the head or in the body of a clause, e.g., parent(x,y), !parent(x,y), ...
|
inline |
|
inlineoverridevirtual |
Apply the mapper to all child nodes.
Reimplemented from souffle::ast::Node.
Definition at line 85 of file Atom.h.
References arguments.
|
inlineoverridevirtual |
|
inlineoverrideprotectedvirtual |
Abstract equality check for two AST nodes.
Reimplemented from souffle::ast::Node.
|
inline |
Return arguments.
Definition at line 77 of file Atom.h.
Referenced by souffle::ast::transform::MagicSetTransformer::MagicSetCoreTransformer::getMagicName(), souffle::ast::transform::RemoveRelationCopiesTransformer::removeRelationCopies(), and souffle::ast2ram::ClauseTranslator::translateClause().
|
inline |
|
inlineoverridevirtual |
Obtain a list of all embedded AST child nodes.
Reimplemented from souffle::ast::Node.
Definition at line 91 of file Atom.h.
|
inline |
Return qualified name.
Definition at line 57 of file Atom.h.
Referenced by souffle::ast::transform::MagicSetTransformer::MagicSetCoreTransformer::getMagicName(), souffle::ast::transform::RemoveRelationCopiesTransformer::removeRelationCopies(), and souffle::ast::removeRelationIOs().
|
inlineoverrideprotectedvirtual |
Output to a given output stream.
Implements souffle::ast::Node.
|
inline |
|
protected |