История изменений
Исправление dimgel, (текущая версия) :
Все кому надо – делают.
официальный API для AST
В scala макросы встроены в язык уже очень давно. В C++ есть clang libtooling, умеющий в трансформации как на лету в процессе компиляции, так и сорцы в сорцы (src
в target/src.transformed
, лично я пришёл к предпочтению этого подхода). Для жавы – можно форкать lombok, чтобы добавить в него свои трансформации (цеплять пользовательские макросы как плагины он не умеет), а можно сорцы в сорцы с помощью JavaParser. В расте, тут когда-то рассказывали, макросы тоже встроены в язык, но на вход им подаётся нетипизированное AST.
Что до идиотских аргументов против, они не новы:
Меньше всего мейнстриму нужны языки с возможностью вводить новые конструкции. Разраб уволился, а код поддердивать некому ибо сперва надо изучить его макросы.
kremator666 (18.05.2011 16:25:58)
Меньше всего мейнстриму нужны языки с возможностью вводить новые функции и процедуры. Разраб уволился, а код поддердивать некому ибо сперва надо изучить его процедуры и функции.
// fixed
KRoN73 ***** (18.05.2011 16:58:38)
Меньше всего мейнстриму программисты. Разраб уволился, а код поддердивать некому ибо сперва надо нанять другого.
// fixed
//fixd
Меньше всего нужны люди. Нет человека — нет проблемы.
Fixed. Слава роботам!
Исходная версия dimgel, :
Все кому надо – делают.
официальный API для AST
В scala макросы встроены в язык уже очень давно. В C++ есть clang libtooling, умеющий в трансформации как на лету в процессе компиляции, так и сорцы в сорцы (src
в target/src.transformed
, лично я пришёл к предпочтению этого подхода). Для жавы – можно форкать lombok, чтобы добавить в него свои трансформации (цеплять пользовательские макросы как плагины он не умеет), а можно сорцы в сорцы с помощью JavaParser. В расте, тут когда-то рассказывали, макросы тоже встроены в язык, но на вход им подаётся нетипизированное AST.