繁体   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