Try using `std/genasts`.
    
    
    import std/genasts  # add this import
    
    
    macro init*(args: varargs[typed]) =
      var body = nnkStmtList.newTree()
      var comp: ModelInstanceRef
      
      var names:seq[string]
      for arg in args:
        names &= arg.strVal
        var id = newIdentNode(arg.strVal)
        
        # int case
        if arg.getType.typeKind == ntyInt:
          let argVal = arg.getImpl[2].intVal.int
          body.add quote do:
            `id` = `argVal`
            comp.integerAddr.add( addr(`id`) )
      
      
      # adjust the result like so
      let compIdent = ident("comp")
      result = genAst(compIdnt, body):
        proc setStartValues*(compIdent: ModelInstanceRef) =
          body
    
    
    Run

Reply via email to