可以有两种作品,我们可以从中减少。在根据需要给出优先级和关联之后,只有一个句柄。

有帮助吗?

解决方案

这是部分正确的,通常通过指定优先级或让解析器构建器选择要适用的规则在另一个规则上解决。

这意味着解决了冲突,但并非解析器将完全按照预期的方式行事。研究导致冲突的原因很方便,并认为是否需要对语法进行重构来表达您要解析的内容,或者自动选择/优先级就足够了。

其他提示

如果您的语法有模棱两可的规则,则会得到多种解释。您不必坚持认为 语法 消除歧义;您可以简单地同意某些事情是模棱两可的,并将其解析多种方法:

fruit flies like an arrow.

解析的结果是多种解释。

现在,让这种语言成为 有用 对于读者来说,他要么必须对歧义感到满意,要么您需要给他一种解决它的方法。 (在示例中,我已经为您决定,您对歧义感到高兴,因为我没有给您一种解决方法!)。或者,人们可以为读者提供模棱两可的分析,这是一种选择哪种解析的方法,他拒绝了不适当的解析。

我可以通过告诉您我的意思是“水果=>西瓜”来做到这一点。

计算机语法没有什么不同,但是大多数程序员不需要模棱两可的代码。因此,通常,Langauge设计师 喜欢 定义明确的语法。在实践中,它们不会成功,您会得到有趣的语言规则,例如:“如果可以模棱两可,那就解释它 这个 方法。”。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top