Abbiamo bisogno di generare codice sorgente Java. Facciamo questo modellando l'albero della sintassi astratta e disponiamo di un tree walker che genera il vero codice del codice sorgente. Tutto molto bene.Generazione di alberi di analisi del codice java e valutazione per test
Poiché il mio codice AST è un po 'vecchio, non ha il supporto per annotazioni e generici. Quindi mi sto occupando di progetti aperti da utilizzare per progetti futuri con esigenze di generazione di codice. E questo è dove arriva il vero problema. Vogliamo verificare che il codice generato abbia il comportamento corretto.
Ecco dove ho avuto l'idea di valutare effettivamente l'AST invece di generare il codice sorgente Java, compilarlo ed eseguire test su quel codice. Un valutatore accelererebbe i test unitari e uno potrebbe valutare pezzi più piccoli di codice generato, come solo un metodo, rendendo le "unità" più ragionevoli.
Finora ho trovato il progetto com.sun.codemodel che sembra abbastanza bello per essere una soluzione di generazione di codice basata su AST moderna (supporto per java5 e 6).
Qualcuno sa se c'è un altro progetto che mi consenta di valutare direttamente pezzi di AST (come un singolo metodo generato)?
+1 domanda interessante, vogliamo le risposte ora :-) – KLE
Vorrei solo generare il codice per tale metodo, compilare e testare. Creare un interprete è un bel po 'di lavoro. –
non c'è alcuna opzione per far sì che javac emetta alberi di analisi e rappresentazioni intermedie? (tipo risoluzione, ricerca di classe, qualunque cosa abbia detto Ira Baxter nella loro risposta). –