A
- the target type of the containing patternB
- the target type of the contained subpatternpublic abstract class MultiTransform<A,B> extends FlatMultiTransform<A,B>
Subclasses must implement the apply(A)
method.
Modifier | Constructor and Description |
---|---|
protected |
MultiTransform(Pattern<? super B> body)
Creates a new pattern.
|
Modifier and Type | Method and Description |
---|---|
abstract Iterable<B> |
apply(A target)
Transforms a target to be matched into an enumeration of targets
for the subpattern.
|
void |
close() |
protected void |
compileApply(eu.bandm.tools.paisley.CompilationContext context) |
protected void |
compileClose(eu.bandm.tools.paisley.CompilationContext context) |
protected void |
compileHasNext(eu.bandm.tools.paisley.CompilationContext context) |
protected void |
compileNext(eu.bandm.tools.paisley.CompilationContext context) |
protected void |
compileOpen(eu.bandm.tools.paisley.CompilationContext context) |
boolean |
hasNext() |
B |
next() |
void |
open(A target) |
compileMatch, compileMatchAgain, compileMatchNext, compileMatchNextBody, cut, match, matchAgain
binds, clear, clone, compileClear, compileCut, getBody, isDeterministic, preserves, preserves, setBody, toString
all, all, all, all, all, and, andThen, andThen, any, any, aside, both, clear, compareTo, compile, compileClear, compileCut, compileIsDeterministic, compileSubPattern, compileThis, compileUpTo, cut, DEBUG, either, enPassant, eq, eqNull, equal, filter, flatten, forInstancesOf, limit, main, matchOnce, matchVar, narrow, neq, neqNull, newAll, noMatch, none, or, orElse, orElse, repeat, some, some, some, some, someMatch, startCompile, test, transform, uniquely, variable, variable
public abstract Iterable<B> apply(A target)
target
- the target for this pattern to be matched against.Unary.body
to be matched against.public void open(A target)
open
in class FlatMultiTransform<A,B>
public void close()
close
in class FlatMultiTransform<A,B>
public boolean hasNext()
hasNext
in class FlatMultiTransform<A,B>
public B next()
next
in class FlatMultiTransform<A,B>
protected void compileOpen(eu.bandm.tools.paisley.CompilationContext context)
compileOpen
in class FlatMultiTransform<A,B>
protected void compileClose(eu.bandm.tools.paisley.CompilationContext context)
compileClose
in class FlatMultiTransform<A,B>
protected void compileHasNext(eu.bandm.tools.paisley.CompilationContext context)
compileHasNext
in class FlatMultiTransform<A,B>
protected void compileNext(eu.bandm.tools.paisley.CompilationContext context)
compileNext
in class FlatMultiTransform<A,B>
protected void compileApply(eu.bandm.tools.paisley.CompilationContext context)
see also the complete user documentation .