में बैकस-नौर फॉर्म को कैसे कार्यान्वित करें मुझे पता है कि पाइथन में बीएनएफ (बैकस-नौर फॉर्म) व्याकरण से संबंधित कुछ अस्पष्ट प्रश्न हैं, लेकिन उनमें से कोई भी मेरे आवेदन के संदर्भ में मुझे बहुत मदद नहीं करता है।पाइथन
मेरे पास कई बीएनएफ हैं जिन्हें मुझे कोड लिखने की आवश्यकता है। कोड बीएनएफ व्याकरण का उपयोग करके कानूनी तारों को उत्पन्न और पहचानने में सक्षम होना चाहिए।
मैं जिस पहले बीएनएफ के साथ काम कर रहा हूं वह पाइथन में सभी वास्तविक संख्याओं के लिए है। यह इस प्रकार है:
<real number> ::= <sign><natural number> |
<sign><natural number>'.'<digit sequence> |
<sign>'.'<digit><digit sequence> |
<sign><real number>'e'<natural number>
<sign> ::= ‘’ | ‘+’ | ‘-‘
<natural number> ::= ‘0’ | <nonzero digit><digit sequence>
<nonzero digit> ::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<digit sequence> ::= ‘’ | <digit><digit sequence>
<digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
किसी भी BNF पारसर्स मैं अजगर के लिए मिल गया है असाधारण रूप से जटिल लगते हैं, या बाहर पुस्तकालयों का उपयोग करें। क्या पाइथन में बीएनएफ व्याकरण का उपयोग करने और उत्पन्न करने का कोई आसान तरीका है?
BNF == बैकस सामान्य फ़ॉर्म से एक पार्सर उत्पन्न होगा लिखने के लिए सरल हो सकता है? हम में से उन लोगों के लिए जो हर दिन व्याकरण पार्सर्स के साथ नहीं खेलते हैं। – Ben
@ बेन हाँ, आप सही हैं। स्पष्टीकरण के लिए खेद है, मैं – Jakemmarsh
पोस्ट संपादित करूँगा क्या आप कुछ ऐसा ढूंढ रहे हैं जो एक बीएनएफ फ़ाइल को ग्रामर/लेक्सर उत्पन्न करने के लिए पार्स करेगा या जिसे आप पाइथन में लिख सकते हैं उसे बीएनएफ के समकक्ष वर्णित करने के लिए? –