#include "ast/analysis/Aggregate.h"
#include "ast/Aggregator.h"
#include "ast/Atom.h"
#include "ast/Clause.h"
#include "ast/Relation.h"
#include "ast/TranslationUnit.h"
#include "ast/Variable.h"
#include "ast/analysis/Ground.h"
#include "ast/utility/NodeMapper.h"
#include "ast/utility/Utils.h"
#include "ast/utility/Visitor.h"
#include "souffle/utility/StringUtil.h"
#include <algorithm>
#include <map>
#include <memory>
#include <ostream>
#include <set>
#include <string>
#include <utility>
#include <vector>
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... 
 | 
|  |