Ошибка разбора на входе «<-» внутри блока do? - PullRequest
3 голосов
/ 05 мая 2011

Я пытаюсь выполнить синтаксический анализ в Haskell, используя Parsec.В моем коде есть несколько анализаторов, но я получаю сообщение об ошибке:

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

Ошибка: parse error on input '<-, строка a <- alternate.

Может кто-нибудь объяснить, почему я получаю эту ошибку и как ее исправить?

Заранее спасибо.

1 Ответ

4 голосов
/ 05 мая 2011

Вы положили парены в неправильном месте?

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