【问题标题】:Parsing haskell preserving comments / formatting解析haskell保留评论/格式
【发布时间】:2011-05-20 07:32:25
【问题描述】:

我想做一些源代码转换(自动导入列表清理),我想保留 cmets 和格式。我断断续续地听到一些关于执行此操作的解析器的信息,我认为是 ghc 解析器。

看起来我可以通过从文件中提取内容来使用 hs-src-exts Language.Haskell.Exts.Annotate 及其 SrcSpans 来做到这一点。我认为 SrcsSpanInfo 仅涵盖已解析的部分,但理论上我可以通过查看两者之间的内容来找出 cmets。但它没有详细记录,也没有我能找到的辅助函数,而且看起来很麻烦,例如没有简单的方法可以打印出包含格式和 cmets 的解析表达式。所以我认为它不应该以这种方式使用,它只是为了让您可以突出显示文件中的代码或其他东西。我的印象是作者打算使用注释来支持这一点,但一直没有解决。

看起来 yi 和 leksah 都没有这样做。我觉得 HaRe 可能,但它没有超级记录。有没有执行此操作的 haskell 解析器?

【问题讨论】:

    标签: parsing haskell


    【解决方案1】:

    haskell-src-exts 最近获得了对preserving comments 的支持,并且已经记录了src spans。我不确定是否支持漂亮的打印,但你可能会得到它的工作。

    GHC 解析器也做类似的事情。

    【讨论】:

    • 你完全正确,不知何故我错过了 parseWithComments 的东西。看起来这会奏效。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2021-09-29
    • 2015-06-12
    • 2013-01-13
    • 2012-05-31
    • 1970-01-01
    • 2010-12-06
    • 2017-04-13
    • 1970-01-01
    相关资源
    最近更新 更多