【发布时间】:2012-02-15 07:58:36
【问题描述】:
我一直致力于使用 Eclipse JDT 分析源代码。 目前,我有一个程序能够获取一些代码,将其转换为 AST,然后进行一些注释。
现在,我想做的是,对于每个变量声明,获取所有涉及的变量。例如:
int a = 10;
很简单,只是变量a
但在以下情况下:
int a = b +c ;
我需要分析正确的部分并提取每个变量。 我到现在为止是这样的:
对于每个变量声明:
//get the fragment
List<VariableDeclarationFragment> ff = vds_p.fragments();
//foreach fragment, get the name of the variable and the value associated
for(VariableDeclarationFragment f_p : ff){
SimpleName name = f_p.getName();
Expression exp = f_p.getInitializer();
ChildPropertyDescriptor exp_prop = f_p.getInitializerProperty();
System.out.println("name: "+name);
System.out.println("expression: "+exp);
}
所以,我能够获取变量的名称和分配给它的表达式。 现在,这是我的问题:
如何使用 JDT 分析分配给变量的表达式,例如在
int a = b + c ;
我想得到b 和c。
我知道我可以获取“b+c”字符串并根据运算符应用手动解析,但我想知道是否有更自动化的方式使用 JDT
谢谢!
【问题讨论】:
-
我会在 eclipse.org 的 JDT 论坛上发布这个问题。 JDT 提交者在场并会回答。
标签: java eclipse parsing abstract-syntax-tree eclipse-jdt