souffle  2.0.2-371-g6315b36
Namespaces | Functions
Aggregate.h File Reference
#include "ast/Aggregator.h"
#include "ast/Argument.h"
#include "ast/Clause.h"
#include "ast/Program.h"
#include "ast/TranslationUnit.h"
#include "ast/Variable.h"
#include <set>
#include <string>
Include dependency graph for Aggregate.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 souffle
 
 souffle::ast
 
 souffle::ast::analysis
 

Functions

std::string souffle::ast::analysis::findUniqueRelationName (const Program &program, std::string base)
 Find a new relation name. More...
 
std::string souffle::ast::analysis::findUniqueVariableName (const Clause &clause, std::string base)
 Find a variable name using base to form a string like base1 Use this when you need to limit the scope of a variable to the inside of an aggregate. More...
 
std::set< std::string > souffle::ast::analysis::getInjectedVariables (const TranslationUnit &tu, const Clause &clause, const Aggregator &aggregate)
 Given an aggregate and a clause, we find all the variables that have been injected into the aggregate. More...
 
std::set< std::string > souffle::ast::analysis::getLocalVariables (const TranslationUnit &tu, const Clause &clause, const Aggregator &aggregate)
 Computes the set of local variables in an aggregate expression. More...
 
std::set< std::string > souffle::ast::analysis::getVariablesOutsideAggregate (const Clause &clause, const Aggregator &aggregate)
 Computes the set of variables occurring outside the aggregate. More...
 
std::set< std::string > souffle::ast::analysis::getWitnessVariables (const TranslationUnit &tu, const Clause &clause, const Aggregator &aggregate)
 Computes the set of witness variables that are used in the aggregate A variable is a witness if it occurs in the aggregate body (but not in an inner aggregate) and also occurs ungrounded in the outer scope. More...