2011-09-08 19 views
5

फ्लेक्स/बाइसन का उपयोग कर एक कंपाइलर विकसित कर रहा हूँ। मेरे पास मेरे निर्माण आउटपुट में यह चेतावनी है।चेतावनी बाइसन संकलन

warning: type clash ('s' '') on default action

किसी भी मदद कृपया?

+1

यह 'कंपिलेटर' नहीं है, यह एक 'कंपाइलर' है। –

उत्तर

7

ऐसा लगता है कि यह आपके स्रोत में आपके% टोकन और% प्रकार की घोषणा से संबंधित है। स्रोत लाइन के बिना और संबंधित टोकन और प्रकार की घोषणा के बिना यह आपकी मदद करना मुश्किल है।

आप प्रकार वैल के expr निर्दिष्ट और प्रकार का एक आईडी टोकन Definer tptr

%{ 
#include "parser.h" 
%} 
%type <val> expr 
%token <tptr> ID 

आप कोई भी कार्रवाई जंगली भैंसों के बिना लिखते हैं तो एक चेतावनी उत्सर्जित करेगा

expr : ID; 

warning: type clash ('tptr' 'val') on default action 

नोट हैं कि जंगली भैंसों स्तर मैं वर्तमान में इस मामले में एक मामूली अलग संदेश प्रिंट का उपयोग कर रहा हूं।

expr : ID { $$ = some_conversion_code($1); } 

http://www.gnu.org/s/bison/manual/bison.html#Token-Decl

+0

@VGCE तो ऑप चेतावनी को सही करने के लिए क्या करेगा? कार्रवाई में क्या जाना चाहिए? – Har

0

उपयोग संघ परिभाषा लेक्स से अपने दिए गए टोकन टाइप करने के लिए:

foo.by:10.12:warning: type clash on default action : <tptr> != <val> 

इस चेतावनी आप कोई स्पष्ट कदम की जरूरत है ठीक करने के लिए।