CAB, Im sorry to have to say this to you, but it appears that you have a Tree recusion procedure. Meaning that your data (each peice of information) is filtered thru a series of conditions/process and built into a final result. This is a very complex recursion concept usualy used in encoding. (Congratulations!
) I drew a picture of whats going on: (I hope it turns out in this post ...Nope, it looks like crap. So cut and paste this into notepad or a text editor to see it.)
@@@@@ ;; Procedure start
( ~ ) ;; Loop
?? ;; Conditional
/\ ;; ...
Y N ;; Enter switch
| | ;; YES Switch - Enter another contitional
?? | ;; NO Switch - Enter normal process
/\ | ;;
Y N | ;; YES Switch (YS) - Enter switch
| | | ;;
X | | ;; (YS) YES Switch - Process based on recursion
@ @ | ;; (YS) NO Switch - Recurse
| ;;
X ;; NO Switch - Continue loop/proceses
(/~/) ;; End loop
= ;; Return result
No but seriously, your procedure is amazing. You should be happy. However just so you know that the method you are using in this takes is extreamly in-efficient. (It gobbles up stack memory like there's no tomorow.)
But anyways i hope my lil picture halped out a bit. If not, just forget it and know that im sorry.