3
我正在使用Alex和Happy在Haskell編寫monadic解析器。在解析時顯示自定義錯誤Happy Haskell
我的誤差函數的定義如下:
parseError :: Token -> Alex a
parseError _ = alexError "error occurred"
如何發送自定義錯誤(如不正確類型,而試圖添加一個字符串到數字)解析過程?
UPDATE
解析器並不需要做的類型檢查,我正在做的製作裏面,因爲我跟蹤的操作數類型。 正如在評論中所說,我不能使用parseError
,那麼有沒有辦法打印錯誤並停止解析器?
只是通過不同的字符串比'生產「發生錯誤」''到alexError' ...? –
好吧,但我需要從我的生產規則中傳遞字符串,'parseError'函數只需要一個'Token'參數,而不是我想要的任何字符串 – zeb
我承認我不是很熟悉alex或happy,所以原諒如果這是一個愚蠢的問題,但是:如果'parseError'沒有做你想做的事情,爲什麼不改變'parseError',或者避免完全使用它來支持'alexError'函數來做你想做的事情? –