在我的 yacc 文件中,我有一个开始符号“程序”:
Program: Declaration Statements E_O_F {/*Semantic Action*/};
E_O_F 是 flex-lexer 返回的令牌,如下所示:
<<EOF>> return E_O_F;
但是当我编译我的文件时,总是在最后一行+1 行报告语法错误。Lex 文件:文件 Yacc 文件:文件
输入:test.txt
a=(b);
b=c+d/e;
a=3/5-2*4;
a=a-b;
if(a>b)
{
a=a+1;
}
我想我不会退回
<<EOF>>
令牌正确。请帮忙。