Tom
Tom (http://tom.loria.fr) is a pattern matching compiler.
It is particularly well-suited for programming transformations on trees/terms or XML documents. Tom can be used to develop transformation tools such as compilers: The Tom compiler is written in Tom itself.