0

我写了一个自定义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 


        }
    }
}
4

0 回答 0