[Haskell-cafe] Re: Parsec : Problems with operator precedence (solution)

Erik de Castro Lopo mle+cl at mega-nerd.com
Fri Jan 2 22:14:40 EST 2009


Benedikt Huber wrote:

> There is an easy, better solution, modifying the lexer:
> 
>  > lexer = makeTokenParser $ emptyDef
>  >           { L.reservedOpNames = words "&& || & | ^" }
>  > reservedOp = P.reservedOp lexer
>  > identifier = P.identifier lexer
>  > ...
> 
> I'd try to avoid 'try', if possible.

Hi Benedikt,

I did try that (reservedOpNames as a list of operators as strings)
but that interferred rather badly with another part of the parser
which handles raw inline XML like this (yes, utterly horrid):

     var xdata = <xml>sucks</xml> ;

Because I had the XML parsing working when I hit the operator precedence
problem I worked towards a solution that didn't break the XML rather
than do the right thing to fix the operator precedence and then have to
fix the XML part.

Erik
-- 
-----------------------------------------------------------------
Erik de Castro Lopo
-----------------------------------------------------------------
"how am I expected to quit smoking if I have to deal with NT
every day" -- Ben Raia


More information about the Haskell-Cafe mailing list