C#3のGCC_XMLに似たものがあるかどうか疑問に思いました。基本的に、プログラムの構文構造全体をXMLで表す方法です。
表現が作成されたら、それをXDocumentに解析し、そこから解釈またはクエリしたいと思っていました。
このためのツールはありますか?
C#3のGCC_XMLに似たものがあるかどうか疑問に思いました。基本的に、プログラムの構文構造全体をXMLで表す方法です。
表現が作成されたら、それをXDocumentに解析し、そこから解釈またはクエリしたいと思っていました。
このためのツールはありますか?
当社のDMS Software Reengineering Toolkit は、C# 2/3/4 でこれを行うことができます。(EDIT 2014: そして現在は C#5、EDIT 2020: 現在は C#7 が C#8 に取り組んでいます)
DMS には、C# (および Java や他の多くの言語) 用のコンパイラの正確なパーサーがあります。
解析するものに対して、完全な抽象構文ツリーを自動的に構築します。各 AST ノードには、そのノードの開始を表すトークンのファイル/行/列がスタンプされ、最後の列は DMS API 呼び出しによって計算できます。コメントが失われないように、ツリー ノードにコメントを付けます。DMS は、AST または変更された AST から有効なコードを再生成することもできます。これにより、コードの変更または生成に使用できます。
AST から XML を生成する組み込みオプションがあり、ノード タイプ、ソース位置 (上記のように)、および関連付けられたリテラル値を備えています。コマンドライン呼び出しは次のとおりです。
run DMSDomainParser ++XML <path_to_your_file>
DMS 自体は、それが構築する AST を操作するための膨大な量のインフラストラクチャを提供します: トラバース、パターン マッチング (基本的にソース形式でコード化されたパターンに対して)、ソースからソースへの変換。
コントロール フロー、データ フロー、ポイント ツー アナリシス、C、COBOL、および Java 用のグローバル コール グラフがあります。これですべて C# に対応できます。
DMS は、そのようなコードを操作するための XML よりもはるかに優れたソリューションになるように設計されています。