Ho sempre voluto imparare come scrivere un compilatore - Ho deciso di usare ANTLR e sto attualmente leggendo il libro (è molto buono tra l'altro)
Sono abbastanza nuovo in questo, quindi andate piano, ma il jist sembra essere che scrivete la vostra grammatica, trasformatela in una struttura dati (di solito un AST) e poi percorretela una o più volte effettivamente eseguendo l'operazione. carne 'di qualsiasi cosa tu voglia che il tuo programma faccia.
Se il mio "linguaggio" di input era qualcosa come JSON o XML, cioè qualcosa che probabilmente ha una libreria che può trasformarlo in un grafico di pojos - questo nega la necessità di fare il lexing e l'analisi con un compilatore come ANTLR ? chiaramente se il mio input è molto personalizzato allora ho bisogno di scrivere il mio lexer / parser - ma potrei e dovrei abbreviare se la mia lingua di input è già ampiamente utilizzata.
Sarebbe giusto dire che potresti analizzare, dire json, con Jackson, in POJO e poi guidare il tuo codice dei pojos risultanti? - o in questo caso, un compilatore compilatore "appropriato" offre qualche vantaggio?
Modificato (in base alle risposte) per aggiungere
Probabilmente avrei dovuto far notare che la mia domanda era leggermente ipotetica - non avrei mai provato a costruire un linguaggio di programmazione in XML!
Quindi immagino che l'accordo sia AST! = Pojo - e i tree walker che ti danno sono più utili nel caso in cui tu abbia bisogno di "camminare" sulla struttura dei dati ed eseguire il codice.