TreeMutator is similar to
TreeWalker TreeWalker in that it
traverses a parse tree in canonocal order, and only a few visit methods
should be overridden. The key difference is that visit methods must
return a node of the same type as the one passed in. By returning a node
which isn't the same as the one passed in, a node can be replaced.
author: Brian S O'Neill version: 20 , 5/31/01