探索Eclipse的ASTParser - 编程入门网
ASTParser(4)
时间:2011-04-11 IBM Manoel Marques
要注意节点的组合,整个语句是一个 GridLayout 类型的 VariableDeclarationStatement。它包含一个 VariableDeclarationFragment,后者包含 ClassInstanceCreation。 使用 Assignment 表达式也可以创建同样的语句,如清单 7 所示。 清单 7. 创建同一语句的另一种方法
可以将其看作一个 Assignment 表达式,左侧是包含 VariableDeclarationFragment 的 VariableDeclarationExpression,右侧是一个 ClassInstanceCreation。要注意,在 添加到语句列表之前,Assignment 表达式首先要通过 newExpressionStatement() 方法使 用 Statement 包装起来。 两种方法都生成同样的源代码,但是应该使用第一种方法。如果解析已有的代码,就会 看到节点是按照第一种方法创建的。这也是为何强调使用 ASTExplorer 这个例子的原因。 这样您可以看到解析器为特定代码片段创建的节点,从而按照同样的方式创建自己的节点 。 仔细看一看 ASTMain 类,就可以了解在几种情况下如何创建不同的节点。我尽量包含 所有所需技巧的结构,比如内部类、try 块、数组参数,等等。我将介绍我曾经遇到问题 ,同时还将介绍您可能需要帮助的地方。 获得实际的源代码 有了编译单元之后,就可以很轻松地获得实际的源代码。 调用 recordModifications() 可以完成一半的工作,剩下的工作可以在编译单元中调 用 rewrite() 方法来完成。该方法需要一个 org.eclipse.jface.text.IDocument 实例和 格式化选项 Map。IDocument 实例包含原来的源代码 —— 该例中没有这样的源代码, rewrite() 方法将合并编译单元中的修改和文档文本,返回包含所有更改内容的 org.eclipse.jface.text.edits.TextEdit 实例。 通过格式化选项可以规定括号和缩进的位置等。在 org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants 类中可以找到所有的 选项列表。 获得 TextEdit 实例之后,可以用它来查看作了哪些更改。不过在该例中,仅仅将这些 更改用于原来的文档。 现在,所有的代码都放在了将准备提取的文档中,这个过程如清单 8 所示。 探索Eclipse的ASTParser(5)时间:2011-04-11 IBM Manoel Marques清单 8. 访问编译单元的内容
编译生成的代码 Eclipse IDE 在工作区中处理项目。构建整个项目后,要依靠 JDT 检查依赖性和编译 所有的类。Eclipse 帮助中有详细的说明,可以将这些归结如下: 清单 9. 构建 Eclipse 项目
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |