为什么打印节点的父节点返回父+子节点?

时间:2012-02-21 07:49:26

标签: java eclipse eclipse-plugin abstract-syntax-tree eclipse-jdt

给定一个起始位置,我可以通过将它传递给org.eclipse.jdt.core.dom.NodeFinder类来找到它。

NodeFinder node = new NodeFinder(root, m.getSourceStart(), m.getSourceEnd() - m.getSourceStart() + 1);
ASTNode n = node.getCoveredNode();

假设此节点有父节点并获取节点的父节点n.getParent();是否有人知道它为什么打印出父节点和节点?

例如,我们知道foo()bar.foo()的起点,所以如果我System.Out.Println(n.getParent().toString());,则会打印bar.foo()。它不应该只打印bar吗?

提前感谢您的见解。

1 个答案:

答案 0 :(得分:0)

您所看到的行为是预期的。

在这个例子中:

foo.bar

barSimpleName,其父级是QualifiedName,其中包含foobar。因此父节点将包含多个AST节点,并在其上调用toString将打印出该节点的所有子节点。