gpt4 book ai didi

java - 我如何告诉 Beaver 忽略减少/减少冲突?

转载 作者:行者123 更新时间:2023-11-29 05:48:24 25 4
gpt4 key购买 nike

我正在尝试使用 Beaver解析包含减少/减少冲突的语法。预计会发生冲突。其他解析器生成器支持使用诸如 %expect 0 1 之类的语句来指定预期会发生减少/减少冲突,但 Beaver 似乎不支持这一点。我如何告诉 Beaver 忽略已知的减少/减少冲突并生成解析器?

最佳答案

Beaver can't do that , 但您可以使用 %left、%right 或 %nonassoc 指令来定义关联性和优先级规则。

我假设您不关心在发生冲突时执行哪个 reduce(因为解析树是相同的,或者因为它们对于您的目的是相同的)。因此,定义哪些优先级对您来说并不重要,只要定义足够优先级即可。

假设冲突发生在运算符 OP1 和 OP2 之间,那么以下指令将解决您的冲突。

%nonassoc OP1;
%nonassoc OP2;

但是,如果冲突发生在具有相同运算符 (OP) 的两个推导规则之间,则您需要其中一个

%left OP;

%right OP;

关于java - 我如何告诉 Beaver 忽略减少/减少冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14946545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com