public <E, T> E findByToken(final Production<E, T> production, final Predicate<T> matches) { return findByToken(production, production.getRoot(), matches); }
public <E, T> E find(Production<E, T> production, Predicate<E> matches) { return find(production, production.getRoot(), matches); }
public String format(Production<ELEMENT, TOKEN> adapter) { return format(adapter, adapter.getRoot()); }
public <E, T> E findByToken(final Production<E, T> production, final Predicate<T> matches) { return findByToken(production, production.getRoot(), matches); }
public <S, D, T> D clone(Production<S, T> production, ProductionFactory<D, T> factory) { return clone(production, production.getRoot(), factory); }
public String format(Production<ELEMENT, TOKEN> adapter) { return format(adapter, adapter.getRoot()); }
public <S, D, T> D clone(Production<S, T> production, ProductionFactory<D, T> factory) { return clone(production, production.getRoot(), factory); }
public <E, T> E find(Production<E, T> production, Predicate<E> matches) { return find(production, production.getRoot(), matches); }
public <S, E, T1, T2, P extends Nfa<S>> P create(Production<E, T1> production, FollowerFunction<E> ff, Function<E, T2> tokenFunc, NfaFactory<P, S, ? super T2> factory, T2 start, T2 stop) { Map<E, S> states = Maps.newLinkedHashMap(); P nfa = factory.create(start, stop); states.put(null, nfa.getStop()); create(production, nfa, nfa.getStart(), ff.getStarts(production.getRoot()), ff, tokenFunc, factory, states); return nfa; }
public <S, E, T1, T2, NFA extends Nfa<S>> NFA create(Production<E, T1> production, FollowerFunction<E> ff, Function<E, T2> tokenFunc, NfaFactory<NFA, S, ? super T2> factory, T2 start, T2 stop) { Map<E, S> states = Maps.newHashMap(); NFA nfa = factory.create(start, stop); states.put(null, nfa.getStop()); create(production, nfa, nfa.getStart(), ff.getStarts(production.getRoot()), ff, tokenFunc, factory, states); return nfa; }