2 evil crow Evil_Crow 于 2014.04.29 20:19 提问

如何利用Eclpise中的AST分析源代码中包类关系。

基于AST去分析源代码中包类的依赖关系,并用一定的图像去显示出来。怎么去实现这个过程...并且显示的方法最合适的应该用什么。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
AST 模块:用 Python 修改 Python 代码
本文介绍如何利用Python的AST模块得到或者修改python虚拟机编译过程中生成的语法树 CPython 的编译过程 在开始之前,我们应该先看看 CPython 的编译过程,这个过程在 PEP 339 中有详细的描述。 当然,在读这篇文章的时候,你并不需要对这个步骤有很深入的理解,不过这可以帮助你对整个过程有一个大体的了解。 首先,编译器会根据源代码生成一棵语法分析树 (P
python ast 语法分析
ast(Abstract Syntax Trees)是python中非常有用的一个模块,我们可以通过分析python的抽象语法树来对python的代码进行分析和修改。 ast作用在python代码的语法被解析后,被编译成字节码之前。 一. ast 1. 获取语法树 ast模块的基本使用是非常简单的,我们可以通过如下代码快速得到一棵抽象语法树: import ast root_node =
Eclipse AST 实现一个类信息统计小程序
Eclipse AST设计并实现一个类信息统计小程序,可以统计一个类中方法的个数、属性的个数、源代码行数、代码行最多的方法名以及代码行数、参数个数最多的方法名及其参数的个数等信息
使用ASTView分析代码调用关系分析的具体应用
受到understand的工具的启发,想自己做一个针对java类的代码静态调用工具。 先举个例子: 方法名称:com.person.api.AccountAPI.getPersonLeastInfo(args[1])    call {[ com.house.api.HouseApiTest.test_getConfusedPhoneNumber_normal(args
Python ast 学习笔记1–手动建ast
Python ast 学习笔记1–手动建ast手动建astpython中的ast模块是非常强大的模块,可以用来修改python源码,或者分析python源码。为了学习ast模块,先来手动建立一个ast熟悉熟悉。将用ast来表示下列代码:foo = 2 if foo == 2: print foo else: print "not equal"foo=2foo=2是一个赋值语句,可以分
CodeViz —— 一款分析 C/C++源代码中函数调用关系的调用图生成工具
CodeViz —— 一款分析 C/C++源代码中函数调用关系的调用图生成工具  程序开发中,有时候需要阅读别人的代码,这时理解代码的组织结构就显得非常重要。 CodeViz 是一款分析 C/C++函数调用关系的调用图生成工具,非常有助于代码的阅读和 理解,该项目网址为 http://www.csn.ul.ie/~mel/projects/codeviz。  下图是项目网站上给出的一个 k
飘逸的python - 一个简单的AST(抽象语法树)
假设对'a + 3 * b'进行解释,其中a=2,b=5 代码很简单,就不再进行详细的解释了。 Num = lambda env, n: n Var = lambda env, x: env[x] Add = lambda env, a, b:_eval(env, a) + _eval(env, b) Mul = lambda env, a, b:_eval(env, a) * _eval(e
AST的节点调用的API
AST的节点调用的API总结,这些都是我在写项目的时候用到的关于AST的API,现总结整理如下,当然这些不全,以后还要做补充修改。 TypeDeclaration 类声明 TypeDeclaration是关于类的声明,可以调用getName得到类名,通过调用getSuperclassType()得到父类名 public boolean visit(TypeDeclaratio
Eclipse JDT--ASTParser介绍
要解析Java源码,首先要建立ASTParser的实例。此过程最重要的一点是,你要告诉parser需要解析的内容类型。ASTParser支持对一下四种内容的解析:1. K_COMPILATION_UNIT: 一个编译单元,一般就是完整的Java文件2. K_STATEMENTS: Java statements,比如赋值语句,或是if语句块,while语句块等。此类型不需要文件是完整的编译单元,但需要是完整的statements。比如if语句块要作为一个完整的statement输入,否则会报错。3. K_E
通过JDT修改(Modify)Java代码的流程步骤
1.ICompilationUnit originalUnit = ...;// Get original compilation unit 获取ICompilationUnit实例的方式很简单,此处不再详述。 2.originalUnit.becomeWorkingCopy(new SubProgressMonitor(monitor, 1));//得到编译单元的工作副本 说明:将编译单元