[FRPythoneers] Lumberjack: Design

Sean Reifschneider jafo at tummy.com
Sat May 6 17:01:00 MDT 2000


Ok, here's our first cut at the design.  CVS has the ends of our
sample markup and other stuff that's been worked on.  We're just
starting review of the design.

Sean
===================
$Revision: 1.1 $

Controlling program
	Process command-line arguments
	Manges the running other parts.

Docstringifier
	Given a name, return it's doc strings.
		Heirarchical list based on the target's structure.
			Module, name, __doc__
				Function, name, __doc__
				[...]
				Class, name, __doc__
					Class, name, __doc__
						[...]
					Function, name, __doc__
					[...]
				[...]

DocString Parser
	Given a __doc__ string, structure it.
		Process into lines.
		Initial text is part of an implicit @description tag.
		Deal with indentation.
			First line of text indicates initial base indentation.
			Further @tags must occur at that indentation.
			If the line following an @tag does not start with an @, it's
					indentation indicates that tags sub-paragraphs base
					indentation.
		Paragraphs are separated by blank lines.
		No empty paragraphs may exist.
		Results:
			Ordered list of tags and their paragraphs.
			tag='description'
				paragraph: indent=0, [ list of lines ]
				paragraph: indent=1, [ list of lines ]
				paragraph: indent=0, [ list of lines ]
			tag='example'
				paragraph: indent=0, [ list of lines ]
			tag='param'
				paragraph: indent=0, [ list of lines ]
	Given a structured document above, process tags into a final structure.

Output generators:
	Given a final structure above, turn it into the final output
		Text?
		HTML?
		DocBook?
-- 
 Microsoft treats objects like women, man...
                 -- Kevin Fenzi, paraphrasing the Dude, 1998
Sean Reifschneider, Inimitably Superfluous <jafo at tummy.com>
URL: <http://www.tummy.com/xvscan> HP-UX/Linux/FreeBSD/BSDOS scanning software.




More information about the FRPythoneers mailing list