1. 1. Introduction
  2. 2. 宏,彻底剖析
    1. 2.1. 语法扩展
      1. 2.1.1. 源码解析过程
      2. 2.1.2. AST中的宏
      3. 2.1.3. 展开
    2. 2.2. macro_rules!
    3. 2.3. 细枝末节
      1. 2.3.1. 再探捕获与展开
      2. 2.3.2. 卫生性
      3. 2.3.3. 不是标识符的标识符
      4. 2.3.4. 调试
      5. 2.3.5. 作用域
      6. 2.3.6. 导入/导出
  3. 3. 宏,实践介绍
  4. 4. 常用模式
    1. 4.1. 回调
    2. 4.2. 标记树撕咬机
    3. 4.3. 内用规则
    4. 4.4. 下推累积
    5. 4.5. 重复替代
    6. 4.6. 尾部分隔符
    7. 4.7. 标记树聚束
    8. 4.8. 可见性
    9. 4.9. 临时措施
  5. 5. 轮子
    1. 5.1. AST强转
    2. 5.2. 计数
    3. 5.3. 枚举解析
  6. 6. 实例注解
    1. 6.1. Ook!

宏,彻底剖析

本章节将介绍Rust的“示例宏”(Macro-By-Example)系统:macro_rules。我们不会通过实际的示例来介绍它,而将尝试对此系统的运作方式给出完备且彻底的解释。因此,本章的目标读者应是那些想要理清这整个系统的人,而非那些仅仅想要了解它一般该怎么用的人。

Rust官方教程中也有一章讲解宏(中文版),它更易理解,提供的解释更加高层。本书也有一章实践介绍,旨在阐释如何在实践中实现一个宏。