ソースファイルからコンパイラASTを取得する必要があるsbtプラグインがあります。次のコードで新しいコンパイラを作成しようとしました。
val settings = new Settings
settings.usejavacp.value = true
val compiler = new tools.nsc.interactive.Global(settings, new StoreReporter())
しかし、次のエラーが発生します。
java.lang.Error: typeConstructor inapplicable for <none>
どういうわけかsbtの内部コンパイラと衝突しているようです。
それで、sbt内からそれらのファイルのASTを取得する方法はありますか?
または、sbtのコンパイラから直接取得することは可能ですか?(毎回すべてを再コンパイルする必要がないので、それはさらに良いでしょう)
編集:
「インタラクティブ」の代わりにtools.nsc.Globalを使用してもエラーは発生しないようですが、そこからASTを取得する方法がわかりません。
編集:
さて、tools.nsc.Global
私がいくつかのファイルをコンパイルしようとすると同じエラーで失敗します:(
SBT FAQには、コンパイラを初期化するときに「代表型」を使用する必要があると記載されています- settings.embeddedDefaults[MyType]
。しかし、私はそれに何を送るべきかを正確に理解することはできません。誰かがそれを手伝ってくれる?