- Introduction
- 1. Syntax Extensions
❱
- 1.1. Source Analysis
- 1.2. Macros in the Ast
- 1.3. Expansion
- 1.4. Hygiene
- 1.5. Debugging
- 2. Declarative Macros
❱
- 2.1. A Methodical Introduction
- 2.2. A Practical Introduction
- 2.3. Minutiae
❱
- 2.3.1. Fragment Specifiers
- 2.3.2. Metavariables and Expansion Redux
- 2.3.3. Metavariable Expressions
- 2.3.4. Hygiene
- 2.3.5. Non-Identifier Identifiers
- 2.3.6. Debugging
- 2.3.7. Scoping
- 2.3.8. Import and Export
- 2.3.9. Turing Completeness
- 2.4. Patterns
❱
- 2.4.1. Callbacks
- 2.4.2. Incremental TT Munchers
- 2.4.3. Internal Rules
- 2.4.4. Push-down Accumulation
- 2.4.5. Repetition Replacement
- 2.4.6. TT Bundling
- 2.5. Building Blocks
❱
- 2.5.1. AST Coercion
- 2.5.2. Counting
❱
- 2.5.2.1. Abacus Counting
- 2.5.3. Parsing Rust
- 2.6. Macros 2.0
- 3. Procedural Macros
❱
- 3.1. A Methodical Introduction
❱
- 3.1.1. Function-like
- 3.1.2. Attribute
- 3.1.3. Derive
- 3.2. A Practical Introduction
❱
- 3.2.1. Function-like
- 3.2.2. Attribute
- 3.2.3. Derive
- 3.3. Third-Party Crates
- 3.4. Hygiene and Spans
- 3.5. Techniques
❱
- 3.5.1. Testing
- Glossary