[英]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.