public class NfaUtil
extends java.lang.Object
| Modifier and Type | Class and Description | 
|---|---|
static interface  | 
NfaUtil.BacktrackHandler<S,RESULT>  | 
protected static class  | 
NfaUtil.BacktrackingItem<RESULT,S>  | 
protected static class  | 
NfaUtil.GetToken<E,T>  | 
static class  | 
NfaUtil.MappedComparator<S,COMPARABLE extends java.lang.Comparable<COMPARABLE>>  | 
static class  | 
NfaUtil.NFAFactory<S>  | 
static class  | 
NfaUtil.NFAImpl<S>  | 
| Constructor and Description | 
|---|
NfaUtil()  | 
| Modifier and Type | Method and Description | 
|---|---|
<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>>  | 
canReach(Nfa<S> nfa,
        S state,
        com.google.common.base.Predicate<S> matcher)  | 
<S,ITERABLE extends java.lang.Iterable<? extends S>>  | 
canReachFinalState(Nfa<S> nfa,
                  S state)  | 
<S> java.util.Set<S> | 
collect(Nfa<S> nfa)  | 
protected <S> void | 
collect(Nfa<S> nfa,
       S state,
       java.util.Set<S> visited)  | 
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)  | 
protected <S> void | 
collectedInverseMap(Nfa<S> nfa,
                   S state,
                   java.util.Map<S,java.util.List<S>> inverseMap,
                   java.util.Set<S> visited)  | 
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)  | 
<SRCSTATE,DSTSTATE,P extends Nfa<DSTSTATE>>  | 
create(Nfa<SRCSTATE> source,
      NfaFactory<P,DSTSTATE,SRCSTATE> factory)  | 
protected <SRCSTATE,DSTSTATE,P extends Nfa<DSTSTATE>>  | 
create(Nfa<SRCSTATE> source,
      P result,
      SRCSTATE src,
      NfaFactory<P,DSTSTATE,SRCSTATE> factory,
      java.util.Map<SRCSTATE,DSTSTATE> src2dst)  | 
<E,T> Nfa<E> | 
create(Production<E,T> production,
      FollowerFunction<E> ff,
      E start,
      E stop)  | 
<S,E,T,P extends Nfa<S>>  | 
create(Production<E,T> production,
      FollowerFunction<E> ff,
      NfaFactory<P,S,? super T> factory)  | 
<S,E,T1,T2,P extends Nfa<S>>  | 
create(Production<E,T1> production,
      FollowerFunction<E> ff,
      com.google.common.base.Function<E,T2> tokenFunc,
      NfaFactory<P,S,? super T2> factory,
      T2 start,
      T2 stop)  | 
protected <S,E,T1,T2,P extends Nfa<S>>  | 
create(Production<E,T1> production,
      P nfa,
      S state,
      java.lang.Iterable<E> followerElements,
      FollowerFunction<E> followerFunc,
      com.google.common.base.Function<E,T2> tokenFunc,
      NfaFactory<P,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)  | 
<S> boolean | 
equalsIgnoreOrder(Nfa<S> nfa1,
                 Nfa<S> nfa2)  | 
<S> boolean | 
equalsIgnoreOrder(Nfa<S> nfa1,
                 Nfa<S> nfa2,
                 com.google.common.base.Function<S,? super java.lang.Object> keyFunc)  | 
<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)  | 
<S> Nfa<S> | 
filter(Nfa<S> nfa,
      com.google.common.base.Predicate<S> filter)  | 
<S> java.util.Set<S> | 
filterFollowers(Nfa<S> nfa,
               java.lang.Iterable<S> followers,
               com.google.common.base.Predicate<S> filter)  | 
<S,ITERABLE extends java.lang.Iterable<? extends S>>  | 
find(Nfa<S> nfa,
    java.lang.Iterable<S> starts,
    com.google.common.base.Predicate<S> matcher)  | 
<S> S | 
find(Nfa<S> nfa,
    com.google.common.base.Predicate<S> matcher)  | 
