dead-var-elim
component of the Stratego optimizer eliminates variables from a strategy expression if they are not used in a build.
For example, in the expression
{ x, y, z : ?F(x, y) ; !y ; ?G(z) ; !H(z, z) }the variable
z
is used in the final build (not dead), and y
is used in the build needed for the match with G
(not dead).
However, x
is dead since it does not contribute to the final result.
Dead variable elimination removes dead variables by
Thus, the example reduces to
{ y, z : ?F(_, y) ; !y ; ?G(z) ; !H(z, z) }Variable only matches (
?x
) with dead variables are turned into wildcard matches (?_
) and can
be cleaned up by a subsequent simplification.
-- EelcoVisser - 17 Aug 2003