yacc ऐसा प्रतीत नहीं होता है जब मेरे टोकन एक प्रकार के होते हैं जिसे मैंने परिभाषित किया था।yacc - फ़ील्ड में अपूर्ण प्रकार
मेरी व्याकरण (.y
) एक %{ ... %}
ब्लॉक में फ़ाइल के शीर्ष पर, मैं एक हेडर फाइल कि निम्नलिखित संरचना को परिभाषित करता है में शामिल हैं:
typedef struct _spim_register {
spim_register_type type; /* This is a simple enumeration, already defined */
int number;
} spim_register;
नियमों की मेरी सूची से पहले, मैं है:
%token AREG
...
%union {
struct _spim_register reg;
}
...
%type <reg> register AREG
मैंमें लाइन पर
error: field ‘reg’ has incomplete type
मिल बाइसन द्वारा उत्पादित कोड संकलित करने की कोशिश करते समयखंड। मेरी %union
बयान में spim_register reg;
लिख कर reg घोषित करने के लिए कोशिश कर त्रुटि देता है:
unknown type name ‘spim_register’
ऐसा लगता है कि वहाँ कुछ विशेष के बारे में %union { ... }
है जैसे, क्योंकि मैं के लिए कार्रवाई में मेरी हेडर फाइल से डेटा संरचनाओं उपयोग करने में सक्षम हूँ नियम।
[संभावित रूप से संबंधित] (http://stackoverflow.com/questions/1430390/include-struct-in-the-union-def-with-bison-yacc) – user786653