1
我正在研究野牛的解析器。解析一個測試用例時,Bison給出了一個語法錯誤,表示它期望$ end,但是有更多的令牌。我已經在Bison手冊中搜索了$ end,但它似乎並沒有表明在什麼條件下它會預期該令牌。我使用了遞歸規則的形式
%start program
%%
program
: rule
| program rule;
來定義我的語法的根。野牛愉快地匹配rule
的前三個調用,但是拋出第四個調用,表示它預計$ end。我如何向Bison表明它應該期望並匹配更多的令牌?
我的意思是說,我有一個應該調用約5次規則的測試用例,但Bison在前三個之後拋出提到的錯誤。這都是一項測試。我使用了YYDEBUG,並記錄了詞法分析器提供的令牌。 – Puppy
「規則」確實與實際情況不符。我禁用了一部分語法,忘記重新啓用它。哦,那就是我的測試。 – Puppy
我做了同樣的事情一百次。 (這lex/yacc的東西永遠不會挑戰我。)很高興你把它整理出來。 –