में प्रारंभिक राज्यों में मैं एक पार्सर जनरेटर के लिए फ्लेक्स और बायसन का उपयोग कर रहा हूं, लेकिन मेरे स्कैनर में प्रारंभिक राज्यों में समस्याएं हैं।लेक्स/फ्लेक्स
मैं विशेष नियमों का उपयोग कर रहा हूँ टिप्पणी से निपटने के लिए है, लेकिन इस व्याकरण उद्धृत टोकन मिलान करने के लिए प्रतीत नहीं होता: लाइन इस सरल उदाहरण में
%x COMMENT
// { BEGIN(COMMENT); }
<COMMENT>[^\n] ;
<COMMENT>\n { BEGIN(INITIAL); }
"==" { return EQUALEQUAL; }
. ;
:
// a == b
'isn टी पूरी तरह से एक टिप्पणी के रूप में मेल नहीं खाता, जब तक कि मैं इस नियम को शामिल नहीं करता:
<COMMENT>"==" ;
मैं इसके साथ कैसे घूम सकता हूं इन सभी टोकन को मेरे विशेष नियमों में जोड़ना नहीं है?
मैं नहीं बल्कि समावेशी राज्यों का उपयोग करने के रूप में मैं नियमों का एक बहुत कुछ है अगर यह बचा जा सकता है की जरूरत नहीं होगी। समस्या यह है कि 'टिप्पणी खाएं' नियम एक से अधिक वर्णों (जैसे ==) के साथ टोकन से मेल नहीं खाता प्रतीत होता है। – Dan
तब मुझे लगता है कि आप कुछ गलत कर रहे हैं। आपको टिप्पणियों के लिए 'उप पार्सर' बनाना होगा, जो आपके सामान्य टोकन से मेल नहीं खाता है। –
कहें, आप प्रत्येक इनपुट की रेखा को स्टोर करना चाहते हैं, तो क्या यह आपको गलत लाइन नंबर देगा? –