KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I'm trying to reformat/reprint haskell source code (remove/add whitespace, linebreaks, change indention style...). I've found the package haskell-src-exts which can parse and pretty-print haskell source code. Using the function parseFileWithComments :: ParseMode -> FilePath -> IO (ParseResult (Module, [Comment])) I also get the comments included in the source code. Now I want to print the Module/AST with the comments at the original positions, but I cannot find a function which will do that. I can only pretty-print the AST. Do I have to implement printing of the AST plus the comments myself or does such a library already exist? To clarify consider following example: file A.hs: module A (fn1) where -- | Haddock-comment fn1 :: String -> String fn1 _ = "" -- another comment In ghci, typing Prelude Control.Monad.Reader Language.Haskell.Exts> (liftM prettyPrint) $ (liftM fst) $ (liftM fromParseResult) $ parseFileWithComments defaultParseMode "A.hs"` prints the module source code (without the comments, of course). I can use any prettyPrint -function to modify the source code formatting. Now I want to be able to do something like this: do (ast, comments) <- fromParseResult $ parseFileWithComments defaultParseMode "A.hs" prettyPrintWithComments ast comments to get a pretty-printed version of the original file including the comments.
Tags (comma-separated)
Save Edits
Cancel