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