我正在开发一种ec滴式pl滴,以分析 j源代码。 我verse倒整个AST树,并写一名访问者,访问每个变数的宣言,我注意到一些变数,“解除约束性”回报是可加固的事例,但其他情况并非如此。 我不能区分他们。 BTW:我设立了STParser.setKind(K_COMPILATION_UNIT)并设立了ResolveBelles(true)。 我的法典如下:
@Override
public boolean visit(VariableDeclarationStatement vStatement) {
Type theType = vStatement.getType();
for(Iterator iterator = vStatement.fragments().iterator();iterator.hasNext();){
VariableDeclarationFragment fragment = (VariableDeclarationFragment)iterator.next();
IVariableBinding binding = fragment.resolveBinding();
if(binding !=null){
ITypeBinding tBinding = binding.getType();
if(tBinding !=null){
// if there is ArrayType, get the root type
while(tBinding.getComponentType()!=null){
tBinding = tBinding.getComponentType();
}
System.out.println("USING BINDING VARIABLE CLASS IS: " + tBinding.getQualifiedName());
}
}
}
}
我的问题是:我如何区分能够与不能解决约束性问题的可变宣言?
许多预告