我被困在一个特定的问题上,那就是从VariableDeclarationStatement中提取一个infixexpression。例如:
字符串s ='a'+'b'+'c';
这是VariableDeclarationStatement的一个实例。我需要从中删除infixexpression 'a'+'b'+'c'
。
我已经尝试过:1.尝试转换为字符串。但是没有转换回来的可能。
2.尝试转换为列表,但仍然不可能。
我已经尝试了上述方法来尝试操作和提取InfixExpression,请帮助我。
编辑
这是我所做的:
if (node instanceof InfixExpression) {
infixExpression= (InfixExpression) node;
} else if (node.getParent() instanceof InfixExpression) {
infixExpression= (InfixExpression) node.getParent();
} else { //while trying to get this proposal with spaces its reaching here.
String nodeString =node.toString();
String infixExp="s";
int t;
for (t=0;nodeString.charAt(t)!='=';t++);
infixExp.concat(nodeString.substring(t+1, nodeString.length()));
infixExpression = (InfixExpression)infixExp; //this cast doesn't work here
}
最佳答案
尚不清楚您要做什么。
public class InfixVisitor extends ASTVisitor {
@Override
public boolean visit(InfixExpression node) {
// NOTE: node.toString() should only be used debugging.
// Probably you could use it anyway.
...
return super.visit(node);
}
}
通过上述访问者,您可以通过以下方式访问所有
InfixExpression
节点:ASTNode sourceNode = ...
sourceNode.accept(new InfixVisitor());