TS - represents a set of NFA transitions.TB - represents a DFA transition fragment. This type is used for both intermediate and
final results.public abstract class StateTransitionCanonicalizer<TS extends TransitionSet,TB extends TransitionBuilder<TS>> extends Object
TransitionSet,
TransitionBuilder| Constructor and Description |
|---|
StateTransitionCanonicalizer() |
| Modifier and Type | Method and Description |
|---|---|
protected abstract TB[] |
createResultArray(int size)
Returns an array suitable for holding the result of
StateTransitionCanonicalizer.run(List, CompilationBuffer). |
protected abstract boolean |
isSameTargetMergeAllowed(TB a,
TB b)
Returns
true if two DFA transitions leading to the same target state are allowed to
be merged into one. |
TB[] |
run(List<TB> transitions,
CompilationBuffer compilationBuffer)
Runs the NFA to DFA transition conversion algorithm.
|
public TB[] run(List<TB> transitions, CompilationBuffer compilationBuffer)
TransitionBuilders whose CharSets have no more
intersections.TransitionBuilders generated by the first phase if their target
state is equal and
StateTransitionCanonicalizer.isSameTargetMergeAllowed(TransitionBuilder, TransitionBuilder) returns true.
transitions - The list of NFA transitions to merge. Initially, all
TransitionBuilders contained in this list should represent a single NFA
transition.protected abstract boolean isSameTargetMergeAllowed(TB a, TB b)
true if two DFA transitions leading to the same target state are allowed to
be merged into one.protected abstract TB[] createResultArray(int size)
StateTransitionCanonicalizer.run(List, CompilationBuffer).