探索Eclipse的ASTParser - 编程入门网
要缓冲某些信息,特别是从 ICompilationUnit 实现返回的信息。比方说 ,获得源代码的过程非常耗时,所以应该进行缓冲。
解析已有的代码 我们看一看解析的必要步骤,如清单 15 所示。 清单 15. 解析 Java 类
我知道解析的结果是一个编译单元,因此用 ASTParser.K_COMPILATION_UNIT 初始化了 解析器,也可以使用 K_CLASS_BODY_DECKARATION、K_EXPRESSION 或 K_STATEMENTS。例如 : 清单 16. 解析 Java 语句
探索Eclipse的ASTParser(9)时间:2011-04-11 IBM Manoel Marques如果稍后需要将大块的语句插入已有的块中,那么这样做非常有用。但不要忘记插入之 前导入已经解析的节点块,如 block = (Block)ASTNode.copySubtree(unit.getAST(), block);。 createAST() 的参数是 org.eclipse.core.runtime.IProgressMonitor。创建代码时不 需要该接口,但是解析的时候这个接口很重要。通过使用该接口,外部观测者可以跟踪任 务的进展并在需要的时候取消它。当 UI 线程接收来自 IProgressMonitor 的通知时,可 以在不同的线程中进行解析。 所有只读的树操作都是线程安全的,只要没有线程修改它。如果其他线程可以修改节点 ,那么建议同步拥有该树的 AST 对象(synchronize (node.getAST()) {...})。 JFaces 库提供了便利的对话框,在 org.eclipse.jface.dialogs.ProgressMonitorDialog 中封装了 IProgressMonitor。可以 像清单 17 那样使用它。 清单 17. 用 IProgressMonitor 解析
对话框 run 方法的前两个布尔参数表示 IRunnableWithProgress 实例的 run 方法应 该在单独的线程中,而且能够取消它。这样,解析是在单独的线程中运行的,对话框中还 显示了一个取消按钮。如果用户按下该按钮,那么对话框就会把 IProgressMonitor 实例 方法 setCanceled() 设为 true。因为还要将该实例传递给解析器,所以解析器的操作将 停止。 解析结束后,我们需要通过它自己的 UI 线程(而不是执行解析的线程)使用解析结果 来刷新 UI。为此,应该使用 org.eclipse.swt.widgets.Display.syncExec 方法,该方法 在 UI 线程的可运行 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |