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 в конце текста без окончания последней строки в конце строки, но она также может зависеть от системы, что затрудняет ее воспроизведение в других системах.
Убедитесь, что после последней строки есть пустая строка и ошибка может исчезнуть.