|
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().
1.8.17