Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r53099 - in trunk/libs/spirit/doc: . html html/spirit html/spirit/lex html/spirit/lex/abstracts html/spirit/lex/reference html/spirit/lex/tutorials html/spirit/notes html/spirit/qi_and_karma html/spirit/qi_and_karma/abstracts html/spirit/qi_and_karma/reference lex qi_and_karma reference/lex
From: hartmut.kaiser_at_[hidden]
Date: 2009-05-18 17:11:44


Author: hkaiser
Date: 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
New Revision: 53099
URL: http://svn.boost.org/trac/boost/changeset/53099

Log:
Spirit: fixed documentation generation errors
Removed:
   trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/error_handling.html
Text files modified:
   trunk/libs/spirit/doc/html/index.html | 119
   trunk/libs/spirit/doc/html/spirit/acknowledgments.html | 117
   trunk/libs/spirit/doc/html/spirit/faq.html | 15
   trunk/libs/spirit/doc/html/spirit/introduction.html | 260 +-
   trunk/libs/spirit/doc/html/spirit/lex.html | 91
   trunk/libs/spirit/doc/html/spirit/lex/abstracts.html | 189 +-
   trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_attributes.html | 22
   trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_parsing.html | 26
   trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_semantic_actions.html | 27
   trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_states.html | 45
   trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_static_model.html | 111
   trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_tokenizing.html | 46
   trunk/libs/spirit/doc/html/spirit/lex/quick_reference.html | 21
   trunk/libs/spirit/doc/html/spirit/lex/reference.html | 553 +++++++
   trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_class.html | 49
   trunk/libs/spirit/doc/html/spirit/lex/reference/token_class.html | 15
   trunk/libs/spirit/doc/html/spirit/lex/reference/tokendef_class.html | 15
   trunk/libs/spirit/doc/html/spirit/lex/reference/tokenset_class.html | 15
   trunk/libs/spirit/doc/html/spirit/lex/tutorials.html | 59
   trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart1.html | 136
   trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart2.html | 145 -
   trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart3.html | 205 +-
   trunk/libs/spirit/doc/html/spirit/notes.html | 23
   trunk/libs/spirit/doc/html/spirit/notes/porting_from_spirit_1_8_x.html | 19
   trunk/libs/spirit/doc/html/spirit/notes/style_guide.html | 50
   trunk/libs/spirit/doc/html/spirit/notes/techniques.html | 13
   trunk/libs/spirit/doc/html/spirit/qi_and_karma.html | 1265 ++++++++--------
   trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts.html | 21
   trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/attributes.html | 16
   trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/debugging.html | 16
   trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/directives.html | 16
   trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/grammars.html | 13
   trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/mini_xml___error_handling.html | 132 -
   trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/operators.html | 13
   trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/parse_trees_and_asts.html | 22
   trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/parsing.html | 58
   trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/parsing_and_generating.html | 59
   trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/primitives.html | 16
   trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/rules.html | 13
   trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/semantic_actions.html | 19
   trunk/libs/spirit/doc/html/spirit/qi_and_karma/quick_reference.html | 2955 +++++++++++++++++++++++++++++++++++++++
   trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference.html | 60
   trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/action.html | 13
   trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/auxiliary.html | 13
   trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/binary.html | 13
   trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/char.html | 13
   trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/debug.html | 15
   trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/directive.html | 13
   trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/nonterminal.html | 13
   trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/numeric.html | 13
   trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/operators.html | 13
   trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/stream.html | 13
   trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/string.html | 13
   trunk/libs/spirit/doc/html/spirit/rationale.html | 15
   trunk/libs/spirit/doc/html/spirit/references.html | 15
   trunk/libs/spirit/doc/html/spirit/what_s_new.html | 173 ++
   trunk/libs/spirit/doc/lex/tokenizing.qbk | 6
   trunk/libs/spirit/doc/qi_and_karma/error_handling.qbk | 4
   trunk/libs/spirit/doc/qi_and_karma/quick_reference.qbk | 146
   trunk/libs/spirit/doc/reference/lex/lexer.qbk | 10
   trunk/libs/spirit/doc/spirit2.qbk | 2
   trunk/libs/spirit/doc/what_s_new.qbk | 8
   62 files changed, 5501 insertions(+), 2103 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-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -1,10 +1,10 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Spirit 2.0</title>
+<title>Spirit 2.1</title>
 <link rel="stylesheet" href="../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="index.html" title="Spirit 2.1">
 <link rel="next" href="spirit/what_s_new.html" title="What's New">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -18,11 +18,11 @@
 </tr></table>
 <hr>
 <div class="spirit-nav"><a accesskey="n" href="spirit/what_s_new.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a></div>
-<div class="article" lang="en">
+<div class="article" title="Spirit 2.1">
 <div class="titlepage">
 <div>
 <div><h2 class="title">
-<a name="spirit"></a>Spirit 2.0</h2></div>
+<a name="spirit"></a>Spirit 2.1</h2></div>
 <div><div class="authorgroup">
 <div class="author"><h3 class="author">
 <span class="firstname">Joel</span> <span class="surname">de Guzman</span>
@@ -31,10 +31,10 @@
 <span class="firstname">Hartmut</span> <span class="surname">Kaiser</span>
 </h3></div>
 </div></div>
-<div><p class="copyright">Copyright © 2001-2008 Joel de Guzman,
- Hartmut Kaiser</p></div>
-<div><div class="legalnotice">
-<a name="id386666"></a><p>
+<div><p class="copyright">Copyright © 2001-2009 Joel
+ de Guzman, Hartmut Kaiser</p></div>
+<div><div class="legalnotice" title="Legal Notice">
+<a name="id683678"></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>
@@ -166,31 +166,32 @@
 <dt><span class="section">References</span></dt>
 </dl>
 </div>
-<div class="section" lang="en">
+<div class="section" title="Preface">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="spirit.preface"></a>Preface</h2></div></div></div>
+<a name="spirit.preface"></a><a class="link" href="index.html#spirit.preface" title="Preface">Preface</a>
+</h2></div></div></div>
 <div class="blockquote"><blockquote class="blockquote">
 <p>
         </p>
 <p>
- <span class="emphasis"><em>&#8220;<span class="quote">Examples of designs that meet most of the criteria for
+ <span class="emphasis"><em><span class="quote">&#8220;<span class="quote">Examples of designs that meet most of the criteria for
           "goodness" (easy to understand, flexible, efficient) are a recursive-
           descent parser, which is traditional procedural code. Another example is
           the STL, which is a generic library of containers and algorithms depending
- crucially on both traditional procedural code and on parametric polymorphism.</span>&#8221;</em></span>
- <span class="bold"><b>--Bjarne Stroustrup</b></span>
+ crucially on both traditional procedural code and on parametric polymorphism.</span>&#8221;</span></em></span>
+ <span class="bold"><strong>--Bjarne Stroustrup</strong></span>
         </p>
 <p>
       </p>
 </blockquote></div>
-<a name="spirit.preface.history"></a><h3>
-<a name="id388764"></a>
- History
- </h3>
-<a name="spirit.preface._emphasis_80s__emphasis_"></a><h3>
-<a name="id386336"></a>
- 80s
- </h3>
+<a name="spirit.preface.history"></a><h4>
+<a name="id683729"></a>
+ <a class="link" href="index.html#spirit.preface.history">History</a>
+ </h4>
+<a name="spirit.preface._emphasis_80s__emphasis_"></a><h4>
+<a name="id683742"></a>
+ <a class="link" href="index.html#spirit.preface._emphasis_80s__emphasis_"><span class="emphasis"><em>80s</em></span></a>
+ </h4>
 <p>
       In the Mid 80s, Joel wrote his first calculator in Pascal. It has been an unforgettable
       coding experience. He was amazed how a mutually recursive set of functions
@@ -201,10 +202,10 @@
       a grammar using Pascal- like syntax diagrams and then write a corresponding
       recursive-descent parser. This worked very well.
     </p>
-<a name="spirit.preface._emphasis_90s__emphasis_"></a><h3>
-<a name="id386375"></a>
- 90s
- </h3>
+<a name="spirit.preface._emphasis_90s__emphasis_"></a><h4>
+<a name="id683760"></a>
+ <a class="link" href="index.html#spirit.preface._emphasis_90s__emphasis_"><span class="emphasis"><em>90s</em></span></a>
+ </h4>
 <p>
       The arrival of the Internet and the World Wide Web magnified this thousand-fold.
       At one point Joel had to write an HTML parser for a Web browser project. He
@@ -245,11 +246,11 @@
       objects and linking semantic actions on the fly. A very early text can be found
       here: pre-Spirit.
     </p>
-<a name="spirit.preface._emphasis_2001_to_2006__emphasis_"></a><h3>
-<a name="id388110"></a>
- <a href="index.html#spirit.preface._emphasis_2001_to_2006__emphasis_"><span class="emphasis"><em>2001
+<a name="spirit.preface._emphasis_2001_to_2006__emphasis_"></a><h4>
+<a name="id683802"></a>
+ <a class="link" href="index.html#spirit.preface._emphasis_2001_to_2006__emphasis_"><span class="emphasis"><em>2001
       to 2006</em></span></a>
- </h3>
+ </h4>
 <p>
       Version 1.0 to 1.8 was a complete rewrite of the original Spirit parser using
       expression templates and static polymorphism, inspired by the works of Todd
@@ -275,13 +276,13 @@
       of domains. The Boost Libraries have become widely known as an industry standard
       for design and implementation quality, robustness, and reusability.
     </p>
-<a name="spirit.preface._emphasis_2007__emphasis_"></a><h3>
-<a name="id387263"></a>
- 2007
- </h3>
+<a name="spirit.preface._emphasis_2007__emphasis_"></a><h4>
+<a name="id683837"></a>
+ <a class="link" href="index.html#spirit.preface._emphasis_2007__emphasis_"><span class="emphasis"><em>2007</em></span></a>
+ </h4>
 <p>
       Over the years, especially after Spirit was accepted into Boost, Spirit has
- served its purpose quite admirably. The focus of what we'll now call <span class="bold"><b><span class="emphasis"><em>Classic-Spirit</em></span></b></span> (versions prior
+ served its purpose quite admirably. The focus of what we'll now call <span class="bold"><strong><span class="emphasis"><em>Classic-Spirit</em></span></strong></span> (versions prior
       to 2.0) was on transduction parsing where the input string is merely translated
       to an output string. A lot of parsers are of the transduction type. When the
       time came to add attributes to the parser library, it was done rather in an
@@ -303,12 +304,12 @@
       library). Phoenix also
       had to be beefed up to support Spirit V2. The result is Phoenix2.
       Last but not least, Spirit V2 uses an <a href="http://ubiety.uwaterloo.ca/~tveldhui/papers/Expression-Templates/exprtmpl.html" target="_top">Expression
- Templates</a> library called -Boost.Proto-.
+ Templates</a> library called Boost.Proto.
     </p>
-<a name="spirit.preface.new_ideas__spirit_v2"></a><h3>
-<a name="id387382"></a>
- New Ideas: Spirit V2
- </h3>
+<a name="spirit.preface.new_ideas__spirit_v2"></a><h4>
+<a name="id683909"></a>
+ <a class="link" href="index.html#spirit.preface.new_ideas__spirit_v2">New Ideas: Spirit V2</a>
+ </h4>
 <p>
       Just before the development of Spirit V2 began, Hartmut came across the StringTemplate library which is
       a part of the ANTLR parser framework. It is a Java template engine (with ports
@@ -343,27 +344,27 @@
       parser grammars. Again, Spirit's modular structure allowed us to reuse the
       same underlying component library as for the parser and generator libraries.
     </p>
-<a name="spirit.preface.how_to_use_this_manual"></a><h3>
-<a name="id387485"></a>
- How to use this manual
- </h3>
+<a name="spirit.preface.how_to_use_this_manual"></a><h4>
+<a name="id683959"></a>
+ <a class="link" href="index.html#spirit.preface.how_to_use_this_manual">How to use this manual</a>
+ </h4>
 <p>
- Each major section (there are two: <a href="spirit/qi_and_karma.html" title="Qi and Karma">Qi and
- Karma</a>, and Lex) is roughly divided
+ Each major section (there are two: <a class="link" href="spirit/qi_and_karma.html" title="Qi and Karma">Qi and
+ Karma</a>, and <a class="link" href="spirit/lex.html" title="Spirit.Lex">Lex</a>) is roughly divided
       into 3 parts:
     </p>
-<div class="orderedlist"><ol type="1">
-<li>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem">
         Tutorials: A step by step guide with heavily annotated code. These are meant
         to get the user acquainted with the library as quickly as possible. The objective
         is to build the confidence of the user in using the library using abundant
         examples and detailed instructions. Examples speak volumes.
       </li>
-<li>
+<li class="listitem">
         Abstracts: A high level summary of key topics. The objective is to give the
         user a high level view of the library, the key concepts, background and theories.
       </li>
-<li>
+<li class="listitem">
         Reference: Detailed formal technical reference. We start with a quick reference
         -- an easy to use table that maps into the reference proper. The reference
         proper starts with C++ Concepts
@@ -375,8 +376,8 @@
       icons precede some text to indicate:
     </p>
 <div class="table">
-<a name="id387571"></a><p class="title"><b>Table 1. Icons</b></p>
-<table class="table" summary="Icons">
+<a name="id684007"></a><p class="title"><b>Table 1. Icons</b></p>
+<div class="table-contents"><table class="table" summary="Icons">
 <colgroup>
 <col>
 <col>
@@ -488,17 +489,17 @@
           </td>
 </tr>
 </tbody>
-</table>
+</table></div>
 </div>
-<p>
+<br class="table-break"><p>
       This documentation is automatically generated by Boost QuickBook documentation
       tool. QuickBook can be found in the <a href="http://www.boost.org/tools/index.html" target="_top">Boost
       Tools</a>.
     </p>
-<a name="spirit.preface.support"></a><h3>
-<a name="id386631"></a>
- Support
- </h3>
+<a name="spirit.preface.support"></a><h4>
+<a name="id684248"></a>
+ <a class="link" href="index.html#spirit.preface.support">Support</a>
+ </h4>
 <p>
       Please direct all questions to Spirit's mailing list. You can subscribe to
       the <a href="http://www.nabble.com/The-Spirit-Parser-Library-f3430.html" target="_top">Spirit
@@ -512,7 +513,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: December 23, 2008 at 09:37:55 GMT</small></p></td>
+<td align="left"><p><small>Last revised: May 18, 2009 at 21:08:21 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>

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-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -3,9 +3,9 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Acknowledgments</title>
 <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../index.html" title="Spirit 2.0">
-<link rel="up" href="../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../index.html" title="Spirit 2.1">
+<link rel="up" href="../index.html" title="Spirit 2.1">
 <link rel="prev" href="rationale.html" title="Rationale">
 <link rel="next" href="references.html" title="References">
 </head>
@@ -22,9 +22,10 @@
 <div class="spirit-nav">
 <a accesskey="p" href="rationale.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="references.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section" title="Acknowledgments">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="spirit.acknowledgments"></a>Acknowledgments</h2></div></div></div>
+<a name="spirit.acknowledgments"></a><a class="link" href="acknowledgments.html" title="Acknowledgments">Acknowledgments</a>
+</h2></div></div></div>
 <p>
       This version of Spirit is a complete rewrite of the <span class="emphasis"><em>classic</em></span>
       Spirit many people have been contributing to (see below). But there are a couple
@@ -32,52 +33,52 @@
       would like to express our special acknowledgement to:
     </p>
 <p>
- <span class="bold"><b>Eric Niebler</b></span> for writing Boost.Proto, without
+ <span class="bold"><strong>Eric Niebler</strong></span> for writing Boost.Proto, without
       which this rewrite wouldn't have been possible, and helping with examples,
       advices, and suggestions on how to use Boost.Proto in the best possible way.
     </p>
 <p>
- <span class="bold"><b>Ben Hanson</b></span> for providing us with an early
+ <span class="bold"><strong>Ben Hanson</strong></span> for providing us with an early
       version of his Lexertl library, which is proposed to be included into Boost
       (as Boost.Lexer), but at the time of this writing the Boost review for this
       library is still pending.
     </p>
 <p>
- <span class="bold"><b>FIXME</b></span>: Add more people
+ <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><h3>
-<a name="id506650"></a>
- <a href="acknowledgments.html#spirit.acknowledgments.acknowledgements_from_the_spirit_v1__emphasis_classic__emphasis__documentation">Acknowledgements
+<a name="spirit.acknowledgments.acknowledgements_from_the_spirit_v1__emphasis_classic__emphasis__documentation"></a><h4>
+<a name="id750416"></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>
- </h3>
+ </h4>
 <p>
       Special thanks for working on Spirit <span class="emphasis"><em>classic</em></span> to:
     </p>
 <p>
- <span class="bold"><b>Dan Nuffer</b></span> for his work on lexers, parse trees,
+ <span class="bold"><strong>Dan Nuffer</strong></span> for his work on lexers, parse trees,
       ASTs, XML parsers, the multi-pass iterator as well as administering Spirit's
       site, editing, maintaining the CVS and doing the releases plus a zillion of
       other chores that were almost taken for granted.
     </p>
 <p>
- <span class="bold"><b>Hartmut Kaiser</b></span> for his work on the C parser,
+ <span class="bold"><strong>Hartmut Kaiser</strong></span> for his work on the C parser,
       the work on the C/C++ preprocessor, utility parsers, the original port to Intel
       5.0, various work on Phoenix, porting to v1.5, the meta-parsers, the grouping-parsers,
       extensive testing and painstaking attention to details.
     </p>
 <p>
- <span class="bold"><b>Martin Wille</b></span> who improved grammar multi thread
+ <span class="bold"><strong>Martin Wille</strong></span> who improved grammar multi thread
       safety, contributed the eol_p parser, the dynamic parsers, documentation and
       for taking an active role in almost every aspect from brainstorming and design
       to coding. And, as always, helps keep the regression tests for g++ on Linux
       as green as ever :-).
     </p>
 <p>
- <span class="bold"><b>Martijn W. Van Der Lee</b></span> our Web site administrator
+ <span class="bold"><strong>Martijn W. Van Der Lee</strong></span> our Web site administrator
       and for contributing the RFC821 parser.
     </p>
 <p>
- <span class="bold"><b>Giovanni Bajo</b></span> for last minute tweaks of Spirit
+ <span class="bold"><strong>Giovanni Bajo</strong></span> for last minute tweaks of Spirit
       1.8.0 for CodeWarrior 8.3. Actually, I'm ashamed Giovanni was not in this list
       already. He's done a lot since Spirit 1.5, the first Boost.Spirit release.
       He's instrumental in the porting of the Spirit iterators stuff to the new Boost
@@ -85,107 +86,107 @@
       tests here and there.
     </p>
 <p>
- <span class="bold"><b>Juan Carlos Arevalo-Baeza (JCAB)*</b></span> for his
+ <span class="bold"><strong>Juan Carlos Arevalo-Baeza (JCAB)*</strong></span> for his
       work on the C++ parser, the position iterator, ports to v1.5 and keeping the
       mailing list discussions alive and kicking.
     </p>
 <p>
- <span class="bold"><b>Vaclav Vesely</b></span>, lots of stuff, the no_actions
+ <span class="bold"><strong>Vaclav Vesely</strong></span>, lots of stuff, the no_actions
       directive, various patches fixes, the distinct parsers, the lazy parser, some
       phoenix tweaks and add-ons (e.g. new_). Also, *Stefan Slapeta] and wife for
       editing Vaclav's distinct parser doc.
     </p>
 <p>
- <span class="bold"><b>Raghavendra Satish</b></span> for doing the original
+ <span class="bold"><strong>Raghavendra Satish</strong></span> for doing the original
       v1.3 port to VC++ and his work on Phoenix.
     </p>
 <p>
- <span class="bold"><b>Noah Stein</b></span> for following up and helping Ragav
+ <span class="bold"><strong>Noah Stein</strong></span> for following up and helping Ragav
       on the VC++ ports.
     </p>
 <p>
- <span class="bold"><b>Hakki Dogusan</b></span>, for his original v1.0 Pascal
+ <span class="bold"><strong>Hakki Dogusan</strong></span>, for his original v1.0 Pascal
       parser.
     </p>
 <p>
- <span class="bold"><b>John (EBo) David</b></span> for his work on the VM and
+ <span class="bold"><strong>John (EBo) David</strong></span> for his work on the VM and
       watching over my shoulder as I code giving the impression of distance eXtreme
       programming.
     </p>
 <p>
- <span class="bold"><b>Chris Uzdavinis</b></span> for feeding in comments and
+ <span class="bold"><strong>Chris Uzdavinis</strong></span> for feeding in comments and
       valuable suggestions as well as editing the documentation.
     </p>
 <p>
- <span class="bold"><b>Carsten Stoll</b></span>, for his work on dynamic parsers.
+ <span class="bold"><strong>Carsten Stoll</strong></span>, for his work on dynamic parsers.
     </p>
 <p>
- <span class="bold"><b>Andy Elvey</b></span> and his conifer parser.
+ <span class="bold"><strong>Andy Elvey</strong></span> and his conifer parser.
     </p>
 <p>
- <span class="bold"><b>Bruce Florman</b></span>, who did the original v1.0 port
+ <span class="bold"><strong>Bruce Florman</strong></span>, who did the original v1.0 port
       to VC++.
     </p>
 <p>
- <span class="bold"><b>Jeff Westfahl</b></span> for porting the loop parsers
+ <span class="bold"><strong>Jeff Westfahl</strong></span> for porting the loop parsers
       to v1.5 and contributing the file iterator.
     </p>
 <p>
- <span class="bold"><b>Peter Simons</b></span> for the RFC date parser example
+ <span class="bold"><strong>Peter Simons</strong></span> for the RFC date parser example
       and tutorial plus helping out with some nitty gritty details.
     </p>
 <p>
- <span class="bold"><b>Markus Schöpflin</b></span> for suggesting the end_p parser
+ <span class="bold"><strong>Markus Schöpflin</strong></span> for suggesting the end_p parser
       and lots of other nifty things and his active presence in the mailing list.
     </p>
 <p>
- <span class="bold"><b>Doug Gregor</b></span> for mentoring and his ability
+ <span class="bold"><strong>Doug Gregor</strong></span> for mentoring and his ability
       to see things that others don't.
     </p>
 <p>
- <span class="bold"><b>David Abrahams</b></span> for giving Joel a job that
+ <span class="bold"><strong>David Abrahams</strong></span> for giving Joel a job that
       allows him to still work on Spirit, plus countless advice and help on C++ and
       specifically template metaprogramming.
     </p>
 <p>
- <span class="bold"><b>Aleksey Gurtovoy</b></span> for his MPL library from
+ <span class="bold"><strong>Aleksey Gurtovoy</strong></span> for his MPL library from
       which we stole many metaprogramming tricks especially for less conforming compilers
       such as Borland and VC6/7.
     </p>
 <p>
- <span class="bold"><b>Gustavo Guerra</b></span> for his last minute review
+ <span class="bold"><strong>Gustavo Guerra</strong></span> for his last minute review
       of Spirit and constant feedback, plus patches here and there (e.g. proposing
       the new dot behavior of the real numerics parsers).
     </p>
 <p>
- <span class="bold"><b>Nicola Musatti</b></span>, <span class="bold"><b>Paul
- Snively</b></span>, <span class="bold"><b>Alisdair Meredith</b></span> and
- <span class="bold"><b>Hugo Duncan</b></span> for testing and sending in various
+ <span class="bold"><strong>Nicola Musatti</strong></span>, <span class="bold"><strong>Paul
+ Snively</strong></span>, <span class="bold"><strong>Alisdair Meredith</strong></span> and
+ <span class="bold"><strong>Hugo Duncan</strong></span> for testing and sending in various
       patches.
     </p>
 <p>
- <span class="bold"><b>Steve Rowe</b></span> for his splendid work on the TSTs
+ <span class="bold"><strong>Steve Rowe</strong></span> for his splendid work on the TSTs
       that will soon be taken into Spirit.
     </p>
 <p>
- <span class="bold"><b>Jonathan de Halleux</b></span> for his work on actors.
+ <span class="bold"><strong>Jonathan de Halleux</strong></span> for his work on actors.
     </p>
 <p>
- <span class="bold"><b>Angus Leeming</b></span> for last minute editing work
+ <span class="bold"><strong>Angus Leeming</strong></span> for last minute editing work
       on the 1.8.0 release documentation, his work on Phoenix and his active presence
       in the Spirit mailing list.
     </p>
 <p>
- <span class="bold"><b>Joao Abecasis</b></span> for his active presence in the
+ <span class="bold"><strong>Joao Abecasis</strong></span> for his active presence in the
       Spirit mailing list, providing user support, participating in the discussions
       and so on.
     </p>
 <p>
- <span class="bold"><b>Guillaume Melquiond</b></span> for a last minute patch
+ <span class="bold"><strong>Guillaume Melquiond</strong></span> for a last minute patch
       to multi_pass for 1.8.1.
     </p>
 <p>
- <span class="bold"><b>Peder Holt</b></span> for his porting work on Phoenix,
+ <span class="bold"><strong>Peder Holt</strong></span> for his porting work on Phoenix,
       Fusion and Spirit to VC6.
     </p>
 <p>
@@ -202,19 +203,19 @@
       in the review:
     </p>
 <p>
- <span class="bold"><b>John Maddock</b></span>, our review manager, <span class="bold"><b>Aleksey Gurtovoy</b></span>, <span class="bold"><b>Andre Hentz</b></span>,
- <span class="bold"><b>Beman Dawes</b></span>, <span class="bold"><b>Carl Daniel</b></span>,
- <span class="bold"><b>Christopher Currie</b></span>, <span class="bold"><b>Dan
- Gohman</b></span>, <span class="bold"><b>Dan Nuffer</b></span>, <span class="bold"><b>Daryle
- Walker</b></span>, <span class="bold"><b>David Abrahams</b></span>, <span class="bold"><b>David B. Held</b></span>, <span class="bold"><b>Dirk Gerrits</b></span>,
- <span class="bold"><b>Douglas Gregor</b></span>, <span class="bold"><b>Hartmut
- Kaiser</b></span>, <span class="bold"><b>Iain K.Hanson</b></span>, <span class="bold"><b>Juan Carlos Arevalo-Baeza</b></span>, <span class="bold"><b>Larry
- Evans</b></span>, <span class="bold"><b>Martin Wille</b></span>, <span class="bold"><b>Mattias Flodin</b></span>, <span class="bold"><b>Noah Stein</b></span>,
- <span class="bold"><b>Nuno Lucas</b></span>, <span class="bold"><b>Peter Dimov</b></span>,
- <span class="bold"><b>Peter Simons</b></span>, <span class="bold"><b>Petr Kocmid</b></span>,
- <span class="bold"><b>Ross Smith</b></span>, <span class="bold"><b>Scott Kirkwood</b></span>,
- <span class="bold"><b>Steve Cleary</b></span>, <span class="bold"><b>Thorsten
- Ottosen</b></span>, <span class="bold"><b>Tom Wenisch</b></span>, <span class="bold"><b>Vladimir Prus</b></span>
+ <span class="bold"><strong>John Maddock</strong></span>, our review manager, <span class="bold"><strong>Aleksey Gurtovoy</strong></span>, <span class="bold"><strong>Andre Hentz</strong></span>,
+ <span class="bold"><strong>Beman Dawes</strong></span>, <span class="bold"><strong>Carl Daniel</strong></span>,
+ <span class="bold"><strong>Christopher Currie</strong></span>, <span class="bold"><strong>Dan
+ Gohman</strong></span>, <span class="bold"><strong>Dan Nuffer</strong></span>, <span class="bold"><strong>Daryle
+ Walker</strong></span>, <span class="bold"><strong>David Abrahams</strong></span>, <span class="bold"><strong>David B. Held</strong></span>, <span class="bold"><strong>Dirk Gerrits</strong></span>,
+ <span class="bold"><strong>Douglas Gregor</strong></span>, <span class="bold"><strong>Hartmut
+ Kaiser</strong></span>, <span class="bold"><strong>Iain K.Hanson</strong></span>, <span class="bold"><strong>Juan Carlos Arevalo-Baeza</strong></span>, <span class="bold"><strong>Larry
+ Evans</strong></span>, <span class="bold"><strong>Martin Wille</strong></span>, <span class="bold"><strong>Mattias Flodin</strong></span>, <span class="bold"><strong>Noah Stein</strong></span>,
+ <span class="bold"><strong>Nuno Lucas</strong></span>, <span class="bold"><strong>Peter Dimov</strong></span>,
+ <span class="bold"><strong>Peter Simons</strong></span>, <span class="bold"><strong>Petr Kocmid</strong></span>,
+ <span class="bold"><strong>Ross Smith</strong></span>, <span class="bold"><strong>Scott Kirkwood</strong></span>,
+ <span class="bold"><strong>Steve Cleary</strong></span>, <span class="bold"><strong>Thorsten
+ Ottosen</strong></span>, <span class="bold"><strong>Tom Wenisch</strong></span>, <span class="bold"><strong>Vladimir Prus</strong></span>
     </p>
 <p>
       Finally thanks to SourceForge for hosting the Spirit project and Boost: a C++
@@ -224,8 +225,8 @@
 </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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

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-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -3,9 +3,9 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>FAQ</title>
 <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../index.html" title="Spirit 2.0">
-<link rel="up" href="../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../index.html" title="Spirit 2.1">
+<link rel="up" href="../index.html" title="Spirit 2.1">
 <link rel="prev" href="lex/reference/tokenset_class.html" title="TokenSet Class">
 <link rel="next" href="notes.html" title="Notes">
 </head>
@@ -22,12 +22,13 @@
 <div class="spirit-nav">
 <a accesskey="p" href="lex/reference/tokenset_class.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="notes.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="spirit.faq"></a>FAQ</h2></div></div></div></div>
+<div class="section" title="FAQ"><div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="spirit.faq"></a><a class="link" href="faq.html" title="FAQ">FAQ</a>
+</h2></div></div></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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

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-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -3,9 +3,9 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Introduction</title>
 <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../index.html" title="Spirit 2.0">
-<link rel="up" href="../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../index.html" title="Spirit 2.1">
+<link rel="up" href="../index.html" title="Spirit 2.1">
 <link rel="prev" href="what_s_new.html" title="What's New">
 <link rel="next" href="qi_and_karma.html" title="Qi and Karma">
 </head>
@@ -22,100 +22,93 @@
 <div class="spirit-nav">
 <a accesskey="p" href="what_s_new.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="qi_and_karma.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section" title="Introduction">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="spirit.introduction"></a>Introduction</h2></div></div></div>
+<a name="spirit.introduction"></a><a class="link" href="introduction.html" title="Introduction">Introduction</a>
+</h2></div></div></div>
 <p>
- Boost Spirit is an object-oriented, recursive-descent parser and output generation
- library for C++. It allows you to write grammars and format descriptions using
- a format similar to EBNF (Extended Backus Naur Form, see [4]) directly in C++.
- These inline grammar specifications can mix freely with other C++ code and,
- thanks to the generative power of C++ templates, are immediately executable.
- In retrospect, conventional compiler-compilers or parser-generators have to
- perform an additional translation step from the source EBNF code to C or C++
- code.
- </p>
-<p>
- The syntax and semantics of the libraries' API directly form domain-specific
- embedded languages (DSEL). In fact, Spirit exposes 3 different DSELs to the
- user:
- </p>
-<div class="itemizedlist"><ul type="disc">
-<li>
- one for creating parser grammars,
- </li>
-<li>
- one for the specification of the required tokens to be used for parsing,
- </li>
-<li>
- and one for the description of the required output formats.
- </li>
+Boost Spirit is an object-oriented, recursive-descent parser and output generation
+library for C++. It allows you to write grammars and format descriptions using a
+format similar to EBNF (Extended Backus Naur Form, see [4]) directly in
+C++. These inline grammar specifications can mix freely with other C++ code and,
+thanks to the generative power of C++ templates, are immediately executable.
+In retrospect, conventional compiler-compilers or parser-generators have to
+perform an additional translation step from the source EBNF code to C or C++
+code.</p>
+<p>
+The syntax and semantics of the libraries' API directly form domain-specific
+embedded languages (DSEL). In fact, Spirit exposes 3 different DSELs to the
+user:</p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+one for creating parser grammars,
+</li>
+<li class="listitem">
+one for the specification of the required tokens to be used for parsing,
+</li>
+<li class="listitem">
+and one for the description of the required output formats.
+</li>
 </ul></div>
 <p>
- Since the target input grammars and output formats are written entirely in
- C++ we do not need any separate tools to compile, preprocess or integrate those
- into the build process. Spirit
- allows seamless integration of the parsing and output generation process with
- other C++ code. Often this allows for simpler and more efficient code.
- </p>
-<p>
- Both the created parsers and generators are fully attributed which allows you
- to easily build and handle hierarchical data structures in memory. These data
- structures resemble the structure of the input data and can directly be used
- to generate arbitrarily-formatted output.
- </p>
-<p>
- The figure below depicts the
- overall structure of the Boost Spirit library. The library consists of 4 major
- parts:
- </p>
-<div class="itemizedlist"><ul type="disc">
-<li>
-<span class="emphasis"><em>Spirit.Classic</em></span>: This is the almost-unchanged code base
- taken from the former Boost Spirit V1.8 distribution. It has been moved into
- the namespace boost::spirit::classic. A special compatibility layer has been
- added to ensure complete compatibility with existing code using Spirit V1.8.
- </li>
-<li>
-<span class="emphasis"><em>Spirit.Qi</em></span>: This is the parser library allowing you to
- build recursive descent parsers. The exposed domain-specific language can
- be used to describe the grammars to implement, and the rules for storing
- the parsed information.
- </li>
-<li>
-<span class="emphasis"><em>Spirit.Lex</em></span>: This is the library usable to create tokenizers
- (lexers). The domain-specific language exposed by <span class="emphasis"><em>Spirit.Lex</em></span>
+Since the target input grammars and output formats are written entirely in C++
+we do not need any separate tools to compile, preprocess or integrate those
+into the build process. Spirit allows seamless integration of the parsing
+and output generation process with other C++ code. Often this allows for
+simpler and more efficient code.</p>
+<p>
+Both the created parsers and generators are fully attributed which allows you to
+easily build and handle hierarchical data structures in memory. These data
+structures resemble the structure of the input data and can directly be used to
+generate arbitrarily-formatted output.</p>
+<p>
+The <a class="link" href="introduction.html#spirit.spiritstructure" title="Figure 1. The overall structure of the Boost Spirit library">figure</a> below depicts the overall structure
+of the Boost Spirit library. The library consists of 4 major parts:</p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+<span class="emphasis"><em>Spirit.Classic</em></span>: This is the almost-unchanged code base taken from the
+ former Boost Spirit V1.8 distribution. It has been moved into the namespace
+ boost::spirit::classic. A special compatibility layer has been added to
+ ensure complete compatibility with existing code using Spirit V1.8.
+</li>
+<li class="listitem">
+<span class="emphasis"><em>Spirit.Qi</em></span>: This is the parser library allowing you to build recursive
+ descent parsers. The exposed domain-specific language can be used to describe
+ the grammars to implement, and the rules for storing the parsed information.
+</li>
+<li class="listitem">
+<span class="emphasis"><em>Spirit.Lex</em></span>: This is the library usable to create tokenizers (lexers). The
+ domain-specific language exposed by <span class="emphasis"><em>Spirit.Lex</em></span>
+</li>
+<li class="listitem">
+<span class="emphasis"><em>Spirit.Karma</em></span>: This is the generator library allowing you to create code for
+ recursive descent, data type-driven output formatting. The exposed
+ domain-specific language is almost equivalent to the parser description language
+ used in <span class="emphasis"><em>Spirit.Qi</em></span>, except that it is used to describe the required output
+ format to generate from a given data structure.
 </li>
-<li>
-<span class="emphasis"><em>Spirit.Karma</em></span>: This is the generator library allowing
- you to create code for recursive descent, data type-driven output formatting.
- The exposed domain-specific language is almost equivalent to the parser description
- language used in <span class="emphasis"><em>Spirit.Qi</em></span>, except that it is used to
- describe the required output format to generate from a given data structure.
- </li>
 </ul></div>
 <p>
- </p>
+ </p>
 <div class="figure">
-<a name="spirit.spiritstructure"></a><p class="title"><b>Figure 1. The overall structure of the Boost Spirit library</b></p>
-<span class="inlinemediaobject"><img src=".././images/spiritstructure.png" alt="The
- overall structure of the Boost Spirit library"></span>
+<a name="spirit.spiritstructure"></a><p class="title"><b>Figure 1. The overall structure
+ of the Boost Spirit library</b></p>
+<div class="figure-contents"><span class="inlinemediaobject"><img src=".././images/spiritstructure.png" alt="The overall structure of the Boost Spirit library"></span></div>
 </div>
-<p>
+<p><br class="figure-break">
     </p>
 <p>
       The separate sublibraries <span class="emphasis"><em>Spirit.Qi</em></span>, <span class="emphasis"><em>Spirit.Karma</em></span>
       and <span class="emphasis"><em>Spirit.Lex</em></span> are well integrated with any of the other
       parts. Because of their similar structure and identical underlying technology
- these are usable either separately or together at the same time. For instance
+ they are usable either separately or together at the same time. For instance
       is it possible to directly feed the hierarchical data structures generated
       by <span class="emphasis"><em>Spirit.Qi</em></span> into output generators created using <span class="emphasis"><em>Spirit.Karma</em></span>;
       or to use the token sequence generated by <span class="emphasis"><em>Spirit.Lex</em></span> as
       the input for a parser generated by <span class="emphasis"><em>Spirit.Qi</em></span>.
     </p>
 <p>
- The <a href="introduction.html#spirit.spiritkarmaflow" title="Figure 2. The place of Spirit.Qi and Spirit.Karma
- in a data transformation flow of a typical application">figure</a> below shows the typical
+ The <a class="link" href="introduction.html#spirit.spiritkarmaflow" title="Figure 2. The place of Spirit.Qi and Spirit.Karma in a data transformation flow of a typical application">figure</a> below shows the typical
       data flow of some input being converted to some internal representation. After
       some (optional) transformation these data are converted back into some different,
       external representation. The picture highlights Spirit's place in this data
@@ -126,17 +119,15 @@
 <div class="figure">
 <a name="spirit.spiritkarmaflow"></a><p class="title"><b>Figure 2. The place of <span class="emphasis"><em>Spirit.Qi</em></span> and <span class="emphasis"><em>Spirit.Karma</em></span>
       in a data transformation flow of a typical application</b></p>
-<span class="inlinemediaobject"><img src=".././images/spiritkarmaflow.png" alt="The
- place of Spirit.Qi and Spirit.Karma
- in a data transformation flow of a typical application"></span>
+<div class="figure-contents"><span class="inlinemediaobject"><img src=".././images/spiritkarmaflow.png" alt="The place of Spirit.Qi and Spirit.Karma in a data transformation flow of a typical application"></span></div>
 </div>
-<p>
+<p><br class="figure-break">
     </p>
-<a name="spirit.introduction.a_quick_overview_of_parsing_with__emphasis_spirit_qi__emphasis_"></a><h3>
-<a name="id457695"></a>
- <a href="introduction.html#spirit.introduction.a_quick_overview_of_parsing_with__emphasis_spirit_qi__emphasis_">A
+<a name="spirit.introduction.a_quick_overview_of_parsing_with__emphasis_spirit_qi__emphasis_"></a><h4>
+<a name="id685074"></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>
- </h3>
+ </h4>
 <p>
       <span class="emphasis"><em>Spirit.Qi</em></span> is Spirit's sublibrary dealing with generating
       parsers based on a given target grammar (essentially a format description of
@@ -161,14 +152,14 @@
 </pre>
 <p>
       Through the magic of expression templates, this is perfectly valid and executable
- C++ code. The production rule <tt class="computeroutput"><span class="identifier">expression</span></tt>
- is, in fact, an object that has a member function <tt class="computeroutput"><span class="identifier">parse</span></tt>
+ C++ code. The production rule <code class="computeroutput"><span class="identifier">expression</span></code>
+ is, in fact, an object that has a member function <code class="computeroutput"><span class="identifier">parse</span></code>
       that does the work given a source code written in the grammar that we have
       just declared. Yes, it's a calculator. We shall simplify for now by skipping
- the type declarations and the definition of the rule <tt class="computeroutput"><span class="identifier">integer</span></tt>
- invoked by <tt class="computeroutput"><span class="identifier">factor</span></tt>. Now, the
- production rule <tt class="computeroutput"><span class="identifier">expression</span></tt>
- in our grammar specification, traditionally called the <tt class="computeroutput"><span class="identifier">start</span></tt>
+ the type declarations and the definition of the rule <code class="computeroutput"><span class="identifier">integer</span></code>
+ invoked by <code class="computeroutput"><span class="identifier">factor</span></code>. Now, the
+ production rule <code class="computeroutput"><span class="identifier">expression</span></code>
+ in our grammar specification, traditionally called the <code class="computeroutput"><span class="identifier">start</span></code>
       symbol, can recognize inputs such as:
     </p>
 <pre class="programlisting"><span class="number">12345</span>
@@ -195,19 +186,19 @@
 <p>
       as seen in math syntax, for example, to mean multiplication or, in our case,
       as seen in EBNF syntax to mean sequencing (b should follow a). Spirit uses
- the shift <tt class="computeroutput"><span class="special">&gt;&gt;</span></tt> operator instead
- for this purpose. We take the <tt class="computeroutput"><span class="special">&gt;&gt;</span></tt>
+ the shift <code class="computeroutput"><span class="special">&gt;&gt;</span></code> operator instead
+ for this purpose. We take the <code class="computeroutput"><span class="special">&gt;&gt;</span></code>
       operator, with arrows pointing to the right, to mean "is followed by".
       Thus we write:
     </p>
 <pre class="programlisting"><span class="identifier">a</span> <span class="special">&gt;&gt;</span> <span class="identifier">b</span>
 </pre>
 <p>
- The alternative operator <tt class="computeroutput"><span class="special">|</span></tt> and
- the parentheses <tt class="computeroutput"><span class="special">()</span></tt> remain as is.
- The assignment operator <tt class="computeroutput"><span class="special">=</span></tt> is used
- in place of EBNF's <tt class="computeroutput"><span class="special">::=</span></tt>. Last but
- not least, the Kleene star <tt class="computeroutput"><span class="special">*</span></tt> which
+ The alternative operator <code class="computeroutput"><span class="special">|</span></code> and
+ the parentheses <code class="computeroutput"><span class="special">()</span></code> remain as is.
+ The assignment operator <code class="computeroutput"><span class="special">=</span></code> is used
+ in place of EBNF's <code class="computeroutput"><span class="special">::=</span></code>. Last but
+ not least, the Kleene star <code class="computeroutput"><span class="special">*</span></code> which
       used to be a postfix operator in EBNF becomes a prefix. Instead of:
     </p>
 <pre class="programlisting"><span class="identifier">a</span><span class="special">*</span> <span class="comment">//... in EBNF syntax,
@@ -218,15 +209,15 @@
 <pre class="programlisting"><span class="special">*</span><span class="identifier">a</span> <span class="comment">//... in Spirit.
 </span></pre>
 <p>
- since there are no postfix stars, <tt class="computeroutput"><span class="special">*</span></tt>,
+ since there are no postfix stars, <code class="computeroutput"><span class="special">*</span></code>,
       in C/C++. Finally, we terminate each rule with the ubiquitous semi-colon,
- <tt class="computeroutput"><span class="special">;</span></tt>.
+ <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><h3>
-<a name="id458990"></a>
- <a href="introduction.html#spirit.introduction.a_quick_overview_of_output_generation_with__emphasis_spirit_karma__emphasis_">A
+<a name="spirit.introduction.a_quick_overview_of_output_generation_with__emphasis_spirit_karma__emphasis_"></a><h4>
+<a name="id687529"></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>
- </h3>
+ </h4>
 <p>
       Spirit not only allows you to describe the structure of the input. Starting
       with Version 2.0 it enables the specification of the output format for your
@@ -234,7 +225,7 @@
     </p>
 <p>
       Let's assume we need to generate a textual representation from a simple data
- structure such as a <tt 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></tt>. Conventional
+ structure such as a <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>. Conventional
       code probably would look like:
     </p>
 <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">int</span><span class="special">&gt;</span> <span class="identifier">v</span> <span class="special">(</span><span class="identifier">initialize_and_fill</span><span class="special">());</span>
@@ -253,11 +244,11 @@
 </pre>
 <p>
       Here are some more examples of format descriptions for different output representations
- of the same <tt 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></tt>:
+ 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="id459465"></a><p class="title"><b>Table 2. Different output formats for `std::vector&lt;int&gt;`</b></p>
-<table class="table" summary="Different output formats for `std::vector&lt;int&gt;`">
+<a name="id687870"></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>
 <col>
@@ -284,14 +275,14 @@
 <tr>
 <td>
           <p>
- <tt class="computeroutput"><span class="char">'['</span> <span class="special">&lt;&lt;</span>
+ <code class="computeroutput"><span class="char">'['</span> <span class="special">&lt;&lt;</span>
             <span class="special">*(</span><span class="identifier">int_</span>
- <span class="special">&lt;&lt;</span> <span class="char">','</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="char">']'</span></tt>
+ <span class="special">&lt;&lt;</span> <span class="char">','</span><span class="special">)</span> <span class="special">&lt;&lt;</span> <span class="char">']'</span></code>
           </p>
           </td>
 <td>
           <p>
- <tt class="computeroutput"><span class="special">[</span><span class="number">1</span><span class="special">,</span><span class="number">8</span><span class="special">,</span><span class="number">10</span><span class="special">,]</span></tt>
+ <code class="computeroutput"><span class="special">[</span><span class="number">1</span><span class="special">,</span><span class="number">8</span><span class="special">,</span><span class="number">10</span><span class="special">,]</span></code>
           </p>
           </td>
 <td>
@@ -303,15 +294,15 @@
 <tr>
 <td>
           <p>
- <tt class="computeroutput"><span class="special">*(</span><span class="char">'('</span>
+ <code class="computeroutput"><span class="special">*(</span><span class="char">'('</span>
             <span class="special">&lt;&lt;</span> <span class="identifier">int_</span>
             <span class="special">&lt;&lt;</span> <span class="char">')'</span>
- <span class="special">&lt;&lt;</span> <span class="char">','</span><span class="special">)</span></tt>
+ <span class="special">&lt;&lt;</span> <span class="char">','</span><span class="special">)</span></code>
           </p>
           </td>
 <td>
           <p>
- <tt class="computeroutput"><span class="special">(</span><span class="number">1</span><span class="special">),(</span><span class="number">8</span><span class="special">),(</span><span class="number">10</span><span class="special">),]</span></tt>
+ <code class="computeroutput"><span class="special">(</span><span class="number">1</span><span class="special">),(</span><span class="number">8</span><span class="special">),(</span><span class="number">10</span><span class="special">),]</span></code>
           </p>
           </td>
 <td>
@@ -323,12 +314,12 @@
 <tr>
 <td>
           <p>
- <tt class="computeroutput"><span class="special">*</span><span class="identifier">hex</span></tt>
+ <code class="computeroutput"><span class="special">*</span><span class="identifier">hex</span></code>
           </p>
           </td>
 <td>
           <p>
- <tt class="computeroutput"><span class="number">18</span><span class="identifier">a</span></tt>
+ <code class="computeroutput"><span class="number">18</span><span class="identifier">a</span></code>
           </p>
           </td>
 <td>
@@ -340,13 +331,13 @@
 <tr>
 <td>
           <p>
- <tt class="computeroutput"><span class="special">*(</span><span class="identifier">double_</span>
- <span class="special">&lt;&lt;</span> <span class="char">','</span><span class="special">)</span></tt>
+ <code class="computeroutput"><span class="special">*(</span><span class="identifier">double_</span>
+ <span class="special">&lt;&lt;</span> <span class="char">','</span><span class="special">)</span></code>
           </p>
           </td>
 <td>
           <p>
- <tt class="computeroutput"><span class="number">1.0</span><span class="special">,</span><span class="number">8.0</span><span class="special">,</span><span class="number">10.0</span><span class="special">,</span></tt>
+ <code class="computeroutput"><span class="number">1.0</span><span class="special">,</span><span class="number">8.0</span><span class="special">,</span><span class="number">10.0</span><span class="special">,</span></code>
           </p>
           </td>
 <td>
@@ -356,12 +347,12 @@
           </td>
 </tr>
 </tbody>
-</table>
+</table></div>
 </div>
-<p>
+<br class="table-break"><p>
       The syntax is similar to <span class="emphasis"><em>Qi</em></span> with the exception that we
- use the <tt class="computeroutput"><span class="special">&lt;&lt;</span></tt> operator for
- output concatenation. This should be easy to understand as it follows the conventions
+ use the <code class="computeroutput"><span class="special">&lt;&lt;</span></code> operator for
+ output concatenation. This should be easy to remember as it follows the conventions
       used in the Standard's I/O streams.
     </p>
 <p>
@@ -371,10 +362,10 @@
       next table gives some related examples.
     </p>
 <div class="table">
-<a name="id459935"></a><p class="title"><b>Table 3. Different data types usable with the output format
- `(*int_ &lt;&lt; eol)`</b></p>
-<table class="table" summary="Different data types usable with the output format
- `(*int_ &lt;&lt; eol)`">
+<a name="id688243"></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)`">
 <colgroup>
 <col>
 <col>
@@ -391,7 +382,7 @@
 <tr>
 <td>
           <p>
- <tt class="computeroutput"><span class="keyword">int</span> <span class="identifier">i</span><span class="special">[</span><span class="number">4</span><span class="special">]</span></tt>
+ <code class="computeroutput"><span class="keyword">int</span> <span class="identifier">i</span><span class="special">[</span><span class="number">4</span><span class="special">]</span></code>
           </p>
           </td>
 <td>
@@ -403,7 +394,7 @@
 <tr>
 <td>
           <p>
- <tt 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></tt>
+ <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>
           </td>
 <td>
@@ -415,7 +406,7 @@
 <tr>
 <td>
           <p>
- <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span></tt>
+ <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span></code>
           </p>
           </td>
 <td>
@@ -427,7 +418,7 @@
 <tr>
 <td>
           <p>
- <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">,</span> <span class="number">20</span><span class="special">&gt;</span></tt>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">,</span> <span class="number">20</span><span class="special">&gt;</span></code>
           </p>
           </td>
 <td>
@@ -437,13 +428,14 @@
           </td>
 </tr>
 </tbody>
-</table>
+</table></div>
 </div>
+<br class="table-break">
 </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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/lex.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -1,14 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Spirit.Lex</title>
+<title>Spirit.Lex</title>
 <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../index.html" title="Spirit 2.0">
-<link rel="up" href="../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<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_and_karma/reference/debug.html" title="Debug">
-<link rel="next" href="lex/tutorials.html" title=" Spirit.Lex
- Tutorials">
+<link rel="next" href="lex/tutorials.html" title="Spirit.Lex Tutorials">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -23,9 +22,10 @@
 <div class="spirit-nav">
 <a accesskey="p" href="qi_and_karma/reference/debug.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="lex/tutorials.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section" title="Spirit.Lex">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="spirit.lex"></a> Spirit.Lex</h2></div></div></div>
+<a name="spirit.lex"></a><a class="link" href="lex.html" title="Spirit.Lex"> <span class="emphasis"><em>Spirit.Lex</em></span></a>
+</h2></div></div></div>
 <div class="toc"><dl>
 <dt><span class="section"> Introduction to Spirit.Lex</span></dt>
 <dt><span class="section"><a href="lex/tutorials.html"> <span class="emphasis"><em>Spirit.Lex</em></span>
@@ -64,9 +64,10 @@
 <dt><span class="section">TokenSet Class</span></dt>
 </dl></dd>
 </dl></div>
-<div class="section" lang="en">
+<div class="section" title="Introduction to Spirit.Lex">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="spirit.lex.lexer_introduction"></a> Introduction to Spirit.Lex</h3></div></div></div>
+<a name="spirit.lex.lexer_introduction"></a><a class="link" href="lex.html#spirit.lex.lexer_introduction" title="Introduction to Spirit.Lex"> Introduction to <span class="emphasis"><em>Spirit.Lex</em></span></a>
+</h3></div></div></div>
 <p>
         Lexical scanning is the process of analyzing the stream of input characters
         and separating it into strings called tokens, separated by whitespace. Most
@@ -78,29 +79,29 @@
         set of patterns describing the different tokens you want to recognize in
         the input. To make this a bit more formal, here are some definitions:
       </p>
-<div class="itemizedlist"><ul type="disc">
-<li>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
           A token is a sequence of consecutive characters having a collective meaning.
           Tokens may have attributes specific to the token type, carrying additional
           information about the matched character sequence.
         </li>
-<li>
+<li class="listitem">
           A pattern is a rule expressed as a regular expression and describing how
- a particular token can be formed. For example, <tt class="literal">[A-Za-z][A-Za-z_0-9]*</tt>
+ a particular token can be formed. For example, <code class="literal">[A-Za-z][A-Za-z_0-9]*</code>
           is a pattern for a rule matching C++ identifiers.
         </li>
-<li>
+<li class="listitem">
           Characters between tokens are called whitespace; these include spaces,
           tabs, newlines, and formfeeds. Many people also count comments as whitespace,
           though since some tools such as lint look at comments, this conflation
           is not perfect.
         </li>
 </ul></div>
-<a name="spirit.lex.lexer_introduction.why_use_a_separate_lexer_"></a><h4>
-<a name="id488039"></a>
- <a href="lex.html#spirit.lex.lexer_introduction.why_use_a_separate_lexer_">Why
+<a name="spirit.lex.lexer_introduction.why_use_a_separate_lexer_"></a><h5>
+<a name="id731904"></a>
+ <a class="link" href="lex.html#spirit.lex.lexer_introduction.why_use_a_separate_lexer_">Why
         Use a Separate Lexer?</a>
- </h4>
+ </h5>
 <p>
         Typically, lexical scanning is done in a separate module from the parser,
         feeding the parser with a stream of input tokens only. Theoretically it is
@@ -116,17 +117,17 @@
         to be very useful in practical applications. In 1956, Noam Chomsky defined
         the "Chomsky Hierarchy" of grammars:
       </p>
-<div class="itemizedlist"><ul type="disc">
-<li>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
           Type 0: Unrestricted grammars (e.g., natural languages)
         </li>
-<li>
+<li class="listitem">
           Type 1: Context-Sensitive grammars
         </li>
-<li>
+<li class="listitem">
           Type 2: Context-Free grammars
         </li>
-<li>
+<li class="listitem">
           Type 3: Regular grammars
         </li>
 </ul></div>
@@ -195,11 +196,11 @@
         it is even possible to use the provided functionality to build more complex
         grammar recognizers.
       </p>
-<a name="spirit.lex.lexer_introduction.advantages_of_using__emphasis_spirit_lex__emphasis_"></a><h4>
-<a name="id488369"></a>
- <a href="lex.html#spirit.lex.lexer_introduction.advantages_of_using__emphasis_spirit_lex__emphasis_">Advantages
+<a name="spirit.lex.lexer_introduction.advantages_of_using__emphasis_spirit_lex__emphasis_"></a><h5>
+<a name="id732113"></a>
+ <a class="link" href="lex.html#spirit.lex.lexer_introduction.advantages_of_using__emphasis_spirit_lex__emphasis_">Advantages
         of using <span class="emphasis"><em>Spirit.Lex</em></span></a>
- </h4>
+ </h5>
 <p>
         The advantage of using <span class="emphasis"><em>Spirit.Lex</em></span> to create the lexical
         analyzer over using more traditional tools such as Flex
@@ -212,18 +213,18 @@
         gives you the vast majority of features you could get from a similar Flex program without the need
         to leave C++ as a host language:
       </p>
-<div class="itemizedlist"><ul type="disc">
-<li>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
           The definition of tokens is done using regular expressions (patterns)
         </li>
-<li>
+<li class="listitem">
           The token definitions can refer to special substitution strings (pattern
           macros) simplifying pattern definitions
         </li>
-<li>
+<li class="listitem">
           The generated lexical scanner may have multiple start states
         </li>
-<li>
+<li class="listitem">
           It is possible to attach code to any of the token definitions; this code
           gets executed whenever the corresponding token pattern has been matched
         </li>
@@ -232,8 +233,7 @@
         Even if it is possible to use <span class="emphasis"><em>Spirit.Lex</em></span> to generate
         C++ code representing the lexical analyzer (we will refer to that as the
         <span class="emphasis"><em>static</em></span> model, described in more detail in the section
- <a href="lex/abstracts/lexer_static_model.html" title=" The Static
- Lexer Model">The <span class="emphasis"><em>Static</em></span>
+ <a class="link" href="lex/abstracts/lexer_static_model.html" title="The Static Lexer Model">The <span class="emphasis"><em>Static</em></span>
         Model</a>) - a model very similar to the way Flex
         operates - we will mainly focus on the opposite, the <span class="emphasis"><em>dynamic</em></span>
         model. You can directly integrate the token definitions into your C++ program,
@@ -244,14 +244,13 @@
         But it is very flexible and allows you to speed up the development of your
         application.
       </p>
-<a name="spirit.lex.lexer_introduction.the_library_structure_of__emphasis_spirit_lex__emphasis_"></a><h4>
-<a name="id488543"></a>
- <a href="lex.html#spirit.lex.lexer_introduction.the_library_structure_of__emphasis_spirit_lex__emphasis_">The
+<a name="spirit.lex.lexer_introduction.the_library_structure_of__emphasis_spirit_lex__emphasis_"></a><h5>
+<a name="id732216"></a>
+ <a class="link" href="lex.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>
- </h4>
+ </h5>
 <p>
- The <a href="lex.html#spirit.lexerflow" title="Figure 3. The Library structure and Common Flow of Information while
- using Spirit.Lex in an application">figure</a> below shows a high level
+ The <a class="link" href="lex.html#spirit.lexerflow" title="Figure 3. The Library structure and Common Flow of Information while using Spirit.Lex in an application">figure</a> below shows a high level
         overview of how the <span class="emphasis"><em>Spirit.Lex</em></span> library might be used
         in an application. <span class="emphasis"><em>Spirit.Lex</em></span> allows to create lexical
         analyzers based on patterns. These patterns are regular expression based
@@ -269,18 +268,16 @@
 <div class="figure">
 <a name="spirit.lexerflow"></a><p class="title"><b>Figure 3. The Library structure and Common Flow of Information while
         using <span class="emphasis"><em>Spirit.Lex</em></span> in an application</b></p>
-<span class="inlinemediaobject"><img src=".././images/lexerflow.png" alt="The
- Library structure and Common Flow of Information while using Spirit.Lex
- in an application"></span>
+<div class="figure-contents"><span class="inlinemediaobject"><img src=".././images/lexerflow.png" alt="The Library structure and Common Flow of Information while using Spirit.Lex in an application"></span></div>
 </div>
-<p>
+<p><br class="figure-break">
       </p>
 </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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/lex/abstracts.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/abstracts.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/abstracts.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -1,15 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Abstracts</title>
+<title>Abstracts</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../index.html" title="Spirit 2.0">
-<link rel="up" href="../lex.html" title=" Spirit.Lex">
-<link rel="prev" href="tutorials/lexer_quickstart3.html" title=" Quickstart
- 3 - Counting Words Using a Parser">
-<link rel="next" href="abstracts/lexer_tokenizing.html" title=" Tokenizing
- Input Data">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../index.html" title="Spirit 2.1">
+<link rel="up" href="../lex.html" title="Spirit.Lex">
+<link rel="prev" href="tutorials/lexer_quickstart3.html" title="Quickstart 3 - Counting Words Using a Parser">
+<link rel="next" href="abstracts/lexer_tokenizing.html" title="Tokenizing Input Data">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -24,9 +22,10 @@
 <div class="spirit-nav">
 <a accesskey="p" href="tutorials/lexer_quickstart3.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../lex.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="abstracts/lexer_tokenizing.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section" title="Abstracts">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="spirit.lex.abstracts"></a> Abstracts</h3></div></div></div>
+<a name="spirit.lex.abstracts"></a><a class="link" href="abstracts.html" title="Abstracts"> Abstracts</a>
+</h3></div></div></div>
 <div class="toc"><dl>
 <dt><span class="section">Lexer Primitives</span></dt>
 <dt><span class="section"><a href="abstracts/lexer_tokenizing.html"> Tokenizing
@@ -40,9 +39,10 @@
 <dt><span class="section"> Lexer Attributes</span></dt>
 <dt><span class="section"> Lexer States</span></dt>
 </dl></div>
-<div class="section" lang="en">
+<div class="section" title="Lexer Primitives">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.abstracts.lexer_primitives"></a>Lexer Primitives</h4></div></div></div>
+<a name="spirit.lex.abstracts.lexer_primitives"></a><a class="link" href="abstracts.html#spirit.lex.abstracts.lexer_primitives" title="Lexer Primitives">Lexer Primitives</a>
+</h4></div></div></div>
 <div class="toc"><dl>
 <dt><span class="section"><a href="abstracts.html#spirit.lex.abstracts.lexer_primitives.lexer_primitives">
           Lexer Primitives</a></span></dt>
@@ -51,15 +51,15 @@
 <dt><span class="section"><a href="abstracts.html#spirit.lex.abstracts.lexer_primitives.lexer_token_definition">
           Ways to define Tokens</a></span></dt>
 </dl></div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.lex.abstracts.lexer_primitives.lexer_primitives"></a><a href="abstracts.html#spirit.lex.abstracts.lexer_primitives.lexer_primitives" title="
- Lexer Primitives">
- Lexer Primitives</a></h5></div></div></div></div>
-<div class="section" lang="en">
+<div class="section" title="Lexer Primitives"><div class="titlepage"><div><div><h5 class="title">
+<a name="spirit.lex.abstracts.lexer_primitives.lexer_primitives"></a><a class="link" href="abstracts.html#spirit.lex.abstracts.lexer_primitives.lexer_primitives" title="Lexer Primitives">
+ Lexer Primitives</a>
+</h5></div></div></div></div>
+<div class="section" title="About Tokens and Token Values">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.lex.abstracts.lexer_primitives.lexer_token_values"></a><a href="abstracts.html#spirit.lex.abstracts.lexer_primitives.lexer_token_values" title="
- About Tokens and Token Values">
- About Tokens and Token Values</a></h5></div></div></div>
+<a name="spirit.lex.abstracts.lexer_primitives.lexer_token_values"></a><a class="link" href="abstracts.html#spirit.lex.abstracts.lexer_primitives.lexer_token_values" title="About Tokens and Token Values">
+ About Tokens and Token Values</a>
+</h5></div></div></div>
 <p>
             As already discussed, lexical scanning is the process of analyzing the
             stream of input characters and separating it into strings called tokens,
@@ -75,45 +75,45 @@
             class to the user. The only real limitation posed on this token class
             is consequently, that it has to carry at least the token id of the token
             it represents. For more information about the interface a user defined
- token type has to expose please look at the <a href="reference.html#spirit.lex.reference.concepts.token" title="Token">Token
+ token type has to expose please look at the <a class="link" href="reference.html#spirit.lex.reference.concepts.token" title="Token">Token
             Reference</a> reference. The library provides a default token type
             based on the Lexertl
- library which should be sufficient in most use cases: the lexertl_token<>
+ library which should be sufficient in most use cases: the <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>
             type. This section focusses on the description of general features a
             token class may implement and how this integrates with the other parts
             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="id499645"></a>
- <a href="abstracts.html#spirit.lex.abstracts.lexer_primitives.lexer_token_values.the_anatomy_of_a_token">The
+<a name="id741365"></a>
+ <a class="link" href="abstracts.html#spirit.lex.abstracts.lexer_primitives.lexer_token_values.the_anatomy_of_a_token">The
             Anatomy of a Token</a>
           </h6>
 <p>
             It is very important to understand the difference between a token definition
- (represented by the token_def<>
- template) and a token itself (for instance represented by the lexertl_token<>
+ (represented by the <a class="link" href="reference/tokendef_class.html" title="TokenDef Class"><code class="computeroutput"><span class="identifier">token_def</span><span class="special">&lt;&gt;</span></code></a>
+ template) and a token itself (for instance represented by the <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>
             template).
           </p>
 <p>
             The token definition is used to describe the main features of a particular
             token type, especially:
           </p>
-<div class="itemizedlist"><ul type="disc">
-<li>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
               to simplify the definition of a token type using a regular expression
               pattern applied while matching this token type,
             </li>
-<li>
+<li class="listitem">
               to associate a token type with a particular lexer state,
             </li>
-<li>
+<li class="listitem">
               to optionally assign a token id to a token type,
             </li>
-<li>
+<li class="listitem">
               to optionally associate some code to execute whenever an instance of
               this token type has been matched,
             </li>
-<li>
+<li class="listitem">
               and to optionally specify the attribute type of the token value.
             </li>
 </ul></div>
@@ -127,47 +127,46 @@
             data structure contains at least the token id of the matched token type,
             allowing to identify the matched character sequence. Optionally, the
             token instance may contain a token value and/or the lexer state this
- token instance was matched in. The following figure
+ token instance was matched in. The following <a class="link" href="abstracts.html#spirit.lex.tokenstructure" title="Figure 5. The structure of a token">figure</a>
             shows the schematic structure of a token.
           </p>
 <p>
             </p>
 <div class="figure">
 <a name="spirit.lex.tokenstructure"></a><p class="title"><b>Figure 5. The structure of a token</b></p>
-<span class="inlinemediaobject"><img src="../.././images/tokenstructure.png" alt="The
- structure of a token"></span>
+<div class="figure-contents"><span class="inlinemediaobject"><img src="../.././images/tokenstructure.png" alt="The structure of a token"></span></div>
 </div>
-<p>
+<p><br class="figure-break">
           </p>
 <p>
             The token value and the token state may be omitted for optimization reasons,
             avoiding the token to carry more data than actually required. This configuration
             can be achieved by supplying appropriate template parameters for the
- lexertl_token<> template while defining
+ <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> template while defining
             the token type.
           </p>
 <p>
             The lexer iterator returns the same token type for each of the different
             matched token definitions. To accomodate for the possibly different token
             <span class="emphasis"><em>value</em></span> types exposed by the various token types (token
- definitions), the general type of the token value is a boost.variant<>.
+ definitions), the general type of the token value is a boost.variant<>.
             As a minimum (for the default configuration) this token value variant
- will be configured to always hold a boost::iterator_range<>
+ will be configured to always hold a boost::iterator_range<>
             containing the pair of iterators pointing to the matched input sequence
             for this token instance.
           </p>
-<div class="note"><table border="0" summary="Note">
+<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 colspan="2" align="left" valign="top"><p>
+<tr><td align="left" valign="top"><p>
               If the lexical analyzer is used in conjunction with a <span class="emphasis"><em>Spirit.Qi</em></span>
- parser, the stored boost::iterator_range<>
+ parser, the stored boost::iterator_range<>
               token value will be converted to the requested token type (parser attribute)
               exactly once. This happens at the time of the first access to the token
               value requiring the corresponding type conversion. The converted token
- value will be stored in the boost.variant<>
+ value will be stored in the boost.variant<>
               replacing the initially stored iterator range. This avoids to convert
               the input sequence to the token value more than once, thus optimizing
               the integration of the lexer with <span class="emphasis"><em>Spirit.Qi</em></span>, even
@@ -175,7 +174,7 @@
             </p></td></tr>
 </table></div>
 <p>
- Here is the template prototype of the lexertl_token<>
+ Here is the template prototype of the <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>
             template:
           </p>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span>
@@ -185,28 +184,28 @@
 <span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">lexertl_token</span><span class="special">;</span>
 </pre>
-<div class="variablelist">
+<div class="variablelist" title="where:">
 <p class="title"><b>where:</b></p>
 <dl>
 <dt><span class="term">Iterator</span></dt>
 <dd><p>
                 This is the type of the iterator used to access the underlying input
- stream. It defaults to a plain <tt class="computeroutput"><span class="keyword">char</span>
- <span class="keyword">const</span><span class="special">*</span></tt>.
+ stream. It defaults to a plain <code class="computeroutput"><span class="keyword">char</span>
+ <span class="keyword">const</span><span class="special">*</span></code>.
               </p></dd>
 <dt><span class="term">AttributeTypes</span></dt>
 <dd><p>
                 This is either a mpl sequence containing all attribute types used
- for the token definitions or the type <tt class="computeroutput"><span class="identifier">omitted</span></tt>.
+ for the token definitions or the type <code class="computeroutput"><span class="identifier">omitted</span></code>.
                 If the mpl sequence is empty (which is the default), all token instances
- will store a <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator_range</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">&gt;</span></tt> pointing to the start and the
- end of the matched section in the input stream. If the type is <tt class="computeroutput"><span class="identifier">omitted</span></tt>, the generated tokens will
+ will store a <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator_range</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">&gt;</span></code> pointing to the start and the
+ end of the matched section in the input stream. If the type is <code class="computeroutput"><span class="identifier">omitted</span></code>, the generated tokens will
                 contain no token value (attribute) at all.
               </p></dd>
 <dt><span class="term">HasState</span></dt>
 <dd><p>
- This is either <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>
- or <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></tt>, allowing to control whether
+ This is either <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
+ or <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>, allowing to control whether
                 the generated token instances will contain the lexer state they were
                 generated in. The default is mpl::true_, so all token instances will
                 contain the lexer state.
@@ -215,18 +214,18 @@
 </div>
 <p>
             Normally, during its construction, a token instance always holds the
- boost::iterator_range<>
- as its token value (except, if it has been defined using the <tt class="computeroutput"><span class="identifier">omitted</span></tt> token value type). This iterator
+ boost::iterator_range<>
+ as its token value (except, if it has been defined using the <code class="computeroutput"><span class="identifier">omitted</span></code> token value type). This iterator
             range then is converted in place to the requested token value type (attribute)
             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="id500459"></a>
- <a href="abstracts.html#spirit.lex.abstracts.lexer_primitives.lexer_token_values.the_physiognomy_of_a_token_definition">The
+<a name="id743739"></a>
+ <a class="link" href="abstracts.html#spirit.lex.abstracts.lexer_primitives.lexer_token_values.the_physiognomy_of_a_token_definition">The
             Physiognomy of a Token Definition</a>
           </h6>
 <p>
- The token definitions (represented by the token_def<>
+ The token definitions (represented by the <a class="link" href="reference/tokendef_class.html" title="TokenDef Class"><code class="computeroutput"><span class="identifier">token_def</span><span class="special">&lt;&gt;</span></code></a>
             template) are normally used as part of the definition of the lexical
             analyzer. At the same time a token definition instance may be used as
             a parser component in <span class="emphasis"><em>Spirit.Qi</em></span>.
@@ -240,7 +239,7 @@
 <span class="special">&gt;</span>
 <span class="keyword">class</span> <span class="identifier">token_def</span><span class="special">;</span>
 </pre>
-<div class="variablelist">
+<div class="variablelist" title="where:">
 <p class="title"><b>where:</b></p>
 <dl>
 <dt><span class="term">Attribute</span></dt>
@@ -249,17 +248,17 @@
                 instances representing this token type. This attribute type is exposed
                 to the <span class="emphasis"><em>Spirit.Qi</em></span> library, whenever this token
                 definition is used as a parser component. The default attribute type
- is <tt class="computeroutput"><span class="identifier">unused_type</span></tt>, which
- means the token instance holds a boost::iterator_range<>
+ is <code class="computeroutput"><span class="identifier">unused_type</span></code>, which
+ means the token instance holds a boost::iterator_range<>
                 pointing to the start and the end of the matched section in the input
- stream. If the attribute is <tt class="computeroutput"><span class="identifier">omitted</span></tt>
+ stream. If the attribute is <code class="computeroutput"><span class="identifier">omitted</span></code>
                 the token instance will expose no token type at all. Any other type
                 will be used directly as the token value type.
               </p></dd>
 <dt><span class="term">Char</span></dt>
 <dd><p>
                 This is the value type of the iterator for the underlying input sequence.
- It defaults to <tt class="computeroutput"><span class="keyword">char</span></tt>.
+ It defaults to <code class="computeroutput"><span class="keyword">char</span></code>.
               </p></dd>
 </dl>
 </div>
@@ -267,36 +266,36 @@
             The semantics of the template parameters for the token type and the token
             definition type are very similar and interdependent. As a rule of thumb
             you can think of the token definition type as the means of specifying
- everything related to a single specific token type (such as <tt class="computeroutput"><span class="identifier">identifier</span></tt> or <tt class="computeroutput"><span class="identifier">integer</span></tt>).
+ everything related to a single specific token type (such as <code class="computeroutput"><span class="identifier">identifier</span></code> or <code class="computeroutput"><span class="identifier">integer</span></code>).
             On the other hand the token type is used to define the general proerties
             of all token instances generated by the <span class="emphasis"><em>Spirit.Lex</em></span>
             library.
           </p>
-<div class="important"><table border="0" summary="Important">
+<div class="important" title="Important"><table border="0" summary="Important">
 <tr>
 <td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../images/important.png"></td>
 <th align="left">Important</th>
 </tr>
-<tr><td colspan="2" align="left" valign="top">
+<tr><td align="left" valign="top">
 <p>
               If you don't list any token value types in the token type definition
- declaration (resulting in the usage of the default boost::iterator_range<>
+ declaration (resulting in the usage of the default boost::iterator_range<>
               token type) everything will compile and work just fine, just a bit
               less efficient. This is because the token value will be converted from
               the matched input sequence every time it is requested.
             </p>
 <p>
               But as soon as you specify at least one token value type while defining
- the token type you'll have to list all value types used for token_def<>
+ the token type you'll have to list all value types used for <a class="link" href="reference/tokendef_class.html" title="TokenDef Class"><code class="computeroutput"><span class="identifier">token_def</span><span class="special">&lt;&gt;</span></code></a>
               declarations in the token definition class, otherwise compilation errors
               will occur.
             </p>
 </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="id500867"></a>
- <a href="abstracts.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 lexertl_token<></a>
+<a name="id743994"></a>
+ <a class="link" href="abstracts.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>
 <p>
             Let's start with some examples. We refer to one of the <span class="emphasis"><em>Spirit.Lex</em></span>
@@ -305,13 +304,13 @@
 <p>
             The first code snippet shows an excerpt of the token definition class,
             the definition of a couple of token types. Some of the token types do
- not expose a special token value (<tt class="computeroutput"><span class="identifier">if_</span></tt>,
- <tt class="computeroutput"><span class="identifier">else_</span></tt>, and <tt class="computeroutput"><span class="identifier">while_</span></tt>). Their token value will always
+ not expose a special token value (<code class="computeroutput"><span class="identifier">if_</span></code>,
+ <code class="computeroutput"><span class="identifier">else_</span></code>, and <code class="computeroutput"><span class="identifier">while_</span></code>). Their token value will always
             hold the iterator range of the matched input sequence only. The token
- definitions for the <tt class="computeroutput"><span class="identifier">identifier</span></tt>
- and the integer <tt class="computeroutput"><span class="identifier">constant</span></tt>
- are specialized to expose an explicit token type each: <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></tt> and <tt class="computeroutput"><span class="keyword">unsigned</span>
- <span class="keyword">int</span></tt>.
+ definitions for the <code class="computeroutput"><span class="identifier">identifier</span></code>
+ and the integer <code class="computeroutput"><span class="identifier">constant</span></code>
+ are specialized to expose an explicit token type each: <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></code> and <code class="computeroutput"><span class="keyword">unsigned</span>
+ <span class="keyword">int</span></code>.
           </p>
 <p>
             </p>
@@ -321,19 +320,19 @@
 <pre class="programlisting"><span class="comment">// these tokens expose the iterator_range of the matched input sequence
 </span><span class="identifier">token_def</span><span class="special">&lt;&gt;</span> <span class="identifier">if_</span><span class="special">,</span> <span class="identifier">else_</span><span class="special">,</span> <span class="identifier">while_</span><span class="special">;</span>
 
-<span class="comment">// The following two tokens have an associated value type, 'identifier'
+<span class="comment">// The following two tokens have an associated attribute type, 'identifier'
 </span><span class="comment">// carries a string (the identifier name) and 'constant' carries the
 </span><span class="comment">// matched integer value.
 </span><span class="comment">//
-</span><span class="comment">// Note: any token value type specified explicitly during a token_def&lt;&gt;
+</span><span class="comment">// Note: any token attribute type explicitly specified in a token_def&lt;&gt;
 </span><span class="comment">// declaration needs to be listed during token type definition as
 </span><span class="comment">// well (see the typedef for the token_type below).
 </span><span class="comment">//
 </span><span class="comment">// The conversion of the matched input to an instance of this type occurs
-</span><span class="comment">// once (on first access), which makes token values as efficient as
+</span><span class="comment">// once (on first access), which makes token attributes as efficient as
 </span><span class="comment">// possible. Moreover, token instances are constructed once by the lexer
 </span><span class="comment">// library. From this point on tokens are passed by reference only,
-</span><span class="comment">// avoiding tokens being copied around.
+</span><span class="comment">// avoiding them being copied around.
 </span><span class="identifier">token_def</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="identifier">identifier</span><span class="special">;</span>
 <span class="identifier">token_def</span><span class="special">&lt;</span><span class="keyword">unsigned</span> <span class="keyword">int</span><span class="special">&gt;</span> <span class="identifier">constant</span><span class="special">;</span>
 </pre>
@@ -344,7 +343,7 @@
 <p>
             As the parsers generated by <span class="emphasis"><em>Spirit.Qi</em></span> are fully
             attributed, any <span class="emphasis"><em>Spirit.Qi</em></span> parser component needs
- to expose a certain type as its parser attribute. Naturally, the token_def<> exposes the token value
+ to expose a certain type as its parser attribute. Naturally, the <a class="link" href="reference/tokendef_class.html" title="TokenDef Class"><code class="computeroutput"><span class="identifier">token_def</span><span class="special">&lt;&gt;</span></code></a> exposes the token value
             type as its parser attribute, enabling a smooth integration with <span class="emphasis"><em>Spirit.Qi</em></span>.
           </p>
 <p>
@@ -363,15 +362,15 @@
 </span><span class="comment">// calculator_tokens&lt;&gt; above). Here we use the predefined lexertl token
 </span><span class="comment">// type, but any compatible token type may be used instead.
 </span><span class="comment">//
-</span><span class="comment">// If you don't list any token value types in the following declaration
+</span><span class="comment">// If you don't list any token attribute types in the following declaration
 </span><span class="comment">// (or just use the default token type: lexertl_token&lt;base_iterator_type&gt;)
 </span><span class="comment">// it will compile and work just fine, just a bit less efficient. This is
-</span><span class="comment">// because the token value will be generated from the matched input
+</span><span class="comment">// because the token attribute will be generated from the matched input
 </span><span class="comment">// sequence every time it is requested. But as soon as you specify at
-</span><span class="comment">// least one token value type you'll have to list all value types used
-</span><span class="comment">// for token_def&lt;&gt; declarations in the token definition class above,
+</span><span class="comment">// least one token attribute type you'll have to list all attribute types
+</span><span class="comment">// used for token_def&lt;&gt; declarations in the token definition class above,
 </span><span class="comment">// otherwise compilation errors will occur.
-</span><span class="keyword">typedef</span> <span class="identifier">lexertl_token</span><span class="special">&lt;</span>
+</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="identifier">base_iterator_type</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="keyword">unsigned</span> <span class="keyword">int</span><span class="special">,</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>
 </pre>
@@ -380,21 +379,21 @@
 <p>
           </p>
 <p>
- To avoid the token to have a token value at all, the special tag <tt class="computeroutput"><span class="identifier">omitted</span></tt> can be used: <tt class="computeroutput"><span class="identifier">token_def</span><span class="special">&lt;</span><span class="identifier">omitted</span><span class="special">&gt;</span></tt>
- and <tt class="computeroutput"><span class="identifier">lexertl_token</span><span class="special">&lt;</span><span class="identifier">base_iterator_type</span><span class="special">,</span>
- <span class="identifier">omitted</span><span class="special">&gt;</span></tt>.
+ To avoid the token to have a token value at all, the special tag <code class="computeroutput"><span class="identifier">omitted</span></code> can be used: <code class="computeroutput"><span class="identifier">token_def</span><span class="special">&lt;</span><span class="identifier">omitted</span><span class="special">&gt;</span></code>
+ and <code class="computeroutput"><span class="identifier">lexertl_token</span><span class="special">&lt;</span><span class="identifier">base_iterator_type</span><span class="special">,</span>
+ <span class="identifier">omitted</span><span class="special">&gt;</span></code>.
           </p>
 </div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.lex.abstracts.lexer_primitives.lexer_token_definition"></a><a href="abstracts.html#spirit.lex.abstracts.lexer_primitives.lexer_token_definition" title="
- Ways to define Tokens">
- Ways to define Tokens</a></h5></div></div></div></div>
+<div class="section" title="Ways to define Tokens"><div class="titlepage"><div><div><h5 class="title">
+<a name="spirit.lex.abstracts.lexer_primitives.lexer_token_definition"></a><a class="link" href="abstracts.html#spirit.lex.abstracts.lexer_primitives.lexer_token_definition" title="Ways to define Tokens">
+ Ways to define Tokens</a>
+</h5></div></div></div></div>
 </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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_attributes.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_attributes.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_attributes.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -1,14 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Lexer Attributes</title>
+<title>Lexer Attributes</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
-<link rel="up" href="../abstracts.html" title=" Abstracts">
-<link rel="prev" href="lexer_parsing.html" title=" Parsing using
- a Lexer">
-<link rel="next" href="lexer_states.html" title=" Lexer States">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
+<link rel="up" href="../abstracts.html" title="Abstracts">
+<link rel="prev" href="lexer_parsing.html" title="Parsing using a Lexer">
+<link rel="next" href="lexer_states.html" title="Lexer States">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -23,12 +22,13 @@
 <div class="spirit-nav">
 <a accesskey="p" href="lexer_parsing.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../abstracts.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="lexer_states.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.abstracts.lexer_attributes"></a> Lexer Attributes</h4></div></div></div></div>
+<div class="section" title="Lexer Attributes"><div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.lex.abstracts.lexer_attributes"></a><a class="link" href="lexer_attributes.html" title="Lexer Attributes"> Lexer Attributes</a>
+</h4></div></div></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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_parsing.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_parsing.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_parsing.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -1,15 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Parsing using
- a Lexer</title>
+<title>Parsing using a Lexer</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
-<link rel="up" href="../abstracts.html" title=" Abstracts">
-<link rel="prev" href="lexer_static_model.html" title=" The Static
- Lexer Model">
-<link rel="next" href="lexer_attributes.html" title=" Lexer Attributes">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
+<link rel="up" href="../abstracts.html" title="Abstracts">
+<link rel="prev" href="lexer_static_model.html" title="The Static Lexer Model">
+<link rel="next" href="lexer_attributes.html" title="Lexer Attributes">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -24,14 +22,14 @@
 <div class="spirit-nav">
 <a accesskey="p" href="lexer_static_model.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../abstracts.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="lexer_attributes.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.abstracts.lexer_parsing"></a><a href="lexer_parsing.html" title=" Parsing using
- a Lexer"> Parsing using
- a Lexer</a></h4></div></div></div></div>
+<div class="section" title="Parsing using a Lexer"><div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.lex.abstracts.lexer_parsing"></a><a class="link" href="lexer_parsing.html" title="Parsing using a Lexer"> Parsing using
+ a Lexer</a>
+</h4></div></div></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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

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-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -1,16 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Lexer
- Semantic Actions</title>
+<title>Lexer Semantic Actions</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
-<link rel="up" href="../abstracts.html" title=" Abstracts">
-<link rel="prev" href="lexer_tokenizing.html" title=" Tokenizing
- Input Data">
-<link rel="next" href="lexer_static_model.html" title=" The Static
- Lexer Model">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
+<link rel="up" href="../abstracts.html" title="Abstracts">
+<link rel="prev" href="lexer_tokenizing.html" title="Tokenizing Input Data">
+<link rel="next" href="lexer_static_model.html" title="The Static Lexer Model">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -25,14 +22,14 @@
 <div class="spirit-nav">
 <a accesskey="p" href="lexer_tokenizing.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../abstracts.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="lexer_static_model.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.abstracts.lexer_semantic_actions"></a><a href="lexer_semantic_actions.html" title=" Lexer
- Semantic Actions"> Lexer
- Semantic Actions</a></h4></div></div></div></div>
+<div class="section" title="Lexer Semantic Actions"><div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.lex.abstracts.lexer_semantic_actions"></a><a class="link" href="lexer_semantic_actions.html" title="Lexer Semantic Actions"> Lexer
+ Semantic Actions</a>
+</h4></div></div></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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

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-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -1,13 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Lexer States</title>
+<title>Lexer States</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
-<link rel="up" href="../abstracts.html" title=" Abstracts">
-<link rel="prev" href="lexer_attributes.html" title=" Lexer Attributes">
-<link rel="next" href="../quick_reference.html" title=" Quick Reference">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
+<link rel="up" href="../abstracts.html" title="Abstracts">
+<link rel="prev" href="lexer_attributes.html" title="Lexer Attributes">
+<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>
@@ -22,29 +22,30 @@
 <div class="spirit-nav">
 <a accesskey="p" href="lexer_attributes.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../abstracts.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" lang="en">
+<div class="section" title="Lexer States">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.abstracts.lexer_states"></a> Lexer States</h4></div></div></div>
-<a name="spirit.lex.abstracts.lexer_states.controlling_the_lexer_state_from_lexer_semantic_actions"></a><h5>
-<a name="id505296"></a>
- <a href="lexer_states.html#spirit.lex.abstracts.lexer_states.controlling_the_lexer_state_from_lexer_semantic_actions">Controlling
+<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="id747721"></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>
- </h5>
-<a name="spirit.lex.abstracts.lexer_states.controlling_the_lexer_state_from_parser_semantic_actions"></a><h5>
-<a name="id505327"></a>
- <a href="lexer_states.html#spirit.lex.abstracts.lexer_states.controlling_the_lexer_state_from_parser_semantic_actions">Controlling
+ </h6>
+<a name="spirit.lex.abstracts.lexer_states.controlling_the_lexer_state_from_parser_semantic_actions"></a><h6>
+<a name="id747735"></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>
- </h5>
-<a name="spirit.lex.abstracts.lexer_states.using_a_lexer_state_for_the_skip_parser"></a><h5>
-<a name="id505358"></a>
- <a href="lexer_states.html#spirit.lex.abstracts.lexer_states.using_a_lexer_state_for_the_skip_parser">Using
+ </h6>
+<a name="spirit.lex.abstracts.lexer_states.using_a_lexer_state_for_the_skip_parser"></a><h6>
+<a name="id747748"></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>
- </h5>
+ </h6>
 </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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

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-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -1,16 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> The Static
- Lexer Model</title>
+<title>The Static Lexer Model</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
-<link rel="up" href="../abstracts.html" title=" Abstracts">
-<link rel="prev" href="lexer_semantic_actions.html" title=" Lexer
- Semantic Actions">
-<link rel="next" href="lexer_parsing.html" title=" Parsing using
- a Lexer">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
+<link rel="up" href="../abstracts.html" title="Abstracts">
+<link rel="prev" href="lexer_semantic_actions.html" title="Lexer Semantic Actions">
+<link rel="next" href="lexer_parsing.html" title="Parsing using a Lexer">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -25,11 +22,11 @@
 <div class="spirit-nav">
 <a accesskey="p" href="lexer_semantic_actions.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../abstracts.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="lexer_parsing.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section" title="The Static Lexer Model">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.abstracts.lexer_static_model"></a><a href="lexer_static_model.html" title=" The Static
- Lexer Model"> The <span class="emphasis"><em>Static</em></span>
- Lexer Model</a></h4></div></div></div>
+<a name="spirit.lex.abstracts.lexer_static_model"></a><a class="link" href="lexer_static_model.html" title="The Static Lexer Model"> The <span class="emphasis"><em>Static</em></span>
+ Lexer Model</a>
+</h4></div></div></div>
 <p>
           The documentation of <span class="emphasis"><em>Spirit.Lex</em></span> so far mostly was
           about describing the features of the <span class="emphasis"><em>dynamic</em></span> model,
@@ -53,12 +50,12 @@
           Assuming you already built a dynamic lexer for your problem, there are
           two more steps needed to create a static lexical analyzer using <span class="emphasis"><em>Spirit.Lex</em></span>:
         </p>
-<div class="orderedlist"><ol type="1">
-<li>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem">
             generating the C++ code for the static analyzer (including the tokenization
             function and corresponding tables), and
           </li>
-<li>
+<li class="listitem">
             modifying the dynamic lexical anlyzer to use the generated code.
           </li>
 </ol></div>
@@ -107,16 +104,17 @@
 </span><span class="comment">// possible use cases: a dynamic lexical analyzer, a code generator, and a
 </span><span class="comment">// static lexical analyzer.
 </span><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">BaseLexer</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">word_count_tokens</span> <span class="special">:</span> <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">lexer_def</span><span class="special">&lt;</span><span class="identifier">BaseLexer</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">word_count_tokens</span> <span class="special">:</span> <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">lexer</span><span class="special">&lt;</span><span class="identifier">BaseLexer</span><span class="special">&gt;</span>
 <span class="special">{</span>
- <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Self</span><span class="special">&gt;</span>
- <span class="keyword">void</span> <span class="identifier">def</span> <span class="special">(</span><span class="identifier">Self</span><span class="special">&amp;</span> <span class="identifier">self</span><span class="special">)</span>
+ <span class="identifier">word_count_tokens</span><span class="special">()</span>
+ <span class="special">:</span> <span class="identifier">word_count_tokens</span><span class="special">::</span><span class="identifier">base_type</span><span class="special">(</span>
+ <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">match_flags</span><span class="special">::</span><span class="identifier">match_not_dot_newline</span><span class="special">)</span>
     <span class="special">{</span>
         <span class="comment">// define tokens and associate them with the lexer
 </span> <span class="identifier">word</span> <span class="special">=</span> <span class="string">"[^ \t\n]+"</span><span class="special">;</span>
- <span class="identifier">self</span> <span class="special">=</span> <span class="identifier">word</span> <span class="special">|</span> <span class="char">'\n'</span> <span class="special">|</span> <span class="identifier">token_def</span><span class="special">&lt;&gt;(</span><span class="string">"."</span><span class="special">,</span> <span class="identifier">IDANY</span><span class="special">);</span>
+ <span class="keyword">this</span><span class="special">-&gt;</span><span class="identifier">self</span> <span class="special">=</span> <span class="identifier">word</span> <span class="special">|</span> <span class="char">'\n'</span> <span class="special">|</span> <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">token_def</span><span class="special">&lt;&gt;(</span><span class="string">"."</span><span class="special">,</span> <span class="identifier">IDANY</span><span class="special">);</span>
     <span class="special">}</span>
-
+
     <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">token_def</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="identifier">word</span><span class="special">;</span>
 <span class="special">};</span>
 </pre>
@@ -127,8 +125,8 @@
 <p>
           The only thing changing between the three different use cases is the template
           parameter used to instantiate a concrete token definition. Fot the dynamic
- model and the code generator you probably will use the lexertl_lexer<>
- template, where for the static model you will use the lexertl_static_lexer<>
+ model and the code generator you probably will use the <a class="link" href="../reference/lexer_class.html#spirit.lex.reference.lexer_class.the_lexertl_lexer_class_implementing_the_dynamic_model"><code class="computeroutput"><span class="identifier">lexertl_lexer</span><span class="special">&lt;&gt;</span></code></a>
+ template, where for the static model you will use the <a class="link" href="../reference/lexer_class.html#spirit.lex.reference.lexer_class.the_lexertl_static_lexer_class_implementing_the_static_model"><code class="computeroutput"><span class="identifier">lexertl_static_lexer</span><span class="special">&lt;&gt;</span></code></a>
           type as the template parameter.
         </p>
 <p>
@@ -154,17 +152,17 @@
 <span class="special">{</span>
     <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">TokenDef</span><span class="special">&gt;</span>
     <span class="identifier">word_count_grammar</span><span class="special">(</span><span class="identifier">TokenDef</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">tok</span><span class="special">)</span>
- <span class="special">:</span> <span class="identifier">grammar</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">&gt;(</span><span class="identifier">start</span><span class="special">),</span> <span class="identifier">c</span><span class="special">(</span><span class="number">0</span><span class="special">),</span> <span class="identifier">w</span><span class="special">(</span><span class="number">0</span><span class="special">),</span> <span class="identifier">l</span><span class="special">(</span><span class="number">0</span><span class="special">)</span>
+ <span class="special">:</span> <span class="identifier">word_count_grammar</span><span class="special">::</span><span class="identifier">base_type</span><span class="special">(</span><span class="identifier">start</span><span class="special">)</span>
+ <span class="special">,</span> <span class="identifier">c</span><span class="special">(</span><span class="number">0</span><span class="special">),</span> <span class="identifier">w</span><span class="special">(</span><span class="number">0</span><span class="special">),</span> <span class="identifier">l</span><span class="special">(</span><span class="number">0</span><span class="special">)</span>
     <span class="special">{</span>
- <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">arg_names</span><span class="special">::</span><span class="identifier">_1</span><span class="special">;</span>
         <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">ref</span><span class="special">;</span>
         <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">size</span><span class="special">;</span>
-
+
         <span class="comment">// associate the defined tokens with the lexer, at the same time
 </span> <span class="comment">// defining the actions to be executed
-</span> <span class="identifier">start</span> <span class="special">=</span> <span class="special">*(</span> <span class="identifier">tok</span><span class="special">.</span><span class="identifier">word</span> <span class="special">[++</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">w</span><span class="special">),</span> <span class="identifier">ref</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span> <span class="special">+=</span> <span class="identifier">size</span><span class="special">(</span><span class="identifier">_1</span><span class="special">)]</span>
- <span class="special">|</span> <span class="identifier">char_</span><span class="special">(</span><span class="char">'\n'</span><span class="special">)</span> <span class="special">[++</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">l</span><span class="special">),</span> <span class="special">++</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">c</span><span class="special">)]</span>
- <span class="special">|</span> <span class="identifier">token</span><span class="special">(</span><span class="identifier">IDANY</span><span class="special">)</span> <span class="special">[++</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">c</span><span class="special">)]</span>
+</span> <span class="identifier">start</span> <span class="special">=</span> <span class="special">*(</span> <span class="identifier">tok</span><span class="special">.</span><span class="identifier">word</span> <span class="special">[</span> <span class="special">++</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">w</span><span class="special">),</span> <span class="identifier">ref</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span> <span class="special">+=</span> <span class="identifier">size</span><span class="special">(</span><span class="identifier">_1</span><span class="special">)</span> <span class="special">]</span>
+ <span class="special">|</span> <span class="identifier">lit</span><span class="special">(</span><span class="char">'\n'</span><span class="special">)</span> <span class="special">[</span> <span class="special">++</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">l</span><span class="special">),</span> <span class="special">++</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span> <span class="special">]</span>
+ <span class="special">|</span> <span class="identifier">token</span><span class="special">(</span><span class="identifier">IDANY</span><span class="special">)</span> <span class="special">[</span> <span class="special">++</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span> <span class="special">]</span>
                   <span class="special">)</span>
               <span class="special">;</span>
     <span class="special">}</span>
@@ -177,17 +175,17 @@
           </p>
 <p>
         </p>
-<a name="spirit.lex.abstracts.lexer_static_model.generating_the_static_analyzer"></a><h5>
-<a name="id503276"></a>
- <a href="lexer_static_model.html#spirit.lex.abstracts.lexer_static_model.generating_the_static_analyzer">Generating
+<a name="spirit.lex.abstracts.lexer_static_model.generating_the_static_analyzer"></a><h6>
+<a name="id746391"></a>
+ <a class="link" href="lexer_static_model.html#spirit.lex.abstracts.lexer_static_model.generating_the_static_analyzer">Generating
           the Static Analyzer</a>
- </h5>
+ </h6>
 <p>
           The first additional step to perform in order to create a static lexical
           analyzer is to create a small standalone program for creating the lexer
           tables and the corresponding tokenization function. For this purpose the
           <span class="emphasis"><em>Spirit.Lex</em></span> library exposes a special API - the function
- generate_static().
+ <a class="link" href="../../../"><code class="computeroutput"><span class="identifier">generate_static</span><span class="special">()</span></code></a>.
           It implements the whole code generator, no further code is needed. All
           what it takes to invoke this function is to supply a token definition instance,
           an output stream to use to generate the code to, and an optional string
@@ -202,7 +200,7 @@
 <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="comment">// create the lexer object instance needed to invoke the generator
-</span> <span class="identifier">word_count_tokens</span><span class="special">&lt;</span><span class="identifier">lexertl_lexer</span><span class="special">&lt;&gt;</span> <span class="special">&gt;</span> <span class="identifier">word_count</span><span class="special">;</span> <span class="comment">// the token definition
+</span> <span class="identifier">word_count_tokens</span><span class="special">&lt;</span><span class="identifier">lexertl</span><span class="special">::</span><span class="identifier">lexer</span><span class="special">&lt;&gt;</span> <span class="special">&gt;</span> <span class="identifier">word_count</span><span class="special">;</span> <span class="comment">// the token definition
 </span>
     <span class="comment">// open the output file, where the generated tokenizer function will be
 </span> <span class="comment">// written to
@@ -211,7 +209,7 @@
     <span class="comment">// invoke the generator, passing the token definition, the output stream
 </span> <span class="comment">// and the name prefix of the tokenizing function to be generated
 </span> <span class="keyword">char</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">function_name</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">argc</span> <span class="special">&lt;</span> <span class="number">3</span> <span class="special">?</span> <span class="string">""</span> <span class="special">:</span> <span class="identifier">argv</span><span class="special">[</span><span class="number">2</span><span class="special">]);</span>
- <span class="keyword">return</span> <span class="identifier">generate_static</span><span class="special">(</span><span class="identifier">make_lexer</span><span class="special">(</span><span class="identifier">word_count</span><span class="special">),</span> <span class="identifier">out</span><span class="special">,</span> <span class="identifier">function_name</span><span class="special">)</span> <span class="special">?</span> <span class="number">0</span> <span class="special">:</span> <span class="special">-</span><span class="number">1</span><span class="special">;</span>
+ <span class="keyword">return</span> <span class="identifier">lexertl</span><span class="special">::</span><span class="identifier">generate_static</span><span class="special">(</span><span class="identifier">word_count</span><span class="special">,</span> <span class="identifier">out</span><span class="special">,</span> <span class="identifier">function_name</span><span class="special">)</span> <span class="special">?</span> <span class="number">0</span> <span class="special">:</span> <span class="special">-</span><span class="number">1</span><span class="special">;</span>
 <span class="special">}</span>
 </pre>
 <p>
@@ -223,20 +221,20 @@
           a file for later inclusion into the static lexical analzyer as shown in
           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><h5>
-<a name="id503799"></a>
- <a href="lexer_static_model.html#spirit.lex.abstracts.lexer_static_model.modifying_the_dynamic_analyzer">Modifying
+<a name="spirit.lex.abstracts.lexer_static_model.modifying_the_dynamic_analyzer"></a><h6>
+<a name="id746766"></a>
+ <a class="link" href="lexer_static_model.html#spirit.lex.abstracts.lexer_static_model.modifying_the_dynamic_analyzer">Modifying
           the Dynamic Analyzer</a>
- </h5>
+ </h6>
 <p>
           The second required step to convert an existing dynamic lexer into a static
           one is to change your main program at two places. First, you need to change
           the type of the used lexer (that is the template parameter used while instantiating
           your token definition class). While in the dynamic model we have been using
- the lexertl_lexer<>
- template, we now need to change that to the lexertl_static_lexer<>
+ the <a class="link" href="../reference/lexer_class.html#spirit.lex.reference.lexer_class.the_lexertl_lexer_class_implementing_the_dynamic_model"><code class="computeroutput"><span class="identifier">lexertl_lexer</span><span class="special">&lt;&gt;</span></code></a>
+ template, we now need to change that to the <a class="link" href="../reference/lexer_class.html#spirit.lex.reference.lexer_class.the_lexertl_static_lexer_class_implementing_the_static_model"><code class="computeroutput"><span class="identifier">lexertl_static_lexer</span><span class="special">&lt;&gt;</span></code></a>
           type. The second change is tightly related to the first one and involves
- correcting the corresponding <tt class="computeroutput"><span class="preprocessor">#include</span></tt>
+ correcting the corresponding <code class="computeroutput"><span class="preprocessor">#include</span></code>
           statement to:
         </p>
 <p>
@@ -244,7 +242,7 @@
 <p>
             
 </p>
-<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">lex_lexer_static_lexertl</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">lex_static_lexertl</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
           </p>
@@ -268,7 +266,7 @@
 <span class="special">{</span>
     <span class="comment">// Define the token type to be used: 'std::string' is available as the type
 </span> <span class="comment">// of the token value.
-</span> <span class="keyword">typedef</span> <span class="identifier">lexertl_token</span><span class="special">&lt;</span>
+</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>
 
@@ -276,26 +274,25 @@
 </span> <span class="comment">// definition.
 </span> <span class="comment">//
 </span> <span class="comment">// This is the only place where the code is different from an equivalent
-</span> <span class="comment">// dynamic lexical analyzer. We use the `lexertl_static_lexer&lt;&gt;` instead of
-</span> <span class="comment">// the `lexertl_lexer&lt;&gt;` as the base class for our token defintion type.
-</span> <span class="comment">//
-</span> <span class="keyword">typedef</span> <span class="identifier">lexertl_static_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> <span class="comment">// dynamic lexical analyzer. We use the `lexertl::static_lexer&lt;&gt;` instead of
+</span> <span class="comment">// the `lexertl::lexer&lt;&gt;` as the base class for our token defintion type.
+</span> <span class="keyword">typedef</span> <span class="identifier">lexertl</span><span class="special">::</span><span class="identifier">static_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="comment">// Define the iterator type exposed by the lexer.
-</span> <span class="keyword">typedef</span> <span class="identifier">lexer_iterator</span><span class="special">&lt;</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="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">iterator_type</span><span class="special">;</span>
+</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.
-</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</span><span class="special">;</span> <span class="comment">// Our token definition
-</span> <span class="identifier">word_count_grammar</span><span class="special">&lt;</span><span class="identifier">iterator_type</span><span class="special">&gt;</span> <span class="identifier">g</span> <span class="special">(</span><span class="identifier">word_count</span><span class="special">);</span> <span class="comment">// Our grammar definition
+</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</span><span class="special">;</span> <span class="comment">// Our lexer
+</span> <span class="identifier">word_count_grammar</span><span class="special">&lt;</span><span class="identifier">iterator_type</span><span class="special">&gt;</span> <span class="identifier">g</span> <span class="special">(</span><span class="identifier">word_count</span><span class="special">);</span> <span class="comment">// Our parser
 </span>
     <span class="comment">// Read in the file into memory.
 </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="comment">// Parsing is done based on the the token stream, not the character stream.
-</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">make_lexer</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> <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="comment">// success
 </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>
@@ -316,8 +313,8 @@
 </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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

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-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -1,15 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Tokenizing
- Input Data</title>
+<title>Tokenizing Input Data</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
-<link rel="up" href="../abstracts.html" title=" Abstracts">
-<link rel="prev" href="../abstracts.html" title=" Abstracts">
-<link rel="next" href="lexer_semantic_actions.html" title=" Lexer
- Semantic Actions">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
+<link rel="up" href="../abstracts.html" title="Abstracts">
+<link rel="prev" href="../abstracts.html" title="Abstracts">
+<link rel="next" href="lexer_semantic_actions.html" title="Lexer Semantic Actions">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -24,26 +22,26 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../abstracts.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../abstracts.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="lexer_semantic_actions.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section" title="Tokenizing Input Data">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.abstracts.lexer_tokenizing"></a><a href="lexer_tokenizing.html" title=" Tokenizing
- Input Data"> Tokenizing
- Input Data</a></h4></div></div></div>
-<a name="spirit.lex.abstracts.lexer_tokenizing.the_tokenize___function"></a><h5>
-<a name="id501672"></a>
- <a href="lexer_tokenizing.html#spirit.lex.abstracts.lexer_tokenizing.the_tokenize___function">The
- tokenize() function</a>
- </h5>
-<a name="spirit.lex.abstracts.lexer_tokenizing.the_generate_static___function"></a><h5>
-<a name="id501700"></a>
- <a href="lexer_tokenizing.html#spirit.lex.abstracts.lexer_tokenizing.the_generate_static___function">The
- generate_static() function</a>
- </h5>
+<a name="spirit.lex.abstracts.lexer_tokenizing"></a><a class="link" href="lexer_tokenizing.html" title="Tokenizing Input Data"> Tokenizing
+ Input Data</a>
+</h4></div></div></div>
+<a name="spirit.lex.abstracts.lexer_tokenizing._tokenize_function_the_tokenize___function"></a><h6>
+<a name="id744519"></a>
+ <a class="link" href="lexer_tokenizing.html#spirit.lex.abstracts.lexer_tokenizing._tokenize_function_the_tokenize___function">:tokenize_function
+ The tokenize() function</a>
+ </h6>
+<a name="spirit.lex.abstracts.lexer_tokenizing._generate_static_function_the_generate_static___function"></a><h6>
+<a name="id744532"></a>
+ <a class="link" href="lexer_tokenizing.html#spirit.lex.abstracts.lexer_tokenizing._generate_static_function_the_generate_static___function">:generate_static_function
+ The generate_static() function</a>
+ </h6>
 </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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/lex/quick_reference.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/quick_reference.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/quick_reference.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -1,13 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Quick Reference</title>
+<title>Quick Reference</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../index.html" title="Spirit 2.0">
-<link rel="up" href="../lex.html" title=" Spirit.Lex">
-<link rel="prev" href="abstracts/lexer_states.html" title=" Lexer States">
-<link rel="next" href="reference.html" title=" Reference">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../index.html" title="Spirit 2.1">
+<link rel="up" href="../lex.html" title="Spirit.Lex">
+<link rel="prev" href="abstracts/lexer_states.html" title="Lexer States">
+<link rel="next" href="reference.html" title="Reference">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -22,12 +22,13 @@
 <div class="spirit-nav">
 <a accesskey="p" href="abstracts/lexer_states.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../lex.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="reference.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title">
-<a name="spirit.lex.quick_reference"></a> Quick Reference</h3></div></div></div></div>
+<div class="section" title="Quick Reference"><div class="titlepage"><div><div><h3 class="title">
+<a name="spirit.lex.quick_reference"></a><a class="link" href="quick_reference.html" title="Quick Reference"> Quick Reference</a>
+</h3></div></div></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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/lex/reference.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/reference.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/reference.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -1,12 +1,12 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Reference</title>
+<title>Reference</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../index.html" title="Spirit 2.0">
-<link rel="up" href="../lex.html" title=" Spirit.Lex">
-<link rel="prev" href="quick_reference.html" title=" Quick Reference">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../index.html" title="Spirit 2.1">
+<link rel="up" href="../lex.html" title="Spirit.Lex">
+<link rel="prev" href="quick_reference.html" title="Quick Reference">
 <link rel="next" href="reference/lexer_class.html" title="Lexer Class">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,9 +22,10 @@
 <div class="spirit-nav">
 <a accesskey="p" href="quick_reference.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../lex.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="reference/lexer_class.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section" title="Reference">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="spirit.lex.reference"></a> Reference</h3></div></div></div>
+<a name="spirit.lex.reference"></a><a class="link" href="reference.html" title="Reference"> Reference</a>
+</h3></div></div></div>
 <div class="toc"><dl>
 <dt><span class="section"> Concepts</span></dt>
 <dt><span class="section">Lexer Class</span></dt>
@@ -32,29 +33,543 @@
 <dt><span class="section">TokenDef Class</span></dt>
 <dt><span class="section">TokenSet Class</span></dt>
 </dl></div>
-<div class="section" lang="en">
+<div class="section" title="Concepts">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.reference.concepts"></a> Concepts</h4></div></div></div>
+<a name="spirit.lex.reference.concepts"></a><a class="link" href="reference.html#spirit.lex.reference.concepts" title="Concepts"> Concepts</a>
+</h4></div></div></div>
 <div class="toc"><dl>
 <dt><span class="section">Lexer</span></dt>
 <dt><span class="section">Token</span></dt>
 <dt><span class="section">TokenDef</span></dt>
 <dt><span class="section">TokenSet</span></dt>
 </dl></div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.lex.reference.concepts.lexer"></a>Lexer</h5></div></div></div></div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.lex.reference.concepts.token"></a>Token</h5></div></div></div></div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.lex.reference.concepts.tokendef"></a>TokenDef</h5></div></div></div></div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.lex.reference.concepts.tokenset"></a>TokenSet</h5></div></div></div></div>
+<div class="section" title="Lexer">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="spirit.lex.reference.concepts.lexer"></a><a class="link" href="reference.html#spirit.lex.reference.concepts.lexer" title="Lexer">Lexer</a>
+</h5></div></div></div>
+<div class="table">
+<a name="id747799"></a><p class="title"><b>Table 8. Regular expressions support</b></p>
+<div class="table-contents"><table class="table" summary="Regular expressions support">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Expression
+ </p>
+ </th>
+<th>
+ <p>
+ Meaning
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">x</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Match any character <code class="computeroutput"><span class="identifier">x</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">.</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Match any except newline (or optionally <span class="bold"><strong>any</strong></span>
+ character)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">[</span><span class="identifier">xyz</span><span class="special">]</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ A character class; in this case matches <code class="computeroutput"><span class="identifier">x</span></code>,
+ <code class="computeroutput"><span class="identifier">y</span></code> or <code class="computeroutput"><span class="identifier">z</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">[</span><span class="identifier">abj</span><span class="special">-</span><span class="identifier">oZ</span><span class="special">]</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ A character class with a range in it; matches <code class="computeroutput"><span class="identifier">a</span></code>,
+ <code class="computeroutput"><span class="identifier">b</span></code> any letter from
+ <code class="computeroutput"><span class="identifier">j</span></code> through <code class="computeroutput"><span class="identifier">o</span></code> or a <code class="computeroutput"><span class="identifier">Z</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">[^</span><span class="identifier">A</span><span class="special">-</span><span class="identifier">Z</span><span class="special">]</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ A negated character class i.e. any character but those in the class.
+ In this case, any character except an uppercase letter
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">r</span><span class="special">*</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Zero or more r's (greedy), where r is any regular expression
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">r</span><span class="special">*?</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Zero or more r's (abstemious), where r is any regular expression
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">r</span><span class="special">+</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ One or more r's (greedy)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">r</span><span class="special">+?</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ One or more r's (abstemious)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">r</span><span class="special">?</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Zero or one r's (greedy), i.e. optional
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">r</span><span class="special">??</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Zero or one r's (abstemious), i.e. optional
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">r</span><span class="special">{</span><span class="number">2</span><span class="special">,</span><span class="number">5</span><span class="special">}</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Anywhere between two and five r's (greedy)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">r</span><span class="special">{</span><span class="number">2</span><span class="special">,</span><span class="number">5</span><span class="special">}?</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Anywhere between two and five r's (abstemious)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">r</span><span class="special">{</span><span class="number">2</span><span class="special">,}</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Two or more r's (greedy)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">r</span><span class="special">{</span><span class="number">2</span><span class="special">,}?</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Two or more r's (abstemious)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">r</span><span class="special">{</span><span class="number">4</span><span class="special">}</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Exactly four r's
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">{</span><span class="identifier">NAME</span><span class="special">}</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The macro <code class="computeroutput"><span class="identifier">NAME</span></code>
+ (see below)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="string">"[xyz]\"foo"</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The literal string <code class="computeroutput"><span class="special">[</span><span class="identifier">xyz</span><span class="special">]\</span><span class="error">"</span><span class="identifier">foo</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">\</span><span class="identifier">X</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ If X is <code class="computeroutput"><span class="identifier">a</span></code>, <code class="computeroutput"><span class="identifier">b</span></code>, <code class="computeroutput"><span class="identifier">e</span></code>,
+ <code class="computeroutput"><span class="identifier">n</span></code>, <code class="computeroutput"><span class="identifier">r</span></code>, <code class="computeroutput"><span class="identifier">f</span></code>,
+ <code class="computeroutput"><span class="identifier">t</span></code>, <code class="computeroutput"><span class="identifier">v</span></code> then the ANSI-C interpretation
+ of <code class="computeroutput"><span class="special">\</span><span class="identifier">x</span></code>.
+ Otherwise a literal <code class="computeroutput"><span class="identifier">X</span></code>
+ (used to escape operators such as <code class="computeroutput"><span class="special">*</span></code>)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">\</span><span class="number">0</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ A NUL character (ASCII code 0)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">\</span><span class="number">123</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The character with octal value 123
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">\</span><span class="identifier">x2a</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The character with hexadecimal value 2a
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">\</span><span class="identifier">cX</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ A named control character <code class="computeroutput"><span class="identifier">X</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">\</span><span class="identifier">d</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ A shortcut for <code class="computeroutput"><span class="special">[</span><span class="number">0</span><span class="special">-</span><span class="number">9</span><span class="special">]</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">\</span><span class="identifier">D</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ A shortcut for <code class="computeroutput"><span class="special">[^</span><span class="number">0</span><span class="special">-</span><span class="number">9</span><span class="special">]</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">\</span><span class="identifier">s</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ A shortcut for <code class="computeroutput"><span class="special">[\</span><span class="identifier">x20</span><span class="special">\</span><span class="identifier">t</span><span class="special">\</span><span class="identifier">n</span><span class="special">\</span><span class="identifier">r</span><span class="special">\</span><span class="identifier">f</span><span class="special">\</span><span class="identifier">v</span><span class="special">]</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">\</span><span class="identifier">S</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ A shortcut for <code class="computeroutput"><span class="special">[^\</span><span class="identifier">x20</span><span class="special">\</span><span class="identifier">t</span><span class="special">\</span><span class="identifier">n</span><span class="special">\</span><span class="identifier">r</span><span class="special">\</span><span class="identifier">f</span><span class="special">\</span><span class="identifier">v</span><span class="special">]</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">\</span><span class="identifier">w</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ A shortcut for <code class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">-</span><span class="identifier">zA</span><span class="special">-</span><span class="identifier">Z0</span><span class="special">-</span><span class="number">9</span><span class="identifier">_</span><span class="special">]</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">\</span><span class="identifier">W</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ A shortcut for <code class="computeroutput"><span class="special">[^</span><span class="identifier">a</span><span class="special">-</span><span class="identifier">zA</span><span class="special">-</span><span class="identifier">Z0</span><span class="special">-</span><span class="number">9</span><span class="identifier">_</span><span class="special">]</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">(</span><span class="identifier">r</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Match an <code class="computeroutput"><span class="identifier">r</span></code>; parenthesis
+ are used to override precedence (see below)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">(?</span><span class="identifier">r</span><span class="special">-</span><span class="identifier">s</span><span class="special">:</span><span class="identifier">pattern</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ apply option 'r' and omit option 's' while interpreting pattern.
+ Options may be zero or more of the characters 'i' or 's'. 'i' means
+ case-insensitive. '-i' means case-sensitive. 's' alters the meaning
+ of the '.' syntax to match any single character whatsoever. '-s'
+ alters the meaning of '.' to match any character except '<code class="computeroutput"><span class="special">\</span><span class="identifier">n</span></code>'.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">rs</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The regular expression <code class="computeroutput"><span class="identifier">r</span></code>
+ followed by the regular expression <code class="computeroutput"><span class="identifier">s</span></code>
+ (a sequence)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">r</span><span class="special">|</span><span class="identifier">s</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Either an <code class="computeroutput"><span class="identifier">r</span></code> or
+ and <code class="computeroutput"><span class="identifier">s</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">^</span><span class="identifier">r</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ An <code class="computeroutput"><span class="identifier">r</span></code> but only at
+ the beginning of a line (i.e. when just starting to scan, or right
+ after a newline has been scanned)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">r</span></code>$
+ </p>
+ </td>
+<td>
+ <p>
+ An <code class="computeroutput"><span class="identifier">r</span></code> but only at
+ the end of a line (i.e. just before a newline)
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><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>
+ POSIX character classes are not currently supported, due to performance
+ issues when creating them in wide character mode.
+ </p></td></tr>
+</table></div>
+<a name="spirit.lex.reference.concepts.lexer.regular_expression_precedence"></a><h6>
+<a name="id749473"></a>
+ <a class="link" href="reference.html#spirit.lex.reference.concepts.lexer.regular_expression_precedence">Regular
+ Expression Precedence</a>
+ </h6>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+<code class="computeroutput"><span class="identifier">rs</span></code> has highest precedence
+ </li>
+<li class="listitem">
+<code class="computeroutput"><span class="identifier">r</span><span class="special">*</span></code>
+ has next highest (<code class="computeroutput"><span class="special">+</span></code>,
+ <code class="computeroutput"><span class="special">?</span></code>, <code class="computeroutput"><span class="special">{</span><span class="identifier">n</span><span class="special">,</span><span class="identifier">m</span><span class="special">}</span></code>
+ have the same precedence as <code class="computeroutput"><span class="special">*</span></code>)
+ </li>
+<li class="listitem">
+<code class="computeroutput"><span class="identifier">r</span><span class="special">|</span><span class="identifier">s</span></code> has the lowest precedence
+ </li>
+</ul></div>
+<a name="spirit.lex.reference.concepts.lexer.macros"></a><h6>
+<a name="id749576"></a>
+ <a class="link" href="reference.html#spirit.lex.reference.concepts.lexer.macros">Macros</a>
+ </h6>
+<p>
+ Regular expressions can be given a name and referred to in rules using
+ the syntax <code class="computeroutput"><span class="special">{</span><span class="identifier">NAME</span><span class="special">}</span></code> where <code class="computeroutput"><span class="identifier">NAME</span></code>
+ is the name you have given to the macro. A macro name can be at most
+ 30 characters long and must start with a <code class="computeroutput"><span class="identifier">_</span></code>
+ or a letter. Subsequent characters can be <code class="computeroutput"><span class="identifier">_</span></code>,
+ <code class="computeroutput"><span class="special">-</span></code>, a letter or a decimal
+ digit. Use the <code class="computeroutput"><span class="identifier">rules</span><span class="special">::</span><span class="identifier">add_macro</span><span class="special">()</span></code> method to define a macro.
+ </p>
+</div>
+<div class="section" title="Token"><div class="titlepage"><div><div><h5 class="title">
+<a name="spirit.lex.reference.concepts.token"></a><a class="link" href="reference.html#spirit.lex.reference.concepts.token" title="Token">Token</a>
+</h5></div></div></div></div>
+<div class="section" title="TokenDef"><div class="titlepage"><div><div><h5 class="title">
+<a name="spirit.lex.reference.concepts.tokendef"></a><a class="link" href="reference.html#spirit.lex.reference.concepts.tokendef" title="TokenDef">TokenDef</a>
+</h5></div></div></div></div>
+<div class="section" title="TokenSet"><div class="titlepage"><div><div><h5 class="title">
+<a name="spirit.lex.reference.concepts.tokenset"></a><a class="link" href="reference.html#spirit.lex.reference.concepts.tokenset" title="TokenSet">TokenSet</a>
+</h5></div></div></div></div>
 </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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

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-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -3,10 +3,10 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Lexer Class</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
-<link rel="up" href="../reference.html" title=" Reference">
-<link rel="prev" href="../reference.html" title=" Reference">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="../reference.html" title="Reference">
 <link rel="next" href="token_class.html" title="Token Class">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,34 +22,35 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../reference.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="token_class.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section" title="Lexer Class">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.reference.lexer_class"></a>Lexer Class</h4></div></div></div>
-<a name="spirit.lex.reference.lexer_class.the_lexertl_lexer_class_implementing_the_dynamic_model"></a><h5>
-<a name="id505548"></a>
- <a href="lexer_class.html#spirit.lex.reference.lexer_class.the_lexertl_lexer_class_implementing_the_dynamic_model">The
+<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="id749699"></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>
- </h5>
-<a name="spirit.lex.reference.lexer_class.the_lexertl_actor_lexer_class_implementing_the_dynamic_model"></a><h5>
-<a name="id505576"></a>
- <a href="lexer_class.html#spirit.lex.reference.lexer_class.the_lexertl_actor_lexer_class_implementing_the_dynamic_model">The
+ </h6>
+<a name="spirit.lex.reference.lexer_class.the_lexertl_actor_lexer_class_implementing_the_dynamic_model"></a><h6>
+<a name="id749712"></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>
- </h5>
-<a name="spirit.lex.reference.lexer_class.the_lexertl_static_lexer_class_implementing_the_static_model"></a><h5>
-<a name="id505606"></a>
- <a href="lexer_class.html#spirit.lex.reference.lexer_class.the_lexertl_static_lexer_class_implementing_the_static_model">The
+ </h6>
+<a name="spirit.lex.reference.lexer_class.the_lexertl_static_lexer_class_implementing_the_static_model"></a><h6>
+<a name="id749725"></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>
- </h5>
-<a name="spirit.lex.reference.lexer_class.the_lexertl_static_actor_lexer_class_implementing_the_static_model"></a><h5>
-<a name="id505637"></a>
- <a href="lexer_class.html#spirit.lex.reference.lexer_class.the_lexertl_static_actor_lexer_class_implementing_the_static_model">The
+ </h6>
+<a name="spirit.lex.reference.lexer_class.the_lexertl_static_actor_lexer_class_implementing_the_static_model"></a><h6>
+<a name="id749738"></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>
- </h5>
+ </h6>
 </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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/lex/reference/token_class.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/reference/token_class.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/reference/token_class.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -3,9 +3,9 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Token Class</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
-<link rel="up" href="../reference.html" title=" Reference">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
+<link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="lexer_class.html" title="Lexer Class">
 <link rel="next" href="tokendef_class.html" title="TokenDef Class">
 </head>
@@ -22,12 +22,13 @@
 <div class="spirit-nav">
 <a accesskey="p" href="lexer_class.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="tokendef_class.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.reference.token_class"></a>Token Class</h4></div></div></div></div>
+<div class="section" title="Token Class"><div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.lex.reference.token_class"></a><a class="link" href="token_class.html" title="Token Class">Token Class</a>
+</h4></div></div></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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/lex/reference/tokendef_class.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/reference/tokendef_class.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/reference/tokendef_class.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -3,9 +3,9 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>TokenDef Class</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
-<link rel="up" href="../reference.html" title=" Reference">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
+<link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="token_class.html" title="Token Class">
 <link rel="next" href="tokenset_class.html" title="TokenSet Class">
 </head>
@@ -22,12 +22,13 @@
 <div class="spirit-nav">
 <a accesskey="p" href="token_class.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="tokenset_class.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.reference.tokendef_class"></a>TokenDef Class</h4></div></div></div></div>
+<div class="section" title="TokenDef Class"><div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.lex.reference.tokendef_class"></a><a class="link" href="tokendef_class.html" title="TokenDef Class">TokenDef Class</a>
+</h4></div></div></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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/lex/reference/tokenset_class.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/reference/tokenset_class.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/reference/tokenset_class.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -3,9 +3,9 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>TokenSet Class</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
-<link rel="up" href="../reference.html" title=" Reference">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
+<link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="tokendef_class.html" title="TokenDef Class">
 <link rel="next" href="../../faq.html" title="FAQ">
 </head>
@@ -22,12 +22,13 @@
 <div class="spirit-nav">
 <a accesskey="p" href="tokendef_class.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="../../faq.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.reference.tokenset_class"></a>TokenSet Class</h4></div></div></div></div>
+<div class="section" title="TokenSet Class"><div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.lex.reference.tokenset_class"></a><a class="link" href="tokenset_class.html" title="TokenSet Class">TokenSet Class</a>
+</h4></div></div></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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/lex/tutorials.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/tutorials.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/tutorials.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -1,15 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Spirit.Lex
- Tutorials</title>
+<title>Spirit.Lex Tutorials</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../index.html" title="Spirit 2.0">
-<link rel="up" href="../lex.html" title=" Spirit.Lex">
-<link rel="prev" href="../lex.html" title=" Spirit.Lex">
-<link rel="next" href="tutorials/lexer_quickstart1.html" title=" Quickstart
- 1 - A word counter using Spirit.Lex">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../index.html" title="Spirit 2.1">
+<link rel="up" href="../lex.html" title="Spirit.Lex">
+<link rel="prev" href="../lex.html" title="Spirit.Lex">
+<link rel="next" href="tutorials/lexer_quickstart1.html" title="Quickstart 1 - A word counter using Spirit.Lex">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -24,11 +22,11 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../lex.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../lex.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/lexer_quickstart1.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section" title="Spirit.Lex Tutorials">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="spirit.lex.tutorials"></a><a href="tutorials.html" title=" Spirit.Lex
- Tutorials"> <span class="emphasis"><em>Spirit.Lex</em></span>
- Tutorials</a></h3></div></div></div>
+<a name="spirit.lex.tutorials"></a><a class="link" href="tutorials.html" title="Spirit.Lex Tutorials"> <span class="emphasis"><em>Spirit.Lex</em></span>
+ Tutorials</a>
+</h3></div></div></div>
 <div class="toc"><dl>
 <dt><span class="section"><a href="tutorials.html#spirit.lex.tutorials.lexer_tutorials"> <span class="emphasis"><em>Spirit.Lex</em></span>
         Tutorials Overview</a></span></dt>
@@ -39,11 +37,11 @@
 <dt><span class="section"><a href="tutorials/lexer_quickstart3.html"> Quickstart
         3 - Counting Words Using a Parser</a></span></dt>
 </dl></div>
-<div class="section" lang="en">
+<div class="section" title="Spirit.Lex Tutorials Overview">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.tutorials.lexer_tutorials"></a><a href="tutorials.html#spirit.lex.tutorials.lexer_tutorials" title=" Spirit.Lex
- Tutorials Overview"> <span class="emphasis"><em>Spirit.Lex</em></span>
- Tutorials Overview</a></h4></div></div></div>
+<a name="spirit.lex.tutorials.lexer_tutorials"></a><a class="link" href="tutorials.html#spirit.lex.tutorials.lexer_tutorials" title="Spirit.Lex Tutorials Overview"> <span class="emphasis"><em>Spirit.Lex</em></span>
+ Tutorials Overview</a>
+</h4></div></div></div>
 <p>
           The <span class="emphasis"><em>Spirit.Lex</em></span> library implements several components
           on top of possibly different lexer generator libraries. It exposes a pair
@@ -62,12 +60,12 @@
           generator library, all what needs to be implemented is a set of wrapper
           objects exposing a well defined interface as described in this documentation.
         </p>
-<div class="note"><table border="0" summary="Note">
+<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 colspan="2" align="left" valign="top"><p>
+<tr><td align="left" valign="top"><p>
             For the sake of clarity all examples in this documentation assume <span class="emphasis"><em>Spirit.Lex</em></span>
             to be used on top of Lexertl.
           </p></td></tr>
@@ -80,23 +78,23 @@
           Here is a (non-complete) list of features you can tweak to adjust the generated
           lexer instance to the actual needs:
         </p>
-<div class="itemizedlist"><ul type="disc">
-<li>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
             Select and customize the token type to be generated by the lexer instance.
           </li>
-<li>
+<li class="listitem">
             Select and customize the token value types the generated token instances
             will be able to hold.
           </li>
-<li>
+<li class="listitem">
             Select the iterator type of the underlying input stream, which will be
             used as the source for the character stream to tokenize.
           </li>
-<li>
+<li class="listitem">
             Customize the iterator type returned by the lexer to enable debug support,
             special handling of certain input sequences, etc.
           </li>
-<li>
+<li class="listitem">
             Select the <span class="emphasis"><em>dynamic</em></span> or the <span class="emphasis"><em>static</em></span>
             runtime model for the lexical analyzer.
           </li>
@@ -109,17 +107,14 @@
 <p>
           The series of tutorial examples of this section will guide you through
           some common use cases helping to understand the big picture. The first
- two quick start examples (<a href="tutorials/lexer_quickstart1.html" title=" Quickstart
- 1 - A word counter using Spirit.Lex">Lex
+ two quick start examples (<a class="link" href="tutorials/lexer_quickstart1.html" title="Quickstart 1 - A word counter using Spirit.Lex">Lex
           Quickstart 1 - A word counter using <span class="emphasis"><em>Spirit.Lex</em></span></a>
- and <a href="tutorials/lexer_quickstart2.html" title=" Quickstart
- 2 - A better word counter using Spirit.Lex">Lex Quickstart
+ and <a class="link" href="tutorials/lexer_quickstart2.html" title="Quickstart 2 - A better word counter using Spirit.Lex">Lex Quickstart
           2 - A better word counter using <span class="emphasis"><em>Spirit.Lex</em></span></a>)
           introduce the <span class="emphasis"><em>Spirit.Lex</em></span> library while building two
           standalone applications, not being connected to or depending on any other
           part of Spirit. The
- section <a href="tutorials/lexer_quickstart3.html" title=" Quickstart
- 3 - Counting Words Using a Parser">Lex Quickstart
+ section <a class="link" href="tutorials/lexer_quickstart3.html" title="Quickstart 3 - Counting Words Using a Parser">Lex Quickstart
           3 - Counting Words Using a Parser</a> demonstrates how to use a lexer
           in conjunction with a parser (where certainly the parser is built using
           <span class="emphasis"><em>Spirit.Qi</em></span>).
@@ -128,8 +123,8 @@
 </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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

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-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -1,17 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Quickstart
- 1 - A word counter using Spirit.Lex</title>
+<title>Quickstart 1 - A word counter using Spirit.Lex</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
-<link rel="up" href="../tutorials.html" title=" Spirit.Lex
- Tutorials">
-<link rel="prev" href="../tutorials.html" title=" Spirit.Lex
- Tutorials">
-<link rel="next" href="lexer_quickstart2.html" title=" Quickstart
- 2 - A better word counter using Spirit.Lex">
+<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="Spirit.Lex Tutorials">
+<link rel="prev" href="../tutorials.html" title="Spirit.Lex Tutorials">
+<link rel="next" href="lexer_quickstart2.html" title="Quickstart 2 - A better word counter using Spirit.Lex">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -26,11 +22,11 @@
 <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="lexer_quickstart2.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section" title="Quickstart 1 - A word counter using Spirit.Lex">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.tutorials.lexer_quickstart1"></a><a href="lexer_quickstart1.html" title=" Quickstart
- 1 - A word counter using Spirit.Lex"> Quickstart
- 1 - A word counter using <span class="emphasis"><em>Spirit.Lex</em></span></a></h4></div></div></div>
+<a name="spirit.lex.tutorials.lexer_quickstart1"></a><a class="link" href="lexer_quickstart1.html" title="Quickstart 1 - A word counter using Spirit.Lex"> Quickstart
+ 1 - A word counter using <span class="emphasis"><em>Spirit.Lex</em></span></a>
+</h4></div></div></div>
 <p>
           <span class="emphasis"><em>Spirit.Lex</em></span> is very modular, which follows the general
           building principle of the Spirit
@@ -38,28 +34,28 @@
           with the other parts of Spirit
           but nevertheless can be used separately to build standalone lexical analyzers.
           The first quick start example describes a standalone application: counting
- characters, words and lines in a file, very similar to what the well known
- Unix command <tt class="computeroutput"><span class="identifier">wc</span></tt> is doing
+ characters, words, and lines in a file, very similar to what the well known
+ Unix command <code class="computeroutput"><span class="identifier">wc</span></code> is doing
           (for the full example code see here: word_count_functor.cpp).
         </p>
-<a name="spirit.lex.tutorials.lexer_quickstart1.prerequisites"></a><h5>
-<a name="id488986"></a>
- Prerequisites
- </h5>
+<a name="spirit.lex.tutorials.lexer_quickstart1.prerequisites"></a><h6>
+<a name="id732485"></a>
+ <a class="link" href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.prerequisites">Prerequisites</a>
+ </h6>
 <p>
- The only required <tt class="computeroutput"><span class="preprocessor">#include</span></tt>
+ The only required <code class="computeroutput"><span class="preprocessor">#include</span></code>
           specific to <span class="emphasis"><em>Spirit.Lex</em></span> follows. It is a wrapper for
           all necessary definitions to use <span class="emphasis"><em>Spirit.Lex</em></span> in a standalone
           fashion, and on top of the Lexertl
- library. Additionally we <tt class="computeroutput"><span class="preprocessor">#include</span></tt>
- two of the Boost headers to define <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">bind</span><span class="special">()</span></tt> and <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ref</span><span class="special">()</span></tt>.
+ library. Additionally we <code class="computeroutput"><span class="preprocessor">#include</span></code>
+ two of the Boost headers to define <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">bind</span><span class="special">()</span></code> and <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ref</span><span class="special">()</span></code>.
         </p>
 <p>
           </p>
 <p>
             
 </p>
-<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">lex_lexer_lexertl</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">lex_lexertl</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">bind</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">ref</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
@@ -75,18 +71,17 @@
 <p>
             
 </p>
-<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">;</span>
-<span class="keyword">using</span> <span class="keyword">namespace</span> <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>
+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <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>
 </pre>
 <p>
           </p>
 <p>
         </p>
-<a name="spirit.lex.tutorials.lexer_quickstart1.defining_tokens"></a><h5>
-<a name="id489371"></a>
- <a href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.defining_tokens">Defining
+<a name="spirit.lex.tutorials.lexer_quickstart1.defining_tokens"></a><h6>
+<a name="id732730"></a>
+ <a class="link" href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.defining_tokens">Defining
           Tokens</a>
- </h5>
+ </h6>
 <p>
           The most important step while creating a lexer using <span class="emphasis"><em>Spirit.Lex</em></span>
           is to define the tokens to be recognized in the input sequence. This is
@@ -99,16 +94,16 @@
 <p>
           </p>
 <p>
- The template <tt class="computeroutput"><span class="identifier">word_count_tokens</span></tt>
- defines three different tokens: <tt class="computeroutput"><span class="identifier">ID_WORD</span></tt>,
- <tt class="computeroutput"><span class="identifier">ID_EOL</span></tt>, and <tt class="computeroutput"><span class="identifier">ID_CHAR</span></tt>, representing a word (anything
+ The template <code class="computeroutput"><span class="identifier">word_count_tokens</span></code>
+ defines three different tokens: <code class="computeroutput"><span class="identifier">ID_WORD</span></code>,
+ <code class="computeroutput"><span class="identifier">ID_EOL</span></code>, and <code class="computeroutput"><span class="identifier">ID_CHAR</span></code>, representing a word (anything
             except a whitespace or a newline), a newline character, and any other
- character (<tt class="computeroutput"><span class="identifier">ID_WORD</span></tt>,
- <tt class="computeroutput"><span class="identifier">ID_EOL</span></tt>, and <tt class="computeroutput"><span class="identifier">ID_CHAR</span></tt> are enum values representing
+ character (<code class="computeroutput"><span class="identifier">ID_WORD</span></code>,
+ <code class="computeroutput"><span class="identifier">ID_EOL</span></code>, and <code class="computeroutput"><span class="identifier">ID_CHAR</span></code> are enum values representing
             the token ids, but could be anything else convertible to an integer as
             well). The direct base class of any token definition class needs to be
- the template <tt class="computeroutput"><span class="identifier">lexer_def</span><span class="special">&lt;&gt;</span></tt>, where the corresponding template
- parameter (here: <tt class="computeroutput"><span class="identifier">lexertl_lexer</span><span class="special">&lt;</span><span class="identifier">BaseIterator</span><span class="special">&gt;</span></tt>) defines which underlying lexer engine
+ the template <code class="computeroutput"><span class="identifier">lexer_def</span><span class="special">&lt;&gt;</span></code>, where the corresponding template
+ parameter (here: <code class="computeroutput"><span class="identifier">lexertl_lexer</span><span class="special">&lt;</span><span class="identifier">BaseIterator</span><span class="special">&gt;</span></code>) defines which underlying lexer engine
             has to be used to provide the required state machine functionality. In
             this example we use the Lexertl based lexer engine as the underlying
             lexer type.
@@ -119,14 +114,13 @@
             
 </p>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Lexer</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">word_count_tokens</span> <span class="special">:</span> <span class="identifier">lexer_def</span><span class="special">&lt;</span><span class="identifier">Lexer</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">word_count_tokens</span> <span class="special">:</span> <span class="identifier">lexer</span><span class="special">&lt;</span><span class="identifier">Lexer</span><span class="special">&gt;</span>
 <span class="special">{</span>
- <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Self</span><span class="special">&gt;</span>
- <span class="keyword">void</span> <span class="identifier">def</span> <span class="special">(</span><span class="identifier">Self</span><span class="special">&amp;</span> <span class="identifier">self</span><span class="special">)</span>
+ <span class="identifier">word_count_tokens</span><span class="special">()</span>
     <span class="special">{</span>
         <span class="comment">// define tokens (the regular expression to match and the corresponding
 </span> <span class="comment">// token id) and add them to the lexer
-</span> <span class="identifier">self</span><span class="special">.</span><span class="identifier">add</span>
+</span> <span class="keyword">this</span><span class="special">-&gt;</span><span class="identifier">self</span><span class="special">.</span><span class="identifier">add</span>
             <span class="special">(</span><span class="string">"[^ \t\n]+"</span><span class="special">,</span> <span class="identifier">ID_WORD</span><span class="special">)</span> <span class="comment">// words (anything except ' ', '\t' or '\n')
 </span> <span class="special">(</span><span class="string">"\n"</span><span class="special">,</span> <span class="identifier">ID_EOL</span><span class="special">)</span> <span class="comment">// newline characters
 </span> <span class="special">(</span><span class="string">"."</span><span class="special">,</span> <span class="identifier">ID_CHAR</span><span class="special">)</span> <span class="comment">// anything else is a plain character
@@ -138,18 +132,18 @@
           </p>
 <p>
         </p>
-<a name="spirit.lex.tutorials.lexer_quickstart1.doing_the_useful_work"></a><h5>
-<a name="id489877"></a>
- <a href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.doing_the_useful_work">Doing
+<a name="spirit.lex.tutorials.lexer_quickstart1.doing_the_useful_work"></a><h6>
+<a name="id733038"></a>
+ <a class="link" href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.doing_the_useful_work">Doing
           the Useful Work</a>
- </h5>
+ </h6>
 <p>
           We will use a setup, where we want the <span class="emphasis"><em>Spirit.Lex</em></span>
           library to invoke a given function after any of of the generated tokens
           is recognized. For this reason we need to implement a functor taking at
           least the generated token as an argument and returning a boolean value
           allowing to stop the tokenization process. The default token type used
- in this example carries a token value of the type <tt class="computeroutput"><span class="identifier">iterator_range</span><span class="special">&lt;</span><span class="identifier">BaseIterator</span><span class="special">&gt;</span></tt> pointing to the matched range in the
+ in this example carries a token value of the type <code class="computeroutput"><span class="identifier">iterator_range</span><span class="special">&lt;</span><span class="identifier">BaseIterator</span><span class="special">&gt;</span></code> pointing to the matched range in the
           underlying input sequence.
         </p>
 <p>
@@ -175,8 +169,8 @@
         <span class="keyword">switch</span> <span class="special">(</span><span class="identifier">t</span><span class="special">.</span><span class="identifier">id</span><span class="special">())</span> <span class="special">{</span>
         <span class="keyword">case</span> <span class="identifier">ID_WORD</span><span class="special">:</span> <span class="comment">// matched a word
 </span> <span class="comment">// since we're using a default token type in this example, every
-</span> <span class="comment">// token instance contains a `iterator_range&lt;BaseIterator&gt;` as its
-</span> <span class="comment">// token value pointing to the matched character sequence in the input
+</span> <span class="comment">// token instance contains a `iterator_range&lt;BaseIterator&gt;` as its token
+</span> <span class="comment">// attribute pointing to the matched character sequence in the input
 </span> <span class="special">++</span><span class="identifier">w</span><span class="special">;</span> <span class="identifier">c</span> <span class="special">+=</span> <span class="identifier">t</span><span class="special">.</span><span class="identifier">value</span><span class="special">().</span><span class="identifier">size</span><span class="special">();</span>
             <span class="keyword">break</span><span class="special">;</span>
         <span class="keyword">case</span> <span class="identifier">ID_EOL</span><span class="special">:</span> <span class="comment">// matched a newline character
@@ -196,26 +190,26 @@
         </p>
 <p>
           All what's left is to write some boilerplate code helping to tie together
- the pieces described so far. To simplify this example we call the <tt class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">tokenize</span><span class="special">()</span></tt>
+ the pieces described so far. To simplify this example we call the <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">tokenize</span><span class="special">()</span></code>
           function implemented in <span class="emphasis"><em>Spirit.Lex</em></span> (for a more detailed
- description of this function see here: <span class="bold"><b>FIXME</b></span>),
+ description of this function see here: <span class="bold"><strong>FIXME</strong></span>),
           even if we could have written a loop to iterate over the lexer iterators
- [<tt class="computeroutput"><span class="identifier">first</span></tt>, <tt class="computeroutput"><span class="identifier">last</span></tt>)
+ [<code class="computeroutput"><span class="identifier">first</span></code>, <code class="computeroutput"><span class="identifier">last</span></code>)
           as well.
         </p>
-<a name="spirit.lex.tutorials.lexer_quickstart1.pulling_everything_together"></a><h5>
-<a name="id490577"></a>
- <a href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.pulling_everything_together">Pulling
+<a name="spirit.lex.tutorials.lexer_quickstart1.pulling_everything_together"></a><h6>
+<a name="id733802"></a>
+ <a class="link" href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.pulling_everything_together">Pulling
           Everything Together</a>
- </h5>
+ </h6>
 <p>
           </p>
 <p>
- The main function simply loads the given file into memory (as a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></tt>), instantiates an instance of
- the token definition template using the correct iterator type (<tt class="computeroutput"><span class="identifier">word_count_tokens</span><span class="special">&lt;</span><span class="keyword">char</span> <span class="keyword">const</span><span class="special">*&gt;</span></tt>), and finally calls <tt class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">tokenize</span></tt>, passing an instance of the
- counter functor defined above. The return value of <tt class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">tokenize</span></tt>
- will be <tt class="computeroutput"><span class="keyword">true</span></tt> if the whole
- input sequence has been successfully tokenized, and <tt class="computeroutput"><span class="keyword">false</span></tt>
+ The main function simply loads the given file into memory (as a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></code>), instantiates an instance of
+ the token definition template using the correct iterator type (<code class="computeroutput"><span class="identifier">word_count_tokens</span><span class="special">&lt;</span><span class="keyword">char</span> <span class="keyword">const</span><span class="special">*&gt;</span></code>), and finally calls <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">tokenize</span></code>, passing an instance of the
+ counter functor defined above. The return value of <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">tokenize</span></code>
+ will be <code class="computeroutput"><span class="keyword">true</span></code> if the whole
+ input sequence has been successfully tokenized, and <code class="computeroutput"><span class="keyword">false</span></code>
             otherwise.
           </p>
 <p>
@@ -232,13 +226,13 @@
 </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="comment">// create the token definition instance needed to invoke the lexical analyzer
-</span> <span class="identifier">word_count_tokens</span><span class="special">&lt;</span><span class="identifier">lexertl_lexer</span><span class="special">&lt;&gt;</span> <span class="special">&gt;</span> <span class="identifier">word_count_functor</span><span class="special">;</span>
+</span> <span class="identifier">word_count_tokens</span><span class="special">&lt;</span><span class="identifier">lexertl</span><span class="special">::</span><span class="identifier">lexer</span><span class="special">&lt;&gt;</span> <span class="special">&gt;</span> <span class="identifier">word_count_functor</span><span class="special">;</span>
 
     <span class="comment">// tokenize the given string, the bound functor gets invoked for each of
 </span> <span class="comment">// the matched tokens
 </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="keyword">bool</span> <span class="identifier">r</span> <span class="special">=</span> <span class="identifier">lex</span><span class="special">::</span><span class="identifier">tokenize</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">make_lexer</span><span class="special">(</span><span class="identifier">word_count_functor</span><span class="special">),</span>
+ <span class="keyword">bool</span> <span class="identifier">r</span> <span class="special">=</span> <span class="identifier">tokenize</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_functor</span><span class="special">,</span>
         <span class="identifier">boost</span><span class="special">::</span><span class="identifier">bind</span><span class="special">(</span><span class="identifier">counter</span><span class="special">(),</span> <span class="identifier">_1</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">c</span><span class="special">),</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">w</span><span class="special">),</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">l</span><span class="special">)));</span>
 
     <span class="comment">// print results
@@ -258,23 +252,23 @@
           </p>
 <p>
         </p>
-<a name="spirit.lex.tutorials.lexer_quickstart1.comparing__emphasis_spirit_lex__emphasis__with__ulink_url__http___flex_sourceforge_net___flex__ulink_"></a><h5>
-<a name="id491716"></a>
- <a href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.comparing__emphasis_spirit_lex__emphasis__with__ulink_url__http___flex_sourceforge_net___flex__ulink_">Comparing
+<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="id734625"></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>
- </h5>
+ </h6>
 <p>
- This example was deliberately chosen to be similar as much as possible
+ This example was deliberately chosen to be as much as possible similar
           to the equivalent Flex
           program (see below), which isn't too different from what has to be written
           when using <span class="emphasis"><em>Spirit.Lex</em></span>.
         </p>
-<div class="note"><table border="0" summary="Note">
+<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 colspan="2" align="left" valign="top"><p>
+<tr><td align="left" valign="top"><p>
             Interestingly enough, performance comparisons of lexical analyzers written
             using <span class="emphasis"><em>Spirit.Lex</em></span> with equivalent programs generated
             by Flex show that both
@@ -341,8 +335,8 @@
 </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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

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-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -1,17 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Quickstart
- 2 - A better word counter using Spirit.Lex</title>
+<title>Quickstart 2 - A better word counter using Spirit.Lex</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
-<link rel="up" href="../tutorials.html" title=" Spirit.Lex
- Tutorials">
-<link rel="prev" href="lexer_quickstart1.html" title=" Quickstart
- 1 - A word counter using Spirit.Lex">
-<link rel="next" href="lexer_quickstart3.html" title=" Quickstart
- 3 - Counting Words Using a Parser">
+<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="Spirit.Lex Tutorials">
+<link rel="prev" href="lexer_quickstart1.html" title="Quickstart 1 - A word counter using Spirit.Lex">
+<link rel="next" href="lexer_quickstart3.html" title="Quickstart 3 - Counting Words Using a Parser">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -26,30 +22,29 @@
 <div class="spirit-nav">
 <a accesskey="p" href="lexer_quickstart1.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="lexer_quickstart3.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section" title="Quickstart 2 - A better word counter using Spirit.Lex">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.tutorials.lexer_quickstart2"></a><a href="lexer_quickstart2.html" title=" Quickstart
- 2 - A better word counter using Spirit.Lex"> Quickstart
- 2 - A better word counter using <span class="emphasis"><em>Spirit.Lex</em></span></a></h4></div></div></div>
+<a name="spirit.lex.tutorials.lexer_quickstart2"></a><a class="link" href="lexer_quickstart2.html" title="Quickstart 2 - A better word counter using Spirit.Lex"> Quickstart
+ 2 - A better word counter using <span class="emphasis"><em>Spirit.Lex</em></span></a>
+</h4></div></div></div>
 <p>
           People knowing Flex will
- probably complain about the example from the section <a href="lexer_quickstart1.html" title=" Quickstart
- 1 - A word counter using Spirit.Lex">Lex
+ probably complain about the example from the section <a class="link" href="lexer_quickstart1.html" title="Quickstart 1 - A word counter using Spirit.Lex">Lex
           Quickstart 1 - A word counter using <span class="emphasis"><em>Spirit.Lex</em></span></a>
           as being overly complex and not being written to leverage the possibilities
           provided by this tool. In particular the previous example did not directly
- use the lexer actions to count the lines, words and characters. So the
+ use the lexer actions to count the lines, words, and characters. So the
           example provided in this step of the tutorial will show how to use semantic
           actions in <span class="emphasis"><em>Spirit.Lex</em></span>. Even if it still will allow
           to count text elements only it introduces other new concepts and configuration
           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><h5>
-<a name="id492776"></a>
- Prerequisites
- </h5>
+<a name="spirit.lex.tutorials.lexer_quickstart2.prerequisites"></a><h6>
+<a name="id735401"></a>
+ <a class="link" href="lexer_quickstart2.html#spirit.lex.tutorials.lexer_quickstart2.prerequisites">Prerequisites</a>
+ </h6>
 <p>
- In addition to the only required <tt class="computeroutput"><span class="preprocessor">#include</span></tt>
+ In addition to the only required <code class="computeroutput"><span class="preprocessor">#include</span></code>
           specific to <span class="emphasis"><em>Spirit.Lex</em></span> this example needs to include
           a couple of header files from the Phoenix2
           library. This example shows how to attach functors to token definitions,
@@ -65,8 +60,7 @@
 <p>
             
 </p>
-<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">support_argument</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">lex_lexer_lexertl</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">lex_lexertl</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">phoenix_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">phoenix_statement</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">phoenix_algorithm</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
@@ -119,18 +113,18 @@
           </p>
 <p>
         </p>
-<a name="spirit.lex.tutorials.lexer_quickstart2.semantic_actions_in__emphasis_spirit_lex__emphasis_"></a><h5>
-<a name="id493728"></a>
- <a href="lexer_quickstart2.html#spirit.lex.tutorials.lexer_quickstart2.semantic_actions_in__emphasis_spirit_lex__emphasis_">Semantic
+<a name="spirit.lex.tutorials.lexer_quickstart2.semantic_actions_in__emphasis_spirit_lex__emphasis_"></a><h6>
+<a name="id737157"></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>
- </h5>
+ </h6>
 <p>
           <span class="emphasis"><em>Spirit.Lex</em></span> uses a very similar way of associating
           actions with the token definitions (which should look familiar to anybody
           knowlegdeable with Spirit
- as well): specifying the operations to execute inside of a pair of <tt class="computeroutput"><span class="special">[]</span></tt> brackets. In order to be able to attach
+ as well): specifying the operations to execute inside of a pair of <code class="computeroutput"><span class="special">[]</span></code> brackets. In order to be able to attach
           semantic actions to token definitions for each of them there is defined
- an instance of a <tt class="computeroutput"><span class="identifier">token_def</span><span class="special">&lt;&gt;</span></tt>.
+ an instance of a <code class="computeroutput"><span class="identifier">token_def</span><span class="special">&lt;&gt;</span></code>.
         </p>
 <p>
           </p>
@@ -138,27 +132,25 @@
             
 </p>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Lexer</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">word_count_tokens</span> <span class="special">:</span> <span class="identifier">lexer_def</span><span class="special">&lt;</span><span class="identifier">Lexer</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">word_count_tokens</span> <span class="special">:</span> <span class="identifier">lexer</span><span class="special">&lt;</span><span class="identifier">Lexer</span><span class="special">&gt;</span>
 <span class="special">{</span>
     <span class="identifier">word_count_tokens</span><span class="special">()</span>
- <span class="special">:</span> <span class="identifier">c</span><span class="special">(</span><span class="number">0</span><span class="special">),</span> <span class="identifier">w</span><span class="special">(</span><span class="number">0</span><span class="special">),</span> <span class="identifier">l</span><span class="special">(</span><span class="number">0</span><span class="special">),</span>
- <span class="identifier">word</span><span class="special">(</span><span class="string">"[^ \t\n]+"</span><span class="special">),</span> <span class="identifier">eol</span><span class="special">(</span><span class="string">"\n"</span><span class="special">),</span> <span class="identifier">any</span><span class="special">(</span><span class="string">"."</span><span class="special">)</span> <span class="comment">// define tokens
-</span> <span class="special">{}</span>
-
- <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Self</span><span class="special">&gt;</span>
- <span class="keyword">void</span> <span class="identifier">def</span> <span class="special">(</span><span class="identifier">Self</span><span class="special">&amp;</span> <span class="identifier">self</span><span class="special">)</span>
+ <span class="special">:</span> <span class="identifier">c</span><span class="special">(</span><span class="number">0</span><span class="special">),</span> <span class="identifier">w</span><span class="special">(</span><span class="number">0</span><span class="special">),</span> <span class="identifier">l</span><span class="special">(</span><span class="number">0</span><span class="special">)</span>
+ <span class="special">,</span> <span class="identifier">word</span><span class="special">(</span><span class="string">"[^ \t\n]+"</span><span class="special">)</span> <span class="comment">// define tokens
+</span> <span class="special">,</span> <span class="identifier">eol</span><span class="special">(</span><span class="string">"\n"</span><span class="special">)</span>
+ <span class="special">,</span> <span class="identifier">any</span><span class="special">(</span><span class="string">"."</span><span class="special">)</span>
     <span class="special">{</span>
         <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">ref</span><span class="special">;</span>
         <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">distance</span><span class="special">;</span>
- <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">arg_names</span><span class="special">::</span><span class="identifier">_1</span><span class="special">;</span>
 
         <span class="comment">// associate tokens with the lexer
-</span> <span class="identifier">self</span> <span class="special">=</span> <span class="identifier">word</span> <span class="special">[++</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">w</span><span class="special">),</span> <span class="identifier">ref</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span> <span class="special">+=</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">_1</span><span class="special">)]</span>
+</span> <span class="keyword">this</span><span class="special">-&gt;</span><span class="identifier">self</span>
+ <span class="special">=</span> <span class="identifier">word</span> <span class="special">[++</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">w</span><span class="special">),</span> <span class="identifier">ref</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span> <span class="special">+=</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">_1</span><span class="special">)]</span>
             <span class="special">|</span> <span class="identifier">eol</span> <span class="special">[++</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">c</span><span class="special">),</span> <span class="special">++</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">l</span><span class="special">)]</span>
             <span class="special">|</span> <span class="identifier">any</span> <span class="special">[++</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">c</span><span class="special">)]</span>
             <span class="special">;</span>
     <span class="special">}</span>
-
+
     <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">c</span><span class="special">,</span> <span class="identifier">w</span><span class="special">,</span> <span class="identifier">l</span><span class="special">;</span>
     <span class="identifier">token_def</span><span class="special">&lt;&gt;</span> <span class="identifier">word</span><span class="special">,</span> <span class="identifier">eol</span><span class="special">,</span> <span class="identifier">any</span><span class="special">;</span>
 <span class="special">};</span>
@@ -168,7 +160,7 @@
 <p>
         </p>
 <p>
- The semantics of the shown code is as follows. The code inside the <tt class="computeroutput"><span class="special">[]</span></tt> brackets will be executed whenever the
+ The semantics of the shown code is as follows. The code inside the <code class="computeroutput"><span class="special">[]</span></code> brackets will be executed whenever the
           corresponding token has been matched by the lexical analyzer. This is very
           similar to Flex, where
           the action code associated with a token definition gets executed after
@@ -179,31 +171,31 @@
         </p>
 <pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span> <span class="special">(</span><span class="identifier">Range</span> <span class="identifier">r</span><span class="special">,</span> <span class="identifier">Idtype</span> <span class="identifier">id</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&amp;</span> <span class="identifier">matched</span><span class="special">,</span> <span class="identifier">Context</span><span class="special">&amp;</span> <span class="identifier">ctx</span><span class="special">);</span>
 </pre>
-<div class="variablelist">
+<div class="variablelist" title="where:">
 <p class="title"><b>where:</b></p>
 <dl>
-<dt><span class="term"><tt class="computeroutput"><span class="identifier">Range</span>
- <span class="identifier">r</span></tt></span></dt>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Range</span>
+ <span class="identifier">r</span></code></span></dt>
 <dd><p>
- This is a <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator_range</span></tt> holding two iterators
+ This is a <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator_range</span></code> holding two iterators
               pointing to the matched range in the underlying input sequence. The
               type of the held iterators is the same as specified while defining
- the type of the <tt class="computeroutput"><span class="identifier">lexertl_lexer</span><span class="special">&lt;...&gt;</span></tt> (its first template parameter).
+ the type of the <code class="computeroutput"><span class="identifier">lexertl_lexer</span><span class="special">&lt;...&gt;</span></code> (its first template parameter).
             </p></dd>
-<dt><span class="term"><tt class="computeroutput"><span class="identifier">Idtype</span>
- <span class="identifier">id</span></tt></span></dt>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Idtype</span>
+ <span class="identifier">id</span></code></span></dt>
 <dd><p>
- This is the token id of the type <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span></tt>
+ This is the token id of the type <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span></code>
               for the matched token.
             </p></dd>
-<dt><span class="term"><tt class="computeroutput"><span class="keyword">bool</span><span class="special">&amp;</span> <span class="identifier">matched</span></tt></span></dt>
+<dt><span class="term"><code class="computeroutput"><span class="keyword">bool</span><span class="special">&amp;</span> <span class="identifier">matched</span></code></span></dt>
 <dd><p>
- This boolean value is pre/initialized to <tt class="computeroutput"><span class="keyword">true</span></tt>.
- If the functor sets it to <tt class="computeroutput"><span class="keyword">false</span></tt>
+ This boolean value is pre/initialized to <code class="computeroutput"><span class="keyword">true</span></code>.
+ If the functor sets it to <code class="computeroutput"><span class="keyword">false</span></code>
               the lexer stops calling any semantic actions attached to this token
- and behaves as if the token have not been matched in the first place.
+ and behaves as if the token has not been matched in the first place.
             </p></dd>
-<dt><span class="term"><tt class="computeroutput"><span class="identifier">Context</span><span class="special">&amp;</span> <span class="identifier">ctx</span></tt></span></dt>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Context</span><span class="special">&amp;</span> <span class="identifier">ctx</span></code></span></dt>
 <dd><p>
               This is a reference to a lexer specific, unspecified type, providing
               the context for the current lexer state. It can be used to access different
@@ -226,27 +218,26 @@
           lexer semantic actions is to use Phoenix2.
           In this case you can access the four parameters described in the table
           above by using the predefined Spirit
- placeholders: <tt class="computeroutput"><span class="identifier">_1</span></tt> for the
- iterator range, <tt class="computeroutput"><span class="identifier">_2</span></tt> for
- the token id, <tt class="computeroutput"><span class="identifier">_3</span></tt> for the
+ placeholders: <code class="computeroutput"><span class="identifier">_1</span></code> for the
+ iterator range, <code class="computeroutput"><span class="identifier">_2</span></code> for
+ the token id, <code class="computeroutput"><span class="identifier">_3</span></code> for the
           reference to the boolean value signaling the outcome of the semantic action,
- and <tt class="computeroutput"><span class="identifier">_4</span></tt> for the reference
+ and <code class="computeroutput"><span class="identifier">_4</span></code> for the reference
           to the internal lexer context.
         </p>
-<a name="spirit.lex.tutorials.lexer_quickstart2.associating_token_definitions_with_the_lexer"></a><h5>
-<a name="id495186"></a>
- <a href="lexer_quickstart2.html#spirit.lex.tutorials.lexer_quickstart2.associating_token_definitions_with_the_lexer">Associating
+<a name="spirit.lex.tutorials.lexer_quickstart2.associating_token_definitions_with_the_lexer"></a><h6>
+<a name="id738129"></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>
- </h5>
+ </h6>
 <p>
- If you compare the with the code from <a href="lexer_quickstart1.html" title=" Quickstart
- 1 - A word counter using Spirit.Lex">Lex
+ If you compare this code to the code from <a class="link" href="lexer_quickstart1.html" title="Quickstart 1 - A word counter using Spirit.Lex">Lex
           Quickstart 1 - A word counter using <span class="emphasis"><em>Spirit.Lex</em></span></a>
           with regard to the way how token definitions are associated with the lexer,
- you will notice a different syntax being used here. If in the previous
- example we have been using the <tt class="computeroutput"><span class="identifier">self</span><span class="special">.</span><span class="identifier">add</span><span class="special">()</span></tt> style of the API, then here we directly
- assign the token definitions to <tt class="computeroutput"><span class="identifier">self</span></tt>,
- combining the different token definitions using the <tt class="computeroutput"><span class="special">|</span></tt>
+ you will notice a different syntax being used here. In the previous example
+ we have been using the <code class="computeroutput"><span class="identifier">self</span><span class="special">.</span><span class="identifier">add</span><span class="special">()</span></code> style of the API, while we here directly
+ assign the token definitions to <code class="computeroutput"><span class="identifier">self</span></code>,
+ combining the different token definitions using the <code class="computeroutput"><span class="special">|</span></code>
           operator. Here is the code snippet again:
         </p>
 <pre class="programlisting"><span class="identifier">self</span> <span class="special">=</span> <span class="identifier">word</span> <span class="special">[++</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">w</span><span class="special">),</span> <span class="identifier">ref</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span> <span class="special">+=</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">_1</span><span class="special">)]</span>
@@ -257,24 +248,24 @@
 <p>
           This way we have a very powerful and natural way of building the lexical
           analyzer. If translated into English this may be read as: The lexical analyer
- will recognize ('<tt class="computeroutput"><span class="special">=</span></tt>') tokens
- as defined by any of ('<tt class="computeroutput"><span class="special">|</span></tt>')
- the token definitions <tt class="computeroutput"><span class="identifier">word</span></tt>,
- <tt class="computeroutput"><span class="identifier">eol</span></tt>, and <tt class="computeroutput"><span class="identifier">any</span></tt>.
+ will recognize ('<code class="computeroutput"><span class="special">=</span></code>') tokens
+ as defined by any of ('<code class="computeroutput"><span class="special">|</span></code>')
+ the token definitions <code class="computeroutput"><span class="identifier">word</span></code>,
+ <code class="computeroutput"><span class="identifier">eol</span></code>, and <code class="computeroutput"><span class="identifier">any</span></code>.
         </p>
 <p>
           A second difference to the previous example is that we do not explicitly
           specify any token ids to use for the separate tokens. Using semantic actions
- to trigger some useful work free'd us from the need to define these. To
- ensure every token gets assigned a id the <span class="emphasis"><em>Spirit.Lex</em></span>
+ to trigger some useful work has freed us from the need to define those.
+ To ensure every token gets assigned a id the <span class="emphasis"><em>Spirit.Lex</em></span>
           library internally assigns unique numbers to the token definitions, starting
- with the constant defined by <tt 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></tt>.
+ 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>
 </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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

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-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -1,16 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Quickstart
- 3 - Counting Words Using a Parser</title>
+<title>Quickstart 3 - Counting Words Using a Parser</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
-<link rel="up" href="../tutorials.html" title=" Spirit.Lex
- Tutorials">
-<link rel="prev" href="lexer_quickstart2.html" title=" Quickstart
- 2 - A better word counter using Spirit.Lex">
-<link rel="next" href="../abstracts.html" title=" Abstracts">
+<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="Spirit.Lex Tutorials">
+<link rel="prev" href="lexer_quickstart2.html" title="Quickstart 2 - A better word counter using Spirit.Lex">
+<link rel="next" href="../abstracts.html" title="Abstracts">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -25,11 +22,11 @@
 <div class="spirit-nav">
 <a accesskey="p" href="lexer_quickstart2.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="../abstracts.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section" title="Quickstart 3 - Counting Words Using a Parser">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.tutorials.lexer_quickstart3"></a><a href="lexer_quickstart3.html" title=" Quickstart
- 3 - Counting Words Using a Parser"> Quickstart
- 3 - Counting Words Using a Parser</a></h4></div></div></div>
+<a name="spirit.lex.tutorials.lexer_quickstart3"></a><a class="link" href="lexer_quickstart3.html" title="Quickstart 3 - Counting Words Using a Parser"> Quickstart
+ 3 - Counting Words Using a Parser</a>
+</h4></div></div></div>
 <p>
           The whole purpose of integrating <span class="emphasis"><em>Spirit.Lex</em></span> as part
           of the Spirit library
@@ -42,8 +39,7 @@
           usage of possibly different lexical analyzer libraries. The utilization
           of iterators seemed to be the right choice from this standpoint as well,
           mainly because these can be used as an abstraction layer hiding implementation
- specifics of the used lexer library. The <a href="lexer_quickstart3.html#spirit.lex.flowcontrol" title="Figure 4. The common flow control implemented while parsing
- combined with lexical analysis">picture</a>
+ specifics of the used lexer library. The <a class="link" href="lexer_quickstart3.html#spirit.lex.flowcontrol" title="Figure 4. The common flow control implemented while parsing combined with lexical analysis">picture</a>
           below shows the common flow control implemented while parsing combined
           with lexical analysis.
         </p>
@@ -52,16 +48,15 @@
 <div class="figure">
 <a name="spirit.lex.flowcontrol"></a><p class="title"><b>Figure 4. The common flow control implemented while parsing
           combined with lexical analysis</b></p>
-<span class="inlinemediaobject"><img src="../../.././images/flowofcontrol.png" alt="The common flow
- control implemented while parsing combined with lexical analysis"></span>
+<div class="figure-contents"><span class="inlinemediaobject"><img src="../../.././images/flowofcontrol.png" alt="The common flow control implemented while parsing combined with lexical analysis"></span></div>
 </div>
-<p>
+<p><br class="figure-break">
         </p>
 <p>
           Another problem related to the integration of the lexical analyzer with
           the parser was to find a way how the defined tokens syntactically could
           be blended with the grammar definition syntax of Spirit.
- For tokens defined as instances of the <tt class="computeroutput"><span class="identifier">token_def</span><span class="special">&lt;&gt;</span></tt> class the most natural way of integration
+ For tokens defined as instances of the <code class="computeroutput"><span class="identifier">token_def</span><span class="special">&lt;&gt;</span></code> class the most natural way of integration
           was to allow to directly use these as parser components. Semantically these
           parser components succeed matching their input whenever the corresponding
           token type has been matched by the lexer. This quick start example will
@@ -69,14 +64,14 @@
           the numbers inside of semantic actions of a parser (for the full example
           code see here: word_count.cpp).
         </p>
-<a name="spirit.lex.tutorials.lexer_quickstart3.prerequisites"></a><h5>
-<a name="id495762"></a>
- Prerequisites
- </h5>
+<a name="spirit.lex.tutorials.lexer_quickstart3.prerequisites"></a><h6>
+<a name="id738510"></a>
+ <a class="link" href="lexer_quickstart3.html#spirit.lex.tutorials.lexer_quickstart3.prerequisites">Prerequisites</a>
+ </h6>
 <p>
           This example uses two of the Spirit
           library components: <span class="emphasis"><em>Spirit.Lex</em></span> and <span class="emphasis"><em>Spirit.Qi</em></span>,
- consequently we have to <tt class="computeroutput"><span class="preprocessor">#include</span></tt>
+ consequently we have to <code class="computeroutput"><span class="preprocessor">#include</span></code>
           the corresponding header files. Again, we need to include a couple of header
           files from the Phoenix2
           library. This example shows how to attach functors to parser components,
@@ -93,7 +88,7 @@
             
 </p>
 <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">qi</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">lex_lexer_lexertl</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">lex_lexertl</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">phoenix_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">phoenix_statement</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">phoenix_container</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
@@ -111,6 +106,7 @@
             
 </p>
 <pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">ascii</span><span class="special">;</span>
 <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">;</span>
 <span class="keyword">using</span> <span class="keyword">namespace</span> <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>
 </pre>
@@ -118,22 +114,20 @@
           </p>
 <p>
         </p>
-<a name="spirit.lex.tutorials.lexer_quickstart3.defining_tokens"></a><h5>
-<a name="id496323"></a>
- <a href="lexer_quickstart3.html#spirit.lex.tutorials.lexer_quickstart3.defining_tokens">Defining
+<a name="spirit.lex.tutorials.lexer_quickstart3.defining_tokens"></a><h6>
+<a name="id738941"></a>
+ <a class="link" href="lexer_quickstart3.html#spirit.lex.tutorials.lexer_quickstart3.defining_tokens">Defining
           Tokens</a>
- </h5>
+ </h6>
 <p>
- If compared to the two previous quick start examples (<a href="lexer_quickstart1.html" title=" Quickstart
- 1 - A word counter using Spirit.Lex">Lex
+ If compared to the two previous quick start examples (<a class="link" href="lexer_quickstart1.html" title="Quickstart 1 - A word counter using Spirit.Lex">Lex
           Quickstart 1 - A word counter using <span class="emphasis"><em>Spirit.Lex</em></span></a>
- and <a href="lexer_quickstart2.html" title=" Quickstart
- 2 - A better word counter using Spirit.Lex">Lex Quickstart
+ and <a class="link" href="lexer_quickstart2.html" title="Quickstart 2 - A better word counter using Spirit.Lex">Lex Quickstart
           2 - A better word counter using <span class="emphasis"><em>Spirit.Lex</em></span></a>)
           the token definition class for this example does not reveal any surprises.
           However, it uses lexer token definition macros to simplify the composition
           of the regular expressions, which will be described in more detail in the
- section <span class="bold"><b>FIXME</b></span>. Generally, any token definition
+ section <span class="bold"><strong>FIXME</strong></span>. Generally, any token definition
           is usable without modification either for a standalone lexical analyzer
           or in conjunction with a parser.
         </p>
@@ -143,59 +137,59 @@
             
 </p>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Lexer</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">word_count_tokens</span> <span class="special">:</span> <span class="identifier">lexer_def</span><span class="special">&lt;</span><span class="identifier">Lexer</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">word_count_tokens</span> <span class="special">:</span> <span class="identifier">lexer</span><span class="special">&lt;</span><span class="identifier">Lexer</span><span class="special">&gt;</span>
 <span class="special">{</span>
- <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Self</span><span class="special">&gt;</span>
- <span class="keyword">void</span> <span class="identifier">def</span> <span class="special">(</span><span class="identifier">Self</span><span class="special">&amp;</span> <span class="identifier">self</span><span class="special">)</span>
+ <span class="identifier">word_count_tokens</span><span class="special">()</span>
     <span class="special">{</span>
         <span class="comment">// define patterns (lexer macros) to be used during token definition
 </span> <span class="comment">// below
-</span> <span class="identifier">self</span><span class="special">.</span><span class="identifier">add_pattern</span>
+</span> <span class="keyword">this</span><span class="special">-&gt;</span><span class="identifier">self</span><span class="special">.</span><span class="identifier">add_pattern</span>
             <span class="special">(</span><span class="string">"WORD"</span><span class="special">,</span> <span class="string">"[^ \t\n]+"</span><span class="special">)</span>
         <span class="special">;</span>
-
+
         <span class="comment">// define tokens and associate them with the lexer
 </span> <span class="identifier">word</span> <span class="special">=</span> <span class="string">"{WORD}"</span><span class="special">;</span> <span class="comment">// reference the pattern 'WORD' as defined above
 </span>
         <span class="comment">// this lexer will recognize 3 token types: words, newlines, and
 </span> <span class="comment">// everything else
-</span> <span class="identifier">self</span><span class="special">.</span><span class="identifier">add</span>
+</span> <span class="keyword">this</span><span class="special">-&gt;</span><span class="identifier">self</span><span class="special">.</span><span class="identifier">add</span>
             <span class="special">(</span><span class="identifier">word</span><span class="special">)</span> <span class="comment">// no token id is needed here
 </span> <span class="special">(</span><span class="char">'\n'</span><span class="special">)</span> <span class="comment">// characters are usable as tokens as well
-</span> <span class="special">(</span><span class="string">"."</span><span class="special">,</span> <span class="identifier">IDANY</span><span class="special">)</span>
- <span class="special">;</span>
+</span> <span class="special">(</span><span class="string">"."</span><span class="special">,</span> <span class="identifier">IDANY</span><span class="special">)</span> <span class="comment">// string literals will not be esacped by the library
+</span> <span class="special">;</span>
     <span class="special">}</span>
-
- <span class="identifier">token_def</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="identifier">word</span><span class="special">;</span>
+
+ <span class="comment">// the token 'word' exposes the matched string as its parser attribute
+</span> <span class="identifier">token_def</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="identifier">word</span><span class="special">;</span>
 <span class="special">};</span>
 </pre>
 <p>
           </p>
 <p>
         </p>
-<a name="spirit.lex.tutorials.lexer_quickstart3.using_token_definition_instances_as_parsers"></a><h5>
-<a name="id496819"></a>
- <a href="lexer_quickstart3.html#spirit.lex.tutorials.lexer_quickstart3.using_token_definition_instances_as_parsers">Using
+<a name="spirit.lex.tutorials.lexer_quickstart3.using_token_definition_instances_as_parsers"></a><h6>
+<a name="id739461"></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>
- </h5>
+ </h6>
 <p>
           While the integration of lexer and parser in the control flow is achieved
           by using special iterators wrapping the lexical analyzer, we still nead
           a means of expressing in the grammar what tokens to match and where. The
           token definition class above uses three different ways of defining a token:
         </p>
-<div class="itemizedlist"><ul type="disc">
-<li>
- Using an instance of a <tt class="computeroutput"><span class="identifier">token_def</span><span class="special">&lt;&gt;</span></tt>, which is handy whenever you
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ Using an instance of a <code class="computeroutput"><span class="identifier">token_def</span><span class="special">&lt;&gt;</span></code>, which is handy whenever you
             need to specify a token attribute (for more information about lexer related
- attributes please look here: <a href="../abstracts/lexer_attributes.html" title=" Lexer Attributes">Lexer
+ attributes please look here: <a class="link" href="../abstracts/lexer_attributes.html" title="Lexer Attributes">Lexer
             Attributes</a>).
           </li>
-<li>
+<li class="listitem">
             Using a single character as the token, in this case the character represents
             itself as a token, where the token id is the ASCII character value.
           </li>
-<li>
+<li class="listitem">
             Using a regular expression represented as a string, where the token id
             needs to be specified explicitly to make the token accessible from the
             grammar level.
@@ -228,12 +222,12 @@
 <tr>
 <td>
                 <p>
- <tt class="computeroutput"><span class="identifier">token_def</span><span class="special">&lt;&gt;</span></tt>
+ <code class="computeroutput"><span class="identifier">token_def</span><span class="special">&lt;&gt;</span></code>
                 </p>
                 </td>
 <td>
                 <p>
- The <tt class="computeroutput"><span class="identifier">token_def</span><span class="special">&lt;&gt;</span></tt>
+ The <code class="computeroutput"><span class="identifier">token_def</span><span class="special">&lt;&gt;</span></code>
                   instance is directly usable as a parser component. Parsing of this
                   component will succeed if the regular expression used to define
                   this has been matched successfully.
@@ -249,7 +243,7 @@
 <td>
                 <p>
                   The single character is directly usable in the grammar, under certain
- circumstances it needs to be wrapped by a <tt class="computeroutput"><span class="identifier">char_</span><span class="special">()</span></tt> parser component, though. Parsing
+ circumstances it needs to be wrapped by a <code class="computeroutput"><span class="identifier">char_</span><span class="special">()</span></code> parser component, though. Parsing
                   of this component will succeed if the single character has been
                   matched.
                 </p>
@@ -264,10 +258,10 @@
 <td>
                 <p>
                   To use an explicit token id in a <span class="emphasis"><em>Spirit.Qi</em></span>
- grammar you are required to wrap it with the special <tt class="computeroutput"><span class="identifier">token</span><span class="special">()</span></tt>
+ grammar you are required to wrap it with the special <code class="computeroutput"><span class="identifier">token</span><span class="special">()</span></code>
                   parser component. Parsing of this component will succeed if the
                   current token has the same token id as specified in the expression
- <tt class="computeroutput"><span class="identifier">token</span><span class="special">(&lt;</span><span class="identifier">id</span><span class="special">&gt;)</span></tt>.
+ <code class="computeroutput"><span class="identifier">token</span><span class="special">(&lt;</span><span class="identifier">id</span><span class="special">&gt;)</span></code>.
                 </p>
                 </td>
 </tr>
@@ -287,19 +281,14 @@
 <span class="special">{</span>
     <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">TokenDef</span><span class="special">&gt;</span>
     <span class="identifier">word_count_grammar</span><span class="special">(</span><span class="identifier">TokenDef</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">tok</span><span class="special">)</span>
- <span class="special">:</span> <span class="identifier">grammar</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">&gt;(</span><span class="identifier">start</span><span class="special">),</span> <span class="identifier">c</span><span class="special">(</span><span class="number">0</span><span class="special">),</span> <span class="identifier">w</span><span class="special">(</span><span class="number">0</span><span class="special">),</span> <span class="identifier">l</span><span class="special">(</span><span class="number">0</span><span class="special">)</span>
+ <span class="special">:</span> <span class="identifier">word_count_grammar</span><span class="special">::</span><span class="identifier">base_type</span><span class="special">(</span><span class="identifier">start</span><span class="special">)</span>
+ <span class="special">,</span> <span class="identifier">c</span><span class="special">(</span><span class="number">0</span><span class="special">),</span> <span class="identifier">w</span><span class="special">(</span><span class="number">0</span><span class="special">),</span> <span class="identifier">l</span><span class="special">(</span><span class="number">0</span><span class="special">)</span>
     <span class="special">{</span>
         <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">ref</span><span class="special">;</span>
         <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">size</span><span class="special">;</span>
-
- <span class="comment">// As documented in the Spirit.Qi documentation, any placeholders
-</span> <span class="comment">// (_1 et.al.) used in semantic actions inside a grammar need to be
-</span> <span class="comment">// imported from the namespace boost::spirit::arg_names, and not from
-</span> <span class="comment">// the corresponding namespace in Phoenix.
-</span> <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">arg_names</span><span class="special">::</span><span class="identifier">_1</span><span class="special">;</span>
 
         <span class="identifier">start</span> <span class="special">=</span> <span class="special">*(</span> <span class="identifier">tok</span><span class="special">.</span><span class="identifier">word</span> <span class="special">[++</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">w</span><span class="special">),</span> <span class="identifier">ref</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span> <span class="special">+=</span> <span class="identifier">size</span><span class="special">(</span><span class="identifier">_1</span><span class="special">)]</span>
- <span class="special">|</span> <span class="identifier">char_</span><span class="special">(</span><span class="char">'\n'</span><span class="special">)</span> <span class="special">[++</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">c</span><span class="special">),</span> <span class="special">++</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">l</span><span class="special">)]</span>
+ <span class="special">|</span> <span class="identifier">lit</span><span class="special">(</span><span class="char">'\n'</span><span class="special">)</span> <span class="special">[++</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">c</span><span class="special">),</span> <span class="special">++</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">l</span><span class="special">)]</span>
                   <span class="special">|</span> <span class="identifier">token</span><span class="special">(</span><span class="identifier">IDANY</span><span class="special">)</span> <span class="special">[++</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">c</span><span class="special">)]</span>
                   <span class="special">)</span>
               <span class="special">;</span>
@@ -314,54 +303,53 @@
 <p>
         </p>
 <p>
- As already described (see: Attributes),
+ As already described (see: <a class="link" href="../../qi_and_karma/abstracts/attributes.html" title="Attributes">Attributes</a>),
           the <span class="emphasis"><em>Spirit.Qi</em></span> parser library builds upon a set of
           of fully attributed parser components. Consequently, all the token definitions
           do support the this attribute model as well. The most natural way of implementing
           this was to use the token values as the attributes exposed by the parser
           component corresponding to the token definition (you can read more about
- this topic here: <a href="../abstracts.html#spirit.lex.abstracts.lexer_primitives.lexer_token_values" title="
- About Tokens and Token Values">About
+ this topic here: <a class="link" href="../abstracts.html#spirit.lex.abstracts.lexer_primitives.lexer_token_values" title="About Tokens and Token Values">About
           Tokens and Token Values</a>). The example above takes advantage of the
- full integration of the token values as the <tt class="computeroutput"><span class="identifier">token_def</span><span class="special">&lt;&gt;</span></tt>'s parser attributes: the <tt class="computeroutput"><span class="identifier">word</span></tt> token definition is declared as
- a <tt class="computeroutput"><span class="identifier">token_def</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></tt>,
- making every instance of a <tt class="computeroutput"><span class="identifier">word</span></tt>
+ full integration of the token values as the <code class="computeroutput"><span class="identifier">token_def</span><span class="special">&lt;&gt;</span></code>'s parser attributes: the <code class="computeroutput"><span class="identifier">word</span></code> token definition is declared as
+ a <code class="computeroutput"><span class="identifier">token_def</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></code>,
+ making every instance of a <code class="computeroutput"><span class="identifier">word</span></code>
           token carry the string representation of the matched input sequence as
- its value. The semantic action attached to <tt class="computeroutput"><span class="identifier">tok</span><span class="special">.</span><span class="identifier">word</span></tt>
- receives this string (represented by the <tt class="computeroutput"><span class="identifier">_1</span></tt>
+ its value. The semantic action attached to <code class="computeroutput"><span class="identifier">tok</span><span class="special">.</span><span class="identifier">word</span></code>
+ receives this string (represented by the <code class="computeroutput"><span class="identifier">_1</span></code>
           placeholder) and uses it to calculate the number of matched characters:
- <tt class="computeroutput"><span class="identifier">ref</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span> <span class="special">+=</span>
- <span class="identifier">size</span><span class="special">(</span><span class="identifier">_1</span><span class="special">)</span></tt>.
+ <code class="computeroutput"><span class="identifier">ref</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span> <span class="special">+=</span>
+ <span class="identifier">size</span><span class="special">(</span><span class="identifier">_1</span><span class="special">)</span></code>.
         </p>
-<div class="important"><table border="0" summary="Important">
+<div class="important" title="Important"><table border="0" summary="Important">
 <tr>
 <td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../images/important.png"></td>
 <th align="left">Important</th>
 </tr>
-<tr><td colspan="2" align="left" valign="top"><p>
- All placeholders (<tt class="computeroutput"><span class="identifier">_1</span></tt>,
- <tt class="computeroutput"><span class="identifier">_2</span></tt>, etc.) used in <span class="emphasis"><em>parser</em></span>
+<tr><td align="left" valign="top"><p>
+ All placeholders (<code class="computeroutput"><span class="identifier">_1</span></code>,
+ <code class="computeroutput"><span class="identifier">_2</span></code>, etc.) used in <span class="emphasis"><em>parser</em></span>
             semantic actions in conjunction with functors created based on Phoenix2 need to be imported
- from the <tt class="computeroutput"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">arg_names</span></tt>
- (and <span class="bold"><b>not</b></span> <tt class="computeroutput"><span class="keyword">namespace</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">arg_names</span></tt>, which is different from
+ from the <code class="computeroutput"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">arg_names</span></code>
+ (and <span class="bold"><strong>not</strong></span> <code class="computeroutput"><span class="keyword">namespace</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">arg_names</span></code>, which is different from
             using placeholders in <span class="emphasis"><em>Spirit.Lex</em></span>). Using the wrong
             placeholders leads to subtle compilation errors which are difficult to
             backtrack to their cause.
           </p></td></tr>
 </table></div>
-<a name="spirit.lex.tutorials.lexer_quickstart3.pulling_everything_together"></a><h5>
-<a name="id498236"></a>
- <a href="lexer_quickstart3.html#spirit.lex.tutorials.lexer_quickstart3.pulling_everything_together">Pulling
+<a name="spirit.lex.tutorials.lexer_quickstart3.pulling_everything_together"></a><h6>
+<a name="id740406"></a>
+ <a class="link" href="lexer_quickstart3.html#spirit.lex.tutorials.lexer_quickstart3.pulling_everything_together">Pulling
           Everything Together</a>
- </h5>
+ </h6>
 <p>
           The main function needs to implement a bit more logic now as we have to
           initialize and start not only the lexical analysis but the parsing process
- as well. The three type definitions (<tt class="computeroutput"><span class="keyword">typedef</span></tt>
+ as well. The three type definitions (<code class="computeroutput"><span class="keyword">typedef</span></code>
           statements) simplify the creation of the lexical analyzer and the grammar.
           After reading the contents of the given file into memory it calls the function
- tokenize_and_parse()
+ <a class="link" href="../../qi_and_karma/abstracts/parsing_and_generating.html#spirit.qi_and_karma.abstracts.parsing_and_generating.the_tokenize_and_phrase_parse___function"><code class="computeroutput"><span class="identifier">tokenize_and_parse</span><span class="special">()</span></code></a>
           to initialize the lexical analysis and parsing processes.
         </p>
 <p>
@@ -371,18 +359,18 @@
 </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 name="spirit4co" href="lexer_quickstart3.html#spirit4"><img src="../../../images/callouts/1.png" alt="1" border="0"></a></span> <span class="keyword">typedef</span> <span class="identifier">lexertl_token</span><span class="special">&lt;</span>
+<span class="callout_bug"><a class="co" name="spirit4co" href="lexer_quickstart3.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">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 name="spirit5co" href="lexer_quickstart3.html#spirit5"><img src="../../../images/callouts/2.png" alt="2" border="0"></a></span> <span class="keyword">typedef</span> <span class="identifier">lexertl_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="spirit5co" href="lexer_quickstart3.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">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 name="spirit6co" href="lexer_quickstart3.html#spirit6"><img src="../../../images/callouts/3.png" alt="3" border="0"></a></span> <span class="keyword">typedef</span> <span class="identifier">lexer_iterator</span><span class="special">&lt;</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="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">iterator_type</span><span class="special">;</span>
+<span class="callout_bug"><a class="co" name="spirit6co" href="lexer_quickstart3.html#spirit6"><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
-</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</span><span class="special">;</span> <span class="comment">// Our token definition
-</span> <span class="identifier">word_count_grammar</span><span class="special">&lt;</span><span class="identifier">iterator_type</span><span class="special">&gt;</span> <span class="identifier">g</span> <span class="special">(</span><span class="identifier">word_count</span><span class="special">);</span> <span class="comment">// Our grammar definition
+</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</span><span class="special">;</span> <span class="comment">// Our lexer
+</span> <span class="identifier">word_count_grammar</span><span class="special">&lt;</span><span class="identifier">iterator_type</span><span class="special">&gt;</span> <span class="identifier">g</span> <span class="special">(</span><span class="identifier">word_count</span><span class="special">);</span> <span class="comment">// Our parser
 </span>
     <span class="comment">// read in the file int memory
 </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>
@@ -393,7 +381,7 @@
 </span> <span class="comment">// stream read from the input. The function `tokenize_and_parse()` wraps
 </span> <span class="comment">// the passed iterator range `[first, last)` by the lexical analyzer and
 </span> <span class="comment">// uses its exposed iterators to parse the toke stream.
-</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">make_lexer</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> <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>
@@ -415,22 +403,19 @@
             </p>
 <div class="calloutlist"><table border="0" summary="Callout list">
 <tr>
-<td width="5%" valign="top" align="left">
-<a name="spirit4"></a>1 </td>
-<td valign="top" align="left"><p> define the token type to be used: <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></tt>
- is available as the type of the token value </p></td>
+<td width="5%" valign="top" align="left"><p><a name="spirit4"></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">
-<a name="spirit5"></a>2 </td>
-<td valign="top" align="left"><p> define the lexer type to
- use implementing the state machine </p></td>
+<td width="5%" valign="top" align="left"><p><a name="spirit5"></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">
-<a name="spirit6"></a>3 </td>
-<td valign="top" align="left"><p> define the iterator type exposed by
- the lexer type </p></td>
+<td width="5%" valign="top" align="left"><p><a name="spirit6"></a>3 </p></td>
+<td valign="top" align="left"><p> define the iterator type exposed
+ by the lexer type </p></td>
 </tr>
 </table></div>
 <p>
@@ -440,8 +425,8 @@
 </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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/notes.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/notes.html (original)
+++ trunk/libs/spirit/doc/html/spirit/notes.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -3,12 +3,11 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Notes</title>
 <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../index.html" title="Spirit 2.0">
-<link rel="up" href="../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../index.html" title="Spirit 2.1">
+<link rel="up" href="../index.html" title="Spirit 2.1">
 <link rel="prev" href="faq.html" title="FAQ">
-<link rel="next" href="notes/porting_from_spirit_1_8_x.html" title="Porting from
- Spirit 1.8.x">
+<link rel="next" href="notes/porting_from_spirit_1_8_x.html" title="Porting from Spirit 1.8.x">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -23,9 +22,10 @@
 <div class="spirit-nav">
 <a accesskey="p" href="faq.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="notes/porting_from_spirit_1_8_x.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section" title="Notes">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="spirit.notes"></a>Notes</h2></div></div></div>
+<a name="spirit.notes"></a><a class="link" href="notes.html" title="Notes">Notes</a>
+</h2></div></div></div>
 <div class="toc"><dl>
 <dt><span class="section">Portability</span></dt>
 <dt><span class="section"><a href="notes/porting_from_spirit_1_8_x.html">Porting from
@@ -33,13 +33,14 @@
 <dt><span class="section">Style Guide</span></dt>
 <dt><span class="section">Techniques</span></dt>
 </dl></div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title">
-<a name="spirit.notes.portability"></a>Portability</h3></div></div></div></div>
+<div class="section" title="Portability"><div class="titlepage"><div><div><h3 class="title">
+<a name="spirit.notes.portability"></a><a class="link" href="notes.html#spirit.notes.portability" title="Portability">Portability</a>
+</h3></div></div></div></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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/notes/porting_from_spirit_1_8_x.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/notes/porting_from_spirit_1_8_x.html (original)
+++ trunk/libs/spirit/doc/html/spirit/notes/porting_from_spirit_1_8_x.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -1,11 +1,10 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Porting from
- Spirit 1.8.x</title>
+<title>Porting from Spirit 1.8.x</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../index.html" title="Spirit 2.1">
 <link rel="up" href="../notes.html" title="Notes">
 <link rel="prev" href="../notes.html" title="Notes">
 <link rel="next" href="style_guide.html" title="Style Guide">
@@ -23,14 +22,14 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../notes.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../notes.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="style_guide.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title">
-<a name="spirit.notes.porting_from_spirit_1_8_x"></a><a href="porting_from_spirit_1_8_x.html" title="Porting from
- Spirit 1.8.x">Porting from
- Spirit 1.8.x</a></h3></div></div></div></div>
+<div class="section" title="Porting from Spirit 1.8.x"><div class="titlepage"><div><div><h3 class="title">
+<a name="spirit.notes.porting_from_spirit_1_8_x"></a><a class="link" href="porting_from_spirit_1_8_x.html" title="Porting from Spirit 1.8.x">Porting from
+ Spirit 1.8.x</a>
+</h3></div></div></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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/notes/style_guide.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/notes/style_guide.html (original)
+++ trunk/libs/spirit/doc/html/spirit/notes/style_guide.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -3,11 +3,10 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Style Guide</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../index.html" title="Spirit 2.1">
 <link rel="up" href="../notes.html" title="Notes">
-<link rel="prev" href="porting_from_spirit_1_8_x.html" title="Porting from
- Spirit 1.8.x">
+<link rel="prev" href="porting_from_spirit_1_8_x.html" title="Porting from Spirit 1.8.x">
 <link rel="next" href="techniques.html" title="Techniques">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -23,9 +22,10 @@
 <div class="spirit-nav">
 <a accesskey="p" href="porting_from_spirit_1_8_x.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../notes.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="techniques.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section" title="Style Guide">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="spirit.notes.style_guide"></a>Style Guide</h3></div></div></div>
+<a name="spirit.notes.style_guide"></a><a class="link" href="style_guide.html" title="Style Guide">Style Guide</a>
+</h3></div></div></div>
 <p>
         At some point, especially when there are lots of semantic actions attached
         to various points, the grammar tends to be quite difficult to follow. In
@@ -38,22 +38,22 @@
         coding guidelines</a> (David Abrahams and Nathan Myers) and is the combined
         work of Joel de Guzman, Chris Uzdavinis and Hartmut Kaiser.
       </p>
-<div class="itemizedlist"><ul type="disc">
-<li>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
           Rule names use std C++ (Boost) convention. The rule name may be very long.
         </li>
-<li>
+<li class="listitem">
           The '=' is neatly indented 4 spaces below. Like in Boost, use spaces instead
           of tabs.
         </li>
-<li>
+<li class="listitem">
           Breaking the operands into separate lines puts the semantic actions neatly
           to the right.
         </li>
-<li>
+<li class="listitem">
           Semicolon at the last line terminates the rule.
         </li>
-<li>
+<li class="listitem">
           The adjacent parts of a sequence should be indented accordingly to have
           all, what belongs to one level, at one indentation level.
         </li>
@@ -66,20 +66,20 @@
         <span class="special">&gt;&gt;</span> <span class="identifier">etc</span>
     <span class="special">;</span>
 </pre>
-<div class="itemizedlist"><ul type="disc">
-<li>
- Prefer literals in the grammar instead of identifiers. e.g. <tt class="computeroutput"><span class="string">"program"</span></tt> instead of <tt class="computeroutput"><span class="identifier">PROGRAM</span></tt>, <tt class="computeroutput"><span class="char">'&gt;='</span></tt>
- instead of <tt class="computeroutput"><span class="identifier">GTE</span></tt> and <tt class="computeroutput"><span class="char">'.'</span></tt> instead of <tt class="computeroutput"><span class="identifier">DOT</span></tt>.
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ Prefer literals in the grammar instead of identifiers. e.g. <code class="computeroutput"><span class="string">"program"</span></code> instead of <code class="computeroutput"><span class="identifier">PROGRAM</span></code>, <code class="computeroutput"><span class="char">'&gt;='</span></code>
+ instead of <code class="computeroutput"><span class="identifier">GTE</span></code> and <code class="computeroutput"><span class="char">'.'</span></code> instead of <code class="computeroutput"><span class="identifier">DOT</span></code>.
           This makes it much easier to read. If this isn't possible (for instance
           where the used tokens must be identified through integers) capitalized
           identifiers should be used instead.
         </li>
-<li>
- Breaking the operands may not be needed for short expressions. e.g. <tt class="computeroutput"><span class="special">*(</span><span class="char">','</span> <span class="special">&gt;&gt;</span>
- <span class="identifier">file_identifier</span><span class="special">)</span></tt>
+<li class="listitem">
+ Breaking the operands may not be needed for short expressions. e.g. <code class="computeroutput"><span class="special">*(</span><span class="char">','</span> <span class="special">&gt;&gt;</span>
+ <span class="identifier">file_identifier</span><span class="special">)</span></code>
           as long as the line does not exceed 80 characters.
         </li>
-<li>
+<li class="listitem">
           If a sequence fits on one line, put spaces inside the parentheses to clearly
           separate them from the rules.
         </li>
@@ -94,7 +94,7 @@
         <span class="special">&gt;&gt;</span> <span class="char">';'</span>
     <span class="special">;</span>
 </pre>
-<div class="itemizedlist"><ul type="disc"><li>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
           Nesting directives: If a rule does not fit on one line (80 characters)
           it should be continued on the next line intended by one level. The brackets
           of directives, semantic expressions (using Phoenix or LL lambda expressions)
@@ -110,9 +110,9 @@
         <span class="special">]</span>
    <span class="special">;</span>
 </pre>
-<div class="itemizedlist"><ul type="disc"><li>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
           Nesting unary operators (e.g.Kleene star): Unary rule operators (Kleene
- star, <tt class="computeroutput"><span class="char">'!'</span></tt>, <tt class="computeroutput"><span class="char">'+'</span></tt>
+ star, <code class="computeroutput"><span class="char">'!'</span></code>, <code class="computeroutput"><span class="char">'+'</span></code>
           etc.) should be moved out one space before the corresponding indentation
           level, if this rule has a body or a sequence after it, which does not fit
           on on line. This makes the formatting more consistent and moves the rule
@@ -132,8 +132,8 @@
 </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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/notes/techniques.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/notes/techniques.html (original)
+++ trunk/libs/spirit/doc/html/spirit/notes/techniques.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -3,8 +3,8 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Techniques</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../index.html" title="Spirit 2.1">
 <link rel="up" href="../notes.html" title="Notes">
 <link rel="prev" href="style_guide.html" title="Style Guide">
 <link rel="next" href="../rationale.html" title="Rationale">
@@ -22,12 +22,13 @@
 <div class="spirit-nav">
 <a accesskey="p" href="style_guide.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../notes.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="../rationale.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title">
-<a name="spirit.notes.techniques"></a>Techniques</h3></div></div></div></div>
+<div class="section" title="Techniques"><div class="titlepage"><div><div><h3 class="title">
+<a name="spirit.notes.techniques"></a><a class="link" href="techniques.html" title="Techniques">Techniques</a>
+</h3></div></div></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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/qi_and_karma.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi_and_karma.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi_and_karma.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -3,9 +3,9 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Qi and Karma</title>
 <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../index.html" title="Spirit 2.0">
-<link rel="up" href="../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../index.html" title="Spirit 2.1">
+<link rel="up" href="../index.html" title="Spirit 2.1">
 <link rel="prev" href="introduction.html" title="Introduction">
 <link rel="next" href="qi_and_karma/abstracts.html" title="Abstracts">
 </head>
@@ -22,9 +22,10 @@
 <div class="spirit-nav">
 <a accesskey="p" href="introduction.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="qi_and_karma/abstracts.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section" title="Qi and Karma">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="spirit.qi_and_karma"></a>Qi and Karma</h2></div></div></div>
+<a name="spirit.qi_and_karma"></a><a class="link" href="qi_and_karma.html" title="Qi and Karma">Qi and Karma</a>
+</h2></div></div></div>
 <div class="toc"><dl>
 <dt><span class="section">Tutorials</span></dt>
 <dd><dl>
@@ -89,9 +90,10 @@
 <dt><span class="section">Debug</span></dt>
 </dl></dd>
 </dl></div>
-<div class="section" lang="en">
+<div class="section" title="Tutorials">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="spirit.qi_and_karma.tutorials"></a>Tutorials</h3></div></div></div>
+<a name="spirit.qi_and_karma.tutorials"></a><a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials" 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>
@@ -116,14 +118,15 @@
 <dt><span class="section"><a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___error_handling">Mini
         XML - Error Handling</a></span></dt>
 </dl></div>
-<div class="section" lang="en">
+<div class="section" title="Quick Start">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.tutorials.quick_start"></a>Quick Start</h4></div></div></div>
-<a name="spirit.qi_and_karma.tutorials.quick_start.why_would_you_want_to_use_spirit_qi_"></a><h5>
-<a name="id460252"></a>
- <a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.quick_start.why_would_you_want_to_use_spirit_qi_">Why
+<a name="spirit.qi_and_karma.tutorials.quick_start"></a><a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.quick_start" title="Quick Start">Quick Start</a>
+</h4></div></div></div>
+<a name="spirit.qi_and_karma.tutorials.quick_start.why_would_you_want_to_use_spirit_qi_"></a><h6>
+<a name="id688482"></a>
+ <a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.quick_start.why_would_you_want_to_use_spirit_qi_">Why
           would you want to use Spirit.Qi?</a>
- </h5>
+ </h6>
 <p>
           Spirit.Qi is designed to be a practical parsing tool. The ability to generate
           a fully-working parser from a formal EBNF specification inlined in C++
@@ -159,18 +162,19 @@
           Have fun!
         </p>
 </div>
-<div class="section" lang="en">
+<div class="section" title="Warming up">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.tutorials.warming_up"></a>Warming up</h4></div></div></div>
+<a name="spirit.qi_and_karma.tutorials.warming_up"></a><a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.warming_up" title="Warming up">Warming up</a>
+</h4></div></div></div>
 <p>
           We'll start by showing examples of parser expressions to give you a feel
           on how to build parsers from the simplest parser, building up as we go.
         </p>
-<a name="spirit.qi_and_karma.tutorials.warming_up.trivial_example__1_parsing_a_number"></a><h5>
-<a name="id460361"></a>
- <a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.warming_up.trivial_example__1_parsing_a_number">Trivial
+<a name="spirit.qi_and_karma.tutorials.warming_up.trivial_example__1_parsing_a_number"></a><h6>
+<a name="id688527"></a>
+ <a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.warming_up.trivial_example__1_parsing_a_number">Trivial
           Example #1 Parsing a number</a>
- </h5>
+ </h6>
 <p>
           Create a parser that will parse a floating-point number.
         </p>
@@ -181,11 +185,11 @@
           a Spirit floating point parser (a built-in parser). Spirit has many pre-defined
           parsers and consistent naming conventions help you keep from going insane!
         </p>
-<a name="spirit.qi_and_karma.tutorials.warming_up.trivial_example__2_parsing_two_numbers"></a><h5>
-<a name="id460416"></a>
- <a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.warming_up.trivial_example__2_parsing_two_numbers">Trivial
+<a name="spirit.qi_and_karma.tutorials.warming_up.trivial_example__2_parsing_two_numbers"></a><h6>
+<a name="id688556"></a>
+ <a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.warming_up.trivial_example__2_parsing_two_numbers">Trivial
           Example #2 Parsing two numbers</a>
- </h5>
+ </h6>
 <p>
           Create a parser that will accept a line consisting of two floating-point
           numbers.
@@ -193,8 +197,8 @@
 <pre class="programlisting"><span class="identifier">double_</span> <span class="special">&gt;&gt;</span> <span class="identifier">double_</span>
 </pre>
 <p>
- Here you see the familiar floating-point numeric parser <tt class="computeroutput"><span class="identifier">double_</span></tt>
- used twice, once for each number. What's that <tt class="computeroutput"><span class="special">&gt;&gt;</span></tt>
+ Here you see the familiar floating-point numeric parser <code class="computeroutput"><span class="identifier">double_</span></code>
+ used twice, once for each number. What's that <code class="computeroutput"><span class="special">&gt;&gt;</span></code>
           operator doing in there? Well, they had to be separated by something, and
           this was chosen as the "followed by" sequence operator. The above
           program creates a parser from two simpler parsers, glueing them together
@@ -202,31 +206,31 @@
           of smaller parsers. Whitespace between numbers can implicitly be consumed
           depending on how the parser is invoked (see below).
         </p>
-<div class="note"><table border="0" summary="Note">
+<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 colspan="2" align="left" valign="top"><p>
+<tr><td align="left" valign="top"><p>
             When we combine parsers, we end up with a "bigger" parser,
             but it's still a parser. Parsers can get bigger and bigger, nesting more
             and more, but whenever you glue two parsers together, you end up with
             one bigger parser. This is an important concept.
           </p></td></tr>
 </table></div>
-<a name="spirit.qi_and_karma.tutorials.warming_up.trivial_example__3_parsing_one_or_more_numbers"></a><h5>
-<a name="id460526"></a>
- <a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.warming_up.trivial_example__3_parsing_one_or_more_numbers">Trivial
+<a name="spirit.qi_and_karma.tutorials.warming_up.trivial_example__3_parsing_one_or_more_numbers"></a><h6>
+<a name="id688617"></a>
+ <a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.warming_up.trivial_example__3_parsing_one_or_more_numbers">Trivial
           Example #3 Parsing one or more numbers</a>
- </h5>
+ </h6>
 <p>
- Create a parser that will accept one or more floating-point numbers.
+ Create a parser that will accept zero or more floating-point numbers.
         </p>
 <pre class="programlisting"><span class="special">*</span><span class="identifier">double_</span>
 </pre>
 <p>
           This is like a regular-expression Kleene Star, though the syntax might
- look a bit odd for a C++ programmer not used to seeing the <tt class="computeroutput"><span class="special">*</span></tt> operator overloaded like this. Actually,
+ look a bit odd for a C++ programmer not used to seeing the <code class="computeroutput"><span class="special">*</span></code> operator overloaded like this. Actually,
           if you know regular expressions it may look odd too since the star is before
           the expression it modifies. C'est la vie. Blame it on the fact that we
           must work with the syntax rules of C++.
@@ -238,11 +242,11 @@
           Kleene Star is also known as a Kleene Closure, but we call it the Star
           in most places.
         </p>
-<a name="spirit.qi_and_karma.tutorials.warming_up.trivial_example__4_parsing_a_comma_delimited_list_of_numbers"></a><h5>
-<a name="id460609"></a>
- <a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.warming_up.trivial_example__4_parsing_a_comma_delimited_list_of_numbers">Trivial
+<a name="spirit.qi_and_karma.tutorials.warming_up.trivial_example__4_parsing_a_comma_delimited_list_of_numbers"></a><h6>
+<a name="id688662"></a>
+ <a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.warming_up.trivial_example__4_parsing_a_comma_delimited_list_of_numbers">Trivial
           Example #4 Parsing a comma-delimited list of numbers</a>
- </h5>
+ </h6>
 <p>
           This example will create a parser that accepts a comma-delimited list of
           numbers.
@@ -250,8 +254,8 @@
 <pre class="programlisting"><span class="identifier">double_</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="identifier">double_</span><span class="special">)</span>
 </pre>
 <p>
- Notice <tt class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="char">','</span><span class="special">)</span></tt>. It is
- a literal character parser that can recognize the comma <tt class="computeroutput"><span class="char">','</span></tt>.
+ 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 parser that can recognize the comma <code class="computeroutput"><span class="char">','</span></code>.
           In this case, the Kleene Star is modifying a more complex parser, namely,
           the one generated by the expression:
         </p>
@@ -261,39 +265,39 @@
           Note that this is a case where the parentheses are necessary. The Kleene
           star encloses the complete expression above.
         </p>
-<a name="spirit.qi_and_karma.tutorials.warming_up.let_s_parse_"></a><h5>
-<a name="id460803"></a>
- <a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.warming_up.let_s_parse_">Let's
+<a name="spirit.qi_and_karma.tutorials.warming_up.let_s_parse_"></a><h6>
+<a name="id688792"></a>
+ <a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.warming_up.let_s_parse_">Let's
           Parse!</a>
- </h5>
+ </h6>
 <p>
           We're done with defining the parser. So the next step is now invoking this
           parser to do its work. There are a couple of ways to do this. For now,
- we will use the <tt class="computeroutput"><span class="identifier">phrase_parse</span></tt>
+ we will use the <code class="computeroutput"><span class="identifier">phrase_parse</span></code>
           function. One overload of this function accepts four arguments:
         </p>
-<div class="orderedlist"><ol type="1">
-<li>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem">
             An iterator pointing to the start of the input
           </li>
-<li>
+<li class="listitem">
             An iterator pointing to one past the end of the input
           </li>
-<li>
+<li class="listitem">
             The parser object
           </li>
-<li>
+<li class="listitem">
             Another parser called the skip parser
           </li>
 </ol></div>
 <p>
           In our example, we wish to skip spaces and tabs. Another parser named
- <tt class="computeroutput"><span class="identifier">space</span></tt> is included in Spirit's
+ <code class="computeroutput"><span class="identifier">space</span></code> is included in Spirit's
           repertoire of predefined parsers. It is a very simple parser that simply
- recognizes whitespace. We will use <tt class="computeroutput"><span class="identifier">space</span></tt>
+ recognizes whitespace. We will use <code class="computeroutput"><span class="identifier">space</span></code>
           as our skip parser. The skip parser is the one responsible for skipping
- characters in between parser elements such as the <tt class="computeroutput"><span class="identifier">double_</span></tt>
- and <tt class="computeroutput"><span class="identifier">char_</span></tt>.
+ characters in between parser 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 parse!
@@ -306,11 +310,15 @@
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">&gt;</span>
 <span class="keyword">bool</span> <span class="identifier">parse_numbers</span><span class="special">(</span><span class="identifier">Iterator</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">Iterator</span> <span class="identifier">last</span><span class="special">)</span>
 <span class="special">{</span>
+ <span class="keyword">using</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">double_</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">phrase_parse</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">phrase_parse</span><span class="special">(</span>
- <span class="identifier">first</span><span class="special">,</span> <span class="callout_bug"><a name="spirit0co" href="qi_and_karma.html#spirit0"><img src="../images/callouts/1.png" alt="1" border="0"></a></span>
- <span class="identifier">last</span><span class="special">,</span> <span class="callout_bug"><a name="spirit1co" href="qi_and_karma.html#spirit1"><img src="../images/callouts/2.png" alt="2" border="0"></a></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> <span class="callout_bug"><a name="spirit2co" href="qi_and_karma.html#spirit2"><img src="../images/callouts/3.png" alt="3" border="0"></a></span>
- <span class="identifier">space</span> <span class="callout_bug"><a name="spirit3co" href="qi_and_karma.html#spirit3"><img src="../images/callouts/4.png" alt="4" border="0"></a></span>
+ <span class="identifier">first</span><span class="special">,</span> <span class="callout_bug"><a class="co" name="spirit0co" href="qi_and_karma.html#spirit0"><img src="../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a></span>
+ <span class="identifier">last</span><span class="special">,</span> <span class="callout_bug"><a class="co" name="spirit1co" href="qi_and_karma.html#spirit1"><img src="../../../../../doc/src/images/callouts/2.png" alt="2" border="0"></a></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> <span class="callout_bug"><a class="co" name="spirit2co" href="qi_and_karma.html#spirit2"><img src="../../../../../doc/src/images/callouts/3.png" alt="3" border="0"></a></span>
+ <span class="identifier">space</span> <span class="callout_bug"><a class="co" name="spirit3co" href="qi_and_karma.html#spirit3"><img src="../../../../../doc/src/images/callouts/4.png" alt="4" border="0"></a></span>
     <span class="special">);</span>
     <span class="keyword">if</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="comment">// fail if we did not get a full match
 </span> <span class="keyword">return</span> <span class="keyword">false</span><span class="special">;</span>
@@ -325,23 +333,19 @@
             </p>
 <div class="calloutlist"><table border="0" summary="Callout list">
 <tr>
-<td width="5%" valign="top" align="left">
-<a name="spirit0"></a>1 </td>
+<td width="5%" valign="top" align="left"><p><a name="spirit0"></a>1 </p></td>
 <td valign="top" align="left"><p> start iterator </p></td>
 </tr>
 <tr>
-<td width="5%" valign="top" align="left">
-<a name="spirit1"></a>2 </td>
+<td width="5%" valign="top" align="left"><p><a name="spirit1"></a>2 </p></td>
 <td valign="top" align="left"><p> end iterator </p></td>
 </tr>
 <tr>
-<td width="5%" valign="top" align="left">
-<a name="spirit2"></a>3 </td>
+<td width="5%" valign="top" align="left"><p><a name="spirit2"></a>3 </p></td>
 <td valign="top" align="left"><p> the parser </p></td>
 </tr>
 <tr>
-<td width="5%" valign="top" align="left">
-<a name="spirit3"></a>4 </td>
+<td width="5%" valign="top" align="left"><p><a name="spirit3"></a>4 </p></td>
 <td valign="top" align="left"><p> the skip-parser </p></td>
 </tr>
 </table></div>
@@ -350,8 +354,8 @@
 <p>
         </p>
 <p>
- The parse function returns <tt class="computeroutput"><span class="keyword">true</span></tt>
- or <tt class="computeroutput"><span class="keyword">false</span></tt> depending on the
+ The parse 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 parse. The first iterator is passed by reference. On a successful
           parse, this iterator is repositioned to the rightmost position consumed
           by the parser. If this becomes equal to str.end(), then we have a full
@@ -371,39 +375,39 @@
 <p>
           You can find the full cpp file here: ../../example/qi/num_list1.cpp
         </p>
-<div class="note"><table border="0" summary="Note">
+<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 colspan="2" align="left" valign="top">
+<tr><td align="left" valign="top">
 <p>
- <tt class="computeroutput"><span class="keyword">char</span></tt> and <tt class="computeroutput"><span class="keyword">wchar_t</span></tt>
+ <code class="computeroutput"><span class="keyword">char</span></code> and <code class="computeroutput"><span class="keyword">wchar_t</span></code>
             operands
           </p>
 <p>
- The careful reader may notice that the parser expression has <tt class="computeroutput"><span class="char">','</span></tt> instead of <tt class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="char">','</span><span class="special">)</span></tt>
+ The careful reader may notice that the parser expression has <code class="computeroutput"><span class="char">','</span></code> instead of <code class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="char">','</span><span class="special">)</span></code>
             as the previous examples did. This is ok due to C++ syntax rules of conversion.
- There are <tt class="computeroutput"><span class="special">&gt;&gt;</span></tt> operators
- that are overloaded to accept a <tt class="computeroutput"><span class="keyword">char</span></tt>
- or <tt class="computeroutput"><span class="keyword">wchar_t</span></tt> argument on its
+ There are <code class="computeroutput"><span class="special">&gt;&gt;</span></code> operators
+ that are overloaded to accept a <code class="computeroutput"><span class="keyword">char</span></code>
+ or <code class="computeroutput"><span class="keyword">wchar_t</span></code> argument on its
             left or right (but not both). An operator may be overloaded if at least
- one of its parameters is a user-defined type. In this case, the <tt class="computeroutput"><span class="identifier">double_</span></tt> is the 2nd argument to <tt class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;&gt;</span></tt>,
- and so the proper overload of <tt class="computeroutput"><span class="special">&gt;&gt;</span></tt>
- is used, converting <tt class="computeroutput"><span class="char">','</span></tt> into
+ one of its parameters is a user-defined type. In this case, the <code class="computeroutput"><span class="identifier">double_</span></code> is the 2nd argument to <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;&gt;</span></code>,
+ and so the proper overload of <code class="computeroutput"><span class="special">&gt;&gt;</span></code>
+ is used, converting <code class="computeroutput"><span class="char">','</span></code> into
             a character literal parser.
           </p>
 <p>
- The problem with omiting the <tt class="computeroutput"><span class="identifier">char_</span></tt>
- should be obvious: <tt class="computeroutput"><span class="char">'a'</span> <span class="special">&gt;&gt;</span>
- <span class="char">'b'</span></tt> is not a spirit parser, it is
+ The problem with omiting the <code class="computeroutput"><span class="identifier">char_</span></code>
+ should be obvious: <code class="computeroutput"><span class="char">'a'</span> <span class="special">&gt;&gt;</span>
+ <span class="char">'b'</span></code> is not a spirit parser, it is
             a numeric expression, right-shifting the ASCII (or another encoding)
- value of <tt class="computeroutput"><span class="char">'a'</span></tt> by the ASCII value
- of <tt class="computeroutput"><span class="char">'b'</span></tt>. However, both <tt class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="char">'a'</span><span class="special">)</span> <span class="special">&gt;&gt;</span>
- <span class="char">'b'</span></tt> and <tt class="computeroutput"><span class="char">'a'</span>
- <span class="special">&gt;&gt;</span> <span class="identifier">char_</span><span class="special">(</span><span class="char">'b'</span><span class="special">)</span></tt>
- are Spirit sequence parsers for the letter <tt class="computeroutput"><span class="char">'a'</span></tt>
- followed by <tt class="computeroutput"><span class="char">'b'</span></tt>. You'll get
+ value of <code class="computeroutput"><span class="char">'a'</span></code> by the ASCII value
+ of <code class="computeroutput"><span class="char">'b'</span></code>. However, both <code class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="char">'a'</span><span class="special">)</span> <span class="special">&gt;&gt;</span>
+ <span class="char">'b'</span></code> and <code class="computeroutput"><span class="char">'a'</span>
+ <span class="special">&gt;&gt;</span> <span class="identifier">char_</span><span class="special">(</span><span class="char">'b'</span><span class="special">)</span></code>
+ are Spirit sequence parsers for the letter <code class="computeroutput"><span class="char">'a'</span></code>
+ followed by <code class="computeroutput"><span class="char">'b'</span></code>. You'll get
             used to it, sooner or later.
           </p>
 </td></tr>
@@ -415,11 +419,11 @@
           are to be allowed.
         </p>
 </div>
-<div class="section" lang="en">
+<div class="section" title="Semantic Actions">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.tutorials.semantic_actions"></a><a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.semantic_actions" title="Semantic
- Actions">Semantic
- Actions</a></h4></div></div></div>
+<a name="spirit.qi_and_karma.tutorials.semantic_actions"></a><a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.semantic_actions" title="Semantic Actions">Semantic
+ Actions</a>
+</h4></div></div></div>
 <p>
           Our parser above is really nothing but a recognizer. It answers the question
           "did the input match our grammar?", but it does not do anything
@@ -431,22 +435,22 @@
           Enter Semantic actions. Semantic actions may be attached to any point in
           the grammar specification. These actions are C++ functions or function
           objects that are called whenever a part of the parser successfully recognizes
- a portion of the input. Say you have a parser <tt class="computeroutput"><span class="identifier">P</span></tt>,
- and a C++ function <tt class="computeroutput"><span class="identifier">F</span></tt>, you
- can make the parser call <tt class="computeroutput"><span class="identifier">F</span></tt>
- whenever it matches an input by attaching <tt class="computeroutput"><span class="identifier">F</span></tt>:
+ a portion of the input. Say you have a parser <code class="computeroutput"><span class="identifier">P</span></code>,
+ and a C++ function <code class="computeroutput"><span class="identifier">F</span></code>, you
+ can make the parser call <code class="computeroutput"><span class="identifier">F</span></code>
+ whenever it matches an input by attaching <code class="computeroutput"><span class="identifier">F</span></code>:
         </p>
 <pre class="programlisting"><span class="identifier">P</span><span class="special">[</span><span class="identifier">F</span><span class="special">]</span>
 </pre>
 <p>
- The expression above links <tt class="computeroutput"><span class="identifier">F</span></tt>
- to the parser, <tt class="computeroutput"><span class="identifier">P</span></tt>.
+ The expression above links <code class="computeroutput"><span class="identifier">F</span></code>
+ to the parser, <code class="computeroutput"><span class="identifier">P</span></code>.
         </p>
 <p>
           The function/function object signature depends on the type of the parser
- to which it is attached. The parser <tt class="computeroutput"><span class="identifier">double_</span></tt>
- passes the parsed number. Thus, if we were to attach a function <tt class="computeroutput"><span class="identifier">F</span></tt> to <tt class="computeroutput"><span class="identifier">double_</span></tt>,
- we need <tt class="computeroutput"><span class="identifier">F</span></tt> to be declared
+ to which it is attached. The parser <code class="computeroutput"><span class="identifier">double_</span></code>
+ passes the parsed number. Thus, if we were to attach a function <code class="computeroutput"><span class="identifier">F</span></code> to <code class="computeroutput"><span class="identifier">double_</span></code>,
+ we need <code class="computeroutput"><span class="identifier">F</span></code> to be declared
           as:
         </p>
 <pre class="programlisting"><span class="keyword">void</span> <span class="identifier">F</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">n</span><span class="special">);</span>
@@ -461,22 +465,22 @@
 <p>
           Presented are various ways to attach semantic actions:
         </p>
-<div class="itemizedlist"><ul type="disc">
-<li>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
             Using plain function pointer
           </li>
-<li>
+<li class="listitem">
             Using simple function object
           </li>
-<li>
+<li class="listitem">
             Using Boost.Bind
             with a plain function
           </li>
-<li>
+<li class="listitem">
             Using Boost.Bind
             with a member function
           </li>
-<li>
+<li class="listitem">
             Using Boost.Lambda
 </li>
 </ul></div>
@@ -488,40 +492,45 @@
 <p>
             
 </p>
-<pre class="programlisting"><span class="comment">// A plain function
-</span><span class="keyword">void</span> <span class="identifier">write</span><span class="special">(</span><span class="keyword">int</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">i</span><span class="special">)</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">client</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="identifier">i</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
-<span class="special">}</span>
+ <span class="keyword">namespace</span> <span class="identifier">qi</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">;</span>
 
-<span class="comment">// A member function
-</span><span class="keyword">struct</span> <span class="identifier">writer</span>
-<span class="special">{</span>
- <span class="keyword">void</span> <span class="identifier">print</span><span class="special">(</span><span class="keyword">int</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">i</span><span class="special">)</span> <span class="keyword">const</span>
+ <span class="comment">// A plain function
+</span> <span class="keyword">void</span> <span class="identifier">print</span><span class="special">(</span><span class="keyword">int</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">i</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="identifier">i</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
     <span class="special">}</span>
-<span class="special">};</span>
 
-<span class="comment">// A function object
-</span><span class="keyword">struct</span> <span class="identifier">write_action</span>
-<span class="special">{</span>
- <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span><span class="keyword">int</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">i</span><span class="special">,</span> <span class="identifier">unused_type</span><span class="special">,</span> <span class="identifier">unused_type</span><span class="special">)</span> <span class="keyword">const</span>
+ <span class="comment">// A member function
+</span> <span class="keyword">struct</span> <span class="identifier">writer</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="identifier">i</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
- <span class="special">}</span>
-<span class="special">};</span>
+ <span class="keyword">void</span> <span class="identifier">print</span><span class="special">(</span><span class="keyword">int</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">i</span><span class="special">)</span> <span class="keyword">const</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="identifier">i</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+ <span class="special">}</span>
+ <span class="special">};</span>
+
+ <span class="comment">// A function object
+</span> <span class="keyword">struct</span> <span class="identifier">print_action</span>
+ <span class="special">{</span>
+ <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span><span class="keyword">int</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">i</span><span class="special">,</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">unused_type</span><span class="special">,</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">unused_type</span><span class="special">)</span> <span class="keyword">const</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="identifier">i</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+ <span class="special">}</span>
+ <span class="special">};</span>
+<span class="special">}</span>
 </pre>
 <p>
           </p>
 <p>
         </p>
 <p>
- Take note that with function objects, we need to have an <tt class="computeroutput"><span class="keyword">operator</span><span class="special">()</span></tt>
+ Take note that with function objects, we need to have an <code class="computeroutput"><span class="keyword">operator</span><span class="special">()</span></code>
           with 3 arguments. Since we don't care about the other two, we can use
- <tt class="computeroutput"><span class="identifier">unused_type</span></tt> for these.
- We'll see more of <tt class="computeroutput"><span class="identifier">unused_type</span></tt>
- elsewhere. Get used to it. <tt class="computeroutput"><span class="identifier">unused_type</span></tt>
+ <code class="computeroutput"><span class="identifier">unused_type</span></code> for these.
+ We'll see more of <code class="computeroutput"><span class="identifier">unused_type</span></code>
+ elsewhere. Get used to it. <code class="computeroutput"><span class="identifier">unused_type</span></code>
           is a Spirit supplied support class.
         </p>
 <p>
@@ -540,15 +549,15 @@
 <p>
             
 </p>
-<pre class="programlisting"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">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="char">'{'</span> <span class="special">&gt;&gt;</span> <span class="identifier">int_</span><span class="special">[&amp;</span><span class="identifier">write</span><span class="special">]</span> <span class="special">&gt;&gt;</span> <span class="char">'}'</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">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="char">'{'</span> <span class="special">&gt;&gt;</span> <span class="identifier">int_</span><span class="special">[&amp;</span><span class="identifier">print</span><span class="special">]</span> <span class="special">&gt;&gt;</span> <span class="char">'}'</span><span class="special">);</span>
 </pre>
 <p>
           </p>
 <p>
         </p>
 <p>
- What's new? Well <tt class="computeroutput"><span class="identifier">int_</span></tt> is
- the sibbling of <tt class="computeroutput"><span class="identifier">double_</span></tt>.
+ What's new? Well <code class="computeroutput"><span class="identifier">int_</span></code> is
+ the sibbling of <code class="computeroutput"><span class="identifier">double_</span></code>.
           I'm sure you can guess what this parser does.
         </p>
 <p>
@@ -559,7 +568,7 @@
 <p>
             
 </p>
-<pre class="programlisting"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">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="char">'{'</span> <span class="special">&gt;&gt;</span> <span class="identifier">int_</span><span class="special">[</span><span class="identifier">write_action</span><span class="special">()]</span> <span class="special">&gt;&gt;</span> <span class="char">'}'</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">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="char">'{'</span> <span class="special">&gt;&gt;</span> <span class="identifier">int_</span><span class="special">[</span><span class="identifier">print_action</span><span class="special">()]</span> <span class="special">&gt;&gt;</span> <span class="char">'}'</span><span class="special">);</span>
 </pre>
 <p>
           </p>
@@ -575,7 +584,7 @@
             
 </p>
 <pre class="programlisting"><span class="identifier">writer</span> <span class="identifier">w</span><span class="special">;</span>
-<span class="identifier">qi</span><span class="special">::</span><span class="identifier">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="char">'{'</span> <span class="special">&gt;&gt;</span> <span class="identifier">int_</span><span class="special">[</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">bind</span><span class="special">(&amp;</span><span class="identifier">writer</span><span class="special">::</span><span class="identifier">print</span><span class="special">,</span> <span class="special">&amp;</span><span class="identifier">w</span><span class="special">,</span> <span class="identifier">_1</span><span class="special">)]</span> <span class="special">&gt;&gt;</span> <span class="char">'}'</span><span class="special">);</span>
+<span class="identifier">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="char">'{'</span> <span class="special">&gt;&gt;</span> <span class="identifier">int_</span><span class="special">[</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">bind</span><span class="special">(&amp;</span><span class="identifier">writer</span><span class="special">::</span><span class="identifier">print</span><span class="special">,</span> <span class="special">&amp;</span><span class="identifier">w</span><span class="special">,</span> <span class="identifier">_1</span><span class="special">)]</span> <span class="special">&gt;&gt;</span> <span class="char">'}'</span><span class="special">);</span>
 </pre>
 <p>
           </p>
@@ -590,7 +599,7 @@
 <p>
             
 </p>
-<pre class="programlisting"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">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="char">'{'</span> <span class="special">&gt;&gt;</span> <span class="identifier">int_</span><span class="special">[</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">bind</span><span class="special">(&amp;</span><span class="identifier">write</span><span class="special">,</span> <span class="identifier">_1</span><span class="special">)]</span> <span class="special">&gt;&gt;</span> <span class="char">'}'</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">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="char">'{'</span> <span class="special">&gt;&gt;</span> <span class="identifier">int_</span><span class="special">[</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">bind</span><span class="special">(&amp;</span><span class="identifier">print</span><span class="special">,</span> <span class="identifier">_1</span><span class="special">)]</span> <span class="special">&gt;&gt;</span> <span class="char">'}'</span><span class="special">);</span>
 </pre>
 <p>
           </p>
@@ -604,7 +613,7 @@
 <p>
             
 </p>
-<pre class="programlisting"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">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="char">'{'</span> <span class="special">&gt;&gt;</span> <span class="identifier">int_</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="identifier">_1</span> <span class="special">&lt;&lt;</span> <span class="char">'\n'</span><span class="special">]</span> <span class="special">&gt;&gt;</span> <span class="char">'}'</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">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="char">'{'</span> <span class="special">&gt;&gt;</span> <span class="identifier">int_</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="identifier">_1</span> <span class="special">&lt;&lt;</span> <span class="char">'\n'</span><span class="special">]</span> <span class="special">&gt;&gt;</span> <span class="char">'}'</span><span class="special">);</span>
 </pre>
 <p>
           </p>
@@ -621,10 +630,10 @@
 <p>
           The examples above can be found here: ../../example/qi/actions.cpp
         </p>
-<a name="spirit.qi_and_karma.tutorials.semantic_actions.phoenix"></a><h5>
-<a name="id463328"></a>
- Phoenix
- </h5>
+<a name="spirit.qi_and_karma.tutorials.semantic_actions.phoenix"></a><h6>
+<a name="id691769"></a>
+ <a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.semantic_actions.phoenix">Phoenix</a>
+ </h6>
 <p>
           <a href="../../../phoenix/doc/html/index.html" target="_top">Phoenix</a>, a companion
           library bundled with Spirit, is specifically suited for binding semantic
@@ -635,11 +644,11 @@
           shall be using the library exclusively
         </p>
 </div>
-<div class="section" lang="en">
+<div class="section" title="Complex - Our first complex parser">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.tutorials.complex___our_first_complex_parser"></a><a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.complex___our_first_complex_parser" title="Complex
- - Our first complex parser">Complex
- - Our first complex parser</a></h4></div></div></div>
+<a name="spirit.qi_and_karma.tutorials.complex___our_first_complex_parser"></a><a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.complex___our_first_complex_parser" title="Complex - Our first complex parser">Complex
+ - Our first complex parser</a>
+</h4></div></div></div>
 <p>
           Well, not really a complex parser, but a parser that parses complex numbers.
           This time, we're using Phoenix
@@ -654,26 +663,26 @@
 <p>
           What's new? Well, we have:
         </p>
-<div class="orderedlist"><ol type="1">
-<li>
- Alternates: e.g. <tt class="computeroutput"><span class="identifier">a</span> <span class="special">|</span>
- <span class="identifier">b</span></tt>. Try <tt class="computeroutput"><span class="identifier">a</span></tt>
- first. If it succeeds, good. If not, try the next alternative, <tt class="computeroutput"><span class="identifier">b</span></tt>.
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem">
+ Alternates: e.g. <code class="computeroutput"><span class="identifier">a</span> <span class="special">|</span>
+ <span class="identifier">b</span></code>. Try <code class="computeroutput"><span class="identifier">a</span></code>
+ first. If it succeeds, good. If not, try the next alternative, <code class="computeroutput"><span class="identifier">b</span></code>.
           </li>
-<li>
+<li class="listitem">
             Optionals: e.g. -p. Match the parser p zero or one time.
           </li>
 </ol></div>
 <p>
           The complex parser presented above reads as:
         </p>
-<div class="itemizedlist"><ul type="disc">
-<li>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
             One or two real number in parantheses, separated by comma (the second
             number is optional)
           </li>
-<li>
-<span class="bold"><b>OR</b></span> a single real number.
+<li class="listitem">
+<span class="bold"><strong>OR</strong></span> a single real number.
           </li>
 </ul></div>
 <p>
@@ -691,27 +700,36 @@
 <p>
             
 </p>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">&gt;</span>
-<span class="keyword">bool</span> <span class="identifier">parse_complex</span><span class="special">(</span><span class="identifier">Iterator</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">Iterator</span> <span class="identifier">last</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;&amp;</span> <span class="identifier">c</span><span class="special">)</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">client</span>
 <span class="special">{</span>
- <span class="keyword">double</span> <span class="identifier">rN</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">;</span>
- <span class="keyword">double</span> <span class="identifier">iN</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">;</span>
- <span class="keyword">bool</span> <span class="identifier">r</span> <span class="special">=</span> <span class="identifier">phrase_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="comment">// Begin grammar
-</span> <span class="special">(</span>
- <span class="char">'('</span> <span class="special">&gt;&gt;</span> <span class="identifier">double_</span><span class="special">[</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">rN</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">_1</span><span class="special">]</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><span class="identifier">ref</span><span class="special">(</span><span class="identifier">iN</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">_1</span><span class="special">])</span> <span class="special">&gt;&gt;</span> <span class="char">')'</span>
- <span class="special">|</span> <span class="identifier">double_</span><span class="special">[</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">rN</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">_1</span><span class="special">]</span>
- <span class="special">),</span>
- <span class="comment">// End grammar
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">&gt;</span>
+ <span class="keyword">bool</span> <span class="identifier">parse_complex</span><span class="special">(</span><span class="identifier">Iterator</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">Iterator</span> <span class="identifier">last</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;&amp;</span> <span class="identifier">c</span><span class="special">)</span>
+ <span class="special">{</span>
+ <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">double_</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">_1</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">phrase_parse</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">ascii</span><span class="special">::</span><span class="identifier">space</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">ref</span><span class="special">;</span>
+
+ <span class="keyword">double</span> <span class="identifier">rN</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">;</span>
+ <span class="keyword">double</span> <span class="identifier">iN</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">;</span>
+ <span class="keyword">bool</span> <span class="identifier">r</span> <span class="special">=</span> <span class="identifier">phrase_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="comment">// Begin grammar
+</span> <span class="special">(</span>
+ <span class="char">'('</span> <span class="special">&gt;&gt;</span> <span class="identifier">double_</span><span class="special">[</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">rN</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">_1</span><span class="special">]</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><span class="identifier">ref</span><span class="special">(</span><span class="identifier">iN</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">_1</span><span class="special">])</span> <span class="special">&gt;&gt;</span> <span class="char">')'</span>
+ <span class="special">|</span> <span class="identifier">double_</span><span class="special">[</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">rN</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">_1</span><span class="special">]</span>
+ <span class="special">),</span>
+ <span class="comment">// End grammar
 </span>
- <span class="identifier">space</span><span class="special">);</span>
+ <span class="identifier">space</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="identifier">first</span> <span class="special">!=</span> <span class="identifier">last</span><span class="special">)</span> <span class="comment">// fail if we did not get a full match
-</span> <span class="keyword">return</span> <span class="keyword">false</span><span class="special">;</span>
- <span class="identifier">c</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;(</span><span class="identifier">rN</span><span class="special">,</span> <span class="identifier">iN</span><span class="special">);</span>
- <span class="keyword">return</span> <span class="identifier">r</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="identifier">first</span> <span class="special">!=</span> <span class="identifier">last</span><span class="special">)</span> <span class="comment">// fail if we did not get a full match
+</span> <span class="keyword">return</span> <span class="keyword">false</span><span class="special">;</span>
+ <span class="identifier">c</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;(</span><span class="identifier">rN</span><span class="special">,</span> <span class="identifier">iN</span><span class="special">);</span>
+ <span class="keyword">return</span> <span class="identifier">r</span><span class="special">;</span>
+ <span class="special">}</span>
 <span class="special">}</span>
 </pre>
 <p>
@@ -722,23 +740,23 @@
           The full cpp file for this example can be found here: ../../example/qi/complex_number.cpp
         </p>
 <p>
- The <tt class="computeroutput"><span class="identifier">double_</span></tt> parser attaches
+ The <code class="computeroutput"><span class="identifier">double_</span></code> parser attaches
           this action:
         </p>
 <pre class="programlisting"><span class="identifier">ref</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">_1</span>
 </pre>
 <p>
- This assigns the parsed result (actually, the attribute of <tt class="computeroutput"><span class="identifier">double_</span></tt>) to n. <tt class="computeroutput"><span class="identifier">ref</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span></tt>
- tells Phoenix that <tt class="computeroutput"><span class="identifier">n</span></tt> is
- a mutable reference. <tt class="computeroutput"><span class="identifier">_1</span></tt>
+ This assigns the parsed result (actually, the attribute of <code class="computeroutput"><span class="identifier">double_</span></code>) to n. <code class="computeroutput"><span class="identifier">ref</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span></code>
+ tells Phoenix that <code class="computeroutput"><span class="identifier">n</span></code> is
+ a mutable reference. <code class="computeroutput"><span class="identifier">_1</span></code>
           is a Phoenix placeholder for the parsed result attribute.
         </p>
 </div>
-<div class="section" lang="en">
+<div class="section" title="Sum - adding numbers">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.tutorials.sum___adding_numbers"></a><a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.sum___adding_numbers" title="Sum
- - adding numbers">Sum
- - adding numbers</a></h4></div></div></div>
+<a name="spirit.qi_and_karma.tutorials.sum___adding_numbers"></a><a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.sum___adding_numbers" title="Sum - adding numbers">Sum
+ - adding numbers</a>
+</h4></div></div></div>
 <p>
           Here's a parser that sums a comma-separated list of numbers.
         </p>
@@ -769,11 +787,14 @@
 <p>
             
 </p>
-<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">;</span>
-<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">;</span>
-<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">;</span>
-<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">ascii</span><span class="special">;</span>
-<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">arg_names</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">qi</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">;</span>
+<span class="keyword">namespace</span> <span class="identifier">ascii</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">ascii</span><span class="special">;</span>
+<span class="keyword">namespace</span> <span class="identifier">phoenix</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">;</span>
+
+<span class="keyword">using</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">double_</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">_1</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">using</span> <span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">ref</span><span class="special">;</span>
 </pre>
 <p>
           </p>
@@ -841,7 +862,7 @@
                 </td>
 <td>
                 <p>
- ASCII version of <tt class="computeroutput"><span class="identifier">char_</span></tt>
+ ASCII version of <code class="computeroutput"><span class="identifier">char_</span></code>
                   and all char related parsers. Other encodings are also provided
                   (e.g. also an ISO8859.1)
                 </p>
@@ -861,12 +882,12 @@
 </tr>
 </tbody>
 </table></div>
-<div class="note"><table border="0" summary="Note">
+<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 colspan="2" align="left" valign="top"><p>
+<tr><td align="left" valign="top"><p>
             If you feel uneasy with using whole namespaces, feel free to qualify
             your code, use namespace aliases, etc. For the purpose of this tutorial,
             we will be presenting unqualified names for both Spirit and Phoenix.
@@ -887,7 +908,7 @@
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">&gt;</span>
 <span class="keyword">bool</span> <span class="identifier">adder</span><span class="special">(</span><span class="identifier">Iterator</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">Iterator</span> <span class="identifier">last</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&amp;</span> <span class="identifier">n</span><span class="special">)</span>
 <span class="special">{</span>
- <span class="keyword">bool</span> <span class="identifier">r</span> <span class="special">=</span> <span class="identifier">phrase_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="keyword">bool</span> <span class="identifier">r</span> <span class="special">=</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">phrase_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="comment">// Begin grammar
 </span> <span class="special">(</span>
@@ -918,35 +939,35 @@
           the sum of all the parsed numbers.
         </p>
 <p>
- The first <tt class="computeroutput"><span class="identifier">double_</span></tt> parser
+ The first <code class="computeroutput"><span class="identifier">double_</span></code> parser
           attaches this action:
         </p>
 <pre class="programlisting"><span class="identifier">ref</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">_1</span>
 </pre>
 <p>
- This assigns the parsed result (actually, the attribute of <tt class="computeroutput"><span class="identifier">double_</span></tt>) to <tt class="computeroutput"><span class="identifier">n</span></tt>.
- <tt class="computeroutput"><span class="identifier">ref</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span></tt> tells
- Phoenix that <tt class="computeroutput"><span class="identifier">n</span></tt> is a mutable reference. <tt class="computeroutput"><span class="identifier">_1</span></tt> is a Phoenix
+ This assigns the parsed result (actually, the attribute of <code class="computeroutput"><span class="identifier">double_</span></code>) to <code class="computeroutput"><span class="identifier">n</span></code>.
+ <code class="computeroutput"><span class="identifier">ref</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span></code> tells
+ Phoenix that <code class="computeroutput"><span class="identifier">n</span></code> is a mutable reference. <code class="computeroutput"><span class="identifier">_1</span></code> is a Phoenix
           placeholder for the parsed result attribute.
         </p>
 <p>
- The second <tt class="computeroutput"><span class="identifier">double_</span></tt> parser
+ The second <code class="computeroutput"><span class="identifier">double_</span></code> parser
           attaches this action:
         </p>
 <pre class="programlisting"><span class="identifier">ref</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">+=</span> <span class="identifier">_1</span>
 </pre>
 <p>
- So, subsequent numbers add into <tt class="computeroutput"><span class="identifier">n</span></tt>.
+ So, subsequent numbers add into <code class="computeroutput"><span class="identifier">n</span></code>.
         </p>
 <p>
           That wasn't too bad, was it :-) ?
         </p>
 </div>
-<div class="section" lang="en">
+<div class="section" title="Number List - stuffing numbers into a std::vector">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.tutorials.number_list___stuffing_numbers_into_a_std__vector"></a><a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.number_list___stuffing_numbers_into_a_std__vector" title="Number
- List - stuffing numbers into a std::vector">Number
- List - stuffing numbers into a std::vector</a></h4></div></div></div>
+<a name="spirit.qi_and_karma.tutorials.number_list___stuffing_numbers_into_a_std__vector"></a><a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.number_list___stuffing_numbers_into_a_std__vector" title="Number List - stuffing numbers into a std::vector">Number
+ List - stuffing numbers into a std::vector</a>
+</h4></div></div></div>
 <p>
           This sample demontrates a parser for a comma separated list of numbers.
           The numbers are inserted in a vector using phoenix.
@@ -959,6 +980,13 @@
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">&gt;</span>
 <span class="keyword">bool</span> <span class="identifier">parse_numbers</span><span class="special">(</span><span class="identifier">Iterator</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">Iterator</span> <span class="identifier">last</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;&amp;</span> <span class="identifier">v</span><span class="special">)</span>
 <span class="special">{</span>
+ <span class="keyword">using</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">double_</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">phrase_parse</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">_1</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">using</span> <span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">push_back</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">ref</span><span class="special">;</span>
+
     <span class="keyword">bool</span> <span class="identifier">r</span> <span class="special">=</span> <span class="identifier">phrase_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="comment">// Begin grammar
@@ -985,26 +1013,26 @@
         </p>
 <p>
           This, again, is the same parser as before. This time, instead of summing
- up the numbers, we stuff them in a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span></tt>.
- <tt class="computeroutput"><span class="identifier">push_back</span></tt> is supplied by
+ up the numbers, we stuff them in a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span></code>.
+ <code class="computeroutput"><span class="identifier">push_back</span></code> is supplied by
           <a href="../../../phoenix/doc/html/index.html" target="_top">Phoenix</a>. The expression:
         </p>
 <pre class="programlisting"><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">v</span><span class="special">),</span> <span class="identifier">_1</span><span class="special">)</span>
 </pre>
 <p>
- appends the parsed number. Like before, <tt class="computeroutput"><span class="identifier">_1</span></tt>
+ appends the parsed number. Like before, <code class="computeroutput"><span class="identifier">_1</span></code>
           is a Phoenix placeholder
- for the parsed result attribute. Also, like before, <tt class="computeroutput"><span class="identifier">ref</span><span class="special">(</span><span class="identifier">v</span><span class="special">)</span></tt>
+ for the parsed result attribute. Also, like before, <code class="computeroutput"><span class="identifier">ref</span><span class="special">(</span><span class="identifier">v</span><span class="special">)</span></code>
           tells Phoenix that
- <tt class="computeroutput"><span class="identifier">v</span></tt>, the <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span></tt>,
+ <code class="computeroutput"><span class="identifier">v</span></code>, the <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span></code>,
           is a mutable reference.
         </p>
 </div>
-<div class="section" lang="en">
+<div class="section" title="Number List Redux - list syntax">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.tutorials.number_list_redux___list_syntax"></a><a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.number_list_redux___list_syntax" title="Number
- List Redux - list syntax">Number
- List Redux - list syntax</a></h4></div></div></div>
+<a name="spirit.qi_and_karma.tutorials.number_list_redux___list_syntax"></a><a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.number_list_redux___list_syntax" title="Number List Redux - list syntax">Number
+ List Redux - list syntax</a>
+</h4></div></div></div>
 <p>
           So far, we've been using the syntax:
         </p>
@@ -1018,7 +1046,7 @@
 <pre class="programlisting"><span class="identifier">double_</span> <span class="special">%</span> <span class="char">','</span>
 </pre>
 <p>
- read as: a list of doubles separated by <tt class="computeroutput"><span class="char">','</span></tt>.
+ read as: a list of doubles separated by <code class="computeroutput"><span class="char">','</span></code>.
         </p>
 <p>
           This sample, again a variation of our previous example, demonstrates just
@@ -1032,6 +1060,13 @@
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">&gt;</span>
 <span class="keyword">bool</span> <span class="identifier">parse_numbers</span><span class="special">(</span><span class="identifier">Iterator</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">Iterator</span> <span class="identifier">last</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;&amp;</span> <span class="identifier">v</span><span class="special">)</span>
 <span class="special">{</span>
+ <span class="keyword">using</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">double_</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">phrase_parse</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">_1</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">using</span> <span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">push_back</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">ref</span><span class="special">;</span>
+
     <span class="keyword">bool</span> <span class="identifier">r</span> <span class="special">=</span> <span class="identifier">phrase_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="comment">// Begin grammar
@@ -1056,14 +1091,14 @@
           The full cpp file for this example can be found here: ../../example/qi/num_list3.cpp
         </p>
 </div>
-<div class="section" lang="en">
+<div class="section" title="Number List Attribute - one more, with style">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.tutorials.number_list_attribute___one_more__with_style"></a><a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.number_list_attribute___one_more__with_style" title="Number
- List Attribute - one more, with style">Number
- List Attribute - one more, with style</a></h4></div></div></div>
+<a name="spirit.qi_and_karma.tutorials.number_list_attribute___one_more__with_style"></a><a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.number_list_attribute___one_more__with_style" title="Number List Attribute - one more, with style">Number
+ List Attribute - one more, with style</a>
+</h4></div></div></div>
 <p>
- You've seen that the <tt class="computeroutput"><span class="identifier">double_</span></tt>
- parser has a <tt class="computeroutput"><span class="keyword">double</span></tt> attribute.
+ You've seen that the <code class="computeroutput"><span class="identifier">double_</span></code>
+ parser has a <code class="computeroutput"><span class="keyword">double</span></code> attribute.
           All parsers have an attribute, even complex parsers, those that are composed
           from primitives using operators, like the list parser, also have an attribute.
           It so happens that the the attribute of a list parser:
@@ -1071,7 +1106,7 @@
 <pre class="programlisting"><span class="identifier">p</span> <span class="special">%</span> <span class="identifier">d</span>
 </pre>
 <p>
- is a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span></tt> of the attribute of <tt class="computeroutput"><span class="identifier">p</span></tt>. So, for our parser:
+ is a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span></code> of the attribute of <code class="computeroutput"><span class="identifier">p</span></code>. So, for our parser:
         </p>
 <pre class="programlisting"><span class="identifier">double_</span> <span class="special">%</span> <span class="char">','</span>
 </pre>
@@ -1081,25 +1116,25 @@
 <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">double</span><span class="special">&gt;</span>
 </pre>
 <p>
- So, what does this give us? Well, we can simply pass in a <tt class="computeroutput"><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></tt>
+ So, what does this give us? Well, we can simply pass in a <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">double</span><span class="special">&gt;</span></code>
           to our number list parser and it will happily churn out our result in our
- vector. For that to happen, we'll use a variation of the <tt class="computeroutput"><span class="identifier">phrase_parse</span></tt> with an additional argument:
+ vector. For that to happen, we'll use a variation of the <code class="computeroutput"><span class="identifier">phrase_parse</span></code> with an additional argument:
           the parser's attribute:
         </p>
-<div class="orderedlist"><ol type="1">
-<li>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem">
             An iterator pointing to the start of the input
           </li>
-<li>
+<li class="listitem">
             An iterator pointing to one past the end of the input
           </li>
-<li>
+<li class="listitem">
             The parser object
           </li>
-<li>
+<li class="listitem">
             The parser's attribute
           </li>
-<li>
+<li class="listitem">
             Another parser called the skip parser
           </li>
 </ol></div>
@@ -1114,6 +1149,11 @@
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">&gt;</span>
 <span class="keyword">bool</span> <span class="identifier">parse_numbers</span><span class="special">(</span><span class="identifier">Iterator</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">Iterator</span> <span class="identifier">last</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;&amp;</span> <span class="identifier">v</span><span class="special">)</span>
 <span class="special">{</span>
+ <span class="keyword">using</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">double_</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">phrase_parse</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">_1</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">phrase_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="comment">// Begin grammar
@@ -1123,7 +1163,7 @@
         <span class="special">,</span>
         <span class="comment">// End grammar
 </span>
- <span class="identifier">v</span><span class="special">,</span> <span class="identifier">space</span><span class="special">);</span>
+ <span class="identifier">space</span><span class="special">,</span> <span class="identifier">v</span><span class="special">);</span>
 
     <span class="keyword">if</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="comment">// fail if we did not get a full match
 </span> <span class="keyword">return</span> <span class="keyword">false</span><span class="special">;</span>
@@ -1138,37 +1178,37 @@
           The full cpp file for this example can be found here: ../../example/qi/num_list4.cpp
         </p>
 <p>
- <span class="bold"><b>Hey, no more actions!!!</b></span> Now we're entering
+ <span class="bold"><strong>Hey, no more actions!!!</strong></span> Now we're entering
           the realm of attribute grammars. Cool eh?
         </p>
 </div>
-<div class="section" lang="en">
+<div class="section" title="Roman Numerals">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.tutorials.roman_numerals"></a><a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.roman_numerals" title="Roman
- Numerals">Roman
- Numerals</a></h4></div></div></div>
+<a name="spirit.qi_and_karma.tutorials.roman_numerals"></a><a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.roman_numerals" title="Roman Numerals">Roman
+ Numerals</a>
+</h4></div></div></div>
 <p>
           This example demonstrates:
         </p>
-<div class="itemizedlist"><ul type="disc">
-<li>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
             symbol table
           </li>
-<li>
+<li class="listitem">
             rule
           </li>
-<li>
+<li class="listitem">
             grammar
           </li>
 </ul></div>
-<a name="spirit.qi_and_karma.tutorials.roman_numerals.symbol_table"></a><h5>
-<a name="id467678"></a>
- <a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.roman_numerals.symbol_table">Symbol
+<a name="spirit.qi_and_karma.tutorials.roman_numerals.symbol_table"></a><h6>
+<a name="id697127"></a>
+ <a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.roman_numerals.symbol_table">Symbol
           Table</a>
- </h5>
+ </h6>
 <p>
           The symbol table holds a dictionary of symbols where each symbol is a sequence
- of characters (a <tt class="computeroutput"><span class="keyword">char</span></tt>, <tt class="computeroutput"><span class="keyword">wchar_t</span></tt>, <tt class="computeroutput"><span class="keyword">int</span></tt>,
+ of characters (a <code class="computeroutput"><span class="keyword">char</span></code>, <code class="computeroutput"><span class="keyword">wchar_t</span></code>, <code class="computeroutput"><span class="keyword">int</span></code>,
           enumeration etc.) . The template class, parameterized by the character
           type, can work efficiently with 8, 16, 32 and even 64 bit characters. Mutable
           data of type T is associated with each symbol.
@@ -1203,7 +1243,7 @@
 <p>
             
 </p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">hundreds_</span> <span class="special">:</span> <span class="identifier">symbols</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">,</span> <span class="keyword">unsigned</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">hundreds_</span> <span class="special">:</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">symbols</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">,</span> <span class="keyword">unsigned</span><span class="special">&gt;</span>
 <span class="special">{</span>
     <span class="identifier">hundreds_</span><span class="special">()</span>
     <span class="special">{</span>
@@ -1234,7 +1274,7 @@
 <p>
             
 </p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">tens_</span> <span class="special">:</span> <span class="identifier">symbols</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">,</span> <span class="keyword">unsigned</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">tens_</span> <span class="special">:</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">symbols</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">,</span> <span class="keyword">unsigned</span><span class="special">&gt;</span>
 <span class="special">{</span>
     <span class="identifier">tens_</span><span class="special">()</span>
     <span class="special">{</span>
@@ -1265,7 +1305,7 @@
 <p>
             
 </p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">ones_</span> <span class="special">:</span> <span class="identifier">symbols</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">,</span> <span class="keyword">unsigned</span><span class="special">&gt;</span>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">ones_</span> <span class="special">:</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">symbols</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">,</span> <span class="keyword">unsigned</span><span class="special">&gt;</span>
 <span class="special">{</span>
     <span class="identifier">ones_</span><span class="special">()</span>
     <span class="special">{</span>
@@ -1289,19 +1329,19 @@
 <p>
         </p>
 <p>
- Now we can use <tt class="computeroutput"><span class="identifier">hundreds</span></tt>,
- <tt class="computeroutput"><span class="identifier">tens</span></tt> and <tt class="computeroutput"><span class="identifier">ones</span></tt> anywhere in our parser expressions.
+ Now we can use <code class="computeroutput"><span class="identifier">hundreds</span></code>,
+ <code class="computeroutput"><span class="identifier">tens</span></code> and <code class="computeroutput"><span class="identifier">ones</span></code> anywhere in our parser expressions.
           They are all parsers.
         </p>
-<a name="spirit.qi_and_karma.tutorials.roman_numerals.rules"></a><h5>
-<a name="id468962"></a>
- Rules
- </h5>
+<a name="spirit.qi_and_karma.tutorials.roman_numerals.rules"></a><h6>
+<a name="id698105"></a>
+ <a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.roman_numerals.rules">Rules</a>
+ </h6>
 <p>
           Up until now, we've been inlining our parser expressions, passing them
- directly to the <tt class="computeroutput"><span class="identifier">phrase_parse</span></tt>
+ directly to the <code class="computeroutput"><span class="identifier">phrase_parse</span></code>
           function. The expression evaluates into a temporary, unnamed parser which
- is passed into the <tt class="computeroutput"><span class="identifier">phrase_parse</span></tt>
+ is passed into the <code class="computeroutput"><span class="identifier">phrase_parse</span></code>
           function, used, and then destroyed. This is fine for small parsers. When
           the expressions get complicated, you'd want to break the expressions into
           smaller easier to understand pieces, name them, and refer to them from
@@ -1315,8 +1355,8 @@
 </pre>
 <p>
           At the very least, the rule needs to know the iterator type it will be
- working on. This rule cannot be used with <tt class="computeroutput"><span class="identifier">phrase_parse</span></tt>.
- It can only be used with the <tt class="computeroutput"><span class="identifier">parse</span></tt>
+ working on. This rule cannot be used with <code class="computeroutput"><span class="identifier">phrase_parse</span></code>.
+ It can only be used with the <code class="computeroutput"><span class="identifier">parse</span></code>
           function -- a version that does not do white space skipping (does not have
           the skipper argument). If you want to have it skip white spaces, you need
           to pass in the type skip parser, as in the next form:
@@ -1329,8 +1369,8 @@
 <pre class="programlisting"><span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">::</span><span class="identifier">iterator</span><span class="special">,</span> <span class="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">r</span><span class="special">;</span>
 </pre>
 <p>
- This type of rule can be used for both <tt class="computeroutput"><span class="identifier">phrase_parse</span></tt>
- and <tt class="computeroutput"><span class="identifier">parse</span></tt>.
+ This type of rule can be used for both <code class="computeroutput"><span class="identifier">phrase_parse</span></code>
+ and <code class="computeroutput"><span class="identifier">parse</span></code>.
         </p>
 <p>
           For our next example, there's one more rule form you should know about:
@@ -1342,19 +1382,19 @@
         </p>
 <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">Signature</span><span class="special">,</span> <span class="identifier">Skipper</span><span class="special">&gt;</span> <span class="identifier">r</span><span class="special">;</span>
 </pre>
-<div class="tip"><table border="0" summary="Tip">
+<div class="tip" title="Tip"><table border="0" summary="Tip">
 <tr>
 <td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../images/tip.png"></td>
 <th align="left">Tip</th>
 </tr>
-<tr><td colspan="2" align="left" valign="top"><p>
+<tr><td align="left" valign="top"><p>
             All rule template arguments after Iterator can be supplied in any order.
           </p></td></tr>
 </table></div>
 <p>
           The Signature specifies the attributes of the rule. You've seen that our
- parsers can have an attribute. Recall that the <tt class="computeroutput"><span class="identifier">double_</span></tt>
- parser has an attribute of <tt class="computeroutput"><span class="keyword">double</span></tt>.
+ parsers can have an attribute. Recall that the <code class="computeroutput"><span class="identifier">double_</span></code>
+ parser has an attribute of <code class="computeroutput"><span class="keyword">double</span></code>.
           To be precise, these are <span class="emphasis"><em>synthesized</em></span> attributes. The
           parser "synthesizes" the attribute value. Think of them as function
           return values.
@@ -1373,27 +1413,27 @@
         </p>
 <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_and_karma.tutorials.roman_numerals.grammars"></a><h5>
-<a name="id469547"></a>
- Grammars
- </h5>
+<a name="spirit.qi_and_karma.tutorials.roman_numerals.grammars"></a><h6>
+<a name="id700136"></a>
+ <a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.roman_numerals.grammars">Grammars</a>
+ </h6>
 <p>
           A grammar encapsulates one or more rules. It has the same template parameters
           as the rule. You declare a grammar by:
         </p>
-<div class="orderedlist"><ol type="1">
-<li>
- deriving a struct (or class) from the <tt class="computeroutput"><span class="identifier">grammar</span></tt>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem">
+ deriving a struct (or class) from the <code class="computeroutput"><span class="identifier">grammar</span></code>
             class template
           </li>
-<li>
+<li class="listitem">
             declare one or more rules as member variables
           </li>
-<li>
+<li class="listitem">
             initialize the base grammar class by giving it the start rule (its the
             first rule that gets called when the grammar starts parsing)
           </li>
-<li>
+<li class="listitem">
             initialize your rules in your constructor
           </li>
 </ol></div>
@@ -1406,13 +1446,19 @@
             
 </p>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">roman</span> <span class="special">:</span> <span class="identifier">grammar</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="keyword">unsigned</span><span class="special">()&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">roman</span> <span class="special">:</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">grammar</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="keyword">unsigned</span><span class="special">()&gt;</span>
 <span class="special">{</span>
     <span class="identifier">roman</span><span class="special">()</span> <span class="special">:</span> <span class="identifier">roman</span><span class="special">::</span><span class="identifier">base_type</span><span class="special">(</span><span class="identifier">start</span><span class="special">)</span>
     <span class="special">{</span>
+ <span class="keyword">using</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">eps</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">lit</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">_val</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">_1</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">ascii</span><span class="special">::</span><span class="identifier">char_</span><span class="special">;</span>
+
         <span class="identifier">start</span> <span class="special">=</span> <span class="identifier">eps</span> <span class="special">[</span><span class="identifier">_val</span> <span class="special">=</span> <span class="number">0</span><span class="special">]</span> <span class="special">&gt;&gt;</span>
             <span class="special">(</span>
- <span class="special">+</span><span class="identifier">char_</span><span class="special">(</span><span class="char">'M'</span><span class="special">)</span> <span class="special">[</span><span class="identifier">_val</span> <span class="special">+=</span> <span class="number">1000</span><span class="special">]</span>
+ <span class="special">+</span><span class="identifier">lit</span><span class="special">(</span><span class="char">'M'</span><span class="special">)</span> <span class="special">[</span><span class="identifier">_val</span> <span class="special">+=</span> <span class="number">1000</span><span class="special">]</span>
                 <span class="special">||</span> <span class="identifier">hundreds</span> <span class="special">[</span><span class="identifier">_val</span> <span class="special">+=</span> <span class="identifier">_1</span><span class="special">]</span>
                 <span class="special">||</span> <span class="identifier">tens</span> <span class="special">[</span><span class="identifier">_val</span> <span class="special">+=</span> <span class="identifier">_1</span><span class="special">]</span>
                 <span class="special">||</span> <span class="identifier">ones</span> <span class="special">[</span><span class="identifier">_val</span> <span class="special">+=</span> <span class="identifier">_1</span><span class="special">]</span>
@@ -1420,7 +1466,7 @@
         <span class="special">;</span>
     <span class="special">}</span>
 
- <span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="keyword">unsigned</span><span class="special">()&gt;</span> <span class="identifier">start</span><span class="special">;</span>
+ <span class="identifier">qi</span><span class="special">::</span><span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="keyword">unsigned</span><span class="special">()&gt;</span> <span class="identifier">start</span><span class="special">;</span>
 <span class="special">};</span>
 </pre>
 <p>
@@ -1430,53 +1476,53 @@
 <p>
           Things to take notice of:
         </p>
-<div class="itemizedlist"><ul type="disc">
-<li>
- The grammar and start rule signature is <tt class="computeroutput"><span class="keyword">unsigned</span><span class="special">()</span></tt>. It has a synthesized attribute (return
- value) of type <tt class="computeroutput"><span class="keyword">unsigned</span></tt>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ The grammar and start rule signature is <code class="computeroutput"><span class="keyword">unsigned</span><span class="special">()</span></code>. It has a synthesized attribute (return
+ value) of type <code class="computeroutput"><span class="keyword">unsigned</span></code>
             with no inherited attributes (arguments).
           </li>
-<li>
+<li class="listitem">
             We did not specify a skip-parser. We don't want to skip in between the
             numerals.
           </li>
-<li>
-<tt class="computeroutput"><span class="identifier">roman</span><span class="special">::</span><span class="identifier">base_type</span></tt> is a typedef for <tt class="computeroutput"><span class="identifier">grammar</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span>
- <span class="keyword">unsigned</span><span class="special">()&gt;</span></tt>.
- If <tt class="computeroutput"><span class="identifier">roman</span></tt> was not a template,
+<li class="listitem">
+<code class="computeroutput"><span class="identifier">roman</span><span class="special">::</span><span class="identifier">base_type</span></code> is a typedef for <code class="computeroutput"><span class="identifier">grammar</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span>
+ <span class="keyword">unsigned</span><span class="special">()&gt;</span></code>.
+ If <code class="computeroutput"><span class="identifier">roman</span></code> was not a template,
             you can simply write: base_type(start)
           </li>
-<li>
+<li class="listitem">
             But it's best to make your grammar templates, so that they can be reused
             for different iterator types.
           </li>
-<li>
-<tt class="computeroutput"><span class="identifier">_val</span></tt> is another Phoenix placeholder representing
+<li class="listitem">
+<code class="computeroutput"><span class="identifier">_val</span></code> is another Phoenix placeholder representing
             the rule's synthesized attribute.
           </li>
-<li>
-<tt class="computeroutput"><span class="identifier">eps</span></tt> is a special spirit
+<li class="listitem">
+<code class="computeroutput"><span class="identifier">eps</span></code> is a special spirit
             parser that consumes no input but is always successful. We use it to
- initialize <tt class="computeroutput"><span class="identifier">_val</span></tt>, the
+ initialize <code class="computeroutput"><span class="identifier">_val</span></code>, the
             rule's synthesized attribute, to zero before anything else. The actual
- parser starts at <tt class="computeroutput"><span class="special">+</span><span class="identifier">char_</span><span class="special">(</span><span class="char">'M'</span><span class="special">)</span></tt>,
- parsing roman thousands. Using <tt class="computeroutput"><span class="identifier">eps</span></tt>
+ parser starts at <code class="computeroutput"><span class="special">+</span><span class="identifier">char_</span><span class="special">(</span><span class="char">'M'</span><span class="special">)</span></code>,
+ parsing roman thousands. Using <code class="computeroutput"><span class="identifier">eps</span></code>
             this way is good for doing pre and post initializations.
           </li>
-<li>
- The expression <tt class="computeroutput"><span class="identifier">a</span> <span class="special">||</span>
- <span class="identifier">b</span></tt> reads: match a or b and in
- sequence. That is, if both <tt class="computeroutput"><span class="identifier">a</span></tt>
- and <tt class="computeroutput"><span class="identifier">b</span></tt> match, it must
- be in sequence; this is equivalent to <tt class="computeroutput"><span class="identifier">a</span>
- <span class="special">&gt;&gt;</span> <span class="special">!</span><span class="identifier">b</span> <span class="special">|</span> <span class="identifier">b</span></tt>, but more efficient.
+<li class="listitem">
+ The expression <code class="computeroutput"><span class="identifier">a</span> <span class="special">||</span>
+ <span class="identifier">b</span></code> reads: match a or b and in
+ sequence. That is, if both <code class="computeroutput"><span class="identifier">a</span></code>
+ and <code class="computeroutput"><span class="identifier">b</span></code> match, it must
+ be in sequence; this is equivalent to <code class="computeroutput"><span class="identifier">a</span>
+ <span class="special">&gt;&gt;</span> <span class="special">-</span><span class="identifier">b</span> <span class="special">|</span> <span class="identifier">b</span></code>, but more efficient.
           </li>
 </ul></div>
-<a name="spirit.qi_and_karma.tutorials.roman_numerals.let_s_parse_"></a><h5>
-<a name="id470410"></a>
- <a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.roman_numerals.let_s_parse_">Let's
+<a name="spirit.qi_and_karma.tutorials.roman_numerals.let_s_parse_"></a><h6>
+<a name="id700866"></a>
+ <a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.roman_numerals.let_s_parse_">Let's
           Parse!</a>
- </h5>
+ </h6>
 <p>
           </p>
 <p>
@@ -1505,23 +1551,23 @@
 <p>
         </p>
 <p>
- <tt class="computeroutput"><span class="identifier">roman_parser</span></tt> is an object
- of type <tt class="computeroutput"><span class="identifier">roman</span></tt> -our roman
+ <code class="computeroutput"><span class="identifier">roman_parser</span></code> is an object
+ of type <code class="computeroutput"><span class="identifier">roman</span></code> -our roman
           numeral parser. This time around, we are using the no-skipping version
           of the parse functions. We do not want to skip any spaces! We are also
- passing in an attribute, <tt class="computeroutput"><span class="keyword">unsigned</span>
- <span class="identifier">result</span></tt>, which will receive the
+ passing in an attribute, <code class="computeroutput"><span class="keyword">unsigned</span>
+ <span class="identifier">result</span></code>, which will receive the
           parsed value.
         </p>
 <p>
           The full cpp file for this example can be found here: ../../example/qi/roman.cpp
         </p>
 </div>
-<div class="section" lang="en">
+<div class="section" title="Employee - Parsing into structs">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.tutorials.employee___parsing_into_structs"></a><a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.employee___parsing_into_structs" title="Employee
- - Parsing into structs">Employee
- - Parsing into structs</a></h4></div></div></div>
+<a name="spirit.qi_and_karma.tutorials.employee___parsing_into_structs"></a><a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.employee___parsing_into_structs" title="Employee - Parsing into structs">Employee
+ - Parsing into structs</a>
+</h4></div></div></div>
 <p>
           It's a common question in the <a href="http://www.nabble.com/The-Spirit-Parser-Library-f3430.html" target="_top">Spirit
           General List</a>: how do I parse and place the results into a C++ struct?
@@ -1530,17 +1576,17 @@
           attributed, makes it even easier. The next example demonstrates some features
           of Spirit2 that makes this easy. In the process, you'll learn about:
         </p>
-<div class="itemizedlist"><ul type="disc">
-<li>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
             More about attributes
           </li>
-<li>
+<li class="listitem">
             Auto rules
           </li>
-<li>
+<li class="listitem">
             Some more built-in parsers
           </li>
-<li>
+<li class="listitem">
             Directives
           </li>
 </ul></div>
@@ -1581,7 +1627,7 @@
             
 </p>
 <pre class="programlisting"><span class="identifier">BOOST_FUSION_ADAPT_STRUCT</span><span class="special">(</span>
- <span class="identifier">employee</span><span class="special">,</span>
+ <span class="identifier">client</span><span class="special">::</span><span class="identifier">employee</span><span class="special">,</span>
     <span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">age</span><span class="special">)</span>
     <span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="identifier">surname</span><span class="special">)</span>
     <span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="identifier">forename</span><span class="special">)</span>
@@ -1606,10 +1652,16 @@
             
 </p>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">employee_parser</span> <span class="special">:</span> <span class="identifier">grammar</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">employee</span><span class="special">(),</span> <span class="identifier">space_type</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">employee_parser</span> <span class="special">:</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">grammar</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">employee</span><span class="special">(),</span> <span class="identifier">ascii</span><span class="special">::</span><span class="identifier">space_type</span><span class="special">&gt;</span>
 <span class="special">{</span>
     <span class="identifier">employee_parser</span><span class="special">()</span> <span class="special">:</span> <span class="identifier">employee_parser</span><span class="special">::</span><span class="identifier">base_type</span><span class="special">(</span><span class="identifier">start</span><span class="special">)</span>
     <span class="special">{</span>
+ <span class="keyword">using</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">int_</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">lit</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">double_</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">lexeme</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">ascii</span><span class="special">::</span><span class="identifier">char_</span><span class="special">;</span>
+
         <span class="identifier">quoted_string</span> <span class="special">%=</span> <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>
 
         <span class="identifier">start</span> <span class="special">%=</span>
@@ -1623,8 +1675,8 @@
             <span class="special">;</span>
     <span class="special">}</span>
 
- <span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(),</span> <span class="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">quoted_string</span><span class="special">;</span>
- <span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">employee</span><span class="special">(),</span> <span class="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">start</span><span class="special">;</span>
+ <span class="identifier">qi</span><span class="special">::</span><span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(),</span> <span class="identifier">ascii</span><span class="special">::</span><span class="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">quoted_string</span><span class="special">;</span>
+ <span class="identifier">qi</span><span class="special">::</span><span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">employee</span><span class="special">(),</span> <span class="identifier">ascii</span><span class="special">::</span><span class="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">start</span><span class="special">;</span>
 <span class="special">};</span>
 </pre>
 <p>
@@ -1642,15 +1694,15 @@
 <span class="keyword">struct</span> <span class="identifier">employee_parser</span> <span class="special">:</span> <span class="identifier">grammar</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">employee</span><span class="special">(),</span> <span class="identifier">space_type</span><span class="special">&gt;</span>
 </pre>
 <p>
- <tt class="computeroutput"><span class="identifier">employee_parser</span></tt> is a grammar.
+ <code class="computeroutput"><span class="identifier">employee_parser</span></code> is a grammar.
           Like before, we make it a template so that we can reuse it for different
           iterator types. The grammar's signature is:
         </p>
 <pre class="programlisting"><span class="identifier">employee</span><span class="special">()</span>
 </pre>
 <p>
- meaning, the parser generates employee structs. <tt class="computeroutput"><span class="identifier">employee_parser</span></tt>
- skips white spaces using <tt class="computeroutput"><span class="identifier">space_type</span></tt>
+ meaning, the parser generates employee structs. <code class="computeroutput"><span class="identifier">employee_parser</span></code>
+ skips white spaces using <code class="computeroutput"><span class="identifier">space_type</span></code>
           as its skip parser.
         </p>
 <pre class="programlisting"><span class="identifier">employee_parser</span><span class="special">()</span> <span class="special">:</span> <span class="identifier">employee_parser</span><span class="special">::</span><span class="identifier">base_type</span><span class="special">(</span><span class="identifier">start</span><span class="special">)</span>
@@ -1662,19 +1714,19 @@
 <span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">employee</span><span class="special">(),</span> <span class="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">start</span><span class="special">;</span>
 </pre>
 <p>
- Declares two rules: <tt class="computeroutput"><span class="identifier">quoted_string</span></tt>
- and <tt class="computeroutput"><span class="identifier">start</span></tt>. <tt class="computeroutput"><span class="identifier">start</span></tt> has the same template parameters
- as the grammar itself. <tt class="computeroutput"><span class="identifier">quoted_string</span></tt>
- has a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></tt> attribute.
- </p>
-<a name="spirit.qi_and_karma.tutorials.employee___parsing_into_structs.lexeme"></a><h5>
-<a name="id472484"></a>
- Lexeme
- </h5>
+ Declares two rules: <code class="computeroutput"><span class="identifier">quoted_string</span></code>
+ and <code class="computeroutput"><span class="identifier">start</span></code>. <code class="computeroutput"><span class="identifier">start</span></code> has the same template parameters
+ as the grammar itself. <code class="computeroutput"><span class="identifier">quoted_string</span></code>
+ 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_and_karma.tutorials.employee___parsing_into_structs.lexeme"></a><h6>
+<a name="id702604"></a>
+ <a class="link" href="qi_and_karma.html#spirit.qi_and_karma.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>
 </pre>
 <p>
- <tt class="computeroutput"><span class="identifier">lexeme</span></tt> inhibits space skipping
+ <code class="computeroutput"><span class="identifier">lexeme</span></code> inhibits space skipping
           from the open brace to the closing brace. The expression parses quoted
           strings.
         </p>
@@ -1684,35 +1736,35 @@
           parses one or more chars, except the double quote. It stops when it sees
           a double quote.
         </p>
-<a name="spirit.qi_and_karma.tutorials.employee___parsing_into_structs.difference"></a><h5>
-<a name="id472645"></a>
- Difference
- </h5>
+<a name="spirit.qi_and_karma.tutorials.employee___parsing_into_structs.difference"></a><h6>
+<a name="id702712"></a>
+ <a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.employee___parsing_into_structs.difference">Difference</a>
+ </h6>
 <p>
           The expression:
         </p>
 <pre class="programlisting"><span class="identifier">a</span> <span class="special">-</span> <span class="identifier">b</span>
 </pre>
 <p>
- parses <tt class="computeroutput"><span class="identifier">a</span></tt> but not <tt class="computeroutput"><span class="identifier">b</span></tt>. Its attribute is just <tt class="computeroutput"><span class="identifier">A</span></tt>, the attribute of <tt class="computeroutput"><span class="identifier">a</span></tt>.
- <tt class="computeroutput"><span class="identifier">b</span></tt>'s attribute is ignored.
+ parses <code class="computeroutput"><span class="identifier">a</span></code> but not <code class="computeroutput"><span class="identifier">b</span></code>. Its attribute is just <code class="computeroutput"><span class="identifier">A</span></code>, the attribute of <code class="computeroutput"><span class="identifier">a</span></code>.
+ <code class="computeroutput"><span class="identifier">b</span></code>'s attribute is ignored.
           Hence, the attribute of:
         </p>
 <pre class="programlisting"><span class="identifier">char_</span> <span class="special">-</span> <span class="char">'"'</span>
 </pre>
 <p>
- is just <tt class="computeroutput"><span class="keyword">char</span></tt>.
+ is just <code class="computeroutput"><span class="keyword">char</span></code>.
         </p>
-<a name="spirit.qi_and_karma.tutorials.employee___parsing_into_structs.plus"></a><h5>
-<a name="id472806"></a>
- Plus
- </h5>
+<a name="spirit.qi_and_karma.tutorials.employee___parsing_into_structs.plus"></a><h6>
+<a name="id702815"></a>
+ <a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.employee___parsing_into_structs.plus">Plus</a>
+ </h6>
 <pre class="programlisting"><span class="special">+</span><span class="identifier">a</span>
 </pre>
 <p>
           is the close kin of the kleene star we got so used to in our tutorial.
- Like it's kin, the kleene star, its attribute is a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></tt> where <tt class="computeroutput"><span class="identifier">A</span></tt>
- is the attribute of <tt class="computeroutput"><span class="identifier">a</span></tt>.
+ Like it's kin, the kleene star, its attribute is a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code> where <code class="computeroutput"><span class="identifier">A</span></code>
+ is the attribute of <code class="computeroutput"><span class="identifier">a</span></code>.
           So, putting all these together, the attribute of
         </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>
@@ -1722,11 +1774,11 @@
         </p>
 <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_and_karma.tutorials.employee___parsing_into_structs.sequence_attribute"></a><h5>
-<a name="id472994"></a>
- <a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.employee___parsing_into_structs.sequence_attribute">Sequence
+<a name="spirit.qi_and_karma.tutorials.employee___parsing_into_structs.sequence_attribute"></a><h6>
+<a name="id702939"></a>
+ <a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.employee___parsing_into_structs.sequence_attribute">Sequence
           Attribute</a>
- </h5>
+ </h6>
 <p>
           Now what's the attribute of
         </p>
@@ -1746,45 +1798,45 @@
 <pre class="programlisting"><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">,</span> <span class="identifier">C</span><span class="special">&gt;</span>
 </pre>
 <p>
- where <tt class="computeroutput"><span class="identifier">A</span></tt> is the attribute
- of <tt class="computeroutput"><span class="identifier">a</span></tt>, <tt class="computeroutput"><span class="identifier">B</span></tt>
- is the attribute of <tt class="computeroutput"><span class="identifier">b</span></tt> and
- <tt class="computeroutput"><span class="identifier">C</span></tt> is the attribute of
- <tt class="computeroutput"><span class="identifier">c</span></tt>. What is <tt class="computeroutput"><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">vector</span></tt>? - a tuple.
+ where <code class="computeroutput"><span class="identifier">A</span></code> is the attribute
+ of <code class="computeroutput"><span class="identifier">a</span></code>, <code class="computeroutput"><span class="identifier">B</span></code>
+ is the attribute of <code class="computeroutput"><span class="identifier">b</span></code> and
+ <code class="computeroutput"><span class="identifier">C</span></code> is the attribute of
+ <code class="computeroutput"><span class="identifier">c</span></code>. What is <code class="computeroutput"><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">vector</span></code>? - a tuple.
         </p>
-<div class="note"><table border="0" summary="Note">
+<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 colspan="2" align="left" valign="top"><p>
+<tr><td align="left" valign="top"><p>
             If you don't know what I am talking about, see: <a href="http://tinyurl.com/6xun4j" target="_top">Fusion
             Vector</a>. It might be a good idea to have a look into Fusion
             at this point. You'll definitely see more of it in the coming pages.
           </p></td></tr>
 </table></div>
-<a name="spirit.qi_and_karma.tutorials.employee___parsing_into_structs.attribute_collapsing"></a><h5>
-<a name="id473317"></a>
- <a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.employee___parsing_into_structs.attribute_collapsing">Attribute
+<a name="spirit.qi_and_karma.tutorials.employee___parsing_into_structs.attribute_collapsing"></a><h6>
+<a name="id703161"></a>
+ <a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.employee___parsing_into_structs.attribute_collapsing">Attribute
           Collapsing</a>
- </h5>
+ </h6>
 <p>
           Some parsers, especially those very little literal parsers you see, like
- <tt class="computeroutput"><span class="char">'"'</span></tt>, do not have attributes.
+ <code class="computeroutput"><span class="char">'"'</span></code>, do not have attributes.
         </p>
 <p>
           Nodes without attributes are disregarded. In a sequence, like above, all
- nodes with no attributes are filtered out of the <tt class="computeroutput"><span class="identifier">fusion</span><span class="special">:</span><span class="identifier">vector</span></tt>.
- So, since <tt class="computeroutput"><span class="char">'"'</span></tt> has no attribute,
- and <tt class="computeroutput"><span class="special">+(</span><span class="identifier">char_</span>
- <span class="special">-</span> <span class="char">'"'</span><span class="special">)</span></tt> has a <tt class="computeroutput"><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></tt> attribute, the whole expression's attribute
+ nodes with no attributes are filtered out of the <code class="computeroutput"><span class="identifier">fusion</span><span class="special">:</span><span class="identifier">vector</span></code>.
+ So, since <code class="computeroutput"><span class="char">'"'</span></code> has no attribute,
+ and <code class="computeroutput"><span class="special">+(</span><span class="identifier">char_</span>
+ <span class="special">-</span> <span class="char">'"'</span><span class="special">)</span></code> has a <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">char</span><span class="special">&gt;</span></code> attribute, the whole expression's attribute
           should have been:
         </p>
 <pre class="programlisting"><span class="identifier">fusion</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">vector</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">&gt;</span> <span class="special">&gt;</span>
 </pre>
 <p>
           But wait, there's one more collapsing rule: If after the attribute is a
- single element <tt class="computeroutput"><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">vector</span></tt>, The element is stripped naked
+ single element <code class="computeroutput"><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">vector</span></code>, The element is stripped naked
           from its container. So, to make a long story short, the attribute of the
           expression:
         </p>
@@ -1795,11 +1847,11 @@
         </p>
 <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_and_karma.tutorials.employee___parsing_into_structs.auto_rules"></a><h5>
-<a name="id473668"></a>
- <a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.employee___parsing_into_structs.auto_rules">Auto
+<a name="spirit.qi_and_karma.tutorials.employee___parsing_into_structs.auto_rules"></a><h6>
+<a name="id703397"></a>
+ <a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.employee___parsing_into_structs.auto_rules">Auto
           Rules</a>
- </h5>
+ </h6>
 <p>
           It is typical to see rules like:
         </p>
@@ -1813,11 +1865,11 @@
 <pre class="programlisting"><span class="identifier">r</span> <span class="special">%=</span> <span class="identifier">p</span><span class="special">;</span>
 </pre>
 <p>
- The attribute of <tt class="computeroutput"><span class="identifier">p</span></tt> automatically
- uses the attribute of <tt class="computeroutput"><span class="identifier">r</span></tt>.
+ The attribute of <code class="computeroutput"><span class="identifier">p</span></code> automatically
+ uses the attribute of <code class="computeroutput"><span class="identifier">r</span></code>.
         </p>
 <p>
- So, going back to our <tt class="computeroutput"><span class="identifier">quoted_string</span></tt>
+ So, going back to our <code class="computeroutput"><span class="identifier">quoted_string</span></code>
           rule:
         </p>
 <pre class="programlisting"><span class="identifier">quoted_string</span> <span class="special">%=</span> <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>
@@ -1828,15 +1880,15 @@
 <pre class="programlisting"><span class="identifier">quoted_string</span> <span class="special">=</span> <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><span class="identifier">val_</span> <span class="special">=</span> <span class="identifier">_1</span><span class="special">];</span>
 </pre>
 <p>
- The attribute of the <tt class="computeroutput"><span class="identifier">quoted_string</span></tt>
- rule: <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></tt> <span class="bold"><b>is compatible</b></span>
- with the attribute of the RHS: <tt class="computeroutput"><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></tt>. The RHS extracts the parsed attribute
+ The attribute of the <code class="computeroutput"><span class="identifier">quoted_string</span></code>
+ rule: <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></code> <span class="bold"><strong>is compatible</strong></span>
+ with the attribute of the RHS: <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">char</span><span class="special">&gt;</span></code>. The RHS extracts the parsed attribute
           directly into the rule's attribute, in-situ.
         </p>
-<a name="spirit.qi_and_karma.tutorials.employee___parsing_into_structs.finally"></a><h5>
-<a name="id474119"></a>
- Finally
- </h5>
+<a name="spirit.qi_and_karma.tutorials.employee___parsing_into_structs.finally"></a><h6>
+<a name="id703712"></a>
+ <a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.employee___parsing_into_structs.finally">Finally</a>
+ </h6>
 <p>
           We're down to one rule, the start rule:
         </p>
@@ -1858,28 +1910,28 @@
 <p>
           These nodes do not have an attribute:
         </p>
-<div class="itemizedlist"><ul type="disc">
-<li><tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="string">"employee"</span><span class="special">)</span></tt></li>
-<li><tt class="computeroutput"><span class="char">'{'</span></tt></li>
-<li><tt class="computeroutput"><span class="char">'}'</span></tt></li>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem"><code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="string">"employee"</span><span class="special">)</span></code></li>
+<li class="listitem"><code class="computeroutput"><span class="char">'{'</span></code></li>
+<li class="listitem"><code class="computeroutput"><span class="char">'}'</span></code></li>
 </ul></div>
-<div class="note"><table border="0" summary="Note">
+<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 colspan="2" align="left" valign="top"><p>
- In case you are wondering, <tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="string">"employee"</span><span class="special">)</span></tt> is the same as "employee".
- We had to wrap it inside <tt class="computeroutput"><span class="identifier">lit</span></tt>
- because immediately after it is <tt class="computeroutput"><span class="special">&gt;&gt;</span>
- <span class="char">'{'</span></tt>. You can't right-shift a <tt class="computeroutput"><span class="keyword">char</span><span class="special">[]</span></tt>
- and a <tt class="computeroutput"><span class="keyword">char</span></tt> - you know, C++
+<tr><td align="left" valign="top"><p>
+ In case you are wondering, <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="string">"employee"</span><span class="special">)</span></code> is the same as "employee".
+ We had to wrap it inside <code class="computeroutput"><span class="identifier">lit</span></code>
+ because immediately after it is <code class="computeroutput"><span class="special">&gt;&gt;</span>
+ <span class="char">'{'</span></code>. You can't right-shift a <code class="computeroutput"><span class="keyword">char</span><span class="special">[]</span></code>
+ and a <code class="computeroutput"><span class="keyword">char</span></code> - you know, C++
             syntax rules.
           </p></td></tr>
 </table></div>
 <p>
- Recall that the attribute of <tt class="computeroutput"><span class="identifier">start</span></tt>
- is the <tt class="computeroutput"><span class="identifier">employee</span></tt> struct:
+ Recall that the attribute of <code class="computeroutput"><span class="identifier">start</span></code>
+ is the <code class="computeroutput"><span class="identifier">employee</span></code> struct:
         </p>
 <p>
           </p>
@@ -1899,25 +1951,25 @@
 <p>
         </p>
 <p>
- Now everything is clear, right? The <tt class="computeroutput"><span class="keyword">struct</span>
- <span class="identifier">employee</span></tt> <span class="bold"><b>IS</b></span>
- compatible with <tt class="computeroutput"><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></tt>. So, the RHS of <tt class="computeroutput"><span class="identifier">start</span></tt>
- uses start's attribute (a <tt class="computeroutput"><span class="keyword">struct</span>
- <span class="identifier">employee</span></tt>) in-situ when it does
+ Now everything is clear, right? The <code class="computeroutput"><span class="keyword">struct</span>
+ <span class="identifier">employee</span></code> <span class="bold"><strong>IS</strong></span>
+ compatible with <code class="computeroutput"><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code>. So, the RHS of <code class="computeroutput"><span class="identifier">start</span></code>
+ uses start's attribute (a <code class="computeroutput"><span class="keyword">struct</span>
+ <span class="identifier">employee</span></code>) in-situ when it does
           its work.
         </p>
 </div>
-<div class="section" lang="en">
+<div class="section" title="Mini XML - ASTs!">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.tutorials.mini_xml___asts_"></a><a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___asts_" title="Mini
- XML - ASTs!">Mini
- XML - ASTs!</a></h4></div></div></div>
+<a name="spirit.qi_and_karma.tutorials.mini_xml___asts_"></a><a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___asts_" title="Mini XML - ASTs!">Mini
+ XML - ASTs!</a>
+</h4></div></div></div>
 <p>
           Stop and think about it... We've come very close to generating an AST in
           our last example. We parsed a single structure and generated an in-memory
- representation of it in the form of a struct: the <tt class="computeroutput"><span class="keyword">struct</span>
- <span class="identifier">employee</span></tt>. If we changed the implementation
- to parse one or more employees, the result would be a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">employee</span><span class="special">&gt;</span></tt>. We can go on and add more hierarchy:
+ representation of it in the form of a struct: the <code class="computeroutput"><span class="keyword">struct</span>
+ <span class="identifier">employee</span></code>. If we changed the implementation
+ to parse one or more employees, the result would be a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">employee</span><span class="special">&gt;</span></code>. We can go on and add more hierarchy:
           teams, departments, corporations. Then we'll have an AST representation
           of it all.
         </p>
@@ -1929,20 +1981,20 @@
 <p>
           Along the way, we'll see new features:
         </p>
-<div class="itemizedlist"><ul type="disc">
-<li>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
             Inherited attributes
           </li>
-<li>
+<li class="listitem">
             Variant attributes
           </li>
-<li>
+<li class="listitem">
             Local Variables
           </li>
-<li>
+<li class="listitem">
             Not Predicate
           </li>
-<li>
+<li class="listitem">
             Lazy Lit
           </li>
 </ul></div>
@@ -1954,11 +2006,11 @@
           There are a couple of sample toy-xml files in: ../../example/qi/mini_xml_samples
           for testing purposes. "4.toyxml" has an error in it.
         </p>
-<a name="spirit.qi_and_karma.tutorials.mini_xml___asts_.first_cut"></a><h5>
-<a name="id475029"></a>
- <a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___asts_.first_cut">First
+<a name="spirit.qi_and_karma.tutorials.mini_xml___asts_.first_cut"></a><h6>
+<a name="id705998"></a>
+ <a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___asts_.first_cut">First
           Cut</a>
- </h5>
+ </h6>
 <p>
           Without further delay, here's the first version of the XML grammar:
         </p>
@@ -1968,23 +2020,32 @@
             
 </p>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">mini_xml_grammar</span> <span class="special">:</span> <span class="identifier">grammar</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">mini_xml</span><span class="special">(),</span> <span class="identifier">space_type</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">mini_xml_grammar</span> <span class="special">:</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">grammar</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">mini_xml</span><span class="special">(),</span> <span class="identifier">ascii</span><span class="special">::</span><span class="identifier">space_type</span><span class="special">&gt;</span>
 <span class="special">{</span>
     <span class="identifier">mini_xml_grammar</span><span class="special">()</span> <span class="special">:</span> <span class="identifier">mini_xml_grammar</span><span class="special">::</span><span class="identifier">base_type</span><span class="special">(</span><span class="identifier">xml</span><span class="special">)</span>
     <span class="special">{</span>
+ <span class="keyword">using</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">lit</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">lexeme</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">ascii</span><span class="special">::</span><span class="identifier">char_</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">ascii</span><span class="special">::</span><span class="identifier">string</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">labels</span><span class="special">;</span>
+
+ <span class="keyword">using</span> <span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">at_c</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">push_back</span><span class="special">;</span>
+
         <span class="identifier">text</span> <span class="special">=</span> <span class="identifier">lexeme</span><span class="special">[+(</span><span class="identifier">char_</span> <span class="special">-</span> <span class="char">'&lt;'</span><span class="special">)</span> <span class="special">[</span><span class="identifier">_val</span> <span class="special">+=</span> <span class="identifier">_1</span><span class="special">]];</span>
         <span class="identifier">node</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">xml</span> <span class="special">|</span> <span class="identifier">text</span><span class="special">)</span> <span class="special">[</span><span class="identifier">_val</span> <span class="special">=</span> <span class="identifier">_1</span><span class="special">];</span>
 
         <span class="identifier">start_tag</span> <span class="special">=</span>
                 <span class="char">'&lt;'</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="special">!</span><span class="identifier">lit</span><span class="special">(</span><span class="char">'/'</span><span class="special">)</span>
             <span class="special">&gt;&gt;</span> <span class="identifier">lexeme</span><span class="special">[+(</span><span class="identifier">char_</span> <span class="special">-</span> <span class="char">'&gt;'</span><span class="special">)</span> <span class="special">[</span><span class="identifier">_val</span> <span class="special">+=</span> <span class="identifier">_1</span><span class="special">]]</span>
             <span class="special">&gt;&gt;</span> <span class="char">'&gt;'</span>
         <span class="special">;</span>
 
         <span class="identifier">end_tag</span> <span class="special">=</span>
                 <span class="string">"&lt;/"</span>
- <span class="special">&gt;&gt;</span> <span class="identifier">lit</span><span class="special">(</span><span class="identifier">_r1</span><span class="special">)</span>
+ <span class="special">&gt;&gt;</span> <span class="identifier">string</span><span class="special">(</span><span class="identifier">_r1</span><span class="special">)</span>
             <span class="special">&gt;&gt;</span> <span class="char">'&gt;'</span>
         <span class="special">;</span>
 
@@ -1995,11 +2056,11 @@
         <span class="special">;</span>
     <span class="special">}</span>
 
- <span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">mini_xml</span><span class="special">(),</span> <span class="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">xml</span><span class="special">;</span>
- <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>
- <span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(),</span> <span class="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">text</span><span class="special">;</span>
- <span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(),</span> <span class="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">start_tag</span><span class="special">;</span>
- <span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="keyword">void</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">),</span> <span class="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">end_tag</span><span class="special">;</span>
+ <span class="identifier">qi</span><span class="special">::</span><span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">mini_xml</span><span class="special">(),</span> <span class="identifier">ascii</span><span class="special">::</span><span class="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">xml</span><span class="special">;</span>
+ <span class="identifier">qi</span><span class="special">::</span><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">ascii</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>
+ <span class="identifier">qi</span><span class="special">::</span><span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(),</span> <span class="identifier">ascii</span><span class="special">::</span><span class="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">text</span><span class="special">;</span>
+ <span class="identifier">qi</span><span class="special">::</span><span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(),</span> <span class="identifier">ascii</span><span class="special">::</span><span class="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">start_tag</span><span class="special">;</span>
+ <span class="identifier">qi</span><span class="special">::</span><span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="keyword">void</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">),</span> <span class="identifier">ascii</span><span class="special">::</span><span class="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">end_tag</span><span class="special">;</span>
 <span class="special">};</span>
 </pre>
 <p>
@@ -2007,7 +2068,7 @@
 <p>
         </p>
 <p>
- Going bottom up, let's examine the <tt class="computeroutput"><span class="identifier">text</span></tt>
+ Going bottom up, let's examine the <code class="computeroutput"><span class="identifier">text</span></code>
           rule:
         </p>
 <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">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(),</span> <span class="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">text</span><span class="special">;</span>
@@ -2019,13 +2080,13 @@
 </pre>
 <p>
           The semantic action collects the chars and appends them (via +=) to the
- <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></tt> attribute of the rule (represented
- by the placeholder <tt class="computeroutput"><span class="identifier">_val</span></tt>).
+ <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></code> attribute of the rule (represented
+ by the placeholder <code class="computeroutput"><span class="identifier">_val</span></code>).
         </p>
-<a name="spirit.qi_and_karma.tutorials.mini_xml___asts_.alternates"></a><h5>
-<a name="id476318"></a>
- Alternates
- </h5>
+<a name="spirit.qi_and_karma.tutorials.mini_xml___asts_.alternates"></a><h6>
+<a name="id707184"></a>
+ <a class="link" href="qi_and_karma.html#spirit.qi_and_karma.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>
 </pre>
 <p>
@@ -2034,15 +2095,15 @@
 <pre class="programlisting"><span class="identifier">node</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">xml</span> <span class="special">|</span> <span class="identifier">text</span><span class="special">)</span> <span class="special">[</span><span class="identifier">_val</span> <span class="special">=</span> <span class="identifier">_1</span><span class="special">];</span>
 </pre>
 <p>
- We'll see what a <tt class="computeroutput"><span class="identifier">mini_xml_node</span></tt>
+ We'll see what a <code class="computeroutput"><span class="identifier">mini_xml_node</span></code>
           structure later. Looking at the rule definition, we see some alternation
- goiing on here. An xml <tt class="computeroutput"><span class="identifier">node</span></tt>
- is either an <tt class="computeroutput"><span class="identifier">xml</span></tt> OR <tt class="computeroutput"><span class="identifier">text</span></tt>. Hmmm... hold on to that thought...
+ goiing on here. An xml <code class="computeroutput"><span class="identifier">node</span></code>
+ is either an <code class="computeroutput"><span class="identifier">xml</span></code> OR <code class="computeroutput"><span class="identifier">text</span></code>. Hmmm... hold on to that thought...
         </p>
 <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">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(),</span> <span class="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">start_tag</span><span class="special">;</span>
 </pre>
 <p>
- Again, with an attribute of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></tt>.
+ Again, with an attribute of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></code>.
           Then, it's definition:
         </p>
 <pre class="programlisting"><span class="identifier">start_tag</span> <span class="special">=</span>
@@ -2052,46 +2113,46 @@
     <span class="special">&gt;&gt;</span> <span class="char">'&gt;'</span>
 <span class="special">;</span>
 </pre>
-<a name="spirit.qi_and_karma.tutorials.mini_xml___asts_.not_predicate"></a><h5>
-<a name="id476781"></a>
- <a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___asts_.not_predicate">Not
+<a name="spirit.qi_and_karma.tutorials.mini_xml___asts_.not_predicate"></a><h6>
+<a name="id707516"></a>
+ <a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___asts_.not_predicate">Not
           Predicate</a>
- </h5>
+ </h6>
 <p>
- <tt class="computeroutput"><span class="identifier">start_tag</span></tt> is similar to
- the <tt class="computeroutput"><span class="identifier">text</span></tt> rule apart from
- the added <tt class="computeroutput"><span class="char">'&lt;'</span></tt> and <tt class="computeroutput"><span class="char">'&gt;'</span></tt>. But wait, to make sure that the <tt class="computeroutput"><span class="identifier">start_tag</span></tt> does not parse <tt class="computeroutput"><span class="identifier">end_tag</span></tt>s too, we add: <tt class="computeroutput"><span class="special">!</span><span class="identifier">char_</span><span class="special">(</span><span class="char">'/'</span><span class="special">)</span></tt>. This
+ <code class="computeroutput"><span class="identifier">start_tag</span></code> is similar to
+ the <code class="computeroutput"><span class="identifier">text</span></code> rule apart from
+ the added <code class="computeroutput"><span class="char">'&lt;'</span></code> and <code class="computeroutput"><span class="char">'&gt;'</span></code>. But wait, to make sure that the <code class="computeroutput"><span class="identifier">start_tag</span></code> does not parse <code class="computeroutput"><span class="identifier">end_tag</span></code>s too, we add: <code class="computeroutput"><span class="special">!</span><span class="identifier">char_</span><span class="special">(</span><span class="char">'/'</span><span class="special">)</span></code>. This
           is a "Not Predicate":
         </p>
 <pre class="programlisting"><span class="special">!</span><span class="identifier">p</span>
 </pre>
 <p>
- It will try the parser, <tt class="computeroutput"><span class="identifier">p</span></tt>.
+ It will try the parser, <code class="computeroutput"><span class="identifier">p</span></code>.
           If it is successful, fail, otherwise, pass. In other words, it negates
- the result of <tt class="computeroutput"><span class="identifier">p</span></tt>. Like the
- <tt class="computeroutput"><span class="identifier">eps</span></tt>, it does not consume
+ the result of <code class="computeroutput"><span class="identifier">p</span></code>. Like the
+ <code class="computeroutput"><span class="identifier">eps</span></code>, it does not consume
           any input though. It will always rewind the iterator position to where
           it was upon entry. So, 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>
 </pre>
 <p>
- basically says: we should not have a <tt class="computeroutput"><span class="char">'/'</span></tt>
+ basically says: we should not have a <code class="computeroutput"><span class="char">'/'</span></code>
           at this point.
         </p>
-<a name="spirit.qi_and_karma.tutorials.mini_xml___asts_.inherited_attribute"></a><h5>
-<a name="id477026"></a>
- <a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___asts_.inherited_attribute">Inherited
+<a name="spirit.qi_and_karma.tutorials.mini_xml___asts_.inherited_attribute"></a><h6>
+<a name="id707671"></a>
+ <a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___asts_.inherited_attribute">Inherited
           Attribute</a>
- </h5>
+ </h6>
 <p>
- The <tt class="computeroutput"><span class="identifier">end_tag</span></tt>:
+ The <code class="computeroutput"><span class="identifier">end_tag</span></code>:
         </p>
 <pre class="programlisting"><span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="keyword">void</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">),</span> <span class="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">end_tag</span><span class="special">;</span>
 </pre>
 <p>
- Ohh! Now we see an inherited attribute there: <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></tt>.
- The <tt class="computeroutput"><span class="identifier">end_tag</span></tt> does not have
+ Ohh! Now we see an inherited attribute there: <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></code>.
+ The <code class="computeroutput"><span class="identifier">end_tag</span></code> does not have
           a synthesized attribute. Let's see its definition:
         </p>
 <pre class="programlisting"><span class="identifier">end_tag</span> <span class="special">=</span>
@@ -2101,28 +2162,28 @@
 <span class="special">;</span>
 </pre>
 <p>
- <tt class="computeroutput"><span class="identifier">_r1</span></tt> is yet another Phoenix placeholder for
- the 1st inherited attribute (we have only one, use <tt class="computeroutput"><span class="identifier">_r2</span></tt>,
- <tt class="computeroutput"><span class="identifier">_r3</span></tt>, etc. if you have more).
- </p>
-<a name="spirit.qi_and_karma.tutorials.mini_xml___asts_.a_lazy_lit"></a><h5>
-<a name="id477308"></a>
- <a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___asts_.a_lazy_lit">A
+ <code class="computeroutput"><span class="identifier">_r1</span></code> is yet another Phoenix placeholder for
+ the 1st inherited attribute (we have only one, use <code class="computeroutput"><span class="identifier">_r2</span></code>,
+ <code class="computeroutput"><span class="identifier">_r3</span></code>, etc. if you have more).
+ </p>
+<a name="spirit.qi_and_karma.tutorials.mini_xml___asts_.a_lazy_lit"></a><h6>
+<a name="id707866"></a>
+ <a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___asts_.a_lazy_lit">A
           Lazy Lit</a>
- </h5>
+ </h6>
 <p>
- Check out how we used <tt class="computeroutput"><span class="identifier">lit</span></tt>
+ Check out how we used <code class="computeroutput"><span class="identifier">lit</span></code>
           here, this time, not with a literal string, but with the value of the 1st
- inherited attribute, which is specified as <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></tt>
+ inherited attribute, which is specified as <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></code>
           in our rule declaration.
         </p>
 <p>
- Finally, our <tt class="computeroutput"><span class="identifier">xml</span></tt> rule:
+ Finally, our <code class="computeroutput"><span class="identifier">xml</span></code> rule:
         </p>
 <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</span><span class="special">(),</span> <span class="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">xml</span><span class="special">;</span>
 </pre>
 <p>
- <tt class="computeroutput"><span class="identifier">mini_xml</span></tt> is our attribute
+ <code class="computeroutput"><span class="identifier">mini_xml</span></code> is our attribute
           here. We'll see later what it is. Let's see its definition:
         </p>
 <pre class="programlisting"><span class="identifier">xml</span> <span class="special">=</span>
@@ -2133,37 +2194,37 @@
 </pre>
 <p>
           Those who know Fusion
- now will notice <tt class="computeroutput"><span class="identifier">at_c</span><span class="special">&lt;</span><span class="number">0</span><span class="special">&gt;</span></tt> and
- <tt class="computeroutput"><span class="identifier">at_c</span><span class="special">&lt;</span><span class="number">1</span><span class="special">&gt;</span></tt>. This
- gives us a hint that <tt class="computeroutput"><span class="identifier">mini_xml</span></tt>
- is a sort of a tuple - a fusion sequence. <tt class="computeroutput"><span class="identifier">at_c</span><span class="special">&lt;</span><span class="identifier">N</span><span class="special">&gt;</span></tt> here is a lazy version of the tuple
+ now will notice <code class="computeroutput"><span class="identifier">at_c</span><span class="special">&lt;</span><span class="number">0</span><span class="special">&gt;</span></code> and
+ <code class="computeroutput"><span class="identifier">at_c</span><span class="special">&lt;</span><span class="number">1</span><span class="special">&gt;</span></code>. This
+ gives us a hint that <code class="computeroutput"><span class="identifier">mini_xml</span></code>
+ is a sort of a tuple - a fusion sequence. <code class="computeroutput"><span class="identifier">at_c</span><span class="special">&lt;</span><span class="identifier">N</span><span class="special">&gt;</span></code> here is a lazy version of the tuple
           accessors, provided by Phoenix.
         </p>
-<a name="spirit.qi_and_karma.tutorials.mini_xml___asts_.how_it_all_works"></a><h5>
-<a name="id477789"></a>
- <a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___asts_.how_it_all_works">How
+<a name="spirit.qi_and_karma.tutorials.mini_xml___asts_.how_it_all_works"></a><h6>
+<a name="id708202"></a>
+ <a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___asts_.how_it_all_works">How
           it all works</a>
- </h5>
+ </h6>
 <p>
           So, what's happening?
         </p>
-<div class="orderedlist"><ol type="1">
-<li>
- Upon parsing <tt class="computeroutput"><span class="identifier">start_tag</span></tt>,
- the parsed start-tag string is placed in <tt class="computeroutput"><span class="identifier">at_c</span><span class="special">&lt;</span><span class="number">0</span><span class="special">&gt;(</span><span class="identifier">_val</span><span class="special">)</span></tt>.
- </li>
-<li>
- Then we parse zero or more <tt class="computeroutput"><span class="identifier">node</span></tt>s.
- At each step, we <tt class="computeroutput"><span class="identifier">push_back</span></tt>
- the result into <tt class="computeroutput"><span class="identifier">at_c</span><span class="special">&lt;</span><span class="number">1</span><span class="special">&gt;(</span><span class="identifier">_val</span><span class="special">)</span></tt>.
- </li>
-<li>
- Finally, we parse the <tt class="computeroutput"><span class="identifier">end_tag</span></tt>
- giving it an inherited attribute: <tt class="computeroutput"><span class="identifier">at_c</span><span class="special">&lt;</span><span class="number">0</span><span class="special">&gt;(</span><span class="identifier">_val</span><span class="special">)</span></tt>.
- This is the string we obtained from the <tt class="computeroutput"><span class="identifier">start_tag</span></tt>.
- Investigate <tt class="computeroutput"><span class="identifier">end_tag</span></tt> above.
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem">
+ Upon parsing <code class="computeroutput"><span class="identifier">start_tag</span></code>,
+ the parsed start-tag string is placed in <code class="computeroutput"><span class="identifier">at_c</span><span class="special">&lt;</span><span class="number">0</span><span class="special">&gt;(</span><span class="identifier">_val</span><span class="special">)</span></code>.
+ </li>
+<li class="listitem">
+ Then we parse zero or more <code class="computeroutput"><span class="identifier">node</span></code>s.
+ At each step, we <code class="computeroutput"><span class="identifier">push_back</span></code>
+ the result into <code class="computeroutput"><span class="identifier">at_c</span><span class="special">&lt;</span><span class="number">1</span><span class="special">&gt;(</span><span class="identifier">_val</span><span class="special">)</span></code>.
+ </li>
+<li class="listitem">
+ Finally, we parse the <code class="computeroutput"><span class="identifier">end_tag</span></code>
+ giving it an inherited attribute: <code class="computeroutput"><span class="identifier">at_c</span><span class="special">&lt;</span><span class="number">0</span><span class="special">&gt;(</span><span class="identifier">_val</span><span class="special">)</span></code>.
+ This is the string we obtained from the <code class="computeroutput"><span class="identifier">start_tag</span></code>.
+ Investigate <code class="computeroutput"><span class="identifier">end_tag</span></code> above.
             It will fail to parse if it gets something different from what we got
- from the <tt class="computeroutput"><span class="identifier">start_tag</span></tt>. This
+ from the <code class="computeroutput"><span class="identifier">start_tag</span></code>. This
             ensures that our tags are balanced.
           </li>
 </ol></div>
@@ -2182,15 +2243,15 @@
 <span class="special">;</span>
 </pre>
 <p>
- passing in <tt class="computeroutput"><span class="identifier">at_c</span><span class="special">&lt;</span><span class="number">0</span><span class="special">&gt;(</span><span class="identifier">_val</span><span class="special">)</span></tt>, the string from start tag. This is referred
- to in the <tt class="computeroutput"><span class="identifier">end_tag</span></tt> body
- as <tt class="computeroutput"><span class="identifier">_r1</span></tt>.
- </p>
-<a name="spirit.qi_and_karma.tutorials.mini_xml___asts_.the_structures"></a><h5>
-<a name="id478235"></a>
- <a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___asts_.the_structures">The
+ passing in <code class="computeroutput"><span class="identifier">at_c</span><span class="special">&lt;</span><span class="number">0</span><span class="special">&gt;(</span><span class="identifier">_val</span><span class="special">)</span></code>, the string from start tag. This is referred
+ to in the <code class="computeroutput"><span class="identifier">end_tag</span></code> body
+ as <code class="computeroutput"><span class="identifier">_r1</span></code>.
+ </p>
+<a name="spirit.qi_and_karma.tutorials.mini_xml___asts_.the_structures"></a><h6>
+<a name="id708503"></a>
+ <a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___asts_.the_structures">The
           Structures</a>
- </h5>
+ </h6>
 <p>
           Let's see our structures. It will definitely be hierarchical: xml is hierarchical.
           It will also be recursive: xml is recursive.
@@ -2219,17 +2280,17 @@
           </p>
 <p>
         </p>
-<a name="spirit.qi_and_karma.tutorials.mini_xml___asts_.of_alternates_and_variants"></a><h5>
-<a name="id478508"></a>
- <a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___asts_.of_alternates_and_variants">Of
+<a name="spirit.qi_and_karma.tutorials.mini_xml___asts_.of_alternates_and_variants"></a><h6>
+<a name="id708699"></a>
+ <a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___asts_.of_alternates_and_variants">Of
           Alternates and Variants</a>
- </h5>
+ </h6>
 <p>
- So that's how a <tt class="computeroutput"><span class="identifier">mini_xml_node</span></tt>
- looks like. We had a hint that it is either a <tt class="computeroutput"><span class="identifier">string</span></tt>
- or a <tt class="computeroutput"><span class="identifier">mini_xml</span></tt>. For this,
- we use boost.variant<>.
- <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">recursive_wrapper</span></tt> wraps <tt class="computeroutput"><span class="identifier">mini_xml</span></tt>, making it a recursive data
+ So that's how a <code class="computeroutput"><span class="identifier">mini_xml_node</span></code>
+ looks like. We had a hint that it is either a <code class="computeroutput"><span class="identifier">string</span></code>
+ or a <code class="computeroutput"><span class="identifier">mini_xml</span></code>. For this,
+ we use boost.variant<>.
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">recursive_wrapper</span></code> wraps <code class="computeroutput"><span class="identifier">mini_xml</span></code>, making it a recursive data
           structure.
         </p>
 <p>
@@ -2243,16 +2304,16 @@
 <pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">variant</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>
 </pre>
 <p>
- where <tt class="computeroutput"><span class="identifier">A</span></tt> is the attribute
- of <tt class="computeroutput"><span class="identifier">a</span></tt> and <tt class="computeroutput"><span class="identifier">B</span></tt> is the attribute of <tt class="computeroutput"><span class="identifier">b</span></tt>.
+ where <code class="computeroutput"><span class="identifier">A</span></code> is the attribute
+ 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_and_karma.tutorials.mini_xml___asts_.adapting_structs_again"></a><h5>
-<a name="id478778"></a>
- <a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___asts_.adapting_structs_again">Adapting
+<a name="spirit.qi_and_karma.tutorials.mini_xml___asts_.adapting_structs_again"></a><h6>
+<a name="id708874"></a>
+ <a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___asts_.adapting_structs_again">Adapting
           structs again</a>
- </h5>
+ </h6>
 <p>
- <tt class="computeroutput"><span class="identifier">mini_xml</span></tt> is no brainier.
+ <code class="computeroutput"><span class="identifier">mini_xml</span></code> is no brainier.
           It is a plain ol' struct. But as we've seen in our employee example, we
           can adapt that to be a Fusion
           sequence:
@@ -2263,20 +2324,20 @@
             
 </p>
 <pre class="programlisting"><span class="identifier">BOOST_FUSION_ADAPT_STRUCT</span><span class="special">(</span>
- <span class="identifier">mini_xml</span><span class="special">,</span>
+ <span class="identifier">client</span><span class="special">::</span><span class="identifier">mini_xml</span><span class="special">,</span>
     <span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="identifier">name</span><span class="special">)</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="identifier">mini_xml_node</span><span class="special">&gt;,</span> <span class="identifier">children</span><span class="special">)</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="identifier">client</span><span class="special">::</span><span class="identifier">mini_xml_node</span><span class="special">&gt;,</span> <span class="identifier">children</span><span class="special">)</span>
 <span class="special">)</span>
 </pre>
 <p>
           </p>
 <p>
         </p>
-<a name="spirit.qi_and_karma.tutorials.mini_xml___asts_.one_more_take"></a><h5>
-<a name="id478959"></a>
- <a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___asts_.one_more_take">One
+<a name="spirit.qi_and_karma.tutorials.mini_xml___asts_.one_more_take"></a><h6>
+<a name="id709015"></a>
+ <a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___asts_.one_more_take">One
           More Take</a>
- </h5>
+ </h6>
 <p>
           Here's another version. The AST structure remains the same, but this time,
           you'll see that we make use of auto-rules making the grammar semantic-action-
@@ -2289,24 +2350,30 @@
 </p>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">mini_xml_grammar</span>
- <span class="special">:</span> <span class="identifier">grammar</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">mini_xml</span><span class="special">(),</span> <span class="identifier">locals</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="identifier">space_type</span><span class="special">&gt;</span>
+ <span class="special">:</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">grammar</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">mini_xml</span><span class="special">(),</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">locals</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="identifier">ascii</span><span class="special">::</span><span class="identifier">space_type</span><span class="special">&gt;</span>
 <span class="special">{</span>
     <span class="identifier">mini_xml_grammar</span><span class="special">()</span>
       <span class="special">:</span> <span class="identifier">mini_xml_grammar</span><span class="special">::</span><span class="identifier">base_type</span><span class="special">(</span><span class="identifier">xml</span><span class="special">)</span>
     <span class="special">{</span>
+ <span class="keyword">using</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">lit</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">lexeme</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">ascii</span><span class="special">::</span><span class="identifier">char_</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="identifier">ascii</span><span class="special">::</span><span class="identifier">string</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">labels</span><span class="special">;</span>
+
         <span class="identifier">text</span> <span class="special">%=</span> <span class="identifier">lexeme</span><span class="special">[+(</span><span class="identifier">char_</span> <span class="special">-</span> <span class="char">'&lt;'</span><span class="special">)];</span>
         <span class="identifier">node</span> <span class="special">%=</span> <span class="identifier">xml</span> <span class="special">|</span> <span class="identifier">text</span><span class="special">;</span>
 
         <span class="identifier">start_tag</span> <span class="special">%=</span>
                 <span class="char">'&lt;'</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="special">!</span><span class="identifier">lit</span><span class="special">(</span><span class="char">'/'</span><span class="special">)</span>
             <span class="special">&gt;&gt;</span> <span class="identifier">lexeme</span><span class="special">[+(</span><span class="identifier">char_</span> <span class="special">-</span> <span class="char">'&gt;'</span><span class="special">)]</span>
             <span class="special">&gt;&gt;</span> <span class="char">'&gt;'</span>
         <span class="special">;</span>
 
         <span class="identifier">end_tag</span> <span class="special">=</span>
                 <span class="string">"&lt;/"</span>
- <span class="special">&gt;&gt;</span> <span class="identifier">lit</span><span class="special">(</span><span class="identifier">_r1</span><span class="special">)</span>
+ <span class="special">&gt;&gt;</span> <span class="identifier">string</span><span class="special">(</span><span class="identifier">_r1</span><span class="special">)</span>
             <span class="special">&gt;&gt;</span> <span class="char">'&gt;'</span>
         <span class="special">;</span>
 
@@ -2317,11 +2384,11 @@
         <span class="special">;</span>
     <span class="special">}</span>
 
- <span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">mini_xml</span><span class="special">(),</span> <span class="identifier">locals</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="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">xml</span><span class="special">;</span>
- <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>
- <span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(),</span> <span class="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">text</span><span class="special">;</span>
- <span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(),</span> <span class="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">start_tag</span><span class="special">;</span>
- <span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="keyword">void</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">),</span> <span class="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">end_tag</span><span class="special">;</span>
+ <span class="identifier">qi</span><span class="special">::</span><span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">mini_xml</span><span class="special">(),</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">locals</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="identifier">ascii</span><span class="special">::</span><span class="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">xml</span><span class="special">;</span>
+ <span class="identifier">qi</span><span class="special">::</span><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">ascii</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>
+ <span class="identifier">qi</span><span class="special">::</span><span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(),</span> <span class="identifier">ascii</span><span class="special">::</span><span class="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">text</span><span class="special">;</span>
+ <span class="identifier">qi</span><span class="special">::</span><span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(),</span> <span class="identifier">ascii</span><span class="special">::</span><span class="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">start_tag</span><span class="special">;</span>
+ <span class="identifier">qi</span><span class="special">::</span><span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="keyword">void</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">),</span> <span class="identifier">ascii</span><span class="special">::</span><span class="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">end_tag</span><span class="special">;</span>
 <span class="special">};</span>
 </pre>
 <p>
@@ -2333,19 +2400,19 @@
           the first xml parser example. The rules are almost the same, except that,
           we got rid of semantic actions and used auto-rules (see the employee example
           if you missed that). There are a couple of new stuff, though. It's all
- in the <tt class="computeroutput"><span class="identifier">xml</span></tt> rule:
+ in the <code class="computeroutput"><span class="identifier">xml</span></code> rule:
         </p>
-<a name="spirit.qi_and_karma.tutorials.mini_xml___asts_.local_variables"></a><h5>
-<a name="id479925"></a>
- <a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___asts_.local_variables">Local
+<a name="spirit.qi_and_karma.tutorials.mini_xml___asts_.local_variables"></a><h6>
+<a name="id709935"></a>
+ <a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___asts_.local_variables">Local
           Variables</a>
- </h5>
+ </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</span><span class="special">(),</span> <span class="identifier">locals</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="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">xml</span><span class="special">;</span>
 </pre>
 <p>
- Wow, we have four template parameters now. What's that <tt class="computeroutput"><span class="identifier">locals</span></tt>
- guy doing there? Well, it declares that the rule <tt class="computeroutput"><span class="identifier">xml</span></tt>
- will have one local variable: a <tt class="computeroutput"><span class="identifier">string</span></tt>.
+ Wow, we have four template parameters now. What's that <code class="computeroutput"><span class="identifier">locals</span></code>
+ guy doing there? Well, it declares that the rule <code class="computeroutput"><span class="identifier">xml</span></code>
+ will have one local variable: a <code class="computeroutput"><span class="identifier">string</span></code>.
           Let's see how this is used in action:
         </p>
 <pre class="programlisting"><span class="identifier">xml</span> <span class="special">%=</span>
@@ -2354,33 +2421,33 @@
     <span class="special">&gt;&gt;</span> <span class="identifier">end_tag</span><span class="special">(</span><span class="identifier">_a</span><span class="special">)</span>
 <span class="special">;</span>
 </pre>
-<div class="orderedlist"><ol type="1">
-<li>
- Upon parsing <tt class="computeroutput"><span class="identifier">start_tag</span></tt>,
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem">
+ Upon parsing <code class="computeroutput"><span class="identifier">start_tag</span></code>,
             the parsed start-tag string is placed in the local variable specified
             by (yet another) Phoenix
- placeholder: <tt class="computeroutput"><span class="identifier">_a</span></tt>. We have
- only one local variable. If we had more, these are designated by <tt class="computeroutput"><span class="identifier">_b</span></tt>..<tt class="computeroutput"><span class="identifier">_z</span></tt>.
+ placeholder: <code class="computeroutput"><span class="identifier">_a</span></code>. We have
+ only one local variable. If we had more, these are designated by <code class="computeroutput"><span class="identifier">_b</span></code>..<code class="computeroutput"><span class="identifier">_z</span></code>.
           </li>
-<li>
- Then we parse zero or more <tt class="computeroutput"><span class="identifier">node</span></tt>s.
+<li class="listitem">
+ Then we parse zero or more <code class="computeroutput"><span class="identifier">node</span></code>s.
           </li>
-<li>
- Finally, we parse the <tt class="computeroutput"><span class="identifier">end_tag</span></tt>
- giving it an inherited attribute: <tt class="computeroutput"><span class="identifier">_a</span></tt>,
+<li class="listitem">
+ Finally, we parse the <code class="computeroutput"><span class="identifier">end_tag</span></code>
+ giving it an inherited attribute: <code class="computeroutput"><span class="identifier">_a</span></code>,
             our local variable.
           </li>
 </ol></div>
 <p>
- There are no actions involved in stuffing data into our <tt class="computeroutput"><span class="identifier">xml</span></tt>
+ There are no actions involved in stuffing data into our <code class="computeroutput"><span class="identifier">xml</span></code>
           attribute. It's all taken cared of thatnks to the auto-rule.
         </p>
 </div>
-<div class="section" lang="en">
+<div class="section" title="Mini XML - Error Handling">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.tutorials.mini_xml___error_handling"></a><a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___error_handling" title="Mini
- XML - Error Handling">Mini
- XML - Error Handling</a></h4></div></div></div>
+<a name="spirit.qi_and_karma.tutorials.mini_xml___error_handling"></a><a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___error_handling" title="Mini XML - Error Handling">Mini
+ XML - Error Handling</a>
+</h4></div></div></div>
 <p>
           A parser will not be complete without error handling. Spirit2 provides
           some facilities to make it easy to adapt a grammar for error handling.
@@ -2395,77 +2462,13 @@
           Here's the grammar:
         </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">Iterator</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">mini_xml_grammar</span>
- <span class="special">:</span> <span class="identifier">grammar</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">mini_xml</span><span class="special">(),</span> <span class="identifier">locals</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="identifier">space_type</span><span class="special">&gt;</span>
-<span class="special">{</span>
- <span class="identifier">mini_xml_grammar</span><span class="special">()</span>
- <span class="special">:</span> <span class="identifier">mini_xml_grammar</span><span class="special">::</span><span class="identifier">base_type</span><span class="special">(</span><span class="identifier">xml</span><span class="special">,</span> <span class="string">"xml"</span><span class="special">)</span>
- <span class="special">{</span>
- <span class="identifier">text</span> <span class="special">%=</span> <span class="identifier">lexeme</span><span class="special">[+(</span><span class="identifier">char_</span> <span class="special">-</span> <span class="char">'&lt;'</span><span class="special">)];</span>
- <span class="identifier">node</span> <span class="special">%=</span> <span class="identifier">xml</span> <span class="special">|</span> <span class="identifier">text</span><span class="special">;</span>
-
- <span class="identifier">start_tag</span> <span class="special">%=</span>
- <span class="char">'&lt;'</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;</span> <span class="identifier">lexeme</span><span class="special">[+(</span><span class="identifier">char_</span> <span class="special">-</span> <span class="char">'&gt;'</span><span class="special">)]</span>
- <span class="special">&gt;</span> <span class="char">'&gt;'</span>
- <span class="special">;</span>
-
- <span class="identifier">end_tag</span> <span class="special">=</span>
- <span class="string">"&lt;/"</span>
- <span class="special">&gt;</span> <span class="identifier">lit</span><span class="special">(</span><span class="identifier">_r1</span><span class="special">)</span>
- <span class="special">&gt;</span> <span class="char">'&gt;'</span>
- <span class="special">;</span>
-
- <span class="identifier">xml</span> <span class="special">%=</span>
- <span class="identifier">start_tag</span><span class="special">[</span><span class="identifier">_a</span> <span class="special">=</span> <span class="identifier">_1</span><span class="special">]</span>
- <span class="special">&gt;</span> <span class="special">*</span><span class="identifier">node</span>
- <span class="special">&gt;</span> <span class="identifier">end_tag</span><span class="special">(</span><span class="identifier">_a</span><span class="special">)</span>
- <span class="special">;</span>
-
- <span class="identifier">xml</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="string">"xml"</span><span class="special">);</span>
- <span class="identifier">node</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="string">"node"</span><span class="special">);</span>
- <span class="identifier">text</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="string">"text"</span><span class="special">);</span>
- <span class="identifier">start_tag</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="string">"start_tag"</span><span class="special">);</span>
- <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>
-
- <span class="identifier">on_error</span><span class="special">&lt;</span><span class="identifier">fail</span><span class="special">&gt;</span>
- <span class="special">(</span>
- <span class="identifier">xml</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="identifier">val</span><span class="special">(</span><span class="string">"Error! Expecting "</span><span class="special">)</span>
- <span class="special">&lt;&lt;</span> <span class="identifier">_4</span> <span class="comment">// what failed?
-</span> <span class="special">&lt;&lt;</span> <span class="identifier">val</span><span class="special">(</span><span class="string">" here: \""</span><span class="special">)</span>
- <span class="special">&lt;&lt;</span> <span class="identifier">construct</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="identifier">_3</span><span class="special">,</span> <span class="identifier">_2</span><span class="special">)</span> <span class="comment">// iterators to error-pos, end
-</span> <span class="special">&lt;&lt;</span> <span class="identifier">val</span><span class="special">(</span><span class="string">"\""</span><span class="special">)</span>
- <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span>
- <span class="special">);</span>
- <span class="special">}</span>
-
- <span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">mini_xml</span><span class="special">(),</span> <span class="identifier">locals</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="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">xml</span><span class="special">;</span>
- <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>
- <span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(),</span> <span class="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">text</span><span class="special">;</span>
- <span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(),</span> <span class="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">start_tag</span><span class="special">;</span>
- <span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="keyword">void</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">),</span> <span class="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">end_tag</span><span class="special">;</span>
-<span class="special">};</span>
-</pre>
-<p>
- </p>
-<p>
- </p>
-<p>
           What's new?
         </p>
-<a name="spirit.qi_and_karma.tutorials.mini_xml___error_handling.readable_names"></a><h5>
-<a name="id481710"></a>
- <a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___error_handling.readable_names">Readable
+<a name="spirit.qi_and_karma.tutorials.mini_xml___error_handling.readable_names"></a><h6>
+<a name="id710240"></a>
+ <a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___error_handling.readable_names">Readable
           Names</a>
- </h5>
+ </h6>
 <p>
           First, when we call the base class, we give the grammar a name:
         </p>
@@ -2480,13 +2483,13 @@
 <span class="identifier">start_tag</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="string">"start_tag"</span><span class="special">);</span>
 <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_and_karma.tutorials.mini_xml___error_handling.on_error"></a><h5>
-<a name="id481964"></a>
- <a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___error_handling.on_error">On
+<a name="spirit.qi_and_karma.tutorials.mini_xml___error_handling.on_error"></a><h6>
+<a name="id712125"></a>
+ <a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___error_handling.on_error">On
           Error</a>
- </h5>
+ </h6>
 <p>
- <tt class="computeroutput"><span class="identifier">on_error</span></tt> declares our error
+ <code class="computeroutput"><span class="identifier">on_error</span></code> declares our error
           handler:
         </p>
 <pre class="programlisting"><span class="identifier">on_error</span><span class="special">&lt;</span><span class="identifier">Action</span><span class="special">&gt;(</span><span class="identifier">rule</span><span class="special">,</span> <span class="identifier">handler</span><span class="special">)</span>
@@ -2508,8 +2511,8 @@
 <span class="special">);</span>
 </pre>
 <p>
- we choose to <tt class="computeroutput"><span class="identifier">fail</span></tt> in our
- example for the <tt class="computeroutput"><span class="identifier">Action</span></tt>:
+ we choose to <code class="computeroutput"><span class="identifier">fail</span></code> in our
+ example for the <code class="computeroutput"><span class="identifier">Action</span></code>:
           Quit and fail. Return a no_match (false). It can be one of:
         </p>
 <div class="informaltable"><table class="table">
@@ -2520,7 +2523,7 @@
 <thead><tr>
 <th>
                 <p>
- <tt class="computeroutput"><span class="identifier">Action</span></tt>
+ <code class="computeroutput"><span class="identifier">Action</span></code>
                 </p>
                 </th>
 <th>
@@ -2581,12 +2584,12 @@
 </tbody>
 </table></div>
 <p>
- <tt class="computeroutput"><span class="identifier">rule</span></tt> is the rule we attach
- the handler to. In our case, we are attaching to the <tt class="computeroutput"><span class="identifier">xml</span></tt>
+ <code class="computeroutput"><span class="identifier">rule</span></code> is the rule we attach
+ the handler to. In our case, we are attaching to the <code class="computeroutput"><span class="identifier">xml</span></code>
           rule.
         </p>
 <p>
- <tt class="computeroutput"><span class="identifier">handler</span></tt> is the actual error
+ <code class="computeroutput"><span class="identifier">handler</span></code> is the actual error
           handling function. It expects 4 arguments:
         </p>
 <div class="informaltable"><table class="table">
@@ -2658,14 +2661,14 @@
 </tr>
 </tbody>
 </table></div>
-<a name="spirit.qi_and_karma.tutorials.mini_xml___error_handling.expectation_points"></a><h5>
-<a name="id482635"></a>
- <a href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___error_handling.expectation_points">Expectation
+<a name="spirit.qi_and_karma.tutorials.mini_xml___error_handling.expectation_points"></a><h6>
+<a name="id712633"></a>
+ <a class="link" href="qi_and_karma.html#spirit.qi_and_karma.tutorials.mini_xml___error_handling.expectation_points">Expectation
           Points</a>
- </h5>
+ </h6>
 <p>
           You might not have noticed it, but some of our expressions changed from
- using the <tt class="computeroutput"><span class="special">&gt;&gt;</span></tt> to <tt class="computeroutput"><span class="special">&gt;</span></tt>. Look, for example:
+ using the <code class="computeroutput"><span class="special">&gt;&gt;</span></code> to <code class="computeroutput"><span class="special">&gt;</span></code>. Look, for example:
         </p>
 <pre class="programlisting"><span class="identifier">end_tag</span> <span class="special">=</span>
         <span class="string">"&lt;/"</span>
@@ -2676,10 +2679,10 @@
 <p>
           What is it? It's the <span class="emphasis"><em>expectation</em></span> operator. You will
           have some "deterministic points" in the grammar. Those are the
- places where backtracking <span class="bold"><b>cannot</b></span> occur.
- For our example above, when you get a <tt class="computeroutput"><span class="string">"&lt;/"</span></tt>,
+ places where backtracking <span class="bold"><strong>cannot</strong></span> occur.
+ For our example above, when you get a <code class="computeroutput"><span class="string">"&lt;/"</span></code>,
           you definitely must see a valid end-tag label next. It should be the one
- you got from the start-tag. After that, you definitely must have a <tt class="computeroutput"><span class="char">'&gt;'</span></tt> next. Otherwise, there is no point in
+ you got from the start-tag. After that, you definitely must have a <code class="computeroutput"><span class="char">'&gt;'</span></code> next. Otherwise, there is no point in
           proceeding forward and trying other branches, regardless where they are.
           The input is definitely erroneous. When this happens, an expectation_failure
           exception is thrown. Somewhere outward, the error handler will catch the
@@ -2706,8 +2709,8 @@
 </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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -3,8 +3,8 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Abstracts</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../index.html" title="Spirit 2.1">
 <link rel="up" href="../qi_and_karma.html" title="Qi and Karma">
 <link rel="prev" href="../qi_and_karma.html" title="Qi and Karma">
 <link rel="next" href="abstracts/parsing.html" title="Parsing">
@@ -22,9 +22,10 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../qi_and_karma.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../qi_and_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="abstracts/parsing.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section" title="Abstracts">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="spirit.qi_and_karma.abstracts"></a>Abstracts</h3></div></div></div>
+<a name="spirit.qi_and_karma.abstracts"></a><a class="link" href="abstracts.html" title="Abstracts">Abstracts</a>
+</h3></div></div></div>
 <div class="toc"><dl>
 <dt><span class="section"><a href="abstracts.html#spirit.qi_and_karma.abstracts.parsing_expression_grammar">Parsing
         Expression Grammar</a></span></dt>
@@ -45,15 +46,15 @@
 <dt><span class="section"><a href="abstracts/parse_trees_and_asts.html">Parse
         Trees and ASTs</a></span></dt>
 </dl></div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.abstracts.parsing_expression_grammar"></a><a href="abstracts.html#spirit.qi_and_karma.abstracts.parsing_expression_grammar" title="Parsing
- Expression Grammar">Parsing
- Expression Grammar</a></h4></div></div></div></div>
+<div class="section" title="Parsing Expression Grammar"><div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.qi_and_karma.abstracts.parsing_expression_grammar"></a><a class="link" href="abstracts.html#spirit.qi_and_karma.abstracts.parsing_expression_grammar" title="Parsing Expression Grammar">Parsing
+ Expression Grammar</a>
+</h4></div></div></div></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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/attributes.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/attributes.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/attributes.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -3,12 +3,11 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Attributes</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
 <link rel="up" href="../abstracts.html" title="Abstracts">
 <link rel="prev" href="operators.html" title="Operators">
-<link rel="next" href="semantic_actions.html" title="Semantic
- Actions">
+<link rel="next" href="semantic_actions.html" title="Semantic Actions">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -23,12 +22,13 @@
 <div class="spirit-nav">
 <a accesskey="p" href="operators.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../abstracts.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="semantic_actions.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.abstracts.attributes"></a>Attributes</h4></div></div></div></div>
+<div class="section" title="Attributes"><div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.qi_and_karma.abstracts.attributes"></a><a class="link" href="attributes.html" title="Attributes">Attributes</a>
+</h4></div></div></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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/debugging.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/debugging.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/debugging.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -3,12 +3,11 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Debugging</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
 <link rel="up" href="../abstracts.html" title="Abstracts">
 <link rel="prev" href="grammars.html" title="Grammars">
-<link rel="next" href="mini_xml___error_handling.html" title="Mini
- XML - Error Handling">
+<link rel="next" href="mini_xml___error_handling.html" title="Mini XML - Error Handling">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -23,12 +22,13 @@
 <div class="spirit-nav">
 <a accesskey="p" href="grammars.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../abstracts.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="mini_xml___error_handling.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.abstracts.debugging"></a>Debugging</h4></div></div></div></div>
+<div class="section" title="Debugging"><div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.qi_and_karma.abstracts.debugging"></a><a class="link" href="debugging.html" title="Debugging">Debugging</a>
+</h4></div></div></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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/directives.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/directives.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/directives.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -3,11 +3,10 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Directives</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
 <link rel="up" href="../abstracts.html" title="Abstracts">
-<link rel="prev" href="semantic_actions.html" title="Semantic
- Actions">
+<link rel="prev" href="semantic_actions.html" title="Semantic Actions">
 <link rel="next" href="rules.html" title="Rules">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -23,12 +22,13 @@
 <div class="spirit-nav">
 <a accesskey="p" href="semantic_actions.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../abstracts.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="rules.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.abstracts.directives"></a>Directives</h4></div></div></div></div>
+<div class="section" title="Directives"><div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.qi_and_karma.abstracts.directives"></a><a class="link" href="directives.html" title="Directives">Directives</a>
+</h4></div></div></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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Deleted: trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/error_handling.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/error_handling.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
+++ (empty file)
@@ -1,45 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Error
- Handling</title>
-<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
-<link rel="up" href="../abstracts.html" title="Abstracts">
-<link rel="prev" href="debugging.html" title="Debugging">
-<link rel="next" href="parse_trees_and_asts.html" title="Parse
- Trees and ASTs">
-</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="debugging.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../abstracts.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="parse_trees_and_asts.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
-</div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.abstracts.error_handling"></a><a href="error_handling.html" title="Error
- Handling">Error
- Handling</a></h4></div></div></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-2008 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="debugging.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../abstracts.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="parse_trees_and_asts.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Modified: trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/grammars.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/grammars.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/grammars.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -3,8 +3,8 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Grammars</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
 <link rel="up" href="../abstracts.html" title="Abstracts">
 <link rel="prev" href="rules.html" title="Rules">
 <link rel="next" href="debugging.html" title="Debugging">
@@ -22,12 +22,13 @@
 <div class="spirit-nav">
 <a accesskey="p" href="rules.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../abstracts.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="debugging.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.abstracts.grammars"></a>Grammars</h4></div></div></div></div>
+<div class="section" title="Grammars"><div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.qi_and_karma.abstracts.grammars"></a><a class="link" href="grammars.html" title="Grammars">Grammars</a>
+</h4></div></div></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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/mini_xml___error_handling.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/mini_xml___error_handling.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/mini_xml___error_handling.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -1,15 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Mini
- XML - Error Handling</title>
+<title>Mini XML - Error Handling</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
 <link rel="up" href="../abstracts.html" title="Abstracts">
 <link rel="prev" href="debugging.html" title="Debugging">
-<link rel="next" href="parse_trees_and_asts.html" title="Parse
- Trees and ASTs">
+<link rel="next" href="parse_trees_and_asts.html" title="Parse Trees and ASTs">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -24,11 +22,11 @@
 <div class="spirit-nav">
 <a accesskey="p" href="debugging.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../abstracts.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="parse_trees_and_asts.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section" title="Mini XML - Error Handling">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.abstracts.mini_xml___error_handling"></a><a href="mini_xml___error_handling.html" title="Mini
- XML - Error Handling">Mini
- XML - Error Handling</a></h4></div></div></div>
+<a name="spirit.qi_and_karma.abstracts.mini_xml___error_handling"></a><a class="link" href="mini_xml___error_handling.html" title="Mini XML - Error Handling">Mini
+ XML - Error Handling</a>
+</h4></div></div></div>
 <p>
           A parser will not be complete without error handling. Spirit2 provides
           some facilities to make it easy to adapt a grammar for error handling.
@@ -43,77 +41,13 @@
           Here's the grammar:
         </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">Iterator</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">mini_xml_grammar</span>
- <span class="special">:</span> <span class="identifier">grammar</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">mini_xml</span><span class="special">(),</span> <span class="identifier">locals</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="identifier">space_type</span><span class="special">&gt;</span>
-<span class="special">{</span>
- <span class="identifier">mini_xml_grammar</span><span class="special">()</span>
- <span class="special">:</span> <span class="identifier">mini_xml_grammar</span><span class="special">::</span><span class="identifier">base_type</span><span class="special">(</span><span class="identifier">xml</span><span class="special">,</span> <span class="string">"xml"</span><span class="special">)</span>
- <span class="special">{</span>
- <span class="identifier">text</span> <span class="special">%=</span> <span class="identifier">lexeme</span><span class="special">[+(</span><span class="identifier">char_</span> <span class="special">-</span> <span class="char">'&lt;'</span><span class="special">)];</span>
- <span class="identifier">node</span> <span class="special">%=</span> <span class="identifier">xml</span> <span class="special">|</span> <span class="identifier">text</span><span class="special">;</span>
-
- <span class="identifier">start_tag</span> <span class="special">%=</span>
- <span class="char">'&lt;'</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;</span> <span class="identifier">lexeme</span><span class="special">[+(</span><span class="identifier">char_</span> <span class="special">-</span> <span class="char">'&gt;'</span><span class="special">)]</span>
- <span class="special">&gt;</span> <span class="char">'&gt;'</span>
- <span class="special">;</span>
-
- <span class="identifier">end_tag</span> <span class="special">=</span>
- <span class="string">"&lt;/"</span>
- <span class="special">&gt;</span> <span class="identifier">lit</span><span class="special">(</span><span class="identifier">_r1</span><span class="special">)</span>
- <span class="special">&gt;</span> <span class="char">'&gt;'</span>
- <span class="special">;</span>
-
- <span class="identifier">xml</span> <span class="special">%=</span>
- <span class="identifier">start_tag</span><span class="special">[</span><span class="identifier">_a</span> <span class="special">=</span> <span class="identifier">_1</span><span class="special">]</span>
- <span class="special">&gt;</span> <span class="special">*</span><span class="identifier">node</span>
- <span class="special">&gt;</span> <span class="identifier">end_tag</span><span class="special">(</span><span class="identifier">_a</span><span class="special">)</span>
- <span class="special">;</span>
-
- <span class="identifier">xml</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="string">"xml"</span><span class="special">);</span>
- <span class="identifier">node</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="string">"node"</span><span class="special">);</span>
- <span class="identifier">text</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="string">"text"</span><span class="special">);</span>
- <span class="identifier">start_tag</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="string">"start_tag"</span><span class="special">);</span>
- <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>
-
- <span class="identifier">on_error</span><span class="special">&lt;</span><span class="identifier">fail</span><span class="special">&gt;</span>
- <span class="special">(</span>
- <span class="identifier">xml</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="identifier">val</span><span class="special">(</span><span class="string">"Error! Expecting "</span><span class="special">)</span>
- <span class="special">&lt;&lt;</span> <span class="identifier">_4</span> <span class="comment">// what failed?
-</span> <span class="special">&lt;&lt;</span> <span class="identifier">val</span><span class="special">(</span><span class="string">" here: \""</span><span class="special">)</span>
- <span class="special">&lt;&lt;</span> <span class="identifier">construct</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="identifier">_3</span><span class="special">,</span> <span class="identifier">_2</span><span class="special">)</span> <span class="comment">// iterators to error-pos, end
-</span> <span class="special">&lt;&lt;</span> <span class="identifier">val</span><span class="special">(</span><span class="string">"\""</span><span class="special">)</span>
- <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span>
- <span class="special">);</span>
- <span class="special">}</span>
-
- <span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">mini_xml</span><span class="special">(),</span> <span class="identifier">locals</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="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">xml</span><span class="special">;</span>
- <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>
- <span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(),</span> <span class="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">text</span><span class="special">;</span>
- <span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(),</span> <span class="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">start_tag</span><span class="special">;</span>
- <span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="keyword">void</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">),</span> <span class="identifier">space_type</span><span class="special">&gt;</span> <span class="identifier">end_tag</span><span class="special">;</span>
-<span class="special">};</span>
-</pre>
-<p>
- </p>
-<p>
- </p>
-<p>
           What's new?
         </p>
-<a name="spirit.qi_and_karma.abstracts.mini_xml___error_handling.readable_names"></a><h5>
-<a name="id484998"></a>
- <a href="mini_xml___error_handling.html#spirit.qi_and_karma.abstracts.mini_xml___error_handling.readable_names">Readable
+<a name="spirit.qi_and_karma.abstracts.mini_xml___error_handling.readable_names"></a><h6>
+<a name="id713217"></a>
+ <a class="link" href="mini_xml___error_handling.html#spirit.qi_and_karma.abstracts.mini_xml___error_handling.readable_names">Readable
           Names</a>
- </h5>
+ </h6>
 <p>
           First, when we call the base class, we give the grammar a name:
         </p>
@@ -128,13 +62,13 @@
 <span class="identifier">start_tag</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="string">"start_tag"</span><span class="special">);</span>
 <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_and_karma.abstracts.mini_xml___error_handling.on_error"></a><h5>
-<a name="id485249"></a>
- <a href="mini_xml___error_handling.html#spirit.qi_and_karma.abstracts.mini_xml___error_handling.on_error">On
+<a name="spirit.qi_and_karma.abstracts.mini_xml___error_handling.on_error"></a><h6>
+<a name="id713394"></a>
+ <a class="link" href="mini_xml___error_handling.html#spirit.qi_and_karma.abstracts.mini_xml___error_handling.on_error">On
           Error</a>
- </h5>
+ </h6>
 <p>
- <tt class="computeroutput"><span class="identifier">on_error</span></tt> declares our error
+ <code class="computeroutput"><span class="identifier">on_error</span></code> declares our error
           handler:
         </p>
 <pre class="programlisting"><span class="identifier">on_error</span><span class="special">&lt;</span><span class="identifier">Action</span><span class="special">&gt;(</span><span class="identifier">rule</span><span class="special">,</span> <span class="identifier">handler</span><span class="special">)</span>
@@ -156,8 +90,8 @@
 <span class="special">);</span>
 </pre>
 <p>
- we choose to <tt class="computeroutput"><span class="identifier">fail</span></tt> in our
- example for the <tt class="computeroutput"><span class="identifier">Action</span></tt>:
+ we choose to <code class="computeroutput"><span class="identifier">fail</span></code> in our
+ example for the <code class="computeroutput"><span class="identifier">Action</span></code>:
           Quit and fail. Return a no_match (false). It can be one of:
         </p>
 <div class="informaltable"><table class="table">
@@ -168,7 +102,7 @@
 <thead><tr>
 <th>
                 <p>
- <tt class="computeroutput"><span class="identifier">Action</span></tt>
+ <code class="computeroutput"><span class="identifier">Action</span></code>
                 </p>
                 </th>
 <th>
@@ -229,12 +163,12 @@
 </tbody>
 </table></div>
 <p>
- <tt class="computeroutput"><span class="identifier">rule</span></tt> is the rule we attach
- the handler to. In our case, we are attaching to the <tt class="computeroutput"><span class="identifier">xml</span></tt>
+ <code class="computeroutput"><span class="identifier">rule</span></code> is the rule we attach
+ the handler to. In our case, we are attaching to the <code class="computeroutput"><span class="identifier">xml</span></code>
           rule.
         </p>
 <p>
- <tt class="computeroutput"><span class="identifier">handler</span></tt> is the actual error
+ <code class="computeroutput"><span class="identifier">handler</span></code> is the actual error
           handling function. It expects 4 arguments:
         </p>
 <div class="informaltable"><table class="table">
@@ -306,14 +240,14 @@
 </tr>
 </tbody>
 </table></div>
-<a name="spirit.qi_and_karma.abstracts.mini_xml___error_handling.expectation_points"></a><h5>
-<a name="id485914"></a>
- <a href="mini_xml___error_handling.html#spirit.qi_and_karma.abstracts.mini_xml___error_handling.expectation_points">Expectation
+<a name="spirit.qi_and_karma.abstracts.mini_xml___error_handling.expectation_points"></a><h6>
+<a name="id713903"></a>
+ <a class="link" href="mini_xml___error_handling.html#spirit.qi_and_karma.abstracts.mini_xml___error_handling.expectation_points">Expectation
           Points</a>
- </h5>
+ </h6>
 <p>
           You might not have noticed it, but some of our expressions changed from
- using the <tt class="computeroutput"><span class="special">&gt;&gt;</span></tt> to <tt class="computeroutput"><span class="special">&gt;</span></tt>. Look, for example:
+ using the <code class="computeroutput"><span class="special">&gt;&gt;</span></code> to <code class="computeroutput"><span class="special">&gt;</span></code>. Look, for example:
         </p>
 <pre class="programlisting"><span class="identifier">end_tag</span> <span class="special">=</span>
         <span class="string">"&lt;/"</span>
@@ -324,10 +258,10 @@
 <p>
           What is it? It's the <span class="emphasis"><em>expectation</em></span> operator. You will
           have some "deterministic points" in the grammar. Those are the
- places where backtracking <span class="bold"><b>cannot</b></span> occur.
- For our example above, when you get a <tt class="computeroutput"><span class="string">"&lt;/"</span></tt>,
+ places where backtracking <span class="bold"><strong>cannot</strong></span> occur.
+ For our example above, when you get a <code class="computeroutput"><span class="string">"&lt;/"</span></code>,
           you definitely must see a valid end-tag label next. It should be the one
- you got from the start-tag. After that, you definitely must have a <tt class="computeroutput"><span class="char">'&gt;'</span></tt> next. Otherwise, there is no point in
+ you got from the start-tag. After that, you definitely must have a <code class="computeroutput"><span class="char">'&gt;'</span></code> next. Otherwise, there is no point in
           proceeding forward and trying other branches, regardless where they are.
           The input is definitely erroneous. When this happens, an expectation_failure
           exception is thrown. Somewhere outward, the error handler will catch the
@@ -352,8 +286,8 @@
 </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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/operators.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/operators.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/operators.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -3,8 +3,8 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Operators</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
 <link rel="up" href="../abstracts.html" title="Abstracts">
 <link rel="prev" href="primitives.html" title="Primitives">
 <link rel="next" href="attributes.html" title="Attributes">
@@ -22,12 +22,13 @@
 <div class="spirit-nav">
 <a accesskey="p" href="primitives.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../abstracts.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="attributes.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.abstracts.operators"></a>Operators</h4></div></div></div></div>
+<div class="section" title="Operators"><div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.qi_and_karma.abstracts.operators"></a><a class="link" href="operators.html" title="Operators">Operators</a>
+</h4></div></div></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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/parse_trees_and_asts.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/parse_trees_and_asts.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/parse_trees_and_asts.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -1,14 +1,12 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Parse
- Trees and ASTs</title>
+<title>Parse Trees and ASTs</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
 <link rel="up" href="../abstracts.html" title="Abstracts">
-<link rel="prev" href="mini_xml___error_handling.html" title="Mini
- XML - Error Handling">
+<link rel="prev" href="mini_xml___error_handling.html" title="Mini XML - Error Handling">
 <link rel="next" href="../quick_reference.html" title="Quick Reference">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -24,14 +22,14 @@
 <div class="spirit-nav">
 <a accesskey="p" href="mini_xml___error_handling.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../abstracts.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" lang="en"><div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.abstracts.parse_trees_and_asts"></a><a href="parse_trees_and_asts.html" title="Parse
- Trees and ASTs">Parse
- Trees and ASTs</a></h4></div></div></div></div>
+<div class="section" title="Parse Trees and ASTs"><div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.qi_and_karma.abstracts.parse_trees_and_asts"></a><a class="link" href="parse_trees_and_asts.html" title="Parse Trees and ASTs">Parse
+ Trees and ASTs</a>
+</h4></div></div></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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/parsing.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/parsing.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/parsing.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -3,12 +3,11 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Parsing</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
 <link rel="up" href="../abstracts.html" title="Abstracts">
 <link rel="prev" href="../abstracts.html" title="Abstracts">
-<link rel="next" href="parsing_and_generating.html" title="Parsing
- and Generating">
+<link rel="next" href="parsing_and_generating.html" title="Parsing and Generating">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -23,15 +22,16 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../abstracts.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../abstracts.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="parsing_and_generating.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section" title="Parsing">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.abstracts.parsing"></a>Parsing</h4></div></div></div>
+<a name="spirit.qi_and_karma.abstracts.parsing"></a><a class="link" href="parsing.html" title="Parsing">Parsing</a>
+</h4></div></div></div>
 <p>
           Central to the library is the parser. The parser does the actual work of
           recognizing a linear input stream of data read sequentially from start
           to end by the supplied iterators. The parser attempts to match the input
           following a well-defined set of specifications known as grammar rules.
- The parser returns a <tt class="computeroutput"><span class="keyword">bool</span></tt>
+ The parser returns a <code class="computeroutput"><span class="keyword">bool</span></code>
           to report the success or failure. When successful, the parser calls a client-supplied
           semantic action, if there is one. The semantic action extracts structural
           information depending on the data passed by the parser and the hierarchical
@@ -55,36 +55,36 @@
           write a user-defined parser. The ease in writing a parser entity is the
           main reason for Spirit's extensibility.
         </p>
-<a name="spirit.qi_and_karma.abstracts.parsing.the_api_functions_exposed_by__emphasis_spirit_qi__emphasis__"></a><h5>
-<a name="id483114"></a>
- <a href="parsing.html#spirit.qi_and_karma.abstracts.parsing.the_api_functions_exposed_by__emphasis_spirit_qi__emphasis__">The
+<a name="spirit.qi_and_karma.abstracts.parsing.the_api_functions_exposed_by__emphasis_spirit_qi__emphasis__"></a><h6>
+<a name="id712941"></a>
+ <a class="link" href="parsing.html#spirit.qi_and_karma.abstracts.parsing.the_api_functions_exposed_by__emphasis_spirit_qi__emphasis__">The
           API functions exposed by <span class="emphasis"><em>Spirit.Qi</em></span> </a>
- </h5>
-<a name="spirit.qi_and_karma.abstracts.parsing.the_parse___function"></a><h5>
-<a name="id483146"></a>
- <a href="parsing.html#spirit.qi_and_karma.abstracts.parsing.the_parse___function">The
+ </h6>
+<a name="spirit.qi_and_karma.abstracts.parsing.the_parse___function"></a><h6>
+<a name="id712960"></a>
+ <a class="link" href="parsing.html#spirit.qi_and_karma.abstracts.parsing.the_parse___function">The
           parse() function</a>
- </h5>
-<a name="spirit.qi_and_karma.abstracts.parsing.the_phrase_parse___function"></a><h5>
-<a name="id483175"></a>
- <a href="parsing.html#spirit.qi_and_karma.abstracts.parsing.the_phrase_parse___function">The
+ </h6>
+<a name="spirit.qi_and_karma.abstracts.parsing.the_phrase_parse___function"></a><h6>
+<a name="id712975"></a>
+ <a class="link" href="parsing.html#spirit.qi_and_karma.abstracts.parsing.the_phrase_parse___function">The
           phrase_parse() function</a>
- </h5>
-<a name="spirit.qi_and_karma.abstracts.parsing.the_tokenize_and_parse___function"></a><h5>
-<a name="id483202"></a>
- <a href="parsing.html#spirit.qi_and_karma.abstracts.parsing.the_tokenize_and_parse___function">The
+ </h6>
+<a name="spirit.qi_and_karma.abstracts.parsing.the_tokenize_and_parse___function"></a><h6>
+<a name="id712989"></a>
+ <a class="link" href="parsing.html#spirit.qi_and_karma.abstracts.parsing.the_tokenize_and_parse___function">The
           tokenize_and_parse() function</a>
- </h5>
-<a name="spirit.qi_and_karma.abstracts.parsing.the_tokenize_and_phrase_parse___function"></a><h5>
-<a name="id483232"></a>
- <a href="parsing.html#spirit.qi_and_karma.abstracts.parsing.the_tokenize_and_phrase_parse___function">The
+ </h6>
+<a name="spirit.qi_and_karma.abstracts.parsing.the_tokenize_and_phrase_parse___function"></a><h6>
+<a name="id713002"></a>
+ <a class="link" href="parsing.html#spirit.qi_and_karma.abstracts.parsing.the_tokenize_and_phrase_parse___function">The
           tokenize_and_phrase_parse() function</a>
- </h5>
+ </h6>
 </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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/parsing_and_generating.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/parsing_and_generating.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/parsing_and_generating.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -1,11 +1,10 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Parsing
- and Generating</title>
+<title>Parsing and Generating</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
 <link rel="up" href="../abstracts.html" title="Abstracts">
 <link rel="prev" href="parsing.html" title="Parsing">
 <link rel="next" href="primitives.html" title="Primitives">
@@ -23,41 +22,41 @@
 <div class="spirit-nav">
 <a accesskey="p" href="parsing.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../abstracts.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="primitives.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section" title="Parsing and Generating">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.abstracts.parsing_and_generating"></a><a href="parsing_and_generating.html" title="Parsing
- and Generating">Parsing
- and Generating</a></h4></div></div></div>
-<a name="spirit.qi_and_karma.abstracts.parsing_and_generating.the_api_functions_exposed_by__emphasis_spirit_qi__emphasis__"></a><h5>
-<a name="id483289"></a>
- <a href="parsing_and_generating.html#spirit.qi_and_karma.abstracts.parsing_and_generating.the_api_functions_exposed_by__emphasis_spirit_qi__emphasis__">The
+<a name="spirit.qi_and_karma.abstracts.parsing_and_generating"></a><a class="link" href="parsing_and_generating.html" title="Parsing and Generating">Parsing
+ and Generating</a>
+</h4></div></div></div>
+<a name="spirit.qi_and_karma.abstracts.parsing_and_generating.the_api_functions_exposed_by__emphasis_spirit_qi__emphasis__"></a><h6>
+<a name="id713026"></a>
+ <a class="link" href="parsing_and_generating.html#spirit.qi_and_karma.abstracts.parsing_and_generating.the_api_functions_exposed_by__emphasis_spirit_qi__emphasis__">The
           API functions exposed by <span class="emphasis"><em>Spirit.Qi</em></span> </a>
- </h5>
-<a name="spirit.qi_and_karma.abstracts.parsing_and_generating.the_parse___function"></a><h5>
-<a name="id483324"></a>
- <a href="parsing_and_generating.html#spirit.qi_and_karma.abstracts.parsing_and_generating.the_parse___function">The
+ </h6>
+<a name="spirit.qi_and_karma.abstracts.parsing_and_generating.the_parse___function"></a><h6>
+<a name="id713043"></a>
+ <a class="link" href="parsing_and_generating.html#spirit.qi_and_karma.abstracts.parsing_and_generating.the_parse___function">The
           parse() function</a>
- </h5>
-<a name="spirit.qi_and_karma.abstracts.parsing_and_generating.the_phrase_parse___function"></a><h5>
-<a name="id483355"></a>
- <a href="parsing_and_generating.html#spirit.qi_and_karma.abstracts.parsing_and_generating.the_phrase_parse___function">The
+ </h6>
+<a name="spirit.qi_and_karma.abstracts.parsing_and_generating.the_phrase_parse___function"></a><h6>
+<a name="id713056"></a>
+ <a class="link" href="parsing_and_generating.html#spirit.qi_and_karma.abstracts.parsing_and_generating.the_phrase_parse___function">The
           phrase_parse() function</a>
- </h5>
-<a name="spirit.qi_and_karma.abstracts.parsing_and_generating.the_tokenize_and_parse___function"></a><h5>
-<a name="id483384"></a>
- <a href="parsing_and_generating.html#spirit.qi_and_karma.abstracts.parsing_and_generating.the_tokenize_and_parse___function">The
+ </h6>
+<a name="spirit.qi_and_karma.abstracts.parsing_and_generating.the_tokenize_and_parse___function"></a><h6>
+<a name="id713069"></a>
+ <a class="link" href="parsing_and_generating.html#spirit.qi_and_karma.abstracts.parsing_and_generating.the_tokenize_and_parse___function">The
           tokenize_and_parse() function</a>
- </h5>
-<a name="spirit.qi_and_karma.abstracts.parsing_and_generating.the_tokenize_and_phrase_parse___function"></a><h5>
-<a name="id483415"></a>
- <a href="parsing_and_generating.html#spirit.qi_and_karma.abstracts.parsing_and_generating.the_tokenize_and_phrase_parse___function">The
+ </h6>
+<a name="spirit.qi_and_karma.abstracts.parsing_and_generating.the_tokenize_and_phrase_parse___function"></a><h6>
+<a name="id713082"></a>
+ <a class="link" href="parsing_and_generating.html#spirit.qi_and_karma.abstracts.parsing_and_generating.the_tokenize_and_phrase_parse___function">The
           tokenize_and_phrase_parse() function</a>
- </h5>
+ </h6>
 </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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/primitives.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/primitives.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/primitives.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -3,11 +3,10 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Primitives</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
 <link rel="up" href="../abstracts.html" title="Abstracts">
-<link rel="prev" href="parsing_and_generating.html" title="Parsing
- and Generating">
+<link rel="prev" href="parsing_and_generating.html" title="Parsing and Generating">
 <link rel="next" href="operators.html" title="Operators">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -23,12 +22,13 @@
 <div class="spirit-nav">
 <a accesskey="p" href="parsing_and_generating.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../abstracts.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="operators.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.abstracts.primitives"></a>Primitives</h4></div></div></div></div>
+<div class="section" title="Primitives"><div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.qi_and_karma.abstracts.primitives"></a><a class="link" href="primitives.html" title="Primitives">Primitives</a>
+</h4></div></div></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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/rules.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/rules.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/rules.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -3,8 +3,8 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Rules</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
 <link rel="up" href="../abstracts.html" title="Abstracts">
 <link rel="prev" href="directives.html" title="Directives">
 <link rel="next" href="grammars.html" title="Grammars">
@@ -22,12 +22,13 @@
 <div class="spirit-nav">
 <a accesskey="p" href="directives.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../abstracts.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="grammars.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.abstracts.rules"></a>Rules</h4></div></div></div></div>
+<div class="section" title="Rules"><div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.qi_and_karma.abstracts.rules"></a><a class="link" href="rules.html" title="Rules">Rules</a>
+</h4></div></div></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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/semantic_actions.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/semantic_actions.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi_and_karma/abstracts/semantic_actions.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -1,11 +1,10 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Semantic
- Actions</title>
+<title>Semantic Actions</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
 <link rel="up" href="../abstracts.html" title="Abstracts">
 <link rel="prev" href="attributes.html" title="Attributes">
 <link rel="next" href="directives.html" title="Directives">
@@ -23,14 +22,14 @@
 <div class="spirit-nav">
 <a accesskey="p" href="attributes.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../abstracts.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="directives.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.abstracts.semantic_actions"></a><a href="semantic_actions.html" title="Semantic
- Actions">Semantic
- Actions</a></h4></div></div></div></div>
+<div class="section" title="Semantic Actions"><div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.qi_and_karma.abstracts.semantic_actions"></a><a class="link" href="semantic_actions.html" title="Semantic Actions">Semantic
+ Actions</a>
+</h4></div></div></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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/qi_and_karma/quick_reference.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi_and_karma/quick_reference.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi_and_karma/quick_reference.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -3,11 +3,10 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Quick Reference</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../index.html" title="Spirit 2.1">
 <link rel="up" href="../qi_and_karma.html" title="Qi and Karma">
-<link rel="prev" href="abstracts/parse_trees_and_asts.html" title="Parse
- Trees and ASTs">
+<link rel="prev" href="abstracts/parse_trees_and_asts.html" title="Parse Trees and ASTs">
 <link rel="next" href="reference.html" title="Reference">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -23,31 +22,112 @@
 <div class="spirit-nav">
 <a accesskey="p" href="abstracts/parse_trees_and_asts.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../qi_and_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="reference.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section" title="Quick Reference">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="spirit.qi_and_karma.quick_reference"></a>Quick Reference</h3></div></div></div>
-<p>
- The following tables use some conventions to encode the attribute type exposed
- by a component
- </p>
-<div class="variablelist">
-<p class="title"><b></b></p>
+<a name="spirit.qi_and_karma.quick_reference"></a><a class="link" href="quick_reference.html" title="Quick Reference">Quick Reference</a>
+</h3></div></div></div>
+<div class="variablelist" title="Notation">
+<p class="title"><b>Notation</b></p>
 <dl>
-<dt><span class="term"><tt class="computeroutput"><span class="identifier">attribute_of</span><span class="special">(</span><span class="identifier">P</span><span class="special">)</span></tt></span></dt>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">P</span></code></span></dt>
+<dd><p>
+ Parser type
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">p</span><span class="special">,</span> <span class="identifier">a</span><span class="special">,</span>
+ <span class="identifier">b</span><span class="special">,</span> <span class="identifier">c</span></code></span></dt>
+<dd><p>
+ Parser objects
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">,</span>
+ <span class="identifier">C</span></code></span></dt>
+<dd><p>
+ Attribute types of parsers A, B and C
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">I</span></code></span></dt>
+<dd><p>
+ The iterator type used for parsing
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Unused</span></code></span></dt>
+<dd><p>
+ An <code class="computeroutput"><span class="identifier">unused_type</span></code>
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Context</span></code></span></dt>
+<dd><p>
+ The enclosing rule's <code class="computeroutput"><span class="identifier">Context</span></code>
+ type
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Attr</span></code></span></dt>
+<dd><p>
+ An attribute type
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">b</span></code></span></dt>
+<dd><p>
+ A boolean expression
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">fp</span></code></span></dt>
+<dd><p>
+ A (lazy parser) function with signature <code class="computeroutput"><span class="identifier">P</span><span class="special">(</span><span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">Context</span><span class="special">)</span></code>
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">fa</span></code></span></dt>
+<dd><p>
+ A (semantic action) function with signature <code class="computeroutput"><span class="keyword">void</span><span class="special">(</span><span class="identifier">Attr</span><span class="special">,</span> <span class="identifier">Context</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&amp;)</span></code>. The third parameter is a boolean
+ flag that can be set to false to force the parse to fail.
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">first</span></code></span></dt>
+<dd><p>
+ An iterator pointing to the start of input
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">last</span></code></span></dt>
+<dd><p>
+ An iterator pointing to the end of input
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Ch</span></code></span></dt>
+<dd><p>
+ Character-class specific character type (See __char_class<span class="underline">types</span>_)
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">ch</span></code></span></dt>
+<dd><p>
+ Character-class specific character (See __char_class<span class="underline">types</span>_)
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">ch2</span></code></span></dt>
+<dd><p>
+ Character-class specific character (See __char_class<span class="underline">types</span>_)
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">chset</span></code></span></dt>
 <dd><p>
- The component exposes the same attribute as the component 'P' used as
- part of the overall construct
+ Character-set specifier string (example: "a-z0-9")
           </p></dd>
-<dt><span class="term"><tt class="computeroutput"><span class="identifier">value_type</span><span class="special">(</span><span class="identifier">I</span><span class="special">)</span></tt></span></dt>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">str</span></code></span></dt>
 <dd><p>
- The component exposes the value_type of the underlying iterator 'I' as
- its attribute type
+ Character-class specific string (See __char_class<span class="underline">types</span>_)
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Str</span></code></span></dt>
+<dd><p>
+ Attribute of <code class="computeroutput"><span class="identifier">str</span></code>: <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code>
+ where <code class="computeroutput"><span class="identifier">T</span></code> is the underlying
+ character type of <code class="computeroutput"><span class="identifier">str</span></code>
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">tuple</span><span class="special">&lt;&gt;</span></code></span></dt>
+<dd><p>
+ Used as a placeholder for a fusion sequence
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">vector</span><span class="special">&lt;&gt;</span></code></span></dt>
+<dd><p>
+ Used as a placeholder for an STL container
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">variant</span><span class="special">&lt;&gt;</span></code></span></dt>
+<dd><p>
+ Used as a placeholder for a boost::variant
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">optional</span><span class="special">&lt;&gt;</span></code></span></dt>
+<dd><p>
+ Used as a placeholder for a boost::optional
           </p></dd>
 </dl>
 </div>
 <div class="table">
-<a name="id486409"></a><p class="title"><b>Table 4. Character Parsers</b></p>
-<table class="table" summary="Character Parsers">
+<a name="id715488"></a><p class="title"><b>Table 4. Predefined /Spirit.Qi/ primitive parsers</b></p>
+<div class="table-contents"><table class="table" summary="Predefined /Spirit.Qi/ primitive parsers">
 <colgroup>
 <col>
 <col>
@@ -56,17 +136,17 @@
 <thead><tr>
 <th>
             <p>
- Component
+ Expression
             </p>
             </th>
 <th>
             <p>
- Description
+ Attribute
             </p>
             </th>
 <th>
             <p>
- Attribute
+ Description
             </p>
             </th>
 </tr></thead>
@@ -74,283 +154,3034 @@
 <tr>
 <td>
             <p>
- <tt class="computeroutput"><span class="identifier">char_</span></tt>
+ <code class="computeroutput"><span class="identifier">eol</span></code>
             </p>
             </td>
 <td>
             <p>
+ <code class="computeroutput"><span class="identifier">Unused</span></code>
             </p>
             </td>
 <td>
             <p>
- <tt class="computeroutput"><span class="keyword">char</span></tt>
+ Matches the end of line (<code class="computeroutput"><span class="special">\</span><span class="identifier">r</span></code> or <code class="computeroutput"><span class="special">\</span><span class="identifier">n</span></code> or <code class="computeroutput"><span class="special">\</span><span class="identifier">r</span><span class="special">\</span><span class="identifier">n</span></code>)
             </p>
             </td>
 </tr>
 <tr>
 <td>
             <p>
- <tt class="computeroutput"><span class="identifier">wchar</span></tt>
+ <code class="computeroutput"><span class="identifier">eoi</span></code>
             </p>
             </td>
 <td>
             <p>
+ <code class="computeroutput"><span class="identifier">Unused</span></code>
             </p>
             </td>
 <td>
             <p>
- <tt class="computeroutput"><span class="keyword">wchar_t</span></tt>
+ Matches the end of input (first == last)
             </p>
             </td>
 </tr>
 <tr>
 <td>
             <p>
- <tt class="computeroutput"><span class="identifier">lit</span></tt>
+ <code class="computeroutput"><span class="identifier">eps</span></code>
             </p>
             </td>
 <td>
             <p>
+ <code class="computeroutput"><span class="identifier">Unused</span></code>
             </p>
             </td>
 <td>
             <p>
- <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ Match an empty string
             </p>
             </td>
 </tr>
 <tr>
 <td>
             <p>
- <tt class="computeroutput"><span class="identifier">wlit</span></tt>
+ <code class="computeroutput"><span class="identifier">eps</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span></code>
             </p>
             </td>
 <td>
             <p>
+ <code class="computeroutput"><span class="identifier">Unused</span></code>
             </p>
             </td>
 <td>
             <p>
- <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ If <code class="computeroutput"><span class="identifier">b</span></code> is true, match
+ an empty string
             </p>
             </td>
 </tr>
 <tr>
 <td>
             <p>
- <tt class="computeroutput"><span class="char">'x'</span></tt>
+ <code class="computeroutput"><span class="identifier">lazy</span><span class="special">(</span><span class="identifier">fp</span><span class="special">)</span></code>
             </p>
             </td>
 <td>
             <p>
+ Attribute of <code class="computeroutput"><span class="identifier">P</span></code> where
+ <code class="computeroutput"><span class="identifier">P</span></code> is the return type
+ of <code class="computeroutput"><span class="identifier">fp</span></code>
             </p>
             </td>
 <td>
             <p>
- <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ Invoke <code class="computeroutput"><span class="identifier">fp</span></code> at parse
+ time, returning a parser <code class="computeroutput"><span class="identifier">p</span></code>
+ which is then called to parse.
             </p>
             </td>
 </tr>
 <tr>
 <td>
             <p>
- <tt class="computeroutput"><span class="identifier">L</span><span class="char">'x'</span></tt>
+ <code class="computeroutput"><span class="identifier">fp</span></code>
             </p>
             </td>
 <td>
             <p>
+ see <code class="computeroutput"><span class="identifier">lazy</span><span class="special">(</span><span class="identifier">fp</span><span class="special">)</span></code>
+ above
             </p>
             </td>
 <td>
             <p>
- <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ Equivalent to <code class="computeroutput"><span class="identifier">lazy</span><span class="special">[</span><span class="identifier">fp</span><span class="special">]</span></code>
             </p>
             </td>
 </tr>
 <tr>
 <td>
             <p>
- <tt class="computeroutput"><span class="identifier">alnum</span></tt>
+ <code class="computeroutput"><span class="identifier">p</span><span class="special">[</span><span class="identifier">fa</span><span class="special">]</span></code>
             </p>
             </td>
 <td>
             <p>
+ Attribute of <code class="computeroutput"><span class="identifier">p</span></code>
             </p>
             </td>
 <td>
             <p>
- <tt class="computeroutput"><span class="identifier">Char</span></tt>
+ Call semantic action, <code class="computeroutput"><span class="identifier">fa</span></code>
+ if p succeeds.
             </p>
             </td>
 </tr>
 <tr>
 <td>
             <p>
- <tt class="computeroutput"><span class="identifier">alpha</span></tt>
+ <code class="computeroutput"><span class="identifier">byte_</span></code>
             </p>
             </td>
 <td>
             <p>
+ 8 bits native endian
             </p>
             </td>
 <td>
             <p>
- <tt class="computeroutput"><span class="identifier">Char</span></tt>
+ Matches an 8 bit binary
             </p>
             </td>
 </tr>
 <tr>
 <td>
             <p>
- <tt class="computeroutput"><span class="identifier">blank</span></tt>
+ <code class="computeroutput"><span class="identifier">word</span></code>
             </p>
             </td>
 <td>
             <p>
+ 16 bits native endian
             </p>
             </td>
 <td>
             <p>
- <tt class="computeroutput"><span class="identifier">Char</span></tt>
+ Matches a 16 bit binary
             </p>
             </td>
 </tr>
 <tr>
 <td>
             <p>
- <tt class="computeroutput"><span class="identifier">cntrl</span></tt>
+ <code class="computeroutput"><span class="identifier">big_word</span></code>
             </p>
             </td>
 <td>
             <p>
+ 16 bits big endian
             </p>
             </td>
 <td>
             <p>
- <tt class="computeroutput"><span class="identifier">Char</span></tt>
+ Matches a 16 bit binary
             </p>
             </td>
 </tr>
 <tr>
 <td>
             <p>
- <tt class="computeroutput"><span class="identifier">digit</span></tt>
+ <code class="computeroutput"><span class="identifier">little_word</span></code>
             </p>
             </td>
 <td>
             <p>
+ 16 bits little endian
             </p>
             </td>
 <td>
             <p>
- <tt class="computeroutput"><span class="identifier">Char</span></tt>
+ Matches a 16 bit binary
             </p>
             </td>
 </tr>
 <tr>
 <td>
             <p>
- <tt class="computeroutput"><span class="identifier">graph</span></tt>
+ <code class="computeroutput"><span class="identifier">dword</span></code>
             </p>
             </td>
 <td>
             <p>
+ 32 bits native endian
             </p>
             </td>
 <td>
             <p>
- <tt class="computeroutput"><span class="identifier">Char</span></tt>
+ Matches a 32 bit binary
             </p>
             </td>
 </tr>
 <tr>
 <td>
             <p>
- <tt class="computeroutput"><span class="identifier">print</span></tt>
+ <code class="computeroutput"><span class="identifier">big_dword</span></code>
             </p>
             </td>
 <td>
             <p>
+ 32 bits big endian
             </p>
             </td>
 <td>
             <p>
- <tt class="computeroutput"><span class="identifier">Char</span></tt>
+ Matches a 32 bit binary
             </p>
             </td>
 </tr>
 <tr>
 <td>
             <p>
- <tt class="computeroutput"><span class="identifier">punct</span></tt>
+ <code class="computeroutput"><span class="identifier">little_dword</span></code>
             </p>
             </td>
 <td>
             <p>
+ 32 bits little endian
             </p>
             </td>
 <td>
             <p>
- <tt class="computeroutput"><span class="identifier">Char</span></tt>
+ Matches a 32 bit binary
             </p>
             </td>
 </tr>
 <tr>
 <td>
             <p>
- <tt class="computeroutput"><span class="identifier">space</span></tt>
+ <code class="computeroutput"><span class="identifier">qword</span></code>
             </p>
             </td>
 <td>
             <p>
+ 64 bits native endian
             </p>
             </td>
 <td>
             <p>
- <tt class="computeroutput"><span class="identifier">Char</span></tt>
+ Matches a 64 bit binary
             </p>
             </td>
 </tr>
 <tr>
 <td>
             <p>
- <tt class="computeroutput"><span class="identifier">xdigit</span></tt>
+ <code class="computeroutput"><span class="identifier">big_qword</span></code>
             </p>
             </td>
 <td>
             <p>
+ 64 bits big endian
             </p>
             </td>
 <td>
             <p>
- <tt class="computeroutput"><span class="identifier">Char</span></tt>
+ Matches a 64 bit binary
             </p>
             </td>
 </tr>
 <tr>
 <td>
             <p>
- <tt class="computeroutput"><span class="special">~</span><span class="identifier">P</span></tt>
+ <code class="computeroutput"><span class="identifier">little_qword</span></code>
             </p>
             </td>
 <td>
             <p>
+ 64 bits little endian
             </p>
             </td>
 <td>
             <p>
- <tt class="computeroutput"><span class="identifier">attribute_of</span><span class="special">(</span><span class="identifier">P</span><span class="special">)</span></tt>
+ Matches a 64 bit binary
             </p>
             </td>
 </tr>
-</tbody>
-</table>
-</div>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">char_</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Ch</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Matches any character
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="identifier">ch</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Ch</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Matches <code class="computeroutput"><span class="identifier">ch</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="string">"c"</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Ch</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Matches a single char string literal, <code class="computeroutput"><span class="identifier">c</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="identifier">ch</span><span class="special">,</span> <span class="identifier">ch2</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Ch</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Matches a range of chars from <code class="computeroutput"><span class="identifier">ch</span></code>
+ to <code class="computeroutput"><span class="identifier">ch2</span></code> (inclusive)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="identifier">chset</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Ch</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Matches a character set <code class="computeroutput"><span class="identifier">chset</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">ch</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Unused</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Matches <code class="computeroutput"><span class="identifier">ch</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">str</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Unused</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Matches <code class="computeroutput"><span class="identifier">str</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">ch</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Unused</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Matches <code class="computeroutput"><span class="identifier">ch</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">str</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Unused</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Matches <code class="computeroutput"><span class="identifier">str</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">string</span><span class="special">(</span><span class="identifier">str</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Str</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Matches <code class="computeroutput"><span class="identifier">str</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">lexeme</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">A</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Disable skip parsing for <code class="computeroutput"><span class="identifier">a</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">nocase</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">A</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Inhibits case-sensitivity for <code class="computeroutput"><span class="identifier">a</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">omit</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Unused</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Ignores the attribute type of <code class="computeroutput"><span class="identifier">a</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">raw</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator_range</span><span class="special">&lt;</span><span class="identifier">I</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Presents the transduction of <code class="computeroutput"><span class="identifier">a</span></code>
+ as an iterator range
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">repeat</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Repeat <code class="computeroutput"><span class="identifier">a</span></code> zero or more
+ times
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">repeat</span><span class="special">(</span><span class="identifier">N</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Repeat <code class="computeroutput"><span class="identifier">a</span></code> <code class="computeroutput"><span class="identifier">N</span></code> times
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">repeat</span><span class="special">(</span><span class="identifier">N</span><span class="special">,</span> <span class="identifier">M</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Repeat <code class="computeroutput"><span class="identifier">a</span></code> <code class="computeroutput"><span class="identifier">N</span></code> to <code class="computeroutput"><span class="identifier">M</span></code>
+ times
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">repeat</span><span class="special">(</span><span class="identifier">N</span><span class="special">,</span> <span class="identifier">inf</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Repeat <code class="computeroutput"><span class="identifier">a</span></code> <code class="computeroutput"><span class="identifier">N</span></code> or more times
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">skip</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">A</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Reestablish the skipper that got inhibited by lexeme
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">skip</span><span class="special">(</span><span class="identifier">p</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">A</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Use <code class="computeroutput"><span class="identifier">p</span></code> as a skipper
+ for parsing <code class="computeroutput"><span class="identifier">a</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">float_</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">float</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Parse a floating point number into a <code class="computeroutput"><span class="keyword">float</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">double_</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">double</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Parse a floating point number into a <code class="computeroutput"><span class="keyword">double</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">long_double</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Parse a floating point number into a <code class="computeroutput"><span class="keyword">long</span>
+ <span class="keyword">double</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">bin</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">unsigned</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Parse a binary integer into an <code class="computeroutput"><span class="keyword">unsigned</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">oct</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">unsigned</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Parse an octal integer into an <code class="computeroutput"><span class="keyword">unsigned</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">hex</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">unsigned</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Parse a hexadecimal integer into an <code class="computeroutput"><span class="keyword">unsigned</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">ushort_</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">short</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Parse an unsigned short integer
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">ulong_</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Parse an unsigned long integer
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">uint_</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Parse an unsigned int
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">ulong_long</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span>
+ <span class="keyword">long</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Parse an unsigned long long
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">short_</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">short</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Parse a short integer
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">long_</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">long</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Parse a long integer
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">int_</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">int</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Parse an int
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">long_long</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">long</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Parse a long long
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">!</span><span class="identifier">a</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Unused</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Not predicate. Ensure that <code class="computeroutput"><span class="identifier">a</span></code>
+ does not match but don't move the iterator position
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">&amp;</span><span class="identifier">a</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Unused</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ And predicate. Ensure that <code class="computeroutput"><span class="identifier">a</span></code>
+ matches but don't move the iterator position
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">-</span><span class="identifier">a</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Optional. Parse <code class="computeroutput"><span class="identifier">a</span></code> zero
+ or one time
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">*</span><span class="identifier">a</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Kleene. Parse <code class="computeroutput"><span class="identifier">a</span></code> zero
+ or more times
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">+</span><span class="identifier">a</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Plus. Parse <code class="computeroutput"><span class="identifier">a</span></code> one or
+ more times
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">a</span> <span class="special">|</span>
+ <span class="identifier">b</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">variant</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>
+ </td>
+<td>
+ <p>
+ Alternative. Parse <code class="computeroutput"><span class="identifier">a</span></code>
+ or <code class="computeroutput"><span class="identifier">b</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">a</span> <span class="special">&gt;&gt;</span>
+ <span class="identifier">b</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <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>
+ </td>
+<td>
+ <p>
+ Sequence. Parse <code class="computeroutput"><span class="identifier">a</span></code> followed
+ by <code class="computeroutput"><span class="identifier">b</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">a</span> <span class="special">&gt;</span>
+ <span class="identifier">b</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <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>
+ </td>
+<td>
+ <p>
+ Expect. Parse <code class="computeroutput"><span class="identifier">a</span></code> followed
+ by <code class="computeroutput"><span class="identifier">b</span></code>. <code class="computeroutput"><span class="identifier">b</span></code> is expected to match when <code class="computeroutput"><span class="identifier">a</span></code> matches, otherwise, an <code class="computeroutput"><span class="identifier">expectation_failure</span></code> is thrown.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">a</span> <span class="special">-</span>
+ <span class="identifier">b</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">A</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Difference. Parse <code class="computeroutput"><span class="identifier">a</span></code>
+ but not <code class="computeroutput"><span class="identifier">b</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">a</span> <span class="special">||</span>
+ <span class="identifier">b</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <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>
+ </td>
+<td>
+ <p>
+ Sequential Or. Parse <code class="computeroutput"><span class="identifier">a</span></code>
+ or <code class="computeroutput"><span class="identifier">b</span></code> or <code class="computeroutput"><span class="identifier">a</span></code> followed by <code class="computeroutput"><span class="identifier">b</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">a</span> <span class="special">%</span>
+ <span class="identifier">b</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ List. Parse <code class="computeroutput"><span class="identifier">a</span></code> delimited
+ <code class="computeroutput"><span class="identifier">b</span></code> one or more times
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">a</span> <span class="special">^</span>
+ <span class="identifier">b</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">tuple</span><span class="special">&lt;</span></code>
+ <code class="computeroutput"><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;,</span></code>
+ <code class="computeroutput"><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;</span> <span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Permutation. Parse <code class="computeroutput"><span class="identifier">a</span></code>
+ and <code class="computeroutput"><span class="identifier">b</span></code> in any order
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="table">
+<a name="id718928"></a><p class="title"><b>Table 5. Predefined /Spirit.Karma/ primitive generators</b></p>
+<div class="table-contents"><table class="table" summary="Predefined /Spirit.Karma/ primitive generators">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Expression
+ </p>
+ </th>
+<th>
+ <p>
+ Attribute
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">eol</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Unused</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Generates the end of line (<code class="computeroutput"><span class="special">\</span><span class="identifier">n</span></code>)
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">eps</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Unused</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Generate an empty string
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">eps</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Unused</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ If <code class="computeroutput"><span class="identifier">b</span></code> is true, generate
+ an empty string
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">lazy</span><span class="special">(</span><span class="identifier">fg</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Attribute of <code class="computeroutput"><span class="identifier">G</span></code> where
+ <code class="computeroutput"><span class="identifier">G</span></code> is the return type
+ of <code class="computeroutput"><span class="identifier">fg</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Invoke <code class="computeroutput"><span class="identifier">fg</span></code> at generation
+ time, returning a generator <code class="computeroutput"><span class="identifier">g</span></code>
+ which is then called to generate.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">fg</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ see <code class="computeroutput"><span class="identifier">lazy</span><span class="special">(</span><span class="identifier">fg</span><span class="special">)</span></code>
+ above
+ </p>
+ </td>
+<td>
+ <p>
+ Equivalent to <code class="computeroutput"><span class="identifier">lazy</span><span class="special">[</span><span class="identifier">fp</span><span class="special">]</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">g</span><span class="special">[</span><span class="identifier">fa</span><span class="special">]</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Attribute of <code class="computeroutput"><span class="identifier">g</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Call semantic action <code class="computeroutput"><span class="identifier">fa</span></code>
+ (before executing <code class="computeroutput"><span class="identifier">g</span></code>).
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">byte_</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ 8 bits native endian
+ </p>
+ </td>
+<td>
+ <p>
+ Generates an 8 bit binary
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">word</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ 16 bits native endian
+ </p>
+ </td>
+<td>
+ <p>
+ Generates a 16 bit binary
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">big_word</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ 16 bits big endian
+ </p>
+ </td>
+<td>
+ <p>
+ Generates a 16 bit binary
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">little_word</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ 16 bits little endian
+ </p>
+ </td>
+<td>
+ <p>
+ Generates a 16 bit binary
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">dword</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ 32 bits native endian
+ </p>
+ </td>
+<td>
+ <p>
+ Generates a 32 bit binary
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">big_dword</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ 32 bits big endian
+ </p>
+ </td>
+<td>
+ <p>
+ Generates a 32 bit binary
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">little_dword</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ 32 bits little endian
+ </p>
+ </td>
+<td>
+ <p>
+ Generates a 32 bit binary
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">qword</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ 64 bits native endian
+ </p>
+ </td>
+<td>
+ <p>
+ Generates a 64 bit binary
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">big_qword</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ 64 bits big endian
+ </p>
+ </td>
+<td>
+ <p>
+ Generates a 64 bit binary
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">little_qword</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ 64 bits little endian
+ </p>
+ </td>
+<td>
+ <p>
+ Generates a 64 bit binary
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="identifier">ch</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Ch</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Generates <code class="computeroutput"><span class="identifier">ch</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="string">"c"</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Ch</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Generates a single char string literal, <code class="computeroutput"><span class="identifier">c</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">ch</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Unused</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Generates <code class="computeroutput"><span class="identifier">ch</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">str</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Unused</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Generates <code class="computeroutput"><span class="identifier">str</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">ch</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Unused</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Generates <code class="computeroutput"><span class="identifier">ch</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">str</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Unused</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Generates <code class="computeroutput"><span class="identifier">str</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">string</span><span class="special">(</span><span class="identifier">str</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Str</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Generates <code class="computeroutput"><span class="identifier">str</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">lower</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">A</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Generate <code class="computeroutput"><span class="identifier">a</span></code> as lower
+ case
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">upper</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">A</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Generate <code class="computeroutput"><span class="identifier">a</span></code> as upper
+ case
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">left_align</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">A</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Generate <code class="computeroutput"><span class="identifier">a</span></code> left aligned
+ in column of width BOOST_KARMA_DEFAULT_FIELD_LENGTH
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">left_align</span><span class="special">(</span><span class="identifier">N</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">A</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Generate <code class="computeroutput"><span class="identifier">a</span></code> left aligned
+ in column of width <code class="computeroutput"><span class="identifier">N</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">left_align</span><span class="special">(</span><span class="identifier">N</span><span class="special">,</span> <span class="identifier">g</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">A</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Generate <code class="computeroutput"><span class="identifier">a</span></code> left aligned
+ in column of width <code class="computeroutput"><span class="identifier">N</span></code>
+ while using <code class="computeroutput"><span class="identifier">g</span></code> to generate
+ the necesssary padding
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">right_align</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">A</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Generate <code class="computeroutput"><span class="identifier">a</span></code> right aligned
+ in column of width BOOST_KARMA_DEFAULT_FIELD_LENGTH
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">right_align</span><span class="special">(</span><span class="identifier">N</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">A</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Generate <code class="computeroutput"><span class="identifier">a</span></code> right aligned
+ in column of width <code class="computeroutput"><span class="identifier">N</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">right_align</span><span class="special">(</span><span class="identifier">N</span><span class="special">,</span> <span class="identifier">g</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">A</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Generate <code class="computeroutput"><span class="identifier">a</span></code> right aligned
+ in column of width <code class="computeroutput"><span class="identifier">N</span></code>
+ while using <code class="computeroutput"><span class="identifier">g</span></code> to generate
+ the necesssary padding
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">center</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">A</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Generate <code class="computeroutput"><span class="identifier">a</span></code> centered
+ in column of width BOOST_KARMA_DEFAULT_FIELD_LENGTH
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">center</span><span class="special">(</span><span class="identifier">N</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">A</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Generate <code class="computeroutput"><span class="identifier">a</span></code> centered
+ in column of width <code class="computeroutput"><span class="identifier">N</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">center</span><span class="special">(</span><span class="identifier">N</span><span class="special">,</span> <span class="identifier">g</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">A</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Generate <code class="computeroutput"><span class="identifier">a</span></code> centered
+ in column of width <code class="computeroutput"><span class="identifier">N</span></code>
+ while using <code class="computeroutput"><span class="identifier">g</span></code> to generate
+ the necesssary padding
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">maxwidth</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">A</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Generate <code class="computeroutput"><span class="identifier">a</span></code> truncated
+ to column of width BOOST_KARMA_DEFAULT_FIELD_MAXWIDTH
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">maxwidth</span><span class="special">(</span><span class="identifier">N</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">A</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Generate <code class="computeroutput"><span class="identifier">a</span></code> truncated
+ to column of width <code class="computeroutput"><span class="identifier">N</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">repeat</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Repeat <code class="computeroutput"><span class="identifier">a</span></code> zero or more
+ times
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">repeat</span><span class="special">(</span><span class="identifier">N</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Repeat <code class="computeroutput"><span class="identifier">a</span></code> <code class="computeroutput"><span class="identifier">N</span></code> times
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">repeat</span><span class="special">(</span><span class="identifier">N</span><span class="special">,</span> <span class="identifier">M</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Repeat <code class="computeroutput"><span class="identifier">a</span></code> <code class="computeroutput"><span class="identifier">N</span></code> to <code class="computeroutput"><span class="identifier">M</span></code>
+ times
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">repeat</span><span class="special">(</span><span class="identifier">N</span><span class="special">,</span> <span class="identifier">inf</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Repeat <code class="computeroutput"><span class="identifier">a</span></code> <code class="computeroutput"><span class="identifier">N</span></code> or more times
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">verbatim</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">A</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Disable delimited generation for <code class="computeroutput"><span class="identifier">a</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">delimit</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">A</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Reestablish the delimiter that got inhibited by verbatim
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">delimit</span><span class="special">(</span><span class="identifier">g</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">A</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Use <code class="computeroutput"><span class="identifier">g</span></code> as a skipper
+ for generating <code class="computeroutput"><span class="identifier">a</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">float_</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">float</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Generate a floating point number from a <code class="computeroutput"><span class="keyword">float</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">double_</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">double</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Generate a floating point number from a <code class="computeroutput"><span class="keyword">double</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">long_double</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Generate a floating point number from a <code class="computeroutput"><span class="keyword">long</span>
+ <span class="keyword">double</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">bin</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">unsigned</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Generate a binary integer from an <code class="computeroutput"><span class="keyword">unsigned</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">oct</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">unsigned</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Generate an octal integer from an <code class="computeroutput"><span class="keyword">unsigned</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">hex</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">unsigned</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Generate a hexadecimal integer from an <code class="computeroutput"><span class="keyword">unsigned</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">ushort_</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">short</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Generate an unsigned short integer
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">ulong_</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Generate an unsigned long integer
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">uint_</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Generate an unsigned int
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">ulong_long</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span>
+ <span class="keyword">long</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Generate an unsigned long long
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">short_</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">short</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Generate a short integer
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">long_</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">long</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Generate a long integer
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">int_</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">int</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Generate an int
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">long_long</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">long</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Generate a long long
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">!</span><span class="identifier">a</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Unused</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Not predicate. Ensure that <code class="computeroutput"><span class="identifier">a</span></code>
+ does not succeed generating but don't create any output
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">&amp;</span><span class="identifier">a</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Unused</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ And predicate. Ensure that <code class="computeroutput"><span class="identifier">a</span></code>
+ does succeed generating but don't create any output
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">-</span><span class="identifier">a</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Optional. Generate <code class="computeroutput"><span class="identifier">a</span></code>
+ zero or one time
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">*</span><span class="identifier">a</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Kleene. Generate <code class="computeroutput"><span class="identifier">a</span></code>
+ zero or more times
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">+</span><span class="identifier">a</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Plus. Generate <code class="computeroutput"><span class="identifier">a</span></code> one
+ or more times
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">a</span> <span class="special">|</span>
+ <span class="identifier">b</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">variant</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>
+ </td>
+<td>
+ <p>
+ Alternative. Generate <code class="computeroutput"><span class="identifier">a</span></code>
+ or <code class="computeroutput"><span class="identifier">b</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">a</span> <span class="special">&lt;&lt;</span>
+ <span class="identifier">b</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <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>
+ </td>
+<td>
+ <p>
+ Sequence. Generate <code class="computeroutput"><span class="identifier">a</span></code>
+ followed by <code class="computeroutput"><span class="identifier">b</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">a</span> <span class="special">%</span>
+ <span class="identifier">b</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ List. Generate <code class="computeroutput"><span class="identifier">a</span></code> delimited
+ <code class="computeroutput"><span class="identifier">b</span></code> one or more times
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><a name="spirit.qi_and_karma.quick_reference.compound_attribute_rules"></a><h5>
+<a name="id723636"></a>
+ <a class="link" href="quick_reference.html#spirit.qi_and_karma.quick_reference.compound_attribute_rules">Compound
+ Attribute Rules</a>
+ </h5>
+<p>
+ The notation will be for instance:
+ </p>
+<pre class="programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">B</span> <span class="special">--&gt;</span> <span class="special">(</span><span class="identifier">a</span> <span class="special">&gt;&gt;</span> <span class="identifier">b</span><span class="special">):</span> <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>
+</pre>
+<p>
+ which reads as: given, <code class="computeroutput"><span class="identifier">a</span></code>
+ and <code class="computeroutput"><span class="identifier">b</span></code> are parsers/generators,
+ and <code class="computeroutput"><span class="identifier">A</span></code> is the type of the
+ attribute of <code class="computeroutput"><span class="identifier">a</span></code>, and <code class="computeroutput"><span class="identifier">B</span></code> is the type of the attribute of <code class="computeroutput"><span class="identifier">b</span></code>, then the type of the attribute of <code class="computeroutput"><span class="identifier">a</span> <span class="special">&gt;&gt;</span> <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="id723826"></a><p class="title"><b>Table 6. /Spirit.Qi/ compound parser attribute types</b></p>
+<div class="table-contents"><table class="table" summary="/Spirit.Qi/ compound parser attribute types">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Expression
+ </p>
+ </th>
+<th>
+ <p>
+ Attribute
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ sequence (<code class="computeroutput"><span class="special">&gt;&gt;</span></code>)
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+ <span class="identifier">A</span><span class="special">,</span>
+ <span class="identifier">b</span><span class="special">:</span>
+ <span class="identifier">B</span> <span class="special">--&gt;</span>
+ <span class="special">(</span><span class="identifier">a</span>
+ <span class="special">&gt;&gt;</span> <span class="identifier">b</span><span class="special">):</span> <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><br> <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">Unused</span>
+ <span class="special">--&gt;</span> <span class="special">(</span><span class="identifier">a</span> <span class="special">&gt;&gt;</span>
+ <span class="identifier">b</span><span class="special">):</span>
+ <span class="identifier">A</span></code><br> <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">B</span> <span class="special">--&gt;</span> <span class="special">(</span><span class="identifier">a</span> <span class="special">&gt;&gt;</span>
+ <span class="identifier">b</span><span class="special">):</span>
+ <span class="identifier">B</span></code><br> <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">Unused</span>
+ <span class="special">--&gt;</span> <span class="special">(</span><span class="identifier">a</span> <span class="special">&gt;&gt;</span>
+ <span class="identifier">b</span><span class="special">):</span>
+ <span class="identifier">Unused</span></code><br> <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--&gt;</span>
+ <span class="special">(</span><span class="identifier">a</span>
+ <span class="special">&gt;&gt;</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ expect (<code class="computeroutput"><span class="special">&gt;</span></code>)
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+ <span class="identifier">A</span><span class="special">,</span>
+ <span class="identifier">b</span><span class="special">:</span>
+ <span class="identifier">B</span> <span class="special">--&gt;</span>
+ <span class="special">(</span><span class="identifier">a</span>
+ <span class="special">&gt;</span> <span class="identifier">b</span><span class="special">):</span> <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><br> <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">Unused</span>
+ <span class="special">--&gt;</span> <span class="special">(</span><span class="identifier">a</span> <span class="special">&gt;</span>
+ <span class="identifier">b</span><span class="special">):</span>
+ <span class="identifier">A</span></code><br> <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">B</span> <span class="special">--&gt;</span> <span class="special">(</span><span class="identifier">a</span> <span class="special">&gt;</span>
+ <span class="identifier">b</span><span class="special">):</span>
+ <span class="identifier">B</span></code><br> <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">Unused</span>
+ <span class="special">--&gt;</span> <span class="special">(</span><span class="identifier">a</span> <span class="special">&gt;</span>
+ <span class="identifier">b</span><span class="special">):</span>
+ <span class="identifier">Unused</span></code><br> <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--&gt;</span>
+ <span class="special">(</span><span class="identifier">a</span>
+ <span class="special">&gt;</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ alternative (<code class="computeroutput"><span class="special">|</span></code>)
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+ <span class="identifier">A</span><span class="special">,</span>
+ <span class="identifier">b</span><span class="special">:</span>
+ <span class="identifier">B</span> <span class="special">--&gt;</span>
+ <span class="special">(</span><span class="identifier">a</span>
+ <span class="special">|</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">variant</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><br> <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">Unused</span>
+ <span class="special">--&gt;</span> <span class="special">(</span><span class="identifier">a</span> <span class="special">|</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">variant</span><span class="special">&lt;</span><span class="identifier">Unused</span><span class="special">,</span>
+ <span class="identifier">A</span><span class="special">&gt;</span></code><br>
+ <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+ <span class="identifier">Unused</span><span class="special">,</span>
+ <span class="identifier">b</span><span class="special">:</span>
+ <span class="identifier">B</span> <span class="special">--&gt;</span>
+ <span class="special">(</span><span class="identifier">a</span>
+ <span class="special">|</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">variant</span><span class="special">&lt;</span><span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">B</span><span class="special">&gt;</span></code><br> <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">Unused</span>
+ <span class="special">--&gt;</span> <span class="special">(</span><span class="identifier">a</span> <span class="special">|</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">Unused</span></code><br> <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--&gt;</span> <span class="special">(</span><span class="identifier">a</span> <span class="special">|</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">A</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ difference (<code class="computeroutput"><span class="special">-</span></code>)
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+ <span class="identifier">A</span><span class="special">,</span>
+ <span class="identifier">b</span><span class="special">:</span>
+ <span class="identifier">B</span> <span class="special">--&gt;</span>
+ <span class="special">(</span><span class="identifier">a</span>
+ <span class="special">-</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">A</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ kleene (<code class="computeroutput"><span class="special">*</span></code>)
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+ <span class="identifier">A</span> <span class="special">--&gt;</span>
+ <span class="special">*</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code><br> <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span>
+ <span class="special">--&gt;</span> <span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ plus (<code class="computeroutput"><span class="special">+</span></code>)
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+ <span class="identifier">A</span> <span class="special">--&gt;</span>
+ <span class="special">+</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code><br> <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span>
+ <span class="special">--&gt;</span> <span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ list (<code class="computeroutput"><span class="special">%</span></code>)
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+ <span class="identifier">A</span><span class="special">,</span>
+ <span class="identifier">b</span><span class="special">:</span>
+ <span class="identifier">B</span> <span class="special">--&gt;</span>
+ <span class="special">(</span><span class="identifier">a</span>
+ <span class="special">%</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code><br> <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">B</span> <span class="special">--&gt;</span> <span class="special">(</span><span class="identifier">a</span> <span class="special">%</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">Unused</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ repetition
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+ <span class="identifier">A</span> <span class="special">--&gt;</span>
+ <span class="identifier">repeat</span><span class="special">(...,...)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code><br>
+ <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+ <span class="identifier">Unused</span> <span class="special">--&gt;</span>
+ <span class="identifier">repeat</span><span class="special">(...,...)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ sequential or (<code class="computeroutput"><span class="special">||</span></code>)
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+ <span class="identifier">A</span><span class="special">,</span>
+ <span class="identifier">b</span><span class="special">:</span>
+ <span class="identifier">B</span> <span class="special">--&gt;</span>
+ <span class="special">(</span><span class="identifier">a</span>
+ <span class="special">||</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">tuple</span><span class="special">&lt;</span><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;,</span> <span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;</span> <span class="special">&gt;</span></code><br>
+ <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+ <span class="identifier">A</span><span class="special">,</span>
+ <span class="identifier">b</span><span class="special">:</span>
+ <span class="identifier">Unused</span> <span class="special">--&gt;</span>
+ <span class="special">(</span><span class="identifier">a</span>
+ <span class="special">||</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code><br> <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">B</span> <span class="special">--&gt;</span> <span class="special">(</span><span class="identifier">a</span> <span class="special">||</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;</span></code><br>
+ <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+ <span class="identifier">Unused</span><span class="special">,</span>
+ <span class="identifier">b</span><span class="special">:</span>
+ <span class="identifier">Unused</span> <span class="special">--&gt;</span>
+ <span class="special">(</span><span class="identifier">a</span>
+ <span class="special">||</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">Unused</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ optional (<code class="computeroutput"><span class="special">-</span></code>)
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+ <span class="identifier">A</span> <span class="special">--&gt;</span>
+ <span class="special">-</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code><br> <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span>
+ <span class="special">--&gt;</span> <span class="special">-</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ and predicate (<code class="computeroutput"><span class="special">&amp;</span></code>)
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+ <span class="identifier">A</span> <span class="special">--&gt;</span>
+ <span class="special">&amp;</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ not predicate (<code class="computeroutput"><span class="special">!</span></code>)
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+ <span class="identifier">A</span> <span class="special">--&gt;</span>
+ <span class="special">!</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ permutation (<code class="computeroutput"><span class="special">^</span></code>)
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+ <span class="identifier">A</span><span class="special">,</span>
+ <span class="identifier">b</span><span class="special">:</span>
+ <span class="identifier">B</span> <span class="special">--&gt;</span>
+ <span class="special">(</span><span class="identifier">a</span>
+ <span class="special">^</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">tuple</span><span class="special">&lt;</span><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;,</span> <span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;</span> <span class="special">&gt;</span></code><br>
+ <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+ <span class="identifier">A</span><span class="special">,</span>
+ <span class="identifier">b</span><span class="special">:</span>
+ <span class="identifier">Unused</span> <span class="special">--&gt;</span>
+ <span class="special">(</span><span class="identifier">a</span>
+ <span class="special">^</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code><br> <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">B</span> <span class="special">--&gt;</span> <span class="special">(</span><span class="identifier">a</span> <span class="special">^</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;</span></code><br>
+ <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+ <span class="identifier">Unused</span><span class="special">,</span>
+ <span class="identifier">b</span><span class="special">:</span>
+ <span class="identifier">Unused</span> <span class="special">--&gt;</span>
+ <span class="special">(</span><span class="identifier">a</span>
+ <span class="special">^</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">Unused</span></code>
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="table">
+<a name="id726513"></a><p class="title"><b>Table 7. /Spirit.Karma/ compound generator attribute
+ types</b></p>
+<div class="table-contents"><table class="table" summary="/Spirit.Karma/ compound generator attribute
+ types">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Expression
+ </p>
+ </th>
+<th>
+ <p>
+ Attribute
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ sequence (<code class="computeroutput"><span class="special">&lt;&lt;</span></code>)
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+ <span class="identifier">A</span><span class="special">,</span>
+ <span class="identifier">b</span><span class="special">:</span>
+ <span class="identifier">B</span> <span class="special">--&gt;</span>
+ <span class="special">(</span><span class="identifier">a</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">b</span><span class="special">):</span> <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><br> <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">Unused</span>
+ <span class="special">--&gt;</span> <span class="special">(</span><span class="identifier">a</span> <span class="special">&lt;&lt;</span>
+ <span class="identifier">b</span><span class="special">):</span>
+ <span class="identifier">A</span></code><br> <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">B</span> <span class="special">--&gt;</span> <span class="special">(</span><span class="identifier">a</span> <span class="special">&lt;&lt;</span>
+ <span class="identifier">b</span><span class="special">):</span>
+ <span class="identifier">B</span></code><br> <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">Unused</span>
+ <span class="special">--&gt;</span> <span class="special">(</span><span class="identifier">a</span> <span class="special">&lt;&lt;</span>
+ <span class="identifier">b</span><span class="special">):</span>
+ <span class="identifier">Unused</span></code><br> <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--&gt;</span>
+ <span class="special">(</span><span class="identifier">a</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ alternative (<code class="computeroutput"><span class="special">|</span></code>)
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+ <span class="identifier">A</span><span class="special">,</span>
+ <span class="identifier">b</span><span class="special">:</span>
+ <span class="identifier">B</span> <span class="special">--&gt;</span>
+ <span class="special">(</span><span class="identifier">a</span>
+ <span class="special">|</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">variant</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><br> <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">Unused</span>
+ <span class="special">--&gt;</span> <span class="special">(</span><span class="identifier">a</span> <span class="special">|</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">variant</span><span class="special">&lt;</span><span class="identifier">Unused</span><span class="special">,</span>
+ <span class="identifier">A</span><span class="special">&gt;</span></code><br>
+ <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+ <span class="identifier">Unused</span><span class="special">,</span>
+ <span class="identifier">b</span><span class="special">:</span>
+ <span class="identifier">B</span> <span class="special">--&gt;</span>
+ <span class="special">(</span><span class="identifier">a</span>
+ <span class="special">|</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">variant</span><span class="special">&lt;</span><span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">B</span><span class="special">&gt;</span></code><br> <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">Unused</span>
+ <span class="special">--&gt;</span> <span class="special">(</span><span class="identifier">a</span> <span class="special">|</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">Unused</span></code><br> <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--&gt;</span> <span class="special">(</span><span class="identifier">a</span> <span class="special">|</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">A</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ kleene (<code class="computeroutput"><span class="special">*</span></code>)
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+ <span class="identifier">A</span> <span class="special">--&gt;</span>
+ <span class="special">*</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code><br> <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span>
+ <span class="special">--&gt;</span> <span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ plus (<code class="computeroutput"><span class="special">+</span></code>)
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+ <span class="identifier">A</span> <span class="special">--&gt;</span>
+ <span class="special">+</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code><br> <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span>
+ <span class="special">--&gt;</span> <span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ list (<code class="computeroutput"><span class="special">%</span></code>)
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+ <span class="identifier">A</span><span class="special">,</span>
+ <span class="identifier">b</span><span class="special">:</span>
+ <span class="identifier">B</span> <span class="special">--&gt;</span>
+ <span class="special">(</span><span class="identifier">a</span>
+ <span class="special">%</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code><br> <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">B</span> <span class="special">--&gt;</span> <span class="special">(</span><span class="identifier">a</span> <span class="special">%</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">Unused</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ repetition
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+ <span class="identifier">A</span> <span class="special">--&gt;</span>
+ <span class="identifier">repeat</span><span class="special">(...,...)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code><br>
+ <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+ <span class="identifier">Unused</span> <span class="special">--&gt;</span>
+ <span class="identifier">repeat</span><span class="special">(...,...)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ optional (<code class="computeroutput"><span class="special">-</span></code>)
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+ <span class="identifier">A</span> <span class="special">--&gt;</span>
+ <span class="special">-</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code><br> <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span>
+ <span class="special">--&gt;</span> <span class="special">-</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ and predicate (<code class="computeroutput"><span class="special">&amp;</span></code>)
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+ <span class="identifier">A</span> <span class="special">--&gt;</span>
+ <span class="special">&amp;</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ not predicate (<code class="computeroutput"><span class="special">!</span></code>)
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+ <span class="identifier">A</span> <span class="special">--&gt;</span>
+ <span class="special">!</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span></code>
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><a name="spirit.qi_and_karma.quick_reference.lazy_arguments"></a><h5>
+<a name="id729694"></a>
+ <a class="link" href="quick_reference.html#spirit.qi_and_karma.quick_reference.lazy_arguments">Lazy Arguments</a>
+ </h5>
+<p>
+ For all expressions of the form:
+ </p>
+<pre class="programlisting"><span class="identifier">p</span><span class="special">(</span><span class="identifier">a1</span><span class="special">,</span> <span class="identifier">a2</span><span class="special">,...</span> <span class="identifier">aN</span><span class="special">)</span>
+</pre>
+<p>
+ where <code class="computeroutput"><span class="identifier">p</span></code> is a parser, each
+ of the arguments (a1...aN) can either be an immediate value, or a lazy function
+ with signature:
+ </p>
+<pre class="programlisting"><span class="identifier">T</span><span class="special">(</span><span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">Context</span><span class="special">)</span>
+</pre>
+<p>
+ where <code class="computeroutput"><span class="identifier">T</span></code>, the function's return
+ value, is compatible with the argument type expected. For example, this is
+ a valid expression:
+ </p>
+<pre class="programlisting"><span class="identifier">eps</span><span class="special">(</span><span class="keyword">false</span><span class="special">)</span> <span class="comment">// this will always fail
+</span></pre>
+<p>
+ And so is this:
+ </p>
+<pre class="programlisting"><span class="keyword">bool</span> <span class="identifier">flag</span> <span class="special">=</span> <span class="keyword">true</span><span class="special">;</span>
+<span class="identifier">eps</span><span class="special">(</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">var</span><span class="special">(</span><span class="identifier">flag</span><span class="special">))</span> <span class="comment">// success or fail depending on the value
+</span> <span class="comment">// of flag at parse time
+</span></pre>
+<p>
+ since <code class="computeroutput"><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">ref</span><span class="special">(</span><span class="identifier">f</span><span class="special">)</span></code> is a function that returns a <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p>
+<a name="spirit.qi_and_karma.quick_reference.non_terminals"></a><h5>
+<a name="id729923"></a>
+ <a class="link" href="quick_reference.html#spirit.qi_and_karma.quick_reference.non_terminals">Non-terminals</a>
+ </h5>
+<div class="variablelist" title="Notation">
+<p class="title"><b>Notation</b></p>
+<dl>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">RT</span></code></span></dt>
+<dd><p>
+ Synthesized attribute. The rule or grammar's return type.
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Arg1</span></code>,
+ <code class="computeroutput"><span class="identifier">Arg2</span></code>, <code class="computeroutput"><span class="identifier">ArgN</span></code></span></dt>
+<dd><p>
+ Inherited attributes. Zero or more or arguments.
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">L1</span></code>,
+ <code class="computeroutput"><span class="identifier">L2</span></code>, <code class="computeroutput"><span class="identifier">LN</span></code></span></dt>
+<dd><p>
+ Zero or more local variables.
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">r</span><span class="special">,</span> <span class="identifier">r2</span></code></span></dt>
+<dd><p>
+ Rules
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">g</span></code></span></dt>
+<dd><p>
+ A grammar
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">p</span></code></span></dt>
+<dd><p>
+ A parser expression
+ </p></dd>
+</dl>
+</div>
+<div class="variablelist" title="Terminology">
+<p class="title"><b>Terminology</b></p>
+<dl>
+<dt><span class="term">Signature</span></dt>
+<dd><p>
+ <code class="computeroutput"><span class="identifier">RT</span><span class="special">(</span><span class="identifier">Arg1</span><span class="special">,</span> <span class="identifier">Arg2</span> <span class="special">...</span>
+ <span class="special">,</span><span class="identifier">ArgN</span><span class="special">)</span></code>. The signature specifies the synthesized
+ (return value) and inherited (arguments) attributes.
+ </p></dd>
+<dt><span class="term">Locals</span></dt>
+<dd><p>
+ <code class="computeroutput"><span class="identifier">locals</span><span class="special">&lt;</span><span class="identifier">L1</span><span class="special">,</span> <span class="identifier">L2</span> <span class="special">...,</span> <span class="identifier">LN</span><span class="special">&gt;</span></code>.
+ The local variables.
+ </p></dd>
+<dt><span class="term">Skipper</span></dt>
+<dd><p>
+ The skip-parser type
+ </p></dd>
+</dl>
+</div>
+<div class="variablelist" title="Template Arguments">
+<p class="title"><b>Template Arguments</b></p>
+<dl>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Iterator</span></code></span></dt>
+<dd><p>
+ The iterator type you will use for parsing.
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">A1</span></code>,
+ <code class="computeroutput"><span class="identifier">A2</span></code>, <code class="computeroutput"><span class="identifier">A3</span></code></span></dt>
+<dd><p>
+ Can be one of 1)Signature 2)Locals 3)Skipper.
+ </p></dd>
+</dl>
+</div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Expression
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span>
+ <span class="identifier">A1</span><span class="special">,</span>
+ <span class="identifier">A2</span><span class="special">,</span>
+ <span class="identifier">A3</span><span class="special">&gt;</span>
+ <span class="identifier">r</span><span class="special">(</span><span class="identifier">name</span><span class="special">);</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Rule declaration. <code class="computeroutput"><span class="identifier">Iterator</span></code>
+ is required. <code class="computeroutput"><span class="identifier">A1</span><span class="special">,</span>
+ <span class="identifier">A2</span><span class="special">,</span>
+ <span class="identifier">A3</span></code> are optional and can
+ be specified in any order. <code class="computeroutput"><span class="identifier">name</span></code>
+ is an optional string that gives the nonterminal its name, useful
+ for debugging and error handling.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">rule</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span>
+ <span class="identifier">A1</span><span class="special">,</span>
+ <span class="identifier">A2</span><span class="special">,</span>
+ <span class="identifier">A3</span><span class="special">&gt;</span>
+ <span class="identifier">r</span><span class="special">(</span><span class="identifier">r2</span><span class="special">);</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Copy construct rule <code class="computeroutput"><span class="identifier">r</span></code>
+ from rule <code class="computeroutput"><span class="identifier">r2</span></code>. <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span></code> semantics.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">r</span> <span class="special">=</span>
+ <span class="identifier">r2</span><span class="special">;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Assign rule <code class="computeroutput"><span class="identifier">r2</span></code> to
+ <code class="computeroutput"><span class="identifier">r</span></code>. <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span></code> semantics.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">r</span><span class="special">.</span><span class="identifier">alias</span><span class="special">()</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ return an alias of <code class="computeroutput"><span class="identifier">r</span></code>.
+ The alias is a parser that holds a reference to <code class="computeroutput"><span class="identifier">r</span></code>.
+ Reference semantics.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">r</span><span class="special">.</span><span class="identifier">copy</span><span class="special">()</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Get a copy of <code class="computeroutput"><span class="identifier">r</span></code>.
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span></code> semantics.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">r</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="identifier">name</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Naming a rule
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ debug(r)
+ </p>
+ </td>
+<td>
+ <p>
+ Debug rule <code class="computeroutput"><span class="identifier">r</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">r</span> <span class="special">=</span>
+ <span class="identifier">p</span><span class="special">;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Rule definition
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">r</span> <span class="special">%=</span>
+ <span class="identifier">p</span><span class="special">;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Auto-rule definition. The attribute of <code class="computeroutput"><span class="identifier">p</span></code>
+ should be compatible with the synthesized attribute of <code class="computeroutput"><span class="identifier">r</span></code>. When <code class="computeroutput"><span class="identifier">p</span></code>
+ is successful, its attribute is automatically propagated to <code class="computeroutput"><span class="identifier">r</span></code>'s synthesized attribute.
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -3,8 +3,8 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Reference</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../index.html" title="Spirit 2.1">
 <link rel="up" href="../qi_and_karma.html" title="Qi and Karma">
 <link rel="prev" href="quick_reference.html" title="Quick Reference">
 <link rel="next" href="reference/char.html" title="Char">
@@ -22,9 +22,10 @@
 <div class="spirit-nav">
 <a accesskey="p" href="quick_reference.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../qi_and_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="reference/char.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section" title="Reference">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="spirit.qi_and_karma.reference"></a>Reference</h3></div></div></div>
+<a name="spirit.qi_and_karma.reference"></a><a class="link" href="reference.html" title="Reference">Reference</a>
+</h3></div></div></div>
 <div class="toc"><dl>
 <dt><span class="section">Concepts</span></dt>
 <dt><span class="section">Char</span></dt>
@@ -39,35 +40,37 @@
 <dt><span class="section">Auxiliary</span></dt>
 <dt><span class="section">Debug</span></dt>
 </dl></div>
-<div class="section" lang="en">
+<div class="section" title="Concepts">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.reference.concepts"></a>Concepts</h4></div></div></div>
+<a name="spirit.qi_and_karma.reference.concepts"></a><a class="link" href="reference.html#spirit.qi_and_karma.reference.concepts" title="Concepts">Concepts</a>
+</h4></div></div></div>
 <div class="toc"><dl>
 <dt><span class="section">Parser</span></dt>
 <dt><span class="section">Generator</span></dt>
 </dl></div>
-<div class="section" lang="en">
+<div class="section" title="Parser">
 <div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi_and_karma.reference.concepts.parser"></a>Parser</h5></div></div></div>
+<a name="spirit.qi_and_karma.reference.concepts.parser"></a><a class="link" href="reference.html#spirit.qi_and_karma.reference.concepts.parser" title="Parser">Parser</a>
+</h5></div></div></div>
 <a name="spirit.qi_and_karma.reference.concepts.parser.description"></a><h6>
-<a name="id487325"></a>
- Description
+<a name="id731442"></a>
+ <a class="link" href="reference.html#spirit.qi_and_karma.reference.concepts.parser.description">Description</a>
           </h6>
 <p>
             Description of Parser concept
           </p>
-<div class="variablelist">
+<div class="variablelist" title="Notation">
 <p class="title"><b>Notation</b></p>
 <dl>
-<dt><span class="term"><tt class="computeroutput"><span class="identifier">p</span></tt></span></dt>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">p</span></code></span></dt>
 <dd><p>
                 A Parser
               </p></dd>
 </dl>
 </div>
 <a name="spirit.qi_and_karma.reference.concepts.parser.valid_expressions"></a><h6>
-<a name="id487386"></a>
- <a href="reference.html#spirit.qi_and_karma.reference.concepts.parser.valid_expressions">Valid
+<a name="id731489"></a>
+ <a class="link" href="reference.html#spirit.qi_and_karma.reference.concepts.parser.valid_expressions">Valid
             Expressions</a>
           </h6>
 <p>
@@ -105,12 +108,12 @@
 <tbody><tr>
 <td>
                   <p>
- <tt class="computeroutput"><span class="identifier">xxx</span></tt>
+ <code class="computeroutput"><span class="identifier">xxx</span></code>
                   </p>
                   </td>
 <td>
                   <p>
- Semantics of <tt class="computeroutput"><span class="identifier">xxx</span></tt>
+ Semantics of <code class="computeroutput"><span class="identifier">xxx</span></code>
                   </p>
                   </td>
 <td>
@@ -126,8 +129,8 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.qi_and_karma.reference.concepts.parser.type_requirements"></a><h6>
-<a name="id487523"></a>
- <a href="reference.html#spirit.qi_and_karma.reference.concepts.parser.type_requirements">Type
+<a name="id731599"></a>
+ <a class="link" href="reference.html#spirit.qi_and_karma.reference.concepts.parser.type_requirements">Type
             Requirements</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -150,39 +153,40 @@
 <tbody><tr>
 <td>
                   <p>
- <tt class="computeroutput"><span class="identifier">xxx</span></tt>
+ <code class="computeroutput"><span class="identifier">xxx</span></code>
                   </p>
                   </td>
 <td>
                   <p>
- Requirements for <tt class="computeroutput"><span class="identifier">xxx</span></tt>
+ Requirements for <code class="computeroutput"><span class="identifier">xxx</span></code>
                   </p>
                   </td>
 </tr></tbody>
 </table></div>
 <a name="spirit.qi_and_karma.reference.concepts.parser.invariants"></a><h6>
-<a name="id487627"></a>
- Invariants
+<a name="id731682"></a>
+ <a class="link" href="reference.html#spirit.qi_and_karma.reference.concepts.parser.invariants">Invariants</a>
           </h6>
 <p>
             For any Parser xxx the following invariants always hold:
           </p>
 <a name="spirit.qi_and_karma.reference.concepts.parser.models"></a><h6>
-<a name="id487659"></a>
- Models
+<a name="id731701"></a>
+ <a class="link" href="reference.html#spirit.qi_and_karma.reference.concepts.parser.models">Models</a>
           </h6>
 <p>
             Links to models of Parser concept
           </p>
 </div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi_and_karma.reference.concepts.generator"></a>Generator</h5></div></div></div></div>
+<div class="section" title="Generator"><div class="titlepage"><div><div><h5 class="title">
+<a name="spirit.qi_and_karma.reference.concepts.generator"></a><a class="link" href="reference.html#spirit.qi_and_karma.reference.concepts.generator" title="Generator">Generator</a>
+</h5></div></div></div></div>
 </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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/action.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/action.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/action.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -3,8 +3,8 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Action</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="directive.html" title="Directive">
 <link rel="next" href="nonterminal.html" title="Nonterminal">
@@ -22,12 +22,13 @@
 <div class="spirit-nav">
 <a accesskey="p" href="directive.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="nonterminal.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.reference.action"></a>Action</h4></div></div></div></div>
+<div class="section" title="Action"><div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.qi_and_karma.reference.action"></a><a class="link" href="action.html" title="Action">Action</a>
+</h4></div></div></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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/auxiliary.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/auxiliary.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/auxiliary.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -3,8 +3,8 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Auxiliary</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="stream.html" title="Stream">
 <link rel="next" href="debug.html" title="Debug">
@@ -22,12 +22,13 @@
 <div class="spirit-nav">
 <a accesskey="p" href="stream.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="debug.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.reference.auxiliary"></a>Auxiliary</h4></div></div></div></div>
+<div class="section" title="Auxiliary"><div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.qi_and_karma.reference.auxiliary"></a><a class="link" href="auxiliary.html" title="Auxiliary">Auxiliary</a>
+</h4></div></div></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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/binary.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/binary.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/binary.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -3,8 +3,8 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Binary</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="numeric.html" title="Numeric">
 <link rel="next" href="directive.html" title="Directive">
@@ -22,12 +22,13 @@
 <div class="spirit-nav">
 <a accesskey="p" href="numeric.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="directive.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.reference.binary"></a>Binary</h4></div></div></div></div>
+<div class="section" title="Binary"><div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.qi_and_karma.reference.binary"></a><a class="link" href="binary.html" title="Binary">Binary</a>
+</h4></div></div></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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/char.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/char.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/char.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -3,8 +3,8 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Char</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="../reference.html" title="Reference">
 <link rel="next" href="string.html" title="String">
@@ -22,12 +22,13 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../reference.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="string.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.reference.char"></a>Char</h4></div></div></div></div>
+<div class="section" title="Char"><div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.qi_and_karma.reference.char"></a><a class="link" href="char.html" title="Char">Char</a>
+</h4></div></div></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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/debug.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/debug.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/debug.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -3,11 +3,11 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Debug</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="auxiliary.html" title="Auxiliary">
-<link rel="next" href="../../lex.html" title=" Spirit.Lex">
+<link rel="next" href="../../lex.html" title="Spirit.Lex">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -22,12 +22,13 @@
 <div class="spirit-nav">
 <a accesskey="p" href="auxiliary.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="../../lex.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.reference.debug"></a>Debug</h4></div></div></div></div>
+<div class="section" title="Debug"><div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.qi_and_karma.reference.debug"></a><a class="link" href="debug.html" title="Debug">Debug</a>
+</h4></div></div></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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/directive.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/directive.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/directive.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -3,8 +3,8 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Directive</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="binary.html" title="Binary">
 <link rel="next" href="action.html" title="Action">
@@ -22,12 +22,13 @@
 <div class="spirit-nav">
 <a accesskey="p" href="binary.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="action.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.reference.directive"></a>Directive</h4></div></div></div></div>
+<div class="section" title="Directive"><div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.qi_and_karma.reference.directive"></a><a class="link" href="directive.html" title="Directive">Directive</a>
+</h4></div></div></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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/nonterminal.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/nonterminal.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/nonterminal.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -3,8 +3,8 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Nonterminal</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="action.html" title="Action">
 <link rel="next" href="operators.html" title="Operators">
@@ -22,12 +22,13 @@
 <div class="spirit-nav">
 <a accesskey="p" href="action.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="operators.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.reference.nonterminal"></a>Nonterminal</h4></div></div></div></div>
+<div class="section" title="Nonterminal"><div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.qi_and_karma.reference.nonterminal"></a><a class="link" href="nonterminal.html" title="Nonterminal">Nonterminal</a>
+</h4></div></div></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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/numeric.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/numeric.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/numeric.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -3,8 +3,8 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Numeric</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="string.html" title="String">
 <link rel="next" href="binary.html" title="Binary">
@@ -22,12 +22,13 @@
 <div class="spirit-nav">
 <a accesskey="p" href="string.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="binary.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.reference.numeric"></a>Numeric</h4></div></div></div></div>
+<div class="section" title="Numeric"><div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.qi_and_karma.reference.numeric"></a><a class="link" href="numeric.html" title="Numeric">Numeric</a>
+</h4></div></div></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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/operators.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/operators.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/operators.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -3,8 +3,8 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Operators</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="nonterminal.html" title="Nonterminal">
 <link rel="next" href="stream.html" title="Stream">
@@ -22,12 +22,13 @@
 <div class="spirit-nav">
 <a accesskey="p" href="nonterminal.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="stream.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.reference.operators"></a>Operators</h4></div></div></div></div>
+<div class="section" title="Operators"><div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.qi_and_karma.reference.operators"></a><a class="link" href="operators.html" title="Operators">Operators</a>
+</h4></div></div></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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/stream.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/stream.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/stream.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -3,8 +3,8 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Stream</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="operators.html" title="Operators">
 <link rel="next" href="auxiliary.html" title="Auxiliary">
@@ -22,12 +22,13 @@
 <div class="spirit-nav">
 <a accesskey="p" href="operators.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="auxiliary.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.reference.stream"></a>Stream</h4></div></div></div></div>
+<div class="section" title="Stream"><div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.qi_and_karma.reference.stream"></a><a class="link" href="stream.html" title="Stream">Stream</a>
+</h4></div></div></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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/string.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/string.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi_and_karma/reference/string.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -3,8 +3,8 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>String</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../../../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="char.html" title="Char">
 <link rel="next" href="numeric.html" title="Numeric">
@@ -22,12 +22,13 @@
 <div class="spirit-nav">
 <a accesskey="p" href="char.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.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="numeric.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi_and_karma.reference.string"></a>String</h4></div></div></div></div>
+<div class="section" title="String"><div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.qi_and_karma.reference.string"></a><a class="link" href="string.html" title="String">String</a>
+</h4></div></div></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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/rationale.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/rationale.html (original)
+++ trunk/libs/spirit/doc/html/spirit/rationale.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -3,9 +3,9 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>Rationale</title>
 <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../index.html" title="Spirit 2.0">
-<link rel="up" href="../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../index.html" title="Spirit 2.1">
+<link rel="up" href="../index.html" title="Spirit 2.1">
 <link rel="prev" href="notes/techniques.html" title="Techniques">
 <link rel="next" href="acknowledgments.html" title="Acknowledgments">
 </head>
@@ -22,12 +22,13 @@
 <div class="spirit-nav">
 <a accesskey="p" href="notes/techniques.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="acknowledgments.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="spirit.rationale"></a>Rationale</h2></div></div></div></div>
+<div class="section" title="Rationale"><div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="spirit.rationale"></a><a class="link" href="rationale.html" title="Rationale">Rationale</a>
+</h2></div></div></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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/html/spirit/references.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/references.html (original)
+++ trunk/libs/spirit/doc/html/spirit/references.html 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -3,9 +3,9 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>References</title>
 <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../index.html" title="Spirit 2.0">
-<link rel="up" href="../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../index.html" title="Spirit 2.1">
+<link rel="up" href="../index.html" title="Spirit 2.1">
 <link rel="prev" href="acknowledgments.html" title="Acknowledgments">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -21,9 +21,10 @@
 <div class="spirit-nav">
 <a accesskey="p" href="acknowledgments.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>
 </div>
-<div class="section" lang="en">
+<div class="section" title="References">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="spirit.references"></a>References</h2></div></div></div>
+<a name="spirit.references"></a><a class="link" href="references.html" title="References">References</a>
+</h2></div></div></div>
 <div class="informaltable"><table class="table">
 <colgroup>
 <col>
@@ -475,8 +476,8 @@
 </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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

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-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -3,10 +3,10 @@
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 <title>What's New</title>
 <link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.66.1">
-<link rel="start" href="../index.html" title="Spirit 2.0">
-<link rel="up" href="../index.html" title="Spirit 2.0">
-<link rel="prev" href="../index.html" title="Spirit 2.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../index.html" title="Spirit 2.1">
+<link rel="up" href="../index.html" title="Spirit 2.1">
+<link rel="prev" href="../index.html" title="Spirit 2.1">
 <link rel="next" href="introduction.html" title="Introduction">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,13 +22,14 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../index.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="introduction.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
+<div class="section" title="What's New">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="spirit.what_s_new"></a>What's New</h2></div></div></div>
-<a name="spirit.what_s_new.spirit_classic"></a><h3>
-<a name="id457100"></a>
- Spirit Classic
- </h3>
+<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="id684301"></a>
+ <a class="link" href="what_s_new.html#spirit.what_s_new.spirit_classic">Spirit Classic</a>
+ </h4>
 <p>
       The Spirit V1.8.x code base has been integrated with Spirit V2. It is now called
       <span class="emphasis"><em>Spirit.Classic</em></span>. Even if the directory structure has changed
@@ -52,11 +53,11 @@
 </pre>
 <p>
       To avoid namespace conflicts with the new Spirit V2 library we moved Spirit
- Classic into the namespace <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">classic</span></tt>.
- All references to the former namespace <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span></tt>
+ Classic into the namespace <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">classic</span></code>.
+ All references to the former namespace <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span></code>
       need to be adjusted as soon as the header names are corrected as described
- above. As an alternative you can define the preprocessor constant <tt class="computeroutput"><span class="identifier">BOOST_SPIRIT_USE_OLD_NAMESPACE</span></tt>, which will
- force the Spirit Classic code to be in the namespace <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span></tt>
+ above. As an alternative you can define the preprocessor constant <code class="computeroutput"><span class="identifier">BOOST_SPIRIT_USE_OLD_NAMESPACE</span></code>, which will
+ force the Spirit Classic code to be in the namespace <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span></code>
       as before. This is not recommended, though, as it may result in naming clashes.
     </p>
 <p>
@@ -64,11 +65,151 @@
       deprecated include files are being used. This ensures full backwards compatibility
       for existing applications.
     </p>
+<a name="spirit.what_s_new.spirit_v2_1"></a><h4>
+<a name="id684492"></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="id684505"></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>
+ </h4>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+Spirit is now based on
+ the newest version of Boost.Proto
+</li>
+<li class="listitem">
+ qi::phrase_parse, qi::phrase_format now post-skip by default.
+ </li>
+<li class="listitem">
+ karma::generate_delimited and karma::format_delimited now don't do pre- delimiting
+ by default.
+ </li>
+<li class="listitem">
+ Changed parameter sequence of qi::phrase_parse, qi::phrase_match, karma::generate_delimited,
+ and match_delimited. The attribute is now the last parameter.
+ </li>
+<li class="listitem">
+ Added new overloads of those functions allowing to explicitely specify the
+ post-skipping and pre-delimiting behavior.
+ </li>
+<li class="listitem">
+ multi attribute API functions
+ </li>
+<li class="listitem">
+ removed grammar_def&lt;&gt;
+ </li>
+<li class="listitem">
+ removed functions make_parser() and make<span class="underline">generator()
+ * removed qi::none and karma::none * sequences and lists now accept a standard
+ container as its attribute * The string placeholder terminal now can take
+ other strings as its parameter (i.e. std::string) * all terminals taking
+ literals now accept a (lazy) function object as well * All placeholders for
+ terminals and directives (such as int</span>, double<span class="underline">,
+ verbatim, etc.) were previously defined in the namespace boost::spirit only.
+ Now these are additionally imported into the namespaces spirit::qi, spirit::karma,
+ and spirit::lex (if they are supported by the corresponding sub-library.
+ * The terminal placeholders char</span> and string are not defined in
+ the namespace boost::spirit anymore as they have been moved to the character
+ set namespaces, allowing to do proper character set handling based on the
+ used namespace (as spirit::ascii, etc.)
+ </li>
+<li class="listitem">
+ The uint, ushort, ulong, and byte terminal placeholders have been renamed
+ to uint<span class="underline">, ushort</span>, ulong<span class="underline">,
+ and byte</span>.
+ </li>
+<li class="listitem">
+ qi: skip[] now re-enables outer skipper if used inside lexeme[]
+ </li>
+<li class="listitem">
+ karma: maxwidth[] directive
+ </li>
+<li class="listitem">
+ karma: delimit[] now re-enables outer delimiter if used inside verbatim[]
+ </li>
+<li class="listitem">
+ karma: added and-predicate (operator&amp;()) and not-predicate (operator!())
+ </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="id684607"></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>
+<p>
+ Here is a list of changes in <span class="emphasis"><em>Spirit.Lex</em></span> since version
+ 2.0. <span class="emphasis"><em>Spirit.Lex</em></span> 2.x is a complete rewrite of the original
+ <span class="emphasis"><em>Spirit.Lex</em></span> distributed. As all parts of the Spirit
+ library it is usable either standalone or in conjunction with the other parts.
+ <span class="emphasis"><em>Spirit.Lex</em></span> now uses the infrastructure provided by Spirit version 2.1.
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ The lex::lexer_def class has been renamed to lex::lexer, while the original
+ class lex::lexer does not exist anymore. This simplifies the creation of
+ lexers.
+ </li>
+<li class="listitem">
+ The lex::lexer class does not have the function <code class="computeroutput"><span class="identifier">def</span><span class="special">(</span><span class="identifier">Self</span><span class="special">&amp;</span>
+ <span class="identifier">self</span><span class="special">)</span></code>
+ anymore, token definitions can be added to the lexer at any time, usually
+ in the constructor of the user defined lexer class:
+ </li>
+</ul></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Lexer</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">example_tokens</span> <span class="special">:</span> <span class="identifier">lex</span><span class="special">::</span><span class="identifier">lexer</span><span class="special">&lt;</span><span class="identifier">Lexer</span><span class="special">&gt;</span>
+<span class="special">{</span>
+ <span class="identifier">example_lexer</span><span class="special">()</span>
+ <span class="special">{</span>
+ <span class="comment">// your token definitions here
+</span> <span class="keyword">this</span><span class="special">-&gt;</span><span class="identifier">self</span> <span class="special">=</span> <span class="special">...</span>
+ <span class="special">}</span>
+<span class="special">};</span>
+</pre>
+<p>
+ template &lt;typename Lexer&gt; struct example_tokens : lex::lexer&lt;Lexer&gt;
+ { example_lexer() { <span class="emphasis"><em>/ your token definitions here this-&gt;self =
+ ... } }; * The new lexer class now can be directly used, their is no need anymore
+ to wrap it using the `make_lexer()` template as before. Therefor the function
+ `make_lexer()` has been removed. * The `lex::tokenize_and_parse()` and `lex::tokenize_and_phrase_parse()`
+ functions have been changed to match the parameter sequence as implemented
+ by the `qi::parse()` and `qi::phrase_parse()` functions. Both take a possibly
+ arbitrary number of attribute arguments as its last parameters (well, the number
+ of attributes is limited by the macro `SPIRIT_ARGUMENTS_LIMIT`, which defaults
+ to `PHOENIX_LIMIT`). * The `lex::lexertl_lexer`, `lex::lexertl_token_set`,
+ and `lex::lexertl_token` classes has been moved to the `lex::lexertl` namespace
+ and the names have been changed to `lex::lexertl::lexer`, `lex::lexertl::token_set`,
+ `lex::lexertl::token` (the same applies to the `lex::lexert_actor_lexer`, and
+ the `static_lexertl_*` family of types). * The __lexer__ library has been updated
+ to use the newest version of Ben Hansons __lexertl__ lexer construction library
+ (Boost review pending). * The `lex::lexer&lt;Lexer&gt;` template constructor
+ now takes an optional parameter specifying the `match_flags` to be used for
+ table generation. Currently, there are the following flags available: ''' match_flags::match_default,
+ /</em></span> no flags match_flags::match_not_dot_newline, <span class="emphasis"><em>/ the regex
+ '.' doesn't match newlines match_flags::match_icase /</em></span> all matching
+ operations are case insensitive If no parameter is passed to the constructor, `match_flags::match_default` is
+ used, i.e. the `.` matches newlines and matching is case sensitive.
+* Now the `char_()` and `string()` placeholders can be used for token
+ definitions as a replacement for `token_def`, although it is still
+ possible to use the latter one.
+
+[endsect]
+
+
+'''
+ If no parameter is passed to the constructor, <code class="computeroutput"><span class="identifier">match_flags</span><span class="special">::</span><span class="identifier">match_default</span></code> is
+ used, i.e. the <code class="computeroutput"><span class="special">.</span></code> matches newlines and matching is case sensitive.
+* Now the <code class="computeroutput"><span class="identifier">char_</span><span class="special">()</span></code> and <code class="computeroutput"><span class="identifier">string</span><span class="special">()</span></code> placeholders can be used for token
+ definitions as a replacement for <code class="computeroutput"><span class="identifier">token_def</span></code>, although it is still
+ possible to use the latter one.</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-2008 Joel de Guzman,
- Hartmut Kaiser<p>
+<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>

Modified: trunk/libs/spirit/doc/lex/tokenizing.qbk
==============================================================================
--- trunk/libs/spirit/doc/lex/tokenizing.qbk (original)
+++ trunk/libs/spirit/doc/lex/tokenizing.qbk 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -1,5 +1,5 @@
 [/==============================================================================
- Copyright (C) 2001-2008 Joel de Guzman
+ Copyright (C) 2001-2009 Joel de Guzman
     Copyright (C) 2001-2009 Hartmut Kaiser
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
@@ -8,8 +8,8 @@
 
 [section:lexer_tokenizing Tokenizing Input Data]
 
-[heading The tokenize() function]
+[heading:tokenize_function The tokenize() function]
 
-[heading The generate_static() function]
+[heading:generate_static_function The generate_static() function]
 
 [endsect]

Modified: trunk/libs/spirit/doc/qi_and_karma/error_handling.qbk
==============================================================================
--- trunk/libs/spirit/doc/qi_and_karma/error_handling.qbk (original)
+++ trunk/libs/spirit/doc/qi_and_karma/error_handling.qbk 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -15,11 +15,11 @@
 
 [@../../example/qi/mini_xml1.cpp] and here: [@../../example/qi/mini_xml2.cpp]
 
-[import ../../example/qi/mini_xml3.cpp]
+[/ import ../example/qi/mini_xml3.cpp /]
 
 Here's the grammar:
 
-[tutorial_xml3_grammar]
+[/ tutorial_xml3_grammar /]
 
 What's new?
 

Modified: trunk/libs/spirit/doc/qi_and_karma/quick_reference.qbk
==============================================================================
--- trunk/libs/spirit/doc/qi_and_karma/quick_reference.qbk (original)
+++ trunk/libs/spirit/doc/qi_and_karma/quick_reference.qbk 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -9,26 +9,26 @@
 [section Quick Reference]
 
 [variablelist Notation
- [[`P`] Parser type]]
- [[`p, a, b, c`] Parser objects]]
- [[`A, B, C`] Attribute types of parsers A, B and C]]
- [[`I`] The iterator type used for parsing]]
- [[`Unused`] An `unused_type`]]
- [[`Context`] The enclosing rule's `Context` type]]
- [[`Attr`] An attribute type]]
- [[`b`] A boolean expression]]
- [[`fp`] A (lazy parser) function with signature `P(Unused, Context)`]]
- [[`fa`] A (semantic action) function with signature `void(Attr, Context, bool&)`.
+ [[`P`] [Parser type]]
+ [[`p, a, b, c`] [Parser objects]]
+ [[`A, B, C`] [Attribute types of parsers A, B and C]]
+ [[`I`] [The iterator type used for parsing]]
+ [[`Unused`] [An `unused_type`]]
+ [[`Context`] [The enclosing rule's `Context` type]]
+ [[`Attr`] [An attribute type]]
+ [[`b`] [A boolean expression]]
+ [[`fp`] [A (lazy parser) function with signature `P(Unused, Context)`]]
+ [[`fa`] [A (semantic action) function with signature `void(Attr, Context, bool&)`.
                         The third parameter is a boolean flag that can be set to false to
                         force the parse to fail.]]
- [[`first`] An iterator pointing to the start of input]]
- [[`last`] An iterator pointing to the end of input]]
- [[`Ch`] Character-class specific character type (See __char_class_types__)]]
- [[`ch`] Character-class specific character (See __char_class_types__)]]
- [[`ch2`] Character-class specific character (See __char_class_types__)]]
- [[`chset`] Character-set specifier string (example: "a-z0-9")]]
- [[`str`] Character-class specific string (See __char_class_types__)]]
- [[`Str`] Attribute of `str`: `std::basic_string<T>` where `T` is the underlying character type of `str`]]
+ [[`first`] [An iterator pointing to the start of input]]
+ [[`last`] [An iterator pointing to the end of input]]
+ [[`Ch`] [Character-class specific character type (See __char_class_types__)]]
+ [[`ch`] [Character-class specific character (See __char_class_types__)]]
+ [[`ch2`] [Character-class specific character (See __char_class_types__)]]
+ [[`chset`] [Character-set specifier string (example: "a-z0-9")]]
+ [[`str`] [Character-class specific string (See __char_class_types__)]]
+ [[`Str`] [Attribute of `str`: `std::basic_string<T>` where `T` is the underlying character type of `str`]]
     [[`tuple<>`] [Used as a placeholder for a fusion sequence]]
     [[`vector<>`] [Used as a placeholder for an STL container]]
     [[`variant<>`] [Used as a placeholder for a boost::variant]]
@@ -36,15 +36,15 @@
 ]
 
 
-[table Predefined __qi__ primitive parsers
+[table Predefined /Spirit.Qi/ primitive parsers
     [[Expression] [Attribute] [Description]]
- [[`eol`] [`Unused`] [Matches the end of line (\r or \n or \r\n)]]
+ [[`eol`] [`Unused`] [Matches the end of line (`\r` or `\n` or `\r\n`)]]
     [[`eoi`] [`Unused`] [Matches the end of input (first == last)]]
     [[`eps`] [`Unused`] [Match an empty string]]
     [[`eps(b)`] [`Unused`] [If `b` is true, match an empty string]]
     [[`lazy(fp)`] [Attribute of `P` where `P`
                             is the return type of `fp`] [Invoke `fp` at parse time, returning a parser
- `p` which is then called to parse.]
+ `p` which is then called to parse.]]
     [[`fp`] [see `lazy(fp)` above] [Equivalent to `lazy[fp]`]]
     [[`p[fa]`] [Attribute of `p`] [Call semantic action, `fa` if p succeeds.]]
 
@@ -121,14 +121,14 @@
                             ] [Permutation. Parse `a` and `b` in any order]]
 ]
 
-[table Predefined __karma__ primitive generators
+[table Predefined /Spirit.Karma/ primitive generators
     [[Expression] [Attribute] [Description]]
- [[`eol`] [`Unused`] [Generates the end of line (\n)]]
+ [[`eol`] [`Unused`] [Generates the end of line (`\n`)]]
     [[`eps`] [`Unused`] [Generate an empty string]]
     [[`eps(b)`] [`Unused`] [If `b` is true, generate an empty string]]
     [[`lazy(fg)`] [Attribute of `G` where `G`
                             is the return type of `fg`] [Invoke `fg` at generation time, returning a generator
- `g` which is then called to generate.]
+ `g` which is then called to generate.]]
     [[`fg`] [see `lazy(fg)` above] [Equivalent to `lazy[fp]`]]
     [[`g[fa]`] [Attribute of `g`] [Call semantic action `fa` (before executing `g`).]]
 
@@ -226,67 +226,67 @@
 type of the attribute of `a >> b` will be `tuple<A, B>`.
 
 
-[table __qi__ compound parser attribute types
+[table /Spirit.Qi/ compound parser attribute types
     [[Expression] [Attribute]]
- [[sequence (`>>`)] [`a: A, b: B --> (a >> b): tuple<A, B>`
- `a: A, b: Unused --> (a >> b): A`
- `a: Unused, b: B --> (a >> b): B`
- `a: Unused, b: Unused --> (a >> b): Unused`
+ [[sequence (`>>`)] [`a: A, b: B --> (a >> b): tuple<A, B>`[br]
+ `a: A, b: Unused --> (a >> b): A`[br]
+ `a: Unused, b: B --> (a >> b): B`[br]
+ `a: Unused, b: Unused --> (a >> b): Unused`[br]
                              `a: A, b: A --> (a >> b): vector<A>`]]
- [[expect (`>`)] [`a: A, b: B --> (a > b): tuple<A, B>`
- `a: A, b: Unused --> (a > b): A`
- `a: Unused, b: B --> (a > b): B`
- `a: Unused, b: Unused --> (a > b): Unused`
+ [[expect (`>`)] [`a: A, b: B --> (a > b): tuple<A, B>`[br]
+ `a: A, b: Unused --> (a > b): A`[br]
+ `a: Unused, b: B --> (a > b): B`[br]
+ `a: Unused, b: Unused --> (a > b): Unused`[br]
                              `a: A, b: A --> (a > b): vector<A>`]]
- [[alternative (`|`)] [`a: A, b: B --> (a | b): variant<A, B>`
- `a: A, b: Unused --> (a | b): variant<Unused, A>`
- `a: Unused, b: B --> (a | b): variant<Unused, B>`
- `a: Unused, b: Unused --> (a | b): Unused`
+ [[alternative (`|`)] [`a: A, b: B --> (a | b): variant<A, B>`[br]
+ `a: A, b: Unused --> (a | b): variant<Unused, A>`[br]
+ `a: Unused, b: B --> (a | b): variant<Unused, B>`[br]
+ `a: Unused, b: Unused --> (a | b): Unused`[br]
                              `a: A, b: A --> (a | b): A`]]
     [[difference (`-`)] [`a: A, b: B --> (a - b): A`]]
- [[kleene (`*`)] [`a: A --> *a: vector<A>`
+ [[kleene (`*`)] [`a: A --> *a: vector<A>`[br]
                              `a: Unused --> a: Unused`]]
- [[plus (`+`)] [`a: A --> +a: vector<A>`
+ [[plus (`+`)] [`a: A --> +a: vector<A>`[br]
                              `a: Unused --> a: Unused`]]
- [[list (`%`)] [`a: A, b: B --> (a % b): vector<A>`
+ [[list (`%`)] [`a: A, b: B --> (a % b): vector<A>`[br]
                              `a: Unused, b: B --> (a % b): Unused`]]
- [[repetition] [`a: A --> repeat(...,...)[a]: vector<A>`
+ [[repetition] [`a: A --> repeat(...,...)[a]: vector<A>`[br]
                              `a: Unused --> repeat(...,...)[a]: Unused`]]
- [[sequential or (`||`)] [`a: A, b: B --> (a || b): tuple<optional<A>, optional<B> >`
- `a: A, b: Unused --> (a || b): optional<A>`
- `a: Unused, b: B --> (a || b): optional<B>`
+ [[sequential or (`||`)] [`a: A, b: B --> (a || b): tuple<optional<A>, optional<B> >`[br]
+ `a: A, b: Unused --> (a || b): optional<A>`[br]
+ `a: Unused, b: B --> (a || b): optional<B>`[br]
                              `a: Unused, b: Unused --> (a || b): Unused`]]
- [[optional (`-`)] [`a: A --> -a: optional<A>`
+ [[optional (`-`)] [`a: A --> -a: optional<A>`[br]
                              `a: Unused --> -a: Unused`]]
     [[and predicate (`&`)] [`a: A --> &a: Unused`]]
     [[not predicate (`!`)] [`a: A --> !a: Unused`]]
- [[permutation (`^`)] [`a: A, b: B --> (a ^ b): tuple<optional<A>, optional<B> >`
- `a: A, b: Unused --> (a ^ b): optional<A>`
- `a: Unused, b: B --> (a ^ b): optional<B>`
+ [[permutation (`^`)] [`a: A, b: B --> (a ^ b): tuple<optional<A>, optional<B> >`[br]
+ `a: A, b: Unused --> (a ^ b): optional<A>`[br]
+ `a: Unused, b: B --> (a ^ b): optional<B>`[br]
                              `a: Unused, b: Unused --> (a ^ b): Unused`]]
 ]
 
-[table __karma__ compound generator attribute types
+[table /Spirit.Karma/ compound generator attribute types
     [[Expression] [Attribute]]
- [[sequence (`<<`)] [`a: A, b: B --> (a << b): tuple<A, B>`
- `a: A, b: Unused --> (a << b): A`
- `a: Unused, b: B --> (a << b): B`
- `a: Unused, b: Unused --> (a << b): Unused`
+ [[sequence (`<<`)] [`a: A, b: B --> (a << b): tuple<A, B>`[br]
+ `a: A, b: Unused --> (a << b): A`[br]
+ `a: Unused, b: B --> (a << b): B`[br]
+ `a: Unused, b: Unused --> (a << b): Unused`[br]
                              `a: A, b: A --> (a << b): vector<A>`]]
- [[alternative (`|`)] [`a: A, b: B --> (a | b): variant<A, B>`
- `a: A, b: Unused --> (a | b): variant<Unused, A>`
- `a: Unused, b: B --> (a | b): variant<Unused, B>`
- `a: Unused, b: Unused --> (a | b): Unused`
+ [[alternative (`|`)] [`a: A, b: B --> (a | b): variant<A, B>`[br]
+ `a: A, b: Unused --> (a | b): variant<Unused, A>`[br]
+ `a: Unused, b: B --> (a | b): variant<Unused, B>`[br]
+ `a: Unused, b: Unused --> (a | b): Unused`[br]
                              `a: A, b: A --> (a | b): A`]]
- [[kleene (`*`)] [`a: A --> *a: vector<A>`
+ [[kleene (`*`)] [`a: A --> *a: vector<A>`[br]
                              `a: Unused --> a: Unused`]]
- [[plus (`+`)] [`a: A --> +a: vector<A>`
+ [[plus (`+`)] [`a: A --> +a: vector<A>`[br]
                              `a: Unused --> a: Unused`]]
- [[list (`%`)] [`a: A, b: B --> (a % b): vector<A>`
+ [[list (`%`)] [`a: A, b: B --> (a % b): vector<A>`[br]
                              `a: Unused, b: B --> (a % b): Unused`]]
- [[repetition] [`a: A --> repeat(...,...)[a]: vector<A>`
+ [[repetition] [`a: A --> repeat(...,...)[a]: vector<A>`[br]
                              `a: Unused --> repeat(...,...)[a]: Unused`]]
- [[optional (`-`)] [`a: A --> -a: optional<A>`
+ [[optional (`-`)] [`a: A --> -a: optional<A>`[br]
                              `a: Unused --> -a: Unused`]]
     [[and predicate (`&`)] [`a: A --> &a: Unused`]]
     [[not predicate (`!`)] [`a: A --> !a: Unused`]]
@@ -320,25 +320,25 @@
 [heading Non-terminals]
 
 [variablelist Notation
- [[`RT`] Synthesized attribute. The rule or grammar's return type.]]
- [[`Arg1`, `Arg2`, `ArgN`] Inherited attributes. Zero or more or arguments.]]
- [[`L1`, `L2`, `LN`] Zero or more local variables.]]
- [[`r, r2`] Rules]]
- [[`g`] A grammar]]
- [[`p`] A parser expression]]
+ [[`RT`] [Synthesized attribute. The rule or grammar's return type.]]
+ [[`Arg1`, `Arg2`, `ArgN`] [Inherited attributes. Zero or more or arguments.]]
+ [[`L1`, `L2`, `LN`] [Zero or more local variables.]]
+ [[`r, r2`] [Rules]]
+ [[`g`] [A grammar]]
+ [[`p`] [A parser expression]]
 ]
 
 [variablelist Terminology
- [[Signature] `RT(Arg1, Arg2 ... ,ArgN)`. The signature specifies
+ [[Signature] [`RT(Arg1, Arg2 ... ,ArgN)`. The signature specifies
                                 the synthesized (return value) and inherited (arguments)
                                 attributes.]]
- [[Locals] `locals<L1, L2 ..., LN>`. The local variables.]]
- [[Skipper] The skip-parser type]]
+ [[Locals] [`locals<L1, L2 ..., LN>`. The local variables.]]
+ [[Skipper] [The skip-parser type]]
 ]
 
 [variablelist Template Arguments
- [[`Iterator`] The iterator type you will use for parsing.]]
- [[`A1`, `A2`, `A3`] Can be one of 1)Signature 2)Locals 3)Skipper.]]
+ [[`Iterator`] [The iterator type you will use for parsing.]]
+ [[`A1`, `A2`, `A3`] [Can be one of 1)Signature 2)Locals 3)Skipper.]]
 ]
 
 [table

Modified: trunk/libs/spirit/doc/reference/lex/lexer.qbk
==============================================================================
--- trunk/libs/spirit/doc/reference/lex/lexer.qbk (original)
+++ trunk/libs/spirit/doc/reference/lex/lexer.qbk 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -1,5 +1,5 @@
 [/==============================================================================
- Copyright (C) 2001-2008 Joel de Guzman
+ Copyright (C) 2001-2009 Joel de Guzman
     Copyright (C) 2001-2009 Hartmut Kaiser
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
@@ -7,6 +7,7 @@
 ===============================================================================/]
 
 [section Lexer]
+
 [table Regular expressions support
     [[Expression] [Meaning]]
     [[`x`] [Match any character `x`]]
@@ -62,17 +63,20 @@
 
 [note POSIX character classes are not currently supported, due to performance issues
 when creating them in wide character mode.]
-[br][h1 Regular Expression Precedence]
+
+[heading Regular Expression Precedence]
 
 * `rs` has highest precedence
 * `r*` has next highest (`+`, `?`, `{n,m}` have the same precedence as `*`)
 * `r|s` has the lowest precedence
 
-[h1 Macros]
+[heading Macros]
 
 Regular expressions can be given a name and referred to in rules using the
 syntax `{NAME}` where `NAME` is the name you have given to the macro. A macro
 name can be at most 30 characters long and must start with a `_` or a letter.
 Subsequent characters can be `_`, `-`, a letter or a decimal digit.
 Use the `rules::add_macro()` method to define a macro.
+
 [endsect]
+

Modified: trunk/libs/spirit/doc/spirit2.qbk
==============================================================================
--- trunk/libs/spirit/doc/spirit2.qbk (original)
+++ trunk/libs/spirit/doc/spirit2.qbk 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -86,7 +86,7 @@
 [/ References to API descriptions ]
 
 [def __api_tokenize_and_parse__ [link spirit.qi_and_karma.abstracts.parsing_and_generating.the_tokenize_and_phrase_parse___function `tokenize_and_parse()`]]
-[def __api_generate_static__ [link spirit.lex.abstracts.tokenizing_input_data.the_generate_static___function `generate_static()`]]
+[def __api_generate_static__ [link spirit.lex.abstracts.tokenizing_input_data.generate_static_function `generate_static()`]]
 
 
 [/ References to classes ]

Modified: trunk/libs/spirit/doc/what_s_new.qbk
==============================================================================
--- trunk/libs/spirit/doc/what_s_new.qbk (original)
+++ trunk/libs/spirit/doc/what_s_new.qbk 2009-05-18 17:11:36 EDT (Mon, 18 May 2009)
@@ -122,15 +122,15 @@
 * The `lex::lexer<Lexer>` template constructor now takes an optional parameter
   specifying the `match_flags` to be used for table generation. Currently, there
   are the following flags available:
-
+'''
         match_flags::match_default, // no flags
         match_flags::match_not_dot_newline, // the regex '.' doesn't match newlines
         match_flags::match_icase // all matching operations are case insensitive
-
+'''
   If no parameter is passed to the constructor, `match_flags::match_default` is
- used, i.e. the '.' matches newlines and matching is case sensitive.
+ used, i.e. the `.` matches newlines and matching is case sensitive.
 * Now the `char_()` and `string()` placeholders can be used for token
- definitions as a replacement for `token_def<>(...)`, although it is still
+ definitions as a replacement for `token_def`, although it is still
   possible to use the latter one.
 
 [endsect]


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