2016-11-11 4 views
9

मैंने हाल ही में पर्ल को देखने का फैसला किया, और जब पर्ल 5 बनाम 6 का सामना करना पड़ा, तो मैं इसकी परिपक्वता और विशाल समर्थन के कारण 5 के साथ गया।मैं पर्ल 5 में एक पार्सिंग व्याकरण कैसे परिभाषित कर सकता हूं?

हालांकि, पर्ल 6 की विशेषताओं में से एक जो वास्तव में मुझे चिंतित करता है वह grammar keyword था, जिससे एक भाषा व्याकरण को परिभाषित किया जा सकता है जिसका उपयोग जटिल पाठ को पार्स करने के लिए किया जा सकता है। अन्य भाषाओं में या तो बाहरी लाइब्रेरी या मैन्युअल पार्सिंग कार्यान्वयन की आवश्यकता होती है।

अब जब मैं पर्ल 5 पर बस गया हूं, क्या पर्ल 5 (या व्याकरण बनाने के लिए अन्य कार्यक्षमता) में पर्ल 6 के grammar कीवर्ड के बराबर कोई समकक्ष है, अंतर्निहित या अन्यथा?

+0

https://metacpan.org/pod/Regexp:: ग्रामर एक सीपीएएन मॉड्यूल में से एक है जो कुछ समान करता है। लेखक, डैमियन कॉनवे द्वारा SO पर कुछ जवाब यहां दिए गए हैं, जो इसे बड़े पैमाने पर उपयोग करते हैं। लेकिन दुर्भाग्य से आपका प्रश्न ऑफ-विषय है क्योंकि आप टूल की सिफारिश के लिए पूछ रहे हैं। – simbabque

+1

@ सिंबैबक आप इस विषय को थोड़ा सा विषय देने के लिए थोड़ा सा सवाल उठा सकते हैं: "मैं पर्ल 5 में पाठ को पार्स करने के लिए व्याकरण कैसे परिभाषित कर सकता हूं?" – ThisSuitIsBlackNot

+0

मुझे पता है। लेकिन मुझे लगा कि ओपी को खुद को @ThisSuitIsBlackNot करने के लिए पर्याप्त अनुभव किया गया है;) – simbabque

उत्तर

10

कोई कोर समर्थन नहीं है, लेकिन आप Parse::RecDescent, Marpa::R2, Regexp::Grammars, पर एक नज़र हो सकता है या सरल कार्यों के लिए, बस एक regex में (DEFINE) का उपयोग करें (perlre देखें)।

+0

वे सभी अच्छे मॉड्यूल की तरह दिखते हैं, खासकर 'रेगेक्सपी :: ग्रामर'। क्या आप कृपया '(डेफिन)' के बारे में थोड़ा सा समझाएंगे? इसके लिए * perlre * दस्तावेज़ शुरुआती के लिए थोड़ा उलझन में लगते हैं। –

+0

@ ऑरेंजफ्लैश 81: उदाहरण के लिए [जेएसओएन पार्सर को एक पर्ल रेगेक्स] (http://www.perlmonks.org/?node_id=995856) देखें। – choroba

+0

कूल, धन्यवाद। मैं 3 मिनट में स्वीकार करूंगा। –

1

हालांकि मैंने इसे बहुत अधिक उपयोग नहीं किया है, मुझे विश्वास है कि Acmeist सॉफ़्टवेयर Pegex पर्ल 6 ग्रामर के करीब है।

संबंधित मुद्दे

 संबंधित मुद्दे