Package eu.bandm.tools.paisley
Class Atomic<A>
java.lang.Object
eu.bandm.tools.paisley.Pattern<A>
eu.bandm.tools.paisley.Atomic<A>
- Type Parameters:
A- the target type
- All Implemented Interfaces:
Serializable,Cloneable
- Direct Known Subclasses:
Constraint
Abstract base class for patterns that contain no subpatterns.
Subclasses of this class must represent deterministic patterns that
affect no variable.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class eu.bandm.tools.paisley.Pattern
Pattern.Either<A> -
Field Summary
FieldsModifier and TypeFieldDescriptionA pattern that matches anything.Fields inherited from class eu.bandm.tools.paisley.Pattern
_left_matched, _target_save, none -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal booleanChecks whether a variable is bound by this pattern.clone()Return a reference that behaves like a copy of this pattern.protected final voidcompileClear(CompilationContext context) protected final voidcompileClear(CompilationContext context, boolean recursively) protected final voidcompileCut(CompilationContext context) protected final voidcompileCut(CompilationContext context, boolean recursively) protected final voidcompileMatchAgain(CompilationContext context) final booleanChecks whether this pattern is deterministic.final booleanAttempts to re-match this pattern against a previously matched object.final booleanChecks whether a variable is preserved by this pattern, unconditionally.final booleanChecks whether a variable is preserved by this pattern, conditionally on success or failure.Methods inherited from class eu.bandm.tools.paisley.Pattern
all, all, all, all, all, and, andThen, andThen, any, aside, both, clear, clear, compile, compileIsDeterministic, compileMatch, compileSubPattern, compileThis, compileUpTo, cut, cut, DEBUG, either, enPassant, flatten, limit, main, match, matchOnce, matchVar, narrow, newAll, noMatch, none, of, once, or, orElse, orElse, repeat, some, some, some, some, someMatch, startCompile, uniquely, variable, variable
-
Field Details
-
anyObject
A pattern that matches anything. This pattern may be shared and reused concurrently.
-
-
Constructor Details
-
Atomic
protected Atomic()Creates a new atomic pattern.
-
-
Method Details
-
matchAgain
public final boolean matchAgain()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:
matchAgainin classPattern<A>- Returns:
false- See Also:
-
binds
Checks whether a variable is bound by this pattern.The default implementation returns
false. -
preserves
Checks whether a variable is preserved by this pattern, conditionally on success or failure.The default implementation returns
false. -
preserves
Checks whether a variable is preserved by this pattern, unconditionally.The default implementation returns
false. -
isDeterministic
public final boolean isDeterministic()Checks whether this pattern is deterministic.The default implementation returns
true.- Overrides:
isDeterministicin classPattern<A>- Returns:
true- See Also:
-
clone
Return a reference that behaves like a copy of this pattern. This implementation asserts that no duplication is required, and always returnsthis. -
compileMatchAgain
- Overrides:
compileMatchAgainin classPattern<A>
-
compileCut
- Overrides:
compileCutin classPattern<A>
-
compileCut
- Overrides:
compileCutin classPattern<A>
-
compileClear
- Overrides:
compileClearin classPattern<A>
-
compileClear
- Overrides:
compileClearin classPattern<A>
-
anyObject
-