पारसेक (पार्सर)

पारसेक हास्केल (प्रोग्रामिंग भाषा) में पार्सर लिखने के लिए एक लाइब्रेरी (कंप्यूटिंग) है। यह उच्च-क्रम पार्सर संयोजक  पर आधारित है, इसलिए एक जटिल पार्सर कई छोटे पार्सर से बनाया जा सकता है। सहित कई अन्य भाषाओं में इसे दोबारा लागू किया गया है एरलांग (प्रोग्रामिंग भाषा), अमृत ​​(प्रोग्रामिंग भाषा), ओकैमल, और एफ शार्प (प्रोग्रामिंग भाषा)|एफ#, साथ ही अनिवार्य भाषाएँ जैसे सी शार्प (प्रोग्रामिंग भाषा)|सी#, और जावा (प्रोग्रामिंग भाषा)। क्योंकि पार्सर कॉम्बिनेटर-आधारित प्रोग्राम आम तौर पर पार्सर जनरेटर प्रोग्राम की तुलना में धीमा होता है, पारसेक का उपयोग आम तौर पर छोटी डोमेन-विशिष्ट भाषाओं के लिए किया जाता है, जबकि हैप्पी (सॉफ़्टवेयर) का उपयोग ग्लासगो हास्केल कंपाइलर जैसे कंपाइलरों के लिए किया जाता है। पारसेक से प्राप्त अन्य हास्केल पार्सर कॉम्बिनेटर लाइब्रेरी में मेगापारसेक शामिल है और एटोपार्सेक। पारसेक बीएसडी-3-क्लॉज लाइसेंस के तहत जारी किया गया मुफ्त सॉफ्टवेयर है।

उदाहरण
पारसेक में लिखे गए पार्सर सरल पार्सर से शुरू होते हैं, जैसे कि वे जो कुछ स्ट्रिंग्स को पहचानते हैं, और उन्हें अधिक जटिल व्यवहार के साथ एक पार्सर बनाने के लिए जोड़ते हैं। उदाहरण के लिए,  एक अंक को पार्स करता है, और   एक विशिष्ट स्ट्रिंग को पार्स करता है (जैसे  ).

पार्सेक जैसे पार्सर कॉम्बिनेटर लाइब्रेरी पार्सर्स को वास्तविक मूल्यों पर चलाने के लिए उपयोगिता कार्य प्रदान करते हैं। एक स्ट्रिंग से एकल अंक को पहचानने के लिए एक पार्सर को दो कार्यों में विभाजित किया जा सकता है: एक पार्सर बनाने के लिए, और एक  वह फ़ंक्शन जो इन उपयोगिता फ़ंक्शंस में से किसी एक को कॉल करता है (  इस मामले में) पार्सर चलाने के लिए: हम परिभाषित करते हैं ए   प्रकार का हस्ताक्षर बनाने के लिए टाइप करें   पढ़ने में आसान. यदि हम इस प्रोग्राम को बदलना चाहते हैं, तो किसी एक स्ट्रिंग को पढ़ने के लिए कहें  या स्ट्रिंग , हम ऑपरेटर का उपयोग कर सकते हैं  , द्वारा प्रदान किया गया   टाइपक्लास, दो पार्सर्स को एक एकल पार्सर में संयोजित करने के लिए जो या तो कोशिश करता है:

बाहरी संबंध

 * Parsec on the Haskell wiki
 * Parsec on Hackage