我在编译文件时遇到以下问题。我已经重写了 YYLTYPE 的定义,如下所示(虽然它与默认值相同,但我将扩展它
typedef struct YYLTYPE
{
int first_line;
int first_column;
int last_line;
int last_column;
} YYLTYPE;
当我在 lex 文件中添加以下内容时,出现“yylloc 在此范围内未定义”错误。
#define YY_USER_INIT yylloc.first_line = yylloc.first_column = 1;
巴斯德宾:
你需要把定义YYLTYPE
and YYLTYPE_IS_DECLARED
到你的头文件中#include
在你的两个.y
and .l
文件,并且您需要#include
the .tab.h
文件在你的.l
文件之后#include
定义的文件的YYLTYPE
.
上述原因是野牛不出口your的定义YYLTYPE
从你的顶部.y
文件,因此如果您想在其他地方使用它,您需要安排它可用。更糟糕的是,.tab.h
文件将始终具有默认值YYLTYPE
(由#ifndef YYLTYPE_IS_DECLARED
)所以你需要确保你的定义在它之前被看到。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)