我需要一个语句列表分为多个部分,像这样:声明列表组成
import macros
macro test: stmt =
var first = quote do:
var x = 1
var second = quote do:
echo x
result = newStmtList()
first.copyChildrenTo(result)
second.copyChildrenTo(result)
echo result.repr
test
但是,编译器告诉我:
[..]
var x = 1
echo x
minimalist.nim(14, 0) Info: instantiation from here
minimalist.nim(7, 13) Error: undeclared identifier: 'x'
echo x
这是非常混乱因为x
声明在节点列表中。我如何正确地完成这项工作? (如果不是很明显,我确实需要AST拆分成其他原因的多个部分)
这正是我需要使我的代码工作,但我觉得这是一个编译器/标准库错误 –