Use a recursive macro.
import macros
const constant = "abc"
macro mymacro(hasResult: static[bool] = false, isConst: static[bool] =
false; idt: typed = nil): untyped =
if hasResult:
if isConst:
echo idt.strVal, " is const"
else:
echo idt.strVal, " NOT const"
else:
var varname = "constant"
var varlit = ident(varname)
result = quote do:
mymacro(hasResult=true, isConst=(`varlit` is static), `varlit`)
mymacro()
Run
