Parsing 压倒一切;“内部快乐错误”不适用

Parsing 压倒一切;“内部快乐错误”不适用,parsing,haskell,error-handling,happy,Parsing,Haskell,Error Handling,Happy,我正在使用Happy生成一个解析器 我发现,当我给它一些标记,这些标记与语法的一部分在一个低于顶层的级别上匹配时(比如给它一个自己的表达式,它不是语句的一部分),我得到的是一个“内部快乐错误”,而不是一个解析错误 有没有办法覆盖notHappyAtAll,这样我就可以打印出比“内部错误”更好的错误消息?显然,除了更改自动生成的语法分析器文件之外,我每次更新语法时都必须这样做。这个问题似乎在Happy 1.18.7中得到了解决。可能有帮助吗?免责声明:可能没有。如果您希望匹配“片段”,而不是始终匹

我正在使用Happy生成一个解析器

我发现,当我给它一些标记,这些标记与语法的一部分在一个低于顶层的级别上匹配时(比如给它一个自己的表达式,它不是语句的一部分),我得到的是一个“内部快乐错误”,而不是一个解析错误


有没有办法覆盖
notHappyAtAll
,这样我就可以打印出比“内部错误”更好的错误消息?显然,除了更改自动生成的语法分析器文件之外,我每次更新语法时都必须这样做。

这个问题似乎在Happy 1.18.7中得到了解决。

可能有帮助吗?免责声明:可能没有。如果您希望匹配“片段”,而不是始终匹配语法的顶级,则需要多个开始符号-请参阅《快乐手册》第2.7节。您是否在语法的顶级定义了错误指令?它的形式应该是
%error{parseError}
-
parseError
是一些用户定义的函数。请参阅手册第2章。是的,我定义了一个parseError-由于某种原因,我的解析错误没有捕捉到它,而是调用了
notHappyAtAll
:/这个问题对于非Haskellers来说一定很奇怪;)
notHappyAtAll
是函数的一个杰出名称。