Pratt Parsers: Expression Parsing Made Easy (2011)
journal.stuffwithstuff.com
journal.stuffwithstuff.com
https://news.ycombinator.com/item?id=16398830 - 88 points by signa11 on Feb 17, 2018 (12 comments)
https://news.ycombinator.com/item?id=2344837 - 89 points by jashkenas on March 19, 2011 (20 comments)
The alternative is to lay out your BNF grammar fully, directly encoding precedence and associativity, and then map that to functions to implement. This can be done, but is more of a pain to maintain, and has no real benefit other than more closely matching automata theory.
<anecdote alert> A thousand years ago I was reading the legendary SmallC (for Z80) sources and was surprised to find it didn't use this technique (which IIRC is described in the Dragon Book). I rewrote it and it worked (both less source and object code, and faster too).
My point: it might not be as well known as simple recursive descend. That said, it's essentially limited to expression parsing. </anecdote alert>