Attualmente sto provando a scrivere il mio compilatore, prendendo di mira la JVM.
Ho completato la fase di analisi utilizzando le classi Java generate da ANTLR , e avere un AST del codice sorgente da cui lavorare (An ANTLR "CommonTree", in particolare). Sto usando ASM per semplificare la generazione del bytecode.
Qualcuno potrebbe dare una panoramica generale su come convertire questo AST in bytecode?
La mia strategia attuale è esplorare l'albero, generando un codice diverso a seconda del nodo corrente (usando "Tree.getType ()").
Il problema è che posso riconoscere i token dal mio lexer in questo modo, piuttosto che schemi più complessi dal parser.
C'è qualcosa che mi manca, o mi sto semplicemente avvicinando a questo sbagliato?