diff --git a/Tools/compiler/demo.py b/Tools/compiler/demo.py
new file mode 100755
index 0000000..e9ada5a
--- /dev/null
+++ b/Tools/compiler/demo.py
@@ -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:])
