[Haskell-cafe] Re: Proving my point

Philippa Cowderoy flippa at flippac.org
Fri May 16 17:46:38 EDT 2008


On Fri, 16 May 2008, Achim Schneider wrote:

> My problem is that realTopLevel = expr, and that I get into an infinite
> recursion, never "closing" enough parens, never hitting eof.

Have you run into the left-recursion trap, by any chance?

This doesn't work:

expr = do expr; ...

You can cover common cases with combinators like many* and chain* though.

> Btw: Is there any way to make Parsec return a tree of things it tried?
> The end-user error messages are quite often just not informative enough
> while debugging the parser itself.
> 

If you're willing to accept a little pain, you can write a few helper 
functions akin to <?> that keep a log in Parsec's state and extract it 
from there.

-- 
flippa at flippac.org

Society does not owe people jobs.
Society owes it to itself to find people jobs.


More information about the Haskell-Cafe mailing list