Я работал над анализом исходного кода с использованием 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
Спасибо!