0

次の単純な文法では、状態 4 での競合について、ルールを変更せずに「シフト」を実行アクションにすることができますか? (デフォルトでは、シフトはバイソンの優先アクションだと思いました)

%token one two three

%%

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

%%
4

2 に答える 2

3

shift は bison の優先アクションであり、状態出力で状態 4 にシフトすることがわかりますtwo。それでも shift-reduce 競合が報告されますが、必要に応じてそれを警告として受け取ることができます。( を参照してください%expect。) 文法を修正した方がよいでしょう。

start : a;
a : X Z | X Y Z;
X : one;
Y : two;
Z : two | three;
于 2013-07-25T17:50:42.230 に答える