I was reading a lot about Haskell Parser Combinators and found a lot of topics like:

But all these topics compare Parser Combinators with Parser Generators.

I want to ask you which of Parser Combinator suits best the following conditions:

  1. I want to have good control about the errors (including error recovery) and messages for user
  2. I want to be able to fed the parser with small parts of text (not whole file at once)
  3. I want to be able to redesign nicely the grammar (I'm currently developing the grammar, so "nice waf of working" is important"
  4. 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:

Edit
Report