特定のモジュールの AST が何であるかを確認できるようにして、それに対して適切なフィルターを作成できるようにしたいと考えています。
フィルタに「ログ」する方法が今のところよくわからないので、たとえば一致を試み、一致が失敗した場合はログに記録し、Camlp4AstLifter 関数を使用してモジュールをツリーに変換し、それを出力します。コンソールに出力し、次のようにマッチ パターンを作成しようとします。
camlp4o -filter Camlp4AstLifter -printer o name_of_file.ml
mli ファイルを取得し、camlp4 フィルターを使用してこの mli ファイルのデフォルトの実装を作成したい場合、これは現時点では少し不十分です。
Camlp4AstLifter を使用してツリーを表示することはできません。これは、このコマンドが mli で機能しないように思われるため (出力として再度 mli が表示される)、一致しようとしているときに少し盲目になるためです。
誰かがアイデアを得ましたか?または、フィルタリング/マッチングのアプローチを改善する方法についてのヒントかもしれません (まだ正しくやっているとは思えません。非常に面倒です)。
カスパー