Contains the standard visitor which provide type checking as well as output. The visitor specification is defined in {@link polyglot.visit.NodeVisitor polyglot.visit.NodeVisitor}. {@link polyglot.visit.HaltingVisitor HaltingVisitor} provides a method to prune the visitor traversal. {@link polyglot.visit.ContextVisitor ContextVisitor} contains code to automatically enter and leave scopes and to manage error messages. Most other visitors are subclasses of this class. {@link polyglot.visit.PrettyPrinter PrettyPrinter} is not a visitor (the package name is a misnomer for historical reasons). It contains methods for pretty printing the AST. The code generator is implemented by the {@link polyglot.visit.Translator Translator} translator class, which is {@link polyglot.visit.PrettyPrinter PrettyPrinter} that opens appropriate Java output files.