66 lines
2.2 KiB
HTML
66 lines
2.2 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
|
"http://www.w3.org/TR/html4/loose.dtd"><!-- DO NOT EDIT THIS FILE-->
|
|
<!-- Edit the .tex version instead-->
|
|
|
|
<html>
|
|
<head>
|
|
<title>Portable syntax-case</title>
|
|
</head>
|
|
<body>
|
|
|
|
<h1 >Portable syntax-case</h1>
|
|
|
|
<p>
|
|
Abdulaziz Ghuloum,
|
|
<a href="//legacy.cs.indiana.edu/~dyb/">R. Kent Dybvig</a>
|
|
|
|
<p>
|
|
The portable syntax-case macro system implements the restricted high-level
|
|
<tt>syntax-rules</tt> and equally high-level but general-purpose
|
|
<tt>syntax-case</tt> macros of the
|
|
<a href="http://www.r6rs.org">Revised<sup>6</sup> Report on Scheme</a> (R6RS).
|
|
It also implements R6RS libraries and all built-in R6RS syntactic forms.
|
|
|
|
<p>
|
|
The system is documented in the R6RS and also described, with numerous
|
|
examples, in Section 3.1 and Chapter 8 of
|
|
<a href="//www.scheme.com/tspl4/">The Scheme Programming
|
|
Language, 4th edition</a>.
|
|
|
|
<p>
|
|
Aspects of the macro system and its implementation are described in
|
|
<a href="//legacy.cs.indiana.edu/~dyb/pubs/LaSC-5-4-pp295-326-abstract.html">Syntactic
|
|
abstraction in Scheme</a>.
|
|
Additional examples of its use are given in
|
|
<a href="//legacy.cs.indiana.edu/~dyb/pubs/tr356-abstract.html">Writing
|
|
hygienic macros in Scheme with syntax-case</a>.
|
|
Aspects of the library system and its implementation are described in
|
|
<a href="//legacy.cs.indiana.edu/~dyb/pubs/implicit-phasing-abstract.html">Implicit
|
|
phasing for R6RS libraries</a>.
|
|
|
|
<p>
|
|
The portable system is designed to be adaptable with minimal effort to
|
|
any R6RS or R5RS implementation of Scheme, with the
|
|
provision of a small set of implementation-dependent hooks.
|
|
Along with a reader, the system forms a complete front-end for Scheme.
|
|
If the reader and evaluator support source annotations (e.g., file
|
|
and line number information), these are handled as well to provide
|
|
source-object correlation.
|
|
|
|
<p>
|
|
More information on the psyntax system and links to the implementation
|
|
can be found at Aziz Ghuloum's
|
|
<a href="r6rs-libraries/">psyntax page</a>.
|
|
The system was created by Abdulaziz Ghuloum and Kent Dybvig based on an
|
|
<a href="old-psyntax.html">earlier implementation</a> by Kent Dybvig,
|
|
Oscar Waddell, Bob Hieb, and Carl Bruggeman.
|
|
|
|
<p>
|
|
|
|
|
|
|
|
|
|
|
|
</body>
|
|
</html>
|