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