XT

Stratego -- Strategies for Program Transformation
The StrategoLanguage offers a high-level language for specifying transformations of programs represented as first-order terms. XT is a distribution of tools for building complete transformation systems from Stratego components.

http://www.program-transformation.org/xt