souffle
2.0.2-371-g6315b36
|
Replaces literals containing single-valued aggregates with a synthesised relation. More...
#include <MaterializeSingletonAggregation.h>
Public Member Functions | |
MaterializeSingletonAggregationTransformer * | clone () const override |
std::string | getName () const override |
Public Member Functions inherited from souffle::ast::transform::Transformer | |
bool | apply (TranslationUnit &translationUnit) |
virtual | ~Transformer ()=default |
Private Member Functions | |
void | groundInjectedParameters (const TranslationUnit &translationUnit, Clause &aggClause, const Clause &originalClause) |
Modify the aggClause by adding in grounding literals for every variable that appears in the clause ungrounded. More... | |
bool | transform (TranslationUnit &translationUnit) override |
Static Private Member Functions | |
static bool | isSingleValued (const TranslationUnit &tu, const Aggregator &agg, const Clause &clause) |
Determines whether an aggregate is single-valued, ie the aggregate does not depend on the outer scope. More... | |
Replaces literals containing single-valued aggregates with a synthesised relation.
Definition at line 40 of file MaterializeSingletonAggregation.h.
|
inlineoverridevirtual |
Implements souffle::ast::transform::Transformer.
Definition at line 53 of file MaterializeSingletonAggregation.h.
|
inlineoverridevirtual |
Implements souffle::ast::transform::Transformer.
Definition at line 49 of file MaterializeSingletonAggregation.h.
|
private |
Modify the aggClause by adding in grounding literals for every variable that appears in the clause ungrounded.
The source of literals to copy from is the originalClause.
|
staticprivate |
Determines whether an aggregate is single-valued, ie the aggregate does not depend on the outer scope.
Definition at line 141 of file MaterializeSingletonAggregation.cpp.
|
overrideprivatevirtual |
Implements souffle::ast::transform::Transformer.
Definition at line 49 of file MaterializeSingletonAggregation.cpp.
References souffle::ast::visitDepthFirst().