This directory contains support tools for the Python compiler package,
which is now part of the standard library.

compile.py	Demo that compiles a Python module into a .pyc file
		using the pure-Python compiler code.

demo.py		Prints the names of all the methods defined in a module,
		as a demonstration of walking through the abstract syntax
		tree produced by the parser.

dumppyc.py	Dumps the contents of a .pyc file, printing 
		the attributes of the code object followed by a 
		code disassembly.

regrtest.py	Runs the Python test suite using bytecode generated 
		by the pure-Python compiler code instead of the
		builtin compiler.

