我必须将此 EBNF 翻译成野牛:
<compound-statement> ::= begin [ <statement> ( ; <statement> )*] end
<statement> ::=
| <assignment>
| <if-statement>
| <while-statement>
| <proc-func-call>
| <compound-statement>
当我翻译赋值、if、while 语句和 proc_func_ 时,bison 没有错误。然而,当我在野牛中输入这个时,翻译复合语句:
compound_statement : BEGINKEY state ENDKEY ;
state : | statement stm ;
stm : | BQUESTIONMARK statement stm ;
有一个减少/减少错误。
有人可以向我解释一下,为什么会出现减少/减少错误,因为这对我来说没有意义。我真的很感激。
提前致谢。