EOF在操作LEX程序中遇到



我有一个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,而没有用行尾终止最后一行,则通常会发生此错误,但它也可能与系统相关,因此很难在其他系统上重现。

确保最后一行后有一个空行,错误可能会消失。

相关内容

最新更新