Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r54353 - in trunk/libs/spirit/doc: . html html/spirit html/spirit/abstracts html/spirit/karma html/spirit/karma/quick_reference html/spirit/karma/tutorials html/spirit/lex html/spirit/lex/abstracts html/spirit/lex/abstracts/lexer_primitives html/spirit/lex/reference html/spirit/lex/reference/concepts html/spirit/lex/tutorials html/spirit/qi/quick_reference html/spirit/qi/tutorials karma
From: hartmut.kaiser_at_[hidden]
Date: 2009-06-25 15:15:54


Author: hkaiser
Date: 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
New Revision: 54353
URL: http://svn.boost.org/trac/boost/changeset/54353

Log:
Spirit: Started to work on tutorial section for Karma
Added:
   trunk/libs/spirit/doc/html/spirit/karma/tutorials/
   trunk/libs/spirit/doc/html/spirit/karma/tutorials.html (contents, props changed)
   trunk/libs/spirit/doc/html/spirit/karma/tutorials/quick_start.html (contents, props changed)
   trunk/libs/spirit/doc/html/spirit/karma/tutorials/warming_up.html (contents, props changed)
   trunk/libs/spirit/doc/karma/tutorial_intro.qbk (contents, props changed)
   trunk/libs/spirit/doc/karma/warming_up.qbk (contents, props changed)
Text files modified:
   trunk/libs/spirit/doc/html/index.html | 9 +++++++--
   trunk/libs/spirit/doc/html/spirit/abstracts/parsing_expression_grammar.html | 8 ++++----
   trunk/libs/spirit/doc/html/spirit/abstracts/syntax_diagram.html | 10 +++++-----
   trunk/libs/spirit/doc/html/spirit/acknowledgments.html | 2 +-
   trunk/libs/spirit/doc/html/spirit/faq.html | 4 ++--
   trunk/libs/spirit/doc/html/spirit/introduction.html | 8 ++++----
   trunk/libs/spirit/doc/html/spirit/karma.html | 11 ++++++++---
   trunk/libs/spirit/doc/html/spirit/karma/quick_reference.html | 6 +++---
   trunk/libs/spirit/doc/html/spirit/karma/quick_reference/compound_attribute_rules.html | 2 +-
   trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives/lexer_token_values.html | 6 +++---
   trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_semantic_actions.html | 10 +++++-----
   trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_states.html | 6 +++---
   trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_static_model.html | 4 ++--
   trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_tokenizing.html | 4 ++--
   trunk/libs/spirit/doc/html/spirit/lex/lexer_introduction.html | 6 +++---
   trunk/libs/spirit/doc/html/spirit/lex/reference/concepts/lexer.html | 6 +++---
   trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_class.html | 8 ++++----
   trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart1.html | 10 +++++-----
   trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart2.html | 32 ++++++++++++++++----------------
   trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart3.html | 24 ++++++++++++------------
   trunk/libs/spirit/doc/html/spirit/preface.html | 18 +++++++++---------
   trunk/libs/spirit/doc/html/spirit/qi/quick_reference/compound_attribute_rules.html | 2 +-
   trunk/libs/spirit/doc/html/spirit/qi/tutorials/employee___parsing_into_structs.html | 14 +++++++-------
   trunk/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___asts_.html | 22 +++++++++++-----------
   trunk/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___error_handling.html | 6 +++---
   trunk/libs/spirit/doc/html/spirit/qi/tutorials/quick_start.html | 2 +-
   trunk/libs/spirit/doc/html/spirit/qi/tutorials/roman_numerals.html | 8 ++++----
   trunk/libs/spirit/doc/html/spirit/qi/tutorials/semantic_actions.html | 2 +-
   trunk/libs/spirit/doc/html/spirit/qi/tutorials/warming_up.html | 10 +++++-----
   trunk/libs/spirit/doc/html/spirit/what_s_new.html | 8 ++++----
   trunk/libs/spirit/doc/karma.qbk | 6 ++++--
   31 files changed, 143 insertions(+), 131 deletions(-)

Modified: trunk/libs/spirit/doc/html/index.html
==============================================================================
--- trunk/libs/spirit/doc/html/index.html (original)
+++ trunk/libs/spirit/doc/html/index.html 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
@@ -34,7 +34,7 @@
 <div><p class="copyright">Copyright © 2001-2009 Joel
       de Guzman, Hartmut Kaiser</p></div>
 <div><div class="legalnotice" title="Legal Notice">
-<a name="id1028400"></a><p>
+<a name="id980003"></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>
@@ -96,6 +96,11 @@
 </dl></dd>
 <dt><span class="section"> 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>
+</dl></dd>
 <dt><span class="section">Quick Reference</span></dt>
 <dd><dl>
 <dt><span class="section"><a href="spirit/karma/quick_reference/common_notation.html">Common
@@ -159,7 +164,7 @@
 </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: June 23, 2009 at 17:25:57 GMT</small></p></td>
+<td align="left"><p><small>Last revised: June 25, 2009 at 19:06:07 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>

Modified: trunk/libs/spirit/doc/html/spirit/abstracts/parsing_expression_grammar.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/abstracts/parsing_expression_grammar.html (original)
+++ trunk/libs/spirit/doc/html/spirit/abstracts/parsing_expression_grammar.html 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
@@ -40,7 +40,7 @@
         [Abstract Syntax Tree) for each PEG grammar.
       </p>
 <a name="spirit.abstracts.parsing_expression_grammar.sequences"></a><h5>
-<a name="id1042778"></a>
+<a name="id989667"></a>
         <a class="link" href="parsing_expression_grammar.html#spirit.abstracts.parsing_expression_grammar.sequences">Sequences</a>
       </h5>
 <p>
@@ -81,7 +81,7 @@
         </p></td></tr>
 </table></div>
 <a name="spirit.abstracts.parsing_expression_grammar.alternatives"></a><h5>
-<a name="id1042896"></a>
+<a name="id989784"></a>
         <a class="link" href="parsing_expression_grammar.html#spirit.abstracts.parsing_expression_grammar.alternatives">Alternatives</a>
       </h5>
 <p>
@@ -124,7 +124,7 @@
         about this $$$).
       </p>
 <a name="spirit.abstracts.parsing_expression_grammar.loops"></a><h5>
-<a name="id1043035"></a>
+<a name="id989924"></a>
         <a class="link" href="parsing_expression_grammar.html#spirit.abstracts.parsing_expression_grammar.loops">Loops</a>
       </h5>
 <p>
@@ -187,7 +187,7 @@
         We will see more of these other mechanisms shortly.
       </p>
 <a name="spirit.abstracts.parsing_expression_grammar.difference"></a><h5>
-<a name="id1043176"></a>
+<a name="id990064"></a>
         <a class="link" href="parsing_expression_grammar.html#spirit.abstracts.parsing_expression_grammar.difference">Difference</a>
       </h5>
 <p>

Modified: trunk/libs/spirit/doc/html/spirit/abstracts/syntax_diagram.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/abstracts/syntax_diagram.html (original)
+++ trunk/libs/spirit/doc/html/spirit/abstracts/syntax_diagram.html 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
@@ -31,14 +31,14 @@
         a variant of Extended Backus-Naur Form (EBNF) with a different interpretation.
         It is easier to understand PEG using Syntax Diagrams. Syntax diagrams represent
         a grammar graphically. It was used extensibly by Niklaus Wirth
