A
- Analysis result. The type that is the result of the analysis
of an AnalysisUnit.public abstract class AnalysisFactory<A extends Ordered<A>>
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
protected AccrueExtensionInfo |
extInfo |
Constructor and Description |
---|
AnalysisFactory(AccrueExtensionInfo extInfo) |
Modifier and Type | Method and Description |
---|---|
abstract java.lang.String |
analysisName()
Get the name of the analysis
|
abstract java.lang.String |
analysisReportName()
Get the name of the analysis report
|
abstract AnalysisUtil<A> |
analysisUtil(WorkQueue<A> wq,
AnalysisUnit aunit)
Get the object sensitive analysis utility class.
|
AnalysisContext |
createAnalysisContext(AnalysisUtil<A> caller,
polyglot.types.CodeInstance callee,
HContext calleeObjectName,
polyglot.ast.Node callSite)
Create an analysis context for a procedure
|
ExitMap<A> |
emptyExitMap()
Get the
ExitMap |
java.util.Set<java.lang.String> |
reportTopics()
Return the analysis name and
AnalysisTopics as a set |
abstract A |
startItem(AnalysisUtil<A> autil,
polyglot.ast.ProcedureDecl startProc)
Get the start item for the analysis
|
AnalysisContext |
startProcAnalysisContext()
Get the initial analysis context for the start procedure (i.e.
|
protected final AccrueExtensionInfo extInfo
public AnalysisFactory(AccrueExtensionInfo extInfo)
public abstract java.lang.String analysisName()
public abstract java.lang.String analysisReportName()
public abstract AnalysisUtil<A> analysisUtil(WorkQueue<A> wq, AnalysisUnit aunit)
wq
- Analysis work queue of CodeInstance
aunit
- Analysis unit that we are constructing the AnalysisUtil for.public abstract A startItem(AnalysisUtil<A> autil, polyglot.ast.ProcedureDecl startProc) throws polyglot.types.SemanticException
autil
- Object sensitive analysis utilitystartProc
- Entry procedure for the analysispolyglot.types.SemanticException
- thrown if the start item cannot be computed due to a semantic
errorpublic java.util.Set<java.lang.String> reportTopics()
AnalysisTopics
as a setpublic AnalysisContext startProcAnalysisContext()
public AnalysisContext createAnalysisContext(AnalysisUtil<A> caller, polyglot.types.CodeInstance callee, HContext calleeObjectName, polyglot.ast.Node callSite)
caller
- Analysis utility class for the callercallee
- Type information for the calleecalleeObjectName
- Heap context for the calleecallSite
- AST node for the call site