Visitor for AST nodes.
Traverses the given AST node and its descendants depth-first order and calls the protected visit method for each node.