Class NfaToProduction
- java.lang.Object
-
- org.eclipse.xtext.util.formallang.NfaToProduction
-
public class NfaToProduction extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classNfaToProduction.AbstractElementAlias<T>protected static classNfaToProduction.AliasGrammarProvider<TOKEN>protected static classNfaToProduction.AlternativeAlias<T>protected static classNfaToProduction.ElementAlias<T>protected classNfaToProduction.ElementAliasComparator<T>protected static classNfaToProduction.GroupAlias<T>protected static classNfaToProduction.StateAlias<TOKEN>protected static classNfaToProduction.StateAliasNfa<TOKEN>protected static classNfaToProduction.StatesToDot<T>
-
Constructor Summary
Constructors Constructor Description NfaToProduction()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected <T> booleanareAlternativeMultiples(NfaToProduction.StateAlias<T> first, NfaToProduction.StateAlias<T> second)protected <T> booleancollectMergeableOptions(boolean root, NfaToProduction.AbstractElementAlias<T> alt, java.util.List<NfaToProduction.AbstractElementAlias<T>> result)protected <T> booleancreateAlternative(NfaToProduction.StateAliasNfa<T> states)protected <T> voidcreateGroup(NfaToProduction.StateAlias<T> first, NfaToProduction.StateAlias<T> second)protected <T> booleancreateGroups(NfaToProduction.StateAlias<T> state, java.util.Set<NfaToProduction.StateAlias<T>> visited)protected <T> booleancreateMany(NfaToProduction.StateAlias<T> state, java.util.Set<NfaToProduction.StateAlias<T>> visited)protected <STATE,TOKEN>
NfaToProduction.StateAliasNfa<TOKEN>createNfa(Nfa<STATE> nfa, com.google.common.base.Function<STATE,TOKEN> state2token)protected <T> booleancreateOptional(NfaToProduction.StateAliasNfa<T> states)NfaToProductionexcludeStartAndStop()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> booleanisOptionalIgnoring(NfaToProduction.StateAlias<T> cand, NfaToProduction.StateAlias<T> ignored)protected <T> booleanisPreferredSplitState(Pair<java.lang.Integer,NfaToProduction.StateAlias<T>> state1, Pair<java.lang.Integer,NfaToProduction.StateAlias<T>> state2)protected <T> booleanmergeAlternativeMultiples(NfaToProduction.StateAlias<T> state, java.util.Set<NfaToProduction.StateAlias<T>> visited)protected <T> voidmergeAlternativeMultiples(NfaToProduction.StateAlias<T> first, NfaToProduction.StateAlias<T> second)protected <T> booleanmergeOptionalIntoMany(NfaToProduction.StateAlias<T> state, java.util.Set<NfaToProduction.StateAlias<T>> visited)protected <T> voidmergeOptionalIntoMany(NfaToProduction.StateAlias<T> first, NfaToProduction.StateAlias<T> second)<ELEMENT,STATE,TOKEN>
ELEMENTnfaToGrammar(Nfa<STATE> nfa, com.google.common.base.Function<STATE,TOKEN> state2token, java.util.Comparator<? super TOKEN> order, ProductionFactory<ELEMENT,TOKEN> grammarFactory)<ELEMENT,STATE,TOKEN>
ELEMENTnfaToGrammar(Nfa<STATE> nfa, com.google.common.base.Function<STATE,TOKEN> state2token, ProductionFactory<ELEMENT,TOKEN> grammarFactory)<ELEMENT,STATE>
ELEMENTnfaToGrammar(Nfa<STATE> nfa, ProductionFactory<ELEMENT,STATE> grammarFactory)protected <T> voidnormalize(NfaToProduction.AbstractElementAlias<T> element)protected <TOKEN,STATE>
NfaToProduction.AbstractElementAlias<TOKEN>removeStartAndStop(Nfa<STATE> nfa, com.google.common.base.Function<STATE,TOKEN> state2token, NfaToProduction.AbstractElementAlias<TOKEN> root)protected <T> voidsplitState(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)
-
-
-
Method Detail
-
createAlternative
protected <T> boolean createAlternative(NfaToProduction.StateAliasNfa<T> states)
-
createGroup
protected <T> void createGroup(NfaToProduction.StateAlias<T> first, NfaToProduction.StateAlias<T> second)
-
createGroups
protected <T> boolean createGroups(NfaToProduction.StateAlias<T> state, java.util.Set<NfaToProduction.StateAlias<T>> visited)
-
createMany
protected <T> boolean createMany(NfaToProduction.StateAlias<T> state, java.util.Set<NfaToProduction.StateAlias<T>> visited)
-
mergeOptionalIntoMany
protected <T> boolean mergeOptionalIntoMany(NfaToProduction.StateAlias<T> state, java.util.Set<NfaToProduction.StateAlias<T>> visited)
-
isOptionalIgnoring
protected <T> boolean isOptionalIgnoring(NfaToProduction.StateAlias<T> cand, NfaToProduction.StateAlias<T> ignored)
-
mergeOptionalIntoMany
protected <T> void mergeOptionalIntoMany(NfaToProduction.StateAlias<T> first, NfaToProduction.StateAlias<T> second)
-
mergeAlternativeMultiples
protected <T> boolean mergeAlternativeMultiples(NfaToProduction.StateAlias<T> state, java.util.Set<NfaToProduction.StateAlias<T>> visited)
-
areAlternativeMultiples
protected <T> boolean areAlternativeMultiples(NfaToProduction.StateAlias<T> first, NfaToProduction.StateAlias<T> second)
-
mergeAlternativeMultiples
protected <T> void mergeAlternativeMultiples(NfaToProduction.StateAlias<T> first, NfaToProduction.StateAlias<T> second)
-
createNfa
protected <STATE,TOKEN> NfaToProduction.StateAliasNfa<TOKEN> createNfa(Nfa<STATE> nfa, com.google.common.base.Function<STATE,TOKEN> state2token)
-
createOptional
protected <T> boolean createOptional(NfaToProduction.StateAliasNfa<T> states)
-
findSplitState
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)
-
isPreferredSplitState
protected <T> boolean isPreferredSplitState(Pair<java.lang.Integer,NfaToProduction.StateAlias<T>> state1, Pair<java.lang.Integer,NfaToProduction.StateAlias<T>> state2)
-
nfaToGrammar
public <ELEMENT,STATE,TOKEN> ELEMENT nfaToGrammar(Nfa<STATE> nfa, com.google.common.base.Function<STATE,TOKEN> state2token, ProductionFactory<ELEMENT,TOKEN> grammarFactory)
-
nfaToGrammar
public <ELEMENT,STATE,TOKEN> ELEMENT nfaToGrammar(Nfa<STATE> nfa, com.google.common.base.Function<STATE,TOKEN> state2token, java.util.Comparator<? super TOKEN> order, ProductionFactory<ELEMENT,TOKEN> grammarFactory)
-
removeStartAndStop
protected <TOKEN,STATE> NfaToProduction.AbstractElementAlias<TOKEN> removeStartAndStop(Nfa<STATE> nfa, com.google.common.base.Function<STATE,TOKEN> state2token, NfaToProduction.AbstractElementAlias<TOKEN> root)
-
collectMergeableOptions
protected <T> boolean collectMergeableOptions(boolean root, NfaToProduction.AbstractElementAlias<T> alt, java.util.List<NfaToProduction.AbstractElementAlias<T>> result)
-
normalize
protected <T> void normalize(NfaToProduction.AbstractElementAlias<T> element)
-
nfaToGrammar
public <ELEMENT,STATE> ELEMENT nfaToGrammar(Nfa<STATE> nfa, ProductionFactory<ELEMENT,STATE> grammarFactory)
-
excludeStartAndStop
public NfaToProduction excludeStartAndStop()
-
splitState
protected <T> void splitState(NfaToProduction.StateAlias<T> state)
-
toAlias
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)
-
-