2
%token A B C D E F G H
%%
x : y H y | z H z
;

y : G | t |  y B G | y B t
;

z : w | z D w
;

w : C | t | E z F
;

t : A
;

tのためにreduce/reduceの競合があります。どうすればそれを解決できますか?

4

1 に答える 1

0

デフォルトでは、y:tとw:tの間の競合は、y:tを優先して解決されます。逆の場合は、対応するルールを並べ替えます。または、次のようにそれらの1つを展開できます:-

%token A B C D E F G H
%%
x : y H y | z H z
;

w : C | A | E z F
;

z : w | z D w
;

y : G |  A B G | A B A | y B G | y B A
;

tルールを削除し、y:ルールを展開して削除したことに注意してください:-

ステップ1:tを削除する:ルール

%token A B C D E F G H
%%
x : y H y | z H z
;

y : G | A |  y B G | y B A
;

z : w | z D w
;

w : C | A | E z F
;

ステップ2:

%token A B C D E F G H
%%
x : y H y | z H z
;

y : G | A |  A B G | A B A | y B G | y B A
;

z : w | z D w
;

w : C | A | E z F
;
于 2012-12-03T08:33:10.000 に答える