5

haskell-src-exts パッケージには、Haskell AST をきれいに出力する関数があります。私がやりたいのは、特定のコンストラクターでの動作を変更することです。私の場合は、SCC プラグマが出力される方法です。したがって、他のすべてはデフォルトの方法で出力する必要があり、SCC のみが異なる方法で処理されます。ソースファイルをコピーして編集せずにそれを行うことは可能ですか?それは私が今行っていることです?

4

1 に答える 1

2

さて、ライブラリは、Pretty の型クラスを使用して、1 つの正しいことを行いました。その場合の課題は、異なる方法で出力したいコンストラクターに対して異なるインスタンスを選択する方法です。理想的には、関心のある AST ノードを単に newtype し、何らかの方法でそれを AST に置き換えます。

ここでの問題は、ライブラリによってエクスポートされた Haskell AST の型構造が固定されていることです。たとえば、ツリーの一部を newtype に置き換えることができるtwo-level typesを使用しません。そのため、タイプを変更したいノードまで AST のタイプを再定義する必要があります。

于 2010-07-09T23:55:05.877 に答える