public Nfa<S> create(S start, S stop) { return new NFAImpl<S>(start, stop, Maps.<S, List<S>> newHashMap()); }
@Override public Nfa<S> create(S start, S stop) { return new NFAImpl<S>(start, stop, Maps.<S, List<S>> newLinkedHashMap()); }
public <S> Nfa<S> sort(Nfa<S> nfa, Comparator<S> comparator) { Map<S, List<S>> followerMap = Maps.newHashMap(); for (S state : new NfaUtil().collect(nfa)) { ArrayList<S> followers = Lists.newArrayList(nfa.getFollowers(state)); Collections.sort(followers, comparator); followerMap.put(state, followers); } return new NFAImpl<S>(nfa.getStart(), nfa.getStop(), followerMap); }
public <S, P> Nfa<S> filterUnambiguousPaths(Pda<S, P> pda) { Map<S, List<S>> followers = Maps.newHashMap(); Map<S, Integer> distanceMap = nfaUtil.distanceToFinalStateMap(pda); filterUnambiguousPaths(pda, pda.getStart(), distanceMap, followers); return new NfaUtil.NFAImpl<S>(pda.getStart(), pda.getStop(), followers); }
public <S extends Comparable<S>> Nfa<S> sort(Nfa<S> nfa) { Map<S, List<S>> followerMap = Maps.newHashMap(); for (S state : new NfaUtil().collect(nfa)) { ArrayList<S> followers = Lists.newArrayList(nfa.getFollowers(state)); Collections.sort(followers); followerMap.put(state, followers); } return new NFAImpl<S>(nfa.getStart(), nfa.getStop(), followerMap); }
public <S> Nfa<S> sort(Nfa<S> nfa, Comparator<S> comparator) { Map<S, List<S>> followerMap = Maps.newLinkedHashMap(); for (S state : new NfaUtil().collect(nfa)) { ArrayList<S> followers = Lists.newArrayList(nfa.getFollowers(state)); Collections.sort(followers, comparator); followerMap.put(state, followers); } return new NFAImpl<S>(nfa.getStart(), nfa.getStop(), followerMap); }
public <S> Nfa<S> inverse(Nfa<S> nfa) { Map<S, List<S>> inverseMap = Maps.newLinkedHashMap(); collectedInverseMap(nfa, nfa.getStart(), inverseMap, Sets.<S> newHashSet()); return new NFAImpl<S>(nfa.getStop(), nfa.getStart(), inverseMap); }
public <S> Nfa<S> inverse(Nfa<S> nfa) { Map<S, List<S>> inverseMap = Maps.newHashMap(); collectedInverseMap(nfa, nfa.getStart(), inverseMap, Sets.<S> newHashSet()); return new NFAImpl<S>(nfa.getStop(), nfa.getStart(), inverseMap); }
public <S, P> Nfa<S> filterUnambiguousPaths(Pda<S, P> pda) { Map<S, List<S>> followers = Maps.newLinkedHashMap(); Map<S, Integer> distanceMap = nfaUtil.distanceToFinalStateMap(pda); filterUnambiguousPaths(pda, pda.getStart(), distanceMap, followers); return new NfaUtil.NFAImpl<S>(pda.getStart(), pda.getStop(), followers); }
public <S extends Comparable<S>> Nfa<S> sort(Nfa<S> nfa) { Map<S, List<S>> followerMap = Maps.newLinkedHashMap(); for (S state : new NfaUtil().collect(nfa)) { ArrayList<S> followers = Lists.newArrayList(nfa.getFollowers(state)); Collections.sort(followers); followerMap.put(state, followers); } return new NFAImpl<S>(nfa.getStart(), nfa.getStop(), followerMap); }