gcc error:
conflicting types for ‘yylval’ extern YYSTYPE yylval
其中YYSTYPE在bison 中定义为union类型
<pre name="code" class="html">//syntax.y
...
%}
%union
{<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>int type_int;
<span style="white-space:pre"> </span>float type_float;
<span style="white-space:pre"> </span>double type_double;
}
...
%%
错误源:两种
1.yylval调用方式出错
如果在scanf.l中调用方式类似
//scanf.l
yylval = atoi(yytext);
yylval此时被定义为union,调用时应指定类型
yylval.type_int = atoi(yytext);
2.函数体返回值不同
检查一下函数声明和定义,有可能是声明或者定义的时候打错了函数名....................................