Class PdaUtil


  • public class PdaUtil
    extends java.lang.Object
    • Constructor Summary

      Constructors 
      Constructor Description
      PdaUtil()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      <S,​P>
      boolean
      canReach​(Pda<S,​P> pda, S state, java.util.Iterator<P> stack, com.google.common.base.Predicate<S> matches, com.google.common.base.Predicate<S> canPass)  
      protected <S,​P,​T,​D extends Pda<S,​P>>
      S
      clone​(S state, Pda<S,​P> src, D target, com.google.common.base.Function<S,​T> tokens, PdaFactory<D,​S,​P,​T> fact, PdaUtil.Identity<S> identity)  
      <S,​P,​D extends Pda<S,​P>>
      java.util.Map<P,​Pair<S,​S>>
      collectPopsAndPushs​(Pda<S,​P> pda)  
      <S,​P,​R>
      java.util.List<R>
      collectReachable​(Pda<S,​P> pda, com.google.common.base.Function<S,​R> function)  
      <S,​P,​E,​T,​D extends Pda<S,​P>>
      D
      create​(Cfg<E,​T> cfg, FollowerFunction<E> ff, PdaFactory<D,​S,​P,​? super E> fact)  
      protected <S,​P,​E,​T1,​T2,​D extends Pda<S,​P>>
      void
      create​(Cfg<E,​T1> cfg, D pda, S state, E ele, java.lang.Iterable<E> followerElements, FollowerFunction<E> ff, com.google.common.base.Function<E,​T2> tokens, PdaFactory<D,​S,​P,​? super T2> fact, java.util.Map<E,​S> states, java.util.Map<E,​S> stops, com.google.common.collect.Multimap<E,​E> callers)  
      <S,​P,​E,​T1,​T2,​D extends Pda<S,​P>>
      D
      create​(Cfg<E,​T1> cfg, FollowerFunction<E> ff, com.google.common.base.Function<E,​T2> element2token, PdaFactory<D,​S,​P,​? super T2> fact)  
      protected <T> PdaUtil.StackItem<T> createStack​(java.util.Iterator<T> stack)  
      <S,​P>
      long
      distanceTo​(Pda<S,​P> pda, java.lang.Iterable<S> starts, java.util.Iterator<P> stack, com.google.common.base.Predicate<S> matches, com.google.common.base.Predicate<S> canPass)  
      <S,​P,​T,​D extends Pda<S,​P>>
      D
      expand​(Pda<S,​P> pda, com.google.common.base.Function<S,​Pda<S,​P>> expand, com.google.common.base.Function<S,​T> tokens, PdaFactory<D,​S,​P,​T> fact)  
      <S,​P,​D extends Pda<S,​P>>
      D
      filter​(Pda<S,​P> pda, com.google.common.base.Predicate<S> filter, PdaFactory<D,​S,​P,​? super S> fact)  
      <S,​P,​R,​D extends Pda<S,​P>>
      D
      filterEdges​(Pda<S,​P> pda, Traverser<? super Pda<S,​P>,​S,​R> traverser, java.util.Map<S,​java.lang.Integer> distances, PdaFactory<D,​S,​P,​S> factory)  
      <S,​P,​R,​D extends Pda<S,​P>>
      D
      filterEdges​(Pda<S,​P> pda, Traverser<? super Pda<S,​P>,​S,​R> traverser, PdaFactory<D,​S,​P,​S> factory)  
      <S,​P,​D extends Pda<S,​P>>
      D
      filterOrphans​(Pda<S,​P> pda, PdaFactory<D,​S,​P,​S> factory)  
      <S,​P>
      Nfa<S>
      filterUnambiguousPaths​(Pda<S,​P> pda)  
      protected <S,​P>
      void
      filterUnambiguousPaths​(Pda<S,​P> pda, S state, java.util.Map<S,​java.lang.Integer> dist, java.util.Map<S,​java.util.List<S>> followers)  
      <S,​P,​D extends Pda<S,​P>>
      java.util.Map<S,​S>
      mapPopAndPush​(Pda<S,​P> pda)  
      protected <S,​R,​P>
      PdaUtil.TraversalItem<S,​R>
      newItem​(Pda<S,​P> pda, NfaUtil.MappedComparator<S,​java.lang.Integer> comp, java.util.Map<S,​java.lang.Integer> distances, S next, R item)  
      <S,​P>
      java.util.List<S>
      shortestPathTo​(Pda<S,​P> pda, java.lang.Iterable<S> starts, java.util.Iterator<P> stack, com.google.common.base.Predicate<S> matches, com.google.common.base.Predicate<S> canPass)  
      <S,​P>
      java.util.List<S>
      shortestPathTo​(Pda<S,​P> pda, java.util.Iterator<P> stack, com.google.common.base.Predicate<S> matches)  
      <S,​P>
      java.util.List<S>
      shortestPathTo​(Pda<S,​P> pda, java.util.Iterator<P> stack, com.google.common.base.Predicate<S> matches, com.google.common.base.Predicate<S> canPass)  
      <S,​P>
      java.util.List<S>
      shortestPathTo​(Pda<S,​P> pda, java.util.Iterator<P> stack, S match)  
      <S,​P>
      java.util.List<S>
      shortestPathTo​(Pda<S,​P> pda, S start, java.util.Iterator<P> stack, com.google.common.base.Predicate<S> matches, com.google.common.base.Predicate<S> canPass)  
      <S,​P>
      java.util.List<S>
      shortestPathToFinalState​(Pda<S,​P> pda, java.util.Iterator<P> stack)  
      <S,​P>
      java.util.List<S>
      shortestStackpruningPathTo​(Pda<S,​P> pda, java.lang.Iterable<S> starts, java.util.Iterator<P> stack, com.google.common.base.Predicate<S> matches, com.google.common.base.Predicate<S> canPass)  
      <S,​P>
      java.util.List<S>
      shortestStackpruningPathTo​(Pda<S,​P> pda, java.util.Iterator<P> stack, com.google.common.base.Predicate<S> matches)  
      <S,​P>
      java.util.List<S>
      shortestStackpruningPathTo​(Pda<S,​P> pda, java.util.Iterator<P> stack, S matches)  
      <S,​P>
      java.util.List<S>
      shortestStackpruningPathTo​(Pda<S,​P> pda, S start, java.util.Iterator<P> stack, com.google.common.base.Predicate<S> matches, com.google.common.base.Predicate<S> canPass)  
      protected <S,​P>
      PdaUtil.TraceItem<S,​P>
      trace​(Pda<S,​P> pda, java.lang.Iterable<S> starts, java.util.Iterator<P> stack, com.google.common.base.Predicate<S> matches, com.google.common.base.Predicate<S> canPass)  
      protected <S,​P>
      PdaUtil.TraceItem<S,​P>
      traceToWithPruningStack​(Pda<S,​P> pda, java.lang.Iterable<S> starts, java.util.Iterator<P> stack, com.google.common.base.Predicate<S> matches, com.google.common.base.Predicate<S> canPass)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • PdaUtil

        public PdaUtil()
    • Method Detail

      • canReach

        public <S,​P> boolean canReach​(Pda<S,​P> pda,
                                            S state,
                                            java.util.Iterator<P> stack,
                                            com.google.common.base.Predicate<S> matches,
                                            com.google.common.base.Predicate<S> canPass)
      • expand

        public <S,​P,​T,​D extends Pda<S,​P>> D expand​(Pda<S,​P> pda,
                                                                           com.google.common.base.Function<S,​Pda<S,​P>> expand,
                                                                           com.google.common.base.Function<S,​T> tokens,
                                                                           PdaFactory<D,​S,​P,​T> fact)
      • clone

        protected <S,​P,​T,​D extends Pda<S,​P>> S clone​(S state,
                                                                             Pda<S,​P> src,
                                                                             D target,
                                                                             com.google.common.base.Function<S,​T> tokens,
                                                                             PdaFactory<D,​S,​P,​T> fact,
                                                                             PdaUtil.Identity<S> identity)
      • create

        public <S,​P,​E,​T,​D extends Pda<S,​P>> D create​(Cfg<E,​T> cfg,
                                                                                   FollowerFunction<E> ff,
                                                                                   PdaFactory<D,​S,​P,​? super E> fact)
      • create

        protected <S,​P,​E,​T1,​T2,​D extends Pda<S,​P>> void create​(Cfg<E,​T1> cfg,
                                                                                                   D pda,
                                                                                                   S state,
                                                                                                   E ele,
                                                                                                   java.lang.Iterable<E> followerElements,
                                                                                                   FollowerFunction<E> ff,
                                                                                                   com.google.common.base.Function<E,​T2> tokens,
                                                                                                   PdaFactory<D,​S,​P,​? super T2> fact,
                                                                                                   java.util.Map<E,​S> states,
                                                                                                   java.util.Map<E,​S> stops,
                                                                                                   com.google.common.collect.Multimap<E,​E> callers)
      • create

        public <S,​P,​E,​T1,​T2,​D extends Pda<S,​P>> D create​(Cfg<E,​T1> cfg,
                                                                                             FollowerFunction<E> ff,
                                                                                             com.google.common.base.Function<E,​T2> element2token,
                                                                                             PdaFactory<D,​S,​P,​? super T2> fact)
      • createStack

        protected <T> PdaUtil.StackItem<T> createStack​(java.util.Iterator<T> stack)
      • distanceTo

        public <S,​P> long distanceTo​(Pda<S,​P> pda,
                                           java.lang.Iterable<S> starts,
                                           java.util.Iterator<P> stack,
                                           com.google.common.base.Predicate<S> matches,
                                           com.google.common.base.Predicate<S> canPass)
      • filterEdges

        public <S,​P,​R,​D extends Pda<S,​P>> D filterEdges​(Pda<S,​P> pda,
                                                                                Traverser<? super Pda<S,​P>,​S,​R> traverser,
                                                                                PdaFactory<D,​S,​P,​S> factory)
      • filterEdges

        public <S,​P,​R,​D extends Pda<S,​P>> D filterEdges​(Pda<S,​P> pda,
                                                                                Traverser<? super Pda<S,​P>,​S,​R> traverser,
                                                                                java.util.Map<S,​java.lang.Integer> distances,
                                                                                PdaFactory<D,​S,​P,​S> factory)
      • filterUnambiguousPaths

        public <S,​P> Nfa<S> filterUnambiguousPaths​(Pda<S,​P> pda)
      • filterUnambiguousPaths

        protected <S,​P> void filterUnambiguousPaths​(Pda<S,​P> pda,
                                                          S state,
                                                          java.util.Map<S,​java.lang.Integer> dist,
                                                          java.util.Map<S,​java.util.List<S>> followers)
      • shortestPathTo

        public <S,​P> java.util.List<S> shortestPathTo​(Pda<S,​P> pda,
                                                            java.lang.Iterable<S> starts,
                                                            java.util.Iterator<P> stack,
                                                            com.google.common.base.Predicate<S> matches,
                                                            com.google.common.base.Predicate<S> canPass)
      • shortestPathTo

        public <S,​P> java.util.List<S> shortestPathTo​(Pda<S,​P> pda,
                                                            java.util.Iterator<P> stack,
                                                            com.google.common.base.Predicate<S> matches)
      • shortestPathTo

        public <S,​P> java.util.List<S> shortestPathTo​(Pda<S,​P> pda,
                                                            java.util.Iterator<P> stack,
                                                            com.google.common.base.Predicate<S> matches,
                                                            com.google.common.base.Predicate<S> canPass)
      • shortestPathTo

        public <S,​P> java.util.List<S> shortestPathTo​(Pda<S,​P> pda,
                                                            java.util.Iterator<P> stack,
                                                            S match)
      • shortestPathTo

        public <S,​P> java.util.List<S> shortestPathTo​(Pda<S,​P> pda,
                                                            S start,
                                                            java.util.Iterator<P> stack,
                                                            com.google.common.base.Predicate<S> matches,
                                                            com.google.common.base.Predicate<S> canPass)
      • shortestPathToFinalState

        public <S,​P> java.util.List<S> shortestPathToFinalState​(Pda<S,​P> pda,
                                                                      java.util.Iterator<P> stack)
      • shortestStackpruningPathTo

        public <S,​P> java.util.List<S> shortestStackpruningPathTo​(Pda<S,​P> pda,
                                                                        java.lang.Iterable<S> starts,
                                                                        java.util.Iterator<P> stack,
                                                                        com.google.common.base.Predicate<S> matches,
                                                                        com.google.common.base.Predicate<S> canPass)
      • shortestStackpruningPathTo

        public <S,​P> java.util.List<S> shortestStackpruningPathTo​(Pda<S,​P> pda,
                                                                        java.util.Iterator<P> stack,
                                                                        com.google.common.base.Predicate<S> matches)
      • shortestStackpruningPathTo

        public <S,​P> java.util.List<S> shortestStackpruningPathTo​(Pda<S,​P> pda,
                                                                        java.util.Iterator<P> stack,
                                                                        S matches)
      • shortestStackpruningPathTo

        public <S,​P> java.util.List<S> shortestStackpruningPathTo​(Pda<S,​P> pda,
                                                                        S start,
                                                                        java.util.Iterator<P> stack,
                                                                        com.google.common.base.Predicate<S> matches,
                                                                        com.google.common.base.Predicate<S> canPass)
      • collectReachable

        public <S,​P,​R> java.util.List<R> collectReachable​(Pda<S,​P> pda,
                                                                      com.google.common.base.Function<S,​R> function)
      • trace

        protected <S,​P> PdaUtil.TraceItem<S,​P> trace​(Pda<S,​P> pda,
                                                                 java.lang.Iterable<S> starts,
                                                                 java.util.Iterator<P> stack,
                                                                 com.google.common.base.Predicate<S> matches,
                                                                 com.google.common.base.Predicate<S> canPass)
      • traceToWithPruningStack

        protected <S,​P> PdaUtil.TraceItem<S,​P> traceToWithPruningStack​(Pda<S,​P> pda,
                                                                                   java.lang.Iterable<S> starts,
                                                                                   java.util.Iterator<P> stack,
                                                                                   com.google.common.base.Predicate<S> matches,
                                                                                   com.google.common.base.Predicate<S> canPass)
      • filterOrphans

        public <S,​P,​D extends Pda<S,​P>> D filterOrphans​(Pda<S,​P> pda,
                                                                          PdaFactory<D,​S,​P,​S> factory)
      • collectPopsAndPushs

        public <S,​P,​D extends Pda<S,​P>> java.util.Map<P,​Pair<S,​S>> collectPopsAndPushs​(Pda<S,​P> pda)
      • mapPopAndPush

        public <S,​P,​D extends Pda<S,​P>> java.util.Map<S,​S> mapPopAndPush​(Pda<S,​P> pda)
      • filter

        public <S,​P,​D extends Pda<S,​P>> D filter​(Pda<S,​P> pda,
                                                                   com.google.common.base.Predicate<S> filter,
                                                                   PdaFactory<D,​S,​P,​? super S> fact)