【问题标题】:Overriding "Internal Happy Error" - notHappyAtAll覆盖“内部快乐错误” - notHappyAtAll
【发布时间】:2012-01-20 06:39:30
【问题描述】:

我正在使用 Happy 来生成解析器。

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

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

【问题讨论】:

  • 也许the happy docs 帮助?免责声明:也许他们没有。
  • 如果您想匹配“片段”而不是始终匹配语法的顶级,则需要多个开始符号 - 请参阅 Happy 手册的第 2.7 节。
  • 您是否在语法顶部定义了错误指令?这应该是%error { parseError } 的形式 - parseError 是一些用户定义的函数。参见手册第 2 章。
  • 是的,我已经定义了一个 parseError - 由于某种原因,我的解析错误没有捕捉到它,而是调用notHappyAtAll:/
  • 这个问题对于非 Haskeller 的人来说一定很奇怪;) notHappyAtAll 是一个函数的好名字。

标签: parsing haskell error-handling happy


【解决方案1】:

此问题似乎已在 Happy 1.18.7 中修复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-12
    • 1970-01-01
    • 1970-01-01
    • 2012-09-06
    • 2021-11-22
    • 2013-08-23
    相关资源
    最近更新 更多