उत्पन्न करते समय बहुत सरल एएनटीएलआर त्रुटि हैंडलिंग उदाहरण की तलाश करना मैं सी कोड उत्पन्न करना चाहता हूं। मैं इनपुट फ़ाइल से नहीं पढ़ूंगा, एक समय में एक पंक्ति (उदाहरण के लिए, एक कंपाइलर हो सकता है)। इसके बजाय, मैं एक समय में एक पंक्ति के रूप में उपयोगकर्ता इनपुट पार्सिंग कर रहा हूँ।सी कोड
मैं पता लगाने के लिए और lexer/पार्सर में बुरा इनपुट संभाल, जैसे
/* lexer tokens */
foo : "FOO";
bar : "BAR";
baz : "BAZ";
/* grammar*/
grammar : foo "=" BAZ
| foo "=" BAR
| <some non-existent Antrl-else> : {printf(stderr, "bad input\n");}
;
ठीक है, अगर मैं lexer/पार्सर में यह नहीं पकड़ सकते पसंद करेंगे, ऐसा लगता है जैसे मैं displayRecognitionError()
उपयोग करने की आवश्यकता पर कैसे??
क्या कोई मुझे एक बहुत ही सरल उदाहरण पर इंगित कर सकता है जो सी कोड उत्पन्न करता है और अमान्य इनपुट के कुछ त्रुटि प्रबंधन को दिखाता है?
धन्यवाद!
ठीक है, उपहार, yippee!
लेकिन असली, कामकाजी उत्तर के साथ, वास्तविक, कामकाजी उत्तर के लिए। नहीं "wxample के बिना विधि X() का उपयोग करें।
एफवाईआई: यह बकाया दिन समाप्त होने के बाद सबसे अधिक वोटों के साथ उत्तर पर जाएगा, भले ही आप कोई जवाब स्वीकार करते हैं या नहीं। –
शायद यह धागा मदद की है: http://markmail.org/message/pumvrybnhvfme5h6#query:rulecatch%20antlr%20c+page:1+mid:3jjjdzbecknrq644+state:results (उस प्रश्न पर पोस्ट किए गए विभिन्न उत्तरों को नोट करें!) –
मुझे लगता है कि आप अपने उदाहरण में printf का उपयोग कर रहे हैं। क्या आप सी या सी ++ का उपयोग कर रहे हैं? – chollida