我正在编写一个Eclipse ASTVisitor。如何判断是否在方法中读取或写入字段?
提供的想法是“你需要访问Assignment节点。编写LHS上的字段,同时读取RHS表达式上的字段。”
在我访问作业并获得两个都是表达式的LHS和RHS之后,如何判断表达式是否包含该字段?
答案 0 :(得分:0)
如果您正在进行AST工作,我建议您使用AST View plugin。它是理解JDT AST的一个非常方便的工具。
你的方法会奏效。我在访问者中使用一个变量来表明我正在进行任务。
public boolean visit(final Assignment node) {
inVariableAssignment = true;
node.getLeftHandSide().accept(this);
inVariableAssignment = false;
node.getRightHandSide().accept(this);
return false;
}
现在,在访问SimpleName
或QualifiedName
时,我会执行以下操作:
public boolean visit(final SimpleName node) {
if (!node.isDeclaration()) {
final IBinding nodeBinding = node.resolveBinding();
if (nodeBinding instanceof IVariableBinding) {
...
}
}
return false;
}
省略号(...)将替换为根据inVariableAssignment
的值处理字段访问的代码。这将帮助您入门。
哦,别忘了PostfixExpression
和PrefixExpression
...