%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 存在减少/减少冲突。我们该如何解决?
默认情况下,y: t 和 w: t 之间的冲突以 y: t 的方式解决。如果你想要它的另一种方式,重新排序相应的规则。或者您可以像这样扩展其中一个:-
%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: A 规则
%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
;