souffle
2.0.2-371-g6315b36
|
RAM program relation declaration and functions. More...
#include <Program.h>
Public Member Functions | |
void | apply (const NodeMapper &map) override |
Apply the mapper to all child nodes. More... | |
Program * | clone () const override |
Create a clone (i.e. More... | |
std::vector< const Node * > | getChildNodes () const override |
Obtain list of all embedded child nodes. More... | |
Statement & | getMain () const |
Get main program. More... | |
std::vector< Relation * > | getRelations () const |
Get all relations of RAM program More... | |
const Statement & | getSubroutine (const std::string &name) const |
Get a specific subroutine. More... | |
const std::map< std::string, Statement * > | getSubroutines () const |
Get all subroutines of a RAM program. More... | |
Program (VecOwn< Relation > rels, Own< Statement > main, std::map< std::string, Own< Statement >> subs) | |
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 &out) const override |
Print RAM node. More... | |
Protected Attributes | |
Own< Statement > | main |
Main program. More... | |
VecOwn< Relation > | relations |
Relations of RAM program. More... | |
std::map< std::string, Own< Statement > > | subroutines |
Subroutines for provenance system. More... | |
Private Member Functions | |
Program ()=default | |
RAM program relation declaration and functions.
A typical example:
|
privatedefault |
|
inline |
Definition at line 63 of file Program.h.
References souffle::ast::analysis::sub().
|
inlineoverridevirtual |
|
inlineoverridevirtual |
Create a clone (i.e.
deep copy) of this node
Implements souffle::ram::Node.
Definition at line 110 of file Program.h.
References souffle::clone(), and souffle::ast::analysis::sub().
|
inlineoverrideprotectedvirtual |
Equality check for two RAM nodes.
Default action is that nothing needs to be checked.
Reimplemented from souffle::ram::Node.
Definition at line 151 of file Program.h.
|
inlineoverridevirtual |
Obtain list of all embedded child nodes.
Reimplemented from souffle::ram::Node.
Definition at line 74 of file Program.h.
References souffle::ast::analysis::sub().
|
inline |
|
inline |
Get all relations of RAM program
Definition at line 92 of file Program.h.
References souffle::ast::analysis::sub().
|
inline |
|
inline |
Get all subroutines of a RAM program.
|
inlineoverrideprotectedvirtual |
Print RAM node.
Implements souffle::ram::Node.
Definition at line 133 of file Program.h.
References souffle::ast::analysis::sub().