我有一个lex程序如下。我遇到错误
在操作 LEX 程序中遇到的 EOF
%{
#include<stdio.h>
#include<math.h>
#include "y.tab.h"
%}
%%
[ t]+ ;
[0-9]+ {yylval = atoi(yytext);
return INTEGER;}
[-+*/] {return *yytext;}
"(" {return *yytext;}
")" {return *yytext;}
n {return *yytext;}
. {char msg[25];
sprintf(msg,"%s <%s>","invalid character",yytext);
yyerror(msg);}
有人可以帮助我吗?
如果在文本末尾有一个 EOF,而没有用行尾终止最后一行,则通常会发生此错误,但它也可能与系统相关,因此很难在其他系统上重现。
确保最后一行后有一个空行,错误可能会消失。