Commit 03189e6d authored by Erick's avatar Erick

Fixed some character encoding.

parent 3d61a426
2018-04-20 Erick Gallesio <eg@unice.fr>
- Updated documentation for version 1.20
2018-04-13 Erick Gallesio <eg@unice.fr>
- Bug fix in stklos-compile
Using read-byte instead of read-char to be UTF8 reading independant
2018-03-27 Erick Gallesio <eg@unice.fr>
- Bug Fix: the detection of bad UTF sequences could lead to a loop
2018-03-26 Erick Gallesio <eg@unice.fr>
- Bug fix of a long standing bug on call/cc.
The bug was not systematic and showed up sometimes when running the tests
2018-03-23 Erick Gallesio <eg@unice.fr>
- Added tests on functions declared with 'λ' symbol
2018-03-22 Erick Gallesio <eg@unice.fr>
- Changed source to avoid GCC warnings
2016-03-13 Erick Gallesio <eg@unice.fr>
- Added the unicode character 'λ' as a synonym of lambda
2014-01-02 Erick Gallesio <eg@unice.fr>
- Now when TERM vraiable is of the form xterm-xxxcolor, it is
recognized as a color terminal
2012-03-18 Erick Gallesio <eg@unice.fr>
- Added #!fold-case and #!no-fold-case
2012-02-26 Erick Gallesio <eg@unice.fr>
- Fixed some problems on character encoding depending of the SHELL
LC_* varisables
2012-01-01 Erick Gallesio <eg@unice.fr>
- Use the LANG variable to determine if we use utf8 (rather
than fixing it to true by default as before)
2012-01-01 Erick Gallesio <eg@unice.fr>
- Replaced some calls to "make" by "$(MAKE)" in various Makefiles
2011-12-31 Erick Gallesio <eg@unice.fr>
- STklos 1.10 Release
===================
2011-12-04 Erick Gallesio <eg at unice.fr> <eg at unice.fr>
* doc/Makefile.in, lib/ffi.stk, src/Makefile.in, src/boot.c,
......@@ -2429,7 +2487,7 @@
Current-{input,output,error}-port are now thread specific.
* src/stklosconf.h.in, src/thread.c, src/thread.h, src/vm.h,
* lib/Lurc.d: Start the integration of Stephane pardaud LURC stuff.
* lib/Lurc.d: Start the integration of Stephane Épardaud LURC stuff.
2006-04-06 Erick Gallesio <eg@essi.fr>
......@@ -3452,7 +3510,7 @@ n
2003-12-13 Erick Gallesio <eg@essi.fr>
* Added SILex to the distribution. Thanks to Danny Dub for
* Added SILex to the distribution. Thanks to Danny Dubé for
allowing me to include it in STklos.
2003-11-14 Erick Gallesio <eg@essi.fr>
......@@ -3849,7 +3907,7 @@ n
* STklos.prj: New GC: 6.1 alpha5
* gc/: Upgraded GC to 6.1 alpha5. STklos didn't work with RedHat
7.3. Bug signaled by Grard Milmeister <gemi@bluewin.ch>
7.3. Bug signaled by Gérard Milmeister <gemi@bluewin.ch>
2002-06-12 Erick Gallesio <eg@essi.fr>
......@@ -4039,7 +4097,7 @@ n
* lib/: Added support for SRFI-9 and SRFI-8
* src/system.c: New primitives FULL-CURRENT-TIME (resolution is s)
* src/system.c: New primitives FULL-CURRENT-TIME (resolution is µs)
and SECONDS->DATE
* lib/srfi-9.stk: Added records (aka SRFI-9)
......
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<style type="text/css">
<!--
tt { font-family: monospace }
......@@ -15,10 +15,10 @@
<td align="left" valign="top" width="20%" bgcolor="#8A8983">
<br /><table width="97%" border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse;" frame="box" rules="none"><tbody>
<tr><th align="center" colspan="2" bgcolor="#ACE919"><font color="darkolivegreen">Contents</font></th></tr>
<tr class="navnorm"><td align="center"></td><td align="left"><a href="stklos-ref.html#-document-44527">*Top*</a></td></tr>
<tr class="navnorm"><td align="center"></td><td align="left"><a href="stklos-ref.html#-document-44572">*Top*</a></td></tr>
<tr class="navsel"><td width="8%" align="left" valign="top">1&nbsp;</td><td align="left"><a href="stklos-ref-1.html#Introduction">Introduction</a><br /><table cellspacing="1" cellpadding="1" width="100%">
<tbody>
<tr><td valign="top" align="left">1.1</td><td colspan="4" width="100%"><a href="stklos-ref-1.html#-section-5069">Overview of <span style="font-variant: small-caps">STklos</span></td></tr>
<tr><td valign="top" align="left">1.1</td><td colspan="4" width="100%"><a href="stklos-ref-1.html#-section-5093">Overview of <span style="font-variant: small-caps">STklos</span></td></tr>
<tr><td valign="top" align="left">1.2</td><td colspan="4" width="100%"><a href="stklos-ref-1.html#-Lexical-Conventions"> Lexical Conventions</td></tr>
<tr><td valign="top" align="left">1.3</td><td colspan="4" width="100%"><a href="stklos-ref-1.html#Basic-Concepts">Basic Concepts</td></tr>
</tbody>
......@@ -42,9 +42,9 @@
</tbody></table>
</td>
<td align="left" valign="top">
<a name="-section-5069"></a>
<a name="-section-5093"></a>
<h3><font color="darkolivegreen">1.1 Overview of <span style="font-variant: small-caps">STklos</span></font></h3>
<a name="--index-entry-5025"></a><a name="--index-entry-5030"></a><p> <span style="font-variant: small-caps">STklos</span> is the successor of <span style="font-variant: small-caps">STk</span>
<a name="--index-entry-5049"></a><a name="--index-entry-5054"></a><p> <span style="font-variant: small-caps">STklos</span> is the successor of <span style="font-variant: small-caps">STk</span>
[<a href="stklos-ref-16.html#Gallesio95-1a">6</a>], a Scheme interpreter which was tightly
connected to the Tk graphical toolkit [<a href="stklos-ref-16.html#Ouster-Tk">11</a>].
<span style="font-variant: small-caps">STk</span> had an object layer which was called <span style="font-variant: small-caps">STklos</span>. At this
......@@ -54,7 +54,7 @@ extension. For instance, when programming a GUI application,
a user could access the widgets at the (low) Tk level, or access
them using a neat hierarchy of classes wrapped in <span style="font-variant: small-caps">STklos</span>.</p><p> Since the object layer is now more closely integrated with
the language, the new system has been renamed <span style="font-variant: small-caps">STklos</span> and
<span style="font-variant: small-caps">STk</span> is now used to designate the old system. </p><a name="--index-entry-5053"></a><p> <strong>Compatibility with <span style="font-variant: small-caps">STk</span></strong>: <span style="font-variant: small-caps">STklos</span> has been
<span style="font-variant: small-caps">STk</span> is now used to designate the old system. </p><a name="--index-entry-5077"></a><p> <strong>Compatibility with <span style="font-variant: small-caps">STk</span></strong>: <span style="font-variant: small-caps">STklos</span> has been
completely rewritten and as a consequence, due to new
implementation choices, old <span style="font-variant: small-caps">STk</span> programs are not fully
compatible with the new system. However, these changes are very
......@@ -68,13 +68,25 @@ identical in every points, share the same philosophy.</p><a name="-Lexical-Conve
<h3 id="-Lexical-Conventions"><font color="darkolivegreen">1.2 Lexical Conventions</font></h3>
<a name="Identifiers"></a>
<h4 id="Identifiers"><font color="darkolivegreen">1.2.1 Identifiers</font></h4>
<a name="--index-entry-5072"></a><p>In <span style="font-variant: small-caps">STklos</span>, identifiers which start (or end) with a colon
<a name="--index-entry-5096"></a><a name="--index-entry-5100"></a><a name="--index-entry-5104"></a><p>In <span style="font-variant: small-caps">STklos</span>, identifiers which start (or end) with a colon
"<code>:</code>" are considered as keywords. For instance
<code>:foo</code> and <code>bar:</code> are <span style="font-variant: small-caps">STklos</span> keywords, but
<code>not:key</code> is not a keyword. See
section&nbsp;<a href="stklos-ref-4.html#Keywords">Keywords</a> for more information</p><a name="Comments"></a>
section&nbsp;<a href="stklos-ref-4.html#Keywords">Keywords</a> for more information</p><p>Note that, by default, <span style="font-variant: small-caps">STklos</span> is case insensitive as specified
by R5RS. This behavior can be changed by<ul><li>the <code>--case-sensitive</code> option used for the commands
<code>stklos</code> or <code>stklos-compile</code></li>
<li>the directive <code>#!no-fold-case</code>. This directive can
appear anywhere comments are permitted but must be followed by a
delimiter. This directive (and the <code>#!fold-case</code>) are treated as
comments, except that they affect the reading of subsequent data from
the same port. The <code>#!fold-case</code> directive causes subsequent
identifiers and character names to be case-folded as if by
<code>string-foldcase</code>. It has no effect on character
literals. The <code>#!no-fold-case</code> directive causes the reader
to a non-folding behavior.</li>
</ul></p><a name="Comments"></a>
<h4 id="Comments"><font color="darkolivegreen">1.2.2 Comments</font></h4>
<a name="--index-entry-5090"></a><a name="--index-entry-5094"></a><a name="--index-entry-5098"></a><a name="--index-entry-5102"></a><a name="--index-entry-5106"></a><p>There are four types of comments in <span style="font-variant: small-caps">STklos</span>:</p><ul><li>a semicolon "<code>;</code>" indicates the start of a
<a name="--index-entry-5135"></a><a name="--index-entry-5139"></a><a name="--index-entry-5143"></a><a name="--index-entry-5147"></a><a name="--index-entry-5151"></a><p>There are four types of comments in <span style="font-variant: small-caps">STklos</span>:</p><ul><li>a semicolon "<code>;</code>" indicates the start of a
comment. This kind of comment extends to the end of the line (as
described in <span style="font-variant: small-caps">R<sup>5</sup>RS</span>).</li>
<li> multi-lines comment use the classical Lisp convention:
......@@ -103,7 +115,7 @@ accepts keywords and optional arguments, to be compatible with
DSSSL lambdas [<a href="stklos-ref-16.html#dsssl-96">10</a>].</p></li>
</ul><a name="Here-Strings"></a>
<h4 id="Here-Strings"><font color="darkolivegreen">1.2.3 Here Strings</font></h4>
<a name="--index-entry-5161"></a><a name="--index-entry-5165"></a><p>Here strings permit to easily enter multilines strings in programs.
<a name="--index-entry-5206"></a><a name="--index-entry-5210"></a><p>Here strings permit to easily enter multilines strings in programs.
The sequence of characters <em>#&lt;&lt;</em> starts a here string. The characters
following this sequence #&lt;&lt; until a newline character define a terminator for
the here string. The content of the string includes all characters between
......@@ -149,6 +161,6 @@ can also be represented in this way:
See the original <span style="font-variant: small-caps">R<sup>5</sup>RS</span> document for more informations on
the basic concepts of the Scheme Programming Language.<p></p></td>
</tr></table><small><hr>This <span style="font-variant: small-caps">Html</span> page has been produced by
<a href="http://www.stklos.net/~eg/Publis/JFP05/article.html">Skribe</a>.<br />Last update <em>Fri Apr 20 15:48:42 2018</em></small>
<a href="http://www.stklos.net/~eg/Publis/JFP05/article.html">Skribe</a>.<br />Last update <em>Fri Apr 20 19:24:44 2018</em></small>
</body>
</html>
This diff is collapsed.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<style type="text/css">
<!--
tt { font-family: monospace }
......@@ -15,7 +15,7 @@
<td align="left" valign="top" width="20%" bgcolor="#8A8983">
<br /><table width="97%" border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse;" frame="box" rules="none"><tbody>
<tr><th align="center" colspan="2" bgcolor="#ACE919"><font color="darkolivegreen">Contents</font></th></tr>
<tr class="navnorm"><td align="center"></td><td align="left"><a href="stklos-ref.html#-document-44527">*Top*</a></td></tr>
<tr class="navnorm"><td align="center"></td><td align="left"><a href="stklos-ref.html#-document-44572">*Top*</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">1&nbsp;</td><td align="left"><a href="stklos-ref-1.html#Introduction">Introduction</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">2&nbsp;</td><td align="left"><a href="stklos-ref-2.html#Expressions">Expressions</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">3&nbsp;</td><td align="left"><a href="stklos-ref-3.html#Program-structure">Program structure</a></td></tr>
......@@ -28,7 +28,7 @@
<tr class="navnorm"><td width="8%" align="left" valign="top">10&nbsp;</td><td align="left"><a href="stklos-ref-10.html#Customizations">Customizations</a></td></tr>
<tr class="navsel"><td width="8%" align="left" valign="top">11&nbsp;</td><td align="left"><a href="stklos-ref-11.html#The-ScmPkg-Package-System">The ScmPkg Package System</a><br /><table cellspacing="1" cellpadding="1" width="100%">
<tbody>
<tr><td valign="top" align="left">11.1</td><td colspan="4" width="100%"><a href="stklos-ref-11.html#-section-42404"><span style="font-variant: small-caps">ScmPkg</span> &quot;tutorial&quot;</td></tr>
<tr><td valign="top" align="left">11.1</td><td colspan="4" width="100%"><a href="stklos-ref-11.html#-section-42449"><span style="font-variant: small-caps">ScmPkg</span> &quot;tutorial&quot;</td></tr>
<tr><td valign="top" align="left">11.2</td><td colspan="4" width="100%"><a href="stklos-ref-11.html#stklos-pkg-options">stklos-pkg options</td></tr>
</tbody>
</table>
......@@ -41,11 +41,11 @@
</tbody></table>
</td>
<td align="left" valign="top">
<a name="--index-entry-42327"></a><p><span style="font-variant: small-caps">ScmPkg</span> is a package distribution system for Scheme. It is
<a name="--index-entry-42372"></a><p><span style="font-variant: small-caps">ScmPkg</span> is a package distribution system for Scheme. It is
currently supported by Bigloo and Stklos. This package system
provides new APIs to Scheme (e.g., network programming,
cryptography, encoding, ...) and it manages automatic package
installation, deinstallation and testing.</p><a name="-section-42404"></a>
installation, deinstallation and testing.</p><a name="-section-42449"></a>
<h3><font color="darkolivegreen">11.1 <span style="font-variant: small-caps">ScmPkg</span> &quot;tutorial&quot;</font></h3>
<p><tt>stklos-pkg</tt> is the command which gives access to
<span style="font-variant: small-caps">ScmPkg</span> in <span style="font-variant: small-caps">STklos</span>. This is the only command necessary to
......@@ -138,6 +138,6 @@ Misc
</tbody></table></blockquote>
</td>
</tr></table><small><hr>This <span style="font-variant: small-caps">Html</span> page has been produced by
<a href="http://www.stklos.net/~eg/Publis/JFP05/article.html">Skribe</a>.<br />Last update <em>Fri Apr 20 15:48:44 2018</em></small>
<a href="http://www.stklos.net/~eg/Publis/JFP05/article.html">Skribe</a>.<br />Last update <em>Fri Apr 20 19:24:45 2018</em></small>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<style type="text/css">
<!--
tt { font-family: monospace }
......@@ -15,7 +15,7 @@
<td align="left" valign="top" width="20%" bgcolor="#8A8983">
<br /><table width="97%" border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse;" frame="box" rules="none"><tbody>
<tr><th align="center" colspan="2" bgcolor="#ACE919"><font color="darkolivegreen">Contents</font></th></tr>
<tr class="navnorm"><td align="center"></td><td align="left"><a href="stklos-ref.html#-document-44527">*Top*</a></td></tr>
<tr class="navnorm"><td align="center"></td><td align="left"><a href="stklos-ref.html#-document-44572">*Top*</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">1&nbsp;</td><td align="left"><a href="stklos-ref-1.html#Introduction">Introduction</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">2&nbsp;</td><td align="left"><a href="stklos-ref-2.html#Expressions">Expressions</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">3&nbsp;</td><td align="left"><a href="stklos-ref-3.html#Program-structure">Program structure</a></td></tr>
......@@ -39,7 +39,7 @@
defined to allow an easy access to functions written in C without
needing to build C-wrappers and, consequently, without any need to
write C code. Note that the FFI is very machine dependent and that it
works only on a limited set of architectures/systems <a href="#fn--footnote-42584"><sup><small>1</small></sup></a>. Moreover,
works only on a limited set of architectures/systems <a href="#fn--footnote-42629"><sup><small>1</small></sup></a>. Moreover,
since FFI allows very low level access, it is easy to crash the
<span style="font-variant: small-caps">STklos</span> VM when using an external C function.</p><p><strong>Note that the support for FFI is still minimal and that it will
evolve in future versions.</strong></p><p>The definition of an external function is done with the
......@@ -72,7 +72,7 @@ between the C and the Scheme worlds.</p><br id="FFI-types"><a name="FFI-types"><
<strong>Fig. 2:</strong> FFI types</center>
<br>
<br /><table cellspacing="0" cellpadding="0" width="100%"><tbody>
<tr><td bgcolor="#dddddd"><a name="define-external"></a><a name="--index-entry-42673"></a><table width="100%" style="border-collapse: collapse;" frame="void" rules="none"><tbody>
<tr><td bgcolor="#dddddd"><a name="define-external"></a><a name="--index-entry-42718"></a><table width="100%" style="border-collapse: collapse;" frame="void" rules="none"><tbody>
<tr><td align="left"><code><strong><font color="IndianRed">(define-external name parameters option)</font></strong></code></td><td align="right"><font color="darkolivegreen"><i><span style="font-variant: small-caps">STklos</span> syntax</i></font></td></tr>
</tbody></table>
<br />The form <code>define-external</code> binds a new procedure to <code>name</code>.
......@@ -153,12 +153,12 @@ Note that in this function the name of the parameter has been omitted
as within C prototypes.</li>
</ul><strong>TODO: describe malloc and malloc_atomic and their
interaction with the GC</strong><br><br><hr width='20%' size='2' align='left'>
<a name="fn--footnote-42584"><sup><small>1</small></sup></a>: FFI
<a name="fn--footnote-42629"><sup><small>1</small></sup></a>: FFI
system should works on the following architectures/systems:
gcc_ppc_osx, gcc_sparc_unix, gcc_x64_unix, gcc_x86_unix.
<br>
</td>
</tr></table><small><hr>This <span style="font-variant: small-caps">Html</span> page has been produced by
<a href="http://www.stklos.net/~eg/Publis/JFP05/article.html">Skribe</a>.<br />Last update <em>Fri Apr 20 15:48:44 2018</em></small>
<a href="http://www.stklos.net/~eg/Publis/JFP05/article.html">Skribe</a>.<br />Last update <em>Fri Apr 20 19:24:45 2018</em></small>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<style type="text/css">
<!--
tt { font-family: monospace }
......@@ -15,7 +15,7 @@
<td align="left" valign="top" width="20%" bgcolor="#8A8983">
<br /><table width="97%" border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse;" frame="box" rules="none"><tbody>
<tr><th align="center" colspan="2" bgcolor="#ACE919"><font color="darkolivegreen">Contents</font></th></tr>
<tr class="navnorm"><td align="center"></td><td align="left"><a href="stklos-ref.html#-document-44527">*Top*</a></td></tr>
<tr class="navnorm"><td align="center"></td><td align="left"><a href="stklos-ref.html#-document-44572">*Top*</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">1&nbsp;</td><td align="left"><a href="stklos-ref-1.html#Introduction">Introduction</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">2&nbsp;</td><td align="left"><a href="stklos-ref-2.html#Expressions">Expressions</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">3&nbsp;</td><td align="left"><a href="stklos-ref-3.html#Program-structure">Program structure</a></td></tr>
......@@ -35,7 +35,7 @@
</tbody></table>
</td>
<td align="left" valign="top">
<a name="--index-entry-42924"></a><a name="--index-entry-42928"></a><p>Aubrey Jaffer maintains a package called
<a name="--index-entry-42969"></a><a name="--index-entry-42973"></a><p>Aubrey Jaffer maintains a package called
<em><a href="http://swiss.csail.mit.edu/~jaffer/SLIB">SLIB</a></em>
which is a portable Scheme library which provides compatibility
and utility functions for all standard Scheme implementations. To
......@@ -52,6 +52,6 @@ such as if their parameter is a string this is the old <span style="font-variant
procedure which is called, and if their parameter is a symbol,
this is the <em>SLIB</em> one which is called.</p></td>
</tr></table><small><hr>This <span style="font-variant: small-caps">Html</span> page has been produced by
<a href="http://www.stklos.net/~eg/Publis/JFP05/article.html">Skribe</a>.<br />Last update <em>Fri Apr 20 15:48:44 2018</em></small>
<a href="http://www.stklos.net/~eg/Publis/JFP05/article.html">Skribe</a>.<br />Last update <em>Fri Apr 20 19:24:45 2018</em></small>
</body>
</html>
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<style type="text/css">
<!--
tt { font-family: monospace }
......@@ -15,7 +15,7 @@
<td align="left" valign="top" width="20%" bgcolor="#8A8983">
<br /><table width="97%" border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse;" frame="box" rules="none"><tbody>
<tr><th align="center" colspan="2" bgcolor="#ACE919"><font color="darkolivegreen">Contents</font></th></tr>
<tr class="navnorm"><td align="center"></td><td align="left"><a href="stklos-ref.html#-document-44527">*Top*</a></td></tr>
<tr class="navnorm"><td align="center"></td><td align="left"><a href="stklos-ref.html#-document-44572">*Top*</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">1&nbsp;</td><td align="left"><a href="stklos-ref-1.html#Introduction">Introduction</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">2&nbsp;</td><td align="left"><a href="stklos-ref-2.html#Expressions">Expressions</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">3&nbsp;</td><td align="left"><a href="stklos-ref-3.html#Program-structure">Program structure</a></td></tr>
......@@ -35,9 +35,9 @@
</tbody></table>
</td>
<td align="left" valign="top">
<table><tbody><tr><td valign="top" align="right">[1] </td><td valign="top" align="left"> -- <a title="http://www-sop.inria.fr/mimosa/fp/Bigloo/" href="http://www-sop.inria.fr/mimosa/fp/Bigloo/"><strong>Bigloo Home Page</strong></a>.</td></tr><tr><td valign="top" align="right">[2] </td><td valign="top" align="left"> -- <a title="http://gtk.org/" href="http://gtk.org/"><strong>The GTK+ Toolkit Home Page</strong></a>.</td></tr><tr><td valign="top" align="right">[3] </td><td valign="top" align="left">Apple Computer -- <strong>Dylan: an Object Oriented Dynamic Language</strong> -- <i>Apple</i>, April, 1992.</td></tr><tr><td valign="top" align="right">[4] </td><td valign="top" align="left">C. Queinnec and J-M. Geffroy -- <strong>Partial Evaluation Applied to Symbolic Pattern Matching with Intelligent Backtrack</strong> -- Workshop in Static Analysis, Bigre, (81--82), Bordeaux (France), September, 1992.</td></tr><tr><td valign="top" align="right">[5] </td><td valign="top" align="left">Chris Hanson -- <a title="http://www.swiss.ai.mit.edu/projects/scheme/documentation/sos.html" href="http://www.swiss.ai.mit.edu/projects/scheme/documentation/sos.html"><strong>The SOS Reference Manual, version 1.5</strong></a> -- March, 1993.</td></tr><tr><td valign="top" align="right">[6] </td><td valign="top" align="left">Erick Gallesio -- <strong>Reference Manual</strong> -- RT 95-31a, I3S CNRS / Universit頤e Nice - Sophia Antipolis, juillet, 1995, pp. 82.</td></tr><tr><td valign="top" align="right">[7] </td><td valign="top" align="left">Gregor Kickzales -- <a title="ftp://parcftp.xerox.com/pub/openimplementations/tiny" href="ftp://parcftp.xerox.com/pub/openimplementations/tiny"><strong>Tiny-Clos</strong></a> -- December, 1992.</td></tr><tr><td valign="top" align="right">[8] </td><td valign="top" align="left">Gregor Kickzales, Jim de Rivi貥s and Daniel G. Bobrow -- <strong>The Art of Meta Object Protocol</strong> -- <i>MIT Press</i>, 1991.</td></tr><tr><td valign="top" align="right">[9] </td><td valign="top" align="left">Guy L. Steele Jr. -- <strong>Common Lisp: the Language, 2nd Edition</strong> -- <i>Digital Press</i>, 12 Crosby Drive, Bedford, MA 01730, USA, 1990.</td></tr><tr><td valign="top" align="right">[10] </td><td valign="top" align="left">ISO/IEC -- <strong>Information technology, Processing Languages, Document Style Semantics and Specification Languages (DSSSL)</strong> -- 10179:1996(E), ISO, , 1996.</td></tr><tr><td valign="top" align="right">[11] </td><td valign="top" align="left">John K. Ousterhout -- <strong>An X11 toolkit based on the Tcl Language</strong> -- USENIX Winter Conference, January, 1991, pp. 105--115.</td></tr><tr><td valign="top" align="right">[12] </td><td valign="top" align="left">Kelsey, R. and Clinger, W. and Rees, J. -- <a title="http://www.schemers.org/Documents/Standards/R5RS/HTML" href="http://www.schemers.org/Documents/Standards/R5RS/HTML"><strong>The Revised5 Report on the Algorithmic Language Scheme</strong></a> -- Higher-Order and Symbolic Computation, 11(1), Sep, 1998.</td></tr><tr><td valign="top" align="right">[13] </td><td valign="top" align="left">Philip Hazel -- <a title="http://pcre.org/" href="http://pcre.org/"><strong>PCRE (Perl Compatible Regular Expressions) Home page</strong></a>.</td></tr><tr><td valign="top" align="right">[14] </td><td valign="top" align="left">Sho-Huan Simon Tung and R. Kent Dybvig -- <strong>Reliable Interactive Programming with Modules</strong> -- LISP and Symbolic Computation, 91996, pp. 343--358.</td></tr></tbody></table>
<table><tbody><tr><td valign="top" align="right">[1] </td><td valign="top" align="left"> -- <a title="http://www-sop.inria.fr/mimosa/fp/Bigloo/" href="http://www-sop.inria.fr/mimosa/fp/Bigloo/"><strong>Bigloo Home Page</strong></a>.</td></tr><tr><td valign="top" align="right">[2] </td><td valign="top" align="left"> -- <a title="http://gtk.org/" href="http://gtk.org/"><strong>The GTK+ Toolkit Home Page</strong></a>.</td></tr><tr><td valign="top" align="right">[3] </td><td valign="top" align="left">Apple Computer -- <strong>Dylan: an Object Oriented Dynamic Language</strong> -- <i>Apple</i>, April, 1992.</td></tr><tr><td valign="top" align="right">[4] </td><td valign="top" align="left">C. Queinnec and J-M. Geffroy -- <strong>Partial Evaluation Applied to Symbolic Pattern Matching with Intelligent Backtrack</strong> -- Workshop in Static Analysis, Bigre, (81--82), Bordeaux (France), September, 1992.</td></tr><tr><td valign="top" align="right">[5] </td><td valign="top" align="left">Chris Hanson -- <a title="http://www.swiss.ai.mit.edu/projects/scheme/documentation/sos.html" href="http://www.swiss.ai.mit.edu/projects/scheme/documentation/sos.html"><strong>The SOS Reference Manual, version 1.5</strong></a> -- March, 1993.</td></tr><tr><td valign="top" align="right">[6] </td><td valign="top" align="left">Erick Gallesio -- <strong>Reference Manual</strong> -- RT 95-31a, I3S CNRS / Université de Nice - Sophia Antipolis, juillet, 1995, pp. 82.</td></tr><tr><td valign="top" align="right">[7] </td><td valign="top" align="left">Gregor Kickzales -- <a title="ftp://parcftp.xerox.com/pub/openimplementations/tiny" href="ftp://parcftp.xerox.com/pub/openimplementations/tiny"><strong>Tiny-Clos</strong></a> -- December, 1992.</td></tr><tr><td valign="top" align="right">[8] </td><td valign="top" align="left">Gregor Kickzales, Jim de Rivières and Daniel G. Bobrow -- <strong>The Art of Meta Object Protocol</strong> -- <i>MIT Press</i>, 1991.</td></tr><tr><td valign="top" align="right">[9] </td><td valign="top" align="left">Guy L. Steele Jr. -- <strong>Common Lisp: the Language, 2nd Edition</strong> -- <i>Digital Press</i>, 12 Crosby Drive, Bedford, MA 01730, USA, 1990.</td></tr><tr><td valign="top" align="right">[10] </td><td valign="top" align="left">ISO/IEC -- <strong>Information technology, Processing Languages, Document Style Semantics and Specification Languages (DSSSL)</strong> -- 10179:1996(E), ISO, , 1996.</td></tr><tr><td valign="top" align="right">[11] </td><td valign="top" align="left">John K. Ousterhout -- <strong>An X11 toolkit based on the Tcl Language</strong> -- USENIX Winter Conference, January, 1991, pp. 105--115.</td></tr><tr><td valign="top" align="right">[12] </td><td valign="top" align="left">Kelsey, R. and Clinger, W. and Rees, J. -- <a title="http://www.schemers.org/Documents/Standards/R5RS/HTML" href="http://www.schemers.org/Documents/Standards/R5RS/HTML"><strong>The Revised5 Report on the Algorithmic Language Scheme</strong></a> -- Higher-Order and Symbolic Computation, 11(1), Sep, 1998.</td></tr><tr><td valign="top" align="right">[13] </td><td valign="top" align="left">Philip Hazel -- <a title="http://pcre.org/" href="http://pcre.org/"><strong>PCRE (Perl Compatible Regular Expressions) Home page</strong></a>.</td></tr><tr><td valign="top" align="right">[14] </td><td valign="top" align="left">Sho-Huan Simon Tung and R. Kent Dybvig -- <strong>Reliable Interactive Programming with Modules</strong> -- LISP and Symbolic Computation, 91996, pp. 343--358.</td></tr></tbody></table>
</td>
</tr></table><small><hr>This <span style="font-variant: small-caps">Html</span> page has been produced by
<a href="http://www.stklos.net/~eg/Publis/JFP05/article.html">Skribe</a>.<br />Last update <em>Fri Apr 20 15:48:44 2018</em></small>
<a href="http://www.stklos.net/~eg/Publis/JFP05/article.html">Skribe</a>.<br />Last update <em>Fri Apr 20 19:24:45 2018</em></small>
</body>
</html>
This diff is collapsed.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<style type="text/css">
<!--
tt { font-family: monospace }
......@@ -15,7 +15,7 @@
<td align="left" valign="top" width="20%" bgcolor="#8A8983">
<br /><table width="97%" border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse;" frame="box" rules="none"><tbody>
<tr><th align="center" colspan="2" bgcolor="#ACE919"><font color="darkolivegreen">Contents</font></th></tr>
<tr class="navnorm"><td align="center"></td><td align="left"><a href="stklos-ref.html#-document-44527">*Top*</a></td></tr>
<tr class="navnorm"><td align="center"></td><td align="left"><a href="stklos-ref.html#-document-44572">*Top*</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">1&nbsp;</td><td align="left"><a href="stklos-ref-1.html#Introduction">Introduction</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">2&nbsp;</td><td align="left"><a href="stklos-ref-2.html#Expressions">Expressions</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">3&nbsp;</td><td align="left"><a href="stklos-ref-3.html#Program-structure">Program structure</a></td></tr>
......@@ -56,7 +56,7 @@
</tbody></table>
</td>
<td align="left" valign="top">
<a name="--index-entry-35561"></a><p><span style="font-variant: small-caps">STklos</span> uses the Philip Hazel's Perl-compatible Regular Expression
<a name="--index-entry-35606"></a><p><span style="font-variant: small-caps">STklos</span> uses the Philip Hazel's Perl-compatible Regular Expression
(PCRE) library for implementing regexps [<a href="stklos-ref-16.html#PCRE">13</a>].
Consequently, the <span style="font-variant: small-caps">STklos</span> regular expression syntax is the same
as PCRE, and Perl by the way.</p><p>The following text is extracted from the PCRE package. However, to make
......@@ -64,7 +64,7 @@ things shorter, some of the original documentation as not been reported
here. In particular some possibilities of PCRE have been completely
occulted (those whose description was too long and which seems (at least
to me), not too important). Read the documentation provided with PCRE
for a complete description <a href="#fn--footnote-35574"><sup><small>1</small></sup></a></p><p>A regular expression is a pattern that is matched against a
for a complete description <a href="#fn--footnote-35619"><sup><small>1</small></sup></a></p><p>A regular expression is a pattern that is matched against a
subject string from left to right. Most characters stand for
themselves in a pattern, and match the corresponding characters
in the subject. As a trivial example, the pattern</p><blockquote><table cellspacing="0" cellpadding="4" width="90%"><tbody>
......@@ -851,7 +851,7 @@ refer.</p><a name="Regexp-Procedures"></a>
<h3 id="Regexp-Procedures"><font color="darkolivegreen">5.17 Regexp Procedures</font></h3>
<p>This section lists the Scheme functions that can use PCRE regexpr described
before</p><br /><table cellspacing="0" cellpadding="0" width="100%"><tbody>
<tr><td bgcolor="#dddddd"><a name="string--regexp"></a><a name="--index-entry-36329"></a><table width="100%" style="border-collapse: collapse;" frame="void" rules="none"><tbody>
<tr><td bgcolor="#dddddd"><a name="string--regexp"></a><a name="--index-entry-36374"></a><table width="100%" style="border-collapse: collapse;" frame="void" rules="none"><tbody>
<tr><td align="left"><code><strong><font color="IndianRed">(string-&gt;regexp string)</font></strong></code></td><td align="right"><font color="darkolivegreen"><i><span style="font-variant: small-caps">STklos</span> procedure</i></font></td></tr>
</tbody></table>
<br /><code>String-&gt;regexp</code> takes a string representation of a regular
......@@ -862,13 +862,13 @@ multiple times, it is faster to compile the string once to a regexp
value and use it for repeated matches instead of using the string
each time.</td></tr>
</tbody></table><br /><table cellspacing="0" cellpadding="0" width="100%"><tbody>
<tr><td bgcolor="#dddddd"><a name="regexp-"></a><a name="--index-entry-36353"></a><table width="100%" style="border-collapse: collapse;" frame="void" rules="none"><tbody>
<tr><td bgcolor="#dddddd"><a name="regexp-"></a><a name="--index-entry-36398"></a><table width="100%" style="border-collapse: collapse;" frame="void" rules="none"><tbody>
<tr><td align="left"><code><strong><font color="IndianRed">(regexp? obj)</font></strong></code></td><td align="right"><font color="darkolivegreen"><i><span style="font-variant: small-caps">STklos</span> procedure</i></font></td></tr>
</tbody></table>
<br /><code>Regexp</code> returns <code>#t</code> if <code>obj</code> is a regexp value created by the <code>regexp</code>,
otherwise <code>regexp</code> returns <code>#f</code>.</td></tr>
</tbody></table><br /><table cellspacing="0" cellpadding="0" width="100%"><tbody>
<tr><td bgcolor="#dddddd"><a name="regexp-match-positions"></a><a name="regexp-match"></a><a name="--index-entry-36403"></a><a name="--index-entry-36407"></a><table width="100%" style="border-collapse: collapse;" frame="void" rules="none"><tbody>
<tr><td bgcolor="#dddddd"><a name="regexp-match-positions"></a><a name="regexp-match"></a><a name="--index-entry-36448"></a><a name="--index-entry-36452"></a><table width="100%" style="border-collapse: collapse;" frame="void" rules="none"><tbody>
<tr><td align="left"><code><strong><font color="IndianRed">(regexp-match pattern str)</font></strong></code></td><td align="right"><font color="darkolivegreen"><i><span style="font-variant: small-caps">STklos</span> procedure</i></font></td></tr>
</tbody></table>
<code><strong><font color="IndianRed">(regexp-match-positions pattern str)</font></strong></code><br /><br />These functions attempt to match <code>pattern</code> (a string or a regexp value)
......@@ -902,7 +902,7 @@ in the order of the opening parentheses in pattern.
</tbody></table></blockquote>
</td></tr>
</tbody></table><br /><table cellspacing="0" cellpadding="0" width="100%"><tbody>
<tr><td bgcolor="#dddddd"><a name="regexp-replace-all"></a><a name="regexp-replace"></a><a name="--index-entry-36531"></a><a name="--index-entry-36535"></a><table width="100%" style="border-collapse: collapse;" frame="void" rules="none"><tbody>
<tr><td bgcolor="#dddddd"><a name="regexp-replace-all"></a><a name="regexp-replace"></a><a name="--index-entry-36576"></a><a name="--index-entry-36580"></a><table width="100%" style="border-collapse: collapse;" frame="void" rules="none"><tbody>
<tr><td align="left"><code><strong><font color="IndianRed">(regexp-replace pattern string substitution)</font></strong></code></td><td align="right"><font color="darkolivegreen"><i><span style="font-variant: small-caps">STklos</span> procedure</i></font></td></tr>
</tbody></table>
<code><strong><font color="IndianRed">(regexp-replace-all pattern string substitution)</font></strong></code><br /><br /><code>Regexp-replace</code> matches the regular expression <code>pattern</code> against
......@@ -940,7 +940,7 @@ To replace <strong>all</strong> the occurrences of <code>pattern</code>, use <co
</tbody></table></blockquote>
</td></tr>
</tbody></table><br /><table cellspacing="0" cellpadding="0" width="100%"><tbody>
<tr><td bgcolor="#dddddd"><a name="regexp-quote"></a><a name="--index-entry-36767"></a><table width="100%" style="border-collapse: collapse;" frame="void" rules="none"><tbody>
<tr><td bgcolor="#dddddd"><a name="regexp-quote"></a><a name="--index-entry-36812"></a><table width="100%" style="border-collapse: collapse;" frame="void" rules="none"><tbody>
<tr><td align="left"><code><strong><font color="IndianRed">(regexp-quote str)</font></strong></code></td><td align="right"><font color="darkolivegreen"><i><span style="font-variant: small-caps">STklos</span> procedure</i></font></td></tr>
</tbody></table>
<br />Takes an arbitrary string and returns a string where characters of
......@@ -955,11 +955,11 @@ backslash, so that they safely match only themselves.
<code>regexp-quote</code> is useful when building a composite regexp from
a mix of regexp strings and verbatim strings.</td></tr>
</tbody></table><br><br><hr width='20%' size='2' align='left'>
<a name="fn--footnote-35574"><sup><small>1</small></sup></a>: The latest release of PCRE is
<a name="fn--footnote-35619"><sup><small>1</small></sup></a>: The latest release of PCRE is
available from <a href="http://www.pcre.org/">http://www.pcre.org/</a>
<br>
</td>
</tr></table><small><hr>This <span style="font-variant: small-caps">Html</span> page has been produced by
<a href="http://www.stklos.net/~eg/Publis/JFP05/article.html">Skribe</a>.<br />Last update <em>Fri Apr 20 15:48:43 2018</em></small>
<a href="http://www.stklos.net/~eg/Publis/JFP05/article.html">Skribe</a>.<br />Last update <em>Fri Apr 20 19:24:44 2018</em></small>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<style type="text/css">
<!--
tt { font-family: monospace }
......@@ -15,7 +15,7 @@
<td align="left" valign="top" width="20%" bgcolor="#8A8983">
<br /><table width="97%" border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse;" frame="box" rules="none"><tbody>
<tr><th align="center" colspan="2" bgcolor="#ACE919"><font color="darkolivegreen">Contents</font></th></tr>
<tr class="navnorm"><td align="center"></td><td align="left"><a href="stklos-ref.html#-document-44527">*Top*</a></td></tr>
<tr class="navnorm"><td align="center"></td><td align="left"><a href="stklos-ref.html#-document-44572">*Top*</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">1&nbsp;</td><td align="left"><a href="stklos-ref-1.html#Introduction">Introduction</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">2&nbsp;</td><td align="left"><a href="stklos-ref-2.html#Expressions">Expressions</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">3&nbsp;</td><td align="left"><a href="stklos-ref-3.html#Program-structure">Program structure</a></td></tr>
......@@ -23,7 +23,7 @@
<tr class="navnorm"><td width="8%" align="left" valign="top">5&nbsp;</td><td align="left"><a href="stklos-ref-5.html#Regular-Expressions">Regular Expressions</a></td></tr>
<tr class="navsel"><td width="8%" align="left" valign="top">6&nbsp;</td><td align="left"><a href="stklos-ref-6.html#Pattern-Matching">Pattern Matching</a><br /><table cellspacing="1" cellpadding="1" width="100%">
<tbody>
<tr><td valign="top" align="left">6.1</td><td colspan="4" width="100%"><a href="stklos-ref-6.html#-section-37311"><span style="font-variant: small-caps">STklos</span> Pattern Matching Facilities</td></tr>
<tr><td valign="top" align="left">6.1</td><td colspan="4" width="100%"><a href="stklos-ref-6.html#-section-37356"><span style="font-variant: small-caps">STklos</span> Pattern Matching Facilities</td></tr>
<tr><td valign="top" align="left">6.2</td><td colspan="4" width="100%"><a href="stklos-ref-6.html#The-Pattern-Language">The Pattern Language</td></tr>
</tbody>
</table>
......@@ -46,7 +46,7 @@ languages since it allows clean and secure code to be
written. Internally, "pattern-matching forms" should be translated
(compiled) into cascades of "elementary tests" where code is made as
efficient as possible, avoiding redundant tests; <span style="font-variant: small-caps">STklos</span>
"pattern matching compiler" provides this <a href="#fn--footnote-37133"><sup><small>1</small></sup></a>.</p><p>The technique used is described in details in
"pattern matching compiler" provides this <a href="#fn--footnote-37178"><sup><small>1</small></sup></a>.</p><p>The technique used is described in details in
[<a href="stklos-ref-16.html#Queinnec-Geffroy92">4</a>], and the code generated can be
considered optimal</p><p>The "pattern language" allows the expression of a wide variety
of patterns, including:</p><ul><li>Non-linear patterns: pattern variables can appear more than
......@@ -55,11 +55,11 @@ once, allowing comparison of subparts of the datum (through <a href="stklos-ref-
datum is a list of zero or more <code>a</code>s followed by zero or more
<code>b</code>s.</li>
<li>Pattern matching on lists as well as on vectors.</li>
</ul><a name="-section-37311"></a>
</ul><a name="-section-37356"></a>
<h3><font color="darkolivegreen">6.1 <span style="font-variant: small-caps">STklos</span> Pattern Matching Facilities</font></h3>
<p>Only two special forms are provided for this in <span style="font-variant: small-caps">STklos</span>: <code>match-case</code>
and <code>match-lambda</code>.</p><br /><table cellspacing="0" cellpadding="0" width="100%"><tbody>
<tr><td bgcolor="#dddddd"><a name="match-case"></a><a name="--index-entry-37156"></a><table width="100%" style="border-collapse: collapse;" frame="void" rules="none"><tbody>
<tr><td bgcolor="#dddddd"><a name="match-case"></a><a name="--index-entry-37201"></a><table width="100%" style="border-collapse: collapse;" frame="void" rules="none"><tbody>
<tr><td align="left"><code><strong><font color="IndianRed">(match-case &lt;key&gt; &lt;clause&gt; ...)</font></strong></code></td><td align="right"><font color="darkolivegreen"><i><span style="font-variant: small-caps">STklos</span> syntax</i></font></td></tr>
</tbody></table>
<br />The argument key may be any expression and each clause has the form
......@@ -94,7 +94,7 @@ The equality predicate used for tests is <code>eq?</code>.
</tbody></table></blockquote>
</td></tr>
</tbody></table><br /><table cellspacing="0" cellpadding="0" width="100%"><tbody>
<tr><td bgcolor="#dddddd"><a name="match-lambda"></a><a name="--index-entry-37267"></a><table width="100%" style="border-collapse: collapse;" frame="void" rules="none"><tbody>
<tr><td bgcolor="#dddddd"><a name="match-lambda"></a><a name="--index-entry-37312"></a><table width="100%" style="border-collapse: collapse;" frame="void" rules="none"><tbody>
<tr><td align="left"><code><strong><font color="IndianRed">(match-lambda &lt;clause&gt; ...)</font></strong></code></td><td align="right"><font color="darkolivegreen"><i><span style="font-variant: small-caps">STklos</span> syntax</i></font></td></tr>
</tbody></table>
<br /><code>match-lambda</code> expands into a lambda-expression expecting an argument
......@@ -110,7 +110,7 @@ which, once applied to an expression, behaves exactly like a
</td></tr>
</tbody></table><a name="The-Pattern-Language"></a>
<h3 id="The-Pattern-Language"><font color="darkolivegreen">6.2 The Pattern Language</font></h3>
<a name="--index-entry-37314"></a><p>The syntax for <code>&lt;pattern&gt;</code> is:</p><blockquote><table cellspacing="0" cellpadding="4" width="90%"><tbody>
<a name="--index-entry-37359"></a><p>The syntax for <code>&lt;pattern&gt;</code> is:</p><blockquote><table cellspacing="0" cellpadding="4" width="90%"><tbody>
<tr><td bgcolor="ivory"><pre>&lt;pattern&gt; ==&gt; <em>Matches:</em>
&lt;atom&gt; <em>the &lt;atom&gt;.</em>
......@@ -162,7 +162,7 @@ not appear inside a vector, where you should use <code>???-</code>:
For example, <code>#(a ??- b)</code> or <code>#(a...)</code> are invalid
patterns, whereas <code>#(a ???-)</code> is valid and matches any
vector whose first element is the atom <code>a</code>.</p><br><br><hr width='20%' size='2' align='left'>
<a name="fn--footnote-37133"><sup><small>1</small></sup></a>: The "pattern matching compiler" has been written by Jean-Marie Geffroy
<a name="fn--footnote-37178"><sup><small>1</small></sup></a>: The "pattern matching compiler" has been written by Jean-Marie Geffroy
and is part of the Manuel Serrano's Bigloo compiler [<a href="stklos-ref-16.html#Bigloo-home">1</a>]
since several years. The code (and documentation) included in <span style="font-variant: small-caps">STklos</span>
has been stolen from the Bigloo package v2.4 (the only difference
......@@ -171,6 +171,6 @@ vector whose first element is the atom <code>a</code>.</p><br><br><hr width='20%
<br>
</td>
</tr></table><small><hr>This <span style="font-variant: small-caps">Html</span> page has been produced by
<a href="http://www.stklos.net/~eg/Publis/JFP05/article.html">Skribe</a>.<br />Last update <em>Fri Apr 20 15:48:43 2018</em></small>
<a href="http://www.stklos.net/~eg/Publis/JFP05/article.html">Skribe</a>.<br />Last update <em>Fri Apr 20 19:24:44 2018</em></small>
</body>
</html>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<style type="text/css">
<!--
tt { font-family: monospace }
......@@ -16,7 +16,7 @@
<td align="left" valign="top" width="20%" bgcolor="#8A8983">
<br /><table width="97%" border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse;" frame="box" rules="none"><tbody>
<tr><th align="center" colspan="2" bgcolor="#ACE919"><font color="darkolivegreen">Contents</font></th></tr>
<tr class="navnorm"><td align="center"></td><td align="left"><a href="stklos-ref.html#-document-44527">*Top*</a></td></tr>
<tr class="navnorm"><td align="center"></td><td align="left"><a href="stklos-ref.html#-document-44572">*Top*</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">1&nbsp;</td><td align="left"><a href="stklos-ref-1.html#Introduction">Introduction</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">2&nbsp;</td><td align="left"><a href="stklos-ref-2.html#Expressions">Expressions</a></td></tr>
<tr class="navnorm"><td width="8%" align="left" valign="top">3&nbsp;</td><td align="left"><a href="stklos-ref-3.html#Program-structure">Program structure</a></td></tr>
......@@ -42,8 +42,8 @@ forms implemented in version <strong>1.20</strong> of
language described in the Revised<sup>5</sup> Report on the
Algorithmic Language Scheme (aka <span style="font-variant: small-caps">R<sup>5</sup>RS</span>) [<a href="stklos-ref-16.html#R5RS">12</a>],
the organization of this manual follows closely the one of this
document.<a name="--index-entry-42964"></a></td>
document.<a name="--index-entry-43009"></a></td>
</tr></table><small><hr>This <span style="font-variant: small-caps">Html</span> page has been produced by
<a href="http://www.stklos.net/~eg/Publis/JFP05/article.html">Skribe</a>.<br />Last update <em>Fri Apr 20 15:48:44 2018</em></small>
<a href="http://www.stklos.net/~eg/Publis/JFP05/article.html">Skribe</a>.<br />Last update <em>Fri Apr 20 19:24:45 2018</em></small>
</body>
</html>
No preview for this file type
;;;; -*- Scheme -*-
;;;; biblio.skbib -- The biblio Data File STklos Doc
;;;; -*- mode: Scheme; coding: utf-8 -*-
;;;; biblio.skbib -- The biblio Data File STklos Doc
;;;;
;;;; Copyright 2004-2005 Erick Gallesio - I3S-CNRS/ESSI <eg@essi.fr>
;;;; Copyright © 2004-2018 Erick Gallesio - I3S-CNRS/ESSI <eg@essi.fr>
;;;;
;;;; Author: Erick Gallesio [eg@essi.fr]
;;;; Creation date: 1-Sep-2004 18:01 (eg)
;;;; Last file update: 3-Mar-2005 18:43 (eg)
;;;; Last file update: 20-Apr-2018 19:22 (eg)
;;;;
......@@ -23,7 +23,7 @@
(techreport "Gallesio95-1a"
(author "Erick Gallesio")
(title "Reference Manual")
(institution "I3S CNRS / Universit de Nice - Sophia Antipolis")
(institution "I3S CNRS / Université de Nice - Sophia Antipolis")
(year "1995")
(month "juillet")
(number "RT 95-31a")
......@@ -95,7 +95,7 @@
(book "AMOP"
(author "Gregor Kickzales, Jim de Rivires and Daniel G. Bobrow")
(author "Gregor Kickzales, Jim de Rivières and Daniel G. Bobrow")
(title "The Art of Meta Object Protocol")
(year "1991")
(publisher "MIT Press")
......
% -*- latex -*-
\enableregime[il1]
\enableregime[utf8]
\setuppapersize[A4]
%%
......
;; ======================================================================
;;
;; STklos Reference Manual
;; STklos Reference Manual
;;
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
......@@ -18,7 +18,7 @@
;; USA.
;; Author: Erick Gallesio [eg@unice.fr]
;; Creation date: 26-Nov-2000 18:19 (eg)
;; Last file update: 20-Apr-2007 16:00 (eg)
;; Last file update: 20-Apr-2018 17:35 (eg)
;;
;; ======================================================================
......@@ -27,14 +27,14 @@
;; ======================================================================
;;
;; Introduction
;; Introduction
;;
;; ======================================================================
(chapter :title "Introduction" :file #f
;;; ======================================================================
;;;
;;; Section "Overview of STklos"
;;; Section "Overview of STklos"
;;;
;;; ======================================================================
(section :title [Overview of ,(stklos)]
......@@ -70,26 +70,44 @@ identical in every points, share the same philosophy.]))
;;; ======================================================================
;;;
;;; Section "Lexical Conventions"
;;; Section "Lexical Conventions"
;;;
;;; ======================================================================
(section :title " Lexical Conventions"
;; ----------------------------------------------------------------------
;; Subsection "Identifiers"
;; Subsection "Identifiers"
;; ----------------------------------------------------------------------
(subsection :title "Identifiers"
(index "keyword")
(index "#!fold-case")
(index "#!no-fold-case")
(p [In ,(stklos), identifiers which start (or end) with a colon
,(q (code ":")) are considered as keywords. For instance
,(code ":foo") and ,(code "bar:") are ,(stklos) keywords, but
,(code "not:key") is not a keyword. See
section,(~),(ref :section "Keywords") for more information]))
section,(~),(ref :section "Keywords") for more information])
(p [Note that, by default, ,(stklos) is case insensitive as specified
by R5RS. This behavior can be changed by]
(itemize
(item [the ,(code "--case-sensitive") option used for the commands
,(code "stklos") or ,(code "stklos-compile")])
(item [the directive ,(code "#!no-fold-case"). This directive can
appear anywhere comments are permitted but must be followed by a
delimiter. This directive (and the ,(code "#!fold-case")) are treated as
comments, except that they affect the reading of subsequent data from
the same port. The ,(code "#!fold-case") directive causes subsequent
identifiers and character names to be case-folded as if by
,(code "string-foldcase"). It has no effect on character
literals. The ,(code "#!no-fold-case") directive causes the reader
to a non-folding behavior.]))))
;; ----------------------------------------------------------------------
;; Subsection "Comments"
;; Subsection "Comments"
;; ----------------------------------------------------------------------
(subsection :title "Comments"
(index "comments")
......@@ -123,7 +141,7 @@ then the script can be started directly as if it was a binary
program. ,(stklos) is loaded behind the scene and
executes the script as a Scheme program. This form is compatible with