我想做一些源代码转换(自动导入列表清理),并且我想保留注释和格式。我断断续续地听到过一些关于执行此操作的解析器的内容,我认为是 ghc 解析器。
看来我可以通过从文件中提取内容来使用 hs-src-exts Language.Haskell.Exts.Annotate 及其 SrcSpans 来完成此操作。我认为 SrcsSpanInfo 只涵盖了解析的部分,但理论上我可以通过查看之间的内容来找出注释。但它没有详细记录,而且我找不到任何辅助函数,而且看起来很麻烦,例如没有简单的方法可以打印出已解析的表达式(包括格式和注释)。所以我认为它不应该以这种方式使用,它只是让您可以突出显示文件中的代码或其他内容。我的印象是,作者本想使用注释来支持这一点,但从未抽出时间。
看起来 yi 和 leksah 都没有这样做。我觉得 HaRe 可能会,但它并没有很好的记录。有没有一个 haskell 解析器可以做到这一点?
The haskell-src-exts
最近得到了支持保留评论 http://hackage.haskell.org/packages/archive/haskell-src-exts/1.10.2/doc/html/Language-Haskell-Exts-Parser.html,并且已经记录了源代码跨度 http://hackage.haskell.org/packages/archive/haskell-src-exts/1.10.2/doc/html/Language-Haskell-Exts-SrcLoc.html#t%3aSrcSpan。我不确定是否支持漂亮的打印,但你可能可以让它工作。
GHC 解析器也做类似的事情。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)