探索Eclipse的ASTParser - 编程入门网
实例中运行代码。
探索Eclipse的ASTParser(10)时间:2011-04-11 IBM Manoel Marques遍历树 ASTNode 允许使用访问者模式(请参阅参考资料)遍历节点树。然后创建一个从 org.eclipse.jdt.core.dom.ASTVisitor 派生的类,将该类的实例传递给节点方法 accept()。调用该方法时,从当前节点开始向下,树中的每个节点都将被“访问”。对每 个节点都将调用以下方法: preVisit(ASTNode node) boolean visit(node) endVisit(node) postVisit(ASTNode node) 每种节点类型都有一个方法,visit() 和 endVisit()。参数节点的类型与访问节点对 应。如果 visit() 方法返回 false,那么该节点的子接点将不会被访问。 AST 树中没有显示注释节点,因为它们没有父子关系。方法 getParent() 返回 null。 通过调用编译单元的 getCommentList() 方法可以访问注释。如果需要显示注释,应该调 用该方法来单独访问每个注释节点。 该例中,类 ASTExplorerVisitor 在 preVisit() 方法中包含一段已注释的代码块,如 果没有取消注释,那么该代码块将显示作为编译单元的子节点的所有注释节点。 解析器错误是在编译单元类实例中返回的。getProblems() 方法返回 IProblem 实例数 组。这个 IProblem 类和编译错误使用的类相同。 一定要注意的是,ASTParser 不是一个编译器。只有当源文件中有一些代码影响到 AST 树的完整性时才会标记错误。 比方说,如果输入 classs 而不是输入 class,那么会影响到 TypeDeclaration 节点 的创建,这就是一个错误。另一方面,如果输入 private Stringgg str;,它是合法的, 因为可能存在一个叫做 Stringgg 类。只有编译器才能标记这个错误。要知道,合法的树 并不意味着编译也合法。 结束语 我们介绍了使用 ASTParser 时遇到的所有“窍门”。现在可以将这种 JDT 服务添加到 您的项目中了。还有很多的功能这里没有介绍,您可以直接使用它们。祝解析愉快! 来源:http://www.ibm.com/developerworks/cn/opensource/os-ast/index.html |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |