关于flex/bison 语法分析的问题

你说的曾经没有我的故事 提交于 2019-12-09 13:32:46

关于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"即可
在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!