protected <S,ITERABLE extends java.lang.Iterable<? extends S>>  | 
find(Nfa<S> nfa,
    S state,
    com.google.common.base.Predicate<S> matcher,
    java.util.Set<S> visited)  | 
<S> java.util.Set<S> | 
findFirst(Nfa<S> nfa,
         java.lang.Iterable<S> starts,
         com.google.common.base.Predicate<S> match)  | 
<S> Nfa<S> | 
inverse(Nfa<S> nfa)  | 
<S> void | 
removeOrphans(Nfa<S> nfa)  | 
<S extends java.lang.Comparable<S>>  | 
sort(Nfa<S> nfa)  | 
<S> Nfa<S> | 
sort(Nfa<S> nfa,
    java.util.Comparator<S> comparator)  | 
<S,COMP extends java.lang.Comparable<COMP>>  | 
sort(Nfa<S> nfa,
    java.util.Map<S,COMP> comparator)  | 
public <S,RESULT> java.util.List<RESULT> backtrack(Nfa<S> nfa, RESULT initial, NfaUtil.BacktrackHandler<S,RESULT> handler)
public <S,ITERABLE extends java.lang.Iterable<? extends S>> boolean canReach(Nfa<S> nfa, S state, com.google.common.base.Predicate<S> matcher)
public <S,ITERABLE extends java.lang.Iterable<? extends S>> boolean canReachFinalState(Nfa<S> nfa, S state)
public <S> java.util.Set<S> collect(Nfa<S> nfa)
protected <S> void collect(Nfa<S> nfa, S state, java.util.Set<S> visited)
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)
protected <S> void collectedInverseMap(Nfa<S> nfa, S state, java.util.Map<S,java.util.List<S>> inverseMap, java.util.Set<S> visited)
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)
protected <SRCSTATE,DSTSTATE,P extends Nfa<DSTSTATE>> DSTSTATE create(Nfa<SRCSTATE> source, P result, SRCSTATE src, NfaFactory<P,DSTSTATE,SRCSTATE> factory, java.util.Map<SRCSTATE,DSTSTATE> src2dst)
public <SRCSTATE,DSTSTATE,P extends Nfa<DSTSTATE>> P create(Nfa<SRCSTATE> source, NfaFactory<P,DSTSTATE,SRCSTATE> factory)
public <E,T> Nfa<E> create(Production<E,T> production, FollowerFunction<E> ff, E start, E stop)
public <S,E,T,P extends Nfa<S>> P create(Production<E,T> production, FollowerFunction<E> ff, NfaFactory<P,S,? super T> factory)
public <S,E,T1,T2,P extends Nfa<S>> P create(Production<E,T1> production, FollowerFunction<E> ff, com.google.common.base.Function<E,T2> tokenFunc, NfaFactory<P,S,? super T2> factory, T2 start, T2 stop)
protected <S,E,T1,T2,P extends Nfa<S>> void create(Production<E,T1> production, P nfa, S state, java.lang.Iterable<E> followerElements, FollowerFunction<E> followerFunc, com.google.common.base.Function<E,T2> tokenFunc, NfaFactory<P,S,? super T2> factory, java.util.Map<E,S> ele2state)
public <S> java.util.Map<S,java.lang.Integer> distanceFromStateMap(Nfa<S> nfa, com.google.common.base.Predicate<S> matches)
public <S> java.util.Map<S,java.lang.Integer> distanceToFinalStateMap(Nfa<S> nfa)
public <S> java.util.Map<S,java.lang.Integer> distanceToStateMap(Nfa<S> nfa, com.google.common.base.Predicate<S> matches)
public <S> boolean equalsIgnoreOrder(Nfa<S> nfa1, Nfa<S> nfa2, com.google.common.base.Function<S,? super java.lang.Object> keyFunc)
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)
public <S> java.util.Set<S> filterFollowers(Nfa<S> nfa, java.lang.Iterable<S> followers, com.google.common.base.Predicate<S> filter)
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)
public <S> S 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)
public <S> java.util.Set<S> findFirst(Nfa<S> nfa, java.lang.Iterable<S> starts, com.google.common.base.Predicate<S> match)
public <S> void removeOrphans(Nfa<S> nfa)