我試圖解析這句法:這個Bison代碼中的轉換/減少衝突來自哪裏?
34 + 1 − 8, 32 * 87 + 6/4, 34/8
我期待地這樣說:
(, (- (+ 34 1) 8) (/ (+ (* 32 87) 6) 4) (/ 34 8))
這是BISON代碼:
%token NUMBER
%token COMMA
%token OPERATOR
%left OPERATOR
%left COMMA
%%
term: NUMBER | term op term ;
op: OPERATOR | COMMA;
%%
有是一個問題:
test.y: conflicts: 2 shift/reduce
我該如何解決它?
您例如輸出輸入不匹配。你錯過了'/ 4' – Novelocrat 2010-07-16 12:57:22
謝謝,只是改正了 – yegor256 2010-07-16 12:59:14
如果我正確記住編譯器課程,術語運算符不是LL1語法。您必須將其轉換爲LL1語法才能使其工作 – Henri 2010-07-16 19:24:35