Class ControlFlowGraph
- java.lang.Object
-
- com.strobel.assembler.flowanalysis.ControlFlowGraph
-
public final class ControlFlowGraph extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<ControlFlowNode>
_nodes
private static java.util.regex.Pattern
SAFE_PATTERN
-
Constructor Summary
Constructors Constructor Description ControlFlowGraph(ControlFlowNode... nodes)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
computeDominance()
void
computeDominance(BooleanBox cancelled)
void
computeDominanceFrontier()
private static java.lang.String
escapeGraphViz(java.lang.String text)
private static java.lang.String
escapeGraphViz(java.lang.String text, boolean quote)
void
export(java.io.File path)
static ControlFlowNode
findCommonDominator(ControlFlowNode a, ControlFlowNode b)
ControlFlowNode
getEntryPoint()
ControlFlowNode
getExceptionalExit()
java.util.List<ControlFlowNode>
getNodes()
ControlFlowNode
getRegularExit()
private static java.lang.String
nodeName(ControlFlowNode node)
void
resetVisited()
-
-
-
Field Detail
-
_nodes
private final java.util.List<ControlFlowNode> _nodes
-
SAFE_PATTERN
private static final java.util.regex.Pattern SAFE_PATTERN
-
-
Constructor Detail
-
ControlFlowGraph
public ControlFlowGraph(ControlFlowNode... nodes)
-
-
Method Detail
-
getEntryPoint
public final ControlFlowNode getEntryPoint()
-
getRegularExit
public final ControlFlowNode getRegularExit()
-
getExceptionalExit
public final ControlFlowNode getExceptionalExit()
-
getNodes
public final java.util.List<ControlFlowNode> getNodes()
-
resetVisited
public final void resetVisited()
-
computeDominance
public final void computeDominance()
-
computeDominance
public final void computeDominance(BooleanBox cancelled)
-
computeDominanceFrontier
public final void computeDominanceFrontier()
-
findCommonDominator
public static ControlFlowNode findCommonDominator(ControlFlowNode a, ControlFlowNode b)
-
export
public final void export(java.io.File path)
-
nodeName
private static java.lang.String nodeName(ControlFlowNode node)
-
escapeGraphViz
private static java.lang.String escapeGraphViz(java.lang.String text)
-
escapeGraphViz
private static java.lang.String escapeGraphViz(java.lang.String text, boolean quote)
-
-