如果有以下形式的输入文件:我如何说服Bison解析文件的一部分?
BEGIN
stuff....
END
BEGIN
stuff ...
END
和我.Y文件的形式为
%token BEGIN
%token END
%start begin
begin: BEGIN stuff END
什么,我想要做的就是调用yyparse反复,解析一个BEGIN/END,直到eof。
第一次调用对yyparse报道:
syntax error, unexpected BEGIN, expecting $end.
这是有道理的;野牛想分析整个文件。有没有一种方法让野牛在定义$ end的时候更灵活: ?
我宁愿反复调用yyparse;这对于这个特定的应用程序更有意义。 – user1538392 2012-07-19 18:09:06
我宁愿反复调用yyparse;这对于这个特定的应用程序更有意义。 YYACCEPT立即返回*,不执行语义规则;我添加了“begin0:begin {YYACCEPT;};”使其工作。它现在处理EOF中的所有块和错误。我需要添加一个空的规则来处理EOF,我认为这会使它工作。谢谢。 – user1538392 2012-07-19 18:15:21
是的,添加一个空的规则,将树根指针设置为空以表示eof已到达的调用应用程序似乎工作。 – user1538392 2012-07-19 18:19:23