[Haskell-cafe] Parsing in Practice
Tom Hawkins
tom at confluent.org
Tue Oct 18 11:24:43 EDT 2005
I am writing a parser for a big, ugly, standard language and I need to
decide between using either Happy or Parsec.
I currently have a priliminary LALR(1) grammar, so a port to Happy would
be relatively easy. But, I'm wondering if life would be easier if I
chose Parsec's combinator parsing instead. It's error reporting seems
to be top notch and it's "optional", "many", and "sepBy1" combinators
are very elegant.
However, I have a few concerns with Parsec. First is performance; what
factor of slow-down should I expect? Second is bug prevention. I don't
have much experience writing LL(n) grammars, so how easy is it to
introduce bugs in a Parsec grammar? Even though I hate debugging
LALR(1) parsing ambiguities, it prevents problems.
Also, it appears the GHC developers chose Happy for Haskell. What was
their rational?
Thanks for your recommendations, one way or another.
-Tom
More information about the Haskell-Cafe
mailing list