【发布时间】:2016-12-09 11:07:34
【问题描述】:
我是 Bison 的新手,我遇到了 shift/reduce 冲突的问题......
我正在写C语言的语法规则:ID是一个标识变量的记号,我写这个规则是为了确保标识符即使写在括号里也能被考虑。
id : '(' ID ')' {printf("(ID) %s\n", $2);}
| ID {printf("ID %s\n", $1);}
;
Bison 冲突的输出是:
State 82
12 id: '(' ID . ')'
13 | ID .
')' shift, and go to state 22
')' [reduce using rule 13 (id)]
$default reduce using rule 13 (id)
我该如何解决这个冲突?
希望我说的很清楚,感谢您的帮助。
【问题讨论】:
-
这是整个野牛输出吗?另外,能用英文提供吗?
-
英文正确
-
即使是语法,我们也需要Minimal, Complete, and Verifiable example。
-
...您只是手动翻译而不是用英语重新运行野牛吗?
-
是的,我有意大利语版本,但它是正确的
标签: c compiler-construction bison lex