| 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