当我尝试使用make关键字编译它时,它给出了一个错误:
第17行的lex.l文件中的文件过早结束。
%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;
%%
所以有人帮助我。
错误: -
答案 0 :(得分:0)
当最后一行未被换行终止时,通常会从lex(或flex)中获得此错误。
要解决此错误,只需在文件末尾添加一个空行。
(yacc / bison也是如此)
我还注意到您对模式{whitespace}
缺少操作。我建议你试试:
{whitespace} ; /* No action */
%%
/* End of the file */