首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Eclipse JDT ASTVisitor -如何判断一个字段是在方法中读取还是写入?

问Eclipse JDT ASTVisitor -如何判断一个字段是在方法中读取还是写入?
EN

Stack Overflow用户
提问于 2009-10-18 02:44:01
回答 1查看 1.4K关注 0票数 0

我正在编写一个Eclipse ASTVisitor。如何判断一个字段在一个方法中是读还是写?

提供的想法是“您需要查看赋值节点。LHS上的字段是写入的,而RHS表达式上的字段是读取的。”

访问赋值并获得表达式的LHS和RHS后,如何判断表达式是否包含该字段?

EN

回答 1

Stack Overflow用户

发布于 2009-10-18 05:05:31

如果你在做AST工作,我建议你使用AST View plugin。对于理解JDT AST,它是一个非常方便的工具。

你的方法将会奏效。我在访问器中使用一个变量来表示我正在执行一个赋值操作。

代码语言:javascript
复制
    public boolean visit(final Assignment node) {
    inVariableAssignment = true;
    node.getLeftHandSide().accept(this);
    inVariableAssignment = false;
    node.getRightHandSide().accept(this);
    return false;
}

现在,当访问SimpleName或QualifiedName时,我会这样做:

代码语言:javascript
复制
    public boolean visit(final SimpleName node) {
    if (!node.isDeclaration()) {
        final IBinding nodeBinding = node.resolveBinding();
        if (nodeBinding instanceof IVariableBinding) {
            ...
        }
    }
    return false;
}

省略号(...)将被替换为根据inVariableAssignment的值处理字段访问的代码。这将帮助您开始。

别忘了PostfixExpression和PrefixExpression..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1583850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档