Я работаю над большой программой на Haskell, поэтому я включаю только тот код, который кажется здесь уместным, чтобы прояснить проблему. Пожалуйста, прокомментируйте, если я должен включить больше.
Когда я компилирую, я получаю только одно сообщение об ошибке: «Ошибка синтаксического анализа (возможно, неправильный отступ или несоответствие скобок)»
Вот код без ошибок (printStmt) и очень похожий участок (VarDeclStmt) с ошибкой, направленной на чтение строки "expr >>= \s ->". Я не понимаю, почему один будет в порядке, а другой вызовет проблемы. Чем они отличаются?
printStmt =
keyword "print" >>
expr >>= \e ->
symbol ";" >>
return (Print e)
varDeclStmt = do
keyword "var" >>
expr >>= \s -> --ERROR
symbol "=" >>
expr >>= \e ->
return (VarDecl s e)