2017-02-09 12 views
-1

다음과 같이 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);} 

누군가가 나를 도울 수있는 액션 LEX 프로그램 내에서 발생한 오류

EOF가 발생?

+0

아무 문제도 없습니다. 이 오류는 대개 누락 된'}'이 있음을 의미하지만,이 경우에는 질문에서 내 컴퓨터로 데이터를 복사하고 불만없이 컴파일합니다. 파일과 정확히 같은가요? – rici

답변

2

이 오류는 텍스트 끝 부분에 줄 끝으로 EOF를 끝내지 않고 시스템에 종속적 일 수 있으므로 다른 시스템에서 재생하기가 어려울 때 종종 발생합니다.

마지막 행 다음에 빈 줄이오고 오류가 사라질 가능성이 높습니다.