Tom
Tom 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.
URL: http://tom.loria.fr/