EOF Flex计算器

时间:2014-02-10 13:54:59

标签: bison flex-lexer eof

我正在Flex / Bison中编写一个简单的计算器,当我尝试编译我的flex代码时,我不断收到EOF错误。谁能告诉我为什么或如何解决它?谢谢!

%{
#define YYSTYPE double
#include "calc.tab.h"
#include <stdlib.h>
%}

white [ \t]+
digit [0-9]
integer {digit}+
exponent [eE][+-]?{integer}
real {integer}("."{integer})?{exponent}?

%%

{white} { }
{real} { yylval=atof(yytext); 
 return NUMBER;
}

"+" return PLUS;
"-" return MINUS;
"*" return TIMES;
"/" return DIVIDE;
"^" return POWER;
"(" return LEFT;
")" return RIGHT;
"\n" return END;

1 个答案:

答案 0 :(得分:1)

你的标题不正确,应该是这样的

%{ 
   #include <stdlib.h>   
   #include "calc.tab.h"
   #define YYSTYPE double 
%}