【问题标题】:Parse Error on Input '<-' inside a do block?在do块内输入'<-'解析错误?
【发布时间】:2011-08-18 23:57:23
【问题描述】:

我正在尝试使用 Parsec 在 Haskell 中进行一些解析。我的代码中有许多解析器,但其中一个出现错误:

expression2 =
    do (operator lexer "|"
        a <- alternate
        as <- expression2
        return $ a:as
  ) <|> return []

错误是parse error on input '&lt;-,位于a &lt;- alternate 行。

谁能解释我为什么会收到这个错误,以及如何解决它?

提前致谢。

【问题讨论】:

    标签: haskell parsec parse-error


    【解决方案1】:

    你把括号放错地方了吗?

    expression2 =
       (do  operator lexer "|"
            a <- alternate
            as <- expression2
            return $ a:as) <|> return []
    

    【讨论】:

    • 是的,我做到了;谢谢。最后一个没问题,但我需要把第一个放在do之前。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-18
    相关资源
    最近更新 更多