野牛错误 - 预计$ end

时间:2011-08-04 22:48:20

标签: bison

我正在Bison的解析器上工作。在解析测试用例时,Bison给出了语法错误,说它预期$ end,但是有更多的令牌。我已经搜索了Bison手册以获得$ end,但它似乎并没有表明它将在什么条件下完全预期该令牌。我使用了

形式的递归规则
%start program

%%

program 
   : rule
   | program rule;

定义我的语法根。 Bison愉快地匹配rule的前三次调用,但抛出第四次调用,说它预期$ end。我如何向Bison表明它应该期望和匹配更多的令牌?

1 个答案:

答案 0 :(得分:1)

听起来你的问题在细节的某个地方。接近输入流末尾的某些内容与“规则”不匹配。打开调试并查看它告诉你的内容(如果你不熟悉它们,请查看YYDEBUG和yydebug。)

只是要清楚:当你说“第四次调用”时,我认为你的意思是“第四次独立测试用例”(事实上它是第四次无关紧要。)或者你的意思是一个匹配“规则”的输入流“四次失败,但一次匹配三次成功?