%right <code> UNARY PLUSPLUS MINUSMINUS
答案 0 :(得分:0)
如果您有shift / reduce警告,则意味着解析器可以在堆栈中添加令牌或使用某些规则减少令牌。默认情况下,它选择“移位”,这告诉它尽可能减少该令牌。
一般来说,除非你有一个非常奇怪的语法,否则它的默认变换是你想要发生的事情(我想不出任何我希望它减少的实例,但它的原因是这样的...... )。
一般来说,你只想说%左边代替某些代币,只是为了删除shift / reduce警告
答案 1 :(得分:0)
可能bison manual会有所帮助。
此声明指定令牌UNARY
PLUSPLUS
MINUSMINUS
正确联想。
<code>
表示这些令牌的语义值的类型
在这种情况下,我假设在{。}}中声明了以下union
源代码:
%union {
...
<some-type> code;
...
}
希望这有帮助