По какой-то причине структурные указатели в объединении, по-видимому, не определены, хотя я заранее включил .h
.
%{
#include "agent.h"
.
.
.
%}
%union {int iValue; char sIndex; ASTnode *nPtr; litNode *litPtr; ruleNode *rulePtr; exprNode *expPtr; actNode *actPtr; conNode *conPtr};
.
.
.
%%
Однако определения функций, которые используют такие структурные указатели в #include "agent.h"
, работают нормально.Почему я получаю сообщение об ошибке:
y.tab.h:58:15: error: unknown type name ‘ASTnode’
typedef union {int iValue; char sIndex; ASTnode *nPtr; litNode *litPtr; ruleNode *rulePtr; exprNode *expPtr; actNode *actPtr; conNode *conPtr} YYSTYPE;
^
y.tab.h:58:15: error: unknown type name ‘litNode’
y.tab.h:58:15: error: unknown type name ‘ruleNode’
y.tab.h:58:15: error: unknown type name ‘exprNode’
y.tab.h:58:15: error: unknown type name ‘actNode’
y.tab.h:58:15: error: unknown type name ‘conNode’
, хотя я включил файл .h
?
Я видел другие вопросы, касающиеся проблемы, но они решили ее, включив заголовочный файл, но для моего случая это все еще не работает.
Спасибо.