| 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