我想做一些源代码转换(自动导入列表清理),我想保留注释和格式。我听说过一些关于解析器的事情,我认为对于ghc解析器。
看起来我可以通过hs-src-exts Language.Haskell.Exts.Annotate及其SrcSpans从文件中提取出来。我认为SrcsSpanInfo只涵盖解析的部分,但理论上我可以通过查看两者之间的内容来找出评论。但它没有详细记录,并且没有我能找到的辅助函数,它看起来像一个麻烦,例如没有简单的方法可以打印出解析后的表达式,包括格式和注释。所以我认为这并不意味着以这种方式使用,它只是为了突出文件中的代码或其他东西。我的印象是,作者意图使用注释来支持这一点,但从未接触过它。
看起来既不是yi也不是leksah这样做。我觉得HaRe可能会,但它不是超级记录。那里有一个haskell解析器吗?
答案 0 :(得分:4)
haskell-src-exts
最近获得了对preserving comments的支持,并且已经记录了src spans。我不确定是否支持漂亮的打印,但你可能可以正常工作。
GHC解析器也做类似的事情。