【问题标题】:Modifying the pretty printer from haskell-src-exts从 haskell-src-exts 修改漂亮的打印机
【发布时间】:2010-07-09 21:30:22
【问题描述】:

haskell-src-exts 包具有漂亮打印 Haskell AST 的功能。我想要做的是改变它在某些构造函数上的行为,在我的例子中是打印 SCC pragma 的方式。所以其他一切都应该以默认方式打印,只有 SCC 的处理方式不同。是否可以在不复制source file 并对其进行编辑的情况下做到这一点,这就是我现在正在做的事情?

【问题讨论】:

    标签: haskell pretty-print


    【解决方案1】:

    嗯,库做了一件正确的事,使用 Pretty 的类型类。接下来的挑战是如何为要以不同方式打印的构造函数选择不同的实例。理想情况下,您只需键入您关心的 AST 节点,然后以某种方式将其替换为 AST。

    现在,这里的问题是库导出的 Haskell AST 的类型结构是固定的。它没有,例如使用two-level types,它可以让你用新类型替换树的一部分。因此,您必须将 AST 的类型重新定义为您希望更改其类型的节点。

    【讨论】:

    • 如何使用这种技术来替换 AST 中的节点?假设我想用一些自定义类型MyArith 替换(在引用论文的定义中)Term 中的ArithTerm 的定义不是固定使用Arith 吗?
    猜你喜欢
    • 2016-07-07
    • 1970-01-01
    • 2021-02-06
    • 2011-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-20
    • 1970-01-01
    相关资源
    最近更新 更多