#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>
Go to the source code of this file.
|
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...
|
|