Strategy Definition
Stratego -- Strategies for Program Transformation
A
strategy definition
f(x1,...,xn) = s
defines a strategy operator
f with
n strategy parameters. An application
f(s1,...sn) of this
operator is equivalent to
let x1 = s1 ... xn = sn in s
that is, binding the actual strategy parameters
si to the formal parameters
xi.
Strategy definitions may be recursive.
The
RecursionOperator rec can be used to create recursive strategy locally without need
to give a name.
rec x(s)
is equivalent to
let x = s in x end
Typical examples of strategy definitions are
try(s) = s <+ id
repeat(s) = try(s; repeat(s))
topdown(s) = s; all(topdown(s))