I was so happy when I finally grokked LR parsers: it's just a big state machine! _if_ that token found, push on stack, go to _that_ other state. Consume token, check the next state transition.<p>But while fun it was pretty much useless because recursive descents and combinators are so much easier.