Это сильно ограничиваеи функционал
Т.е. тут вопрос в том, что наряду с процедурными макросами, должны быть макросы, которые работают с АСТ языка без парсинга токенов заново.
В идеале в двух вариантах: АСТ до тайпчека и после тайпчека, как было сделано в немерле