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

Reply via email to