souffle
2.0.2-371-g6315b36
|
Go to the documentation of this file.
43 class TranslationUnit {
45 TranslationUnit(Own<Program> prog, SymbolTable sym, ErrorReport&
e, DebugReport&
d)
47 assert(
program !=
nullptr &&
"program is a null-pointer");
53 template <
class Analysis>
56 std::string name = Analysis::name;
60 auto analysis = mk<Analysis>(Analysis::name);
64 std::stringstream ramAnalysisStr;
65 ramAnalysisStr << *analysis;
66 if (!ramAnalysisStr.str().empty()) {
68 analysis->getName(),
"RAM Analysis " + analysis->getName(), ramAnalysisStr.str());
74 analyses[name] = std::move(analysis);
77 return dynamic_cast<Analysis*
>(
analyses[name].get());
82 std::set<const analysis::Analysis*> result;
84 result.insert(a.second.get());
116 mutable std::map<std::string, Own<analysis::Analysis>>
analyses;
ErrorReport & errorReport
RAM program relation declaration and functions.
Analysis * getAnalysis() const
Get an analysis.
std::set< const analysis::Analysis * > getAliveAnalyses() const
Get all alive analyses.
l j a showGridBackground &&c b raw series this eventEmitter e
TranslationUnit(Own< Program > prog, SymbolTable sym, ErrorReport &e, DebugReport &d)
void addSection(DebugReportSection section)
souffle::SymbolTable & getSymbolTable()
Obtain symbol table
Program & getProgram() const
Get the RAM Program of the translation unit
souffle::SymbolTable symbolTable
Class representing a HTML report, consisting of a list of sections.
void invalidateAnalyses()
Invalidate all alive analyses of the translation unit.
DebugReport & debugReport
std::map< std::string, Own< analysis::Analysis > > analyses
virtual ~TranslationUnit()=default
static MainConfig & config()
ErrorReport & getErrorReport()
Obtain error report.
DebugReport & getDebugReport()
Obtain debug report.