Ci sono fewresources sul Web che sono istruttivi nello scrivere i compilatori di compilazione Scala che corrispondono a modello con il codice, ma questi non aiutano a generare codice (costruzione di alberi di simboli) . Dove dovrei iniziare a capire come fare questo? (Se c'è un modo più semplice di costruire manualmente gli alberi simbolo, sarei interessato anche io.)Generazione di alberi di codice Scala da un plug-in Scala
Per esempio, mi piacerebbe scrivere un plugin che sostituisce del codice con un semplice AST per questa espressione, dove il variabili (estratte dal codice programma originale) potrebbero essere di qualsiasi tipo:
"" + hello + ", " + world + "!"
mi rendo conto puo essere difficile a causa di boxe e toString
, es se hello
fosse un oggetto e world
erano un int, questo dovrebbe davvero essere qualcosa del tipo:
"".+(hello.toString().+(", ".+(new Integer(world).toString().+("!"))))
Non conosco la risposta alla tua domanda, ma Miguel Garcia ha messo insieme [Scala Compiler Corner] (http://www.sts.tu-harburg.de/people/mi.garcia/ScalaCompilerCorner /) che è probabilmente la migliore raccolta di risorse disponibile sul compilatore di Scala. –