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有減少/減少衝突。我們如何解決它?我們如何解決這個Yacc衝突
%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有減少/減少衝突。我們如何解決它?我們如何解決這個Yacc衝突
默認情況下,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:規則
%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
;
它的確如此,謝謝你的回答。 – mausmust
不知道爲什麼它被否決了這麼多 - 看起來像p的descriptin相當合理規模的樣本問題和疑問...語法背後的推理可能是有用的,但不是必需的... –
@AlexeiLevenkov不幸的是,我想很多人只是自動投票,如果他們不明白的東西/看起來像垃圾郵件。我對Yacc一無所知,因此恐怕無法回答,但這個問題似乎是合理的。 –
Yacc是一個解析器生成器,我正在設計一個語法。我用字母簡化了語法中有問題的部分。 – mausmust