Every parser combinator library: using parser combinators makes parsers that are much easier to understand!
Inevitably, every time: *produces completely fucking incomprehensible parsers when applied to real languages*
Every parser combinator library: using parser combinators makes parsers that are much easier to understand!
Inevitably, every time: *produces completely fucking incomprehensible parsers when applied to real languages*
@danderson And they may silently be ambiguous even for totally unambiguous grammars.
@danderson Recursive descent, on the other hand...
@danderson And to make one that is usable, performs well, and produces good diagnostics? Challenge level: impossible.
But I still enjoy them as a tool for thinking about grammars.
@creachadair The initial attraction of this one was that it takes care of figuring out spans properly, and the builtin combinators allegedly produce good enough errors (with some annotation help) that it can do one of those fancy compiler errors with asciii art.
But at what cost...