7

CDTのASTAPIを使用して、ソースコードを正常に解析することができました。私の質問にはその逆が含まれます。プログラムでCASTを作成し、それ自体をファイルに書き込むように指示するにはどうすればよいですか。クラスASTWriter(ただし、これは内部クラス)を見たことがありますが、実際のASTの構築に関するチュートリアルやドキュメントが見つかりません。

私がやりたいことのアイデアを説明する論文を見つけました。ツリーを構築して「自分で書く」と言えば、コードの生成が簡単に見えるようにする、書き換え可能な抽象構文ツリーの生成です。これはCDTで可能ですか?また、どのように始めればよいですか(非推奨/内部メソッドなしで)。

4

2 に答える 2

2

必要なのはASTWriterを使用することです。

ASTWriter writer = new ASTWriter()
String code = writer.write(myAST);

次に、文字列をeclipseリソースプラグインのコンテキストにあるファイルにダンプできます。

于 2015-01-21T13:52:52.687 に答える
1

CRefactoringとそのサブクラス(ExtractFunctionRefactoringなど)の調査から始めることをお勧めします。

CDTリファクタリングフレームワークが対処しようとする多くの問題があります。

  1. 実際にソースコードにコミットする前に、ユーザーに変更をプレビューさせます。
  2. 保存されていないファイルのバグを操作します(たとえば、保存されていないソースエディタでコードを再構築します)
  3. 新しく生成されたコードのユーザーコードフォーマット設定を尊重します。
  4. 複数のソースファイルにまたがる実行不可能なトランザクション。

これらの機能をすべて必要としない場合でも、これら2つのクラスが出発点として適していると確信しています。

于 2013-01-08T17:57:03.140 に答える