5

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

4

1 回答 1

2

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

现在,这里的问题是库导出的 Haskell AST 的类型结构是固定的。它不会,例如使用两级类型,这样您就可以用新类型替换树的某些部分。因此,您必须将 AST 的类型重新定义为您希望更改其类型的节点。

于 2010-07-09T23:55:05.877 回答