1. A method for generating tools, comprising: storing at least one Yet Another Transformation Language (YATL) program to transform a plurality of abstract syntax trees (ASTs) on a storage medium, the ASTs corresponding to target source code; compiling the YATL program to produce at least one transformation program; and executing the transformation program with the ASTs as input to produce a plurality of transformed ASTs; wherein the YATL program includes a tree traversal routine having access to a target symbol table, the target symbol table holding a plurality of symbols from the target source code, each symbol being associated with a unique scope identifier.