souffle
2.0.2-371-g6315b36
|
Defines the aggregator class. More...
#include <Aggregator.h>
Public Member Functions | |
Aggregator (AggregateOp baseOperator, Own< Argument > expr=nullptr, VecOwn< Literal > body={}, SrcLocation loc={}) | |
void | apply (const NodeMapper &map) override |
Apply the mapper to all child nodes. More... | |
Aggregator * | clone () const override |
Create clone. More... | |
AggregateOp | getBaseOperator () const |
Return the (base type) operator of the aggregator. More... | |
std::vector< Literal * > | getBodyLiterals () const |
Return body literals. More... | |
std::vector< const Node * > | getChildNodes () const override |
Obtain a list of all embedded AST child nodes. More... | |
std::optional< AggregateOp > | getFinalType () const |
const Argument * | getTargetExpression () const |
Return target expression. More... | |
void | setBody (VecOwn< Literal > bodyLiterals) |
Set body. More... | |
void | setFinalType (AggregateOp newType) |
Public Member Functions inherited from souffle::ast::Argument | |
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... | |
Private Attributes | |
AggregateOp | baseOperator |
Aggregate (base type) operator. More... | |
VecOwn< Literal > | body |
Body literal of sub-query. More... | |
std::optional< AggregateOp > | finalTranslatorType |
Own< Argument > | targetExpression |
Aggregate expression. More... | |
Defines the aggregator class.
Example: sum y+x: {A(y),B(x)}
Aggregates over a sub-query using an aggregate operator and an expression.
Definition at line 53 of file Aggregator.h.
|
inline |
Definition at line 55 of file Aggregator.h.
References baseOperator.
|
inlineoverridevirtual |
Apply the mapper to all child nodes.
Reimplemented from souffle::ast::Node.
Definition at line 100 of file Aggregator.h.
|
inlineoverridevirtual |
|
inlineoverrideprotectedvirtual |
Abstract equality check for two AST nodes.
Reimplemented from souffle::ast::Node.
Definition at line 126 of file Aggregator.h.
|
inline |
Return the (base type) operator of the aggregator.
Definition at line 61 of file Aggregator.h.
|
inline |
Return body literals.
Definition at line 71 of file Aggregator.h.
Referenced by souffle::ast::transform::RemoveEmptyRelationsTransformer::removeEmptyRelations().
|
inlineoverridevirtual |
Obtain a list of all embedded AST child nodes.
Reimplemented from souffle::ast::Node.
Definition at line 80 of file Aggregator.h.
|
inline |
|
inline |
|
inlineoverrideprotectedvirtual |
Output to a given output stream.
Implements souffle::ast::Node.
Definition at line 118 of file Aggregator.h.
|
inline |
Definition at line 109 of file Aggregator.h.
|
private |
Aggregate (base type) operator.
Definition at line 134 of file Aggregator.h.
Referenced by Aggregator().
Body literal of sub-query.
Definition at line 140 of file Aggregator.h.
|
private |
Definition at line 143 of file Aggregator.h.
Aggregate expression.
Definition at line 137 of file Aggregator.h.
Referenced by getFinalType(), and setBody().