更多示例

本教程讲解了宏系统的基础。对于宏能够做的事情,有些宏可以给你灵感。

Strformat

在Nim标准库中, strformat 库提供了一个在编译时解析字符串字面值的宏。通常不建议像这样在宏中解析字符串。 解析的AST不能具有类型信息,并且在VM上实现的解析通常不是非常快。在AST节点上操作几乎总是推荐的方式。 但 strformat 仍然是宏实际应用的一个很好的例子,它比 assert 宏稍微复杂一些。

Strformat

抽象语法树模式匹配(Ast Pattern Matching)

Ast Pattern Matching是一个宏库,可以帮助编写复杂的宏。这可以看作是如何使用新语义重新利用Nim语法树的一个很好的例子。

Ast Pattern Matching

OpenGL沙盒

这个项目有一个完全用宏编写的Nim到GLSL编译器。它通过递归扫描所有使用的函数符号来编译它们,以便可以在GPU上执行交叉库函数。

OpenGL Sandbox