Package eu.bandm.tools.paisley
Class Pattern.Either<A>
java.lang.Object
eu.bandm.tools.paisley.Pattern<C>
eu.bandm.tools.paisley.Binary<A,A,A>
eu.bandm.tools.paisley.Pattern.Either<A>
- All Implemented Interfaces:
Serializable
,Cloneable
-
Nested Class Summary
Nested classes/interfaces inherited from class eu.bandm.tools.paisley.Pattern
Pattern.Either<A>
-
Field Summary
Fields inherited from class eu.bandm.tools.paisley.Pattern
_left_matched, _target_save, none
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
Checks whether a variable is bound by this pattern.protected void
compileCut
(CompilationContext context, boolean recursively) protected void
compileMatch
(CompilationContext context) protected void
compileMatchAgain
(CompilationContext context) protected void
compileMatchNext
(CompilationContext context) protected void
compileMatchNext
(CompilationContext context, boolean again) void
cut
(boolean recursively) Disposes of all internal state related to nondeterminism.boolean
Checks whether this pattern is deterministic.boolean
Attempts to match this pattern against a given object.boolean
Attempts to re-match this pattern against a previously matched object.boolean
Checks whether a variable is preserved by this pattern, unconditionally.boolean
Checks whether a variable is preserved by this pattern, conditionally on success or failure.protected String
Methods inherited from class eu.bandm.tools.paisley.Binary
clear, clone, compileClear, getLeft, getRight, toString
Methods inherited from class eu.bandm.tools.paisley.Pattern
all, all, all, all, all, and, andThen, andThen, any, aside, both, clear, compile, compileClear, compileCut, compileIsDeterministic, compileSubPattern, compileThis, compileUpTo, cut, DEBUG, either, enPassant, flatten, limit, main, matchOnce, matchVar, narrow, newAll, noMatch, none, of, once, or, orElse, orElse, repeat, some, some, some, some, someMatch, startCompile, uniquely, variable, variable
-
Field Details
-
target_save
A target_save -
left_matched
boolean left_matched
-
-
Constructor Details
-
Either
-
-
Method Details
-
match
Description copied from class:Pattern
Attempts to match this pattern against a given object. If the class of this pattern imposes a specific order on matches, the first one is chosen. -
matchAgain
public boolean matchAgain()Description copied from class:Pattern
Attempts to re-match this pattern against a previously matched object. If the class of this pattern imposes a specific order on matches, they are chosen in that order, beginning with the second one. The behaviour of this method is unspecified if the last matching attempt of this pattern has not been successful.Patterns classes that do not override this method are deterministic. Pattern classes that overwrite this method to provide additional matches should also override
Pattern.isDeterministic()
.- Overrides:
matchAgain
in classPattern<A>
- Returns:
true
if the matching is successful,false
if it fails. WhichVariable
s are bound by a successful match depends. The default implementation always returnsfalse
.- See Also:
-
cut
public void cut(boolean recursively) Description copied from class:Pattern
Disposes of all internal state related to nondeterminism.The default implementation does nothing. Subclasses that override this method should also override
Pattern.clear(boolean)
and ensure that it implies the effect ofcut(false)
. -
binds
Description copied from class:Pattern
Checks whether a variable is bound by this pattern.The default implementation returns
false
. -
preserves
Description copied from class:Pattern
Checks whether a variable is preserved by this pattern, conditionally on success or failure.The default implementation returns
false
. -
preserves
Description copied from class:Pattern
Checks whether a variable is preserved by this pattern, unconditionally.The default implementation returns
false
. -
isDeterministic
public boolean isDeterministic()Description copied from class:Pattern
Checks whether this pattern is deterministic.The default implementation returns
true
.- Overrides:
isDeterministic
in classPattern<A>
- Returns:
true
if this pattern is guaranteed to match any object at most once,false
otherwise.- See Also:
-
compileCut
- Overrides:
compileCut
in classBinary<A,
A, A>
-
toStringOperator
- Overrides:
toStringOperator
in classBinary<A,
A, A>
-
compileMatch
- Overrides:
compileMatch
in classBinary<A,
A, A>
-
compileMatchNext
-
compileMatchAgain
- Overrides:
compileMatchAgain
in classBinary<A,
A, A>
-
compileMatchNext
-