请让我知道带有相等运算符 (==) 的语句将出现在 ASTNode (org.eclipse.jdt.core.dom.ASTNode) 的哪个子类下。
我需要找出代码中使用“==”运算符完成非原始类型(例如:整数)比较的实例。我想确保“==”运算符仅用于原始类型(例如:int)。
我有执行此检查的Java 代码逻辑(使用 JDT 库),但不确定我必须访问哪种类型的 ASTNode才能访问此类语句。
请让我知道带有相等运算符 (==) 的语句将出现在 ASTNode (org.eclipse.jdt.core.dom.ASTNode) 的哪个子类下。
我需要找出代码中使用“==”运算符完成非原始类型(例如:整数)比较的实例。我想确保“==”运算符仅用于原始类型(例如:int)。
我有执行此检查的Java 代码逻辑(使用 JDT 库),但不确定我必须访问哪种类型的 ASTNode才能访问此类语句。
您需要查找“运算符”为 ==(或 InfixExpression.Operator.EQUALS)的“InfixExpressions”。
请注意,您可以简单地使用ASTView自己找出此类问题的答案。
这完全取决于你。您的 AST 结构如何?
一般来说,这是我会做的:
EqualityNode : Node
{
Node LHS;
Node RHS;
}
至于确保语法正确性,那是有人不做的:
if == else
在将节点添加到 AST 之前,解析器应该对此进行检查。