【问题标题】:Ambiguity error while rendering parse tree渲染解析树时出现歧义错误
【发布时间】:2016-06-29 06:47:12
【问题描述】:

在 Rascal 中,当渲染语法不明确的解析树时,为什么有时我会在某个位置收到一条错误消息,指出“歧义”,而不是 Rascal 只是渲染解析森林并显示歧义?

我总是只打电话给render(renderParsetree(parse(SomeSymbol, SomeLocation)));,但我不知道什么时候会呈现解析森林,什么时候会出现关于歧义的错误消息。在我看来,解析森林更清晰地显示出歧义,我想知道当 Rascal 显示错误消息时是否存在显示它的方法。

编辑:不只是渲染解析树,甚至是“Dr. Ambiguity' (diagnose) 在这些情况下会失败并出现歧义错误,因此这也无法找到歧义的原因。

【问题讨论】:

  • 嗨 Olav,因为渲染器和博士。歧义是用 Rascal 本身编写的,可能是他们自己的代码遇到歧义,或者使用的库之一更改了语义而没有触发测试失败。渲染器和博士。歧义经受了不良测试。我会看看并检查这两个程序,看看发生了什么。
  • 如果您可以通过电子邮件向我发送一个示例来触发错误消息,那就太好了!
  • 电子邮件已发送。很抱歉在 Stackoverflow 上发布了一个潜在的错误,而不是在 GitHub 上报告它(再次)。我没想到这会成为 Rascal 的问题。
  • 谢谢,没问题!不断提出问题;对其他用户很有帮助。

标签: parsing ambiguity rascal


【解决方案1】:

我通过电子邮件收到了 jurgenv 的以下答复:通过最近的更改,您需要在调用 parse 时设置 allowAmbiguity=true 以允许歧义。此方法的行为已更改,以避免解析器花费很长时间来处理意外非常模糊的文件,并允许人们更快地发现歧义。

【讨论】:

    猜你喜欢
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 2013-08-11
    • 1970-01-01
    • 2023-03-29
    • 2017-09-05
    • 2019-10-18
    • 2016-03-29
    相关资源
    最近更新 更多