apache-flex 文件lex过早结束

owfi6suc  于 2022-11-01  发布在  Apache
关注(0)|答案(1)|浏览(250)

当我尝试使用make关键字编译它时,它给我一个错误:
lex.l文件第17行文件过早结束。

%option noyywrap
 %{
    #include "grammer.tab.h"
 %}
 name        ([0-9])
 whitespace  [ \r\t\v\f]
 linefeed    \n
 %%
 {name}         { return NAME; }
 ":"            { return COLON; }
 "->"           { return RIGHT_ARROW; }
 "{"            { return LEFT_BRACE;}
 "}"            { return RIGHT_BRACE;}
 ";"            { return SEMICOLON;}
 {whitespace}
 {linefeed}     ++yylineno;
 %%

所以有人好心帮我。

错误:-

尾部:-enter image description here

w7t8yxp5

w7t8yxp51#

当最后一行没有以换行符终止时,您通常会从lex(或flex)中得到此错误。
要解决此错误,只需在文件末尾添加一个空行。
(The yacc/野牛也是如此)
我还注意到模式{whitespace}缺少一个操作。我建议您可以尝试:

{whitespace}         ; /* No action */
%%
/* End of the file */

相关问题