मैं हैकेल स्रोत कोड को दोबारा सुधार/पुनर्मुद्रण करने की कोशिश कर रहा हूं (व्हाइटस्पेस को हटाएं/जोड़ें, लाइनब्रेक्स, इंडेंट स्टाइल बदलें ...)। मुझे पैकेज haskell-src-exts मिला है जो पार्स और सुंदर प्रिंट हैकेल स्रोत कोड कर सकता है।टिप्पणियों के साथ सुंदर प्रिंट हैकेल स्रोत कोड
फ़ंक्शन parseFileWithComments :: ParseMode -> FilePath -> IO (ParseResult (Module, [Comment]))
का उपयोग करके मुझे स्रोत कोड में टिप्पणियां भी शामिल हैं। अब मैं मूल स्थिति में टिप्पणियों के साथ मॉड्यूल/एएसटी मुद्रित करना चाहता हूं, लेकिन मुझे ऐसा कोई फ़ंक्शन नहीं मिल रहा है जो ऐसा करेगा। मैं केवल एएसटी को सुंदर प्रिंट कर सकता हूं। क्या मुझे एएसटी के प्रिंटिंग को स्वयं लागू करना है या ऐसी लाइब्रेरी पहले से मौजूद है?
फ़ाइल A.hs:
निम्न उदाहरण पर विचार स्पष्ट करने के लिए
module A (fn1) where
-- | Haddock-comment
fn1 ::
String ->
String
fn1 _ = "" -- another comment
GHCi में (, टिप्पणियों के बिना निश्चित रूप से)
Prelude Control.Monad.Reader Language.Haskell.Exts> (liftM prettyPrint) $ (liftM fst) $ (liftM fromParseResult) $ parseFileWithComments defaultParseMode "A.hs"`
प्रिंट मॉड्यूल स्रोत कोड टाइपिंग, । मैं स्रोत कोड स्वरूपण को संशोधित करने के लिए किसी भी prettyPrint
-फंक्शन का उपयोग कर सकता हूं।
अब मैं इस तरह कुछ करने के लिए सक्षम होना चाहते हैं:
do
(ast, comments) <- fromParseResult $ parseFileWithComments defaultParseMode "A.hs"
prettyPrintWithComments ast comments
टिप्पणियों सहित मूल फ़ाइल की एक सुंदर-मुद्रित संस्करण मिलता है।
यह काफी मददगार है, लेकिन बिल्कुल वही नहीं जो मैं चाहता था। मैं अभी भी कॉन्फ़िगर किए गए सुंदर-प्रिंट 'स्टाइल' और' PPHsMode' के साथ वास्तविक स्रोत कोड को दोबारा सुधारने में सक्षम होना चाहता हूं। – haja
@ हजा: आप क्यों नहीं कर सकते? यह अभी भी हैकेल-src-ext की 'सुंदर' वर्ग का एक उदाहरण है ... – ivanm
लेकिन फिर फिर, मूल टिप्पणियां सुंदर प्रिंट आउटपुट में कैसे शामिल की जा सकती हैं? मुझे एक ऐसा फ़ंक्शन नहीं मिल रहा है जो Ast _including_ टिप्पणियों को सुंदर-प्रिंट करता है। – haja