渲染解析树时出现歧义错误

Ambiguity error while rendering parse tree

在 Rascal 中,当根据歧义语法渲染解析树时,为什么我有时会在某些位置收到一条错误消息,指出 "Ambiguity" 而不是 Rascal 只渲染解析林并显示歧义?

我总是只调用 render(renderParsetree(parse(SomeSymbol, SomeLocation)));,但我不知道什么时候它只呈现一个解析森林,什么时候它会显示一条关于歧义的错误消息。在我看来,解析森林显示的歧义要清晰得多,我想知道当 Rascal 显示错误消息时是否存在一种方法来显示它。

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

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