I was reading a lot about Haskell Parser Combinators and found a lot of topics like:
- Parsec vs Yacc/Bison/Antlr: Why and when to use Parsec?
- Which Haskell parsing technology is most pleasant to use, and why?
- Parsec or happy (with alex) or uu-parsinglib
- Choosing a Haskell parser
- What is the advantage of using a parser generator like happy as opposed to using parser combinators?
But all these topics compare Parser Combinators
with Parser Generators
.
I want to ask you which of Parser Combinator
suits best the following conditions:
- I want to have good control about the errors (including error recovery) and messages for user
- I want to be able to fed the parser with small parts of text (not whole file at once)
- I want to be able to redesign nicely the grammar (I'm currently developing the grammar, so "nice waf of working" is important"
- The final parser should be fast (the performance is important, but not as much as points 1-3).
I've found out, that the most popular parser combinators are: