2017-01-15 11 views
2

ビルド中にC#コンパイラが使用するC#AST(抽象構文木)に直接アクセスできるかどうか疑問に思っていますか?私はRoslyn APIを使って特定のプロジェクトのASTを得ることができますが、それは私が理解しているように、ソースコードを読み直して再解析する必要があります。Roslyn C#コンパイラのASTから直接利益を得る方法はありますか?

考えられるのは、結果のプログラムのいくつかのプロパティを分析するために使用されるカスタムMSBuildタスク(現在はVisual Studio 2017、dotnet coreを使用)を改善することです。

プロセスを高速化するには、何らかの理由でコンパイラにプラグインするか、少なくともキャッシュされたデータにアクセスするのが良いでしょう。

ASTの変更は必要ありません。これは、読み取り専用アクセスに関するものです。

+2

アナライザーを作成する必要があります。 – SLaks

+0

詳細を教えてください。これはどんなキャッシュの恩恵ですか? – Fionn

+1

アナライザは、同じASTおよびセマンティックモデルを使用して、コンパイルプロセスの一部として実行されます。 – SLaks

答えて

1

はい、ツリーを分析する場合は、そのための全機能があります。 Documentation is here

関連する問題