Eclipse AST 相关资料
Part I 准备工作
了解 Eclipse 平台 (可选)
要想使用JDT,首先要明白什么是JDT,JDT和Eclipse是密不可分的,因为JDT是Eclipse默认的工具,因此当开发人员说他们在使用Eclipse开发时,实际上他们是在用JDT开发。要想了解Eclipse和JDT的内容,请先阅读系列文章:精通Eclipse(第一部分:Eclipse工作台, 第二部分:JDT, 第三部分:JDT 文本编辑器提示和技巧)
看完这几篇之后可以学到一些Eclipse的使用技巧,但是不看的话好像也没啥关系=。=
安装 ASTView
点击Help->Eclipse Marketplace,搜索ASTView进行安装。
ASTView的使用:
-
打开ASTView: Window > Show View > Other..., Java > AST View 或快捷键 Alt+Shift+Q, A
-
点击工具栏中的 Show AST of active editor
-
双击 ASTNode 可以看到对应源文件中的代码位置
ASTView可以帮助你查看AST的结构,其中加粗的名字(如TypeDeclaration, MethodDeclaration)就是ASTNode的子类名,方便你在实现ASTVisitor时查询文档,以及验证程序的正确性。
需要准备的jar包
请在你的Java Project中导入以下的jar包,否则可能会出现奇怪的错误。
这些jar包都可以在 eclipse/plugin
目录下找到
Part II 入门教程
AST的获取与访问
(SEG-Models的JDT资料里有DOC版本)
墙裂推荐学习这篇~这篇博文浅显易懂,而且有一个很小的可以运行的代码,看过之后就可以大致知道如何遍历AST了。
该博客AST系列的其他篇目:
Eclipse Corner Article: Abstract Syntax Tree
(SEG-Models的JDT资料里有PDF版本)
用一个小型的示例工程代码进行讲解。此篇文章中既涉及到遍历AST,又涉及到修改AST。要想看懂代码比较有难度。
探索Eclipse的ASTParser
(SEG-Models的JDT资料里有PDF版本)
因为大部分内容不是访问AST而是创建AST,所以比较难以理解。
暂时不建议看这篇。
设计模式:Visitor Pattern
在AST的遍历中要用到visitor模式,相关的资料:Wikipedia, 设计模式:访问者(visitor) in java
Part III 使用手册
Eclipse documentation
Eclipse文档,非常有用的资料,ASTNode, ASTParser, AST 等类的使用方法都可以从文档中查找到。
Eclipse AST抽象语法树API
(SEG-Models的JDT资料里有PDF版本)
详细地说明了AST相关类与方法,可以与Eclipse documentation结合使用
相关的另一篇文章:使用Eclipse AST来解析Java
Eclipse JDT--AST and JavaModel Tutorial
有一些示例代码,可以大概看一下