Code generator and visitor pattern

Ian Hobson ian.hobson at ntlworld.com
Thu Jul 15 16:55:35 EDT 2010


On 15/07/2010 18:58, Karsten Wutzke wrote:
> Hello,
>
> this is obviously a Python OO question:
>
> Since Python isn't stringly typed, single-dispatch isn't available per
> se. So is the "double-dispatch" Visitor pattern, which is usually used
> in OO systems to implement code generators. So, what is the de facto
> method in Python to handle source code generation?
>
> Karsten
>    
I'm baffled. Not by what you mean by stringly, but....

What feature of Python stops you writing the three parts of the visitor 
pattern:

IIRC you need:

A tree walker that creates the visitor and walks the tree calling
     node.visitFrom(visitor)
on each one in the required order.

The  visitfrom(aVisitor) routines in each node type that calls
     aVisitor.visitedMyNodeType(self)
where MyNodeType is, naturally different for each node type!

All the
    def visitedNodeType(aNode):  routines in visitor to generate the code.

Simples! No? :)

Ian







More information about the Python-list mailing list