我该如何更改 GHC 编译器错误信息的输出方式?

3

我对 GHC 错误信息的格式不太满意。我该如何创建自定义的打印函数?


@alternative 我更新了问题 - xged
@xged,如果你不尝试写代码,那么除了阅读解析教程之外,你将得不到太多帮助。Stackoverflow不是请求编写代码的地方,而是在编写代码时遇到问题时寻求帮助的地方。你必须先尝试一下,才能遇到困难。 - bheklilr
@xged 是的,确实如此。通过解析错误消息所能做的任何事情都受限于该错误消息中的信息量。你无法获得更多信息,只能重新格式化它... - alternative
@xged 不要打印它? - alternative
1
我经常对那些有时会告诉你忘了逗号的大段文字感到沮丧。这可能是开发过程中最糟糕的问题之一。然而,我理解这对于博士学位持有者来说可能是一个难题。 - Michael Fox
显示剩余8条评论
1个回答

2
你想修改 GHC 吗?它是开源的,所以你可以随意更改并重新编译,但这可能会是一个巨大的过度设计。
如果我真的非常想要,我会编写一个调用 GHC 并读取输出、处理输出后再打印输出的程序。
你可以使用 System.Process.readProcessWithExitCode 来实现。你可能会尝试使用 readProcess,因为它的 API 更简单,但它只会从 stdout 中读取数据,而你几乎肯定也需要 stderr 的内容。此外,前者中的退出码也可能非常有帮助:你可以通过检查退出码是否等于 0 来知道编译是否成功,而无需进行解析。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接