Извличане на всички имена на променливи от декларации на променливи с помощта на Eclipse JDT

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

Благодаря!


person Pav Lo    schedule 15.02.2012    source източник
comment
Бих публикувал този въпрос във форума на JDT на eclipse.org. Изпълнителите на JDT са там и ще отговорят.   -  person Francis Upton IV    schedule 15.02.2012


Отговори (1)


По същество вие търсите възли „org.eclipse.jdt.core.dom.SimpleName“, които имат „org.eclipse.jdt.core.dom.IVariableBinding“. Трябва да създадете „org.eclipse.jdt.core.dom.ASTVisitor“ и да замените „org.eclipse.jdt.core.dom.ASTVisitor.visit(SimpleName)“. След това с помощта на ASTVisitor трябва да анализирате израза от дясната страна на декларация на променлива.

Може да намерите раздела „Как да намерите AST възел“ на тази статия полезна. Може да намерите добавката за AST View полезна.

person Deepak Azad    schedule 17.02.2012