私はEclipse ASTVisitorを書いています。フィールドがメソッドで読み取られているか書き込まれているかを確認する方法は?
提供されたアイデアは、「Assignment ノードを表示する必要があります。LHS 式のフィールドが書き込まれ、RHS 式のフィールドが読み取られる」というものでした。
割り当てにアクセスして、どちらも Expression である LHS と RHS を取得した後、Expression にフィールドが含まれているかどうかを確認するにはどうすればよいですか?
私はEclipse ASTVisitorを書いています。フィールドがメソッドで読み取られているか書き込まれているかを確認する方法は?
提供されたアイデアは、「Assignment ノードを表示する必要があります。LHS 式のフィールドが書き込まれ、RHS 式のフィールドが読み取られる」というものでした。
割り当てにアクセスして、どちらも Expression である LHS と RHS を取得した後、Expression にフィールドが含まれているかどうかを確認するにはどうすればよいですか?
AST の作業を行っている場合は、AST ビュー プラグインを使用することをお勧めします。これは、JDT AST を理解するための非常に便利なツールです。
あなたのアプローチはうまくいきます。ビジター内で変数を使用して、割り当てられていることを示します。
public boolean visit(final Assignment node) {
inVariableAssignment = true;
node.getLeftHandSide().accept(this);
inVariableAssignment = false;
node.getRightHandSide().accept(this);
return false;
}
さて、 aSimpleNameまたは aQualifiedNameにアクセスするときは、次のようにします。
public boolean visit(final SimpleName node) {
if (!node.isDeclaration()) {
final IBinding nodeBinding = node.resolveBinding();
if (nodeBinding instanceof IVariableBinding) {
...
}
}
return false;
}
省略記号 (...) は、 の値に従ってフィールド アクセスを処理するコードに置き換えられますinVariableAssignment。これで始められます。
ああ、忘れないPostfixExpressionでPrefixExpression...