Great article and given the context of the code this is a brilliant solution, but note that this assumes that the data is well-formed. Much of the value in an effective, battled-worn parser is efficient error checking and recovery.
(Not quite interesting enough for me to do it myself though ;-)