Parsers are one of those fields I wish I had the time to really study deeply. I'm especially impressed with LALRPOP.
Cribbed from a previous comment of mine:
From time to time I find myself revisiting this thread: "Writing parsers like it is 2017"[0].
In particular I love a Rust parser generator called LALRPOP and it's emphasis on diagnosing ambiguous grammars [1].
> What I’ve tried to do now in LALRPOP is to do that clever thinking for you, and instead present the error message in terms of your grammar. Perhaps even more importantly, I’ve also tried to identify common beginner problems and suggest solutions.
They work out a fairly deep example with error guidance in ambiguous grammars in that post.
Cribbed from a previous comment of mine:
From time to time I find myself revisiting this thread: "Writing parsers like it is 2017"[0].
In particular I love a Rust parser generator called LALRPOP and it's emphasis on diagnosing ambiguous grammars [1].
> What I’ve tried to do now in LALRPOP is to do that clever thinking for you, and instead present the error message in terms of your grammar. Perhaps even more importantly, I’ve also tried to identify common beginner problems and suggest solutions.
They work out a fairly deep example with error guidance in ambiguous grammars in that post.
[0]: https://news.ycombinator.com/item?id=15016061
[1]: http://smallcultfollowing.com/babysteps/blog/2016/03/02/nice...