В Интернете есть fewresources, которые поучительны в написании плагинов-компиляторов Scala, которые соответствуют шаблону, но не помогают генерировать код (построение деревьев символов) , Где я должен начать выяснять, как это сделать? (Если есть более простой способ, чем вручную создавать деревья символов, мне тоже было бы интересно.)Создание деревьев кода Scala из плагина-компилятора Scala
Например, я бы хотел написать плагин, который заменяет некоторый код простым АСТ для этого выражения, где переменные (извлеченные из исходного кода программы) может быть любого типа:
"" + hello + ", " + world + "!"
Я понимаю, что это может быть сложно из-за бокса и toString
, например, если hello
были объектом и world
были ИНТ, это должно быть действительно что-то вроде:
"".+(hello.toString().+(", ".+(new Integer(world).toString().+("!"))))
Я не знаю ответа на ваш вопрос, но Мигель Гарсия собрал [Угол компилятора Scala] (http://www.sts.tu-harburg.de/people/mi.garcia/ScalaCompilerCorner /), который, вероятно, является наилучшей доступной компиляцией ресурсов о компиляторе Scala. –