org.eclipse.xtext.util.formallang
Class NfaUtil
java.lang.Object
org.eclipse.xtext.util.formallang.NfaUtil
public class NfaUtil
- extends java.lang.Object
- Author:
- Moritz Eysholdt - Initial contribution and API
Method Summary |
<S,RESULT> java.util.List<RESULT> |
|
backtrack(Nfa<S> nfa,
RESULT initial,
NfaUtil.BacktrackHandler<S,RESULT> handler)
|
<S,ITERABLE extends java.lang.Iterable<? extends S>>
boolean |
|
canReach(Nfa<S> nfa,
S state,
com.google.common.base.Predicate<S> matcher)
|
<S,ITERABLE extends java.lang.Iterable<? extends S>>
boolean |
|
canReachFinalState(Nfa<S> nfa,
S state)
|
|
collect(Nfa<S> nfa)
|
protected
|
collect(Nfa<S> nfa,
S state,
java.util.Set<S> visited)
|
protected
|
collectDistancesForm(Nfa<S> nfa,
S from,
int distance,
java.util.Map<S,java.lang.Integer> distances,
com.google.common.base.Predicate<S> matches)
|
protected
|
collectedInverseMap(Nfa<S> nfa,
S state,
java.util.Map<S,java.util.List<S>> inverseMap,
java.util.Set<S> visited)
|
protected
|
collectFollowers(Nfa<S> nfa,
S owner,
java.util.Set<S> result,
java.util.Set<S> visited,
com.google.common.base.Predicate<S> filter)
|
<SRCSTATE,DSTSTATE,NFA extends Nfa<DSTSTATE>>
NFA |
|
create(Nfa<SRCSTATE> source,
NfaFactory<NFA,DSTSTATE,SRCSTATE> factory)
|
protected
<SRCSTATE,DSTSTATE,NFA extends Nfa<DSTSTATE>>
DSTSTATE |
|
create(Nfa<SRCSTATE> source,
NFA result,
SRCSTATE src,
NfaFactory<NFA,DSTSTATE,SRCSTATE> factory,
java.util.Map<SRCSTATE,DSTSTATE> src2dst)
|
|
create(Production<E,T> production,
FollowerFunction<E> ff,
E start,
E stop)
|
<S,E,T,NFA extends Nfa<S>>
NFA |
|
create(Production<E,T> production,
FollowerFunction<E> ff,
NfaFactory<NFA,S,? super T> factory)
|
<S,E,T1,T2,NFA extends Nfa<S>>
NFA |
|
create(Production<E,T1> production,
FollowerFunction<E> ff,
com.google.common.base.Function<E,T2> tokenFunc,
NfaFactory<NFA,S,? super T2> factory,
T2 start,
T2 stop)
|
protected
<S,E,T1,T2,NFA extends Nfa<S>>
void |
|
create(Production<E,T1> production,
NFA nfa,
S state,
java.lang.Iterable<E> followerElements,
FollowerFunction<E> followerFunc,
com.google.common.base.Function<E,T2> tokenFunc,
NfaFactory<NFA,S,? super T2> factory,
java.util.Map<E,S> ele2state)
|
<S> java.util.Map<S,java.lang.Integer> |
|
distanceFromStateMap(Nfa<S> nfa,
com.google.common.base.Predicate<S> matches)
|
<S> java.util.Map<S,java.lang.Integer> |
|
distanceToFinalStateMap(Nfa<S> nfa)
|
<S> java.util.Map<S,java.lang.Integer> |
|
distanceToStateMap(Nfa<S> nfa,
com.google.common.base.Predicate<S> matches)
|
|
equalsIgnoreOrder(Nfa<S> nfa1,
Nfa<S> nfa2)
|
|
equalsIgnoreOrder(Nfa<S> nfa1,
Nfa<S> nfa2,
com.google.common.base.Function<S,? super java.lang.Object> keyFunc)
|
|
equalsIgnoreOrder(Nfa<S> nfa1,
Nfa<S> nfa2,
S s1,
S s2,
com.google.common.base.Function<S,? super java.lang.Object> keyFunc,
java.util.Set<S> visited)
|
|
filter(Nfa<S> nfa,
com.google.common.base.Predicate<S> filter)
|
|
filterFollowers(Nfa<S> nfa,
java.lang.Iterable<S> followers,
com.google.common.base.Predicate<S> filter)
|
<S,ITERABLE extends java.lang.Iterable<? extends S>>
S |
|
find(Nfa<S> nfa,
java.lang.Iterable<S> starts,
com.google.common.base.Predicate<S> matcher)
|
|
find(Nfa<S> nfa,
com.google.common.base.Predicate<S> matcher)
|
protected
<S,ITERABLE extends java.lang.Iterable<? extends S>>
S |
|
find(Nfa<S> nfa,
S state,
com.google.common.base.Predicate<S> matcher,
java.util.Set<S> visited)
|
|
findFirst(Nfa<S> nfa,
java.lang.Iterable<S> starts,
com.google.common.base.Predicate<S> match)
|
|
inverse(Nfa<S> nfa)
|
|
removeOrphans(Nfa<S> nfa)
|
<S extends java.lang.Comparable<S>>
Nfa<S> |
|
sort(Nfa<S> nfa)
|
|
sort(Nfa<S> nfa,
java.util.Comparator<S> comparator)
|
<S,COMP extends java.lang.Comparable<COMP>>
Nfa<S> |
|
sort(Nfa<S> nfa,
java.util.Map<S,COMP> comparator)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
NfaUtil
public NfaUtil()
backtrack
public <S,RESULT> java.util.List<RESULT> backtrack(Nfa<S> nfa,
RESULT initial,
NfaUtil.BacktrackHandler<S,RESULT> handler)
canReach
public <S,ITERABLE extends java.lang.Iterable<? extends S>> boolean canReach(Nfa<S> nfa,
S state,
com.google.common.base.Predicate<S> matcher)
canReachFinalState
public <S,ITERABLE extends java.lang.Iterable<? extends S>> boolean canReachFinalState(Nfa<S> nfa,
S state)
collect
public <S> java.util.Set<S> collect(Nfa<S> nfa)
collect
protected <S> void collect(Nfa<S> nfa,
S state,
java.util.Set<S> visited)
collectDistancesForm
protected <S> void collectDistancesForm(Nfa<S> nfa,
S from,
int distance,
java.util.Map<S,java.lang.Integer> distances,
com.google.common.base.Predicate<S> matches)
collectedInverseMap
protected <S> void collectedInverseMap(Nfa<S> nfa,
S state,
java.util.Map<S,java.util.List<S>> inverseMap,
java.util.Set<S> visited)
collectFollowers
protected <S> void collectFollowers(Nfa<S> nfa,
S owner,
java.util.Set<S> result,
java.util.Set<S> visited,
com.google.common.base.Predicate<S> filter)
create
protected <SRCSTATE,DSTSTATE,NFA extends Nfa<DSTSTATE>> DSTSTATE create(Nfa<SRCSTATE> source,
NFA result,
SRCSTATE src,
NfaFactory<NFA,DSTSTATE,SRCSTATE> factory,
java.util.Map<SRCSTATE,DSTSTATE> src2dst)
create
public <SRCSTATE,DSTSTATE,NFA extends Nfa<DSTSTATE>> NFA create(Nfa<SRCSTATE> source,
NfaFactory<NFA,DSTSTATE,SRCSTATE> factory)
create
public <E,T> Nfa<E> create(Production<E,T> production,
FollowerFunction<E> ff,
E start,
E stop)
create
public <S,E,T,NFA extends Nfa<S>> NFA create(Production<E,T> production,
FollowerFunction<E> ff,
NfaFactory<NFA,S,? super T> factory)
create
public <S,E,T1,T2,NFA extends Nfa<S>> NFA create(Production<E,T1> production,
FollowerFunction<E> ff,
com.google.common.base.Function<E,T2> tokenFunc,
NfaFactory<NFA,S,? super T2> factory,
T2 start,
T2 stop)
create
protected <S,E,T1,T2,NFA extends Nfa<S>> void create(Production<E,T1> production,
NFA nfa,
S state,
java.lang.Iterable<E> followerElements,
FollowerFunction<E> followerFunc,
com.google.common.base.Function<E,T2> tokenFunc,
NfaFactory<NFA,S,? super T2> factory,
java.util.Map<E,S> ele2state)
distanceFromStateMap
public <S> java.util.Map<S,java.lang.Integer> distanceFromStateMap(Nfa<S> nfa,
com.google.common.base.Predicate<S> matches)
distanceToFinalStateMap
public <S> java.util.Map<S,java.lang.Integer> distanceToFinalStateMap(Nfa<S> nfa)
distanceToStateMap
public <S> java.util.Map<S,java.lang.Integer> distanceToStateMap(Nfa<S> nfa,
com.google.common.base.Predicate<S> matches)
equalsIgnoreOrder
public <S> boolean equalsIgnoreOrder(Nfa<S> nfa1,
Nfa<S> nfa2)
equalsIgnoreOrder
public <S> boolean equalsIgnoreOrder(Nfa<S> nfa1,
Nfa<S> nfa2,
com.google.common.base.Function<S,? super java.lang.Object> keyFunc)
equalsIgnoreOrder
public <S> boolean equalsIgnoreOrder(Nfa<S> nfa1,
Nfa<S> nfa2,
S s1,
S s2,
com.google.common.base.Function<S,? super java.lang.Object> keyFunc,
java.util.Set<S> visited)
filter
public <S> Nfa<S> filter(Nfa<S> nfa,
com.google.common.base.Predicate<S> filter)
filterFollowers
public <S> java.util.Set<S> filterFollowers(Nfa<S> nfa,
java.lang.Iterable<S> followers,
com.google.common.base.Predicate<S> filter)
find
public <S,ITERABLE extends java.lang.Iterable<? extends S>> S find(Nfa<S> nfa,
java.lang.Iterable<S> starts,
com.google.common.base.Predicate<S> matcher)
find
public <S> S find(Nfa<S> nfa,
com.google.common.base.Predicate<S> matcher)
find
protected <S,ITERABLE extends java.lang.Iterable<? extends S>> S find(Nfa<S> nfa,
S state,
com.google.common.base.Predicate<S> matcher,
java.util.Set<S> visited)
findFirst
public <S> java.util.Set<S> findFirst(Nfa<S> nfa,
java.lang.Iterable<S> starts,
com.google.common.base.Predicate<S> match)
inverse
public <S> Nfa<S> inverse(Nfa<S> nfa)
removeOrphans
public <S> void removeOrphans(Nfa<S> nfa)
sort
public <S extends java.lang.Comparable<S>> Nfa<S> sort(Nfa<S> nfa)
sort
public <S> Nfa<S> sort(Nfa<S> nfa,
java.util.Comparator<S> comparator)
sort
public <S,COMP extends java.lang.Comparable<COMP>> Nfa<S> sort(Nfa<S> nfa,
java.util.Map<S,COMP> comparator)