"Visitor" pattern [GoF95] abstract superclass implementation for document tree traversals.
Each node class has corresponding methods, doing nothing by default; override individual methods for specific and useful behaviour. The dispatch_visit() method is called by Node.walk() upon entering a node. Node.walkabout() also calls the dispatch_departure() method before exiting a node.
The dispatch methods call "visit_ + node class name" or "depart_ + node class name", resp.
This is a base class for visitors whose visit_... & depart_... methods should be implemented for all node types encountered (such as for docutils.writers.Writer subclasses). Unimplemented methods will raise exceptions.
For sparse traversals, where only certain node types are of interest, subclass SparseNodeVisitor instead. When (mostly or entirely) uniform processing is desired, subclass GenericNodeVisitor.
[GoF95] | Gamma, Helm, Johnson, Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading, MA, USA, 1995. |
There are no base classes.
There are no implemented interfaces.
optional
(type:
tuple
)
()
dispatch_departure(node)
Call self."depart_ + node class name" with node as parameter. If the depart_... method does not exist, call self.unknown_departure.
dispatch_visit(node)
Call self."visit_ + node class name" with node as parameter. If the visit_... method does not exist, call self.unknown_visit.
unknown_departure(node)
Called before exiting unknown Node types.
Raise exception unless overridden.
unknown_visit(node)
Called when entering unknown Node types.
Raise an exception unless overridden.