2008-11-21 13 views
13

मैं एक अच्छी ओकंपल पार्सिंग लाइब्रेरी की तलाश में हूं जो फ्लेक्स/बाइसन का व्युत्पन्न नहीं है। आदर्श रूप से, मैं पार्ससी की रेखाओं के साथ एक मोनैडिक संयोजक पुस्तकालय चाहता हूं, लेकिन मुझे कुछ भी नहीं मिला।एक अच्छा ओकंपल पार्सर?

मैं हैकेल का उपयोग करता हूं, लेकिन हैकेल के लिए llvm बाइंडिंग को मूल रूप से सोचा जाने से अधिक थकाऊ साबित होता है।

चीयर्स,

डुआन

+0

क्या आप ओकैमल के लिए एक इनपुट भाषा के रूप में एक पार्सर चाहते हैं, या एक कार्यान्वयन भाषा/ –

+0

हाय डुएन के रूप में ओकैमल के साथ एक पार्सर जनरेटर चाहते हैं, जैसा कि एक ही चीज़ में दिलचस्पी है, मैं जानना चाहता हूं कि आपको एक सभ्य पुस्तकालय मिला है या नहीं अंत, और यह आपके लिए कैसे काम करता है। –

उत्तर

11

Here's one library, गूगल के माध्यम से। (जो भी this और this है, जो कई और अधिक प्रासंगिक लगने पुस्तकालयों को सूचीबद्ध लाया।)

जब मैं एमएल में एक Combinator पार्सर ने लिखा है, यह नहीं बल्कि मूल्य प्रतिबंध और उत्सुक मूल्यांकन है, जो मजबूर की वजह से उपयोग करने के लिए बोझिल निकला आप अपने व्याकरण नियमों को ईटा-विस्तारित करने के लिए। ओकंपल को मूल्य प्रतिबंध के बारे में अधिक आराम माना जाता है, हालांकि - शायद आपको उस दर्द से बचाया जाएगा।

+0

मैं एक पार्सर संयोजक नौसिखिया हूं, लेकिन ऐसा लगता है कि एफपीआरसीईसी आपको ईटा-विस्तार (और एफ # में मूल्य प्रतिबंध और उत्सुक मूल्यांकन) के लिए मजबूर नहीं करता है। कृपया मुझे सुधारें अगर मैं गलत हूं। धन्यवाद। –

+0

आईआईआरसी यह रिकर्सिव या परस्पर-पुनरावर्ती प्रस्तुतियों के साथ आया था। क्लेन स्टार में स्वाभाविक रूप से व्यक्त नहीं किया गया है। यह एक दशक से अधिक रहा है क्योंकि मैंने ऐसा किया है, हालांकि - समस्याओं को याद रखना मुश्किल है। –

+1

@ मॉरिसियो: एफ # में गणना अभिव्यक्तियों की मोनैड-जैसी धारणा है; यह वाक्य रचनात्मक जिग्गी-विग्गी आपको सभी अप्रियता को छिपाने की अनुमति देती है। –

3

ओकैमल दुनिया में, stream-based parsers और Camlp4 अगले दो सबसे आम विकल्प हैं। दोनों को पिछले OCaml Journal लेखों में विस्तार से वर्णित किया गया है।

मोनाडिक पार्सर संयोजक ओकैमल में तुलनात्मक रूप से दुर्लभ हैं, काफी हद तक क्योंकि कई उच्च स्तर और अधिक कुशल पुस्तकालय उपलब्ध हैं।

+0

मैं पार्सर संयोजकों के बारे में सीख रहा हूं। जब आप कहते हैं कि "कई उच्च स्तर और बेहद अधिक कुशल पुस्तकालयों उपलब्ध" है, जो लोगों को आप क्या मतलब है? धन्यवाद। –

+0

इसके अलावा, वे FParsec से तुलना कैसे करेंगे? –

+1

मैं camlp4, ocamllex, ulex, ocamlyacc, dpygen, menhir, ocfgc, औरोक्स और दूसरों की बात कर रहा हूँ। मुझे लगता है कि ocamllex पाया जाता है और आम तौर पर ocamlyacc कई बार इस तरह के fslex, fsyacc और FParsec के रूप में एफ # के लिए उपलब्ध किसी भी चीज से पार्स में तेजी से कर रहे थे। –

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