第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墙给了我同样的错误.在该特定点解析错误.
我的代码比这大,但这是相关的代码片段.
编辑:代码贴在这里,抱歉.
这是一个语法问题.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)