2012-10-24 10 views
7

क्या कोई हास्केल लाइब्रेरी के बारे में जानता है जो मनमाने ढंग से बैश स्क्रिप्ट को पार्स कर सकता है?बैश स्क्रिप्ट को पार्स करने के लिए हास्केल लाइब्रेरी?

Hackage का एक सरसरी खोज इंगित करता है कि एक पैकेज स्क्रिप्ट लिखने के लिए कहा जाता है bash है कि, लेकिन मैं पार्स करने उनके लिए कुछ भी नहीं दिख रहा है।

असल में मेरे पास बस मुझ पर डंप किए गए बैश स्क्रिप्ट का एक बड़ा संग्रह है, और मैं इसके बारे में कुछ कोड विश्लेषण करना चाहता हूं। लेकिन पहला चरण स्पष्ट रूप से इस सामान को पार्स करने में सक्षम होना है।

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

+4

शुभकामनाएं। यदि आप खुद को पार्सर लिखने जा रहे हैं तो आपको इसकी आवश्यकता होगी। – Satvik

+0

मुझे लगता है कि आप बैश कोड को देखने और वहां पार्सर से काम करने की कोशिश करने से बेहतर होंगे। अस्तित्व में हास्केल बैश पार्सर होने की संभावना दूरदराज में प्रतीत होती है। संभव पुस्तकालय हैं जिन्हें आप एएसटी प्राप्त करने के लिए हास्केल से मूल रूप से उपयोग कर सकते हैं। संभावनाएं: [libbash] (http://dev.gentoo.org/~qiaomuf/libbash.html); [JBash] (http://code.google.com/p/jbash/); [कोई और एक पार्सर लिखना चाहता है] (https://bbs.archlinux.org/viewtopic.php?id=101893), आदि – Orbling

+0

क्या वे स्क्रिप्ट या शैल स्क्रिप्ट को बाश कर रहे हैं? चूंकि पॉज़िक्स खोल वाक्यविन्यास सरल है और पार्सिंग एल्गोरिदम का वर्णन opengroup पर spec में किया गया है। – singpolyma

उत्तर

4

शायद language-sh का विस्तार करें।

Language.Sh पार्स करने और खोल व्याकरण में भाव जोड़ तोड़ के लिए मॉड्यूल का एक संग्रह है। यह एक बड़ी परियोजना का हिस्सा है, शश। कृपया ध्यान दें कि एपीआई कुछ हद तक अस्थिर है जब तक कि हम संस्करण 1.0 तक नहीं पहुंच जाते।

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