1

(タイトルが示すように) scala 構文ツリーを使用するツールを開発したいと思います。より具体的には、各コンパイル フェーズの後にツリーを使用できれば素晴らしいと思います。

私の研究は、私が探していたもののように思われる Dotty の TASTY 交換フォーマットに私を導きました。おそらくそうです。ただし、それを抽出して使用する方法を理解するための適切なドキュメントをオンラインで見つけることができませんでした。

また、dotc コンパイラ フラグも調べましたが、明白なアプローチがわかりませんでした。オプション「-print-tasty」に気付きましたが、期待される出力を確認できませんでしたか、何か不足していますか?

もちろん、scala プリンター (つまり、-Yshow-trees など) を使用して、各フェーズの後にいつでも AST を出力できます。これは私の唯一のオプションですか?もしそうなら、大丈夫です。

理想的には、もっと「機械に優しい」形式で AST を使用できれば素晴らしいと思います。TASTY は私が理論的に望んでいるもの、つまり AST のシリアル化のようですが、各フェーズの後でこれを抽出する方法がわかりません。

私の質問があまりにも些細なことだったり、すでに解決済みだったりしたら、申し訳ありません。どんなフィードバックでも大歓迎です! ありがとう !

PS: AST が JSON 形式でエンコードされている場合はどうなりますか? そのような scala ツール (つまり、Scala AST を JSON に変換して戻すツール) は理にかなっていますか?

4

0 に答える 0