Parsing 野牛转移/减少冲突

Parsing 野牛转移/减少冲突,parsing,bison,Parsing,Bison,在下面的简单语法中,关于状态4的冲突, 在不改变规则的情况下,“转移”能否成为已采取的行动? (我认为在默认情况下,移位是野牛的首选动作) shift是bison的首选操作,您可以在状态输出中看到它将在状态4中移动two。它仍然会报告移位减少冲突,但如果您愿意,可以将其作为警告。(请参见%expect)修复语法可能会更好: start : a; a : X Z | X Y Z; X : one; Y : two; Z : two | three; shift是bison的首选操作,您可以在状态

在下面的简单语法中,关于状态4的冲突, 在不改变规则的情况下,“转移”能否成为已采取的行动? (我认为在默认情况下,移位是野牛的首选动作)


shift是bison的首选操作,您可以在状态输出中看到它将在状态4中移动
two
。它仍然会报告移位减少冲突,但如果您愿意,可以将其作为警告。(请参见
%expect
)修复语法可能会更好:

start : a;
a : X Z | X Y Z;
X : one;
Y : two;
Z : two | three;

shift是bison的首选操作,您可以在状态输出中看到它将在状态4中移动
two
。它仍然会报告移位减少冲突,但如果您愿意,可以将其作为警告。(请参见
%expect
)修复语法可能会更好:

start : a;
a : X Z | X Y Z;
X : one;
Y : two;
Z : two | three;

Shift是默认值,但这会导致生成的解析器为输入
one-two
提供错误,因此这可能不是您想要的。相反,请遵循rici的建议并修复语法。

Shift是默认值,但这会导致生成的解析器为输入给出一个错误,因此这可能不是您想要的。相反,按照rici的建议修改语法