Today I was trying write a parser for a reasonably complicated language. Since I do not tend to learn from other people's work or even from my own past mistakes, and tend to greatly underestimate the complexity of tasks (or overestimate my own skills) this went something like this: Try to quickly write the whole thing as a single recursive descent parser. Note the exploding amount of ugliness. Giv