We should be able to recode the parser loop as gotos, with zero stack/call usage, and only looking at each character once.