0
我有這個問題,我的YACC文件似乎無法訪問我的頭文件中定義的類型。結構類型上的Yacc聯合
如果我用%code requires{ }
替換我的頭文件它確實認出它但那不是我真正想要的。
我st.h頭文件:
struct node {
int item;
int identifier;
struct node *left;
struct node *middle;
struct node *right;
};
typedef struct node NODE;
typedef NODE *TREE;
我parser.y文件:
%{
#include <stdio.h>
#include <stdlib.h>
#include "st.h"
%}
%union {
int value;
TREE token;
}
的Yacc(或C)給了我這個錯誤:
error: unknown type name ‘TREE’
我明白這很可能是我的錯誤,我非常感謝任何幫助。
注意:**從來沒有**'typedef'指針!並閱讀[問],提供**所有**所需的信息。指定**精確**錯誤消息應該沒有問題,它來自哪裏以及它出現在哪裏。 – Olaf
是yacc還是C給出錯誤? (提示:產生錯誤時運行哪個命令?)如果是C,那麼錯誤是與yacc/bison生成的文件還是(f)lex生成的文件有關? (提示:錯誤信息旁邊會有一個文件名。) – rici
另外:[mcve]。所提供的代碼編譯正確。 – rici