I've been getting to grips with making parse trees in delphi, and getting used to recursive functions. Recursive functions seem like some sort of black magic to me. I mean this to put out a parse tree in order..
// PRE: True
// POST: Prints parse tree to screen
IF NOT (RecTree.Q_Empty(Tree)) THEN
And not a for loop in sight.