如何使用 JDT-AST 在已知行中提取条件?
How to extract a condition in a known line using JDT-AST?
我有这样的方法:
public static int calc(int a, int b) {
if (a >= b)
return a - b;
return 0;
}
我想知道在已知行号上使用的条件。在这种情况下,我的预期结果是条件的名称,例如“>=”。
我知道如何解析给定 ICompilationUnit
的 CompilationUnit
。但是我怎样才能得到条件呢?
为此你必须创建一个 ASTVisitor 来访问所有的中缀表达式。在访问者 class 中,访问方法将具有以下内容:
@Override
public boolean visit(InfixExpression node) {
Operator op= node.getOperator();
if(op.equals(Operator.GREATER) || op.equals(Operator.EQUALS) || ....)
conditionalInfixExpressionList.add(node);
return super.visit(node);
}
在visit
方法中的if语句中,你必须检查中缀表达式是否是一个条件变量,并相应地将它添加到列表中。
我有这样的方法:
public static int calc(int a, int b) {
if (a >= b)
return a - b;
return 0;
}
我想知道在已知行号上使用的条件。在这种情况下,我的预期结果是条件的名称,例如“>=”。
我知道如何解析给定 ICompilationUnit
的 CompilationUnit
。但是我怎样才能得到条件呢?
为此你必须创建一个 ASTVisitor 来访问所有的中缀表达式。在访问者 class 中,访问方法将具有以下内容:
@Override
public boolean visit(InfixExpression node) {
Operator op= node.getOperator();
if(op.equals(Operator.GREATER) || op.equals(Operator.EQUALS) || ....)
conditionalInfixExpressionList.add(node);
return super.visit(node);
}
在visit
方法中的if语句中,你必须检查中缀表达式是否是一个条件变量,并相应地将它添加到列表中。