souffle
2.0.2-371-g6315b36
|
Go to the documentation of this file.
42 class SubroutineReturn :
public Operation {
46 assert(expr !=
nullptr &&
"Expression is a null-pointer");
51 std::vector<Expression*>
getValues()
const {
56 std::vector<const Node*> res;
58 res.push_back(expr.get());
66 newValues.emplace_back(expr->clone());
71 void apply(
const NodeMapper&
map)
override {
73 expr =
map(std::move(expr));
78 void print(std::ostream& os,
int tabpos)
const override {
79 os <<
times(
" ", tabpos);
87 os <<
")" << std::endl;
90 bool equal(
const Node& node)
const override {
void apply(const NodeMapper &map) override
Apply the mapper to all child nodes.
std::vector< const Node * > getChildNodes() const override
Obtain list of all embedded child nodes.
void print(std::ostream &os, int tabpos) const override
Pretty print with indentation.
SubroutineReturn * clone() const override
Create a clone (i.e.
VecOwn< Expression > expressions
Return expressions.
SubroutineReturn(VecOwn< Expression > vals)
std::vector< Expression * > getValues() const
Getter for expressions.
auto map(const std::vector< A > &xs, F &&f)
Applies a function to each element of a vector and returns the results.
detail::multiplying_printer< T > times(const T &value, unsigned num)
A utility printing a given value multiple times.
bool equal_targets(const Container &a, const Container &b, const Comparator &comp)
A function testing whether two containers are equal with the given Comparator.
bool equal(const Node &node) const override
Equality check for two RAM nodes.
std::vector< T * > toPtrVector(const std::vector< std::unique_ptr< T >> &v)
A utility function enabling the creation of a vector of pointers.
std::vector< Own< A > > VecOwn