
Hi Jeffrey,
On Mon, Sep 28, 2015 at 8:28 PM, Jeffrey Brown
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@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