annotate Tools/compiler/demo.py @ 54294:dba767bc3155 legacy-trunk

remove mention of old ctypes version
author Benjamin Peterson <benjamin@python.org>
date Sat, 23 May 2009 20:59:09 +0000
parents c3a096bfbd6b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
13712
00030eb88131 This script demonstrates use of the visitor interface of the compiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
1 #! /usr/bin/env python
00030eb88131 This script demonstrates use of the visitor interface of the compiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
2
00030eb88131 This script demonstrates use of the visitor interface of the compiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
3 """Print names of all methods defined in module
00030eb88131 This script demonstrates use of the visitor interface of the compiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
4
00030eb88131 This script demonstrates use of the visitor interface of the compiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
5 This script demonstrates use of the visitor interface of the compiler
00030eb88131 This script demonstrates use of the visitor interface of the compiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
6 package.
00030eb88131 This script demonstrates use of the visitor interface of the compiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
7 """
00030eb88131 This script demonstrates use of the visitor interface of the compiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
8
00030eb88131 This script demonstrates use of the visitor interface of the compiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
9 import compiler
00030eb88131 This script demonstrates use of the visitor interface of the compiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
10
00030eb88131 This script demonstrates use of the visitor interface of the compiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
11 class MethodFinder:
00030eb88131 This script demonstrates use of the visitor interface of the compiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
12 """Print the names of all the methods
00030eb88131 This script demonstrates use of the visitor interface of the compiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
13
00030eb88131 This script demonstrates use of the visitor interface of the compiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
14 Each visit method takes two arguments, the node and its current
00030eb88131 This script demonstrates use of the visitor interface of the compiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
15 scope. The scope is the name of the current class or None.
00030eb88131 This script demonstrates use of the visitor interface of the compiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
16 """
32736
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 13712
diff changeset
17
13712
00030eb88131 This script demonstrates use of the visitor interface of the compiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
18 def visitClass(self, node, scope=None):
00030eb88131 This script demonstrates use of the visitor interface of the compiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
19 self.visit(node.code, node.name)
00030eb88131 This script demonstrates use of the visitor interface of the compiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
20
00030eb88131 This script demonstrates use of the visitor interface of the compiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
21 def visitFunction(self, node, scope=None):
00030eb88131 This script demonstrates use of the visitor interface of the compiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
22 if scope is not None:
00030eb88131 This script demonstrates use of the visitor interface of the compiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
23 print "%s.%s" % (scope, node.name)
00030eb88131 This script demonstrates use of the visitor interface of the compiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
24 self.visit(node.code, None)
32736
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 13712
diff changeset
25
13712
00030eb88131 This script demonstrates use of the visitor interface of the compiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
26 def main(files):
00030eb88131 This script demonstrates use of the visitor interface of the compiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
27 mf = MethodFinder()
00030eb88131 This script demonstrates use of the visitor interface of the compiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
28 for file in files:
00030eb88131 This script demonstrates use of the visitor interface of the compiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
29 f = open(file)
00030eb88131 This script demonstrates use of the visitor interface of the compiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
30 buf = f.read()
00030eb88131 This script demonstrates use of the visitor interface of the compiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
31 f.close()
00030eb88131 This script demonstrates use of the visitor interface of the compiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
32 ast = compiler.parse(buf)
00030eb88131 This script demonstrates use of the visitor interface of the compiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
33 compiler.walk(ast, mf)
00030eb88131 This script demonstrates use of the visitor interface of the compiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
34
00030eb88131 This script demonstrates use of the visitor interface of the compiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
35 if __name__ == "__main__":
00030eb88131 This script demonstrates use of the visitor interface of the compiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
36 import sys
32736
c3a096bfbd6b Whitespace normalization, via reindent.py.
Tim Peters <tim.peters@gmail.com>
parents: 13712
diff changeset
37
13712
00030eb88131 This script demonstrates use of the visitor interface of the compiler
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
diff changeset
38 main(sys.argv[1:])