2014-10-22 67 views
-1

第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 

我想解析一個字符串到Expr(自制數據類型)。我認爲這是我們應該這樣做的,但我無法測試它,因爲我無法正確編譯它。 GHCI和Ghc牆給我同樣的錯誤。解析該特定點處的錯誤。

我的代碼比這個大,但是這是一段代碼。

編輯:代碼發佈在這裏,對不起。

+0

在這裏粘貼代碼。 – 2014-10-22 11:33:27

回答

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 
+0

啊,我仍然得到同樣的錯誤。儘管_字母現在位於第31個字符處,但它仍然表示解析錯誤在第32位。 – Rewbert 2014-10-22 11:55:56

+0

其實,它確實解決了我的問題嘿,我有一個幾乎相同的代碼低於我編輯錯誤,而不是這一個。謝謝! – Rewbert 2014-10-22 13:43:29