[Haskell-cafe] Re: Propagating Parsec errors
Tomasz Zielonka
tomasz.zielonka at gmail.com
Sun Dec 5 17:31:08 EST 2004
On Sun, Dec 05, 2004 at 07:36:07PM +0100, Peter Simons wrote:
> Mark Carroll writes:
>
> > Is there a way in Parsec to, within a parser, throw an
> > error generated by another parser?
>
> How about wrapping the ParseError into your result type?
> Like this:
>
> data Foo = Bar String | ... | BadLuck ParseError
>
> Then you could run any number of parsers (with 'runParser')
> inside another parser and return their results and errors
> without needing any special support from the Parsec library.
But it will work against our intentions. For example, if you have
try p1 <|> p2
and p1 returns (BadLuck err), than p2 won't be tried. p1 should *fail* with
err.
I feel that the amount of work to support this feature in Parsec is minimal.
If I find some time tomorrow _and_ I find a way to experiment with Parsec's
fptools repository, I will try to implement it.
Best regards,
Tomasz
More information about the Haskell-Cafe
mailing list