最近做program analysis,需要解析Java的源代码,于是就去看了看Abstract Syntax Tree(AST,中文为抽象语法树)。有点无奈的是,网上关于这方面的资料比我想象中的少,可能是涉及的东西太底层了吧。AST一般属于编译原理方面的内容,也经常用于程序分析等等。简单来说,你写了一坨代码,编译器会把代码转化成一棵抽象语法树用于“理解”。每个树节点代表一个代码元素,也有自己的属性什么的。关于AST的细节一两句话肯定说不清楚, 不过好消息是,Eclipse JDT中有现成的ASTParser可以将源代码解析成AST,并且有很全面的节点类型和方法供用户操作。
今天就先把网上一些关于Eclipse JDT中AST相关的资料汇总再这里,等我自己摸索的差不多了会及时更新这方面的内容。
那啥,转载请注明出处哦~~~ http://blog.csdn.net/flying881114/archive/2011/02/16/6187061.aspx
---入门文档
1. Eclipse Corner Article: Abstract Syntax Tree
http://www.eclipse.org/articles/article.php?file=Article-JavaCodeManipulation_AST/index.html
(英文,AST的概述,细节代码不多)
2. 探索Eclipse的ASTParser
http://www.ibm.com/developerworks/cn/opensource/os-ast/index.html#resources
(中文,相对详细的讲解和代码)
---AST使用
1. Eclipse JDT--AST and JavaModel Tutorial
http://www.vogella.de/articles/EclipseJDT/article.html
(英文,代码很多,但需要有更多的背景知识)
2. Eclipse AST 使用指南
http://wenku.baidu.com/view/a0b8e07931b765ce050814ac.html
(pdf文档,更加详细地说明了AST 相关类与方法,可以与eclipse documentation结合使用)
3. Eclipse documentation
http://help.eclipse.org/helios/index.jsp
其实,最靠谱的还是直接看eclipse文档。在这里你可以了解你想知道的一切。
4. Yet another AST tutorial
http://sahits.ch/blog/?p=228
英文,有大量代码,从易到难讲解(这篇我还没看完~)
---使用AST相关
1. 使用AST出现问题?不知道使用什么jar包?看看这里吧:
http://lym6520.javaeye.com/blog/747840
2. 想亲眼看看你源文件的AST是什么样的?为你的Eclipse装一个ASTview插件吧!
http://www.eclipse.org/jdt/ui/astview/index.php
(小心!就连Hello World的小程序也有很复杂的AST哦!)
分享到:
相关推荐
Java开发工具集(JDT)是Eclipse IDE中的核心组件之一,主要负责Java语言的编辑、语法分析、编译和调试等功能。ASTView是JDT的一部分,它提供了一个图形化的界面来显示Java源代码的抽象语法树(Abstract Syntax Tree...
包括以下包:jdt-3.2.1-r321_v20060823.jar、 jdt-3.3.0-v20070607-1300.jar、jdt-3.4.2_r894.jar、jdt-compiler.jar、org.eclipse.datatools.enablement.jdt.classpath_1.0.1.v201107221501.jar、org.eclipse.jdt....
标题“org.eclipse.jdt.core_3.2.0.v_671”表明这是一个与Eclipse集成开发环境(IDE)相关的组件,特别是它的Java开发工具(JDT)核心部分。这个版本号“3.2.0.v_671”表示这是JDT核心的特定版本,其中“3.2.0”可能...
《jasper-compiler-jdt-5.5.15.jar:解决IReporter编译问题的利器》 在IT行业中,报告生成是企业级应用的重要组成部分,而 JasperReports 是一款广泛使用的开源报表工具,它允许开发者创建复杂的报表并嵌入到Java...
Java开发工具包(Java Development Toolkit,简称JDT)是Eclipse IDE的重要组成部分,它为Java开发者提供了强大的编辑、调试和分析功能。在这个“JDT简单的实例(两个)”中,我们将探讨如何利用JDT进行基本的Java...
在开发Java和嵌入式应用程序时,CDT(C/C++ Development Tooling)和JDT(Java Development Tools)是Eclipse IDE中的两个核心组件。CDT主要用于C/C++编程,而JDT则专为Java开发设计。理解并正确配置它们的环境变量...
org.eclipse.jdt.* 的目录和文件 全部拷贝到 flexbuilder 的plugin (若为myEclipse则是将myEclipse下eclipse\plugins) flashbuilder也一样 ----下面是在FlexBuilder中配置VSS ------- 1. 首先绑定项目到...
Eclipse JDT(Java Development Tools)是Eclipse IDE的核心组件之一,专为Java开发者提供了一系列强大的工具和服务。它使得在Eclipse中编写、调试、测试和优化Java代码变得极其便捷。下面将详细介绍Eclipse JDT的...
标题 "Drools报错: The Eclipse JDT Core jar is not in the classpath" 提示了一个常见的编程问题,即在使用Drools规则引擎时,由于缺少Eclipse JDT(Java Development Tools)核心库,导致运行错误。这个问题涉及...
Eclipse JDT(Java Development Tools)是Eclipse IDE的核心组件之一,专为Java开发者提供的一套强大的工具集合。在标题中提到的“eclipse-JDT-3.3.1.zip”是一个Eclipse JDT的特定版本,即3.3.1版本的归档文件。这...
`ant编译用jdt_jars`指的是使用Ant进行项目构建时,利用JDT的相关库来执行编译任务。 Ant是一个开源的Java构建工具,它的主要功能包括编译源代码、打包、测试、部署等。与传统的Makefile相比,Ant使用XML来描述构建...
1.下载Eclipse plugin 补丁文件 org.eclipse.jdt.core_3.6.1.v_A68_R36x.jar: http://meiyoudao.download.csdn.net/ 2.将解压缩后的jar包 放到Eclipse的目录中的Plugin下面, 3.Android开发时代码提示卡死的问题...
标题“jdt0.8个人文件”所指的可能是一个早期版本的Java开发工具集,JDT(Java Development Tools)的0.8版本。JDT是Eclipse IDE的一个核心组件,专门为Java开发者提供了丰富的功能,如代码编辑、调试、构建等。这个...
Class not found: org.eclipse.jdt.core.JDTCompilerAdapter。 解决方法: 拷贝下面这些jar包到ant_home/lib org.eclipse.jdt.compiler.tool_1.0.100.v_972_R35x.jar org.eclipse.jdt.core_3.5.2.v_981_R35x.jar org...
根据给定的文件信息,我们可以总结出以下关于Eclipse JDT 2.0插件开发者指南的相关知识点: ### 一、概述 Eclipse JDT(Java Development Tools)2.0 插件开发者指南是一份由OTI(Open Tooling Initiative)编写的...
Eclipse JDT(Java Development Tools)是Eclipse IDE中用于Java开发的核心组件,它提供了诸如编辑器、语法高亮和代码分析等丰富的功能。在Eclipse JDT中,AST(Abstract Syntax Tree,抽象语法树)是解析Java源代码...
### JDT应用开发相关资料详解 #### Java模型与JDT框架概述 JDT(Java Development Tools)是Eclipse平台的核心组成部分之一,主要用于提供强大的Java开发功能。Java模型是一系列类的集合,这些类用于模拟与创建、...
java开发常用 jdt-compiler-3.1.1.jar
eclipse.jdt.core, jdt/核心项目库( eclipse jdt core ) JDT内核这是 Eclipse 开发工具的Java的核心部分。 它包含对编译和使用Java代码的非用户界面支持,包括:可以独立运行或者作为 Eclipse IDE的一部分的增量或者...
Eclipse JDT(Java Development Tools)是Eclipse IDE的一个重要组成部分,提供了丰富的API用于Java源代码的处理,包括生成和操作AST。本教程将介绍如何利用Eclipse JDT生成Java源代码的AST,并通过可视化工具进行...