का उपयोग करने का प्रयास करने के लिए मुझे कुछ कोड पार्स करने के लिए फ्लेक्स और बाइसन का उपयोग करने की आवश्यकता है।बाइसन YYSTYPE: char *
वाई वाईएसटीवाईई का डिफ़ॉल्ट प्रकार int
है, भले ही मैंने इसे कभी भी घोषित नहीं किया। क्या यह बाइसन से डिफ़ॉल्ट है?
इससे स्ट्रिंग्स को वापस करने में बहुत मदद मिलेगी। मैंने इसे पढ़ा: How to solve Bison warning "... has no declared type" यह एक अच्छा दृष्टिकोण की तरह दिखता है। (मुझे अभी तक एक संघ की पूर्ण शक्ति की आवश्यकता नहीं है, केवल char * भाग है, लेकिन मैं संघ का भी उपयोग कर सकता हूं क्योंकि यह बाद में सहायक हो सकता है।)
यह मेरे लिए काम नहीं कर रहा है।
[a-zA-Z]+[a-zA-Z0-9]* { yylval.str = strdup(yytext); return yident;}
क्या किसी और की आवश्यकता है:
%union {
char *str;
}
%type<str> ConstExpression ConstFactor Type
यहाँ मेरी .l
फ़ाइल से एक पंक्ति है:
y:111.37-38: $1 of `ConstExpression' has no declared type
y:113.34-35: $1 of `ConstFactor' has no declared type
y:114.35-36: $1 of `ConstFactor' has no declared type
y:119.34-35: $1 of `Type' has no declared type
y:109.23-48: warning: type clash on default action: <str> != <>
y:115.23-27: warning: type clash on default action: <str> != <>
[...more of the same snipped...]
यहाँ मेरी y
व्याकरण फ़ाइल से घोषणाओं हैं: मैं इन त्रुटियों को मिलता है त्रुटियों को हल करने के लिए क्या करना है?
आप को गंभीरता से लगता है कि लोगों को यह देखे बिना अपने व्याकरण फ़ाइल डीबग कर सकते हैं में अपने टोकन प्रकार को परिभाषित करने की जरूरत है ? –
@ किनोपिको, क्या आपने गंभीरता से इसे कम किया है क्योंकि उसने अपना पूरा होमवर्क पेस्ट नहीं किया और कहा "मुझे तह कोडेज़ दिखाएं"? क्या आपको यह कहने के लिए मार डाला होगा कि "मुझे और जानकारी चाहिए, कृपया पूरी व्याकरण फ़ाइल पोस्ट करें" या कुछ ऐसे? – steveha
@ किनोपिको, जब वह आपके द्वारा अनुरोधित जानकारी पोस्ट करता है, तो क्या आप अपना डाउनवोट पूर्ववत कर देंगे? यह बस कठोर लगता है। – steveha