These files are from the large example of using the `parser' module.  Refer
to the Python Library Reference for more information.

It also contains examples for the AST parser.

Files:
------

	FILES	     -- list of files associated with the parser module.

	README	     -- this file.

	example.py   --	module that uses the `parser' module to extract
			information from the parse tree of Python source
			code.

	docstring.py -- sample source file containing only a module docstring.

	simple.py    -- sample source containing a "short form" definition.

	source.py    --	sample source code used to demonstrate ability to
			handle nested constructs easily using the functions
			and classes in example.py.

	test_parser.py  program to put the parser module through its paces.

	unparse.py	AST (2.5) based example to recreate source code
			from an AST. This is incomplete; contributions
			are welcome.

Enjoy!
