I'm trying this again! The comment for Megaparsec.makeExprParser refers to "parens". When I grep for "parens" in Megaparsec I get only two occurences, both of them in comments:./Lexer.hs:-- > parens = between (symbol "(") (symbol ")")./Expr.hs:-- > term = parens expr <|> integer <?> "term"If I try defining parens as in the comment from Lexer.hs, I get these errors:<interactive>:37:33:Couldn't match type ‘Char’ with ‘()’Expected type: [()]Actual type: [Char]In the first argument of ‘symbol’, namely ‘"("’In the first argument of ‘between’, namely ‘(symbol "(")’In the expression: between (symbol "(") (symbol ")")<interactive>:37:46:Couldn't match type ‘Char’ with ‘()’Expected type: [()]Actual type: [Char]In the first argument of ‘symbol’, namely ‘")"’In the second argument of ‘between’, namely ‘(symbol ")")’In the expression: between (symbol "(") (symbol ")")On Mon, Feb 29, 2016 at 2:05 AM, Özgür Akgün <ozgurakgun@gmail.com> wrote:______________________________On 29 February 2016 at 08:22, Stephen Tetley <stephen.tetley@gmail.com> wrote:
For the expression parser, Megaparsec's documentation is wrong[*] and
probably it should use symbol rather than reservedOp. Note that symbol
is slightly different in Megaparsec as it's a plain combinator (rather
than one instantiated from a first class module as in Parsec) so it
takes two args rather than one.
[*] Well, likely wrong - I haven't got round to using Megaparsec yet.
You are right: https://github.com/mrkkrp/megaparsec/commit/750adb7c7 0392c3195eda12d816f4a1a2305321 e --Özgür Akgün_________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-caf e
--