filename.l:16:在操作中遇到 EOF

7 lex

我有一个像这样的 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;}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试运行 lex filename.l 时出现
以下错误

filename.l:16: EOF encountered inside an action
Run Code Online (Sandbox Code Playgroud)

任何人都可以看到任何错误

ric*_*ici 5

您的数字模式 ( [0-9]+)}在其操作中有一个额外的内容,这令人困惑(并且也令人困惑flex)。