public abstract class Syntax<C extends RuntimeContext<C>,N extends Node<C,N>,E extends Expression<C,N,E,O>,O extends Operator<C,N,O>,P extends Procedure<C,N,E,O,P>,PA extends Parser<C,N,E,O,P,PA,MA,T>,MA extends Parser.Mandatory<C,N,E,O,P,PA,MA,T>,T,R,A>
extends java.lang.Object
| Modifier and Type | Class and Description |
|---|---|
static class |
Syntax.CompositeSyntax<C extends RuntimeContext<C>,N extends Node<C,N>,E extends Expression<C,N,E,O>,O extends Operator<C,N,O>,P extends Procedure<C,N,E,O,P>,PA extends Parser<C,N,E,O,P,PA,MA,T>,MA extends Parser.Mandatory<C,N,E,O,P,PA,MA,T>,T,R,A> |
static class |
Syntax.DefaultSyntax<C extends RuntimeContext<C>,N extends Node<C,N>,E extends Expression<C,N,E,O>,O extends Operator<C,N,O>,P extends Procedure<C,N,E,O,P>,PA extends Parser<C,N,E,O,P,PA,MA,T>,MA extends Parser.Mandatory<C,N,E,O,P,PA,MA,T>,T,R,A> |
static class |
Syntax.Rules |
| Modifier and Type | Field and Description |
|---|---|
protected java.util.function.BiFunction<P,Syntax<C,N,E,O,P,PA,MA,?,?,A>,A> |
parser |
| Modifier | Constructor and Description |
|---|---|
protected |
Syntax(java.util.function.BiFunction<P,Syntax<C,N,E,O,P,PA,MA,?,?,A>,A> parser) |
| Modifier and Type | Method and Description |
|---|---|
<NR,NA> Syntax<C,N,E,O,P,PA,MA,T,NR,NA> |
and(java.util.function.Function<Syntax<C,N,E,O,P,PA,MA,T,R,A>,Syntax<C,N,E,O,P,PA,MA,T,NR,NA>> rule) |
R |
as() |
R |
as(java.util.function.Function<A,N> factory) |
protected abstract void |
close(P procedure) |
static <C extends RuntimeContext<C>,N extends Node<C,N>,E extends Expression<C,N,E,O>,O extends Operator<C,N,O>,P extends Procedure<C,N,E,O,P>,PA extends Parser<C,N,E,O,P,PA,MA,T>,MA extends Parser.Mandatory<C,N,E,O,P,PA,MA,T>,T,R,A> |
endOfRow(Notation splitter) |
protected abstract boolean |
isClose(P procedure) |
protected abstract boolean |
isSplitter(P procedure) |
static <C extends RuntimeContext<C>,N extends Node<C,N>,E extends Expression<C,N,E,O>,O extends Operator<C,N,O>,P extends Procedure<C,N,E,O,P>,PA extends Parser<C,N,E,O,P,PA,MA,T>,MA extends Parser.Mandatory<C,N,E,O,P,PA,MA,T>,T> |
many(MA mandatory) |
static <C extends RuntimeContext<C>,N extends Node<C,N>,E extends Expression<C,N,E,O>,O extends Operator<C,N,O>,P extends Procedure<C,N,E,O,P>,PA extends Parser<C,N,E,O,P,PA,MA,T>,MA extends Parser.Mandatory<C,N,E,O,P,PA,MA,T>,T> |
many(PA parser) |
protected R |
parse(Syntax<C,N,E,O,P,PA,MA,T,R,A> syntax,
java.util.function.Function<A,N> factory) |
static <C extends RuntimeContext<C>,N extends Node<C,N>,E extends Expression<C,N,E,O>,O extends Operator<C,N,O>,P extends Procedure<C,N,E,O,P>,PA extends Parser<C,N,E,O,P,PA,MA,T>,MA extends Parser.Mandatory<C,N,E,O,P,PA,MA,T>,T> |
single(MA parser) |
static <C extends RuntimeContext<C>,N extends Node<C,N>,E extends Expression<C,N,E,O>,O extends Operator<C,N,O>,P extends Procedure<C,N,E,O,P>,PA extends Parser<C,N,E,O,P,PA,MA,T>,MA extends Parser.Mandatory<C,N,E,O,P,PA,MA,T>,T> |
single(PA parser) |
protected final java.util.function.BiFunction<P extends Procedure<C,N,E,O,P>,Syntax<C extends RuntimeContext<C>,N extends Node<C,N>,E extends Expression<C,N,E,O>,O extends Operator<C,N,O>,P extends Procedure<C,N,E,O,P>,PA extends Parser<C,N,E,O,P,PA,MA,T>,MA extends Parser.Mandatory<C,N,E,O,P,PA,MA,T>,?,?,A>,A> parser
protected abstract boolean isClose(P procedure)
protected abstract void close(P procedure)
protected abstract boolean isSplitter(P procedure)
protected R parse(Syntax<C,N,E,O,P,PA,MA,T,R,A> syntax, java.util.function.Function<A,N> factory)
public <NR,NA> Syntax<C,N,E,O,P,PA,MA,T,NR,NA> and(java.util.function.Function<Syntax<C,N,E,O,P,PA,MA,T,R,A>,Syntax<C,N,E,O,P,PA,MA,T,NR,NA>> rule)
public R as()
public static <C extends RuntimeContext<C>,N extends Node<C,N>,E extends Expression<C,N,E,O>,O extends Operator<C,N,O>,P extends Procedure<C,N,E,O,P>,PA extends Parser<C,N,E,O,P,PA,MA,T>,MA extends Parser.Mandatory<C,N,E,O,P,PA,MA,T>,T> Syntax<C,N,E,O,P,PA,MA,T,NodeParser<C,N,E,O,P>,T> single(PA parser)
public static <C extends RuntimeContext<C>,N extends Node<C,N>,E extends Expression<C,N,E,O>,O extends Operator<C,N,O>,P extends Procedure<C,N,E,O,P>,PA extends Parser<C,N,E,O,P,PA,MA,T>,MA extends Parser.Mandatory<C,N,E,O,P,PA,MA,T>,T> Syntax<C,N,E,O,P,PA,MA,T,NodeParser.Mandatory<C,N,E,O,P>,T> single(MA parser)
public static <C extends RuntimeContext<C>,N extends Node<C,N>,E extends Expression<C,N,E,O>,O extends Operator<C,N,O>,P extends Procedure<C,N,E,O,P>,PA extends Parser<C,N,E,O,P,PA,MA,T>,MA extends Parser.Mandatory<C,N,E,O,P,PA,MA,T>,T> Syntax<C,N,E,O,P,PA,MA,T,NodeParser.Mandatory<C,N,E,O,P>,java.util.List<T>> many(MA mandatory)
public static <C extends RuntimeContext<C>,N extends Node<C,N>,E extends Expression<C,N,E,O>,O extends Operator<C,N,O>,P extends Procedure<C,N,E,O,P>,PA extends Parser<C,N,E,O,P,PA,MA,T>,MA extends Parser.Mandatory<C,N,E,O,P,PA,MA,T>,T> Syntax<C,N,E,O,P,PA,MA,T,NodeParser.Mandatory<C,N,E,O,P>,java.util.List<T>> many(PA parser)
public static <C extends RuntimeContext<C>,N extends Node<C,N>,E extends Expression<C,N,E,O>,O extends Operator<C,N,O>,P extends Procedure<C,N,E,O,P>,PA extends Parser<C,N,E,O,P,PA,MA,T>,MA extends Parser.Mandatory<C,N,E,O,P,PA,MA,T>,T,R,A> java.util.function.Function<Syntax<C,N,E,O,P,PA,MA,T,R,A>,Syntax<C,N,E,O,P,PA,MA,T,R,A>> endOfRow(Notation splitter)