具有Equality运算符(==)的语句的AST节点

时间:2012-06-14 04:25:26

标签: abstract-syntax-tree eclipse-jdt

请告诉我ASTNode(org.eclipse.jdt.core.dom.ASTNode)的哪个子类将使用Equality运算符(==)的语句。

我需要找到代码中的实例,其中非原始类型(例如:Integer)的比较是使用'=='运算符完成的。我想确保'=='运算符仅用于基本类型(例如:int)。

我有 Java代码逻辑 来执行此检查( 使用JDT库 ),但不确定 我必须访问哪种类型的ASTNode 才能访问此类声明。

2 个答案:

答案 0 :(得分:1)

您需要查找'InfixExpressions',其中'运算符'是==(或InfixExpression.Operator.EQUALS)。

请注意,您只需使用ASTView自行找出问题的答案。

答案 1 :(得分:0)

这完全取决于你。你的AST是如何构建的?

一般来说,这就是我要做的事情:

EqualityNode : Node 
{
  Node LHS;
  Node RHS;
}

至于确保语法正确性,那就是某人不这样做:

if == else

在将节点添加到AST之前,应由解析器检查。