D was already doing it in 2010 thereabouts, an then there is the whole reader macros in Lisp and Scheme.
And Nim, which has multiple levels of metaprogramming.
And Nim, which has multiple levels of metaprogramming.