我試着去建模EBNF表達幫助移動/減少衝突 - 嘗試模型(XA)*(XB)*
("declare" "namespace" ";")* ("declare" "variable" ";")*
我已經建立了YACC(即時通訊使用MPPG)語法,這似乎來表示這一點,但它不符合我的測試表達式。
測試情況下,我試圖匹配是
declare variable;
從詞法記號流是
KW_Declare
KW_Variable
Separator
語法解析說,有一個「移進/歸約衝突,國家6在KW_Declare上「。我試圖用「%left PrologHeaderList PrologBodyList」來解決這個問題,但這兩種解決方案都無法解決。
Program : Prolog;
Prolog : PrologHeaderList PrologBodyList;
PrologHeaderList : /*EMPTY*/
| PrologHeaderList PrologHeader;
PrologHeader : KW_Declare KW_Namespace Separator;
PrologBodyList : /*EMPTY*/
| PrologBodyList PrologBody;
PrologBody : KW_Declare KW_Variable Separator;
KW_Declare KW_Namespace KW_Variable隔板用值的所有令牌 「聲明」, 「naemsapce」, 「可變」, 「;」。
這是我最後採用的方法。我想我可以在代碼中進行驗證。 – Sprotty 2009-06-04 17:17:20