簡體   English   中英

解析Happy Haskell時顯示自定義錯誤

[英]Show custom errors while parsing Happy Haskell

我在Haskell中使用Alex和Happy編寫了一個monadic解析器。

我的錯誤函數定義如下:

parseError :: Token -> Alex a
parseError _ = alexError "error occurred"

如何在解析過程中發送自定義錯誤(例如在嘗試將字符串添加到數字時類型不正確)?


UPDATE

解析器不需要進行類型檢查,我在生產中執行它,因為我跟蹤操作數類型。 正如在評論中所說,我不能使用parseError ,所以有沒有辦法打印錯誤並停止解析器?

我通過實現這個功能解決了它:

fatalError :: (Show a1, Show a) => [Char] -> a -> a1 -> t
fatalError s l c = error ("Error at line " ++ (show l) ++ " column " ++ (show c) ++ ": " ++ s)

當檢測到錯誤時,我從生產中調用它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM