GeneralizingAstVisitor
This visitor mapped the enterXXX methods to the visit() to provide an interface which is closer to the original pattern. Furthermore, a not overridden visit() implementation calls the visit() method for the next type in the class hierarchy to allow using code to handle certain AST parts in a generalized way on any part of the class hierarchy.