Class DFANodeSplit
java.lang.Object
com.oracle.truffle.regex.tregex.nodesplitter.DFANodeSplit
- All Implemented Interfaces:
StateIndex<com.oracle.truffle.regex.tregex.nodesplitter.GraphNode>
public final class DFANodeSplit
extends Object
implements StateIndex<com.oracle.truffle.regex.tregex.nodesplitter.GraphNode>
Implementation of a node splitting algorithm presented by Sebastian Unger and Frank Mueller in
"Handling Irreducible Loops: Optimized Node Splitting vs. DJ-Graphs" (2001) and "Transforming
Irreducible Regions of Control Flow into Reducible Regions by Optimized Node Splitting" (1998).
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionvoidaddGraphNode(com.oracle.truffle.regex.tregex.nodesplitter.GraphNode graphNode) static DFAAbstractStateNode[]createReducibleGraph(DFAAbstractStateNode[] nodes) static DFAAbstractStateNode[]createReducibleGraphAndUpdateDFAGen(DFAGenerator dfaGen, DFAAbstractStateNode[] nodes) intgetId(com.oracle.truffle.regex.tregex.nodesplitter.GraphNode state) intcom.oracle.truffle.regex.tregex.nodesplitter.GraphNodegetState(int id) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.oracle.truffle.regex.tregex.automaton.StateIndex
isEmpty
-
Field Details
-
EXTRA_INITIAL_CAPACITY
public static final int EXTRA_INITIAL_CAPACITY- See Also:
-
-
Method Details
-
addGraphNode
public void addGraphNode(com.oracle.truffle.regex.tregex.nodesplitter.GraphNode graphNode) -
createReducibleGraph
public static DFAAbstractStateNode[] createReducibleGraph(DFAAbstractStateNode[] nodes) throws DFANodeSplitBailoutException - Throws:
DFANodeSplitBailoutException
-
createReducibleGraphAndUpdateDFAGen
public static DFAAbstractStateNode[] createReducibleGraphAndUpdateDFAGen(DFAGenerator dfaGen, DFAAbstractStateNode[] nodes) throws DFANodeSplitBailoutException - Throws:
DFANodeSplitBailoutException
-
getNumberOfStates
public int getNumberOfStates()- Specified by:
getNumberOfStatesin interfaceStateIndex<com.oracle.truffle.regex.tregex.nodesplitter.GraphNode>
-
getId
public int getId(com.oracle.truffle.regex.tregex.nodesplitter.GraphNode state) - Specified by:
getIdin interfaceStateIndex<com.oracle.truffle.regex.tregex.nodesplitter.GraphNode>
-
getState
public com.oracle.truffle.regex.tregex.nodesplitter.GraphNode getState(int id) - Specified by:
getStatein interfaceStateIndex<com.oracle.truffle.regex.tregex.nodesplitter.GraphNode>
-