关于flex/bison 语法分析的问题
在进行语法分析的时候,发现在flex词法分析中分析过的词传不过来,之后查了网上说要用yylval参数传值,但是我需要传的参数种类很多,于是我申明了一个union,并给YYSTYPE定义为这个union(YYSTPE是yylval的类型),但是发现报错如下:
union中的类型没有找到,一直以为是编译器出了问题,但是查看bison生成的头文件发现了事实的真相。
bison中为了满足各个符号不同的语义值的类型可以定义
%union{
……
}
如图:
其中YYSTYPE的定义就来源于这个,而不能自己在flex文件中定义union,然后赋值给YYSTYPE
如果需要用到yylval直接引用头文件#include "xxx.tab.h"
即可
件#include "xxx.tab.h"
即可
来源:CSDN
作者:AnnaZhan
链接:https://blog.csdn.net/AnnaZhan/article/details/103456037