bust this file up into several. Its *way* too big to deal with. create common funcs for repeated "types" of parsers. i.e. a common func for handling guid, gnc_numeric, etc. parsers - just pass in string->data and data->string funcs. change sixtp_child_result to sixtp_result? add generic accumulate chars node constructor - takes end_handler as argument - same as for timespec parser... document that right now parsing is *extremely* anal - no whitespace surrounding data. need to add a way to propagate error data upward... do we need a way to pass an object up through the tree along with its lower level destructor? CHECK TO SEE IF WE ALWAYS DTRT IN THE END TAG HANDLER - IE DO WE CLEANUP PROPERLY SINCE AT THAT POINT THE FRAME CLEANUP HANDLER WILL **NOT** BE CALLED. CHECK TO SEE THAT WE'RE SETTING SHOULD CLEANUP TO FALSE EVERYWHERE WE SHOULD (i.e. when we use the result)! DAMN, why didn't I think of this before. I should have added a parent "after-child" hook. I think that might have greatly simplified some of the nodes... Do we also want "before/after" chars handlers?