public class NfaToProduction
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
protected static class |
NfaToProduction.AbstractElementAlias<T> |
protected static class |
NfaToProduction.AliasGrammarProvider<TOKEN> |
protected static class |
NfaToProduction.AlternativeAlias<T> |
protected static class |
NfaToProduction.ElementAlias<T> |
protected static class |
NfaToProduction.GroupAlias<T> |
protected static class |
NfaToProduction.StateAlias<TOKEN> |
protected static class |
NfaToProduction.StateAliasNfa<TOKEN> |
protected static class |
NfaToProduction.StatesToDot<T> |
Constructor and Description |
---|
NfaToProduction() |
Modifier and Type | Method and Description |
---|---|
protected <T> boolean |
areAlternativeMultiples(NfaToProduction.StateAlias<T> first,
NfaToProduction.StateAlias<T> second) |
protected <T> boolean |
createAlternative(NfaToProduction.StateAliasNfa<T> states) |
protected <T> void |
createGroup(NfaToProduction.StateAlias<T> first,
NfaToProduction.StateAlias<T> second) |
protected <T> boolean |
createGroups(NfaToProduction.StateAlias<T> state,
java.util.Set<NfaToProduction.StateAlias<T>> visited) |
protected <T> boolean |
createMany(NfaToProduction.StateAlias<T> state,
java.util.Set<NfaToProduction.StateAlias<T>> visited) |
protected <STATE,TOKEN> |
createNfa(Nfa<STATE> nfa,
com.google.common.base.Function<STATE,TOKEN> state2token) |
protected <T> boolean |
createOptional(NfaToProduction.StateAliasNfa<T> states) |
protected <T> Pair<java.lang.Integer,NfaToProduction.StateAlias<T>> |
findSplitState(NfaToProduction.StateAlias<T> state,
java.lang.Integer depth,
java.util.Set<NfaToProduction.StateAlias<T>> visited) |
protected <T> boolean |
isOptionalIgnoring(NfaToProduction.StateAlias<T> cand,
NfaToProduction.StateAlias<T> ignored) |
protected <T> boolean |
isPreferredSplitState(Pair<java.lang.Integer,NfaToProduction.StateAlias<T>> state1,
Pair<java.lang.Integer,NfaToProduction.StateAlias<T>> state2) |
protected <T> void |
mergeAlternativeMultiples(NfaToProduction.StateAlias<T> first,
NfaToProduction.StateAlias<T> second) |
protected <T> boolean |
mergeAlternativeMultiples(NfaToProduction.StateAlias<T> state,
java.util.Set<NfaToProduction.StateAlias<T>> visited) |
protected <T> void |
mergeOptionalIntoMany(NfaToProduction.StateAlias<T> first,
NfaToProduction.StateAlias<T> second) |
protected <T> boolean |
mergeOptionalIntoMany(NfaToProduction.StateAlias<T> state,
java.util.Set<NfaToProduction.StateAlias<T>> visited) |
<ELEMENT,STATE,TOKEN> |
nfaToGrammar(Nfa<STATE> nfa,
com.google.common.base.Function<STATE,TOKEN> state2token,
ProductionFactory<ELEMENT,TOKEN> grammarFactory) |
<ELEMENT,STATE> |
nfaToGrammar(Nfa<STATE> nfa,
ProductionFactory<ELEMENT,STATE> grammarFactory) |
protected <T> void |
splitState(NfaToProduction.StateAlias<T> state) |
protected <STATE,TOKEN> |
toAlias(Nfa<STATE> nfa,
com.google.common.base.Function<STATE,TOKEN> state2token,
STATE state,
java.util.Map<STATE,NfaToProduction.StateAlias<TOKEN>> cache) |
protected <T> boolean createAlternative(NfaToProduction.StateAliasNfa<T> states)
protected <T> void createGroup(NfaToProduction.StateAlias<T> first, NfaToProduction.StateAlias<T> second)
protected <T> boolean createGroups(NfaToProduction.StateAlias<T> state, java.util.Set<NfaToProduction.StateAlias<T>> visited)
protected <T> boolean createMany(NfaToProduction.StateAlias<T> state, java.util.Set<NfaToProduction.StateAlias<T>> visited)
protected <T> boolean mergeOptionalIntoMany(NfaToProduction.StateAlias<T> state, java.util.Set<NfaToProduction.StateAlias<T>> visited)
protected <T> boolean isOptionalIgnoring(NfaToProduction.StateAlias<T> cand, NfaToProduction.StateAlias<T> ignored)
protected <T> void mergeOptionalIntoMany(NfaToProduction.StateAlias<T> first, NfaToProduction.StateAlias<T> second)
protected <T> boolean mergeAlternativeMultiples(NfaToProduction.StateAlias<T> state, java.util.Set<NfaToProduction.StateAlias<T>> visited)
protected <T> boolean areAlternativeMultiples(NfaToProduction.StateAlias<T> first, NfaToProduction.StateAlias<T> second)
protected <T> void mergeAlternativeMultiples(NfaToProduction.StateAlias<T> first, NfaToProduction.StateAlias<T> second)
protected <STATE,TOKEN> NfaToProduction.StateAliasNfa<TOKEN> createNfa(Nfa<STATE> nfa, com.google.common.base.Function<STATE,TOKEN> state2token)
protected <T> boolean createOptional(NfaToProduction.StateAliasNfa<T> states)
protected <T> Pair<java.lang.Integer,NfaToProduction.StateAlias<T>> findSplitState(NfaToProduction.StateAlias<T> state, java.lang.Integer depth, java.util.Set<NfaToProduction.StateAlias<T>> visited)
protected <T> boolean isPreferredSplitState(Pair<java.lang.Integer,NfaToProduction.StateAlias<T>> state1, Pair<java.lang.Integer,NfaToProduction.StateAlias<T>> state2)
public <ELEMENT,STATE,TOKEN> ELEMENT nfaToGrammar(Nfa<STATE> nfa, com.google.common.base.Function<STATE,TOKEN> state2token, ProductionFactory<ELEMENT,TOKEN> grammarFactory)
public <ELEMENT,STATE> ELEMENT nfaToGrammar(Nfa<STATE> nfa, ProductionFactory<ELEMENT,STATE> grammarFactory)
protected <T> void splitState(NfaToProduction.StateAlias<T> state)
protected <STATE,TOKEN> NfaToProduction.StateAlias<TOKEN> toAlias(Nfa<STATE> nfa, com.google.common.base.Function<STATE,TOKEN> state2token, STATE state, java.util.Map<STATE,NfaToProduction.StateAlias<TOKEN>> cache)