我正在尝试用Nim语言编写一个用于调试打印的宏.目前这款宏将filename与line由输出instantiationInfo().
import macros
macro debugPrint(msg: untyped): typed =
result = quote do:
let pos = instantiationInfo()
echo pos.filename, ":", pos.line, ": ", `msg`
proc hello() =
debugPrint "foo bar"
hello()
Run Code Online (Sandbox Code Playgroud)
目前输出:
debug_print.nim:9: foo bar
Run Code Online (Sandbox Code Playgroud)
我想添加调用宏的位置的过程(或迭代器)的名称.
期望的输出:
debug_print.nim:9(proc hello): foo bar
Run Code Online (Sandbox Code Playgroud)
如何在Nim中获取过程(或迭代器)的名称,就像__func__在C中一样?