Contents

1 Introduction
2 ZL Tutorial
 2.1 Hello World
 2.2 Macro Introduction: A Perl Like Or
 2.3 Classes and Templates
 2.4 Extending The Grammar: Foreach
 2.5 Procedural Macros
 2.6 Templates and Bending Hygiene
 2.7 Bending Hygiene Part 2: Fancy Loops
 2.8 User Types
3 Parsing and Expanding
 3.1 Parsing Overview
 3.2 The Parser
 3.3 Extending the Parser
 3.4 Built-in Macros
4 Procedural Macros
 4.1 Low Level Procedural Macros
 4.2 Macro Transformer Arguments
 4.3 Macro API
 4.4 The Syntax Object
 4.5 The Syntax List
 4.6 Matching and Replacing
 4.7 Match Patterns
 4.8 Creating Marks
 4.9 Partly Expanding Syntax
 4.10 Compile-Time Reflection
 4.11 Misc API Functions
 4.12 An Extended Example
5 Quasiquoting
6 Hygiene System
 6.1 Implementation
  6.1.1 An Illustrative Example
  6.1.2 Multiple Marks
  6.1.3 Structure Fields
  6.1.4 Importing Symbols from A Module
 6.2 Bending Hygiene
  6.2.1 Exporting Marked Symbols
  6.2.2 Fluid Binding
  6.2.3 Replacing Context
  6.2.4 Gensym
7 Procedural Macro Implementation and State Management
 7.1 The Details
 7.2 Macro Libraries
 7.3 State Management
 7.4 Symbol Properties
8 ABI Related APIs
 8.1 User Type and Module API
 8.2 User Type Builder
 8.3 The ABI Switch
 8.4 Mangler API
9 Classes and User Types
A Implementation Status and Performance
 A.1 C Support
 A.2 C++ Support
 A.3 Debugging Support
B Roadmap
C ZL Implementation Details
 C.1 Fluid Binding Implementation
 C.2 The Reparser
  C.2.1 The Idea
  C.2.2 Additional Examples
 C.3 Parser Details
  C.3.1 Performance Improvements

Converted From LaTeX using TeX4ht. PDF Version