输入"_"上的解析错误

Rew*_*ert -1 parsing haskell

第7行,在_.我不知道可能是什么问题.有小费吗?

term :: Parser Expr
term s1 = case factor s1 of
            Just (a, s2) -> case s2 of
                              '*':s3 -> case term s3 of
                                          Just (b, s4) -> Just (Mul a b, s4)
                                          Nothing      -> Just (a, s2)
                                _ -> Just (a, s2)
            Nothing      -> Nothing
Run Code Online (Sandbox Code Playgroud)

我正在尝试将字符串解析为Expr(自制数据类型).我认为这是我们应该怎么做但我无法测试它,因为我无法正确编译它.GHCI和Ghc墙给了我同样的错误.在该特定点解析错误.

我的代码比这大,但这是相关的代码片段.

编辑:代码贴在这里,抱歉.

ДМИ*_*КОВ 5

这是一个语法问题.Haskell使用二维语法,因此case语句的每个部分都应该具有相同的缩进.

因此,要修复错误移动第7行,剩下两个字符

term :: Parser Expr
term s1 = case factor s1 of
            Just (a, s2) -> case s2 of
                              '*':s3 -> case term s3 of
                                          Just (b, s4) -> Just (Mul a b, s4)
                                          Nothing      -> Just (a, s2)
                              _ -> Just (a, s2)
            Nothing      -> Nothing
Run Code Online (Sandbox Code Playgroud)