Работя върху анализирането на изходния код с помощта на 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
Благодаря!