野牛& flex连接 - yylval类型

时间:2017-01-01 10:38:05

标签: bison flex-lexer lex

我有一个学校项目,构建一个编译器。课程人员提供了一个头文件,“proj.h”包括一个结构“Node”,它应该用于构建解析树和一组函数。 (该标头不包含#define YYSTYPE到节点类型,不应更改)。 我想在我的.lex文件中使用Node*,例如:

yylval = makeNode(...);

makeNode的定义:

Node *makeNode(const char* type,const char* value, Node *child);

我尝试在.lex文件和.ypp中定义YYSTYPE。

.lex:

#include "proj.h"
#include "parser.tab.hpp"
#define YYSTYPE Node*

.ypp:

#include "proj.h"
#define YYSTYPE Node*

我正在使用g ++进行编译。 似乎lval没有像Node那样得到实际的定义。尝试分配lval时出现编译错误:

Invalid conversion from 'Node* {aka n*}' to 'YYSTYPE {aka int}'

任何帮助表示感谢。

0 个答案:

没有答案