ZL

(zl-lang.org)
Kevin Atkinson
DRAFT
May 3, 2012
Copyright © Kevin Atkinson 2011–2012
GNU LGPL 2.1 or later

Copyright and Acknowledgment
Contents
List of Figures
List of Tables
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.2 Bending Hygiene
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
 High Level Goals
C ZL Implementation Details
 C.1 Fluid Binding Implementation
 C.2 The Reparser
 C.3 Parser Details
Bibliography

Converted From LaTeX using TeX4ht. PDF Version