我写了一个自定义annotation Processor
,我希望在eclipse ecj编译器中获得ast 树:process
private JavacProcessingEnvironment env;
private BaseProcessingEnvImpl eclipseEnv;
@Override
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
if (!annotations.isEmpty()) {
Set<? extends Element> elementsAnno = roundEnv.getElementsAnnotatedWith(xxxxAnnoClass.class);
if (env != null) { // javac
Context context = env.getContext();
Trees trees = Trees.instance(env);
elementsAnno.forEach(e -> {
JCTree tree = ((JavacTrees) trees).getTree(e);
});
new TreeTranslator().translate(tree);
}else { // eclipse ecj
// how to write the code equivalent of javac
}
}
}