You don't need a macro.
while true:
if proc1():
proc2()
else:
proc3()
break
Run
If the pattern is recurrent you can use template:
template myPattern(proc1, proc2, proc3: untyped): untyped =
while true:
if proc1():
proc2()
else:
proc3()
break
Run
