【发布时间】:2013-12-18 10:21:52
【问题描述】:
我想将配置参数传递给宏。我已经有一个基于这些参数(序列元组)生成一串 Nimrod 代码的过程。 我知道我可以传递一个字符串并用strVal 转换它(如答案https://stackoverflow.com/a/19956317/334703 所示)。我可以对更复杂的数据做同样的事情吗?
或者,我可以在编译时过程中使用此 Nimrod 代码字符串并调用诸如 parseStmt 之类的过程吗?
编辑: Nimrod 代码的生成对于测试我的想法很有用,我同意我可能应该直接生成 AST。
这是我正在考虑的结构示例。
type
Tconfig = tuple
letters: seq[string]
numbers:seq[int]
var
data = (@("aa", "bb"), @(11, 22))
macro mymacro(data: Tconfig): stmt =
...
【问题讨论】:
标签: macros compile-time nim-lang