Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r53434 - in trunk/libs/spirit/doc/html: . spirit
From: joel_at_[hidden]
Date: 2009-05-30 05:36:07


Author: djowel
Date: 2009-05-30 05:36:06 EDT (Sat, 30 May 2009)
New Revision: 53434
URL: http://svn.boost.org/trac/boost/changeset/53434

Log:
Removed for regeneration and restructure
Removed:
   trunk/libs/spirit/doc/html/index.html
   trunk/libs/spirit/doc/html/spirit/

Deleted: trunk/libs/spirit/doc/html/index.html
==============================================================================
--- trunk/libs/spirit/doc/html/index.html 2009-05-30 05:36:06 EDT (Sat, 30 May 2009)
+++ (empty file)
@@ -1,522 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Spirit 2.1</title>
-<link rel="stylesheet" href="../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
-<link rel="home" href="index.html" title="Spirit 2.1">
-<link rel="next" href="spirit/what_s_new.html" title="What's New">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr>
-<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
-<td align="center">Home</td>
-<td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
-<td align="center">More</td>
-</tr></table>
-<hr>
-<div class="spirit-nav"><a accesskey="n" href="spirit/what_s_new.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a></div>
-<div class="article" title="Spirit 2.1">
-<div class="titlepage">
-<div>
-<div><h2 class="title">
-<a name="spirit"></a>Spirit 2.1</h2></div>
-<div><div class="authorgroup">
-<div class="author"><h3 class="author">
-<span class="firstname">Joel</span> <span class="surname">de Guzman</span>
-</h3></div>
-<div class="author"><h3 class="author">
-<span class="firstname">Hartmut</span> <span class="surname">Kaiser</span>
-</h3></div>
-</div></div>
-<div><p class="copyright">Copyright © 2001-2009 Joel
- de Guzman, Hartmut Kaiser</p></div>
-<div><div class="legalnotice" title="Legal Notice">
-<a name="id636714"></a><p>
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p>
-</div></div>
-</div>
-<hr>
-</div>
-<div class="toc">
-<p><b>Table of Contents</b></p>
-<dl>
-<dt><span class="section">Preface</span></dt>
-<dt><span class="section">What's New</span></dt>
-<dt><span class="section">Introduction</span></dt>
-<dt><span class="section">Qi and Karma</span></dt>
-<dd><dl>
-<dt><span class="section">Tutorials</span></dt>
-<dd><dl>
-<dt><span class="section">Quick Start</span></dt>
-<dt><span class="section">Warming up</span></dt>
-<dt><span class="section"><a href="spirit/qi_and_karma.html#spirit.qi_and_karma.tutorials.semantic_actions">Semantic
- Actions</a></span></dt>
-<dt><span class="section"><a href="spirit/qi_and_karma.html#spirit.qi_and_karma.tutorials.complex___our_first_complex_parser">Complex
- - Our first complex parser</a></span></dt>
-<dt><span class="section"><a href="spirit/qi_and_karma.html#spirit.qi_and_karma.tutorials.sum___adding_numbers">Sum
- - adding numbers</a></span></dt>
-<dt><span class="section"><a href="spirit/qi_and_karma.html#spirit.qi_and_karma.tutorials.number_list___stuffing_numbers_into_a_std__vector">Number
- List - stuffing numbers into a std::vector</a></span></dt>
-<dt><span class="section"><a href="spirit/qi_and_karma.html#spirit.qi_and_karma.tutorials.number_list_redux___list_syntax">Number
- List Redux - list syntax</a></span></dt>
-<dt><span class="section"><a href="spirit/qi_and_karma.html#spirit.qi_and_karma.tutorials.number_list_attribute___one_more__with_style">Number
- List Attribute - one more, with style</a></span></dt>
-<dt><span class="section"><a href="spirit/qi_and_karma.html#spirit.qi_and_karma.tutorials.roman_numerals">Roman
- Numerals</a></span></dt>
-<dt><span class="section"><a href="spirit/qi_and_karma.html#spirit.qi_and_karma.tutorials.employee___parsing_into_structs">Employee
- - Parsing into structs</a></span></dt>
-<dt><span class="section"><a href="spirit/qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___asts_">Mini
- XML - ASTs!</a></span></dt>
-<dt><span class="section"><a href="spirit/qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___error_handling">Mini
- XML - Error Handling</a></span></dt>
-</dl></dd>
-<dt><span class="section">Abstracts</span></dt>
-<dd><dl>
-<dt><span class="section"><a href="spirit/qi_and_karma/abstracts.html#spirit.qi_and_karma.abstracts.parsing_expression_grammar">Parsing
- Expression Grammar</a></span></dt>
-<dt><span class="section">Parsing</span></dt>
-<dt><span class="section"><a href="spirit/qi_and_karma/abstracts/parsing_and_generating.html">Parsing
- and Generating</a></span></dt>
-<dt><span class="section">Primitives</span></dt>
-<dt><span class="section">Operators</span></dt>
-<dt><span class="section">Attributes</span></dt>
-<dt><span class="section"><a href="spirit/qi_and_karma/abstracts/semantic_actions.html">Semantic
- Actions</a></span></dt>
-<dt><span class="section">Directives</span></dt>
-<dt><span class="section">Rules</span></dt>
-<dt><span class="section">Grammars</span></dt>
-<dt><span class="section">Debugging</span></dt>
-<dt><span class="section"><a href="spirit/qi_and_karma/abstracts/mini_xml___error_handling.html">Mini
- XML - Error Handling</a></span></dt>
-<dt><span class="section"><a href="spirit/qi_and_karma/abstracts/parse_trees_and_asts.html">Parse
- Trees and ASTs</a></span></dt>
-</dl></dd>
-<dt><span class="section">Quick Reference</span></dt>
-<dt><span class="section">Reference</span></dt>
-<dd><dl>
-<dt><span class="section">Concepts</span></dt>
-<dt><span class="section">Char</span></dt>
-<dt><span class="section">String</span></dt>
-<dt><span class="section">Numeric</span></dt>
-<dt><span class="section">Binary</span></dt>
-<dt><span class="section">Directive</span></dt>
-<dt><span class="section">Action</span></dt>
-<dt><span class="section">Nonterminal</span></dt>
-<dt><span class="section">Operators</span></dt>
-<dt><span class="section">Stream</span></dt>
-<dt><span class="section">Auxiliary</span></dt>
-<dt><span class="section">Debug</span></dt>
-</dl></dd>
-</dl></dd>
-<dt><span class="section"> Spirit.Lex</span></dt>
-<dd><dl>
-<dt><span class="section"> Introduction to Spirit.Lex</span></dt>
-<dt><span class="section"><a href="spirit/lex/tutorials.html"> <span class="emphasis"><em>Spirit.Lex</em></span>
- Tutorials</a></span></dt>
-<dd><dl>
-<dt><span class="section"><a href="spirit/lex/tutorials.html#spirit.lex.tutorials.lexer_tutorials"> <span class="emphasis"><em>Spirit.Lex</em></span>
- Tutorials Overview</a></span></dt>
-<dt><span class="section"><a href="spirit/lex/tutorials/lexer_quickstart1.html"> Quickstart
- 1 - A word counter using <span class="emphasis"><em>Spirit.Lex</em></span></a></span></dt>
-<dt><span class="section"><a href="spirit/lex/tutorials/lexer_quickstart2.html"> Quickstart
- 2 - A better word counter using <span class="emphasis"><em>Spirit.Lex</em></span></a></span></dt>
-<dt><span class="section"><a href="spirit/lex/tutorials/lexer_quickstart3.html"> Quickstart
- 3 - Counting Words Using a Parser</a></span></dt>
-</dl></dd>
-<dt><span class="section"> Abstracts</span></dt>
-<dd><dl>
-<dt><span class="section">Lexer Primitives</span></dt>
-<dt><span class="section"><a href="spirit/lex/abstracts/lexer_tokenizing.html"> Tokenizing
- Input Data</a></span></dt>
-<dt><span class="section"><a href="spirit/lex/abstracts/lexer_semantic_actions.html"> Lexer
- Semantic Actions</a></span></dt>
-<dt><span class="section"><a href="spirit/lex/abstracts/lexer_static_model.html"> The <span class="emphasis"><em>Static</em></span>
- Lexer Model</a></span></dt>
-<dt><span class="section"><a href="spirit/lex/abstracts/lexer_parsing.html"> Parsing using
- a Lexer</a></span></dt>
-<dt><span class="section"> Lexer Attributes</span></dt>
-<dt><span class="section"> Lexer States</span></dt>
-</dl></dd>
-<dt><span class="section"> Quick Reference</span></dt>
-<dt><span class="section"> Reference</span></dt>
-<dd><dl>
-<dt><span class="section"> Concepts</span></dt>
-<dt><span class="section">Lexer Class</span></dt>
-<dt><span class="section">Token Class</span></dt>
-<dt><span class="section">TokenDef Class</span></dt>
-<dt><span class="section">TokenSet Class</span></dt>
-</dl></dd>
-</dl></dd>
-<dt><span class="section">FAQ</span></dt>
-<dt><span class="section">Notes</span></dt>
-<dd><dl>
-<dt><span class="section">Portability</span></dt>
-<dt><span class="section"><a href="spirit/notes/porting_from_spirit_1_8_x.html">Porting from
- Spirit 1.8.x</a></span></dt>
-<dt><span class="section">Style Guide</span></dt>
-<dt><span class="section">Techniques</span></dt>
-</dl></dd>
-<dt><span class="section">Rationale</span></dt>
-<dt><span class="section">Acknowledgments</span></dt>
-<dt><span class="section">References</span></dt>
-</dl>
-</div>
-<div class="section" title="Preface">
-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="spirit.preface"></a><a class="link" href="index.html#spirit.preface" title="Preface">Preface</a>
-</h2></div></div></div>
-<div class="blockquote"><blockquote class="blockquote">
-<p>
- </p>
-<p>
- <span class="emphasis"><em><span class="quote">&#8220;<span class="quote">Examples of designs that meet most of the criteria for
- "goodness" (easy to understand, flexible, efficient) are a recursive-
- descent parser, which is traditional procedural code. Another example is
- the STL, which is a generic library of containers and algorithms depending
- crucially on both traditional procedural code and on parametric polymorphism.</span>&#8221;</span></em></span>
- <span class="bold"><strong>--Bjarne Stroustrup</strong></span>
- </p>
-<p>
- </p>
-</blockquote></div>
-<a name="spirit.preface.history"></a><h4>
-<a name="id636765"></a>
- <a class="link" href="index.html#spirit.preface.history">History</a>
- </h4>
-<a name="spirit.preface._emphasis_80s__emphasis_"></a><h4>
-<a name="id636778"></a>
- <a class="link" href="index.html#spirit.preface._emphasis_80s__emphasis_"><span class="emphasis"><em>80s</em></span></a>
- </h4>
-<p>
- In the Mid 80s, Joel wrote his first calculator in Pascal. It has been an unforgettable
- coding experience. He was amazed how a mutually recursive set of functions
- can model a grammar specification. In time, the skills he acquired from that
- academic experience became very practical. Periodically Joel was tasked to
- do some parsing. For instance, whenever he needs to perform any form of I/O,
- even in binary, he tries to approach the task somewhat formally by writing
- a grammar using Pascal- like syntax diagrams and then write a corresponding
- recursive-descent parser. This worked very well.
- </p>
-<a name="spirit.preface._emphasis_90s__emphasis_"></a><h4>
-<a name="id636796"></a>
- <a class="link" href="index.html#spirit.preface._emphasis_90s__emphasis_"><span class="emphasis"><em>90s</em></span></a>
- </h4>
-<p>
- The arrival of the Internet and the World Wide Web magnified this thousand-fold.
- At one point Joel had to write an HTML parser for a Web browser project. He
- got a recursive-descent HTML parser working based on the W3C formal specifications
- easily. He was certainly glad that HTML had a formal grammar specification.
- Because of the influence of the Internet, Joel then had to do more parsing.
- RFC specifications were everywhere. SGML, HTML, XML, even email addresses and
- those seemingly trivial URLs were all formally specified using small EBNF-
- style grammar specifications. This made him wish for a tool similar to big-
- time parser generators such as YACC and ANTLR, where a parser is built automatically
- from a grammar specification. Yet, he wants it to be extremely small; small
- enough to fit in my pocket, yet scalable.
- </p>
-<p>
- It must be able to practically parse simple grammars such as email addresses
- to moderately complex grammars such as XML and perhaps some small to medium-sized
- scripting languages. Scalability is a prime goal. You should be able to use
- it for small tasks such as parsing command lines without incurring a heavy
- payload, as you do when you are using YACC or PCCTS. Even now that it has evolved
- and matured to become a multi-module library, true to its original intent,
- Spirit can still be used for extreme micro-parsing tasks. You only pay for
- features that you need. The power of Spirit comes from its modularity and extensibility.
- Instead of giving you a sledgehammer, it gives you the right ingredients to
- create a sledgehammer easily.
- </p>
-<p>
- The result was Spirit. Spirit was a personal project that was conceived when
- Joel was doing R&amp;D in Japan. Inspired by the GoF's composite and interpreter
- patterns, he realized that he can model a recursive-descent parser with hierarchical-object
- composition of primitives (terminals) and composites (productions). The original
- version was implemented with run-time polymorphic classes. A parser is generated
- at run time by feeding in production rule strings such as:
- </p>
-<pre class="programlisting"><span class="string">"prod ::= {'A' | 'B'} 'C';"</span>
-</pre>
-<p>
- A compile function compiled the parser, dynamically creating a hierarchy of
- objects and linking semantic actions on the fly. A very early text can be found
- here: pre-Spirit.
- </p>
-<a name="spirit.preface._emphasis_2001_to_2006__emphasis_"></a><h4>
-<a name="id636838"></a>
- <a class="link" href="index.html#spirit.preface._emphasis_2001_to_2006__emphasis_"><span class="emphasis"><em>2001
- to 2006</em></span></a>
- </h4>
-<p>
- Version 1.0 to 1.8 was a complete rewrite of the original Spirit parser using
- expression templates and static polymorphism, inspired by the works of Todd
- Veldhuizen (<a href="http://ubiety.uwaterloo.ca/~tveldhui/papers/Expression-Templates/exprtmpl.html" target="_top">Expression
- Templates</a>, C++ Report, June 1995). Initially, the static-Spirit version
- was meant only to replace the core of the original dynamic-Spirit. Dynamic-spirit
- needed a parser to implement itself anyway. The original employed a hand-coded
- recursive-descent parser to parse the input grammar specification strings.
- Incidentially it was the time, when Hartmut joined the Spirit development.
- </p>
-<p>
- After its initial "open-source" debut in May 2001, static-Spirit
- became a success. At around November 2001, the Spirit website had an activity
- percentile of 98%, making it the number one parser tool at Source Forge at
- the time. Not bad for such a niche project such as a parser library. The "static"
- portion of Spirit was forgotten and static-Spirit simply became Spirit. The
- library soon evolved to acquire more dynamic features.
- </p>
-<p>
- Spirit was formally accepted into Boost
- in October 2002. Boost is a peer-reviewed, open collaborative development effort
- that is a collection of free Open Source C++ libraries covering a wide range
- of domains. The Boost Libraries have become widely known as an industry standard
- for design and implementation quality, robustness, and reusability.
- </p>
-<a name="spirit.preface._emphasis_2007__emphasis_"></a><h4>
-<a name="id636873"></a>
- <a class="link" href="index.html#spirit.preface._emphasis_2007__emphasis_"><span class="emphasis"><em>2007</em></span></a>
- </h4>
-<p>
- Over the years, especially after Spirit was accepted into Boost, Spirit has
- served its purpose quite admirably. The focus of what we'll now call <span class="bold"><strong><span class="emphasis"><em>Classic-Spirit</em></span></strong></span> (versions prior
- to 2.0) was on transduction parsing where the input string is merely translated
- to an output string. A lot of parsers are of the transduction type. When the
- time came to add attributes to the parser library, it was done rather in an
- ad-hoc manner, with the goal being 100% backward compatible with classic Spirit.
- Some parsers have attributes, some don't.
- </p>
-<p>
- Spirit V2 is another major rewrite. Spirit V2 grammars are fully attributed
- (see <a href="http://en.wikipedia.org/wiki/Attribute_grammar" target="_top">Attribute
- Grammar</a>). All parser components have attributes. To do this efficiently
- and ellegantly, we had to use a couple of infrastructure libraries. Some of
- which haven't been written yet at the time, some were quite new when Spirit
- debuted, and some needed work. MPL
- is an important infrastructure library, yet is not sufficient to implement
- Spirit V2. Another library had to be written: Fusion.
- Fusion sits between MPL and STL --between compile time and runtime -- mapping
- types to values. Fusion is a direct descendant of both MPL and Boost.Tuples
- (Fusion is now a full fledged Boost
- library). Phoenix also
- had to be beefed up to support Spirit V2. The result is Phoenix2.
- Last but not least, Spirit V2 uses an <a href="http://ubiety.uwaterloo.ca/~tveldhui/papers/Expression-Templates/exprtmpl.html" target="_top">Expression
- Templates</a> library called Boost.Proto.
- </p>
-<a name="spirit.preface.new_ideas__spirit_v2"></a><h4>
-<a name="id636945"></a>
- <a class="link" href="index.html#spirit.preface.new_ideas__spirit_v2">New Ideas: Spirit V2</a>
- </h4>
-<p>
- Just before the development of Spirit V2 began, Hartmut came across the StringTemplate library which is
- a part of the ANTLR parser framework. It is a Java template engine (with ports
- for C# and Python) for generating source code, web pages, emails, or any other
- formatted text output. With it, he got the the idea of using a formal notation
- (a grammar) to describe the expected structure of an input character sequence.
- The same grammar may be used to formalize the structure of a corresponding
- output character sequence. This is possible because parsing, most of the time,
- is implemented by comparing the input with the patterns defined by the grammar.
- If we use the same patterns to format a matching output, the generated sequence
- will follow the rules of the grammar as well.
- </p>
-<p>
- This insight lead to the implementation of a grammar driven output generation
- library compatibile with the Spirit parser library. As it turned out, parsing
- and generation are tightly connected and have very similar concepts. The duality
- of these two sides of the same medal is ubiquitous, which allowed us to build
- the parser library <span class="emphasis"><em>Spirit.Qi</em></span> and the generator library
- <span class="emphasis"><em>Spirit.Karma</em></span> using the same component infastructure.
- </p>
-<p>
- The idea of creating a lexer library well integrated with the Spirit parsers
- is not new. This has been discussed almost for the whole time of the existence
- of Classic-Spirit (pre V2) now. Several attempts to integrate existing lexer
- libraries and frameworks with Spirit have been made and served as a proof of
- concept and usability (for example see Wave:
- The Boost C/C++ Preprocessor Library, and SLex:
- a fully dynamic C++ lexer implemented with Spirit). Based on these experiences
- we added <span class="emphasis"><em>Spirit.Lex</em></span>: a fully integrated lexer library
- to the mix, allowing to take advantage of the power of regular expressions
- for token matching, removing pressure from the parser components, simplifying
- parser grammars. Again, Spirit's modular structure allowed us to reuse the
- same underlying component library as for the parser and generator libraries.
- </p>
-<a name="spirit.preface.how_to_use_this_manual"></a><h4>
-<a name="id636995"></a>
- <a class="link" href="index.html#spirit.preface.how_to_use_this_manual">How to use this manual</a>
- </h4>
-<p>
- Each major section (there are two: <a class="link" href="spirit/qi_and_karma.html" title="Qi and Karma">Qi and
- Karma</a>, and <a class="link" href="spirit/lex.html" title="Spirit.Lex">Lex</a>) is roughly divided
- into 3 parts:
- </p>
-<div class="orderedlist"><ol class="orderedlist" type="1">
-<li class="listitem">
- Tutorials: A step by step guide with heavily annotated code. These are meant
- to get the user acquainted with the library as quickly as possible. The objective
- is to build the confidence of the user in using the library using abundant
- examples and detailed instructions. Examples speak volumes.
- </li>
-<li class="listitem">
- Abstracts: A high level summary of key topics. The objective is to give the
- user a high level view of the library, the key concepts, background and theories.
- </li>
-<li class="listitem">
- Reference: Detailed formal technical reference. We start with a quick reference
- -- an easy to use table that maps into the reference proper. The reference
- proper starts with C++ Concepts
- followed by models of the concepts.
- </li>
-</ol></div>
-<p>
- Some icons are used to mark certain topics indicative of their relevance. These
- icons precede some text to indicate:
- </p>
-<div class="table">
-<a name="id637043"></a><p class="title"><b>Table 1. Icons</b></p>
-<div class="table-contents"><table class="table" summary="Icons">
-<colgroup>
-<col>
-<col>
-<col>
-</colgroup>
-<thead><tr>
-<th>
- <p>
- Icon
- </p>
- </th>
-<th>
- <p>
- Name
- </p>
- </th>
-<th>
- <p>
- Meaning
- </p>
- </th>
-</tr></thead>
-<tbody>
-<tr>
-<td>
- <p>
- <span class="inlinemediaobject"><img src="images/note.png" alt="note"></span>
- </p>
- </td>
-<td>
- <p>
- Note
- </p>
- </td>
-<td>
- <p>
- Generally useful information (an aside that doesn't fit in the flow of
- the text)
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <span class="inlinemediaobject"><img src="images/tip.png" alt="tip"></span>
- </p>
- </td>
-<td>
- <p>
- Tip
- </p>
- </td>
-<td>
- <p>
- Suggestion on how to do something (especially something that not be obvious)
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <span class="inlinemediaobject"><img src="images/important.png" alt="important"></span>
- </p>
- </td>
-<td>
- <p>
- Important
- </p>
- </td>
-<td>
- <p>
- Important note on something to take particular notice of
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <span class="inlinemediaobject"><img src="images/caution.png" alt="caution"></span>
- </p>
- </td>
-<td>
- <p>
- Caution
- </p>
- </td>
-<td>
- <p>
- Take special care with this - it may not be what you expect and may cause
- bad results
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <span class="inlinemediaobject"><img src="images/alert.png" alt="alert"></span>
- </p>
- </td>
-<td>
- <p>
- Danger
- </p>
- </td>
-<td>
- <p>
- This is likely to cause serious trouble if ignored
- </p>
- </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<br class="table-break"><p>
- This documentation is automatically generated by Boost QuickBook documentation
- tool. QuickBook can be found in the <a href="http://www.boost.org/tools/index.html" target="_top">Boost
- Tools</a>.
- </p>
-<a name="spirit.preface.support"></a><h4>
-<a name="id637284"></a>
- <a class="link" href="index.html#spirit.preface.support">Support</a>
- </h4>
-<p>
- Please direct all questions to Spirit's mailing list. You can subscribe to
- the <a href="http://www.nabble.com/The-Spirit-Parser-Library-f3430.html" target="_top">Spirit
- General List</a>. The mailing list has a searchable archive. A search link
- to this archive is provided in Spirit's
- home page. You may also read and post messages to the mailing list through
- <a href="news://news.gmane.org/gmane.comp.spirit.general" target="_top">Spirit General
- NNTP news portal</a> (thanks to Gmane).
- The news group mirrors the mailing list. Here is a link to the archives: http://news.gmane.org/gmane.comp.parsers.spirit.general.
- </p>
-</div>
-</div>
-<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: May 28, 2009 at 22:15:50 GMT</small></p></td>
-<td align="right"><div class="copyright-footer"></div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav"><a accesskey="n" href="spirit/what_s_new.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a></div>
-</body>
-</html>


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk