souffle
2.0.2-371-g6315b36
|
Go to the documentation of this file.
39 Program& program = translationUnit.getProgram();
40 const auto& relationDetail = *translationUnit.getAnalysis<RelationDetailCacheAnalysis>();
42 for (
const auto* r : program.getRelations()) {
44 for (
const auto& c : relationDetail.getClauses(r)) {
46 backingGraph.insert(relationDetail.getRelation(atom.getQualifiedName()), r);
49 backingGraph.insert(relationDetail.getRelation(atom.getQualifiedName()), r);
62 ss <<
"\t\"" <<
rel->getQualifiedName() <<
"\" [label = \"" <<
rel->getQualifiedName()
69 if (adjRel !=
nullptr) {
70 ss <<
"\t\"" <<
rel->getQualifiedName() <<
"\" -> \"" << adjRel->getQualifiedName()
Defines a relation with a name, attributes, qualifiers, and internal representation.
void printHTMLGraph(std::ostream &out, const std::string &dotSpec, const std::string &id)
virtual const std::string & getName() const
get name of the analysis
Object-oriented wrapper class for Souffle's templatized relations.
Graph< const Relation *, NameComparison > backingGraph
Adjacency list of precedence graph (determined by the dependencies of the relations)
void run(const TranslationUnit &translationUnit) override
run analysis for a Ast translation unit
void visitDepthFirst(const Node &root, Visitor< R, Ps... > &visitor, Args &... args)
A utility function visiting all nodes within the ast rooted by the given node recursively in a depth-...
void rel(size_t limit, bool showLimit=true)
void print(std::ostream &os) const override
Output precedence graph in graphviz format to a given stream.
class souffle::profile::Tui ss