public class AccrueOptionsHelper
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
boolean |
emptysetsigs |
polyglot.main.OptFlag.Switch |
emptySetSigsOptFlag |
polyglot.main.OptFlag.Switch |
flattenExpressionOptFlag |
boolean |
flattenExpressions |
polyglot.main.OptFlag.Switch |
noWarnMissingEdgesOptFlag |
boolean |
noWemptysetsigs |
java.lang.String |
pointsToEngineClass |
polyglot.main.OptFlag<java.lang.String> |
pointsToEngineClassOptFlag |
java.lang.Integer |
pointsToTimeout |
java.util.Collection<java.io.File> |
signatureSourcePath |
polyglot.main.OptFlag.PathFlag<java.io.File> |
sigSrcPathOptFlag |
polyglot.main.OptFlag<java.lang.String> |
startOptFlag |
java.lang.String |
startProcClass |
polyglot.main.OptFlag.Switch |
warnEmptySetSigsOptFlag |
| Constructor and Description |
|---|
AccrueOptionsHelper() |
| Modifier and Type | Method and Description |
|---|---|
HeapAbstractionFactory |
createHeapAbstractionFactory() |
static HeapAbstractionFactory |
createHeapAbstractionFactory(java.lang.String hafString)
create a HeapAbstractionFactory from a string.
|
PointsToEngine |
createPointsToEngine()
Create the PointsToEngine for performing pointer analysis.
|
boolean |
handleArg(polyglot.main.OptFlag.Arg<?> arg) |
void |
populateFlags(java.util.Set<polyglot.main.OptFlag<?>> flags) |
public java.lang.String startProcClass
public java.lang.String pointsToEngineClass
public java.lang.Integer pointsToTimeout
public boolean emptysetsigs
public boolean noWemptysetsigs
public boolean flattenExpressions
public java.util.Collection<java.io.File> signatureSourcePath
public polyglot.main.OptFlag<java.lang.String> startOptFlag
public polyglot.main.OptFlag<java.lang.String> pointsToEngineClassOptFlag
public polyglot.main.OptFlag.Switch noWarnMissingEdgesOptFlag
public polyglot.main.OptFlag.Switch emptySetSigsOptFlag
public polyglot.main.OptFlag.Switch flattenExpressionOptFlag
public polyglot.main.OptFlag.Switch warnEmptySetSigsOptFlag
public polyglot.main.OptFlag.PathFlag<java.io.File> sigSrcPathOptFlag
public void populateFlags(java.util.Set<polyglot.main.OptFlag<?>> flags)
public boolean handleArg(polyglot.main.OptFlag.Arg<?> arg)
throws polyglot.main.UsageError
polyglot.main.UsageErrorpublic PointsToEngine createPointsToEngine()
public HeapAbstractionFactory createHeapAbstractionFactory()
public static HeapAbstractionFactory createHeapAbstractionFactory(java.lang.String hafString)
facts ::= fact | "[" fact "|" fact "|" ... "]"
fact ::= classname ["(" arg "," arg "," ... ")"]
arg ::= int | string
where classname is a fully qualified classname of a heap abstraction, and the
optional "(arg1, arg2, ...)" are zero or more integer or string literal
arguments, which will be passed to the constructor for the heap abstraction.
For convenience, classname may be abbreviated for several of the pointer analyses
that come with Accrue, described as follows.
Abbreviation : Fully qualified class name/factory
full : accrue.analysis.pointer.analyses.FullObjSensitiveAnalysis
type : accrue.analysis.pointer.analyses.TypeSensitive_nTmH_Analysis
2t1h : accrue.analysis.pointer.analyses.TypeSensitive_nTmH_Analysis(2,1)
scs : accrue.analysis.pointer.analyses.StaticCallSiteContextSensitiveAnalaysis
cs : accrue.analysis.pointer.analyses.CallSiteContextSensitiveAnalaysis
distinguish : accrue.analysis.pointer.analyses.DistinguishClass
Some example strings that are acceptable include:
"full"
"full(5)"
"type(2,1)"
"2t1h"
"accrue.analysis.pointer.analyses.FullObjSensitiveAnalysis(2)"
The following strings will create Cross product analyses
"[2t1h | scs(2)]"
"[2t1h | scs(2) | distinguish(mypackage.Foo)]"hafString -