1 Parsing and Specifying Syntax |
1.1 Introduction |
1.2 Examples |
1.2.1 Phases and Reusable Syntax Classes |
1.2.2 Optional Keyword Arguments |
1.2.2.1 Optional Arguments with ~? |
1.2.2.2 Optional Arguments with define-splicing-syntax-class |
1.2.3 Variants with Uniform Meanings |
1.2.4 Variants with Varied Meanings |
1.2.4.1 Syntactic Normalization |
1.2.4.2 Non-syntax-valued Attributes |
1.2.5 More Keyword Arguments |
1.2.6 Contracts on Macro Sub-expressions |
1.3 Parsing Syntax |
1.4 Specifying Syntax with Syntax Classes |
1.4.1 Pattern Directives |
1.4.2 Pattern Variables and Attributes |
1.4.2.1 Attributes and datum |
1.5 Syntax Patterns |
1.5.1 Single-term Patterns |
1.5.2 Head Patterns |
1.5.3 Ellipsis-head Patterns |
1.5.4 Action Patterns |
1.5.5 Pattern Expanders |
1.6 Defining Simple Macros |
1.7 Literal Sets and Conventions |
1.8 Library Syntax Classes and Literal Sets |
1.8.1 Syntax Classes |
1.8.2 Literal Sets |
1.8.3 Function Headers |
1.9 Unwindable State |
1.10 Configuring Error Reporting |
1.11 Debugging and Inspection Tools |
1.12 Experimental |
1.12.1 Contracts for Macro Sub-expressions |
1.12.2 Contracts for Syntax Classes |
1.12.3 Reflection |
1.12.4 Procedural Splicing Syntax Classes |
1.12.5 Ellipsis-head Alternative Sets |
1.12.6 Syntax Class Specialization |
1.12.7 Syntax Templates |
1.13 Minimal Library |
|
2 Syntax Object Helpers |
2.1 Deconstructing Syntax Objects |
2.2 Matching Fully-Expanded Expressions |
2.3 Dictionaries with Identifier Keys |
2.3.1 Dictionaries for free-identifier=? |
2.3.2 Dictionaries for bound-identifier=? |
2.4 Sets with Identifier Keys |
2.4.1 Sets for free-identifier=? |
2.4.2 Sets for bound-identifier=? |
2.5 Hashing on bound-identifier=? and free-identifier=? |
2.6 Rendering Syntax Objects with Formatting |
2.7 Computing the Free Variables of an Expression |
2.8 Replacing Lexical Context |
2.9 Helpers for Processing Keyword Syntax |
|
3 Datum Pattern Matching |
|
4 Module-Processing Helpers |
4.1 Reading Module Source Code |
4.2 Getting Module Compiled Code |
4.3 Resolving Module Paths to File Paths |
4.4 Simplifying Module Paths |
4.5 Inspecting Modules and Module Dependencies |
4.6 Wrapping Module-Body Expressions |
|
5 Macro Transformer Helpers |
5.1 Extracting Inferred Names |
5.2 Support for local-expand |
5.3 Parsing define-like Forms |
5.4 Flattening begin Forms |
5.5 Expanding define-struct-like Forms |
5.6 Resolving include-like Paths |
5.7 Controlling Syntax Templates |
5.8 Creating Macro Transformers |
5.9 Applying Macro Transformers |
|
6 Reader Helpers |
6.1 Raising exn:fail:read |
6.2 Module Reader |
|
7 Parsing for Bodies |
|
8 Unsafe for Clause Transforms |
|
9 Source Locations |
9.1 Representations |
9.2 Source Location Utilities |
9.2.1 Quoting |
|
10 Preserving Source Locations |
|
11 Non-Module Compilation And Expansion |
|
12 Trusting Standard Recertifying Transformers |
|
13 Attaching Documentation to Exports |
|
14 Contracts for Macro Subexpressions |
|
15 Macro Testing |
|
16 Internal-Definition Context Helpers |
|
Index |