[Haskell-cafe] Parsing, infixes and on-the-fly precedence
Chris Wong
lambda.fairy at gmail.com
Mon Sep 28 07:58:50 UTC 2015
Hi Jeffrey,
On Mon, Sep 28, 2015 at 8:28 PM, Jeffrey Brown <jeffbrown.the at gmail.com> wrote:
> I imagine a parser that operates on (String,[String]) pairs, for which the
> second element allows the user to define precedence on the fly.
>
> For instance, it would read the pair
> (x,y) = ("a , b : c", [":" , ","])
> as
> "(a , (b : c))"
> because y informs the parser that in x the colon binds first, then the
> comma.
>
> I know it is possible, because Haskell does it already! In Haskell we can
> define novel infix operators on the fly, including their precedence relative
> to each other.
>
> I don't know how, though, so that's my question.
You might like to look at Text.Parsec.Token[1], which does exactly
what you describe.
[1] https://hackage.haskell.org/package/parsec-3.1.9/docs/Text-Parsec-Expr.html
> --
> Jeffrey Benjamin Brown
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>
--
Chris Wong (https://lambda.xyz)
"I fear that Haskell is doomed to succeed."
-- Tony Hoare
More information about the Haskell-Cafe
mailing list