मैंने हाल ही में पाइथन का उपयोग करके पाइथन में एक पार्सर लिखा है (यह yacc का एक अजगर पुनर्मूल्यांकन है)। जब मैं लगभग पार्सर के साथ किया गया तो मुझे पता चला कि मुझे जिस व्याकरण की आवश्यकता है उसे मुझे लेक्सर को सूचित करने के लिए पार्सिंग के दौरान कुछ देखने की आवश्यकता है। लेक्सर को सूचित करने के लिए एक नज़र डाले बिना मैं भाषा में तारों को सही ढंग से पार्स नहीं कर सकता।पार्सन के पायथन कार्यान्वयन?
ग्रामार नियमों से लेक्सर की स्थिति को नियंत्रित करने के अलावा मुझे लगता है कि मैं पार्सर मॉड्यूल में एक लुकअप टेबल का उपयोग करके अपने उपयोग मामले को हल कर दूंगा, लेकिन इसे बनाए रखना/परीक्षण करना बहुत मुश्किल हो सकता है। तो मैं कुछ अन्य विकल्पों के बारे में जानना चाहता हूं।
हास्केल में मैं पारसीक, पार्सिंग फ़ंक्शंस की लाइब्रेरी (जिसे संयोजक के रूप में जाना जाता है) का उपयोग करता हूं। क्या Parsec का एक पायथन कार्यान्वयन है? या शायद कुछ अन्य उत्पादन गुणवत्ता लाइब्रेरी पार्सिंग कार्यक्षमता से भरा है ताकि मैं पाइथन में एक संदर्भ संवेदनशील पार्सर बना सकूं?
संपादित करें: संदर्भ में मेरे सभी प्रयास मुफ्त पार्सिंग विफल हो गए हैं। इस कारण से, मैं उम्मीद नहीं करता कि एएनटीएलआर यहां उपयोगी हो।
मेरे मामले में मुझे पारंपरिक पार्सिंग से अधिक की आवश्यकता है ऐसा लगता है। पारंपरिक संदर्भ मुक्त पार्सर लिखने के मेरे सभी प्रयास सैद्धांतिक कारणों से उनके चेहरे पर गिर गए हैं। मुझे इस बिंदु पर काफी भरोसा है कि मुझे कम से कम सशर्त ऋण की आवश्यकता है। क्या एएनटीएलआर अभी भी लागू होगा? –
आपके पास * एएनटीएलआर के साथ लुक है और यदि आपको आवश्यकता है तो आप सिंटैक्टिक्स जोड़ सकते हैं और अपने व्याकरण में भविष्यवाणी कर सकते हैं (अर्थशास्त्र भविष्यवाणी भी मौजूद है)। एंटरलवर्क का उपयोग करें, यह व्याकरण (http://www.antlr.org/works/index.html) को डिज़ाइन/डिबग करने के लिए वास्तव में सहायक है। एएनटीएलआर साइट पर भी तैयार व्याकरण तैयार हैं। –