By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
455,539 Members | 1,289 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 455,539 IT Pros & Developers. It's quick & easy.

compiler.walk() what am I missing?

P: n/a
Here's a trivial little Python session which attempts to use compiler.walk
(mostly unsuccessfully):

% python
Python 2.4.2 (#1, Feb 23 2006, 12:48:31)
[GCC 3.4.1] on sunos5
Type "help", "copyright", "credits" or "license" for more information.
>>import compiler
ast = compiler.parse(open("a.py").read())
ast
Module(None, Stmt([Assign([AssName('RED', 'OP_ASSIGN')], Const('red')), Assign([AssName('BLUE', 'OP_ASSIGN')], Const('blue'))]))
>>compiler.walk(ast, compiler.visitor.ExampleASTVisitor, verbose=10)
<class compiler.visitor.ExampleASTVisitor at 0x831ce3c>
compiler.walk(ast, compiler.visitor.ExampleASTVisitor(), verbose=10)
<compiler.visitor.ExampleASTVisitor instance at 0x81f0eac>

I did manage to get a verbose print the first time I executed this:
>>compiler.walk(ast, compiler.visitor.ExampleASTVisitor(), walker=compiler.visitor.ExampleASTVisitor(), verbose=10)
which emitted nice verbose stuff like

dispatch Module

<compiler.visitor.ExampleASTVisitor instance at 0x835074c>
compiler.ast.Module
asList <bound method Module.asList of Module(None, Stmt([Assign([AssName('RED', 'OP_ASSIGN')], Const('red')), Assign([AssName('BLUE', 'OP_ASSIGN')], Const('blue'))]))>
doc None
getChildNode <bound method Module.getChildNodes of Module(None, Stmt([Assign([AssName('RED', 'OP_ASSIGN')], Const('red')), Assign([AssName('BLUE', 'OP_ASSIGN')], Const('blue'))]))>
getChildren <bound method Module.getChildren of Module(None, Stmt([Assign([AssName('RED', 'OP_ASSIGN')], Const('red')), Assign([AssName('BLUE', 'OP_ASSIGN')], Const('blue'))]))>
lineno None
...

but successive calls just yielded the more electron-conserving:

dispatch Module
dispatch Stmt
dispatch Assign
dispatch AssName
dispatch Const
dispatch Assign
dispatch AssName
dispatch Const

What am I doing wrong?

Thanks,

Skip
Jul 11 '06 #1
Share this question for a faster answer!
Share on Google+

This discussion thread is closed

Replies have been disabled for this discussion.