EOF обнаружен в программе действия LEX

У меня есть программа lex следующим образом. Я сталкиваюсь с ошибкой

EOF обнаружен в программе действия LEX

%{
#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);}

Кто-нибудь может мне помочь?

1 ответ

Эта ошибка часто возникает, если у вас есть EOF в конце текста без окончания последней строки в конце строки, но она также может зависеть от системы, что затрудняет ее воспроизведение в других системах.

Убедитесь, что после последней строки есть пустая строка и ошибка может исчезнуть.

Другие вопросы по тегам