0
在以下簡單文法中,關於狀態4的衝突, 可以'移動'成爲所採取的動作而不改變規則嗎? (我認爲,在默認情況下轉變是野牛的首選操作)野牛移位/減少衝突
%token one two three
%%
start : a;
a : X Y Z;
X : one;
Z : two | three;
Y : two | ;
%%
在以下簡單文法中,關於狀態4的衝突, 可以'移動'成爲所採取的動作而不改變規則嗎? (我認爲,在默認情況下轉變是野牛的首選操作)野牛移位/減少衝突
%token one two three
%%
start : a;
a : X Y Z;
X : one;
Z : two | three;
Y : two | ;
%%
轉變是野牛的首選動作,你可以在狀態輸出中看到,它會在狀態4.它仍然會報告倒班轉移two
減少衝突,但如果您願意,可以將其作爲警告。 (見%expect
)。你可能會更好固定的語法:
start : a;
a : X Z | X Y Z;
X : one;
Y : two;
Z : two | three;
移位是默認的,但導致生成的解析器給了一個錯誤的輸入one two
所以這可能不是你想要什麼。相反,請按照rici的建議修正語法。