| souffle
    2.0.2-371-g6315b36
    | 
 
 
 
Go to the documentation of this file.
   47 class UnpackRecord : 
public TupleOperation {
 
   49     UnpackRecord(Own<Operation> nested, 
int ident, Own<Expression> expr, 
size_t arity)
 
   51         assert(
expression != 
nullptr && 
"Expression is a null-pointer");
 
   56         assert(
expression != 
nullptr && 
"Expression of unpack-record is a null-pointer");
 
   82     void print(std::ostream& os, 
int tabpos)
 const override {
 
   83         os << 
times(
" ", tabpos);
 
   88     bool equal(
const Node& node)
 const override {
 
   89         const auto& other = 
static_cast<const UnpackRecord&
>(node);
 
  
std::size_t getArity() const
Get arity of record.
std::vector< const Node * > getChildNodes() const override
Obtain list of all embedded child nodes.
TupleOperation(int ident, Own< Operation > nested, std::string profileText="")
void apply(const NodeMapper &map) override
Apply the mapper to all child nodes.
Operation & getOperation() const
Get nested operation.
auto map(const std::vector< A > &xs, F &&f)
Applies a function to each element of a vector and returns the results.
bool equal(const Node &node) const override
Equality check for two RAM nodes.
UnpackRecord(Own< Operation > nested, int ident, Own< Expression > expr, size_t arity)
Node is a superclass for all RAM IR classes.
auto clone(const std::vector< A * > &xs)
An abstract class for manipulating RAM Nodes by substitution.
detail::multiplying_printer< T > times(const T &value, unsigned num)
A utility printing a given value multiple times.
const size_t arity
Arity of the unpacked tuple.
UnpackRecord * clone() const override
Create a clone (i.e.
void print(std::ostream &os, int tabpos) const override
Pretty print with indentation.
std::vector< const Node * > getChildNodes() const override
Obtain list of all embedded child nodes.
int getTupleId() const
Get identifier.
bool equal_ptr(const T *a, const T *b)
Compares two values referenced by a pointer where the case where both pointers are null is also consi...
bool equal(const Node &node) const override
Equality check for two RAM nodes.
void print(std::ostream &os, int tabpos) const override
Pretty print with indentation.
Abstract class for describing scalar values in RAM.
Own< Expression > expression
Expression for record reference.
const Expression & getExpression() const
Get record expression.
void apply(const NodeMapper &map) override
Apply the mapper to all child nodes.