由于epsilon规则,移位/减少第一状态下的冲突



我在bison中有移位/减少冲突。

我检查了parser.output文件:

State 0
0 $accept: . Prog $end
STRUCT  shift, and go to state 1
$default  reduce using rule 6 (Structs)
Prog        go to state 2
Structs     go to state 3
StructDec   go to state 4

我有规则:

Prog    :   Structs Funcs {};
Structs :   StructDec Structs | {};
StructDec : STRUCT ID LB StrctMmLst RB SC{};

Prog是开始符号。

%start Prog

我认为原因是结构的ε规则。我如何在不改变意思的情况下解决它?

实际的解决方案是查看文件的开头。在那里你可以看到冲突状态的数字。我看到的那个根本不是冲突。

相关内容

  • 没有找到相关文章

最新更新