在动作中遇到 EOF

EOF encountered inside an action

当我 运行 弯曲时出现此错误:

%{
    #include "parser.tab.c"
    extern "C" int yylex();
%}

%%

[0-9]+        { yylval.intVal = atoi(yytext); return INTEGER_LITERAL; }
[0-9]+.[0-9]+ { yylval.floatVal = atof(yytext); return FLOAT_LITERAL; }
"+"           { return PLUS; }
"-"           { return MINUS; }
"*"           { return MULT; }
"/"           { return DIV; }
";"           { return SEMI; }
[ \t\r\n\f]   ; /* ignore whitespace */

第 15 行错误

Flex 要求您提供的规范文件以换行符结尾,而您的则不需要。你的编辑应该自动添加一个;如果不行,加一个空行,找个更好的编辑器。

根据 Posix,文本文件 必须 以换行符结尾,如果不这样做,一些实用函数(包括 flex)会出现异常。