- <sup>[<a name="id1042367" href="#ftn.id1042367" class="footnote">1</a>]</sup>
+ <sup>[<a name="id989255" href="#ftn.id989255" class="footnote">1</a>]</sup>
         in the "Pascal User Manual". Syntax Diagrams are easily understandable
         with programmers due to its similarity to flow charts. The isomorphism of
         the diagrams and functions make it ideal for representing [Recursive Descent
         parsers which are essentially mutually recursive functions.
       </p>
 <a name="spirit.abstracts.syntax_diagram.elements"></a><h5>
-<a name="id1042379"></a>
+<a name="id989267"></a>
         <a class="link" href="syntax_diagram.html#spirit.abstracts.syntax_diagram.elements">Elements</a>
       </h5>
 <p>
@@ -82,7 +82,7 @@
         </p>
 </blockquote></div>
 <a name="spirit.abstracts.syntax_diagram.constructs"></a><h5>
-<a name="id1042478"></a>
+<a name="id989367"></a>
         <a class="link" href="syntax_diagram.html#spirit.abstracts.syntax_diagram.constructs">Constructs</a>
       </h5>
 <p>
@@ -153,7 +153,7 @@
         This behavior is quite obvious with syntax diagrams as they resemble flow-charts.
       </p>
 <a name="spirit.abstracts.syntax_diagram.predicates"></a><h5>
-<a name="id1042639"></a>
+<a name="id989528"></a>
         <a class="link" href="syntax_diagram.html#spirit.abstracts.syntax_diagram.predicates">Predicates</a>
       </h5>
 <p>
@@ -208,7 +208,7 @@
       </p>
 <div class="footnotes">
 <br><hr width="100" align="left">
-<div class="footnote"><p><sup>[<a name="ftn.id1042367" href="#id1042367" class="para">1</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id989255" href="#id989255" class="para">1</a>] </sup>
             Niklaus Wirth: The Programming Language Pascal. (July 1973)
           </p></div>
 </div>

Modified: trunk/libs/spirit/doc/html/spirit/acknowledgments.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/acknowledgments.html (original)
+++ trunk/libs/spirit/doc/html/spirit/acknowledgments.html 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
@@ -47,7 +47,7 @@
       <span class="bold"><strong>FIXME</strong></span>: Add more people
     </p>
 <a name="spirit.acknowledgments.acknowledgements_from_the_spirit_v1__emphasis_classic__emphasis__documentation"></a><h4>
-<a name="id1117290"></a>
+<a name="id1065656"></a>
       <a class="link" href="acknowledgments.html#spirit.acknowledgments.acknowledgements_from_the_spirit_v1__emphasis_classic__emphasis__documentation">Acknowledgements
       from the Spirit V1 <span class="emphasis"><em>classic</em></span> Documentation</a>
     </h4>

Modified: trunk/libs/spirit/doc/html/spirit/faq.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/faq.html (original)
+++ trunk/libs/spirit/doc/html/spirit/faq.html 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
@@ -27,7 +27,7 @@
 <a name="spirit.faq"></a><a class="link" href="faq.html" title="Spirit FAQ"> Spirit FAQ</a>
 </h2></div></div></div>
 <a name="spirit.faq.i_m_getting_multiple_symbol_definition_errors_while_using_visual_c____anything_i_could_do_about_that_"></a><h4>
-<a name="id1116034"></a>
+<a name="id1064400"></a>
       <a class="link" href="faq.html#spirit.faq.i_m_getting_multiple_symbol_definition_errors_while_using_visual_c____anything_i_could_do_about_that_">I'm
       getting multiple symbol definition errors while using Visual C++. Anything
       I could do about that?</a>
@@ -64,7 +64,7 @@
       static_assert.
     </p>
 <a name="spirit.faq.i_m_very_confused_about_the_header_hell_in_my_boost_spirit_directory__what_s_all_this_about_"></a><h4>
-<a name="id1116204"></a>
+<a name="id1064570"></a>
       <a class="link" href="faq.html#spirit.faq.i_m_very_confused_about_the_header_hell_in_my_boost_spirit_directory__what_s_all_this_about_">I'm
       very confused about the header hell in my boost/spirit directory. What's all
       this about?</a>

Modified: trunk/libs/spirit/doc/html/spirit/introduction.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/introduction.html (original)
+++ trunk/libs/spirit/doc/html/spirit/introduction.html 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
@@ -130,7 +130,7 @@
 <p><br class="figure-break">
     </p>
 <a name="spirit.introduction.a_quick_overview_of_parsing_with__emphasis_spirit_qi__emphasis_"></a><h4>
-<a name="id1038515"></a>
+<a name="id985677"></a>
       <a class="link" href="introduction.html#spirit.introduction.a_quick_overview_of_parsing_with__emphasis_spirit_qi__emphasis_">A
       Quick Overview of Parsing with <span class="emphasis"><em>Spirit.Qi</em></span></a>
     </h4>
@@ -220,7 +220,7 @@
       <code class="computeroutput"><span class="special">;</span></code>.
     </p>
 <a name="spirit.introduction.a_quick_overview_of_output_generation_with__emphasis_spirit_karma__emphasis_"></a><h4>
-<a name="id1040834"></a>
+<a name="id986630"></a>
       <a class="link" href="introduction.html#spirit.introduction.a_quick_overview_of_output_generation_with__emphasis_spirit_karma__emphasis_">A
       Quick Overview of Output Generation with <span class="emphasis"><em>Spirit.Karma</em></span></a>
     </h4>
@@ -253,7 +253,7 @@
       of the same <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span></code>:
     </p>
 <div class="table">
-<a name="id1041175"></a><p class="title"><b>Table 2. Different output formats for `std::vector&lt;int&gt;`</b></p>
+<a name="id986971"></a><p class="title"><b>Table 2. Different output formats for `std::vector&lt;int&gt;`</b></p>
 <div class="table-contents"><table class="table" summary="Different output formats for `std::vector&lt;int&gt;`">
 <colgroup>
 <col>
@@ -368,7 +368,7 @@
       next table gives some related examples.
     </p>
 <div class="table">
-<a name="id1041548"></a><p class="title"><b>Table 3. Different data types usable with the output format
+<a name="id988437"></a><p class="title"><b>Table 3. Different data types usable with the output format
     `*(int_ &lt;&lt; eol)`</b></p>
 <div class="table-contents"><table class="table" summary="Different data types usable with the output format
     `*(int_ &lt;&lt; eol)`">

Modified: trunk/libs/spirit/doc/html/spirit/karma.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma.html 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
@@ -7,7 +7,7 @@
 <link rel="home" href="../index.html" title="Spirit 2.1">
 <link rel="up" href="../index.html" title="Spirit 2.1">
 <link rel="prev" href="qi/quick_reference/phoenix.html" title="Phoenix">
-<link rel="next" href="karma/quick_reference.html" title="Quick Reference">
+<link rel="next" href="karma/tutorials.html" title="Tutorials">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -20,13 +20,18 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="qi/quick_reference/phoenix.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="karma/quick_reference.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="qi/quick_reference/phoenix.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="karma/tutorials.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" title="Karma">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
 <a name="spirit.karma"></a><a class="link" href="karma.html" title="Karma"> Karma</a>
 </h2></div></div></div>
 <div class="toc"><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>
+</dl></dd>
 <dt><span class="section">Quick Reference</span></dt>
 <dd><dl>
 <dt><span class="section"><a href="karma/quick_reference/common_notation.html">Common
@@ -54,7 +59,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="qi/quick_reference/phoenix.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="karma/quick_reference.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="qi/quick_reference/phoenix.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="karma/tutorials.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: trunk/libs/spirit/doc/html/spirit/karma/quick_reference.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/quick_reference.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/quick_reference.html 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
 <link rel="home" href="../../index.html" title="Spirit 2.1">
 <link rel="up" href="../karma.html" title="Karma">
-<link rel="prev" href="../karma.html" title="Karma">
+<link rel="prev" href="tutorials/warming_up.html" title="Warming up">
 <link rel="next" href="quick_reference/common_notation.html" title="Common Notation">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,7 +20,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../karma.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../karma.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="quick_reference/common_notation.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="tutorials/warming_up.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../karma.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="quick_reference/common_notation.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" title="Quick Reference">
 <div class="titlepage"><div><div><h3 class="title">
@@ -58,7 +58,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../karma.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../karma.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="quick_reference/common_notation.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="tutorials/warming_up.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../karma.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="quick_reference/common_notation.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: trunk/libs/spirit/doc/html/spirit/karma/quick_reference/compound_attribute_rules.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/quick_reference/compound_attribute_rules.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/quick_reference/compound_attribute_rules.html 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
@@ -41,7 +41,7 @@
           <span class="identifier">b</span></code> will be <code class="computeroutput"><span class="identifier">tuple</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">&gt;</span></code>.
         </p>
 <div class="table">
-<a name="id1084097"></a><p class="title"><b>Table 5. Spirit.Karma compound generator attribute types</b></p>
+<a name="id1032320"></a><p class="title"><b>Table 5. Spirit.Karma compound generator attribute types</b></p>
 <div class="table-contents"><table class="table" summary="Spirit.Karma compound generator attribute types">
 <colgroup>
 <col>

Added: trunk/libs/spirit/doc/html/spirit/karma/tutorials.html
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/doc/html/spirit/karma/tutorials.html 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
@@ -0,0 +1,48 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Tutorials</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="up" href="../karma.html" title="Karma">
+<link rel="prev" href="../karma.html" title="Karma">
+<link rel="next" href="tutorials/quick_start.html" title="Quick Start">
+</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="p" href="../karma.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../karma.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="tutorials/quick_start.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" title="Tutorials">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="spirit.karma.tutorials"></a><a class="link" href="tutorials.html" title="Tutorials">Tutorials</a>
+</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Quick Start</span></dt>
+<dt><span class="section">Warming up</span></dt>
+</dl></div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2001-2009 Joel
+ de Guzman, Hartmut Kaiser<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></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../karma.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../karma.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="tutorials/quick_start.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/libs/spirit/doc/html/spirit/karma/tutorials/quick_start.html
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/doc/html/spirit/karma/tutorials/quick_start.html 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
@@ -0,0 +1,101 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Quick Start</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="up" href="../tutorials.html" title="Tutorials">
+<link rel="prev" href="../tutorials.html" title="Tutorials">
+<link rel="next" href="warming_up.html" title="Warming up">
+</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="p" href="../tutorials.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="warming_up.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" title="Quick Start">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.karma.tutorials.quick_start"></a><a class="link" href="quick_start.html" title="Quick Start">Quick Start</a>
+</h4></div></div></div>
+<a name="spirit.karma.tutorials.quick_start.spirit_karma___what_s_that_"></a><h6>
+<a name="id1024629"></a>
+ <a class="link" href="quick_start.html#spirit.karma.tutorials.quick_start.spirit_karma___what_s_that_">Spirit.Karma
+ - what's that?</a>
+ </h6>
+<p>
+ Throughout the description of <span class="emphasis"><em>Spirit.Karma</em></span> we will
+ try to align ourselves very much with the documentation for <span class="emphasis"><em>Spirit.Qi</em></span>.
+ The reasons are manyfold:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+<span class="emphasis"><em>Spirit.Karma</em></span> is the counterpart to <span class="emphasis"><em>Spirit.Qi</em></span>.
+ Some people say it's the Yin to <span class="emphasis"><em>Spirit.Qi</em></span>'s Yang.
+ <span class="emphasis"><em>Spirit.Karma</em></span> is to generating byte sequences from
+ internal data structures as <span class="emphasis"><em>Spirit.Qi</em></span> parsing byte
+ sequences into those (very same) internal data structures.
+ </li>
+<li class="listitem">
+ Both libraries have an almost identical structure, very similar semantics,
+ and are both built using identical tools. Both libraries implement a
+ language casting the specifics of their domain (parsing and generating)
+ into a simple interface.
+ </li>
+</ul></div>
+<p>
+ Why should you use a generator library for such a simple thing as output
+ generation? Programmers have been using printf, std::stream formatting,
+ or boost::format for quite some time. The answer is - yes, for simple output
+ formatting tasks those familiar tools might be a quick solution. But experience
+ shows: as soon as the formatting requirements are becomming more complex
+ output generation is getting more and more challanging in terms of readability,
+ maintainabilty, and flexibility of the code.
+ </p>
+<p>
+ You might argue that more complex tasks require more complex tools. But
+ this turns out to be not the case! The whole SPirit library is designed
+ to be simple to use, while being scalable from trivial to very complicated
+ applications.
+ </p>
+<p>
+ In terms of development simplicity and ease in deployment, the same is
+ true for <span class="emphasis"><em>Spirit.Karma</em></span> as has been described elsewhere
+ in this docs for <span class="emphasis"><em>Spirit.Qi</em></span>: the entire framework consists
+ of only header files, with no libraries to link against or build. Just
+ put the spirit distribution in your include path, compile and run. Code
+ size? -very tight -essentially comparable to hand written code.
+ </p>
+<p>
+ The <span class="emphasis"><em>Spirit.Karma</em></span> tutorials are build in a walk through
+ style, starting with elementary things growing step by step in complexity.
+ And again: keep in mind output generation is the exact opposite to parsing.
+ Everything you already learnt about parsing using <span class="emphasis"><em>Spirit.Qi</em></span>
+ is applicable to generating formatted output using <span class="emphasis"><em>Spirit.Karma</em></span>.
+ All you have to do is to look at <span class="emphasis"><em>Spirit.Karma</em></span> as being
+ a mirrored imaged of <span class="emphasis"><em>Spirit.Qi</em></span>.
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2001-2009 Joel
+ de Guzman, Hartmut Kaiser<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></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../tutorials.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="warming_up.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: trunk/libs/spirit/doc/html/spirit/karma/tutorials/warming_up.html
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/doc/html/spirit/karma/tutorials/warming_up.html 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
@@ -0,0 +1,274 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Warming up</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="up" href="../tutorials.html" title="Tutorials">
+<link rel="prev" href="quick_start.html" title="Quick Start">
+<link rel="next" href="../quick_reference.html" title="Quick Reference">
+</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="p" href="quick_start.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../quick_reference.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" title="Warming up">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.karma.tutorials.warming_up"></a><a class="link" href="warming_up.html" title="Warming up">Warming up</a>
+</h4></div></div></div>
+<p>
+ Learning how to use <span class="emphasis"><em>Spirit.Karma</em></span> is really simple.
+ We will start from trivial examples, ramping up as we go.
+ </p>
+<a name="spirit.karma.tutorials.warming_up.trivial_example__1_generating_a_number"></a><h6>
+<a name="id1024744"></a>
+ <a class="link" href="warming_up.html#spirit.karma.tutorials.warming_up.trivial_example__1_generating_a_number">Trivial
+ Example #1 Generating a number</a>
+ </h6>
+<p>
+ Let's create a generator that will output a floating-point number:
+ </p>
+<pre class="programlisting"><span class="identifier">double_</span>
+</pre>
+<p>
+ Easy huh? The above code actually instantiates a Spirit floating point
+ generator (a built-in generator ). Spirit has many pre-defined generators
+ and consistent naming conventions will help you finding your way through
+ the maze. Especially important to note is that things related to identical
+ entities (as in this case, floating point numbers) are named identically
+ in <span class="emphasis"><em>Spirit.Karma</em></span> and in <span class="emphasis"><em>Spirit.Qi</em></span>.
+ Actually, both libraries are using the very same variable instance to refer
+ to a floating point generator or parser: <code class="computeroutput"><span class="identifier">double_</span></code>.
+ </p>
+<a name="spirit.karma.tutorials.warming_up.trivial_example__2_generating_two_numbers"></a><h6>
+<a name="id1024787"></a>
+ <a class="link" href="warming_up.html#spirit.karma.tutorials.warming_up.trivial_example__2_generating_two_numbers">Trivial
+ Example #2 Generating two numbers</a>
+ </h6>
+<p>
+ Now, let's create a generator that will output a line consisting of two
+ floating-point numbers.
+ </p>
+<pre class="programlisting"><span class="identifier">double_</span> <span class="special">&lt;&lt;</span> <span class="identifier">double_</span>
+</pre>
+<p>
+ Here you see the familiar floating-point numeric generator <code class="computeroutput"><span class="identifier">double_</span></code> used twice, once for each number.
+ If you are used to see the '&gt;&gt;' operator for concatenating two parsers
+ in <span class="emphasis"><em>Spirit.Qi</em></span> you might wonder, what's that <code class="computeroutput"><span class="special">&lt;&lt;</span></code> operator doing in there? We decided
+ to distinguish generating and parsing of sequences the same way as the
+ std::stream libraries do: we use operator '&gt;&gt;' for input (parsing),
+ and operator <code class="computeroutput"><span class="special">&lt;&lt;</span></code> for
+ output (generating). Other than that there is no significant difference.
+ The above program creates a generator from two simpler generators, glueing
+ them together with the sequence operator. The result is a generator that
+ is a composition of smaller generators. Whitespace between numbers can
+ implicitly be inserted depending on how the generator is invoked (see below).
+ </p>
+<div class="note" title="Note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+ When we combine generators, we end up with a "bigger" generator,
+ but it's still a generator. Generators can get bigger and bigger, nesting
+ more and more, but whenever you glue two generators together, you end
+ up with one bigger generator. This is an important concept.
+ </p></td></tr>
+</table></div>
+<a name="spirit.karma.tutorials.warming_up.trivial_example__3_generating_one_or_more_numbers"></a><h6>
+<a name="id1024858"></a>
+ <a class="link" href="warming_up.html#spirit.karma.tutorials.warming_up.trivial_example__3_generating_one_or_more_numbers">Trivial
+ Example #3 Generating one or more numbers</a>
+ </h6>
+<p>
+ Now, creating output for two numbers is not too interesting. Let's create
+ a generator that will output zero or more floating-point numbers in a row.
+ </p>
+<pre class="programlisting"><span class="special">*</span><span class="identifier">double_</span>
+</pre>
+<p>
+ This is like a regular-expression Kleene Star. We moved the <code class="computeroutput"><span class="special">*</span></code> to the front for the same reasons we did
+ in <span class="emphasis"><em>Spirit.Qi</em></span>: we must work with the syntax rules of
+ C++. But if you know regular expressions (and for sure you remember those
+ syntax rules) it will start to look very familiar in a matter of a very
+ short time.
+ </p>
+<p>
+ Any expression that evaluates to a generator may be used with the Kleene
+ Star. Keep in mind, though, that due to C++ operator precedence rules you
+ may need to put the expression in parentheses for complex expressions.
+ As above, whitespace can be inserted implicitely in between the generated
+ numbers, if needed.
+ </p>
+<a name="spirit.karma.tutorials.warming_up.trivial_example__4_generating_a_comma_delimited_list_of_numbers"></a><h6>
+<a name="id1024906"></a>
+ <a class="link" href="warming_up.html#spirit.karma.tutorials.warming_up.trivial_example__4_generating_a_comma_delimited_list_of_numbers">Trivial
+ Example #4 Generating a comma-delimited list of numbers</a>
+ </h6>
+<p>
+ We follow the lead of <span class="emphasis"><em>Spirit.Qi</em></span>'s warming up section
+ and will create a generator that produces a comma-delimited list of numbers.
+ </p>
+<pre class="programlisting"><span class="identifier">double_</span> <span class="special">&lt;&lt;</span> <span class="special">*(</span><span class="identifier">char_</span><span class="special">(</span><span class="char">','</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">double_</span><span class="special">)</span>
+</pre>
+<p>
+ Notice <code class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="char">','</span><span class="special">)</span></code>. It is
+ a literal character generator that simply generates the comma <code class="computeroutput"><span class="char">','</span></code>. In this case, the Kleene Star is modifying
+ a more complex generator, namely, the one generated by the expression:
+ </p>
+<pre class="programlisting"><span class="special">(</span><span class="identifier">char_</span><span class="special">(</span><span class="char">','</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="identifier">double_</span><span class="special">)</span>
+</pre>
+<p>
+ Note that this is a case where the parentheses are necessary. The Kleene
+ star encloses the complete expression above, repeating the whole pattern
+ in the generated output zero or more times.
+ </p>
+<a name="spirit.karma.tutorials.warming_up.let_s_generate_"></a><h6>
+<a name="id1025040"></a>
+ <a class="link" href="warming_up.html#spirit.karma.tutorials.warming_up.let_s_generate_">Let's
+ Generate!</a>
+ </h6>
+<p>
+ We're done with defining the generator. All what's left is to invoke the
+ generator to do its work. For now, we will use the <code class="computeroutput"><span class="identifier">generate_delimited</span></code>
+ function. One overload of this function accepts four arguments:
+ </p>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem">
+ An output iterator accepting the generated characters
+ </li>
+<li class="listitem">
+ The generator expression
+ </li>
+<li class="listitem">
+ Another generator called the delimiting generator
+ </li>
+<li class="listitem">
+ The data to format and output
+ </li>
+</ol></div>
+<p>
+ While comparing this minimal example with an equivalent parser example
+ we notice a significant difference. It is possible (and actually, it makes
+ a lot of sense) to use a parser without creating any internal representation
+ of the parsed input. Using a parser in this mode checks the provided input
+ against the given parser expression allowing to verify, whether the input
+ is parsable. For generators this mode doesn't make any sense. What is output
+ generation without generating any output? So we always will have to supply
+ the data the output should be generated from. In our example we supply
+ a vector of <code class="computeroutput"><span class="keyword">double</span></code> numbers
+ as the last parameter to the function <code class="computeroutput"><span class="identifier">generate_delimited</span></code>
+ (see code below).
+ </p>
+<p>
+ In this example, we wish to delimite the generated numbers by spaces. Another
+ generator named <code class="computeroutput"><span class="identifier">space</span></code> is
+ included in Spirit's repertoire of predefined generators. It is a very
+ trivial generator that simply produces spaces. It is the equivalent to
+ writing <code class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="char">' '</span><span class="special">)</span></code>, or simply
+ <code class="computeroutput"><span class="char">' '</span></code>. It has been implemented
+ for similarity with the corresponding predefined <code class="computeroutput"><span class="identifier">space</span></code>
+ parser. We will use <code class="computeroutput"><span class="identifier">space</span></code>
+ as our delimiter. The delimiter is the one responsible for inserting characters
+ in between generator elements such as the <code class="computeroutput"><span class="identifier">double_</span></code>
+ and <code class="computeroutput"><span class="identifier">char_</span></code>.
+ </p>
+<p>
+ Ok, so now let's generate (For the complete source code of this example
+ please refer to num_list1.cpp)!
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">OutputIterator</span><span class="special">&gt;</span>
+<span class="keyword">bool</span> <span class="identifier">generate_numbers</span><span class="special">(</span><span class="identifier">OutputIterator</span> <span class="identifier">sink</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">v</span><span class="special">)</span>
+<span class="special">{</span>
+ <span class="keyword">using</span> <span class="identifier">karma</span><span class="special">::</span><span class="identifier">double_</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">karma</span><span class="special">::</span><span class="identifier">generate_delimited</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">ascii</span><span class="special">::</span><span class="identifier">space</span><span class="special">;</span>
+
+ <span class="keyword">bool</span> <span class="identifier">r</span> <span class="special">=</span> <span class="identifier">generate_delimited</span><span class="special">(</span>
+ <span class="identifier">sink</span><span class="special">,</span> <span class="callout_bug"><a class="co" name="spirit4co" href="warming_up.html#spirit4"><img src="../../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a></span>
+ <span class="identifier">double_</span> <span class="special">&lt;&lt;</span> <span class="special">*(</span><span class="char">','</span> <span class="special">&lt;&lt;</span> <span class="identifier">double_</span><span class="special">),</span> <span class="callout_bug"><a class="co" name="spirit5co" href="warming_up.html#spirit5"><img src="../../../../../../../doc/src/images/callouts/2.png" alt="2" border="0"></a></span>
+ <span class="identifier">space</span><span class="special">,</span> <span class="callout_bug"><a class="co" name="spirit6co" href="warming_up.html#spirit6"><img src="../../../../../../../doc/src/images/callouts/3.png" alt="3" border="0"></a></span>
+ <span class="identifier">v</span> <span class="callout_bug"><a class="co" name="spirit7co" href="warming_up.html#spirit7"><img src="../../../../../../../doc/src/images/callouts/4.png" alt="4" border="0"></a></span>
+ <span class="special">);</span>
+ <span class="keyword">return</span> <span class="identifier">r</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+ </p>
+<div class="calloutlist"><table border="0" summary="Callout list">
+<tr>
+<td width="5%" valign="top" align="left"><p><a name="spirit4"></a>1 </p></td>
+<td valign="top" align="left"><p> destination: output iterator </p></td>
+</tr>
+<tr>
+<td width="5%" valign="top" align="left"><p><a name="spirit5"></a>2 </p></td>
+<td valign="top" align="left"><p> the generator </p></td>
+</tr>
+<tr>
+<td width="5%" valign="top" align="left"><p><a name="spirit6"></a>3 </p></td>
+<td valign="top" align="left"><p> the delimiter-generator </p></td>
+</tr>
+<tr>
+<td width="5%" valign="top" align="left"><p><a name="spirit7"></a>4 </p></td>
+<td valign="top" align="left"><p> the
+ data to output </p></td>
+</tr>
+</table></div>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+ The generate function returns <code class="computeroutput"><span class="keyword">true</span></code>
+ or <code class="computeroutput"><span class="keyword">false</span></code> depending on the
+ result of the output generation. As outlined in different places of this
+ documentation, a generator may fail for different reasons. One of the possible
+ reasons is an error in the underlying output iterator (memory exhausted
+ or disk full, etc.)
+ </p>
+<p>
+ Note that we inlined the parser directly in the call to parse. Upon calling
+ parse, the expression evaluates into a temporary, unnamed parser which
+ is passed into the parse() function, used, and then destroyed.
+ </p>
+<p>
+ Here, we opted to make the generator generic by making it a template, parameterized
+ by the output iterator type. By doing so, it can put the generated data
+ into any STL conforming output iterator.
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2001-2009 Joel
+ de Guzman, Hartmut Kaiser<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></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="quick_start.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../quick_reference.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Modified: trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives/lexer_token_values.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives/lexer_token_values.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives/lexer_token_values.html 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
@@ -51,7 +51,7 @@
             of the <span class="emphasis"><em>Spirit.Lex</em></span> library.
           </p>
 <a name="spirit.lex.abstracts.lexer_primitives.lexer_token_values.the_anatomy_of_a_token"></a><h6>
-<a name="id1101223"></a>
+<a name="id1049396"></a>
             <a class="link" href="lexer_token_values.html#spirit.lex.abstracts.lexer_primitives.lexer_token_values.the_anatomy_of_a_token">The
             Anatomy of a Token</a>
           </h6>
@@ -187,7 +187,7 @@
             when it is requested for the first time.
           </p>
 <a name="spirit.lex.abstracts.lexer_primitives.lexer_token_values.the_physiognomy_of_a_token_definition"></a><h6>
-<a name="id1102503"></a>
+<a name="id1050261"></a>
             <a class="link" href="lexer_token_values.html#spirit.lex.abstracts.lexer_primitives.lexer_token_values.the_physiognomy_of_a_token_definition">The
             Physiognomy of a Token Definition</a>
           </h6>
@@ -260,7 +260,7 @@
 </td></tr>
 </table></div>
 <a name="spirit.lex.abstracts.lexer_primitives.lexer_token_values.examples_of_using__link_linkend__spirit_lex_reference_token_class___code__phrase_role__identifier__lexertl_token__phrase__phrase_role__special___lt__gt___phrase___code___link_"></a><h6>
-<a name="id1102759"></a>
+<a name="id1050516"></a>
             <a class="link" href="lexer_token_values.html#spirit.lex.abstracts.lexer_primitives.lexer_token_values.examples_of_using__link_linkend__spirit_lex_reference_token_class___code__phrase_role__identifier__lexertl_token__phrase__phrase_role__special___lt__gt___phrase___code___link_">Examples
             of using <a class="link" href="../../reference/token_class.html" title="Token Class"><code class="computeroutput"><span class="identifier">lexertl_token</span><span class="special">&lt;&gt;</span></code></a></a>
           </h6>

Modified: trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_semantic_actions.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_semantic_actions.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_semantic_actions.html 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
@@ -105,7 +105,7 @@
 <span class="keyword">void</span> <span class="identifier">f</span> <span class="special">();</span>
 </pre>
 <a name="spirit.lex.abstracts.lexer_semantic_actions.the_context_of_a_lexer_semantic_action"></a><h6>
-<a name="id1106344"></a>
+<a name="id1054717"></a>
           <a class="link" href="lexer_semantic_actions.html#spirit.lex.abstracts.lexer_semantic_actions.the_context_of_a_lexer_semantic_action">The
           context of a lexer semantic action</a>
         </h6>
@@ -120,7 +120,7 @@
           of the available functionality.
         </p>
 <div class="table">
-<a name="id1106365"></a><p class="title"><b>Table 6. Functions exposed by any context passed to a lexer
+<a name="id1054738"></a><p class="title"><b>Table 6. Functions exposed by any context passed to a lexer
         semantic action</b></p>
 <div class="table-contents"><table class="table" summary="Functions exposed by any context passed to a lexer
         semantic action">
@@ -226,7 +226,7 @@
 </table></div>
 </div>
 <br class="table-break"><a name="spirit.lex.abstracts.lexer_semantic_actions.lexer_semantic_actions_using_phoenix"></a><h6>
-<a name="id1106797"></a>
+<a name="id1055170"></a>
           <a class="link" href="lexer_semantic_actions.html#spirit.lex.abstracts.lexer_semantic_actions.lexer_semantic_actions_using_phoenix">Lexer
           Semantic Actions Using Phoenix</a>
         </h6>
@@ -238,7 +238,7 @@
           predefined Spirit placeholders:
         </p>
 <div class="table">
-<a name="id1106820"></a><p class="title"><b>Table 7. Predefined Phoenix placeholders for lexer semantic
+<a name="id1055193"></a><p class="title"><b>Table 7. Predefined Phoenix placeholders for lexer semantic
         actions</b></p>
 <div class="table-contents"><table class="table" summary="Predefined Phoenix placeholders for lexer semantic
         actions">
@@ -356,7 +356,7 @@
           table lists the available support functions and describes their functionality:
         </p>
 <div class="table">
-<a name="id1108807"></a><p class="title"><b>Table 8. Support functions usable from Phoenix expressions
+<a name="id1055447"></a><p class="title"><b>Table 8. Support functions usable from Phoenix expressions
         inside lexer semantic actions</b></p>
 <div class="table-contents"><table class="table" summary="Support functions usable from Phoenix expressions
         inside lexer semantic actions">

Modified: trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_states.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_states.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_states.html 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
@@ -27,17 +27,17 @@
 <a name="spirit.lex.abstracts.lexer_states"></a><a class="link" href="lexer_states.html" title="Lexer States"> Lexer States</a>
 </h4></div></div></div>
 <a name="spirit.lex.abstracts.lexer_states.controlling_the_lexer_state_from_lexer_semantic_actions"></a><h6>
-<a name="id1112961"></a>
+<a name="id1061320"></a>
           <a class="link" href="lexer_states.html#spirit.lex.abstracts.lexer_states.controlling_the_lexer_state_from_lexer_semantic_actions">Controlling
           the Lexer State from Lexer Semantic Actions</a>
         </h6>
 <a name="spirit.lex.abstracts.lexer_states.controlling_the_lexer_state_from_parser_semantic_actions"></a><h6>
-<a name="id1112974"></a>
+<a name="id1061333"></a>
           <a class="link" href="lexer_states.html#spirit.lex.abstracts.lexer_states.controlling_the_lexer_state_from_parser_semantic_actions">Controlling
           the Lexer State from Parser Semantic Actions</a>
         </h6>
 <a name="spirit.lex.abstracts.lexer_states.using_a_lexer_state_for_the_skip_parser"></a><h6>
-<a name="id1112987"></a>
+<a name="id1061346"></a>
           <a class="link" href="lexer_states.html#spirit.lex.abstracts.lexer_states.using_a_lexer_state_for_the_skip_parser">Using
           a Lexer State for the Skip Parser</a>
         </h6>

Modified: trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_static_model.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_static_model.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_static_model.html 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
@@ -176,7 +176,7 @@
 <p>
         </p>
 <a name="spirit.lex.abstracts.lexer_static_model.generating_the_static_analyzer"></a><h6>
-<a name="id1110256"></a>
+<a name="id1059318"></a>
           <a class="link" href="lexer_static_model.html#spirit.lex.abstracts.lexer_static_model.generating_the_static_analyzer">Generating
           the Static Analyzer</a>
         </h6>
@@ -225,7 +225,7 @@
           the next topic (the full generated code can be viewed here).
         </p>
 <a name="spirit.lex.abstracts.lexer_static_model.modifying_the_dynamic_analyzer"></a><h6>
-<a name="id1110584"></a>
+<a name="id1059646"></a>
           <a class="link" href="lexer_static_model.html#spirit.lex.abstracts.lexer_static_model.modifying_the_dynamic_analyzer">Modifying
           the Dynamic Analyzer</a>
         </h6>

Modified: trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_tokenizing.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_tokenizing.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_tokenizing.html 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
@@ -28,7 +28,7 @@
         Input Data</a>
 </h4></div></div></div>
 <a name="spirit.lex.abstracts.lexer_tokenizing.the_tokenize_function"></a><h6>
-<a name="id1103286"></a>
+<a name="id1051043"></a>
           <a class="link" href="lexer_tokenizing.html#spirit.lex.abstracts.lexer_tokenizing.the_tokenize_function">The
           tokenize function</a>
         </h6>
@@ -228,7 +228,7 @@
 </dl>
 </div>
 <a name="spirit.lex.abstracts.lexer_tokenizing.the_generate_static_function"></a><h6>
-<a name="id1105723"></a>
+<a name="id1054096"></a>
           <a class="link" href="lexer_tokenizing.html#spirit.lex.abstracts.lexer_tokenizing.the_generate_static_function">The
           generate_static function</a>
         </h6>

Modified: trunk/libs/spirit/doc/html/spirit/lex/lexer_introduction.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/lexer_introduction.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/lexer_introduction.html 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
@@ -56,7 +56,7 @@
         </li>
 </ul></div>
 <a name="spirit.lex.lexer_introduction.why_use_a_separate_lexer_"></a><h5>
-<a name="id1088305"></a>
+<a name="id1037074"></a>
         <a class="link" href="lexer_introduction.html#spirit.lex.lexer_introduction.why_use_a_separate_lexer_">Why
         Use a Separate Lexer?</a>
       </h5>
@@ -155,7 +155,7 @@
         grammar recognizers.
       </p>
 <a name="spirit.lex.lexer_introduction.advantages_of_using__emphasis_spirit_lex__emphasis_"></a><h5>
-<a name="id1089655"></a>
+<a name="id1037283"></a>
         <a class="link" href="lexer_introduction.html#spirit.lex.lexer_introduction.advantages_of_using__emphasis_spirit_lex__emphasis_">Advantages
         of using <span class="emphasis"><em>Spirit.Lex</em></span></a>
       </h5>
@@ -203,7 +203,7 @@
         application.
       </p>
 <a name="spirit.lex.lexer_introduction.the_library_structure_of__emphasis_spirit_lex__emphasis_"></a><h5>
-<a name="id1089758"></a>
+<a name="id1037557"></a>
         <a class="link" href="lexer_introduction.html#spirit.lex.lexer_introduction.the_library_structure_of__emphasis_spirit_lex__emphasis_">The
         Library Structure of <span class="emphasis"><em>Spirit.Lex</em></span></a>
       </h5>

Modified: trunk/libs/spirit/doc/html/spirit/lex/reference/concepts/lexer.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/reference/concepts/lexer.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/reference/concepts/lexer.html 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
@@ -27,7 +27,7 @@
 <a name="spirit.lex.reference.concepts.lexer"></a><a class="link" href="lexer.html" title="Lexer">Lexer</a>
 </h5></div></div></div>
 <div class="table">
-<a name="id1113039"></a><p class="title"><b>Table 9. Regular expressions support</b></p>
+<a name="id1061398"></a><p class="title"><b>Table 9. Regular expressions support</b></p>
 <div class="table-contents"><table class="table" summary="Regular expressions support">
 <colgroup>
 <col>
@@ -502,7 +502,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.lex.reference.concepts.lexer.regular_expression_precedence"></a><h6>
-<a name="id1115710"></a>
+<a name="id1064076"></a>
             <a class="link" href="lexer.html#spirit.lex.reference.concepts.lexer.regular_expression_precedence">Regular
             Expression Precedence</a>
           </h6>
@@ -521,7 +521,7 @@
             </li>
 </ul></div>
 <a name="spirit.lex.reference.concepts.lexer.macros"></a><h6>
-<a name="id1115813"></a>
+<a name="id1064179"></a>
             <a class="link" href="lexer.html#spirit.lex.reference.concepts.lexer.macros">Macros</a>
           </h6>
 <p>

Modified: trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_class.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_class.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_class.html 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
@@ -27,22 +27,22 @@
 <a name="spirit.lex.reference.lexer_class"></a><a class="link" href="lexer_class.html" title="Lexer Class">Lexer Class</a>
 </h4></div></div></div>
 <a name="spirit.lex.reference.lexer_class.the_lexertl_lexer_class_implementing_the_dynamic_model"></a><h6>
-<a name="id1115935"></a>
+<a name="id1064302"></a>
           <a class="link" href="lexer_class.html#spirit.lex.reference.lexer_class.the_lexertl_lexer_class_implementing_the_dynamic_model">The
           lexertl_lexer Class Implementing the Dynamic Model</a>
         </h6>
 <a name="spirit.lex.reference.lexer_class.the_lexertl_actor_lexer_class_implementing_the_dynamic_model"></a><h6>
-<a name="id1115948"></a>
+<a name="id1064315"></a>
           <a class="link" href="lexer_class.html#spirit.lex.reference.lexer_class.the_lexertl_actor_lexer_class_implementing_the_dynamic_model">The
           lexertl_actor_lexer Class Implementing the Dynamic Model</a>
         </h6>
 <a name="spirit.lex.reference.lexer_class.the_lexertl_static_lexer_class_implementing_the_static_model"></a><h6>
-<a name="id1115962"></a>
+<a name="id1064328"></a>
           <a class="link" href="lexer_class.html#spirit.lex.reference.lexer_class.the_lexertl_static_lexer_class_implementing_the_static_model">The
           lexertl_static_lexer Class Implementing the Static Model</a>
         </h6>
 <a name="spirit.lex.reference.lexer_class.the_lexertl_static_actor_lexer_class_implementing_the_static_model"></a><h6>
-<a name="id1115975"></a>
+<a name="id1064341"></a>
           <a class="link" href="lexer_class.html#spirit.lex.reference.lexer_class.the_lexertl_static_actor_lexer_class_implementing_the_static_model">The
           lexertl_static_actor_lexer Class Implementing the Static Model</a>
         </h6>

Modified: trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart1.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart1.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart1.html 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
@@ -39,7 +39,7 @@
           (for the full example code see here: word_count_functor.cpp).
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart1.prerequisites"></a><h6>
-<a name="id1090027"></a>
+<a name="id1037826"></a>
           <a class="link" href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.prerequisites">Prerequisites</a>
         </h6>
 <p>
@@ -78,7 +78,7 @@
 <p>
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart1.defining_tokens"></a><h6>
-<a name="id1090272"></a>
+<a name="id1038070"></a>
           <a class="link" href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.defining_tokens">Defining
           Tokens</a>
         </h6>
@@ -133,7 +133,7 @@
 <p>
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart1.doing_the_useful_work"></a><h6>
-<a name="id1090580"></a>
+<a name="id1038379"></a>
           <a class="link" href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.doing_the_useful_work">Doing
           the Useful Work</a>
         </h6>
@@ -198,7 +198,7 @@
           as well.
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart1.pulling_everything_together"></a><h6>
-<a name="id1091079"></a>
+<a name="id1038878"></a>
           <a class="link" href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.pulling_everything_together">Pulling
           Everything Together</a>
         </h6>
@@ -251,7 +251,7 @@
 <p>
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart1.comparing__emphasis_spirit_lex__emphasis__with__ulink_url__http___flex_sourceforge_net___flex__ulink_"></a><h6>
-<a name="id1093781"></a>
+<a name="id1041528"></a>
           <a class="link" href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.comparing__emphasis_spirit_lex__emphasis__with__ulink_url__http___flex_sourceforge_net___flex__ulink_">Comparing
           <span class="emphasis"><em>Spirit.Lex</em></span> with Flex</a>
         </h6>

Modified: trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart2.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart2.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart2.html 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
@@ -40,7 +40,7 @@
           options along the lines (for the full example code see here: word_count_lexer.cpp).
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart2.prerequisites"></a><h6>
-<a name="id1094556"></a>
+<a name="id1042304"></a>
           <a class="link" href="lexer_quickstart2.html#spirit.lex.tutorials.lexer_quickstart2.prerequisites">Prerequisites</a>
         </h6>
 <p>
@@ -114,7 +114,7 @@
 <p>
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart2.semantic_actions_in__emphasis_spirit_lex__emphasis_"></a><h6>
-<a name="id1095206"></a>
+<a name="id1042953"></a>
           <a class="link" href="lexer_quickstart2.html#spirit.lex.tutorials.lexer_quickstart2.semantic_actions_in__emphasis_spirit_lex__emphasis_">Semantic
           Actions in <span class="emphasis"><em>Spirit.Lex</em></span></a>
         </h6>
@@ -173,7 +173,7 @@
           Semantic Actions</a>.
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart2.associating_token_definitions_with_the_lexer"></a><h6>
-<a name="id1095838"></a>
+<a name="id1043571"></a>
           <a class="link" href="lexer_quickstart2.html#spirit.lex.tutorials.lexer_quickstart2.associating_token_definitions_with_the_lexer">Associating
           Token Definitions with the Lexer</a>
         </h6>
@@ -209,7 +209,7 @@
           with the constant defined by <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">lex</span><span class="special">::</span><span class="identifier">min_token_id</span></code>.
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart2.pulling_everything_together"></a><h6>
-<a name="id1096126"></a>
+<a name="id1044031"></a>
           <a class="link" href="lexer_quickstart2.html#spirit.lex.tutorials.lexer_quickstart2.pulling_everything_together">Pulling
           everything together</a>
         </h6>
@@ -227,20 +227,20 @@
 <pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">argv</span><span class="special">[])</span>
 <span class="special">{</span>
 
-<span class="callout_bug"><a class="co" name="spirit4co" href="lexer_quickstart2.html#spirit4"><img src="../../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a></span> <span class="keyword">typedef</span> <span class="identifier">lexertl</span><span class="special">::</span><span class="identifier">token</span><span class="special">&lt;</span><span class="keyword">char</span> <span class="keyword">const</span><span class="special">*,</span> <span class="identifier">omitted</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span><span class="special">&gt;</span> <span class="identifier">token_type</span><span class="special">;</span>
+<span class="callout_bug"><a class="co" name="spirit8co" href="lexer_quickstart2.html#spirit8"><img src="../../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a></span> <span class="keyword">typedef</span> <span class="identifier">lexertl</span><span class="special">::</span><span class="identifier">token</span><span class="special">&lt;</span><span class="keyword">char</span> <span class="keyword">const</span><span class="special">*,</span> <span class="identifier">omitted</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span><span class="special">&gt;</span> <span class="identifier">token_type</span><span class="special">;</span>
 
-<span class="callout_bug"><a class="co" name="spirit5co" href="lexer_quickstart2.html#spirit5"><img src="../../../../../../../doc/src/images/callouts/2.png" alt="2" border="0"></a></span> <span class="keyword">typedef</span> <span class="identifier">lexertl</span><span class="special">::</span><span class="identifier">actor_lexer</span><span class="special">&lt;</span><span class="identifier">token_type</span><span class="special">&gt;</span> <span class="identifier">lexer_type</span><span class="special">;</span>
+<span class="callout_bug"><a class="co" name="spirit9co" href="lexer_quickstart2.html#spirit9"><img src="../../../../../../../doc/src/images/callouts/2.png" alt="2" border="0"></a></span> <span class="keyword">typedef</span> <span class="identifier">lexertl</span><span class="special">::</span><span class="identifier">actor_lexer</span><span class="special">&lt;</span><span class="identifier">token_type</span><span class="special">&gt;</span> <span class="identifier">lexer_type</span><span class="special">;</span>
 
-<span class="callout_bug"><a class="co" name="spirit6co" href="lexer_quickstart2.html#spirit6"><img src="../../../../../../../doc/src/images/callouts/3.png" alt="3" border="0"></a></span> <span class="identifier">word_count_tokens</span><span class="special">&lt;</span><span class="identifier">lexer_type</span><span class="special">&gt;</span> <span class="identifier">word_count_lexer</span><span class="special">;</span>
+<span class="callout_bug"><a class="co" name="spirit10co" href="lexer_quickstart2.html#spirit10"><img src="../../../../../../../doc/src/images/callouts/3.png" alt="3" border="0"></a></span> <span class="identifier">word_count_tokens</span><span class="special">&lt;</span><span class="identifier">lexer_type</span><span class="special">&gt;</span> <span class="identifier">word_count_lexer</span><span class="special">;</span>
 
-<span class="callout_bug"><a class="co" name="spirit7co" href="lexer_quickstart2.html#spirit7"><img src="../../../../../../../doc/src/images/callouts/4.png" alt="4" border="0"></a></span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">str</span> <span class="special">(</span><span class="identifier">read_from_file</span><span class="special">(</span><span class="number">1</span> <span class="special">==</span> <span class="identifier">argc</span> <span class="special">?</span> <span class="string">"word_count.input"</span> <span class="special">:</span> <span class="identifier">argv</span><span class="special">[</span><span class="number">1</span><span class="special">]));</span>
+<span class="callout_bug"><a class="co" name="spirit11co" href="lexer_quickstart2.html#spirit11"><img src="../../../../../../../doc/src/images/callouts/4.png" alt="4" border="0"></a></span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">str</span> <span class="special">(</span><span class="identifier">read_from_file</span><span class="special">(</span><span class="number">1</span> <span class="special">==</span> <span class="identifier">argc</span> <span class="special">?</span> <span class="string">"word_count.input"</span> <span class="special">:</span> <span class="identifier">argv</span><span class="special">[</span><span class="number">1</span><span class="special">]));</span>
     <span class="keyword">char</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">first</span> <span class="special">=</span> <span class="identifier">str</span><span class="special">.</span><span class="identifier">c_str</span><span class="special">();</span>
     <span class="keyword">char</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">last</span> <span class="special">=</span> <span class="special">&amp;</span><span class="identifier">first</span><span class="special">[</span><span class="identifier">str</span><span class="special">.</span><span class="identifier">size</span><span class="special">()];</span>
 
-<span class="callout_bug"><a class="co" name="spirit8co" href="lexer_quickstart2.html#spirit8"><img src="../../../../../../../doc/src/images/callouts/5.png" alt="5" border="0"></a></span> <span class="identifier">lexer_type</span><span class="special">::</span><span class="identifier">iterator_type</span> <span class="identifier">iter</span> <span class="special">=</span> <span class="identifier">word_count_lexer</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">);</span>
+<span class="callout_bug"><a class="co" name="spirit12co" href="lexer_quickstart2.html#spirit12"><img src="../../../../../../../doc/src/images/callouts/5.png" alt="5" border="0"></a></span> <span class="identifier">lexer_type</span><span class="special">::</span><span class="identifier">iterator_type</span> <span class="identifier">iter</span> <span class="special">=</span> <span class="identifier">word_count_lexer</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">);</span>
     <span class="identifier">lexer_type</span><span class="special">::</span><span class="identifier">iterator_type</span> <span class="identifier">end</span> <span class="special">=</span> <span class="identifier">word_count_lexer</span><span class="special">.</span><span class="identifier">end</span><span class="special">();</span>
 
-<span class="callout_bug"><a class="co" name="spirit9co" href="lexer_quickstart2.html#spirit9"><img src="../../../../../../../doc/src/images/callouts/6.png" alt="6" border="0"></a></span> <span class="keyword">while</span> <span class="special">(</span><span class="identifier">iter</span> <span class="special">!=</span> <span class="identifier">end</span> <span class="special">&amp;&amp;</span> <span class="identifier">token_is_valid</span><span class="special">(*</span><span class="identifier">iter</span><span class="special">))</span>
+<span class="callout_bug"><a class="co" name="spirit13co" href="lexer_quickstart2.html#spirit13"><img src="../../../../../../../doc/src/images/callouts/6.png" alt="6" border="0"></a></span> <span class="keyword">while</span> <span class="special">(</span><span class="identifier">iter</span> <span class="special">!=</span> <span class="identifier">end</span> <span class="special">&amp;&amp;</span> <span class="identifier">token_is_valid</span><span class="special">(*</span><span class="identifier">iter</span><span class="special">))</span>
         <span class="special">++</span><span class="identifier">iter</span><span class="special">;</span>
 
     <span class="keyword">if</span> <span class="special">(</span><span class="identifier">iter</span> <span class="special">==</span> <span class="identifier">end</span><span class="special">)</span> <span class="special">{</span>
@@ -265,7 +265,7 @@
             </p>
 <div class="calloutlist"><table border="0" summary="Callout list">
 <tr>
-<td width="5%" valign="top" align="left"><p><a name="spirit4"></a>1 </p></td>
+<td width="5%" valign="top" align="left"><p><a name="spirit8"></a>1 </p></td>
 <td valign="top" align="left"><p> Specifying <code class="computeroutput"><span class="identifier">omitted</span></code> as
             the token attribute type generates a token class not holding any token
             attribute at all (not even the iterator range of the matched input sequence),
@@ -277,26 +277,26 @@
             member. </p></td>
 </tr>
 <tr>
-<td width="5%" valign="top" align="left"><p><a name="spirit5"></a>2 </p></td>
+<td width="5%" valign="top" align="left"><p><a name="spirit9"></a>2 </p></td>
 <td valign="top" align="left"><p> This defines the lexer type to use </p></td>
 </tr>
 <tr>
-<td width="5%" valign="top" align="left"><p><a name="spirit6"></a>3 </p></td>
+<td width="5%" valign="top" align="left"><p><a name="spirit10"></a>3 </p></td>
 <td valign="top" align="left"><p> Create the lexer object instance
             needed to invoke the lexical analysis </p></td>
 </tr>
 <tr>
-<td width="5%" valign="top" align="left"><p><a name="spirit7"></a>4 </p></td>
+<td width="5%" valign="top" align="left"><p><a name="spirit11"></a>4 </p></td>
 <td valign="top" align="left"><p> Read input from the given file,
             tokenize all the input, while discarding all generated tokens </p></td>
 </tr>
 <tr>
-<td width="5%" valign="top" align="left"><p><a name="spirit8"></a>5 </p></td>
+<td width="5%" valign="top" align="left"><p><a name="spirit12"></a>5 </p></td>
 <td valign="top" align="left"><p> Create
             a pair of iterators returning the sequence of generated tokens </p></td>
 </tr>
 <tr>
-<td width="5%" valign="top" align="left"><p><a name="spirit9"></a>6 </p></td>
+<td width="5%" valign="top" align="left"><p><a name="spirit13"></a>6 </p></td>
 <td valign="top" align="left"><p> Here we
             simply iterate over all tokens, making sure to break the loop if an invalid
             token gets returned from the lexer </p></td>

Modified: trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart3.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart3.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart3.html 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
@@ -65,7 +65,7 @@
           code see here: word_count.cpp).
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart3.prerequisites"></a><h6>
-<a name="id1097101"></a>
+<a name="id1045005"></a>
           <a class="link" href="lexer_quickstart3.html#spirit.lex.tutorials.lexer_quickstart3.prerequisites">Prerequisites</a>
         </h6>
 <p>
@@ -115,7 +115,7 @@
 <p>
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart3.defining_tokens"></a><h6>
-<a name="id1097532"></a>
+<a name="id1045436"></a>
           <a class="link" href="lexer_quickstart3.html#spirit.lex.tutorials.lexer_quickstart3.defining_tokens">Defining
           Tokens</a>
         </h6>
@@ -168,7 +168,7 @@
 <p>
         </p>
 <a name="spirit.lex.tutorials.lexer_quickstart3.using_token_definition_instances_as_parsers"></a><h6>
-<a name="id1097869"></a>
+<a name="id1045773"></a>
           <a class="link" href="lexer_quickstart3.html#spirit.lex.tutorials.lexer_quickstart3.using_token_definition_instances_as_parsers">Using
           Token Definition Instances as Parsers</a>
         </h6>
@@ -339,7 +339,7 @@
           </p></td></tr>
 </table></div>
 <a name="spirit.lex.tutorials.lexer_quickstart3.pulling_everything_together"></a><h6>
-<a name="id1100238"></a>
+<a name="id1048410"></a>
           <a class="link" href="lexer_quickstart3.html#spirit.lex.tutorials.lexer_quickstart3.pulling_everything_together">Pulling
           Everything Together</a>
         </h6>
@@ -359,13 +359,13 @@
 </p>
 <pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">argv</span><span class="special">[])</span>
 <span class="special">{</span>
-<span class="callout_bug"><a class="co" name="spirit10co" href="lexer_quickstart3.html#spirit10"><img src="../../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a></span> <span class="keyword">typedef</span> <span class="identifier">lexertl</span><span class="special">::</span><span class="identifier">token</span><span class="special">&lt;</span>
+<span class="callout_bug"><a class="co" name="spirit14co" href="lexer_quickstart3.html#spirit14"><img src="../../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a></span> <span class="keyword">typedef</span> <span class="identifier">lexertl</span><span class="special">::</span><span class="identifier">token</span><span class="special">&lt;</span>
         <span class="keyword">char</span> <span class="keyword">const</span><span class="special">*,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span>
     <span class="special">&gt;</span> <span class="identifier">token_type</span><span class="special">;</span>
 
-<span class="callout_bug"><a class="co" name="spirit11co" href="lexer_quickstart3.html#spirit11"><img src="../../../../../../../doc/src/images/callouts/2.png" alt="2" border="0"></a></span> <span class="keyword">typedef</span> <span class="identifier">lexertl</span><span class="special">::</span><span class="identifier">lexer</span><span class="special">&lt;</span><span class="identifier">token_type</span><span class="special">&gt;</span> <span class="identifier">lexer_type</span><span class="special">;</span>
+<span class="callout_bug"><a class="co" name="spirit15co" href="lexer_quickstart3.html#spirit15"><img src="../../../../../../../doc/src/images/callouts/2.png" alt="2" border="0"></a></span> <span class="keyword">typedef</span> <span class="identifier">lexertl</span><span class="special">::</span><span class="identifier">lexer</span><span class="special">&lt;</span><span class="identifier">token_type</span><span class="special">&gt;</span> <span class="identifier">lexer_type</span><span class="special">;</span>
 
-<span class="callout_bug"><a class="co" name="spirit12co" href="lexer_quickstart3.html#spirit12"><img src="../../../../../../../doc/src/images/callouts/3.png" alt="3" border="0"></a></span> <span class="keyword">typedef</span> <span class="identifier">word_count_tokens</span><span class="special">&lt;</span><span class="identifier">lexer_type</span><span class="special">&gt;::</span><span class="identifier">iterator_type</span> <span class="identifier">iterator_type</span><span class="special">;</span>
+<span class="callout_bug"><a class="co" name="spirit16co" href="lexer_quickstart3.html#spirit16"><img src="../../../../../../../doc/src/images/callouts/3.png" alt="3" border="0"></a></span> <span class="keyword">typedef</span> <span class="identifier">word_count_tokens</span><span class="special">&lt;</span><span class="identifier">lexer_type</span><span class="special">&gt;::</span><span class="identifier">iterator_type</span> <span class="identifier">iterator_type</span><span class="special">;</span>
 
     <span class="comment">// now we use the types defined above to create the lexer and grammar
 </span> <span class="comment">// object instances needed to invoke the parsing process
@@ -377,7 +377,7 @@
     <span class="keyword">char</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">first</span> <span class="special">=</span> <span class="identifier">str</span><span class="special">.</span><span class="identifier">c_str</span><span class="special">();</span>
     <span class="keyword">char</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">last</span> <span class="special">=</span> <span class="special">&amp;</span><span class="identifier">first</span><span class="special">[</span><span class="identifier">str</span><span class="special">.</span><span class="identifier">size</span><span class="special">()];</span>
 
-<span class="callout_bug"><a class="co" name="spirit13co" href="lexer_quickstart3.html#spirit13"><img src="../../../../../../../doc/src/images/callouts/4.png" alt="4" border="0"></a></span> <span class="keyword">bool</span> <span class="identifier">r</span> <span class="special">=</span> <span class="identifier">tokenize_and_parse</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">,</span> <span class="identifier">word_count</span><span class="special">,</span> <span class="identifier">g</span><span class="special">);</span>
+<span class="callout_bug"><a class="co" name="spirit17co" href="lexer_quickstart3.html#spirit17"><img src="../../../../../../../doc/src/images/callouts/4.png" alt="4" border="0"></a></span> <span class="keyword">bool</span> <span class="identifier">r</span> <span class="special">=</span> <span class="identifier">tokenize_and_parse</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">,</span> <span class="identifier">word_count</span><span class="special">,</span> <span class="identifier">g</span><span class="special">);</span>
 
     <span class="keyword">if</span> <span class="special">(</span><span class="identifier">r</span><span class="special">)</span> <span class="special">{</span>
         <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"lines: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">g</span><span class="special">.</span><span class="identifier">l</span> <span class="special">&lt;&lt;</span> <span class="string">", words: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">g</span><span class="special">.</span><span class="identifier">w</span>
@@ -399,22 +399,22 @@
             </p>
 <div class="calloutlist"><table border="0" summary="Callout list">
 <tr>
-<td width="5%" valign="top" align="left"><p><a name="spirit10"></a>1 </p></td>
+<td width="5%" valign="top" align="left"><p><a name="spirit14"></a>1 </p></td>
 <td valign="top" align="left"><p> Define the token type to be used: <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></code>
             is available as the type of the token attribute </p></td>
 </tr>
 <tr>
-<td width="5%" valign="top" align="left"><p><a name="spirit11"></a>2 </p></td>
+<td width="5%" valign="top" align="left"><p><a name="spirit15"></a>2 </p></td>
 <td valign="top" align="left"><p> Define the lexer type
             to use implementing the state machine </p></td>
 </tr>
 <tr>
-<td width="5%" valign="top" align="left"><p><a name="spirit12"></a>3 </p></td>
+<td width="5%" valign="top" align="left"><p><a name="spirit16"></a>3 </p></td>
 <td valign="top" align="left"><p> Define the iterator type exposed
             by the lexer type </p></td>
 </tr>
 <tr>
-<td width="5%" valign="top" align="left"><p><a name="spirit13"></a>4 </p></td>
+<td width="5%" valign="top" align="left"><p><a name="spirit17"></a>4 </p></td>
 <td valign="top" align="left"><p> Parsing is done based on the the token stream, not
             the character stream read from the input. The function <code class="computeroutput"><span class="identifier">tokenize_and_parse</span><span class="special">()</span></code>
             wraps the passed iterator range <code class="computeroutput"><span class="special">[</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">)</span></code>

Modified: trunk/libs/spirit/doc/html/spirit/preface.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/preface.html (original)
+++ trunk/libs/spirit/doc/html/spirit/preface.html 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
@@ -41,11 +41,11 @@
       </p>
 </blockquote></div>
 <a name="spirit.preface.history"></a><h4>
-<a name="id1028450"></a>
+<a name="id980053"></a>
       <a class="link" href="preface.html#spirit.preface.history">History</a>
     </h4>
 <a name="spirit.preface._emphasis_80s__emphasis_"></a><h4>
-<a name="id1028464"></a>
+<a name="id980066"></a>
       <a class="link" href="preface.html#spirit.preface._emphasis_80s__emphasis_"><span class="emphasis"><em>80s</em></span></a>
     </h4>
 <p>
@@ -59,7 +59,7 @@
       parser. This worked very well.
     </p>
 <a name="spirit.preface._emphasis_90s__emphasis_"></a><h4>
-<a name="id1028482"></a>
+<a name="id980084"></a>
       <a class="link" href="preface.html#spirit.preface._emphasis_90s__emphasis_"><span class="emphasis"><em>90s</em></span></a>
     </h4>
 <p>
@@ -97,7 +97,7 @@
       here: pre-Spirit.
     </p>
 <a name="spirit.preface._emphasis_2001_to_2006__emphasis_"></a><h4>
-<a name="id1028524"></a>
+<a name="id980126"></a>
       <a class="link" href="preface.html#spirit.preface._emphasis_2001_to_2006__emphasis_"><span class="emphasis"><em>2001
       to 2006</em></span></a>
     </h4>
@@ -127,7 +127,7 @@
       for design and implementation quality, robustness, and reusability.
     </p>
 <a name="spirit.preface._emphasis_2007__emphasis_"></a><h4>
-<a name="id1028558"></a>
+<a name="id980161"></a>
       <a class="link" href="preface.html#spirit.preface._emphasis_2007__emphasis_"><span class="emphasis"><em>2007</em></span></a>
     </h4>
 <p>
@@ -164,7 +164,7 @@
       gives you the right ingredients to create a sledgehammer easily.
     </p>
 <a name="spirit.preface.new_ideas__spirit_v2"></a><h4>
-<a name="id1028634"></a>
+<a name="id980237"></a>
       <a class="link" href="preface.html#spirit.preface.new_ideas__spirit_v2">New Ideas: Spirit V2</a>
     </h4>
 <p>
@@ -202,7 +202,7 @@
       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="id1028684"></a>
+<a name="id980287"></a>
       <a class="link" href="preface.html#spirit.preface.how_to_use_this_manual">How to use this manual</a>
     </h4>
 <p>
@@ -233,7 +233,7 @@
       icons precede some text to indicate:
     </p>
 <div class="table">
-<a name="id1028737"></a><p class="title"><b>Table 1. Icons</b></p>
+<a name="id980340"></a><p class="title"><b>Table 1. Icons</b></p>
 <div class="table-contents"><table class="table" summary="Icons">
 <colgroup>
 <col>
@@ -354,7 +354,7 @@
       Tools</a>.
     </p>
 <a name="spirit.preface.support"></a><h4>
-<a name="id1036791"></a>
+<a name="id980581"></a>
       <a class="link" href="preface.html#spirit.preface.support">Support</a>
     </h4>
 <p>

Modified: trunk/libs/spirit/doc/html/spirit/qi/quick_reference/compound_attribute_rules.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/quick_reference/compound_attribute_rules.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/quick_reference/compound_attribute_rules.html 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
@@ -41,7 +41,7 @@
           <span class="identifier">b</span></code> will be <code class="computeroutput"><span class="identifier">tuple</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">&gt;</span></code>.
         </p>
 <div class="table">
-<a name="id1072101"></a><p class="title"><b>Table 4. compound parser attribute types</b></p>
+<a name="id1018653"></a><p class="title"><b>Table 4. compound parser attribute types</b></p>
 <div class="table-contents"><table class="table" summary="compound parser attribute types">
 <colgroup>
 <col>

Modified: trunk/libs/spirit/doc/html/spirit/qi/tutorials/employee___parsing_into_structs.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/tutorials/employee___parsing_into_structs.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/tutorials/employee___parsing_into_structs.html 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
@@ -179,7 +179,7 @@
           has a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></code> attribute.
         </p>
 <a name="spirit.qi.tutorials.employee___parsing_into_structs.lexeme"></a><h6>
-<a name="id1056696"></a>
+<a name="id1003665"></a>
           <a class="link" href="employee___parsing_into_structs.html#spirit.qi.tutorials.employee___parsing_into_structs.lexeme">Lexeme</a>
         </h6>
 <pre class="programlisting"><span class="identifier">lexeme</span><span class="special">[</span><span class="char">'"'</span> <span class="special">&gt;&gt;</span> <span class="special">+(</span><span class="identifier">char_</span> <span class="special">-</span> <span class="char">'"'</span><span class="special">)</span> <span class="special">&gt;&gt;</span> <span class="char">'"'</span><span class="special">];</span>
@@ -196,7 +196,7 @@
           a double quote.
         </p>
 <a name="spirit.qi.tutorials.employee___parsing_into_structs.difference"></a><h6>
-<a name="id1056808"></a>
+<a name="id1003778"></a>
           <a class="link" href="employee___parsing_into_structs.html#spirit.qi.tutorials.employee___parsing_into_structs.difference">Difference</a>
         </h6>
 <p>
@@ -215,7 +215,7 @@
           is just <code class="computeroutput"><span class="keyword">char</span></code>.
         </p>
 <a name="spirit.qi.tutorials.employee___parsing_into_structs.plus"></a><h6>
-<a name="id1056916"></a>
+<a name="id1003886"></a>
           <a class="link" href="employee___parsing_into_structs.html#spirit.qi.tutorials.employee___parsing_into_structs.plus">Plus</a>
         </h6>
 <pre class="programlisting"><span class="special">+</span><span class="identifier">a</span>
@@ -234,7 +234,7 @@
 <pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">&gt;</span>
 </pre>
 <a name="spirit.qi.tutorials.employee___parsing_into_structs.sequence_attribute"></a><h6>
-<a name="id1057042"></a>
+<a name="id1004012"></a>
           <a class="link" href="employee___parsing_into_structs.html#spirit.qi.tutorials.employee___parsing_into_structs.sequence_attribute">Sequence
           Attribute</a>
         </h6>
@@ -275,7 +275,7 @@
           </p></td></tr>
 </table></div>
 <a name="spirit.qi.tutorials.employee___parsing_into_structs.attribute_collapsing"></a><h6>
-<a name="id1057828"></a>
+<a name="id1004234"></a>
           <a class="link" href="employee___parsing_into_structs.html#spirit.qi.tutorials.employee___parsing_into_structs.attribute_collapsing">Attribute
           Collapsing</a>
         </h6>
@@ -307,7 +307,7 @@
 <pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">&gt;</span>
 </pre>
 <a name="spirit.qi.tutorials.employee___parsing_into_structs.auto_rules"></a><h6>
-<a name="id1058067"></a>
+<a name="id1004473"></a>
           <a class="link" href="employee___parsing_into_structs.html#spirit.qi.tutorials.employee___parsing_into_structs.auto_rules">Auto
           Rules</a>
         </h6>
@@ -345,7 +345,7 @@
           directly into the rule's attribute, in-situ.
         </p>
 <a name="spirit.qi.tutorials.employee___parsing_into_structs.finally"></a><h6>
-<a name="id1058386"></a>
+<a name="id1004792"></a>
           <a class="link" href="employee___parsing_into_structs.html#spirit.qi.tutorials.employee___parsing_into_structs.finally">Finally</a>
         </h6>
 <p>

Modified: trunk/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___asts_.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___asts_.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___asts_.html 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
@@ -69,7 +69,7 @@
           for testing purposes. "4.toyxml" has an error in it.
         </p>
 <a name="spirit.qi.tutorials.mini_xml___asts_.first_cut"></a><h6>
-<a name="id1059034"></a>
+<a name="id1005662"></a>
           <a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.first_cut">First Cut</a>
         </h6>
 <p>
@@ -145,7 +145,7 @@
           by the placeholder <code class="computeroutput"><span class="identifier">_val</span></code>).
         </p>
 <a name="spirit.qi.tutorials.mini_xml___asts_.alternates"></a><h6>
-<a name="id1061320"></a>
+<a name="id1006843"></a>
           <a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.alternates">Alternates</a>
         </h6>
 <pre class="programlisting"><span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">mini_xml_node</span><span class="special">(),</span> <span class="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">node</span><span class="special">;</span>
@@ -175,7 +175,7 @@
 <span class="special">;</span>
 </pre>
 <a name="spirit.qi.tutorials.mini_xml___asts_.not_predicate"></a><h6>
-<a name="id1061648"></a>
+<a name="id1007171"></a>
           <a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.not_predicate">Not
           Predicate</a>
         </h6>
@@ -202,7 +202,7 @@
           at this point.
         </p>
 <a name="spirit.qi.tutorials.mini_xml___asts_.inherited_attribute"></a><h6>
-<a name="id1061802"></a>
+<a name="id1007326"></a>
           <a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.inherited_attribute">Inherited
           Attribute</a>
         </h6>
@@ -228,7 +228,7 @@
           <code class="computeroutput"><span class="identifier">_r3</span></code>, etc. if you have more).
         </p>
 <a name="spirit.qi.tutorials.mini_xml___asts_.a_lazy_lit"></a><h6>
-<a name="id1061997"></a>
+<a name="id1007520"></a>
           <a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.a_lazy_lit">A Lazy
           Lit</a>
         </h6>
@@ -262,7 +262,7 @@
           accessors, provided by Phoenix.
         </p>
 <a name="spirit.qi.tutorials.mini_xml___asts_.how_it_all_works"></a><h6>
-<a name="id1062328"></a>
+<a name="id1009494"></a>
           <a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.how_it_all_works">How
           it all works</a>
         </h6>
@@ -309,7 +309,7 @@
           as <code class="computeroutput"><span class="identifier">_r1</span></code>.
         </p>
 <a name="spirit.qi.tutorials.mini_xml___asts_.the_structures"></a><h6>
-<a name="id1062624"></a>
+<a name="id1009791"></a>
           <a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.the_structures">The
           Structures</a>
         </h6>
@@ -342,7 +342,7 @@
 <p>
         </p>
 <a name="spirit.qi.tutorials.mini_xml___asts_.of_alternates_and_variants"></a><h6>
-<a name="id1062820"></a>
+<a name="id1009986"></a>
           <a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.of_alternates_and_variants">Of
           Alternates and Variants</a>
         </h6>
@@ -369,7 +369,7 @@
           of <code class="computeroutput"><span class="identifier">a</span></code> and <code class="computeroutput"><span class="identifier">B</span></code> is the attribute of <code class="computeroutput"><span class="identifier">b</span></code>.
         </p>
 <a name="spirit.qi.tutorials.mini_xml___asts_.adapting_structs_again"></a><h6>
-<a name="id1063000"></a>
+<a name="id1010166"></a>
           <a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.adapting_structs_again">Adapting
           structs again</a>
         </h6>
@@ -395,7 +395,7 @@
 <p>
         </p>
 <a name="spirit.qi.tutorials.mini_xml___asts_.one_more_take"></a><h6>
-<a name="id1063687"></a>
+<a name="id1010307"></a>
           <a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.one_more_take">One
           More Take</a>
         </h6>
@@ -464,7 +464,7 @@
           in the <code class="computeroutput"><span class="identifier">xml</span></code> rule:
         </p>
 <a name="spirit.qi.tutorials.mini_xml___asts_.local_variables"></a><h6>
-<a name="id1064603"></a>
+<a name="id1011222"></a>
           <a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.local_variables">Local
           Variables</a>
         </h6>

Modified: trunk/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___error_handling.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___error_handling.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___error_handling.html 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
@@ -44,7 +44,7 @@
           What's new?
         </p>
 <a name="spirit.qi.tutorials.mini_xml___error_handling.readable_names"></a><h6>
-<a name="id1064908"></a>
+<a name="id1012080"></a>
           <a class="link" href="mini_xml___error_handling.html#spirit.qi.tutorials.mini_xml___error_handling.readable_names">Readable
           Names</a>
         </h6>
@@ -63,7 +63,7 @@
 <span class="identifier">end_tag</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="string">"end_tag"</span><span class="special">);</span>
 </pre>
 <a name="spirit.qi.tutorials.mini_xml___error_handling.on_error"></a><h6>
-<a name="id1065088"></a>
+<a name="id1012260"></a>
           <a class="link" href="mini_xml___error_handling.html#spirit.qi.tutorials.mini_xml___error_handling.on_error">On
           Error</a>
         </h6>
@@ -241,7 +241,7 @@
 </tbody>
 </table></div>
 <a name="spirit.qi.tutorials.mini_xml___error_handling.expectation_points"></a><h6>
-<a name="id1065596"></a>
+<a name="id1012769"></a>
           <a class="link" href="mini_xml___error_handling.html#spirit.qi.tutorials.mini_xml___error_handling.expectation_points">Expectation
           Points</a>
         </h6>

Modified: trunk/libs/spirit/doc/html/spirit/qi/tutorials/quick_start.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/tutorials/quick_start.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/tutorials/quick_start.html 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
@@ -27,7 +27,7 @@
 <a name="spirit.qi.tutorials.quick_start"></a><a class="link" href="quick_start.html" title="Quick Start">Quick Start</a>
 </h4></div></div></div>
 <a name="spirit.qi.tutorials.quick_start.why_would_you_want_to_use_spirit_qi_"></a><h6>
-<a name="id1043260"></a>
+<a name="id990148"></a>
           <a class="link" href="quick_start.html#spirit.qi.tutorials.quick_start.why_would_you_want_to_use_spirit_qi_">Why
           would you want to use Spirit.Qi?</a>
         </h6>

Modified: trunk/libs/spirit/doc/html/spirit/qi/tutorials/roman_numerals.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/tutorials/roman_numerals.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/tutorials/roman_numerals.html 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
@@ -41,7 +41,7 @@
           </li>
 </ul></div>
 <a name="spirit.qi.tutorials.roman_numerals.symbol_table"></a><h6>
-<a name="id1051469"></a>
+<a name="id997416"></a>
           <a class="link" href="roman_numerals.html#spirit.qi.tutorials.roman_numerals.symbol_table">Symbol
           Table</a>
         </h6>
@@ -173,7 +173,7 @@
           They are all parsers.
         </p>
 <a name="spirit.qi.tutorials.roman_numerals.rules"></a><h6>
-<a name="id1052444"></a>
+<a name="id999506"></a>
           <a class="link" href="roman_numerals.html#spirit.qi.tutorials.roman_numerals.rules">Rules</a>
         </h6>
 <p>
@@ -253,7 +253,7 @@
 <pre class="programlisting"><span class="identifier">r</span> <span class="special">=</span> <span class="identifier">double_</span> <span class="special">&gt;&gt;</span> <span class="special">*(</span><span class="char">','</span> <span class="special">&gt;&gt;</span> <span class="identifier">double_</span><span class="special">);</span>
 </pre>
 <a name="spirit.qi.tutorials.roman_numerals.grammars"></a><h6>
-<a name="id1052837"></a>
+<a name="id999898"></a>
           <a class="link" href="roman_numerals.html#spirit.qi.tutorials.roman_numerals.grammars">Grammars</a>
         </h6>
 <p>
@@ -358,7 +358,7 @@
           </li>
 </ul></div>
 <a name="spirit.qi.tutorials.roman_numerals.let_s_parse_"></a><h6>
-<a name="id1055031"></a>
+<a name="id1000625"></a>
           <a class="link" href="roman_numerals.html#spirit.qi.tutorials.roman_numerals.let_s_parse_">Let's Parse!</a>
         </h6>
 <p>

Modified: trunk/libs/spirit/doc/html/spirit/qi/tutorials/semantic_actions.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/tutorials/semantic_actions.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/tutorials/semantic_actions.html 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
@@ -233,7 +233,7 @@
           The examples above can be found here: ../../example/qi/actions.cpp
         </p>
 <a name="spirit.qi.tutorials.semantic_actions.phoenix"></a><h6>
-<a name="id1046918"></a>
+<a name="id992338"></a>
           <a class="link" href="semantic_actions.html#spirit.qi.tutorials.semantic_actions.phoenix">Phoenix</a>
         </h6>
 <p>

Modified: trunk/libs/spirit/doc/html/spirit/qi/tutorials/warming_up.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/tutorials/warming_up.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/tutorials/warming_up.html 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
@@ -31,7 +31,7 @@
           on how to build parsers from the simplest parser, building up as we go.
         </p>
 <a name="spirit.qi.tutorials.warming_up.trivial_example__1_parsing_a_number"></a><h6>
-<a name="id1043305"></a>
+<a name="id990194"></a>
           <a class="link" href="warming_up.html#spirit.qi.tutorials.warming_up.trivial_example__1_parsing_a_number">Trivial
           Example #1 Parsing a number</a>
         </h6>
@@ -46,7 +46,7 @@
           parsers and consistent naming conventions help you keep from going insane!
         </p>
 <a name="spirit.qi.tutorials.warming_up.trivial_example__2_parsing_two_numbers"></a><h6>
-<a name="id1043334"></a>
+<a name="id990222"></a>
           <a class="link" href="warming_up.html#spirit.qi.tutorials.warming_up.trivial_example__2_parsing_two_numbers">Trivial
           Example #2 Parsing two numbers</a>
         </h6>
@@ -79,7 +79,7 @@
           </p></td></tr>
 </table></div>
 <a name="spirit.qi.tutorials.warming_up.trivial_example__3_parsing_one_or_more_numbers"></a><h6>
-<a name="id1043395"></a>
+<a name="id990284"></a>
           <a class="link" href="warming_up.html#spirit.qi.tutorials.warming_up.trivial_example__3_parsing_one_or_more_numbers">Trivial
           Example #3 Parsing one or more numbers</a>
         </h6>
@@ -103,7 +103,7 @@
           in most places.
         </p>
 <a name="spirit.qi.tutorials.warming_up.trivial_example__4_parsing_a_comma_delimited_list_of_numbers"></a><h6>
-<a name="id1043440"></a>
+<a name="id990328"></a>
           <a class="link" href="warming_up.html#spirit.qi.tutorials.warming_up.trivial_example__4_parsing_a_comma_delimited_list_of_numbers">Trivial
           Example #4 Parsing a comma-delimited list of numbers</a>
         </h6>
@@ -126,7 +126,7 @@
           star encloses the complete expression above.
         </p>
 <a name="spirit.qi.tutorials.warming_up.let_s_parse_"></a><h6>
-<a name="id1043570"></a>
+<a name="id990459"></a>
           <a class="link" href="warming_up.html#spirit.qi.tutorials.warming_up.let_s_parse_">Let's Parse!</a>
         </h6>
 <p>

Modified: trunk/libs/spirit/doc/html/spirit/what_s_new.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/what_s_new.html (original)
+++ trunk/libs/spirit/doc/html/spirit/what_s_new.html 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
@@ -27,7 +27,7 @@
 <a name="spirit.what_s_new"></a><a class="link" href="what_s_new.html" title="What's New">What's New</a>
 </h2></div></div></div>
 <a name="spirit.what_s_new.spirit_classic"></a><h4>
-<a name="id1036844"></a>
+<a name="id980634"></a>
       <a class="link" href="what_s_new.html#spirit.what_s_new.spirit_classic">Spirit Classic</a>
     </h4>
 <p>
@@ -66,11 +66,11 @@
       for existing applications.
     </p>
 <a name="spirit.what_s_new.spirit_v2_1"></a><h4>
-<a name="id1037034"></a>
+<a name="id980825"></a>
       <a class="link" href="what_s_new.html#spirit.what_s_new.spirit_v2_1">Spirit V2.1</a>
     </h4>
 <a name="spirit.what_s_new.what_s_changed_in__emphasis_spirit_qi__emphasis__and__emphasis_spirit_karma__emphasis__from_v2_0_to_2_x"></a><h4>
-<a name="id1037048"></a>
+<a name="id980838"></a>
       <a class="link" href="what_s_new.html#spirit.what_s_new.what_s_changed_in__emphasis_spirit_qi__emphasis__and__emphasis_spirit_karma__emphasis__from_v2_0_to_2_x">What's
       changed in <span class="emphasis"><em>Spirit.Qi</em></span> and <span class="emphasis"><em>Spirit.Karma</em></span>
       from V2.0 to 2.x</a>
@@ -159,7 +159,7 @@
       </li>
 </ul></div>
 <a name="spirit.what_s_new.what_s_changed_in__emphasis_spirit_lex__emphasis__from_v2_0_to_2_x"></a><h4>
-<a name="id1037600"></a>
+<a name="id981390"></a>
       <a class="link" href="what_s_new.html#spirit.what_s_new.what_s_changed_in__emphasis_spirit_lex__emphasis__from_v2_0_to_2_x">What's
       changed in <span class="emphasis"><em>Spirit.Lex</em></span> from V2.0 to 2.x</a>
     </h4>

Modified: trunk/libs/spirit/doc/karma.qbk
==============================================================================
--- trunk/libs/spirit/doc/karma.qbk (original)
+++ trunk/libs/spirit/doc/karma.qbk 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
@@ -8,8 +8,10 @@
 
 [section:karma Karma]
 
-[/section Tutorials]
-[/endsect]
+[section Tutorials]
+[include karma/tutorial_intro.qbk]
+[include karma/warming_up.qbk]
+[endsect]
 
 [section Quick Reference]
 [include karma/quick_reference.qbk]

Added: trunk/libs/spirit/doc/karma/tutorial_intro.qbk
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/doc/karma/tutorial_intro.qbk 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
@@ -0,0 +1,50 @@
+[/==============================================================================
+ Copyright (C) 2001-2009 Joel de Guzman
+ Copyright (C) 2001-2009 Hartmut Kaiser
+
+ 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)
+===============================================================================/]
+
+[section Quick Start]
+
+[heading Spirit.Karma - what's that?]
+
+Throughout the description of __karma__ we will try to align ourselves very
+much with the documentation for __qi__. The reasons are manyfold:
+
+* __karma__ is the counterpart to __qi__. Some people say it's the Yin to
+ __qi__'s Yang. __karma__ is to generating byte sequences from internal data
+ structures as __qi__ parsing byte sequences into those (very same) internal
+ data structures.
+* Both libraries have an almost identical structure, very similar semantics,
+ and are both built using identical tools. Both libraries implement a language
+ casting the specifics of their domain (parsing and generating) into a simple
+ interface.
+
+Why should you use a generator library for such a simple thing as output
+generation? Programmers have been using printf, std::stream formatting, or
+boost::format for quite some time. The answer is - yes, for simple output
+formatting tasks those familiar tools might be a quick solution. But experience
+shows: as soon as the formatting requirements are becomming more complex output
+generation is getting more and more challanging in terms of readability,
+maintainabilty, and flexibility of the code.
+
+You might argue that more complex tasks require more complex tools. But this
+turns out to be not the case! The whole SPirit library is designed to be simple
+to use, while being scalable from trivial to very complicated applications.
+
+In terms of development simplicity and ease in deployment, the same is true for
+__karma__ as has been described elsewhere in this docs for __qi__: the entire
+framework consists of only header files, with no libraries to link against or
+build. Just put the spirit distribution in your include path, compile and run.
+Code size? -very tight -essentially comparable to hand written code.
+
+The __karma__ tutorials are build in a walk through style, starting with
+elementary things growing step by step in complexity. And again: keep in mind
+output generation is the exact opposite to parsing. Everything you already
+learnt about parsing using __qi__ is applicable to generating formatted output
+using __karma__. All you have to do is to look at __karma__ as being a
+mirrored imaged of __qi__.
+
+[endsect] [/Quick Start]

Added: trunk/libs/spirit/doc/karma/warming_up.qbk
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/doc/karma/warming_up.qbk 2009-06-25 15:15:50 EDT (Thu, 25 Jun 2009)
@@ -0,0 +1,144 @@
+[/==============================================================================
+ Copyright (C) 2001-2009 Joel de Guzman
+ Copyright (C) 2001-2009 Hartmut Kaiser
+
+ 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)
+===============================================================================/]
+
+[section Warming up]
+
+Learning how to use __karma__ is really simple. We will start from trivial
+examples, ramping up as we go.
+
+
+[heading Trivial Example #1 Generating a number]
+
+Let's create a generator that will output a floating-point number:
+
+ double_
+
+Easy huh? The above code actually instantiates a Spirit floating point
+generator (a built-in generator ). Spirit has many pre-defined generators and
+consistent naming conventions will help you finding your way through the maze.
+Especially important to note is that things related to identical entities (as
+in this case, floating point numbers) are named identically in __karma__ and in
+__qi__. Actually, both libraries are using the very same variable instance to
+refer to a floating point generator or parser: `double_`.
+
+
+[heading Trivial Example #2 Generating two numbers]
+
+Now, let's create a generator that will output a line consisting of two
+floating-point numbers.
+
+ double_ << double_
+
+Here you see the familiar floating-point numeric generator `double_` used twice,
+once for each number. If you are used to see the '>>' operator for concatenating
+two parsers in __qi__ you might wonder, what's that `<<` operator doing in
+there? We decided to distinguish generating and parsing of sequences the same
+way as the std::stream libraries do: we use operator '>>' for input (parsing),
+and operator `<<` for output (generating). Other than that there is no
+significant difference. The above program creates a generator from two simpler
+generators, glueing them together with the sequence operator. The result is a
+generator that is a composition of smaller generators. Whitespace between
+numbers can implicitly be inserted depending on how the generator is invoked
+(see below).
+
+[note When we combine generators, we end up with a "bigger" generator, but
+ it's still a generator. Generators can get bigger and bigger, nesting more
+ and more, but whenever you glue two generators together, you end up with one
+ bigger generator. This is an important concept.
+]
+
+
+[heading Trivial Example #3 Generating one or more numbers]
+
+Now, creating output for two numbers is not too interesting. Let's create a
+generator that will output zero or more floating-point numbers in a row.
+
+ *double_
+
+This is like a regular-expression Kleene Star. We moved the `*` to the front for
+the same reasons we did in __qi__: we must work with the syntax rules of C++.
+But if you know regular expressions (and for sure you remember those syntax
+rules) it will start to look very familiar in a matter of a very short time.
+
+Any expression that evaluates to a generator may be used with the Kleene Star.
+Keep in mind, though, that due to C++ operator precedence rules you may need
+to put the expression in parentheses for complex expressions. As above,
+whitespace can be inserted implicitely in between the generated numbers, if
+needed.
+
+
+[heading Trivial Example #4 Generating a comma-delimited list of numbers]
+
+We follow the lead of __qi__'s warming up section and will create a generator
+that produces a comma-delimited list of numbers.
+
+ double_ << *(char_(',') << double_)
+
+Notice `char_(',')`. It is a literal character generator that simply generates
+the comma `','`. In this case, the Kleene Star is modifying a more complex
+generator, namely, the one generated by the expression:
+
+ (char_(',') << double_)
+
+Note that this is a case where the parentheses are necessary. The Kleene star
+encloses the complete expression above, repeating the whole pattern in the
+generated output zero or more times.
+
+[heading Let's Generate!]
+
+We're done with defining the generator. All what's left is to invoke the
+generator to do its work. For now, we will use the `generate_delimited` function.
+One overload of this function accepts four arguments:
+
+# An output iterator accepting the generated characters
+# The generator expression
+# Another generator called the delimiting generator
+# The data to format and output
+
+While comparing this minimal example with an equivalent parser example we
+notice a significant difference. It is possible (and actually, it makes a lot
+of sense) to use a parser without creating any internal representation of the
+parsed input. Using a parser in this mode checks the provided input against
+the given parser expression allowing to verify, whether the input is parsable.
+For generators this mode doesn't make any sense. What is output generation
+without generating any output? So we always will have to supply the data the
+output should be generated from. In our example we supply a vector of `double`
+numbers as the last parameter to the function `generate_delimited` (see code
+below).
+
+In this example, we wish to delimite the generated numbers by spaces. Another
+generator named `space` is included in Spirit's repertoire of predefined
+generators. It is a very trivial generator that simply produces spaces. It is
+the equivalent to writing `char_(' ')`, or simply `' '`. It has been
+implemented for similarity with the corresponding predefined `space` parser.
+We will use `space` as our delimiter. The delimiter is the one responsible for
+inserting characters in between generator elements such as the `double_` and
+`char_`.
+
+Ok, so now let's generate (For the complete source code of this example please
+refer to [@../../example/karma/num_list1.cpp num_list1.cpp])!
+
+[import ../../example/karma/num_list1.cpp]
+[tutorial_karma_numlist1]
+
+The generate function returns `true` or `false` depending on the result of the
+output generation. As outlined in different places of this documentation, a
+generator may fail for different reasons. One of the possible reasons is an
+error in the underlying output iterator (memory exhausted or disk full, etc.)
+
+Note that we inlined the generator directly in the call to `generate_delimited`.
+Upon calling generate, the expression evaluates into a temporary, unnamed
+generator which is passed into the `generate_delimited()` function, used, and
+then destroyed.
+
+Here, we chose to make the generate function generic by making it a template,
+parameterized by the output iterator type. By doing so, it can put the generated
+data into any STL conforming output iterator.
+
+
+[endsect] [/ Warming up]


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