public class Production<T>
extends java.lang.Object
Constructor and Description |
---|
Production() |
Modifier and Type | Method and Description |
---|---|
<U,R> Production<R> |
append(Production<U> symbol,
java.util.function.BiFunction<? super T,? super U,? extends R> in,
java.util.function.Function<? super R,? extends T> outT,
java.util.function.Function<? super R,? extends U> outU) |
Production<T> |
append(java.lang.String terminal) |
Production<T> |
append(Symbol.Nonterminal<?> symbol) |
<U,R> Production<R> |
append(Symbol.Nonterminal<U> symbol,
java.util.function.BiFunction<? super T,? super U,? extends R> in,
java.util.function.Function<? super R,? extends T> outT,
java.util.function.Function<? super R,? extends U> outU) |
Production<T> |
check(java.util.function.Predicate<T> test) |
<U> Production<U> |
map(java.util.function.Function<T,U> in,
java.util.function.Function<U,T> out) |
Production<T> |
prepend(java.lang.String terminal) |
Production<T> |
prepend(Symbol.Nonterminal<?> symbol) |
static <T> Production<T> |
produce(Symbol.Nonterminal<T> symbol) |
Production<java.util.stream.Stream<T>> |
repeat() |
Production<java.util.stream.Stream<T>> |
repeat(int minimum) |
Production<java.util.stream.Stream<T>> |
repeat(int minimum,
int maximum) |
public static <T> Production<T> produce(Symbol.Nonterminal<T> symbol)
public Production<java.util.stream.Stream<T>> repeat()
public Production<java.util.stream.Stream<T>> repeat(int minimum)
public Production<java.util.stream.Stream<T>> repeat(int minimum, int maximum)
public <U> Production<U> map(java.util.function.Function<T,U> in, java.util.function.Function<U,T> out)
public Production<T> prepend(java.lang.String terminal)
public Production<T> append(java.lang.String terminal)
public Production<T> prepend(Symbol.Nonterminal<?> symbol)
public Production<T> append(Symbol.Nonterminal<?> symbol)
public <U,R> Production<R> append(Symbol.Nonterminal<U> symbol, java.util.function.BiFunction<? super T,? super U,? extends R> in, java.util.function.Function<? super R,? extends T> outT, java.util.function.Function<? super R,? extends U> outU)
public <U,R> Production<R> append(Production<U> symbol, java.util.function.BiFunction<? super T,? super U,? extends R> in, java.util.function.Function<? super R,? extends T> outT, java.util.function.Function<? super R,? extends U> outU)
public Production<T> check(java.util.function.Predicate<T> test)