File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ #! /usr/bin/env python
2+
3+ """Print names of all methods defined in module
4+
5+ This script demonstrates use of the visitor interface of the compiler
6+ package.
7+ """
8+
9+ import compiler
10+
11+ class MethodFinder :
12+ """Print the names of all the methods
13+
14+ Each visit method takes two arguments, the node and its current
15+ scope. The scope is the name of the current class or None.
16+ """
17+
18+ def visitClass (self , node , scope = None ):
19+ self .visit (node .code , node .name )
20+
21+ def visitFunction (self , node , scope = None ):
22+ if scope is not None :
23+ print "%s.%s" % (scope , node .name )
24+ self .visit (node .code , None )
25+
26+ def main (files ):
27+ mf = MethodFinder ()
28+ for file in files :
29+ f = open (file )
30+ buf = f .read ()
31+ f .close ()
32+ ast = compiler .parse (buf )
33+ compiler .walk (ast , mf )
34+
35+ if __name__ == "__main__" :
36+ import sys
37+
38+ main (sys .argv [1 :])
You can’t perform that action at this time.
0 commit comments