filename.l:16: 在动作中遇到 EOF
filename.l:16: EOF encountered inside an action
我有一个这样的 lex 文件
%{
#include "y.tab.h"
%}
%%
"print" {return print;}
"exit" {return exit_command;}
[a-zA-Z] {yylval.id = atoi(yytext); return identifier;}
[0-9]+ {yylval.num = atoi(yytext);} return number;}
[ \t\n] ;
[-+=;] {return yytext[0];}
. {ECHO; yyerror("unexpected charater");}
%%
int yywrap(void){return 1;}
但是当我尝试 运行 lex filename.l
我收到以下错误
filename.l:16: EOF encountered inside an action
任何人都可以看到任何错误
您的数字模式 ([0-9]+
) 在其操作中有一个额外的 }
,这令人困惑(并且 flex
也令人困惑)。
我有一个这样的 lex 文件
%{
#include "y.tab.h"
%}
%%
"print" {return print;}
"exit" {return exit_command;}
[a-zA-Z] {yylval.id = atoi(yytext); return identifier;}
[0-9]+ {yylval.num = atoi(yytext);} return number;}
[ \t\n] ;
[-+=;] {return yytext[0];}
. {ECHO; yyerror("unexpected charater");}
%%
int yywrap(void){return 1;}
但是当我尝试 运行 lex filename.l
我收到以下错误
filename.l:16: EOF encountered inside an action
任何人都可以看到任何错误
您的数字模式 ([0-9]+
) 在其操作中有一个额外的 }
,这令人困惑(并且 flex
也令人困惑)。