As for the other +
with the first argument specifying a name for
the constructed strategy.
As for the other +
with the first argument specifying a name for
the constructed strategy.
Non-deterministic choice.
Non-deterministic choice. Normally, construct a strategy that
first applies either this strategy or the given strategy. If it
succeeds, succeed with the resulting term. Otherwise, apply q
.
Currently implemented as deterministic choice, but this behaviour
should not be relied upon.
When used as the argument to the <
conditional choice
combinator, +
just serves to hold the two strategies that are
chosen between by the conditional choice.
q
is evaluated at most once.
As for the other <
with the first argument specifying a name for
the constructed strategy.
As for the other <
with the first argument specifying a name for
the constructed strategy.
Conditional choice: c < l + r
.
Conditional choice: c < l + r
. Construct a strategy that first
applies this strategy (c
). If c
succeeds, the strategy applies
l
to the resulting term, otherwise it applies r
to the original
subject term. lr
is evaluated at most once.
As for the other <*
with the first argument specifying a name for
the constructed strategy.
As for the other <*
with the first argument specifying a name for
the constructed strategy.
Sequential composition.
Sequential composition. Construct a strategy that first applies
this strategy. If it succeeds, then apply q
to the new subject
term. Otherwise fail. q
is evaluated at most once.
As for the other <+
with the first argument specifying a name for
the constructed strategy.
As for the other <+
with the first argument specifying a name for
the constructed strategy.
Deterministic choice.
Deterministic choice. Construct a strategy that first applies
this strategy. If it succeeds, succeed with the resulting term.
Otherwise, apply q
to the original subject term. q
is
evaluated at most once.
Apply this strategy to a term.
Apply this strategy to a term. By default, just run the implementation body wrapped in profiling.
Implementation of this strategy.
Implementation of this strategy. Just apply s
.
The left alternative of the choice.
Make one of these strategies with the given name and body f
.
Make one of these strategies with the given name and body f
.
The right alternative of the choice.
Identify this strategy by its name.
Identify this strategy by its name.
Helper class to contain commonality of choice in non-deterministic choice operator and then-else part of a conditional choice. Only returned by the non-deterministic choice operator. The first argument specifies a name for the constructed strategy.
p
andq
are evaluated at most once.