diff -r ffa851df0825 -r 2fb8b9db1c86 symbian-qemu-0.9.1-12/python-2.6.1/Tools/compiler/demo.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/symbian-qemu-0.9.1-12/python-2.6.1/Tools/compiler/demo.py Fri Jul 31 15:01:17 2009 +0100 @@ -0,0 +1,38 @@ +#! /usr/bin/env python + +"""Print names of all methods defined in module + +This script demonstrates use of the visitor interface of the compiler +package. +""" + +import compiler + +class MethodFinder: + """Print the names of all the methods + + Each visit method takes two arguments, the node and its current + scope. The scope is the name of the current class or None. + """ + + def visitClass(self, node, scope=None): + self.visit(node.code, node.name) + + def visitFunction(self, node, scope=None): + if scope is not None: + print "%s.%s" % (scope, node.name) + self.visit(node.code, None) + +def main(files): + mf = MethodFinder() + for file in files: + f = open(file) + buf = f.read() + f.close() + ast = compiler.parse(buf) + compiler.walk(ast, mf) + +if __name__ == "__main__": + import sys + + main(sys.argv[1:])