Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r56969 - in branches/release/libs/spirit/doc: . html html/spirit html/spirit/abstracts html/spirit/abstracts/attributes html/spirit/advanced html/spirit/advanced/customize html/spirit/advanced/customize/assign_to html/spirit/advanced/customize/iterate html/spirit/advanced/customize/store_value html/spirit/advanced/indepth html/spirit/karma/performance_measurements/numeric_performance html/spirit/karma/quick_reference html/spirit/karma/quick_reference/primitive_generators html/spirit/karma/reference html/spirit/karma/reference/auxiliary html/spirit/karma/reference/binary html/spirit/karma/reference/char html/spirit/karma/reference/directive html/spirit/karma/reference/generator_concepts html/spirit/karma/reference/numeric html/spirit/karma/reference/operator html/spirit/karma/reference/stream html/spirit/karma/reference/string html/spirit/karma/tutorials html/spirit/lex html/spirit/lex/abstracts html/spirit/lex/abstracts/lexer_primitives html/spirit/lex/quick_reference html/spirit/lex/reference html/spirit/lex/reference/lexer_concepts html/spirit/lex/reference/primitives html/spirit/lex/tutorials html/spirit/notes html/spirit/qi/quick_reference html/spirit/qi/reference html/spirit/qi/reference/auxiliary html/spirit/qi/reference/binary html/spirit/qi/reference/char html/spirit/qi/reference/directive html/spirit/qi/reference/numeric html/spirit/qi/reference/operator html/spirit/qi/reference/parser_concepts html/spirit/qi/reference/string html/spirit/qi/tutorials html/spirit/support
From: hartmut.kaiser_at_[hidden]
Date: 2009-10-17 15:32:16


Author: hkaiser
Date: 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
New Revision: 56969
URL: http://svn.boost.org/trac/boost/changeset/56969

Log:
Spirit: merging docs from trunk
Added:
   branches/release/libs/spirit/doc/html/spirit/advanced.html (contents, props changed)
   branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate.html (contents, props changed)
Text files modified:
   branches/release/libs/spirit/doc/html/index.html | 46 +-
   branches/release/libs/spirit/doc/html/spirit/abstracts.html | 11
   branches/release/libs/spirit/doc/html/spirit/abstracts/attributes/compound_attributes.html | 57 +--
   branches/release/libs/spirit/doc/html/spirit/abstracts/attributes/more_sompound_attributes.html | 16
   branches/release/libs/spirit/doc/html/spirit/abstracts/attributes/nonterminal_attributes.html | 12
   branches/release/libs/spirit/doc/html/spirit/abstracts/parsing_expression_grammar.html | 16
   branches/release/libs/spirit/doc/html/spirit/abstracts/syntax_diagram.html | 18
   branches/release/libs/spirit/doc/html/spirit/acknowledgments.html | 2
   branches/release/libs/spirit/doc/html/spirit/advanced/customize.html | 64 +--
   branches/release/libs/spirit/doc/html/spirit/advanced/customize/assign_to.html | 30 -
   branches/release/libs/spirit/doc/html/spirit/advanced/customize/assign_to/assign_to_attribute_from_iterators.html | 279 ++++++++++-------
   branches/release/libs/spirit/doc/html/spirit/advanced/customize/assign_to/assign_to_attribute_from_value.html | 275 ++++++++++-------
   branches/release/libs/spirit/doc/html/spirit/advanced/customize/clear_value.html | 360 +++++++++++++----------
   branches/release/libs/spirit/doc/html/spirit/advanced/customize/extract_from.html | 350 ++++++++++++----------
   branches/release/libs/spirit/doc/html/spirit/advanced/customize/is_container.html | 616 ++++++++++++++++++++++-----------------
   branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/begin_container.html | 35 +
   branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/compare_iterators.html | 236 ++++++++++++++
   branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/container_iterator.html | 181 ++++++++++
   branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/deref_iterator.html | 428 +++++++++++++++++++++++++++
   branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/end_container.html | 35 +
   branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/next_iterator.html | 442 ++++++++++++++++++++++++++++
   branches/release/libs/spirit/doc/html/spirit/advanced/customize/store_value.html | 37 -
   branches/release/libs/spirit/doc/html/spirit/advanced/customize/store_value/container_value.html | 366 +++++++++++++----------
   branches/release/libs/spirit/doc/html/spirit/advanced/customize/store_value/push_back.html | 405 ++++++++++++++-----------
   branches/release/libs/spirit/doc/html/spirit/advanced/customize/transform.html | 534 +++++++++++++++++++++++++---------
   branches/release/libs/spirit/doc/html/spirit/advanced/indepth.html | 20
   branches/release/libs/spirit/doc/html/spirit/advanced/indepth/parsers_indepth.html | 218 ++++++-------
   branches/release/libs/spirit/doc/html/spirit/faq.html | 8
   branches/release/libs/spirit/doc/html/spirit/introduction.html | 12
   branches/release/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/double_performance.html | 2
   branches/release/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/format_performance.html | 2
   branches/release/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/int_performance.html | 2
   branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/compound_attribute_rules.html | 4
   branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/phoenix.html | 4
   branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/auxiliary.html | 8
   branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/semantic_actions.html | 2
   branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary.html | 2
   branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/attr_cast.html | 219 ++++++++++++-
   branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eol.html | 18
   branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eps.html | 28
   branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/lazy.html | 20
   branches/release/libs/spirit/doc/html/spirit/karma/reference/binary.html | 2
   branches/release/libs/spirit/doc/html/spirit/karma/reference/binary/binary_big.html | 28
   branches/release/libs/spirit/doc/html/spirit/karma/reference/binary/binary_little.html | 28
   branches/release/libs/spirit/doc/html/spirit/karma/reference/binary/binary_native.html | 36 +-
   branches/release/libs/spirit/doc/html/spirit/karma/reference/char.html | 2
   branches/release/libs/spirit/doc/html/spirit/karma/reference/char/char_class.html | 79 ++--
   branches/release/libs/spirit/doc/html/spirit/karma/reference/char/char_generator.html | 40 +-
   branches/release/libs/spirit/doc/html/spirit/karma/reference/directive.html | 2
   branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/alignment.html | 46 +-
   branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/buffer.html | 16
   branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/delimit.html | 23
   branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/maxwidth.html | 18
   branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/omit.html | 14
   branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/repeat.html | 24
   branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/upperlower.html | 20
   branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/binarygenerator.html | 12
   branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/generator.html | 10
   branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/narygenerator.html | 12
   branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/primitivegenerator.html | 10
   branches/release/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/unarygenerator.html | 12
   branches/release/libs/spirit/doc/html/spirit/karma/reference/karma_basics.html | 18
   branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric.html | 2
   branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric/boolean.html | 97 ++++-
   branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric/real_number.html | 33 +-
   branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric/signed_int.html | 36 +-
   branches/release/libs/spirit/doc/html/spirit/karma/reference/numeric/unsigned_int.html | 38 +-
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator.html | 13
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/alternative.html | 14
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/and_predicate.html | 16
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/kleene.html | 18
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/list.html | 18
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/not_predicate.html | 16
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/optional.html | 16
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/plus.html | 18
   branches/release/libs/spirit/doc/html/spirit/karma/reference/operator/sequence.html | 14
   branches/release/libs/spirit/doc/html/spirit/karma/reference/stream.html | 2
   branches/release/libs/spirit/doc/html/spirit/karma/reference/stream/stream.html | 34 +-
   branches/release/libs/spirit/doc/html/spirit/karma/reference/string.html | 2
   branches/release/libs/spirit/doc/html/spirit/karma/reference/string/string.html | 24
   branches/release/libs/spirit/doc/html/spirit/karma/tutorials/karma_easier_complex.html | 8
   branches/release/libs/spirit/doc/html/spirit/karma/tutorials/num_list.html | 4
   branches/release/libs/spirit/doc/html/spirit/karma/tutorials/quick_start.html | 2
   branches/release/libs/spirit/doc/html/spirit/karma/tutorials/semantic_actions.html | 2
   branches/release/libs/spirit/doc/html/spirit/karma/tutorials/warming_up.html | 10
   branches/release/libs/spirit/doc/html/spirit/lex.html | 7
   branches/release/libs/spirit/doc/html/spirit/lex/abstracts.html | 4
   branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives.html | 16
   branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives/lexer_token_values.html | 58 +-
   branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_semantic_actions.html | 10
   branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_static_model.html | 27
   branches/release/libs/spirit/doc/html/spirit/lex/abstracts/lexer_tokenizing.html | 10
   branches/release/libs/spirit/doc/html/spirit/lex/lexer_introduction.html | 6
   branches/release/libs/spirit/doc/html/spirit/lex/quick_reference.html | 6
   branches/release/libs/spirit/doc/html/spirit/lex/quick_reference/semantic_actions.html | 2
   branches/release/libs/spirit/doc/html/spirit/lex/reference.html | 3
   branches/release/libs/spirit/doc/html/spirit/lex/reference/lex_basics.html | 65 ----
   branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/lexer.html | 10
   branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/narylexer.html | 12
   branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/primitivelexer.html | 8
   branches/release/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/unarylexer.html | 12
   branches/release/libs/spirit/doc/html/spirit/lex/reference/primitives.html | 4
   branches/release/libs/spirit/doc/html/spirit/lex/reference/primitives/char_tokendef.html | 64 +--
   branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart1.html | 10
   branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart2.html | 8
   branches/release/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart3.html | 13
   branches/release/libs/spirit/doc/html/spirit/notes/porting_from_spirit_1_8_x.html | 10
   branches/release/libs/spirit/doc/html/spirit/preface.html | 28
   branches/release/libs/spirit/doc/html/spirit/qi.html | 6
   branches/release/libs/spirit/doc/html/spirit/qi/quick_reference/compound_attribute_rules.html | 4
   branches/release/libs/spirit/doc/html/spirit/qi/quick_reference/phoenix.html | 4
   branches/release/libs/spirit/doc/html/spirit/qi/quick_reference/semantic_actions.html | 2
   branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary.html | 2
   branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/attr.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eoi.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eol.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eps.html | 20
   branches/release/libs/spirit/doc/html/spirit/qi/reference/auxiliary/lazy.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/basics.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/binary.html | 2
   branches/release/libs/spirit/doc/html/spirit/qi/reference/binary/binary_big.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/binary/binary_little.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/binary/binary_native.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/char.html | 2
   branches/release/libs/spirit/doc/html/spirit/qi/reference/char/char.html | 26
   branches/release/libs/spirit/doc/html/spirit/qi/reference/char/char_class.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/directive.html | 5
   branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/lexeme.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/no_case.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/omit.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/raw.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/repeat.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/directive/skip.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/numeric.html | 2
   branches/release/libs/spirit/doc/html/spirit/qi/reference/numeric/boolean.html | 84 ++++-
   branches/release/libs/spirit/doc/html/spirit/qi/reference/numeric/int.html | 22
   branches/release/libs/spirit/doc/html/spirit/qi/reference/numeric/real.html | 30
   branches/release/libs/spirit/doc/html/spirit/qi/reference/numeric/uint.html | 22
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator.html | 2
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/alternative.html | 14
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/and_predicate.html | 14
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/difference.html | 18
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/expect.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/kleene.html | 14
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/list.html | 14
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/not_predicate.html | 14
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/optional.html | 18
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/permutation.html | 14
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/plus.html | 14
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/sequence.html | 14
   branches/release/libs/spirit/doc/html/spirit/qi/reference/operator/sequential_or.html | 14
   branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/binaryparser.html | 12
   branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/naryparser.html | 12
   branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/parser.html | 10
   branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/primitiveparser.html | 10
   branches/release/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/unaryparser.html | 12
   branches/release/libs/spirit/doc/html/spirit/qi/reference/string.html | 2
   branches/release/libs/spirit/doc/html/spirit/qi/reference/string/string.html | 16
   branches/release/libs/spirit/doc/html/spirit/qi/reference/string/symbols.html | 20
   branches/release/libs/spirit/doc/html/spirit/qi/tutorials/employee___parsing_into_structs.html | 14
   branches/release/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___asts_.html | 22
   branches/release/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___error_handling.html | 6
   branches/release/libs/spirit/doc/html/spirit/qi/tutorials/quick_start.html | 2
   branches/release/libs/spirit/doc/html/spirit/qi/tutorials/roman_numerals.html | 8
   branches/release/libs/spirit/doc/html/spirit/qi/tutorials/semantic_actions.html | 2
   branches/release/libs/spirit/doc/html/spirit/qi/tutorials/warming_up.html | 10
   branches/release/libs/spirit/doc/html/spirit/support.html | 6
   branches/release/libs/spirit/doc/html/spirit/support/multi_pass.html | 28
   branches/release/libs/spirit/doc/html/spirit/what_s_new.html | 8
   branches/release/libs/spirit/doc/spirit2.qbk | 2
   170 files changed, 4730 insertions(+), 2827 deletions(-)

Modified: branches/release/libs/spirit/doc/html/index.html
==============================================================================
--- branches/release/libs/spirit/doc/html/index.html (original)
+++ branches/release/libs/spirit/doc/html/index.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -34,7 +34,7 @@
 <div><p class="copyright">Copyright © 2001-2009 Joel
       de Guzman, Hartmut Kaiser</p></div>
 <div><div class="legalnotice" title="Legal Notice">
-<a name="id558455"></a><p>
+<a name="id525687"></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>
@@ -66,17 +66,6 @@
 <dt><span class="section"><a href="spirit/abstracts/attributes/nonterminal_attributes.html">
         Attributes of Rules and Grammars</a></span></dt>
 </dl></dd>
-<dt><span class="section"> In Depth</span></dt>
-<dd><dl><dt><span class="section"><a href="spirit/abstracts/indepth/parsers_indepth.html"> Parsers
- in Depth</a></span></dt></dl></dd>
-<dt><span class="section"><a href="spirit/abstracts/customize.html"> Customization of Spirits
- Attribute Handling</a></span></dt>
-<dd><dl>
-<dt><span class="section"><a href="spirit/abstracts/customize/is_container.html"> Determine
- if a Type Should be Treated as a Container (Qi and Karma)</a></span></dt>
-<dt><span class="section"><a href="spirit/abstracts/customize/store_value.html"> Store Parsed
- Attribute Values into a Container (Qi)</a></span></dt>
-</dl></dd>
 </dl></dd>
 <dt><span class="section"> Qi - Writing Parsers</span></dt>
 <dd><dl>
@@ -197,10 +186,6 @@
         Semantic Actions</a></span></dt>
 <dt><span class="section"><a href="spirit/lex/abstracts/lexer_static_model.html"> The <span class="emphasis"><em>Static</em></span>
         Lexer Model</a></span></dt>
-<dt><span class="section"><a href="spirit/lex/abstracts/lexer_parsing.html"> Parsing using
- a Lexer</a></span></dt>
-<dt><span class="section"> Lexer Attributes</span></dt>
-<dt><span class="section"> Lexer States</span></dt>
 </dl></dd>
 <dt><span class="section"> Quick Reference</span></dt>
 <dd><dl>
@@ -218,9 +203,30 @@
 <dt><span class="section"> Basics</span></dt>
 <dt><span class="section"><a href="spirit/lex/reference/primitives.html"> Token definition
         Primitives</a></span></dt>
-<dt><span class="section"> Lexer Class</span></dt>
-<dt><span class="section"> Token Class</span></dt>
-<dt><span class="section"> TokenDef Class</span></dt>
+</dl></dd>
+</dl></dd>
+<dt><span class="section">Advanced</span></dt>
+<dd><dl>
+<dt><span class="section"> In Depth</span></dt>
+<dd><dl><dt><span class="section"><a href="spirit/advanced/indepth/parsers_indepth.html"> Parsers in
+ Depth</a></span></dt></dl></dd>
+<dt><span class="section"><a href="spirit/advanced/customize.html"> Customization of Spirit's
+ Attribute Handling</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="spirit/advanced/customize/is_container.html"> Determine
+ if a Type Should be Treated as a Container (Qi and Karma)</a></span></dt>
+<dt><span class="section"><a href="spirit/advanced/customize/transform.html"> Transform an
+ Attribute to a Different Type (Qi and Karma)</a></span></dt>
+<dt><span class="section"><a href="spirit/advanced/customize/assign_to.html"> Store a Parsed
+ Attribute Value (Qi)</a></span></dt>
+<dt><span class="section"><a href="spirit/advanced/customize/store_value.html"> Store Parsed
+ Attribute Values into a Container (Qi)</a></span></dt>
+<dt><span class="section"><a href="spirit/advanced/customize/clear_value.html"> Re-Initialize
+ an Attribute Value before Parsing (Qi)</a></span></dt>
+<dt><span class="section"><a href="spirit/advanced/customize/extract_from.html"> Extract an
+ Attribute Value to Generate Output (Karma)</a></span></dt>
+<dt><span class="section"><a href="spirit/advanced/customize/iterate.html"> Extract Attribute
+ Values to Generate Output from a Container (Karma)</a></span></dt>
 </dl></dd>
 </dl></dd>
 <dt><span class="section"> Supporting libraries</span></dt>
@@ -244,7 +250,7 @@
   </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: October 06, 2009 at 18:11:16 GMT</small></p></td>
+<td align="left"><p><small>Last revised: October 17, 2009 at 19:27:27 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>

Modified: branches/release/libs/spirit/doc/html/spirit/abstracts.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/abstracts.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/abstracts.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -41,17 +41,6 @@
 <dt><span class="section"><a href="abstracts/attributes/nonterminal_attributes.html">
         Attributes of Rules and Grammars</a></span></dt>
 </dl></dd>
-<dt><span class="section"> In Depth</span></dt>
-<dd><dl><dt><span class="section"><a href="abstracts/indepth/parsers_indepth.html"> Parsers
- in Depth</a></span></dt></dl></dd>
-<dt><span class="section"><a href="abstracts/customize.html"> Customization of Spirits
- Attribute Handling</a></span></dt>
-<dd><dl>
-<dt><span class="section"><a href="abstracts/customize/is_container.html"> Determine
- if a Type Should be Treated as a Container (Qi and Karma)</a></span></dt>
-<dt><span class="section"><a href="abstracts/customize/store_value.html"> Store Parsed
- Attribute Values into a Container (Qi)</a></span></dt>
-</dl></dd>
 </dl></div>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>

Modified: branches/release/libs/spirit/doc/html/spirit/abstracts/attributes/compound_attributes.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/abstracts/attributes/compound_attributes.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/abstracts/attributes/compound_attributes.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -29,15 +29,12 @@
 </h4></div></div></div>
 <p>
           <span class="emphasis"><em>Spirit.Qi</em></span> and <span class="emphasis"><em>Spirit.Karma</em></span> implement
- well defined attribute type propagation rules for all compound generators,
- such as sequences, alternatives, Kleene star, etc. The main attribute propagation
- rule for a sequences are for instance:
+ well defined attribute type propagation rules for all compound parsers
+ and generators, such as sequences, alternatives, Kleene star, etc. The
+ main attribute propagation rule for a sequences are for instance:
         </p>
 <div class="informaltable"><table class="table">
-<colgroup>
-<col>
-<col>
-</colgroup>
+<colgroup><col></colgroup>
 <thead><tr>
 <th>
                 <p>
@@ -51,13 +48,7 @@
                 </th>
 </tr></thead>
 <tbody>
-<tr>
-<td>
- <p>
- Qi
- </p>
- </td>
-<td>
+<tr><td>
                 <p>
                   <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
                   <span class="identifier">A</span><span class="special">,</span>
@@ -66,15 +57,8 @@
                   <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>
                 </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- Karma
- </p>
- </td>
-<td>
+ </td></tr>
+<tr><td>
                 <p>
                   <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
                   <span class="identifier">A</span><span class="special">,</span>
@@ -83,8 +67,7 @@
                   <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>
                 </p>
- </td>
-</tr>
+ </td></tr>
 </tbody>
 </table></div>
 <p>
@@ -136,7 +119,7 @@
           Compound Attribute Rules</a>.
         </p>
 <a name="spirit.abstracts.attributes.compound_attributes.the_attribute_of_sequence_parsers_and_generators"></a><h6>
-<a name="id570311"></a>
+<a name="id537531"></a>
           <a class="link" href="compound_attributes.html#spirit.abstracts.attributes.compound_attributes.the_attribute_of_sequence_parsers_and_generators">The
           Attribute of Sequence Parsers and Generators</a>
         </h6>
@@ -204,10 +187,10 @@
 <pre class="programlisting"><span class="comment">// the following parses "1.0 2.0" into a pair of double
 </span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">input</span><span class="special">(</span><span class="string">"1.0 2.0"</span><span class="special">);</span>
 <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="identifier">p</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">input</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">input</span><span class="special">,</span> <span class="identifier">end</span><span class="special">(),</span>
- <span class="identifier">double_</span> <span class="special">&gt;&gt;</span> <span class="identifier">double_</span><span class="special">,</span> <span class="comment">// parser grammar
-</span> <span class="identifier">ascii</span><span class="special">::</span><span class="identifier">space</span><span class="special">,</span> <span class="comment">// delimiter grammar
-</span> <span class="identifier">p</span><span class="special">);</span> <span class="comment">// attribute to fill while parsing
+<span class="identifier">qi</span><span class="special">::</span><span class="identifier">phrase_parse</span><span class="special">(</span><span class="identifier">input</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">input</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span>
+ <span class="identifier">qi</span><span class="special">::</span><span class="identifier">double_</span> <span class="special">&gt;&gt;</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">double_</span><span class="special">,</span> <span class="comment">// parser grammar
+</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">space</span><span class="special">,</span> <span class="comment">// delimiter grammar
+</span> <span class="identifier">p</span><span class="special">);</span> <span class="comment">// attribute to fill while parsing
 </span></pre>
 <p>
           and generate output for it:
@@ -215,10 +198,10 @@
 <pre class="programlisting"><span class="comment">// the following generates: "1.0 2.0" from the pair filled above
 </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">std</span><span class="special">::</span><span class="identifier">back_insert_iterator</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">out</span><span class="special">(</span><span class="identifier">str</span><span class="special">);</span>
-<span class="identifier">karma</span><span class="special">::</span><span class="identifier">generate</span><span class="special">(</span><span class="identifier">out</span><span class="special">,</span>
- <span class="identifier">double_</span> <span class="special">&lt;&lt;</span> <span class="identifier">double_</span><span class="special">,</span> <span class="comment">// generator grammar (format description)
-</span> <span class="identifier">ascii</span><span class="special">::</span><span class="identifier">space</span><span class="special">,</span> <span class="comment">// delimiter grammar
-</span> <span class="identifier">p</span><span class="special">);</span> <span class="comment">// data to use as the attribute
+<span class="identifier">karma</span><span class="special">::</span><span class="identifier">generate_delimited</span><span class="special">(</span><span class="identifier">out</span><span class="special">,</span>
+ <span class="identifier">karma</span><span class="special">::</span><span class="identifier">double_</span> <span class="special">&lt;&lt;</span> <span class="identifier">karma</span><span class="special">::</span><span class="identifier">double_</span><span class="special">,</span> <span class="comment">// generator grammar (format description)
+</span> <span class="identifier">karma</span><span class="special">::</span><span class="identifier">space</span><span class="special">,</span> <span class="comment">// delimiter grammar
+</span> <span class="identifier">p</span><span class="special">);</span> <span class="comment">// data to use as the attribute
 </span></pre>
 <p>
           (where the <code class="computeroutput"><span class="identifier">ascii</span><span class="special">::</span><span class="identifier">space</span></code> generator is used as the delimiter,
@@ -241,8 +224,8 @@
             the expression above could be rewritten as:
 </p>
 <pre class="programlisting"><span class="keyword">double</span> <span class="identifier">d1</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="identifier">d2</span> <span class="special">=</span> <span class="number">0.0</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">begin</span><span class="special">,</span> <span class="identifier">end</span><span class="special">,</span> <span class="identifier">double_</span> <span class="special">&gt;&gt;</span> <span class="identifier">double_</span><span class="special">,</span> <span class="identifier">space</span><span class="special">,</span> <span class="identifier">d1</span><span class="special">,</span> <span class="identifier">d2</span><span class="special">);</span>
-<span class="identifier">karma</span><span class="special">::</span><span class="identifier">generate</span><span class="special">(</span><span class="identifier">out</span><span class="special">,</span> <span class="identifier">double_</span> <span class="special">&lt;&lt;</span> <span class="identifier">double_</span><span class="special">,</span> <span class="identifier">space</span><span class="special">,</span> <span class="identifier">d1</span><span class="special">,</span> <span class="identifier">d2</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">begin</span><span class="special">,</span> <span class="identifier">end</span><span class="special">,</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">double_</span> <span class="special">&gt;&gt;</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">double_</span><span class="special">,</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">space</span><span class="special">,</span> <span class="identifier">d1</span><span class="special">,</span> <span class="identifier">d2</span><span class="special">);</span>
+<span class="identifier">karma</span><span class="special">::</span><span class="identifier">generate_delimited</span><span class="special">(</span><span class="identifier">out</span><span class="special">,</span> <span class="identifier">karma</span><span class="special">::</span><span class="identifier">double_</span> <span class="special">&lt;&lt;</span> <span class="identifier">karma</span><span class="special">::</span><span class="identifier">double_</span><span class="special">,</span> <span class="identifier">karma</span><span class="special">::</span><span class="identifier">space</span><span class="special">,</span> <span class="identifier">d1</span><span class="special">,</span> <span class="identifier">d2</span><span class="special">);</span>
 </pre>
 <p>
             where the first attribute is used for the first <code class="computeroutput"><span class="identifier">double_</span></code>,
@@ -251,7 +234,7 @@
 </td></tr>
 </table></div>
 <a name="spirit.abstracts.attributes.compound_attributes.the_attribute_of_alternative_parsers_and_generators"></a><h6>
-<a name="id571093"></a>
+<a name="id538384"></a>
           <a class="link" href="compound_attributes.html#spirit.abstracts.attributes.compound_attributes.the_attribute_of_alternative_parsers_and_generators">The
           Attribute of Alternative Parsers and Generators</a>
         </h6>

Modified: branches/release/libs/spirit/doc/html/spirit/abstracts/attributes/more_sompound_attributes.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/abstracts/attributes/more_sompound_attributes.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/abstracts/attributes/more_sompound_attributes.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -62,9 +62,9 @@
                 </td>
 <td>
                 <p>
- <code class="computeroutput"><span class="char">'('</span> <span class="special">&lt;&lt;</span>
+ <code class="computeroutput"><span class="char">'('</span> <span class="special">&gt;&gt;</span>
                   <span class="identifier">double_</span> <span class="special">&gt;&gt;</span>
- <span class="string">", "</span> <span class="special">&lt;&lt;</span>
+ <span class="string">", "</span> <span class="special">&gt;&gt;</span>
                   <span class="identifier">double_</span> <span class="special">&gt;&gt;</span>
                   <span class="char">')'</span></code>
                 </p>
@@ -101,9 +101,9 @@
 <pre class="programlisting"><span class="comment">// the following parses "1.0 2.0" into a pair of double
 </span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">input</span><span class="special">(</span><span class="string">"(1.0, 2.0)"</span><span class="special">);</span>
 <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span> <span class="identifier">p</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">input</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">input</span><span class="special">,</span> <span class="identifier">end</span><span class="special">(),</span>
- <span class="char">'('</span> <span class="special">&gt;&gt;</span> <span class="identifier">double_</span> <span class="special">&gt;&gt;</span> <span class="string">", "</span> <span class="special">&gt;&gt;</span> <span class="identifier">double_</span> <span class="special">&lt;&lt;</span> <span class="char">')'</span><span class="special">,</span> <span class="comment">// parser grammar
-</span> <span class="identifier">p</span><span class="special">);</span> <span class="comment">// attribute to fill while parsing
+<span class="identifier">qi</span><span class="special">::</span><span class="identifier">parse</span><span class="special">(</span><span class="identifier">input</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">input</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span>
+ <span class="char">'('</span> <span class="special">&gt;&gt;</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">double_</span> <span class="special">&gt;&gt;</span> <span class="string">", "</span> <span class="special">&gt;&gt;</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">double_</span> <span class="special">&gt;&gt;</span> <span class="char">')'</span><span class="special">,</span> <span class="comment">// parser grammar
+</span> <span class="identifier">p</span><span class="special">);</span> <span class="comment">// attribute to fill while parsing
 </span></pre>
 <p>
           and here is the equivalent <span class="emphasis"><em>Spirit.Karma</em></span> code snippet:
@@ -112,7 +112,7 @@
 </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">std</span><span class="special">::</span><span class="identifier">back_insert_iterator</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">out</span><span class="special">(</span><span class="identifier">str</span><span class="special">);</span>
 <span class="identifier">generate</span><span class="special">(</span><span class="identifier">out</span><span class="special">,</span>
- <span class="char">'('</span> <span class="special">&lt;&lt;</span> <span class="identifier">double_</span> <span class="special">&lt;&lt;</span> <span class="string">", "</span> <span class="special">&lt;&lt;</span> <span class="identifier">double_</span> <span class="special">&lt;&lt;</span> <span class="char">')'</span><span class="special">,</span> <span class="comment">// generator grammar (format description)
+ <span class="char">'('</span> <span class="special">&lt;&lt;</span> <span class="identifier">karma</span><span class="special">::</span><span class="identifier">double_</span> <span class="special">&lt;&lt;</span> <span class="string">", "</span> <span class="special">&lt;&lt;</span> <span class="identifier">karma</span><span class="special">::</span><span class="identifier">double_</span> <span class="special">&lt;&lt;</span> <span class="char">')'</span><span class="special">,</span> <span class="comment">// generator grammar (format description)
 </span> <span class="identifier">p</span><span class="special">);</span> <span class="comment">// data to use as the attribute
 </span></pre>
 <p>
@@ -141,8 +141,8 @@
             using <span class="emphasis"><em>Spirit's</em></span> multi-attribute API function:
 </p>
 <pre class="programlisting"><span class="keyword">double</span> <span class="identifier">d1</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="identifier">d2</span> <span class="special">=</span> <span class="number">0.0</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">begin</span><span class="special">,</span> <span class="identifier">end</span><span class="special">,</span> <span class="char">'('</span> <span class="special">&gt;&gt;</span> <span class="identifier">double_</span> <span class="special">&gt;&gt;</span> <span class="string">", "</span> <span class="special">&gt;&gt;</span> <span class="identifier">double_</span> <span class="special">&lt;&lt;</span> <span class="char">')'</span><span class="special">,</span> <span class="identifier">d1</span><span class="special">,</span> <span class="identifier">d2</span><span class="special">);</span>
-<span class="identifier">karma</span><span class="special">::</span><span class="identifier">generate</span><span class="special">(</span><span class="identifier">out</span><span class="special">,</span> <span class="char">'('</span> <span class="special">&lt;&lt;</span> <span class="identifier">double_</span> <span class="special">&lt;&lt;</span> <span class="string">", "</span> <span class="special">&lt;&lt;</span> <span class="identifier">double_</span> <span class="special">&lt;&lt;</span> <span class="char">')'</span><span class="special">,</span> <span class="identifier">d1</span><span class="special">,</span> <span class="identifier">d2</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">begin</span><span class="special">,</span> <span class="identifier">end</span><span class="special">,</span> <span class="char">'('</span> <span class="special">&gt;&gt;</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">double_</span> <span class="special">&gt;&gt;</span> <span class="string">", "</span> <span class="special">&gt;&gt;</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">double_</span> <span class="special">&lt;&lt;</span> <span class="char">')'</span><span class="special">,</span> <span class="identifier">d1</span><span class="special">,</span> <span class="identifier">d2</span><span class="special">);</span>
+<span class="identifier">karma</span><span class="special">::</span><span class="identifier">generate</span><span class="special">(</span><span class="identifier">out</span><span class="special">,</span> <span class="char">'('</span> <span class="special">&lt;&lt;</span> <span class="identifier">karma</span><span class="special">::</span><span class="identifier">double_</span> <span class="special">&lt;&lt;</span> <span class="string">", "</span> <span class="special">&lt;&lt;</span> <span class="identifier">karma</span><span class="special">::</span><span class="identifier">double_</span> <span class="special">&lt;&lt;</span> <span class="char">')'</span><span class="special">,</span> <span class="identifier">d1</span><span class="special">,</span> <span class="identifier">d2</span><span class="special">);</span>
 </pre>
 <p>
             which provides a clear and comfortable syntax, more similar to the placeholder

Modified: branches/release/libs/spirit/doc/html/spirit/abstracts/attributes/nonterminal_attributes.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/abstracts/attributes/nonterminal_attributes.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/abstracts/attributes/nonterminal_attributes.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -7,7 +7,7 @@
 <link rel="home" href="../../../index.html" title="Spirit 2.1">
 <link rel="up" href="../attributes.html" title="Attributes">
 <link rel="prev" href="more_sompound_attributes.html" title="More About Attributes of Compound Components">
-<link rel="next" href="../indepth.html" title="In Depth">
+<link rel="next" href="../../qi.html" title="Qi - Writing Parsers">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -20,7 +20,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="more_sompound_attributes.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../attributes.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="../indepth.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="more_sompound_attributes.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../attributes.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.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 <div class="section" title="Attributes of Rules and Grammars">
 <div class="titlepage"><div><div><h4 class="title">
@@ -80,12 +80,6 @@
           during its invocation. Inherited attributes can be used to parametrize
           the parser or generator depending on the context they are invoked from.
         </p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
- attribute propagation
- <div class="itemizedlist"><ul class="itemizedlist" type="circle"><li class="listitem">
- explicit and operator%=
- </li></ul></div>
-</li></ul></div>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
@@ -98,7 +92,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="more_sompound_attributes.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../attributes.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="../indepth.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="more_sompound_attributes.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../attributes.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.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: branches/release/libs/spirit/doc/html/spirit/abstracts/parsing_expression_grammar.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/abstracts/parsing_expression_grammar.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/abstracts/parsing_expression_grammar.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -29,9 +29,9 @@
 </h3></div></div></div>
 <p>
         Parsing Expression Grammars (PEG)
- <sup>[<a name="id568806" href="#ftn.id568806" class="footnote">5</a>]</sup>
+ <sup>[<a name="id536038" href="#ftn.id536038" class="footnote">5</a>]</sup>
         are a derivative of Extended Backus-Naur Form (EBNF)
- <sup>[<a name="id568818" href="#ftn.id568818" class="footnote">6</a>]</sup>
+ <sup>[<a name="id536050" href="#ftn.id536050" class="footnote">6</a>]</sup>
         with a different interpretation, designed to represent a recursive descent
         parser. A PEG can be directly represented as a recursive-descent parser.
       </p>
@@ -42,7 +42,7 @@
         Abstract Syntax Tree) for each PEG grammar.
       </p>
 <a name="spirit.abstracts.parsing_expression_grammar.sequences"></a><h5>
-<a name="id568838"></a>
+<a name="id536070"></a>
         <a class="link" href="parsing_expression_grammar.html#spirit.abstracts.parsing_expression_grammar.sequences">Sequences</a>
       </h5>
 <p>
@@ -84,7 +84,7 @@
         </p></td></tr>
 </table></div>
 <a name="spirit.abstracts.parsing_expression_grammar.alternatives"></a><h5>
-<a name="id568970"></a>
+<a name="id536202"></a>
         <a class="link" href="parsing_expression_grammar.html#spirit.abstracts.parsing_expression_grammar.alternatives">Alternatives</a>
       </h5>
 <p>
@@ -128,7 +128,7 @@
         about this $$$).
       </p>
 <a name="spirit.abstracts.parsing_expression_grammar.loops"></a><h5>
-<a name="id569117"></a>
+<a name="id536349"></a>
         <a class="link" href="parsing_expression_grammar.html#spirit.abstracts.parsing_expression_grammar.loops">Loops</a>
       </h5>
 <p>
@@ -191,7 +191,7 @@
         We will see more of these other mechanisms shortly.
       </p>
 <a name="spirit.abstracts.parsing_expression_grammar.difference"></a><h5>
-<a name="id569265"></a>
+<a name="id536497"></a>
         <a class="link" href="parsing_expression_grammar.html#spirit.abstracts.parsing_expression_grammar.difference">Difference</a>
       </h5>
 <p>
@@ -217,11 +217,11 @@
 </table></div>
 <div class="footnotes">
 <br><hr width="100" align="left">
-<div class="footnote"><p><sup>[<a name="ftn.id568806" href="#id568806" class="para">5</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id536038" href="#id536038" class="para">5</a>] </sup>
             Bryan Ford: Parsing Expression Grammars: A Recognition-Based Syntactic
             Foundation, http://pdos.csail.mit.edu/~baford/packrat/popl04/
           </p></div>
-<div class="footnote"><p><sup>[<a name="ftn.id568818" href="#id568818" class="para">6</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id536050" href="#id536050" class="para">6</a>] </sup>
             Richard E. Pattis: EBNF: A Notation to Describe Syntax, http://www.cs.cmu.edu/~pattis/misc/ebnf.pdf
           </p></div>
 </div>

Modified: branches/release/libs/spirit/doc/html/spirit/abstracts/syntax_diagram.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/abstracts/syntax_diagram.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/abstracts/syntax_diagram.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -28,13 +28,13 @@
 </h3></div></div></div>
 <p>
         In the next section, we will deal with Parsing Expression Grammars (PEG)
- <sup>[<a name="id568363" href="#ftn.id568363" class="footnote">2</a>]</sup>
+ <sup>[<a name="id535595" href="#ftn.id535595" class="footnote">2</a>]</sup>
         , a variant of Extended Backus-Naur Form (EBNF)
- <sup>[<a name="id568375" href="#ftn.id568375" class="footnote">3</a>]</sup>
+ <sup>[<a name="id535607" href="#ftn.id535607" class="footnote">3</a>]</sup>
         with a different interpretation. It is easier to understand PEG using Syntax
         Diagrams. Syntax diagrams represent a grammar graphically. It was used extensibly
         by Niklaus Wirth
- <sup>[<a name="id568387" href="#ftn.id568387" class="footnote">4</a>]</sup>
+ <sup>[<a name="id535619" href="#ftn.id535619" class="footnote">4</a>]</sup>
         in the "Pascal User Manual". Syntax Diagrams are easily understandable
         with programmers due to its similarity to flow charts. The isomorphism of
         the diagrams and functions make it ideal for representing Recursive Descent
@@ -48,7 +48,7 @@
         parsers as they are for <span class="emphasis"><em>Spirit.Karma</em></span> generators.
       </p>
 <a name="spirit.abstracts.syntax_diagram.elements"></a><h5>
-<a name="id568414"></a>
+<a name="id535646"></a>
         <a class="link" href="syntax_diagram.html#spirit.abstracts.syntax_diagram.elements">Elements</a>
       </h5>
 <p>
@@ -92,7 +92,7 @@
         </p>
 </blockquote></div>
 <a name="spirit.abstracts.syntax_diagram.constructs"></a><h5>
-<a name="id568514"></a>
+<a name="id535746"></a>
         <a class="link" href="syntax_diagram.html#spirit.abstracts.syntax_diagram.constructs">Constructs</a>
       </h5>
 <p>
@@ -163,7 +163,7 @@
         This behavior is quite obvious with syntax diagrams as they resemble flow-charts.
       </p>
 <a name="spirit.abstracts.syntax_diagram.predicates"></a><h5>
-<a name="id568675"></a>
+<a name="id535907"></a>
         <a class="link" href="syntax_diagram.html#spirit.abstracts.syntax_diagram.predicates">Predicates</a>
       </h5>
 <p>
@@ -218,14 +218,14 @@
       </p>
 <div class="footnotes">
 <br><hr width="100" align="left">
-<div class="footnote"><p><sup>[<a name="ftn.id568363" href="#id568363" class="para">2</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id535595" href="#id535595" class="para">2</a>] </sup>
             Bryan Ford: Parsing Expression Grammars: A Recognition-Based Syntactic
             Foundation, http://pdos.csail.mit.edu/~baford/packrat/popl04/
           </p></div>
-<div class="footnote"><p><sup>[<a name="ftn.id568375" href="#id568375" class="para">3</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id535607" href="#id535607" class="para">3</a>] </sup>
             Richard E. Pattis: EBNF: A Notation to Describe Syntax, http://www.cs.cmu.edu/~pattis/misc/ebnf.pdf
           </p></div>
-<div class="footnote"><p><sup>[<a name="ftn.id568387" href="#id568387" class="para">4</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id535619" href="#id535619" class="para">4</a>] </sup>
             Niklaus Wirth: The Programming Language Pascal. (July 1973)
           </p></div>
 </div>

Modified: branches/release/libs/spirit/doc/html/spirit/acknowledgments.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/acknowledgments.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/acknowledgments.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -58,7 +58,7 @@
       <span class="bold"><strong>FIXME</strong></span>: Add more people
     </p>
 <a name="spirit.acknowledgments.acknowledgements_from_the_spirit_v1__emphasis_classic__emphasis__documentation"></a><h4>
-<a name="id901224"></a>
+<a name="id903468"></a>
       <a class="link" href="acknowledgments.html#spirit.acknowledgments.acknowledgements_from_the_spirit_v1__emphasis_classic__emphasis__documentation">Acknowledgements
       from the Spirit V1 <span class="emphasis"><em>classic</em></span> Documentation</a>
     </h4>

Added: branches/release/libs/spirit/doc/html/spirit/advanced.html
==============================================================================
--- (empty file)
+++ branches/release/libs/spirit/doc/html/spirit/advanced.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -0,0 +1,67 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Advanced</title>
+<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../index.html" title="Spirit 2.1">
+<link rel="up" href="../index.html" title="Spirit 2.1">
+<link rel="prev" href="lex/reference/primitives/char_tokendef.html" title="Tokens Matching Single Characters">
+<link rel="next" href="advanced/indepth.html" title="In Depth">
+</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="lex/reference/primitives/char_tokendef.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="advanced/indepth.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" title="Advanced">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="spirit.advanced"></a><a class="link" href="advanced.html" title="Advanced">Advanced</a>
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"> In Depth</span></dt>
+<dd><dl><dt><span class="section"><a href="advanced/indepth/parsers_indepth.html"> Parsers in
+ Depth</a></span></dt></dl></dd>
+<dt><span class="section"><a href="advanced/customize.html"> Customization of Spirit's
+ Attribute Handling</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="advanced/customize/is_container.html"> Determine
+ if a Type Should be Treated as a Container (Qi and Karma)</a></span></dt>
+<dt><span class="section"><a href="advanced/customize/transform.html"> Transform an
+ Attribute to a Different Type (Qi and Karma)</a></span></dt>
+<dt><span class="section"><a href="advanced/customize/assign_to.html"> Store a Parsed
+ Attribute Value (Qi)</a></span></dt>
+<dt><span class="section"><a href="advanced/customize/store_value.html"> Store Parsed
+ Attribute Values into a Container (Qi)</a></span></dt>
+<dt><span class="section"><a href="advanced/customize/clear_value.html"> Re-Initialize
+ an Attribute Value before Parsing (Qi)</a></span></dt>
+<dt><span class="section"><a href="advanced/customize/extract_from.html"> Extract an
+ Attribute Value to Generate Output (Karma)</a></span></dt>
+<dt><span class="section"><a href="advanced/customize/iterate.html"> Extract Attribute
+ Values to Generate Output from a Container (Karma)</a></span></dt>
+</dl></dd>
+</dl></div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2001-2009 Joel
+ de Guzman, Hartmut Kaiser<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="lex/reference/primitives/char_tokendef.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="advanced/indepth.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/customize.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/customize.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -1,16 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Customization of Spirit's
- Attribute Handling</title>
+<title>Customization of Spirit's Attribute Handling</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
 <link rel="home" href="../../index.html" title="Spirit 2.1">
 <link rel="up" href="../advanced.html" title="Advanced">
-<link rel="previous" href="indepth/parsers_indepth.html" title=" Parsers in
- Depth">
-<link rel="next" href="customize/is_container.html" title=" Determine
- if a Type Should be Treated as a Container (Qi and Karma)">
+<link rel="prev" href="indepth/parsers_indepth.html" title="Parsers in Depth">
+<link rel="next" href="customize/is_container.html" title="Determine if a Type Should be Treated as a Container (Qi and Karma)">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -25,15 +22,11 @@
 <div class="spirit-nav">
 <a accesskey="p" href="indepth/parsers_indepth.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../advanced.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="customize/is_container.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.advanced.customize"></a><a href="customize.html" title=" Customization of Spirit's
- Attribute Handling"> Customization of Spirit's
+<div class="section" title="Customization of Spirit's Attribute Handling">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="spirit.advanced.customize"></a><a class="link" href="customize.html" title="Customization of Spirit's Attribute Handling"> Customization of Spirit's
       Attribute Handling</a>
-</h3></div></div>
-<div></div>
-</div>
+</h3></div></div></div>
 <div class="toc"><dl>
 <dt><span class="section"><a href="customize/is_container.html"> Determine
         if a Type Should be Treated as a Container (Qi and Karma)</a></span></dt>
@@ -47,18 +40,20 @@
         an Attribute Value before Parsing (Qi)</a></span></dt>
 <dt><span class="section"><a href="customize/extract_from.html"> Extract an
         Attribute Value to Generate Output (Karma)</a></span></dt>
+<dt><span class="section"><a href="customize/iterate.html"> Extract Attribute
+ Values to Generate Output from a Container (Karma)</a></span></dt>
 </dl></div>
-<a name="spirit.advanced.customize.why_do_we_need_attribute_customization_points"></a><h4>
-<a name="id724737"></a>
- <a href="customize.html#spirit.advanced.customize.why_do_we_need_attribute_customization_points">Why
+<a name="spirit.advanced.customize.why_do_we_need_attribute_customization_points"></a><h5>
+<a name="id845799"></a>
+ <a class="link" href="customize.html#spirit.advanced.customize.why_do_we_need_attribute_customization_points">Why
         do we need Attribute Customization Points</a>
- </h4>
-<div class="important"><table border="0" summary="Important">
+ </h5>
+<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>
+<tr><td align="left" valign="top"><p>
           Before you read on please be aware that the interfaces described in this
           section are not finalized and may change in the future without attempting
           to be backwards compatible. We document the customization point interfaces
@@ -79,14 +74,13 @@
         You as the user have to provide a partial or full specialization of this
         template for the data types you want to integrate with the library. In fact,
         the library uses these customization points itself for instance to handle
- the magic of the <tt class="computeroutput"><span class="identifier">unused_type</span></tt>
+ the magic of the <code class="computeroutput"><span class="identifier">unused_type</span></code>
         attribute type.
       </p>
 <p>
- Here is an example showing the <a href="customize/store_value/container_value.html" title="
- Determine the Type to be Stored in a Container (Qi)"><tt class="computeroutput"><span class="identifier">container_value</span></tt></a> customization point
- used by different parsers (such as Kleene,
- Plus, etc.) to find
+ Here is an example showing the <a class="link" href="customize/store_value/container_value.html" title="Determine the Type to be Stored in a Container (Qi)"><code class="computeroutput"><span class="identifier">container_value</span></code></a> customization point
+ used by different parsers (such as <a class="link" href="../qi/reference/operator/kleene.html" title="Kleene (*a)">Kleene</a>,
+ <a class="link" href="../qi/reference/operator/plus.html" title="Plus (+a)">Plus</a>, etc.) to find
         the attribute type to be stored in a supplied STL container:
       </p>
 <p>
@@ -106,11 +100,11 @@
 <p>
         This template is instantiated by the library at the appropriate places while
         using the supplied container type as the template argument. The embedded
- <tt class="computeroutput"><span class="identifier">type</span></tt> is used as the attribute
+ <code class="computeroutput"><span class="identifier">type</span></code> is used as the attribute
         type while parsing the elements to be store in that container.
       </p>
 <p>
- The following example shows the predefined specialization for <tt class="computeroutput"><span class="identifier">unused_type</span></tt>:
+ The following example shows the predefined specialization for <code class="computeroutput"><span class="identifier">unused_type</span></code>:
       </p>
 <p>
         </p>
@@ -128,13 +122,13 @@
 <p>
       </p>
 <p>
- which defines its embedded <tt class="computeroutput"><span class="identifier">type</span></tt>
- to be <tt class="computeroutput"><span class="identifier">unused_type</span></tt> as well,
+ which defines its embedded <code class="computeroutput"><span class="identifier">type</span></code>
+ to be <code class="computeroutput"><span class="identifier">unused_type</span></code> as well,
         this way propagating the 'don't care' attribute status to the embedded parser.
       </p>
 <p>
         All attribute customization points follow the same scheme. The last template
- parameter is always <tt class="computeroutput"><span class="keyword">typename</span> <span class="identifier">Enable</span> <span class="special">=</span> <span class="keyword">void</span></tt> allowing to apply SFINAE for fine grained
+ parameter is always <code class="computeroutput"><span class="keyword">typename</span> <span class="identifier">Enable</span> <span class="special">=</span> <span class="keyword">void</span></code> allowing to apply SFINAE for fine grained
         control over the template specialization process. But most of the time you
         can safely forget about its existence.
       </p>
@@ -142,11 +136,11 @@
         The following sections will describe all customization points, together with
         a description which needs to be specialized for what purpose.
       </p>
-<a name="spirit.advanced.customize.the_usage_of_customization_points"></a><h4>
-<a name="id725224"></a>
- <a href="customize.html#spirit.advanced.customize.the_usage_of_customization_points">The
+<a name="spirit.advanced.customize.the_usage_of_customization_points"></a><h5>
+<a name="id846119"></a>
+ <a class="link" href="customize.html#spirit.advanced.customize.the_usage_of_customization_points">The
         Usage of Customization Points</a>
- </h4>
+ </h5>
 <p>
         The different customizations points are used by different parts of the library.
         Part of the customizations points are used by both, <span class="emphasis"><em>Spirit.Qi</em></span>

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/customize/assign_to.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/customize/assign_to.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize/assign_to.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -1,17 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Store a Parsed
- Attribute Value (Qi)</title>
+<title>Store a Parsed Attribute Value (Qi)</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
 <link rel="home" href="../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../customize.html" title=" Customization of Spirit's
- Attribute Handling">
-<link rel="previous" href="transform.html" title=" Transform an
- Attribute to a Different Type (Qi and Karma)">
-<link rel="next" href="assign_to/assign_to_attribute_from_iterators.html" title="
- Store an Attribute after a Parser Produced a Pair of Iterators (Qi)">
+<link rel="up" href="../customize.html" title="Customization of Spirit's Attribute Handling">
+<link rel="prev" href="transform.html" title="Transform an Attribute to a Different Type (Qi and Karma)">
+<link rel="next" href="assign_to/assign_to_attribute_from_iterators.html" title="Store an Attribute after a Parser Produced a Pair of Iterators (Qi)">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -26,15 +22,11 @@
 <div class="spirit-nav">
 <a accesskey="p" href="transform.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../customize.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="assign_to/assign_to_attribute_from_iterators.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.advanced.customize.assign_to"></a><a href="assign_to.html" title=" Store a Parsed
- Attribute Value (Qi)"> Store a Parsed
+<div class="section" title="Store a Parsed Attribute Value (Qi)">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.advanced.customize.assign_to"></a><a class="link" href="assign_to.html" title="Store a Parsed Attribute Value (Qi)"> Store a Parsed
         Attribute Value (Qi)</a>
-</h4></div></div>
-<div></div>
-</div>
+</h4></div></div></div>
 <div class="toc"><dl>
 <dt><span class="section"><a href="assign_to/assign_to_attribute_from_iterators.html">
           Store an Attribute after a Parser Produced a Pair of Iterators (Qi)</a></span></dt>
@@ -44,8 +36,8 @@
 <p>
           After parsing input and generting an attribute value this value needs to
           assigned to the attribute instance provided by the user. The customization
- points <tt class="computeroutput"><span class="identifier">assign_to_attribute_from_iterators</span></tt>
- and <tt class="computeroutput"><span class="identifier">assign_to_attribute_from_value</span></tt>
+ points <code class="computeroutput"><span class="identifier">assign_to_attribute_from_iterators</span></code>
+ and <code class="computeroutput"><span class="identifier">assign_to_attribute_from_value</span></code>
           are utilized to adapt this assignment to the concrete type to be assigned.
           This section describes both.
         </p>

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/customize/assign_to/assign_to_attribute_from_iterators.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/customize/assign_to/assign_to_attribute_from_iterators.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize/assign_to/assign_to_attribute_from_iterators.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -1,17 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>
- Store an Attribute after a Parser Produced a Pair of Iterators (Qi)</title>
+<title>Store an Attribute after a Parser Produced a Pair of Iterators (Qi)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
 <link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../assign_to.html" title=" Store a Parsed
- Attribute Value (Qi)">
-<link rel="previous" href="../assign_to.html" title=" Store a Parsed
- Attribute Value (Qi)">
-<link rel="next" href="assign_to_attribute_from_value.html" title="
- Store an Attribute Value after a Parser Produced a Value (Qi)">
+<link rel="up" href="../assign_to.html" title="Store a Parsed Attribute Value (Qi)">
+<link rel="prev" href="../assign_to.html" title="Store a Parsed Attribute Value (Qi)">
+<link rel="next" href="assign_to_attribute_from_value.html" title="Store an Attribute Value after a Parser Produced a Value (Qi)">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -26,21 +22,17 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../assign_to.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../assign_to.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="assign_to_attribute_from_value.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
-<div class="titlepage">
-<div><div><h5 class="title">
-<a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators"></a><a href="assign_to_attribute_from_iterators.html" title="
- Store an Attribute after a Parser Produced a Pair of Iterators (Qi)">
+<div class="section" title="Store an Attribute after a Parser Produced a Pair of Iterators (Qi)">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators"></a><a class="link" href="assign_to_attribute_from_iterators.html" title="Store an Attribute after a Parser Produced a Pair of Iterators (Qi)">
           Store an Attribute after a Parser Produced a Pair of Iterators (Qi)</a>
-</h5></div></div>
-<div></div>
-</div>
+</h5></div></div></div>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.assign_to_attribute_from_iterators"></a><h6>
-<a name="id728724"></a>
- assign_to_attribute_from_iterators
+<a name="id852137"></a>
+ <a class="link" href="assign_to_attribute_from_iterators.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.assign_to_attribute_from_iterators">assign_to_attribute_from_iterators</a>
           </h6>
 <p>
- The template <tt class="computeroutput"><span class="identifier">assign_to_attribute_from_iterators</span></tt>
+ The template <code class="computeroutput"><span class="identifier">assign_to_attribute_from_iterators</span></code>
             is a type used as an attribute customization point. It is invoked by
             the those <span class="emphasis"><em>Qi</em></span> parsers not producing any attribute
             value but returning a pair of iterators pointing to the matched input
@@ -49,49 +41,56 @@
             attribute as provided by the user.
           </p>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.module_headers"></a><h6>
-<a name="id728780"></a>
- <a href="assign_to_attribute_from_iterators.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.module_headers">Module
+<a name="id852165"></a>
+ <a class="link" href="assign_to_attribute_from_iterators.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.module_headers">Module
             Headers</a>
           </h6>
 <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">home</span><span class="special">/</span><span class="identifier">qi</span><span class="special">/</span><span class="identifier">detail</span><span class="special">/</span><span class="identifier">assign_to</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
- Also, see Include Structure.
+ Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </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>
               This header file does not need to be included directly by any user
               program as it is normally included by other Spirit header files relying
               on its content.
             </p></td></tr>
 </table></div>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.namespace"></a><h6>
-<a name="id728920"></a>
- Namespace
+<a name="id852257"></a>
+ <a class="link" href="assign_to_attribute_from_iterators.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
 <colgroup><col></colgroup>
-<thead><tr><th><p>
+<thead><tr><th>
+ <p>
                     Name
- </p></th></tr></thead>
-<tbody><tr><td><p>
- <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span></tt>
- </p></td></tr></tbody>
+ </p>
+ </th></tr></thead>
+<tbody><tr><td>
+ <p>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span></code>
+ </p>
+ </td></tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.synopsis"></a><h6>
-<a name="id729020"></a>
- Synopsis
+<a name="id852330"></a>
+ <a class="link" href="assign_to_attribute_from_iterators.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Attrib</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">assign_to_attribute_from_iterators</span><span class="special">;</span>
+<span class="keyword">struct</span> <span class="identifier">assign_to_attribute_from_iterators</span>
+<span class="special">{</span>
+ <span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">call</span><span class="special">(</span><span class="identifier">Iterator</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">Iterator</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">last</span><span class="special">,</span> <span class="identifier">Attrib</span><span class="special">&amp;</span> <span class="identifier">attr</span><span class="special">);</span>
+<span class="special">};</span>
 </pre>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.template_parameters"></a><h6>
-<a name="id729138"></a>
- <a href="assign_to_attribute_from_iterators.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.template_parameters">Template
+<a name="id852491"></a>
+ <a class="link" href="assign_to_attribute_from_iterators.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.template_parameters">Template
             parameters</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -101,88 +100,112 @@
 <col>
 </colgroup>
 <thead><tr>
-<th><p>
+<th>
+ <p>
                     Parameter
- </p></th>
-<th><p>
+ </p>
+ </th>
+<th>
+ <p>
                     Description
- </p></th>
-<th><p>
+ </p>
+ </th>
+<th>
+ <p>
                     Default
- </p></th>
+ </p>
+ </th>
 </tr></thead>
 <tbody>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
- </p></td>
-<td><p>
- The type, <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Attrib</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The type, <code class="computeroutput"><span class="identifier">Attrib</span></code>
                     is the type of the attribute as passed in by the user.
- </p></td>
-<td><p>
+ </p>
+ </td>
+<td>
+ <p>
                     none
- </p></td>
+ </p>
+ </td>
 </tr>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">Iterator</span></tt>
- </p></td>
-<td><p>
- The type, <tt class="computeroutput"><span class="identifier">Iterator</span></tt>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Iterator</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The type, <code class="computeroutput"><span class="identifier">Iterator</span></code>
                     is the type of the iterators as produced by the parser.
- </p></td>
-<td><p>
+ </p>
+ </td>
+<td>
+ <p>
                     none
- </p></td>
+ </p>
+ </td>
 </tr>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">Enable</span></tt>
- </p></td>
-<td><p>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Enable</span></code>
+ </p>
+ </td>
+<td>
+ <p>
                     Helper template parameter usable to selectively enable or disable
- certain specializations of <tt class="computeroutput"><span class="identifier">assign_to_attribute_from_value</span></tt>
- utilizing SFINAE (i.e. <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span></tt>
- or <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span></tt>).
- </p></td>
-<td><p>
- <tt class="computeroutput"><span class="keyword">void</span></tt>
- </p></td>
+ certain specializations of <code class="computeroutput"><span class="identifier">assign_to_attribute_from_value</span></code>
+ utilizing SFINAE (i.e. <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span></code>
+ or <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span></code>).
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">void</span></code>
+ </p>
+ </td>
 </tr>
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.notation"></a><h6>
-<a name="id729412"></a>
- Notation
+<a name="id852691"></a>
+ <a class="link" href="assign_to_attribute_from_iterators.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.notation">Notation</a>
           </h6>
-<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">Attrib</span></tt></span></dt>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Attrib</span></code></span></dt>
 <dd><p>
                 A type to be used as the target to store the attribute value in.
               </p></dd>
-<dt><span class="term"><tt class="computeroutput"><span class="identifier">attr</span></tt></span></dt>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">attr</span></code></span></dt>
 <dd><p>
- A attribute instance of type <tt class="computeroutput"><span class="identifier">Attrib</span></tt>.
+ A attribute instance of type <code class="computeroutput"><span class="identifier">Attrib</span></code>.
               </p></dd>
-<dt><span class="term"><tt class="computeroutput"><span class="identifier">Iterator</span></tt></span></dt>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Iterator</span></code></span></dt>
 <dd><p>
                 The iterator type used by the parser. This type usually corresponds
                 to the iterators as passed in by the user.
               </p></dd>
-<dt><span class="term"><tt class="computeroutput"><span class="identifier">begin</span></tt>,
- <tt class="computeroutput"><span class="identifier">end</span></tt></span></dt>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">begin</span></code>,
+ <code class="computeroutput"><span class="identifier">end</span></code></span></dt>
 <dd><p>
- Iterator instances of type <tt class="computeroutput"><span class="identifier">Iterator</span></tt>
+ Iterator instances of type <code class="computeroutput"><span class="identifier">Iterator</span></code>
                 pointing to the begin and the end of the matched input sequence.
               </p></dd>
 </dl>
 </div>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.expression_semantics"></a><h6>
-<a name="id729580"></a>
- <a href="assign_to_attribute_from_iterators.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.expression_semantics">Expression
+<a name="id852805"></a>
+ <a class="link" href="assign_to_attribute_from_iterators.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.expression_semantics">Expression
             Semantics</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -191,32 +214,38 @@
 <col>
 </colgroup>
 <thead><tr>
-<th><p>
+<th>
+ <p>
                     Expression
- </p></th>
-<th><p>
+ </p>
+ </th>
+<th>
+ <p>
                     Semantics
- </p></th>
+ </p>
+ </th>
 </tr></thead>
 <tbody><tr>
 <td>
-<p>
+ <p>
                     
 </p>
 <pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">assign_to_attribute_from_iterators</span><span class="special">&lt;</span><span class="identifier">Attrib</span><span class="special">,</span> <span class="identifier">Iterator</span><span class="special">&gt;::</span><span class="identifier">call</span><span class="special">(</span><span class="identifier">b</span><span class="special">,</span> <span class="identifier">e</span><span class="special">,</span> <span class="identifier">attr</span><span class="special">)</span></pre>
 <p>
                   </p>
-</td>
-<td><p>
- Use the iterators <tt class="computeroutput"><span class="identifier">begin</span></tt>
- and <tt class="computeroutput"><span class="identifier">end</span></tt> to initialize
- the attribute <tt class="computeroutput"><span class="identifier">attr</span></tt>.
- </p></td>
+ </td>
+<td>
+ <p>
+ Use the iterators <code class="computeroutput"><span class="identifier">begin</span></code>
+ and <code class="computeroutput"><span class="identifier">end</span></code> to initialize
+ the attribute <code class="computeroutput"><span class="identifier">attr</span></code>.
+ </p>
+ </td>
 </tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.predefined_specializations"></a><h6>
-<a name="id729783"></a>
- <a href="assign_to_attribute_from_iterators.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.predefined_specializations">Predefined
+<a name="id852948"></a>
+ <a class="link" href="assign_to_attribute_from_iterators.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.predefined_specializations">Predefined
             Specializations</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -225,49 +254,61 @@
 <col>
 </colgroup>
 <thead><tr>
-<th><p>
- Type
- </p></th>
-<th><p>
+<th>
+ <p>
+ Template Parameters
+ </p>
+ </th>
+<th>
+ <p>
                     Semantics
- </p></th>
+ </p>
+ </th>
 </tr></thead>
 <tbody>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">Attrib</span></tt>, <tt class="computeroutput"><span class="identifier">Iterator</span></tt>
- </p></td>
-<td><p>
- Execute an assignment <tt class="computeroutput"><span class="identifier">attr</span>
- <span class="special">=</span> <span class="identifier">Attrib</span><span class="special">(</span><span class="identifier">begin</span><span class="special">,</span> <span class="identifier">end</span><span class="special">)</span></tt>.
- </p></td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Attrib</span></code>, <code class="computeroutput"><span class="identifier">Iterator</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Execute an assignment <code class="computeroutput"><span class="identifier">attr</span>
+ <span class="special">=</span> <span class="identifier">Attrib</span><span class="special">(</span><span class="identifier">begin</span><span class="special">,</span> <span class="identifier">end</span><span class="special">)</span></code>.
+ </p>
+ </td>
 </tr>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">unused_type</span></tt>,
- <tt class="computeroutput"><span class="identifier">T</span></tt>
- </p></td>
-<td><p>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">unused_type</span></code>,
+ <code class="computeroutput"><span class="identifier">T</span></code>
+ </p>
+ </td>
+<td>
+ <p>
                     Do nothing.
- </p></td>
+ </p>
+ </td>
 </tr>
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.when_to_implement"></a><h6>
-<a name="id729980"></a>
- <a href="assign_to_attribute_from_iterators.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.when_to_implement">When
+<a name="id853095"></a>
+ <a class="link" href="assign_to_attribute_from_iterators.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.when_to_implement">When
             to implement</a>
           </h6>
 <p>
- The customization point <tt class="computeroutput"><span class="identifier">assign_to_attribute_from_iterators</span></tt>
+ The customization point <code class="computeroutput"><span class="identifier">assign_to_attribute_from_iterators</span></code>
             needs to be implemented for a specific type whenever the default implementation
             as shown above is not applicable. Examples for this could be that the
- type <tt class="computeroutput"><span class="identifier">Attrib</span></tt> is not constructible
+ type <code class="computeroutput"><span class="identifier">Attrib</span></code> is not constructible
             from the pair of iterators.
           </p>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.example"></a><h6>
-<a name="id730039"></a>
- Example
+<a name="id853126"></a>
+ <a class="link" href="assign_to_attribute_from_iterators.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.example">Example</a>
           </h6>
 <p>
             TBD

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/customize/assign_to/assign_to_attribute_from_value.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/customize/assign_to/assign_to_attribute_from_value.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize/assign_to/assign_to_attribute_from_value.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -1,17 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>
- Store an Attribute Value after a Parser Produced a Value (Qi)</title>
+<title>Store an Attribute Value after a Parser Produced a Value (Qi)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
 <link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../assign_to.html" title=" Store a Parsed
- Attribute Value (Qi)">
-<link rel="previous" href="assign_to_attribute_from_iterators.html" title="
- Store an Attribute after a Parser Produced a Pair of Iterators (Qi)">
-<link rel="next" href="../store_value.html" title=" Store Parsed
- Attribute Values into a Container (Qi)">
+<link rel="up" href="../assign_to.html" title="Store a Parsed Attribute Value (Qi)">
+<link rel="prev" href="assign_to_attribute_from_iterators.html" title="Store an Attribute after a Parser Produced a Pair of Iterators (Qi)">
+<link rel="next" href="../store_value.html" title="Store Parsed Attribute Values into a Container (Qi)">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -26,69 +22,72 @@
 <div class="spirit-nav">
 <a accesskey="p" href="assign_to_attribute_from_iterators.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../assign_to.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="../store_value.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
-<div class="titlepage">
-<div><div><h5 class="title">
-<a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_value"></a><a href="assign_to_attribute_from_value.html" title="
- Store an Attribute Value after a Parser Produced a Value (Qi)">
+<div class="section" title="Store an Attribute Value after a Parser Produced a Value (Qi)">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_value"></a><a class="link" href="assign_to_attribute_from_value.html" title="Store an Attribute Value after a Parser Produced a Value (Qi)">
           Store an Attribute Value after a Parser Produced a Value (Qi)</a>
-</h5></div></div>
-<div></div>
-</div>
+</h5></div></div></div>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_value.assign_to_attribute_from_value"></a><h6>
-<a name="id730091"></a>
- assign_to_attribute_from_value
+<a name="id853153"></a>
+ <a class="link" href="assign_to_attribute_from_value.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_value.assign_to_attribute_from_value">assign_to_attribute_from_value</a>
           </h6>
 <p>
- The template <tt class="computeroutput"><span class="identifier">assign_to_attribute_from_value</span></tt>
+ The template <code class="computeroutput"><span class="identifier">assign_to_attribute_from_value</span></code>
             is a type used as an attribute customization point. It is invoked by
             the all primitive <span class="emphasis"><em>Qi</em></span> parsers in order to store a
             parsed attribute value into the attribute instance provided by the user.
           </p>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_value.module_headers"></a><h6>
-<a name="id730143"></a>
- <a href="assign_to_attribute_from_value.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_value.module_headers">Module
+<a name="id853181"></a>
+ <a class="link" href="assign_to_attribute_from_value.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_value.module_headers">Module
             Headers</a>
           </h6>
 <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">home</span><span class="special">/</span><span class="identifier">qi</span><span class="special">/</span><span class="identifier">detail</span><span class="special">/</span><span class="identifier">assign_to</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
- Also, see Include Structure.
+ Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </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>
               This header file does not need to be included directly by any user
               program as it is normally included by other Spirit header files relying
               on its content.
             </p></td></tr>
 </table></div>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_value.namespace"></a><h6>
-<a name="id730284"></a>
- Namespace
+<a name="id853273"></a>
+ <a class="link" href="assign_to_attribute_from_value.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_value.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
 <colgroup><col></colgroup>
-<thead><tr><th><p>
+<thead><tr><th>
+ <p>
                     Name
- </p></th></tr></thead>
-<tbody><tr><td><p>
- <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span></tt>
- </p></td></tr></tbody>
+ </p>
+ </th></tr></thead>
+<tbody><tr><td>
+ <p>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span></code>
+ </p>
+ </td></tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_value.synopsis"></a><h6>
-<a name="id730383"></a>
- Synopsis
+<a name="id853347"></a>
+ <a class="link" href="assign_to_attribute_from_value.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_value.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Attrib</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">assign_to_attribute_from_value</span><span class="special">;</span>
+<span class="keyword">struct</span> <span class="identifier">assign_to_attribute_from_value</span>
+<span class="special">{</span>
+ <span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">call</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">val</span><span class="special">,</span> <span class="identifier">Attrib</span><span class="special">&amp;</span> <span class="identifier">attr</span><span class="special">);</span>
+<span class="special">};</span>
 </pre>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_value.template_parameters"></a><h6>
-<a name="id730498"></a>
- <a href="assign_to_attribute_from_value.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_value.template_parameters">Template
+<a name="id853486"></a>
+ <a class="link" href="assign_to_attribute_from_value.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_value.template_parameters">Template
             parameters</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -98,86 +97,110 @@
 <col>
 </colgroup>
 <thead><tr>
-<th><p>
+<th>
+ <p>
                     Parameter
- </p></th>
-<th><p>
+ </p>
+ </th>
+<th>
+ <p>
                     Description
- </p></th>
-<th><p>
+ </p>
+ </th>
+<th>
+ <p>
                     Default
- </p></th>
+ </p>
+ </th>
 </tr></thead>
 <tbody>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
- </p></td>
-<td><p>
- The type, <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Attrib</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The type, <code class="computeroutput"><span class="identifier">Attrib</span></code>
                     is the type of the attribute as passed in by the user.
- </p></td>
-<td><p>
+ </p>
+ </td>
+<td>
+ <p>
                     none
- </p></td>
+ </p>
+ </td>
 </tr>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">T</span></tt>
- </p></td>
-<td><p>
- The type, <tt class="computeroutput"><span class="identifier">T</span></tt> is
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">T</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The type, <code class="computeroutput"><span class="identifier">T</span></code> is
                     the type of the attribute instance as produced by the parser.
- </p></td>
-<td><p>
+ </p>
+ </td>
+<td>
+ <p>
                     none
- </p></td>
+ </p>
+ </td>
 </tr>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">Enable</span></tt>
- </p></td>
-<td><p>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Enable</span></code>
+ </p>
+ </td>
+<td>
+ <p>
                     Helper template parameter usable to selectively enable or disable
- certain specializations of <tt class="computeroutput"><span class="identifier">assign_to_attribute_from_value</span></tt>
- utilizing SFINAE (i.e. <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span></tt>
- or <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span></tt>).
- </p></td>
-<td><p>
- <tt class="computeroutput"><span class="keyword">void</span></tt>
- </p></td>
+ certain specializations of <code class="computeroutput"><span class="identifier">assign_to_attribute_from_value</span></code>
+ utilizing SFINAE (i.e. <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span></code>
+ or <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span></code>).
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">void</span></code>
+ </p>
+ </td>
 </tr>
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_value.notation"></a><h6>
-<a name="id730771"></a>
- Notation
+<a name="id853686"></a>
+ <a class="link" href="assign_to_attribute_from_value.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_value.notation">Notation</a>
           </h6>
-<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">Attrib</span></tt></span></dt>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Attrib</span></code></span></dt>
 <dd><p>
                 A type to be used as the target to store the attribute value in.
               </p></dd>
-<dt><span class="term"><tt class="computeroutput"><span class="identifier">attr</span></tt></span></dt>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">attr</span></code></span></dt>
 <dd><p>
- A attribute instance of type <tt class="computeroutput"><span class="identifier">Attrib</span></tt>.
+ A attribute instance of type <code class="computeroutput"><span class="identifier">Attrib</span></code>.
               </p></dd>
-<dt><span class="term"><tt class="computeroutput"><span class="identifier">T</span></tt></span></dt>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">T</span></code></span></dt>
 <dd><p>
                 A type as produced by the parser. The parser temporarily stores its
                 parsed values using this type.
               </p></dd>
-<dt><span class="term"><tt class="computeroutput"><span class="identifier">t</span></tt></span></dt>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">t</span></code></span></dt>
 <dd><p>
- A attribute instance of type <tt class="computeroutput"><span class="identifier">T</span></tt>.
+ A attribute instance of type <code class="computeroutput"><span class="identifier">T</span></code>.
               </p></dd>
 </dl>
 </div>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_value.expression_semantics"></a><h6>
-<a name="id730922"></a>
- <a href="assign_to_attribute_from_value.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_value.expression_semantics">Expression
+<a name="id853793"></a>
+ <a class="link" href="assign_to_attribute_from_value.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_value.expression_semantics">Expression
             Semantics</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -186,31 +209,37 @@
 <col>
 </colgroup>
 <thead><tr>
-<th><p>
+<th>
+ <p>
                     Expression
- </p></th>
-<th><p>
+ </p>
+ </th>
+<th>
+ <p>
                     Semantics
- </p></th>
+ </p>
+ </th>
 </tr></thead>
 <tbody><tr>
 <td>
-<p>
+ <p>
                     
 </p>
 <pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">assign_to_attribute_from_value</span><span class="special">&lt;</span><span class="identifier">Attrib</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">call</span><span class="special">(</span><span class="identifier">t</span><span class="special">,</span> <span class="identifier">attr</span><span class="special">)</span></pre>
 <p>
                   </p>
-</td>
-<td><p>
- Copy (assign) the value, <tt class="computeroutput"><span class="identifier">t</span></tt>
- to the attribute <tt class="computeroutput"><span class="identifier">attr</span></tt>.
- </p></td>
+ </td>
+<td>
+ <p>
+ Copy (assign) the value, <code class="computeroutput"><span class="identifier">t</span></code>
+ to the attribute <code class="computeroutput"><span class="identifier">attr</span></code>.
+ </p>
+ </td>
 </tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_value.predefined_specializations"></a><h6>
-<a name="id731100"></a>
- <a href="assign_to_attribute_from_value.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_value.predefined_specializations">Predefined
+<a name="id853920"></a>
+ <a class="link" href="assign_to_attribute_from_value.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_value.predefined_specializations">Predefined
             Specializations</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -219,49 +248,61 @@
 <col>
 </colgroup>
 <thead><tr>
-<th><p>
- Type
- </p></th>
-<th><p>
+<th>
+ <p>
+ Template Parameters
+ </p>
+ </th>
+<th>
+ <p>
                     Semantics
- </p></th>
+ </p>
+ </th>
 </tr></thead>
 <tbody>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">Attrib</span></tt>, <tt class="computeroutput"><span class="identifier">T</span></tt>
- </p></td>
-<td><p>
- Assign the argument <tt class="computeroutput"><span class="identifier">t</span></tt>
- to <tt class="computeroutput"><span class="identifier">attr</span></tt>.
- </p></td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Attrib</span></code>, <code class="computeroutput"><span class="identifier">T</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Assign the argument <code class="computeroutput"><span class="identifier">t</span></code>
+ to <code class="computeroutput"><span class="identifier">attr</span></code>.
+ </p>
+ </td>
 </tr>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">unused_type</span></tt>,
- <tt class="computeroutput"><span class="identifier">T</span></tt>
- </p></td>
-<td><p>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">unused_type</span></code>,
+ <code class="computeroutput"><span class="identifier">T</span></code>
+ </p>
+ </td>
+<td>
+ <p>
                     Do nothing.
- </p></td>
+ </p>
+ </td>
 </tr>
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_value.when_to_implement"></a><h6>
-<a name="id731270"></a>
- <a href="assign_to_attribute_from_value.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_value.when_to_implement">When
+<a name="id855144"></a>
+ <a class="link" href="assign_to_attribute_from_value.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_value.when_to_implement">When
             to implement</a>
           </h6>
 <p>
- The customization point <tt class="computeroutput"><span class="identifier">assign_to_attribute_from_value</span></tt>
+ The customization point <code class="computeroutput"><span class="identifier">assign_to_attribute_from_value</span></code>
             needs to be implemented for a specific type whenever the default implementation
             as shown above is not applicable. Examples for this could be that the
- type <tt class="computeroutput"><span class="identifier">Attrib</span></tt> is not copy
+ type <code class="computeroutput"><span class="identifier">Attrib</span></code> is not copy
             constructible.
           </p>
 <a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_value.example"></a><h6>
-<a name="id731330"></a>
- Example
+<a name="id855175"></a>
+ <a class="link" href="assign_to_attribute_from_value.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_value.example">Example</a>
           </h6>
 <p>
             TBD

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/customize/clear_value.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/customize/clear_value.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize/clear_value.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -1,17 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Re-Initialize
- an Attribute Value before Parsing (Qi)</title>
+<title>Re-Initialize an Attribute Value before Parsing (Qi)</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
 <link rel="home" href="../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../customize.html" title=" Customization of Spirit's
- Attribute Handling">
-<link rel="previous" href="store_value/push_back.html" title="
- Store a Parsed Attribute Value into a Container (Qi)">
-<link rel="next" href="extract_from.html" title=" Extract an
- Attribute Value to Generate Output (Karma)">
+<link rel="up" href="../customize.html" title="Customization of Spirit's Attribute Handling">
+<link rel="prev" href="store_value/push_back.html" title="Store a Parsed Attribute Value into a Container (Qi)">
+<link rel="next" href="extract_from.html" title="Extract an Attribute Value to Generate Output (Karma)">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -26,77 +22,79 @@
 <div class="spirit-nav">
 <a accesskey="p" href="store_value/push_back.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../customize.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="extract_from.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.advanced.customize.clear_value"></a><a href="clear_value.html" title=" Re-Initialize
- an Attribute Value before Parsing (Qi)"> Re-Initialize
+<div class="section" title="Re-Initialize an Attribute Value before Parsing (Qi)">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.advanced.customize.clear_value"></a><a class="link" href="clear_value.html" title="Re-Initialize an Attribute Value before Parsing (Qi)"> Re-Initialize
         an Attribute Value before Parsing (Qi)</a>
-</h4></div></div>
-<div></div>
-</div>
-<a name="spirit.advanced.customize.clear_value.clear_value"></a><h5>
-<a name="id735411"></a>
- clear_value
- </h5>
+</h4></div></div></div>
+<a name="spirit.advanced.customize.clear_value.clear_value"></a><h6>
+<a name="id859389"></a>
+ <a class="link" href="clear_value.html#spirit.advanced.customize.clear_value.clear_value">clear_value</a>
+ </h6>
 <p>
- The template <tt class="computeroutput"><span class="identifier">clear_value</span></tt>
+ The template <code class="computeroutput"><span class="identifier">clear_value</span></code>
           is a type used as an attribute customization point. It is invoked by the
- <span class="emphasis"><em>Qi</em></span> repetitive parsers (Kleene,
- Plus, List,
- and <a href="../../qi/reference/directive/repeat.html" title=" Repetition
- (repeat[])">Repeat</a>)
+ <span class="emphasis"><em>Qi</em></span> repetitive parsers (<a class="link" href="../../qi/reference/operator/kleene.html" title="Kleene (*a)">Kleene</a>,
+ <a class="link" href="../../qi/reference/operator/plus.html" title="Plus (+a)">Plus</a>, <a class="link" href="../../qi/reference/operator/list.html" title="List (a % b)">List</a>,
+ and <a class="link" href="../../qi/reference/directive/repeat.html" title="Repetition (repeat[])">Repeat</a>)
           in order to re-initialize the attribute instance passed to the embedded
           parser after it has been stored in the provided container. This re-initialized
           attribute instance is reused during the next iteration of the repetitive
           parser.
         </p>
-<a name="spirit.advanced.customize.clear_value.module_headers"></a><h5>
-<a name="id735497"></a>
- <a href="clear_value.html#spirit.advanced.customize.clear_value.module_headers">Module
+<a name="spirit.advanced.customize.clear_value.module_headers"></a><h6>
+<a name="id859435"></a>
+ <a class="link" href="clear_value.html#spirit.advanced.customize.clear_value.module_headers">Module
           Headers</a>
- </h5>
+ </h6>
 <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">home</span><span class="special">/</span><span class="identifier">support</span><span class="special">/</span><span class="identifier">attributes</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
- Also, see Include Structure.
+ Also, see <a class="link" href="../../structure/include.html" title="Include">Include Structure</a>.
         </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>
             This header file does not need to be included directly by any user program
             as it is normally included by other Spirit header files relying on its
             content.
           </p></td></tr>
 </table></div>
-<a name="spirit.advanced.customize.clear_value.namespace"></a><h5>
-<a name="id735627"></a>
- Namespace
- </h5>
+<a name="spirit.advanced.customize.clear_value.namespace"></a><h6>
+<a name="id859521"></a>
+ <a class="link" href="clear_value.html#spirit.advanced.customize.clear_value.namespace">Namespace</a>
+ </h6>
 <div class="informaltable"><table class="table">
 <colgroup><col></colgroup>
-<thead><tr><th><p>
+<thead><tr><th>
+ <p>
                   Name
- </p></th></tr></thead>
-<tbody><tr><td><p>
- <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span></tt>
- </p></td></tr></tbody>
+ </p>
+ </th></tr></thead>
+<tbody><tr><td>
+ <p>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span></code>
+ </p>
+ </td></tr></tbody>
 </table></div>
-<a name="spirit.advanced.customize.clear_value.synopsis"></a><h5>
-<a name="id735723"></a>
- Synopsis
- </h5>
+<a name="spirit.advanced.customize.clear_value.synopsis"></a><h6>
+<a name="id859594"></a>
+ <a class="link" href="clear_value.html#spirit.advanced.customize.clear_value.synopsis">Synopsis</a>
+ </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Attrib</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">clear_value</span><span class="special">;</span>
+<span class="keyword">struct</span> <span class="identifier">clear_value</span>
+<span class="special">{</span>
+ <span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">call</span><span class="special">(</span><span class="identifier">Attrib</span><span class="special">&amp;</span> <span class="identifier">val</span><span class="special">);</span>
+<span class="special">};</span>
 </pre>
-<a name="spirit.advanced.customize.clear_value.template_parameters"></a><h5>
-<a name="id735818"></a>
- <a href="clear_value.html#spirit.advanced.customize.clear_value.template_parameters">Template
+<a name="spirit.advanced.customize.clear_value.template_parameters"></a><h6>
+<a name="id859701"></a>
+ <a class="link" href="clear_value.html#spirit.advanced.customize.clear_value.template_parameters">Template
           parameters</a>
- </h5>
+ </h6>
 <div class="informaltable"><table class="table">
 <colgroup>
 <col>
@@ -104,105 +102,129 @@
 <col>
 </colgroup>
 <thead><tr>
-<th><p>
+<th>
+ <p>
                   Parameter
- </p></th>
-<th><p>
+ </p>
+ </th>
+<th>
+ <p>
                   Description
- </p></th>
-<th><p>
+ </p>
+ </th>
+<th>
+ <p>
                   Default
- </p></th>
+ </p>
+ </th>
 </tr></thead>
 <tbody>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
- </p></td>
-<td><p>
- The type, <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Attrib</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The type, <code class="computeroutput"><span class="identifier">Attrib</span></code>
                   of the attribute to be re-initialized.
- </p></td>
-<td><p>
+ </p>
+ </td>
+<td>
+ <p>
                   none
- </p></td>
+ </p>
+ </td>
 </tr>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">Enable</span></tt>
- </p></td>
-<td><p>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Enable</span></code>
+ </p>
+ </td>
+<td>
+ <p>
                   Helper template parameter usable to selectively enable or disable
- certain specializations of <tt class="computeroutput"><span class="identifier">clear_value</span></tt>
- utilizing SFINAE (i.e. <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span></tt>
- or <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span></tt>).
- </p></td>
-<td><p>
- <tt class="computeroutput"><span class="keyword">void</span></tt>
- </p></td>
+ certain specializations of <code class="computeroutput"><span class="identifier">clear_value</span></code>
+ utilizing SFINAE (i.e. <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span></code>
+ or <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span></code>).
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">void</span></code>
+ </p>
+ </td>
 </tr>
 </tbody>
 </table></div>
-<a name="spirit.advanced.customize.clear_value.notation"></a><h5>
-<a name="id736043"></a>
- Notation
- </h5>
-<div class="variablelist">
+<a name="spirit.advanced.customize.clear_value.notation"></a><h6>
+<a name="id859866"></a>
+ <a class="link" href="clear_value.html#spirit.advanced.customize.clear_value.notation">Notation</a>
+ </h6>
+<div class="variablelist" title="Notation">
 <p class="title"><b>Notation</b></p>
 <dl>
-<dt><span class="term"><tt class="computeroutput"><span class="identifier">Attrib</span></tt></span></dt>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Attrib</span></code></span></dt>
 <dd><p>
               A type to be used as a container to store attribute values in.
             </p></dd>
-<dt><span class="term"><tt class="computeroutput"><span class="identifier">attr</span></tt></span></dt>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">attr</span></code></span></dt>
 <dd><p>
- A attribute instance of type <tt class="computeroutput"><span class="identifier">Attrib</span></tt>.
+ A attribute instance of type <code class="computeroutput"><span class="identifier">Attrib</span></code>.
             </p></dd>
-<dt><span class="term"><tt class="computeroutput"><span class="identifier">T1</span></tt>,
- <tt class="computeroutput"><span class="identifier">T2</span></tt>, ...</span></dt>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">T1</span></code>,
+ <code class="computeroutput"><span class="identifier">T2</span></code>, ...</span></dt>
 <dd><p>
               Arbitrary types
             </p></dd>
 </dl>
 </div>
-<a name="spirit.advanced.customize.clear_value.expression_semantics"></a><h5>
-<a name="id736169"></a>
- <a href="clear_value.html#spirit.advanced.customize.clear_value.expression_semantics">Expression
+<a name="spirit.advanced.customize.clear_value.expression_semantics"></a><h6>
+<a name="id859959"></a>
+ <a class="link" href="clear_value.html#spirit.advanced.customize.clear_value.expression_semantics">Expression
           Semantics</a>
- </h5>
+ </h6>
 <div class="informaltable"><table class="table">
 <colgroup>
 <col>
 <col>
 </colgroup>
 <thead><tr>
-<th><p>
+<th>
+ <p>
                   Expression
- </p></th>
-<th><p>
+ </p>
+ </th>
+<th>
+ <p>
                   Semantics
- </p></th>
+ </p>
+ </th>
 </tr></thead>
 <tbody><tr>
 <td>
-<p>
+ <p>
                   
 </p>
 <pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">clear_value</span><span class="special">&lt;</span><span class="identifier">Attrib</span><span class="special">&gt;::</span><span class="identifier">call</span><span class="special">(</span><span class="identifier">Attrib</span><span class="special">&amp;</span> <span class="identifier">attr</span><span class="special">)</span></pre>
 <p>
                 </p>
-</td>
-<td><p>
- Re-initialize the instance referred to by <tt class="computeroutput"><span class="identifier">attr</span></tt>
+ </td>
+<td>
+ <p>
+ Re-initialize the instance referred to by <code class="computeroutput"><span class="identifier">attr</span></code>
                   in the most efficient way.
- </p></td>
+ </p>
+ </td>
 </tr></tbody>
 </table></div>
-<a name="spirit.advanced.customize.clear_value.predefined_specializations"></a><h5>
-<a name="id736322"></a>
- <a href="clear_value.html#spirit.advanced.customize.clear_value.predefined_specializations">Predefined
+<a name="spirit.advanced.customize.clear_value.predefined_specializations"></a><h6>
+<a name="id860075"></a>
+ <a class="link" href="clear_value.html#spirit.advanced.customize.clear_value.predefined_specializations">Predefined
           Specializations</a>
- </h5>
+ </h6>
 <p>
           <a href="http://spirit.sourceforge.net" target="_top">Spirit</a> predefines specializations
           of this customization point for several types. The following table lists
@@ -214,90 +236,118 @@
 <col>
 </colgroup>
 <thead><tr>
-<th><p>
+<th>
+ <p>
                   Template Parameters
- </p></th>
-<th><p>
+ </p>
+ </th>
+<th>
+ <p>
                   Value
- </p></th>
+ </p>
+ </th>
 </tr></thead>
 <tbody>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
- </p></td>
-<td><p>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Attrib</span></code>
+ </p>
+ </td>
+<td>
+ <p>
                   Re-initialize using assignment of default constructed value.
- </p></td>
+ </p>
+ </td>
 </tr>
 <tr>
-<td><p>
- Any type <tt class="computeroutput"><span class="identifier">T</span></tt> for
- which <tt class="computeroutput"><span class="identifier">is_container</span><span class="special">&lt;&gt;::</span><span class="identifier">type</span></tt>
- is <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>
- </p></td>
-<td><p>
- Call the member function <tt class="computeroutput"><span class="identifier">attr</span><span class="special">.</span><span class="identifier">clear</span><span class="special">()</span></tt> for the passed attribute instance.
- </p></td>
+<td>
+ <p>
+ Any type <code class="computeroutput"><span class="identifier">T</span></code> for
+ which <code class="computeroutput"><span class="identifier">is_container</span><span class="special">&lt;&gt;::</span><span class="identifier">type</span></code>
+ is <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Call the member function <code class="computeroutput"><span class="identifier">attr</span><span class="special">.</span><span class="identifier">clear</span><span class="special">()</span></code> for the passed attribute instance.
+ </p>
+ </td>
 </tr>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">Attrib</span><span class="special">&gt;</span></tt>
- </p></td>
-<td><p>
- Clear the <tt class="computeroutput"><span class="identifier">optional</span></tt>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">Attrib</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Clear the <code class="computeroutput"><span class="identifier">optional</span></code>
                   instance and leave it uninitialized.
- </p></td>
+ </p>
+ </td>
 </tr>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">variant</span><span class="special">&lt;</span><span class="identifier">T1</span><span class="special">,</span>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">variant</span><span class="special">&lt;</span><span class="identifier">T1</span><span class="special">,</span>
                   <span class="identifier">T2</span><span class="special">,</span>
- <span class="special">...&gt;</span></tt>
- </p></td>
-<td><p>
- Invoke the <tt class="computeroutput"><span class="identifier">clear_value</span></tt>
+ <span class="special">...&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Invoke the <code class="computeroutput"><span class="identifier">clear_value</span></code>
                   customization point for the currently held value.
- </p></td>
+ </p>
+ </td>
 </tr>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">tuple</span><span class="special">&lt;</span><span class="identifier">T1</span><span class="special">,</span>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">tuple</span><span class="special">&lt;</span><span class="identifier">T1</span><span class="special">,</span>
                   <span class="identifier">T2</span><span class="special">,</span>
- <span class="special">...&gt;</span></tt>
- </p></td>
-<td><p>
- Invoke the <tt class="computeroutput"><span class="identifier">clear_value</span></tt>
+ <span class="special">...&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Invoke the <code class="computeroutput"><span class="identifier">clear_value</span></code>
                   customization point for all elements of the tuple.
- </p></td>
+ </p>
+ </td>
 </tr>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">unused_type</span></tt>
- </p></td>
-<td><p>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">unused_type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
                   Do nothing.
- </p></td>
+ </p>
+ </td>
 </tr>
 </tbody>
 </table></div>
-<a name="spirit.advanced.customize.clear_value.when_to_implement"></a><h5>
-<a name="id736793"></a>
- <a href="clear_value.html#spirit.advanced.customize.clear_value.when_to_implement">When
+<a name="spirit.advanced.customize.clear_value.when_to_implement"></a><h6>
+<a name="id860423"></a>
+ <a class="link" href="clear_value.html#spirit.advanced.customize.clear_value.when_to_implement">When
           to Implement</a>
- </h5>
+ </h6>
 <p>
- The customization point <tt class="computeroutput"><span class="identifier">clear_value</span></tt>
+ The customization point <code class="computeroutput"><span class="identifier">clear_value</span></code>
           needs to be implemented for a specific type whenever this type is to be
           used as an attribute to be stored into a STL container and if the type
           cannot be re-initialized using one of the specializations listed above.
           Examples for this might be types not being default constructible or container
- types not exposing a member function <tt class="computeroutput"><span class="identifier">clear</span><span class="special">()</span></tt>.
+ types not exposing a member function <code class="computeroutput"><span class="identifier">clear</span><span class="special">()</span></code>.
         </p>
-<a name="spirit.advanced.customize.clear_value.example"></a><h5>
-<a name="id736858"></a>
- Example
- </h5>
+<a name="spirit.advanced.customize.clear_value.example"></a><h6>
+<a name="id860458"></a>
+ <a class="link" href="clear_value.html#spirit.advanced.customize.clear_value.example">Example</a>
+ </h6>
 <p>
           TBD
         </p>

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/customize/extract_from.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/customize/extract_from.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize/extract_from.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -1,16 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Extract an
- Attribute Value to Generate Output (Karma)</title>
+<title>Extract an Attribute Value to Generate Output (Karma)</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
 <link rel="home" href="../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../customize.html" title=" Customization of Spirit's
- Attribute Handling">
-<link rel="previous" href="clear_value.html" title=" Re-Initialize
- an Attribute Value before Parsing (Qi)">
-<link rel="next" href="../../support.html" title=" Supporting libraries">
+<link rel="up" href="../customize.html" title="Customization of Spirit's Attribute Handling">
+<link rel="prev" href="clear_value.html" title="Re-Initialize an Attribute Value before Parsing (Qi)">
+<link rel="next" href="iterate.html" title="Extract Attribute Values to Generate Output from a Container (Karma)">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -23,75 +20,76 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="clear_value.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../customize.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="../../support.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="clear_value.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../customize.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="iterate.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.advanced.customize.extract_from"></a><a href="extract_from.html" title=" Extract an
- Attribute Value to Generate Output (Karma)"> Extract an
+<div class="section" title="Extract an Attribute Value to Generate Output (Karma)">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.advanced.customize.extract_from"></a><a class="link" href="extract_from.html" title="Extract an Attribute Value to Generate Output (Karma)"> Extract an
         Attribute Value to Generate Output (Karma)</a>
-</h4></div></div>
-<div></div>
-</div>
-<a name="spirit.advanced.customize.extract_from.extract_from"></a><h5>
-<a name="id736907"></a>
- extract_from
- </h5>
+</h4></div></div></div>
+<a name="spirit.advanced.customize.extract_from.extract_from"></a><h6>
+<a name="id860487"></a>
+ <a class="link" href="extract_from.html#spirit.advanced.customize.extract_from.extract_from">extract_from</a>
+ </h6>
 <p>
- Before generating output for an value this value needs to extracted from
- the attribute instance provided by the user. The customization point <tt class="computeroutput"><span class="identifier">extract_from</span></tt> is utilized to adapt this
+ Before generating output for a value this value needs to extracted from
+ the attribute instance provided by the user. The customization point <code class="computeroutput"><span class="identifier">extract_from</span></code> is utilized to adapt this
           extraction for any data type possibly used to store the values to output.
         </p>
-<p>
- Short description here...
- </p>
-<a name="spirit.advanced.customize.extract_from.module_headers"></a><h5>
-<a name="id736957"></a>
- <a href="extract_from.html#spirit.advanced.customize.extract_from.module_headers">Module
+<a name="spirit.advanced.customize.extract_from.module_headers"></a><h6>
+<a name="id860511"></a>
+ <a class="link" href="extract_from.html#spirit.advanced.customize.extract_from.module_headers">Module
           Headers</a>
- </h5>
+ </h6>
 <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">home</span><span class="special">/</span><span class="identifier">karma</span><span class="special">/</span><span class="identifier">detail</span><span class="special">/</span><span class="identifier">extract_from</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
- Also, see Include Structure.
+ Also, see <a class="link" href="../../structure/include.html" title="Include">Include Structure</a>.
         </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>
             This header file does not need to be included directly by any user program
             as it is normally included by other Spirit header files relying on its
             content.
           </p></td></tr>
 </table></div>
-<a name="spirit.advanced.customize.extract_from.namespace"></a><h5>
-<a name="id737096"></a>
- Namespace
- </h5>
+<a name="spirit.advanced.customize.extract_from.namespace"></a><h6>
+<a name="id860603"></a>
+ <a class="link" href="extract_from.html#spirit.advanced.customize.extract_from.namespace">Namespace</a>
+ </h6>
 <div class="informaltable"><table class="table">
 <colgroup><col></colgroup>
-<thead><tr><th><p>
+<thead><tr><th>
+ <p>
                   Name
- </p></th></tr></thead>
-<tbody><tr><td><p>
- <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span></tt>
- </p></td></tr></tbody>
+ </p>
+ </th></tr></thead>
+<tbody><tr><td>
+ <p>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span></code>
+ </p>
+ </td></tr></tbody>
 </table></div>
-<a name="spirit.advanced.customize.extract_from.synopsis"></a><h5>
-<a name="id737193"></a>
- Synopsis
- </h5>
+<a name="spirit.advanced.customize.extract_from.synopsis"></a><h6>
+<a name="id860676"></a>
+ <a class="link" href="extract_from.html#spirit.advanced.customize.extract_from.synopsis">Synopsis</a>
+ </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Attrib</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">extract_from_attribute</span><span class="special">;</span>
+<span class="keyword">struct</span> <span class="identifier">extract_from_attribute</span>
+<span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="special">&lt;</span><span class="identifier">unspecified</span><span class="special">&gt;</span> <span class="identifier">type</span><span class="special">;</span>
+ <span class="keyword">static</span> <span class="identifier">type</span> <span class="identifier">call</span><span class="special">(</span><span class="identifier">Attrib</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">attr</span><span class="special">);</span>
+<span class="special">};</span>
 </pre>
-<a name="spirit.advanced.customize.extract_from.template_parameters"></a><h5>
-<a name="id737287"></a>
- <a href="extract_from.html#spirit.advanced.customize.extract_from.template_parameters">Template
+<a name="spirit.advanced.customize.extract_from.template_parameters"></a><h6>
+<a name="id861439"></a>
+ <a class="link" href="extract_from.html#spirit.advanced.customize.extract_from.template_parameters">Template
           parameters</a>
- </h5>
+ </h6>
 <div class="informaltable"><table class="table">
 <colgroup>
 <col>
@@ -99,104 +97,124 @@
 <col>
 </colgroup>
 <thead><tr>
-<th><p>
+<th>
+ <p>
                   Parameter
- </p></th>
-<th><p>
+ </p>
+ </th>
+<th>
+ <p>
                   Description
- </p></th>
-<th><p>
+ </p>
+ </th>
+<th>
+ <p>
                   Default
- </p></th>
+ </p>
+ </th>
 </tr></thead>
 <tbody>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
- </p></td>
-<td><p>
- The type, <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Attrib</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The type, <code class="computeroutput"><span class="identifier">Attrib</span></code>
                   of the attribute to be used to generate output from.
- </p></td>
-<td><p>
+ </p>
+ </td>
+<td>
+ <p>
                   none
- </p></td>
+ </p>
+ </td>
 </tr>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">Enable</span></tt>
- </p></td>
-<td><p>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Enable</span></code>
+ </p>
+ </td>
+<td>
+ <p>
                   Helper template parameter usable to selectively enable or disable
- certain specializations of <tt class="computeroutput"><span class="identifier">clear_value</span></tt>
- utilizing SFINAE (i.e. <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span></tt>
- or <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span></tt>).
- </p></td>
-<td><p>
- <tt class="computeroutput"><span class="keyword">void</span></tt>
- </p></td>
+ certain specializations of <code class="computeroutput"><span class="identifier">clear_value</span></code>
+ utilizing SFINAE (i.e. <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span></code>
+ or <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span></code>).
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">void</span></code>
+ </p>
+ </td>
 </tr>
 </tbody>
 </table></div>
-<a name="spirit.advanced.customize.extract_from.notation"></a><h5>
-<a name="id737512"></a>
- Notation
- </h5>
-<div class="variablelist">
+<a name="spirit.advanced.customize.extract_from.notation"></a><h6>
+<a name="id861605"></a>
+ <a class="link" href="extract_from.html#spirit.advanced.customize.extract_from.notation">Notation</a>
+ </h6>
+<div class="variablelist" title="Notation">
 <p class="title"><b>Notation</b></p>
 <dl>
-<dt><span class="term"><tt class="computeroutput"><span class="identifier">Attrib</span></tt></span></dt>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Attrib</span></code></span></dt>
 <dd><p>
               A type to be used to generate output from.
             </p></dd>
-<dt><span class="term"><tt class="computeroutput"><span class="identifier">attr</span></tt></span></dt>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">attr</span></code></span></dt>
 <dd><p>
- A attribute instance of type <tt class="computeroutput"><span class="identifier">Attrib</span></tt>.
+ A attribute instance of type <code class="computeroutput"><span class="identifier">Attrib</span></code>.
             </p></dd>
 </dl>
 </div>
-<a name="spirit.advanced.customize.extract_from.expression_semantics"></a><h5>
-<a name="id737599"></a>
- <a href="extract_from.html#spirit.advanced.customize.extract_from.expression_semantics">Expression
+<a name="spirit.advanced.customize.extract_from.expression_semantics"></a><h6>
+<a name="id861671"></a>
+ <a class="link" href="extract_from.html#spirit.advanced.customize.extract_from.expression_semantics">Expression
           Semantics</a>
- </h5>
-<p>
- Semantics of an expression is defined only where it differs from, or is
- not defined in _concept-of<span class="underline">XXX</span>.
- </p>
+ </h6>
 <div class="informaltable"><table class="table">
 <colgroup>
 <col>
 <col>
 </colgroup>
 <thead><tr>
-<th><p>
+<th>
+ <p>
                   Expression
- </p></th>
-<th><p>
+ </p>
+ </th>
+<th>
+ <p>
                   Semantics
- </p></th>
+ </p>
+ </th>
 </tr></thead>
 <tbody><tr>
 <td>
-<p>
+ <p>
                   
 </p>
 <pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">extract_from_attribute</span><span class="special">&lt;</span><span class="identifier">Attrib</span><span class="special">&gt;::</span><span class="identifier">call</span><span class="special">(</span><span class="identifier">attr</span><span class="special">)</span></pre>
 <p>
                 </p>
-</td>
-<td><p>
+ </td>
+<td>
+ <p>
                   Extract the value to generate output from and return it to the
                   caller.
- </p></td>
+ </p>
+ </td>
 </tr></tbody>
 </table></div>
-<a name="spirit.advanced.customize.extract_from.predefined_specializations"></a><h5>
-<a name="id737742"></a>
- <a href="extract_from.html#spirit.advanced.customize.extract_from.predefined_specializations">Predefined
+<a name="spirit.advanced.customize.extract_from.predefined_specializations"></a><h6>
+<a name="id861769"></a>
+ <a class="link" href="extract_from.html#spirit.advanced.customize.extract_from.predefined_specializations">Predefined
           Specializations</a>
- </h5>
+ </h6>
 <p>
           <a href="http://spirit.sourceforge.net" target="_top">Spirit</a> predefines specializations
           of this customization point for several types. The following table lists
@@ -208,80 +226,100 @@
 <col>
 </colgroup>
 <thead><tr>
-<th><p>
+<th>
+ <p>
                   Template Parameters
- </p></th>
-<th><p>
+ </p>
+ </th>
+<th>
+ <p>
                   Value
- </p></th>
+ </p>
+ </th>
 </tr></thead>
 <tbody>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
- </p></td>
-<td><p>
- The exposed typedef <tt class="computeroutput"><span class="identifier">type</span></tt>
- is defined to <tt class="computeroutput"><span class="identifier">Attrib</span>
- <span class="keyword">const</span><span class="special">&amp;</span></tt>.
- The function <tt class="computeroutput"><span class="identifier">call</span><span class="special">()</span></tt> returns the argument by reference
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Attrib</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The exposed typedef <code class="computeroutput"><span class="identifier">type</span></code>
+ is defined to <code class="computeroutput"><span class="identifier">Attrib</span>
+ <span class="keyword">const</span><span class="special">&amp;</span></code>.
+ The function <code class="computeroutput"><span class="identifier">call</span><span class="special">()</span></code> returns the argument by reference
                   without change.
- </p></td>
+ </p>
+ </td>
 </tr>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">Attrib</span><span class="special">&gt;</span></tt>
- </p></td>
-<td><p>
- The exposed typedef <tt class="computeroutput"><span class="identifier">type</span></tt>
- is defined to <tt class="computeroutput"><span class="identifier">Attrib</span>
- <span class="keyword">const</span><span class="special">&amp;</span></tt>.
- The function <tt class="computeroutput"><span class="identifier">call</span><span class="special">()</span></tt> returns the value held by the
- <tt class="computeroutput"><span class="identifier">optional</span><span class="special">&lt;&gt;</span></tt>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">Attrib</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The exposed typedef <code class="computeroutput"><span class="identifier">type</span></code>
+ is defined to <code class="computeroutput"><span class="identifier">Attrib</span>
+ <span class="keyword">const</span><span class="special">&amp;</span></code>.
+ The function <code class="computeroutput"><span class="identifier">call</span><span class="special">()</span></code> returns the value held by the
+ <code class="computeroutput"><span class="identifier">optional</span><span class="special">&lt;&gt;</span></code>
                   argument by reference without change.
- </p></td>
+ </p>
+ </td>
 </tr>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">reference_wrapper</span><span class="special">&lt;</span><span class="identifier">Attrib</span><span class="special">&gt;</span></tt>
- </p></td>
-<td><p>
- The exposed typedef <tt class="computeroutput"><span class="identifier">type</span></tt>
- is defined to <tt class="computeroutput"><span class="identifier">Attrib</span>
- <span class="keyword">const</span><span class="special">&amp;</span></tt>.
- The function <tt class="computeroutput"><span class="identifier">call</span><span class="special">()</span></tt> returns the value held by the
- <tt class="computeroutput"><span class="identifier">reference_wrapper</span><span class="special">&lt;&gt;</span></tt> argument by reference without
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">reference_wrapper</span><span class="special">&lt;</span><span class="identifier">Attrib</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The exposed typedef <code class="computeroutput"><span class="identifier">type</span></code>
+ is defined to <code class="computeroutput"><span class="identifier">Attrib</span>
+ <span class="keyword">const</span><span class="special">&amp;</span></code>.
+ The function <code class="computeroutput"><span class="identifier">call</span><span class="special">()</span></code> returns the value held by the
+ <code class="computeroutput"><span class="identifier">reference_wrapper</span><span class="special">&lt;&gt;</span></code> argument by reference without
                   change.
- </p></td>
+ </p>
+ </td>
 </tr>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">unused_type</span></tt>
- </p></td>
-<td><p>
- The exposed typedef <tt class="computeroutput"><span class="identifier">type</span></tt>
- is defined to <tt class="computeroutput"><span class="identifier">unused_type</span></tt>.
- The function <tt class="computeroutput"><span class="identifier">call</span><span class="special">()</span></tt> returns an instance of <tt class="computeroutput"><span class="identifier">unused_type</span></tt>.
- </p></td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">unused_type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The exposed typedef <code class="computeroutput"><span class="identifier">type</span></code>
+ is defined to <code class="computeroutput"><span class="identifier">unused_type</span></code>.
+ The function <code class="computeroutput"><span class="identifier">call</span><span class="special">()</span></code> returns an instance of <code class="computeroutput"><span class="identifier">unused_type</span></code>.
+ </p>
+ </td>
 </tr>
 </tbody>
 </table></div>
-<a name="spirit.advanced.customize.extract_from.when_to_implement"></a><h5>
-<a name="id738237"></a>
- <a href="extract_from.html#spirit.advanced.customize.extract_from.when_to_implement">When
+<a name="spirit.advanced.customize.extract_from.when_to_implement"></a><h6>
+<a name="id862114"></a>
+ <a class="link" href="extract_from.html#spirit.advanced.customize.extract_from.when_to_implement">When
           to implement</a>
- </h5>
+ </h6>
 <p>
- The customization point <tt class="computeroutput"><span class="identifier">extract_from_attribute</span></tt>
+ The customization point <code class="computeroutput"><span class="identifier">extract_from_attribute</span></code>
           needs to be implemented for a specific type whenever the default implementation
           as shown above is not applicable. Examples for this could be that the type
- to be extracted is different from <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
+ to be extracted is different from <code class="computeroutput"><span class="identifier">Attrib</span></code>
           and is not copy constructible.
         </p>
-<a name="spirit.advanced.customize.extract_from.example"></a><h5>
-<a name="id738294"></a>
- Example
- </h5>
+<a name="spirit.advanced.customize.extract_from.example"></a><h6>
+<a name="id862147"></a>
+ <a class="link" href="extract_from.html#spirit.advanced.customize.extract_from.example">Example</a>
+ </h6>
 <p>
           TBD
         </p>
@@ -297,7 +335,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="clear_value.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../customize.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="../../support.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="clear_value.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../customize.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="iterate.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/customize/is_container.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/customize/is_container.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize/is_container.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -1,17 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Determine
- if a Type Should be Treated as a Container (Qi and Karma)</title>
+<title>Determine if a Type Should be Treated as a Container (Qi and Karma)</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
 <link rel="home" href="../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../customize.html" title=" Customization of Spirit's
- Attribute Handling">
-<link rel="previous" href="../customize.html" title=" Customization of Spirit's
- Attribute Handling">
-<link rel="next" href="transform.html" title=" Transform an
- Attribute to a Different Type (Qi and Karma)">
+<link rel="up" href="../customize.html" title="Customization of Spirit's Attribute Handling">
+<link rel="prev" href="../customize.html" title="Customization of Spirit's Attribute Handling">
+<link rel="next" href="transform.html" title="Transform an Attribute to a Different Type (Qi and Karma)">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -26,76 +22,75 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../customize.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../customize.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="transform.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.advanced.customize.is_container"></a><a href="is_container.html" title=" Determine
- if a Type Should be Treated as a Container (Qi and Karma)"> Determine
+<div class="section" title="Determine if a Type Should be Treated as a Container (Qi and Karma)">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.advanced.customize.is_container"></a><a class="link" href="is_container.html" title="Determine if a Type Should be Treated as a Container (Qi and Karma)"> Determine
         if a Type Should be Treated as a Container (Qi and Karma)</a>
-</h4></div></div>
-<div></div>
-</div>
-<a name="spirit.advanced.customize.is_container.is_container"></a><h5>
-<a name="id725294"></a>
- is_container
- </h5>
+</h4></div></div></div>
+<a name="spirit.advanced.customize.is_container.is_container"></a><h6>
+<a name="id846155"></a>
+ <a class="link" href="is_container.html#spirit.advanced.customize.is_container.is_container">is_container</a>
+ </h6>
 <p>
- The template <tt class="computeroutput"><span class="identifier">is_container</span></tt>
+ The template <code class="computeroutput"><span class="identifier">is_container</span></code>
           is a template meta-function used as an attribute customization point. It
- is invoked by the <span class="emphasis"><em>Qi</em></span> <a href="../../qi/reference/operator/sequence.html" title=" Sequence
- (a &gt;&gt;
- b)">Sequence</a>
- (<tt class="computeroutput"><span class="special">&gt;&gt;</span></tt>) and <span class="emphasis"><em>Karma</em></span>
- <a href="../../karma/reference/operator/sequence.html" title=" Sequences
- (a &lt;&lt;
- b)">Sequence (<tt class="computeroutput"><span class="special">&lt;&lt;</span></tt>)</a> operators in order to determine
+ is invoked by the <span class="emphasis"><em>Qi</em></span> <a class="link" href="../../qi/reference/operator/sequence.html" title="Sequence (a &gt;&gt; b)">Sequence</a>
+ (<code class="computeroutput"><span class="special">&gt;&gt;</span></code>) and <span class="emphasis"><em>Karma</em></span>
+ <a class="link" href="../../karma/reference/operator/sequence.html" title="Sequences (a &lt;&lt; b)">Sequence (<code class="computeroutput"><span class="special">&lt;&lt;</span></code>)</a> operators in order to determine
           whether a supplied attribute can potentially be treated as a container.
         </p>
-<a name="spirit.advanced.customize.is_container.header"></a><h5>
-<a name="id725389"></a>
- Header
- </h5>
+<a name="spirit.advanced.customize.is_container.header"></a><h6>
+<a name="id846210"></a>
+ <a class="link" href="is_container.html#spirit.advanced.customize.is_container.header">Header</a>
+ </h6>
 <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">home</span><span class="special">/</span><span class="identifier">support</span><span class="special">/</span><span class="identifier">container</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
- Also, see Include Structure.
+ Also, see <a class="link" href="../../structure/include.html" title="Include">Include Structure</a>.
         </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>
             This header file does not need to be included directly by any user program
             as it is normally included by other Spirit header files relying on its
             content.
           </p></td></tr>
 </table></div>
-<a name="spirit.advanced.customize.is_container.namespace"></a><h5>
-<a name="id725515"></a>
- Namespace
- </h5>
+<a name="spirit.advanced.customize.is_container.namespace"></a><h6>
+<a name="id846296"></a>
+ <a class="link" href="is_container.html#spirit.advanced.customize.is_container.namespace">Namespace</a>
+ </h6>
 <div class="informaltable"><table class="table">
 <colgroup><col></colgroup>
-<thead><tr><th><p>
+<thead><tr><th>
+ <p>
                   Name
- </p></th></tr></thead>
-<tbody><tr><td><p>
- <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span></tt>
- </p></td></tr></tbody>
+ </p>
+ </th></tr></thead>
+<tbody><tr><td>
+ <p>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span></code>
+ </p>
+ </td></tr></tbody>
 </table></div>
-<a name="spirit.advanced.customize.is_container.synopsis"></a><h5>
-<a name="id725612"></a>
- Synopsis
- </h5>
+<a name="spirit.advanced.customize.is_container.synopsis"></a><h6>
+<a name="id846369"></a>
+ <a class="link" href="is_container.html#spirit.advanced.customize.is_container.synopsis">Synopsis</a>
+ </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Container</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">is_container</span><span class="special">;</span>
+<span class="keyword">struct</span> <span class="identifier">is_container</span>
+<span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="special">&lt;</span><span class="identifier">unspecified</span><span class="special">&gt;</span> <span class="identifier">type</span><span class="special">;</span>
+<span class="special">};</span>
 </pre>
-<a name="spirit.advanced.customize.is_container.template_parameters"></a><h5>
-<a name="id725707"></a>
- <a href="is_container.html#spirit.advanced.customize.is_container.template_parameters">Template
+<a name="spirit.advanced.customize.is_container.template_parameters"></a><h6>
+<a name="id846467"></a>
+ <a class="link" href="is_container.html#spirit.advanced.customize.is_container.template_parameters">Template
           parameters</a>
- </h5>
+ </h6>
 <div class="informaltable"><table class="table">
 <colgroup>
 <col>
@@ -103,104 +98,130 @@
 <col>
 </colgroup>
 <thead><tr>
-<th><p>
+<th>
+ <p>
                   Parameter
- </p></th>
-<th><p>
+ </p>
+ </th>
+<th>
+ <p>
                   Description
- </p></th>
-<th><p>
+ </p>
+ </th>
+<th>
+ <p>
                   Default
- </p></th>
+ </p>
+ </th>
 </tr></thead>
 <tbody>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">Container</span></tt>
- </p></td>
-<td><p>
- The type, <tt class="computeroutput"><span class="identifier">Container</span></tt>
- needs to be tested whether it has to be treated as a container
- </p></td>
-<td><p>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Container</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The type, <code class="computeroutput"><span class="identifier">Container</span></code>
+ which needs to be tested whether it has to be treated as a container
+ </p>
+ </td>
+<td>
+ <p>
                   none
- </p></td>
+ </p>
+ </td>
 </tr>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">Enable</span></tt>
- </p></td>
-<td><p>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Enable</span></code>
+ </p>
+ </td>
+<td>
+ <p>
                   Helper template parameter usable to selectively enable or disable
- certain specializations of <tt class="computeroutput"><span class="identifier">is_container</span></tt>
- utilizing SFINAE (i.e. <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span></tt>
- or <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span></tt>).
- </p></td>
-<td><p>
- <tt class="computeroutput"><span class="keyword">void</span></tt>
- </p></td>
+ certain specializations of <code class="computeroutput"><span class="identifier">is_container</span></code>
+ utilizing SFINAE (i.e. <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span></code>
+ or <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span></code>).
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">void</span></code>
+ </p>
+ </td>
 </tr>
 </tbody>
 </table></div>
-<a name="spirit.advanced.customize.is_container.notation"></a><h5>
-<a name="id725932"></a>
- Notation
- </h5>
+<a name="spirit.advanced.customize.is_container.notation"></a><h6>
+<a name="id846633"></a>
+ <a class="link" href="is_container.html#spirit.advanced.customize.is_container.notation">Notation</a>
+ </h6>
 <div class="variablelist">
 <p class="title"><b></b></p>
 <dl>
-<dt><span class="term"><tt class="computeroutput"><span class="identifier">C</span></tt></span></dt>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">C</span></code></span></dt>
 <dd><p>
               A type to be tested whether it needs to be treated as a container.
             </p></dd>
-<dt><span class="term"><tt class="computeroutput"><span class="identifier">T1</span></tt>,
- <tt class="computeroutput"><span class="identifier">T2</span></tt>, ...</span></dt>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">T1</span></code>,
+ <code class="computeroutput"><span class="identifier">T2</span></code>, ...</span></dt>
 <dd><p>
               Arbitrary types
             </p></dd>
 </dl>
 </div>
-<a name="spirit.advanced.customize.is_container.expression_semantics"></a><h5>
-<a name="id726022"></a>
- <a href="is_container.html#spirit.advanced.customize.is_container.expression_semantics">Expression
+<a name="spirit.advanced.customize.is_container.expression_semantics"></a><h6>
+<a name="id846699"></a>
+ <a class="link" href="is_container.html#spirit.advanced.customize.is_container.expression_semantics">Expression
           Semantics</a>
- </h5>
+ </h6>
 <div class="informaltable"><table class="table">
 <colgroup>
 <col>
 <col>
 </colgroup>
 <thead><tr>
-<th><p>
+<th>
+ <p>
                   Expression
- </p></th>
-<th><p>
+ </p>
+ </th>
+<th>
+ <p>
                   Semantics
- </p></th>
+ </p>
+ </th>
 </tr></thead>
 <tbody><tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">is_container</span><span class="special">&lt;</span><span class="identifier">C</span><span class="special">&gt;::</span><span class="identifier">type</span></tt>
- </p></td>
-<td><p>
- Metafunction that evaluates to <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>
- if a given type, <tt class="computeroutput"><span class="identifier">C</span></tt>,
- is to be treated as a container, <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></tt>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">is_container</span><span class="special">&lt;</span><span class="identifier">C</span><span class="special">&gt;::</span><span class="identifier">type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Result of the metafunction that evaluates to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
+ if a given type, <code class="computeroutput"><span class="identifier">C</span></code>,
+ is to be treated as a container, <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>
                   otherwise (See <a href="../../../../../../../libs/mpl/doc/refmanual/integral-constant.html" target="_top">MPL
                   Boolean Constant</a>).
- </p></td>
+ </p>
+ </td>
 </tr></tbody>
 </table></div>
-<a name="spirit.advanced.customize.is_container.predefined_specializations"></a><h5>
-<a name="id726198"></a>
- <a href="is_container.html#spirit.advanced.customize.is_container.predefined_specializations">Predefined
+<a name="spirit.advanced.customize.is_container.predefined_specializations"></a><h6>
+<a name="id846828"></a>
+ <a class="link" href="is_container.html#spirit.advanced.customize.is_container.predefined_specializations">Predefined
           Specializations</a>
- </h5>
+ </h6>
 <p>
           <a href="http://spirit.sourceforge.net" target="_top">Spirit</a> predefines specializations
           of this customization point for several types. The following table lists
           those types together with the conditions for which the corresponding specializations
- will evaluate to <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt> (see <a href="../../../../../../../libs/mpl/doc/refmanual/integral-constant.html" target="_top">MPL
+ will evaluate to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code> (see <a href="../../../../../../../libs/mpl/doc/refmanual/integral-constant.html" target="_top">MPL
           Boolean Constant</a>):
         </p>
 <div class="informaltable"><table class="table">
@@ -209,87 +230,106 @@
 <col>
 </colgroup>
 <thead><tr>
-<th><p>
+<th>
+ <p>
                   Template Parameters
- </p></th>
-<th><p>
+ </p>
+ </th>
+<th>
+ <p>
                   Value
- </p></th>
+ </p>
+ </th>
 </tr></thead>
 <tbody>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">T</span></tt>
- </p></td>
-<td><p>
- Returns <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt> if <tt class="computeroutput"><span class="identifier">T</span></tt>
- has the following embedded types defined: <tt class="computeroutput"><span class="identifier">value_type</span></tt>,
- <tt class="computeroutput"><span class="identifier">iterator</span></tt>, <tt class="computeroutput"><span class="identifier">size_type</span></tt>, and<tt class="computeroutput"><span class="identifier">reference</span></tt>.
- Otherwise it will return <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></tt>.
- </p></td>
-</tr>
-<tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></tt>
- </p></td>
-<td><p>
- Returns <tt class="computeroutput"><span class="identifier">is_container</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">type</span></tt>
- </p></td>
-</tr>
-<tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">variant</span><span class="special">&lt;</span><span class="identifier">T1</span><span class="special">,</span>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">T</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code> if <code class="computeroutput"><span class="identifier">T</span></code>
+ has the following embedded types defined: <code class="computeroutput"><span class="identifier">value_type</span></code>,
+ <code class="computeroutput"><span class="identifier">iterator</span></code>, <code class="computeroutput"><span class="identifier">size_type</span></code>, and<code class="computeroutput"><span class="identifier">reference</span></code>.
+ Otherwise it will return <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns <code class="computeroutput"><span class="identifier">is_container</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">type</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">variant</span><span class="special">&lt;</span><span class="identifier">T1</span><span class="special">,</span>
                   <span class="identifier">T2</span><span class="special">,</span>
- <span class="special">...&gt;</span></tt>
- </p></td>
-<td><p>
- Returns <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt> if at least one of the
- <tt class="computeroutput"><span class="identifier">is_container</span><span class="special">&lt;</span><span class="identifier">TN</span><span class="special">&gt;::</span><span class="identifier">type</span></tt> returns <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>
- (where <tt class="computeroutput"><span class="identifier">TN</span></tt> is <tt class="computeroutput"><span class="identifier">T1</span></tt>, <tt class="computeroutput"><span class="identifier">T2</span></tt>,
- ...). Otherwise it will return <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></tt>.
- </p></td>
-</tr>
-<tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">unused_type</span></tt>
- </p></td>
-<td><p>
- Returns <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></tt>.
- </p></td>
+ <span class="special">...&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code> if at least one of the
+ <code class="computeroutput"><span class="identifier">is_container</span><span class="special">&lt;</span><span class="identifier">TN</span><span class="special">&gt;::</span><span class="identifier">type</span></code> returns <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
+ (where <code class="computeroutput"><span class="identifier">TN</span></code> is <code class="computeroutput"><span class="identifier">T1</span></code>, <code class="computeroutput"><span class="identifier">T2</span></code>,
+ ...). Otherwise it will return <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">unused_type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>.
+ </p>
+ </td>
 </tr>
 </tbody>
 </table></div>
-<a name="spirit.advanced.customize.is_container.when_to_implement"></a><h5>
-<a name="id726779"></a>
- <a href="is_container.html#spirit.advanced.customize.is_container.when_to_implement">When
+<a name="spirit.advanced.customize.is_container.when_to_implement"></a><h6>
+<a name="id847240"></a>
+ <a class="link" href="is_container.html#spirit.advanced.customize.is_container.when_to_implement">When
           to implement</a>
- </h5>
+ </h6>
 <p>
- The customization point <tt class="computeroutput"><span class="identifier">is_container</span></tt>
+ The customization point <code class="computeroutput"><span class="identifier">is_container</span></code>
           needs to be implemented for a specific type whenever this type is to be
           used as an attribute in place of a STL container. It is applicable for
           parsers (<span class="emphasis"><em>Spirit.Qi</em></span>) and generators (<span class="emphasis"><em>Spirit.Karma</em></span>).
           As a rule of thumb: it has to be implemented whenever a certain type is
           to be passed as an attribute to a parser or a generator normally exposing
- a STL container and if the type does not expose the interface of a STL
- container (i.e. <tt class="computeroutput"><span class="identifier">is_container</span><span class="special">&lt;</span><span class="identifier">C</span><span class="special">&gt;::</span><span class="identifier">type</span></tt>
- would normally return <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></tt>).
- These components have an attribute propagation rule in the form:
+ a STL container, <code class="computeroutput"><span class="identifier">C</span></code> and
+ if the type does not expose the interface of a STL container (i.e. <code class="computeroutput"><span class="identifier">is_container</span><span class="special">&lt;</span><span class="identifier">C</span><span class="special">&gt;::</span><span class="identifier">type</span></code> would normally return <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>). These components have an attribute
+ propagation rule in the form:
         </p>
 <pre class="programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--&gt;</span> <span class="identifier">Op</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>
 </pre>
 <p>
- where <tt class="computeroutput"><span class="identifier">Op</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></tt> stands
- for any meaningful operation on the component <tt class="computeroutput"><span class="identifier">a</span></tt>.
+ where <code class="computeroutput"><span class="identifier">Op</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code> stands
+ for any meaningful operation on the component <code class="computeroutput"><span class="identifier">a</span></code>.
         </p>
-<a name="spirit.advanced.customize.is_container.related_attribute_customization_points"></a><h5>
-<a name="id727008"></a>
- <a href="is_container.html#spirit.advanced.customize.is_container.related_attribute_customization_points">Related
+<a name="spirit.advanced.customize.is_container.related_attribute_customization_points"></a><h6>
+<a name="id848522"></a>
+ <a class="link" href="is_container.html#spirit.advanced.customize.is_container.related_attribute_customization_points">Related
           Attribute Customization Points</a>
- </h5>
+ </h6>
 <p>
           If this customization point is implemented, the following other customization
- points need to be implemented as well.
+ points might need to be implemented as well.
         </p>
 <div class="informaltable"><table class="table">
 <colgroup>
@@ -297,129 +337,153 @@
 <col>
 </colgroup>
 <thead><tr>
-<th><p>
+<th>
+ <p>
                   Name
- </p></th>
-<th><p>
+ </p>
+ </th>
+<th>
+ <p>
                   When to implement
- </p></th>
+ </p>
+ </th>
 </tr></thead>
 <tbody>
 <tr>
-<td><p>
- <a href="store_value/container_value.html" title="
- Determine the Type to be Stored in a Container (Qi)"><tt class="computeroutput"><span class="identifier">container_value</span></tt></a>
- </p></td>
-<td><p>
- Needs to be implemented whenever <tt class="computeroutput"><span class="identifier">is_container</span></tt>
+<td>
+ <p>
+ <a class="link" href="store_value/container_value.html" title="Determine the Type to be Stored in a Container (Qi)"><code class="computeroutput"><span class="identifier">container_value</span></code></a>
+ </p>
+ </td>
+<td>
+ <p>
+ Needs to be implemented whenever <code class="computeroutput"><span class="identifier">is_container</span></code>
                   is implemented.
- </p></td>
+ </p>
+ </td>
 </tr>
 <tr>
-<td><p>
- <a href="store_value/push_back.html" title="
- Store a Parsed Attribute Value into a Container (Qi)"><tt class="computeroutput"><span class="identifier">push_back_container</span></tt></a>
- </p></td>
-<td><p>
- Qi: List,
- Kleene,
- Plus,
- <a href="../../qi/reference/directive/repeat.html" title=" Repetition
- (repeat[])">Repeat</a>.
- </p></td>
-</tr>
-<tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">container_iterator</span></tt>
- </p></td>
-<td><p>
- Karma: <a href="../../karma/reference/operator/list.html" title=" Lists (a % b)">List
- (<tt class="computeroutput"><span class="special">%</span></tt>)</a>, <a href="../../karma/reference/operator/kleene.html" title=" Kleene Star
- (*a)">Kleene (unary
- <tt class="computeroutput"><span class="special">*</span></tt>)</a>, <a href="../../karma/reference/operator/plus.html" title=" Plus (+a)">Plus
- (unary <tt class="computeroutput"><span class="special">+</span></tt>)</a>,
- <a href="../../karma/reference/directive/repeat.html" title=" Repetition
- Directive (repeat[])">Repeat</a>.
- </p></td>
-</tr>
-<tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">begin_container</span></tt>
- </p></td>
-<td><p>
- Karma: <a href="../../karma/reference/operator/list.html" title=" Lists (a % b)">List
- (<tt class="computeroutput"><span class="special">%</span></tt>)</a>, <a href="../../karma/reference/operator/kleene.html" title=" Kleene Star
- (*a)">Kleene (unary
- <tt class="computeroutput"><span class="special">*</span></tt>)</a>, <a href="../../karma/reference/operator/plus.html" title=" Plus (+a)">Plus
- (unary <tt class="computeroutput"><span class="special">+</span></tt>)</a>,
- <a href="../../karma/reference/directive/repeat.html" title=" Repetition
- Directive (repeat[])">Repeat</a>.
- </p></td>
-</tr>
-<tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">end_container</span></tt>
- </p></td>
-<td><p>
- Karma: <a href="../../karma/reference/operator/list.html" title=" Lists (a % b)">List
- (<tt class="computeroutput"><span class="special">%</span></tt>)</a>, <a href="../../karma/reference/operator/kleene.html" title=" Kleene Star
- (*a)">Kleene (unary
- <tt class="computeroutput"><span class="special">*</span></tt>)</a>, <a href="../../karma/reference/operator/plus.html" title=" Plus (+a)">Plus
- (unary <tt class="computeroutput"><span class="special">+</span></tt>)</a>,
- <a href="../../karma/reference/directive/repeat.html" title=" Repetition
- Directive (repeat[])">Repeat</a>.
- </p></td>
-</tr>
-<tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">deref_iterator</span></tt>
- </p></td>
-<td><p>
- Karma: <a href="../../karma/reference/operator/list.html" title=" Lists (a % b)">List
- (<tt class="computeroutput"><span class="special">%</span></tt>)</a>, <a href="../../karma/reference/operator/kleene.html" title=" Kleene Star
- (*a)">Kleene (unary
- <tt class="computeroutput"><span class="special">*</span></tt>)</a>, <a href="../../karma/reference/operator/plus.html" title=" Plus (+a)">Plus
- (unary <tt class="computeroutput"><span class="special">+</span></tt>)</a>,
- <a href="../../karma/reference/directive/repeat.html" title=" Repetition
- Directive (repeat[])">Repeat</a>.
- </p></td>
-</tr>
-<tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">next_iterator</span></tt>
- </p></td>
-<td><p>
- Karma: <a href="../../karma/reference/operator/list.html" title=" Lists (a % b)">List
- (<tt class="computeroutput"><span class="special">%</span></tt>)</a>, <a href="../../karma/reference/operator/kleene.html" title=" Kleene Star
- (*a)">Kleene (unary
- <tt class="computeroutput"><span class="special">*</span></tt>)</a>, <a href="../../karma/reference/operator/plus.html" title=" Plus (+a)">Plus
- (unary <tt class="computeroutput"><span class="special">+</span></tt>)</a>,
- <a href="../../karma/reference/directive/repeat.html" title=" Repetition
- Directive (repeat[])">Repeat</a>.
- </p></td>
-</tr>
-<tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">compare_iterators</span></tt>
- </p></td>
-<td><p>
- Karma: <a href="../../karma/reference/operator/list.html" title=" Lists (a % b)">List
- (<tt class="computeroutput"><span class="special">%</span></tt>)</a>, <a href="../../karma/reference/operator/kleene.html" title=" Kleene Star
- (*a)">Kleene (unary
- <tt class="computeroutput"><span class="special">*</span></tt>)</a>, <a href="../../karma/reference/operator/plus.html" title=" Plus (+a)">Plus
- (unary <tt class="computeroutput"><span class="special">+</span></tt>)</a>,
- <a href="../../karma/reference/directive/repeat.html" title=" Repetition
- Directive (repeat[])">Repeat</a>.
- </p></td>
+<td>
+ <p>
+ <a class="link" href="store_value/push_back.html" title="Store a Parsed Attribute Value into a Container (Qi)"><code class="computeroutput"><span class="identifier">push_back_container</span></code></a>
+ </p>
+ </td>
+<td>
+ <p>
+ Qi: <a class="link" href="../../qi/reference/operator/list.html" title="List (a % b)">List</a>,
+ <a class="link" href="../../qi/reference/operator/kleene.html" title="Kleene (*a)">Kleene</a>,
+ <a class="link" href="../../qi/reference/operator/plus.html" title="Plus (+a)">Plus</a>,
+ <a class="link" href="../../qi/reference/directive/repeat.html" title="Repetition (repeat[])">Repeat</a>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <a class="link" href="iterate/container_iterator.html" title="Determine the Type of the Iterator of a Container (Karma)"><code class="computeroutput"><span class="identifier">container_iterator</span></code></a>
+ </p>
+ </td>
+<td>
+ <p>
+ Karma: <a class="link" href="../../karma/reference/operator/list.html" title="Lists (a % b)">List
+ (<code class="computeroutput"><span class="special">%</span></code>)</a>, <a class="link" href="../../karma/reference/operator/kleene.html" title="Kleene Star (*a)">Kleene (unary
+ <code class="computeroutput"><span class="special">*</span></code>)</a>, <a class="link" href="../../karma/reference/operator/plus.html" title="Plus (+a)">Plus
+ (unary <code class="computeroutput"><span class="special">+</span></code>)</a>,
+ <a class="link" href="../../karma/reference/directive/repeat.html" title="Repetition Directive (repeat[])">Repeat</a>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <a class="link" href="iterate/begin_container.html" title="Get the Iterator pointing to the Begin of a Container Attribute"><code class="computeroutput"><span class="identifier">begin_container</span></code></a>
+ </p>
+ </td>
+<td>
+ <p>
+ Karma: <a class="link" href="../../karma/reference/operator/list.html" title="Lists (a % b)">List
+ (<code class="computeroutput"><span class="special">%</span></code>)</a>, <a class="link" href="../../karma/reference/operator/kleene.html" title="Kleene Star (*a)">Kleene (unary
+ <code class="computeroutput"><span class="special">*</span></code>)</a>, <a class="link" href="../../karma/reference/operator/plus.html" title="Plus (+a)">Plus
+ (unary <code class="computeroutput"><span class="special">+</span></code>)</a>,
+ <a class="link" href="../../karma/reference/directive/repeat.html" title="Repetition Directive (repeat[])">Repeat</a>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <a class="link" href="iterate/end_container.html" title="Get the Iterator pointing to the End of a Container Attribute"><code class="computeroutput"><span class="identifier">end_container</span></code></a>
+ </p>
+ </td>
+<td>
+ <p>
+ Karma: <a class="link" href="../../karma/reference/operator/list.html" title="Lists (a % b)">List
+ (<code class="computeroutput"><span class="special">%</span></code>)</a>, <a class="link" href="../../karma/reference/operator/kleene.html" title="Kleene Star (*a)">Kleene (unary
+ <code class="computeroutput"><span class="special">*</span></code>)</a>, <a class="link" href="../../karma/reference/operator/plus.html" title="Plus (+a)">Plus
+ (unary <code class="computeroutput"><span class="special">+</span></code>)</a>,
+ <a class="link" href="../../karma/reference/directive/repeat.html" title="Repetition Directive (repeat[])">Repeat</a>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <a class="link" href="iterate/deref_iterator.html" title="Dereference the Iterator pointing into a Container Attribute"><code class="computeroutput"><span class="identifier">deref_iterator</span></code></a>
+ </p>
+ </td>
+<td>
+ <p>
+ Karma: <a class="link" href="../../karma/reference/operator/list.html" title="Lists (a % b)">List
+ (<code class="computeroutput"><span class="special">%</span></code>)</a>, <a class="link" href="../../karma/reference/operator/kleene.html" title="Kleene Star (*a)">Kleene (unary
+ <code class="computeroutput"><span class="special">*</span></code>)</a>, <a class="link" href="../../karma/reference/operator/plus.html" title="Plus (+a)">Plus
+ (unary <code class="computeroutput"><span class="special">+</span></code>)</a>,
+ <a class="link" href="../../karma/reference/directive/repeat.html" title="Repetition Directive (repeat[])">Repeat</a>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <a class="link" href="iterate/next_iterator.html" title="Increment the Iterator pointing into a Container Attribute"><code class="computeroutput"><span class="identifier">next_iterator</span></code></a>
+ </p>
+ </td>
+<td>
+ <p>
+ Karma: <a class="link" href="../../karma/reference/operator/list.html" title="Lists (a % b)">List
+ (<code class="computeroutput"><span class="special">%</span></code>)</a>, <a class="link" href="../../karma/reference/operator/kleene.html" title="Kleene Star (*a)">Kleene (unary
+ <code class="computeroutput"><span class="special">*</span></code>)</a>, <a class="link" href="../../karma/reference/operator/plus.html" title="Plus (+a)">Plus
+ (unary <code class="computeroutput"><span class="special">+</span></code>)</a>,
+ <a class="link" href="../../karma/reference/directive/repeat.html" title="Repetition Directive (repeat[])">Repeat</a>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <a class="link" href="iterate/compare_iterators.html" title="Compare two Iterator pointing into a Container Attribute for Equality"><code class="computeroutput"><span class="identifier">compare_iterators</span></code></a>
+ </p>
+ </td>
+<td>
+ <p>
+ Karma: <a class="link" href="../../karma/reference/operator/list.html" title="Lists (a % b)">List
+ (<code class="computeroutput"><span class="special">%</span></code>)</a>, <a class="link" href="../../karma/reference/operator/kleene.html" title="Kleene Star (*a)">Kleene (unary
+ <code class="computeroutput"><span class="special">*</span></code>)</a>, <a class="link" href="../../karma/reference/operator/plus.html" title="Plus (+a)">Plus
+ (unary <code class="computeroutput"><span class="special">+</span></code>)</a>,
+ <a class="link" href="../../karma/reference/directive/repeat.html" title="Repetition Directive (repeat[])">Repeat</a>.
+ </p>
+ </td>
 </tr>
 </tbody>
 </table></div>
-<a name="spirit.advanced.customize.is_container.example"></a><h5>
-<a name="id727794"></a>
- Example
- </h5>
+<a name="spirit.advanced.customize.is_container.example"></a><h6>
+<a name="id849055"></a>
+ <a class="link" href="is_container.html#spirit.advanced.customize.is_container.example">Example</a>
+ </h6>
 <p>
- TBD
+ For examples of how to use the customization point <code class="computeroutput"><span class="identifier">is_container</span></code>
+ please see here: <a class="link" href="iterate/container_iterator.html#spirit.advanced.customize.iterate.container_iterator.example">embedded_container_example</a>,
+ <a class="link" href="iterate/next_iterator.html#spirit.advanced.customize.iterate.next_iterator.example">use_as_container</a>,
+ and <a class="link" href="iterate/deref_iterator.html#spirit.advanced.customize.iterate.deref_iterator.example">counter_example</a>.
         </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>

Added: branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate.html
==============================================================================
--- (empty file)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Extract Attribute Values to Generate Output from a Container (Karma)</title>
+<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
+<link rel="up" href="../customize.html" title="Customization of Spirit's Attribute Handling">
+<link rel="prev" href="extract_from.html" title="Extract an Attribute Value to Generate Output (Karma)">
+<link rel="next" href="iterate/container_iterator.html" title="Determine the Type of the Iterator of a Container (Karma)">
+</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="extract_from.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../customize.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="iterate/container_iterator.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" title="Extract Attribute Values to Generate Output from a Container (Karma)">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.advanced.customize.iterate"></a><a class="link" href="iterate.html" title="Extract Attribute Values to Generate Output from a Container (Karma)"> Extract Attribute
+ Values to Generate Output from a Container (Karma)</a>
+</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="iterate/container_iterator.html">
+ Determine the Type of the Iterator of a Container (Karma)</a></span></dt>
+<dt><span class="section"><a href="iterate/begin_container.html">
+ Get the Iterator pointing to the Begin of a Container Attribute</a></span></dt>
+<dt><span class="section"><a href="iterate/end_container.html">
+ Get the Iterator pointing to the End of a Container Attribute</a></span></dt>
+<dt><span class="section"><a href="iterate/next_iterator.html">
+ Increment the Iterator pointing into a Container Attribute</a></span></dt>
+<dt><span class="section"><a href="iterate/deref_iterator.html">
+ Dereference the Iterator pointing into a Container Attribute</a></span></dt>
+<dt><span class="section"><a href="iterate/compare_iterators.html">
+ Compare two Iterator pointing into a Container Attribute for Equality</a></span></dt>
+</dl></div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2001-2009 Joel
+ de Guzman, Hartmut Kaiser<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="extract_from.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../customize.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="iterate/container_iterator.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/begin_container.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/begin_container.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/begin_container.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -28,7 +28,7 @@
           Get the Iterator pointing to the Begin of a Container Attribute</a>
 </h5></div></div></div>
 <a name="spirit.advanced.customize.iterate.begin_container.begin_container"></a><h6>
-<a name="id930301"></a>
+<a name="id866207"></a>
             <a class="link" href="begin_container.html#spirit.advanced.customize.iterate.begin_container.begin_container">begin_container</a>
           </h6>
 <p>
@@ -41,7 +41,7 @@
             holding the attributes to generate output from.
           </p>
 <a name="spirit.advanced.customize.iterate.begin_container.module_headers"></a><h6>
-<a name="id930369"></a>
+<a name="id866276"></a>
             <a class="link" href="begin_container.html#spirit.advanced.customize.iterate.begin_container.module_headers">Module
             Headers</a>
           </h6>
@@ -62,7 +62,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.advanced.customize.iterate.begin_container.namespace"></a><h6>
-<a name="id930457"></a>
+<a name="id866363"></a>
             <a class="link" href="begin_container.html#spirit.advanced.customize.iterate.begin_container.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -79,14 +79,18 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.begin_container.synopsis"></a><h6>
-<a name="id930535"></a>
+<a name="id866441"></a>
             <a class="link" href="begin_container.html#spirit.advanced.customize.iterate.begin_container.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Container</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">begin_container</span><span class="special">;</span>
+<span class="keyword">struct</span> <span class="identifier">begin_container</span>
+<span class="special">{</span>
+ <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">container_iterator</span><span class="special">&lt;</span><span class="identifier">Container</span><span class="special">&gt;::</span><span class="identifier">type</span>
+ <span class="identifier">call</span><span class="special">(</span><span class="identifier">Container</span><span class="special">&amp;</span> <span class="identifier">c</span><span class="special">);</span>
+<span class="special">};</span>
 </pre>
 <a name="spirit.advanced.customize.iterate.begin_container.template_parameters"></a><h6>
-<a name="id932247"></a>
+<a name="id866567"></a>
             <a class="link" href="begin_container.html#spirit.advanced.customize.iterate.begin_container.template_parameters">Template
             parameters</a>
           </h6>
@@ -156,7 +160,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.begin_container.notation"></a><h6>
-<a name="id932412"></a>
+<a name="id866733"></a>
             <a class="link" href="begin_container.html#spirit.advanced.customize.iterate.begin_container.notation">Notation</a>
           </h6>
 <div class="variablelist">
@@ -173,7 +177,7 @@
 </dl>
 </div>
 <a name="spirit.advanced.customize.iterate.begin_container.expression_semantics"></a><h6>
-<a name="id932477"></a>
+<a name="id866798"></a>
             <a class="link" href="begin_container.html#spirit.advanced.customize.iterate.begin_container.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -232,7 +236,7 @@
             </li>
 </ul></div>
 <a name="spirit.advanced.customize.iterate.begin_container.predefined_specializations"></a><h6>
-<a name="id932643"></a>
+<a name="id866963"></a>
             <a class="link" href="begin_container.html#spirit.advanced.customize.iterate.begin_container.predefined_specializations">Predefined
             Specializations</a>
           </h6>
@@ -299,7 +303,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.begin_container.when_to_implement"></a><h6>
-<a name="id932830"></a>
+<a name="id867840"></a>
             <a class="link" href="begin_container.html#spirit.advanced.customize.iterate.begin_container.when_to_implement">When
             to implement</a>
           </h6>
@@ -314,13 +318,13 @@
             would normally return <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>).
           </p>
 <a name="spirit.advanced.customize.iterate.begin_container.related_attribute_customization_points"></a><h6>
-<a name="id932901"></a>
+<a name="id867911"></a>
             <a class="link" href="begin_container.html#spirit.advanced.customize.iterate.begin_container.related_attribute_customization_points">Related
             Attribute Customization Points</a>
           </h6>
 <p>
             If this customization point is implemented, the following other customization
- points need to be implemented as well.
+ points might need to be implemented as well.
           </p>
 <div class="informaltable"><table class="table">
 <colgroup>
@@ -440,11 +444,14 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.begin_container.example"></a><h6>
-<a name="id933388"></a>
+<a name="id868398"></a>
             <a class="link" href="begin_container.html#spirit.advanced.customize.iterate.begin_container.example">Example</a>
           </h6>
 <p>
- TBD
+ For examples of how to use the customization point <code class="computeroutput"><span class="identifier">begin_container</span></code>
+ please see here: <a class="link" href="container_iterator.html#spirit.advanced.customize.iterate.container_iterator.example">embedded_container_example</a>,
+ <a class="link" href="next_iterator.html#spirit.advanced.customize.iterate.next_iterator.example">use_as_container</a>,
+ and <a class="link" href="deref_iterator.html#spirit.advanced.customize.iterate.deref_iterator.example">counter_example</a>.
           </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/compare_iterators.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/compare_iterators.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/compare_iterators.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -28,14 +28,21 @@
           Compare two Iterator pointing into a Container Attribute for Equality</a>
 </h5></div></div></div>
 <a name="spirit.advanced.customize.iterate.compare_iterators.compare_iterators"></a><h6>
-<a name="id936668"></a>
+<a name="id880314"></a>
             <a class="link" href="compare_iterators.html#spirit.advanced.customize.iterate.compare_iterators.compare_iterators">compare_iterators</a>
           </h6>
 <p>
- Short description here...
+ The template <code class="computeroutput"><span class="identifier">compare_iterators</span></code>
+ is a type used as an attribute customization point. It is invoked by
+ the <span class="emphasis"><em>Karma</em></span> repetitive generators (such as <a class="link" href="../../../karma/reference/operator/list.html" title="Lists (a % b)">List
+ (<code class="computeroutput"><span class="special">%</span></code>)</a>, <a class="link" href="../../../karma/reference/operator/kleene.html" title="Kleene Star (*a)">Kleene
+ (unary <code class="computeroutput"><span class="special">*</span></code>)</a>, <a class="link" href="../../../karma/reference/operator/plus.html" title="Plus (+a)">Plus (unary <code class="computeroutput"><span class="special">+</span></code>)</a>, and <a class="link" href="../../../karma/reference/directive/repeat.html" title="Repetition Directive (repeat[])">Repeat</a>)
+ in order to compare the current iterator (returned either from <a class="link" href="begin_container.html" title="Get the Iterator pointing to the Begin of a Container Attribute"><code class="computeroutput"><span class="identifier">begin_container</span></code></a> or from <a class="link" href="next_iterator.html" title="Increment the Iterator pointing into a Container Attribute"><code class="computeroutput"><span class="identifier">next_iterator</span></code></a>) with the end
+ iterator (returned from <a class="link" href="end_container.html" title="Get the Iterator pointing to the End of a Container Attribute"><code class="computeroutput"><span class="identifier">end_container</span></code></a>) in order to find
+ the end of the element sequence to gerenate output for.
           </p>
 <a name="spirit.advanced.customize.iterate.compare_iterators.module_headers"></a><h6>
-<a name="id936684"></a>
+<a name="id880411"></a>
             <a class="link" href="compare_iterators.html#spirit.advanced.customize.iterate.compare_iterators.module_headers">Module
             Headers</a>
           </h6>
@@ -56,7 +63,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.advanced.customize.iterate.compare_iterators.namespace"></a><h6>
-<a name="id936772"></a>
+<a name="id880499"></a>
             <a class="link" href="compare_iterators.html#spirit.advanced.customize.iterate.compare_iterators.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -72,14 +79,226 @@
                   </p>
                   </td></tr></tbody>
 </table></div>
+<a name="spirit.advanced.customize.iterate.compare_iterators.synopsis"></a><h6>
+<a name="id880577"></a>
+ <a class="link" href="compare_iterators.html#spirit.advanced.customize.iterate.compare_iterators.synopsis">Synopsis</a>
+ </h6>
+<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">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">compare_iterators</span>
+<span class="special">{</span>
+ <span class="keyword">static</span> <span class="keyword">bool</span> <span class="identifier">call</span><span class="special">(</span><span class="identifier">Iterator</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">it1</span><span class="special">,</span> <span class="identifier">Iterator</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">it2</span><span class="special">);</span>
+<span class="special">};</span>
+</pre>
+<a name="spirit.advanced.customize.iterate.compare_iterators.template_parameters"></a><h6>
+<a name="id880710"></a>
+ <a class="link" href="compare_iterators.html#spirit.advanced.customize.iterate.compare_iterators.template_parameters">Template
+ parameters</a>
+ </h6>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Parameter
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+<th>
+ <p>
+ Default
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Iterator</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The type, <code class="computeroutput"><span class="identifier">Iterator</span></code>
+ of the iterator to dereference. This is the same as the type
+ returned by the customization point <a class="link" href="container_iterator.html" title="Determine the Type of the Iterator of a Container (Karma)"><code class="computeroutput"><span class="identifier">container_iterator</span></code></a>.
+ </p>
+ </td>
+<td>
+ <p>
+ none
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Enable</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Helper template parameter usable to selectively enable or disable
+ certain specializations of <code class="computeroutput"><span class="identifier">compare_iterators</span></code>
+ utilizing SFINAE (i.e. <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span></code>
+ or <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span></code>).
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">void</span></code>
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+<a name="spirit.advanced.customize.iterate.compare_iterators.notation"></a><h6>
+<a name="id880885"></a>
+ <a class="link" href="compare_iterators.html#spirit.advanced.customize.iterate.compare_iterators.notation">Notation</a>
+ </h6>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Iterator</span></code></span></dt>
+<dd><p>
+ An iterator type.
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">it1</span></code>,
+ <code class="computeroutput"><span class="identifier">it2</span></code></span></dt>
+<dd><p>
+ Instance of iterators of type, <code class="computeroutput"><span class="identifier">Iterator</span></code>.
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">C</span></code></span></dt>
+<dd><p>
+ A container type a iterator type, <code class="computeroutput"><span class="identifier">Iterator</span></code>
+ belongs to.
+ </p></dd>
+</dl>
+</div>
+<a name="spirit.advanced.customize.iterate.compare_iterators.expression_semantics"></a><h6>
+<a name="id880982"></a>
+ <a class="link" href="compare_iterators.html#spirit.advanced.customize.iterate.compare_iterators.expression_semantics">Expression
+ Semantics</a>
+ </h6>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Expression
+ </p>
+ </th>
+<th>
+ <p>
+ Semantics
+ </p>
+ </th>
+</tr></thead>
+<tbody><tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">compare_iterators</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">&gt;::</span><span class="identifier">call</span><span class="special">(</span><span class="identifier">it1</span><span class="special">,</span> <span class="identifier">it2</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns whether the iterators <code class="computeroutput"><span class="identifier">it1</span></code>
+ <code class="computeroutput"><span class="identifier">it2</span></code> are to be
+ treated as beeing equal.
+ </p>
+ </td>
+</tr></tbody>
+</table></div>
+<a name="spirit.advanced.customize.iterate.compare_iterators.predefined_specializations"></a><h6>
+<a name="id881101"></a>
+ <a class="link" href="compare_iterators.html#spirit.advanced.customize.iterate.compare_iterators.predefined_specializations">Predefined
+ Specializations</a>
+ </h6>
+<p>
+ Spirit predefines
+ specializations of this customization point for several types. The following
+ table lists those types together with the types returned by the embedded
+ typedef <code class="computeroutput"><span class="identifier">type</span></code>:
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Template Parameters
+ </p>
+ </th>
+<th>
+ <p>
+ Value
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Iterator</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The function <code class="computeroutput"><span class="identifier">call</span><span class="special">()</span></code> returns it1 == it2.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">unused_type</span></code><code class="computeroutput">
+ <span class="keyword">const</span><span class="special">*</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The function <code class="computeroutput"><span class="identifier">call</span><span class="special">()</span></code> always returns false.
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+<a name="spirit.advanced.customize.iterate.compare_iterators.when_to_implement"></a><h6>
+<a name="id881245"></a>
+ <a class="link" href="compare_iterators.html#spirit.advanced.customize.iterate.compare_iterators.when_to_implement">When
+ to implement</a>
+ </h6>
+<p>
+ The customization point <code class="computeroutput"><span class="identifier">compare_iterators</span></code>
+ needs to be implemented for a specific iterator type whenever the container
+ this iterator belongs to is to be used as an attribute in place of a
+ STL container. It is applicable for generators (<span class="emphasis"><em>Spirit.Karma</em></span>)
+ only. As a rule of thumb: it has to be implemented whenever a certain
+ iterator type belongs to a container which is to be passed as an attribute
+ to a generator normally exposing a STL container, <code class="computeroutput"><span class="identifier">C</span></code>
+ and if the container type does not expose the interface of a STL container
+ (i.e. <code class="computeroutput"><span class="identifier">is_container</span><span class="special">&lt;</span><span class="identifier">C</span><span class="special">&gt;::</span><span class="identifier">type</span></code> would normally return <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>).
+ </p>
 <a name="spirit.advanced.customize.iterate.compare_iterators.related_attribute_customization_points"></a><h6>
-<a name="id936848"></a>
+<a name="id881316"></a>
             <a class="link" href="compare_iterators.html#spirit.advanced.customize.iterate.compare_iterators.related_attribute_customization_points">Related
             Attribute Customization Points</a>
           </h6>
 <p>
             If this customization point is implemented, the following other customization
- points need to be implemented as well.
+ points might need to be implemented as well.
           </p>
 <div class="informaltable"><table class="table">
 <colgroup>
@@ -199,11 +418,12 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.compare_iterators.example"></a><h6>
-<a name="id937608"></a>
+<a name="id881803"></a>
             <a class="link" href="compare_iterators.html#spirit.advanced.customize.iterate.compare_iterators.example">Example</a>
           </h6>
 <p>
- TBD
+ For an example of how to use the customization point <code class="computeroutput"><span class="identifier">compare_iterators</span></code>
+ please see here: <a class="link" href="next_iterator.html#spirit.advanced.customize.iterate.next_iterator.example">use_as_container</a>.
           </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/container_iterator.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/container_iterator.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/container_iterator.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -28,7 +28,7 @@
           Determine the Type of the Iterator of a Container (Karma)</a>
 </h5></div></div></div>
 <a name="spirit.advanced.customize.iterate.container_iterator.container_iterator"></a><h6>
-<a name="id928876"></a>
+<a name="id862185"></a>
             <a class="link" href="container_iterator.html#spirit.advanced.customize.iterate.container_iterator.container_iterator">container_iterator</a>
           </h6>
 <p>
@@ -41,7 +41,7 @@
             the items to be exposed as the elements of a container.
           </p>
 <a name="spirit.advanced.customize.iterate.container_iterator.module_headers"></a><h6>
-<a name="id928945"></a>
+<a name="id862253"></a>
             <a class="link" href="container_iterator.html#spirit.advanced.customize.iterate.container_iterator.module_headers">Module
             Headers</a>
           </h6>
@@ -62,7 +62,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.advanced.customize.iterate.container_iterator.namespace"></a><h6>
-<a name="id929032"></a>
+<a name="id862341"></a>
             <a class="link" href="container_iterator.html#spirit.advanced.customize.iterate.container_iterator.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -79,14 +79,17 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.container_iterator.synopsis"></a><h6>
-<a name="id929110"></a>
+<a name="id862419"></a>
             <a class="link" href="container_iterator.html#spirit.advanced.customize.iterate.container_iterator.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Container</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">container_iterator</span><span class="special">;</span>
+<span class="keyword">struct</span> <span class="identifier">container_iterator</span>
+<span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="special">&lt;</span><span class="identifier">unspecified</span><span class="special">&gt;</span> <span class="identifier">type</span><span class="special">;</span>
+<span class="special">};</span>
 </pre>
 <a name="spirit.advanced.customize.iterate.container_iterator.template_parameters"></a><h6>
-<a name="id929178"></a>
+<a name="id862517"></a>
             <a class="link" href="container_iterator.html#spirit.advanced.customize.iterate.container_iterator.template_parameters">Template
             parameters</a>
           </h6>
@@ -155,7 +158,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.container_iterator.notation"></a><h6>
-<a name="id929343"></a>
+<a name="id862683"></a>
             <a class="link" href="container_iterator.html#spirit.advanced.customize.iterate.container_iterator.notation">Notation</a>
           </h6>
 <div class="variablelist">
@@ -168,7 +171,7 @@
 </dl>
 </div>
 <a name="spirit.advanced.customize.iterate.container_iterator.expression_semantics"></a><h6>
-<a name="id929383"></a>
+<a name="id862722"></a>
             <a class="link" href="container_iterator.html#spirit.advanced.customize.iterate.container_iterator.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -225,7 +228,7 @@
             </li>
 </ul></div>
 <a name="spirit.advanced.customize.iterate.container_iterator.predefined_specializations"></a><h6>
-<a name="id929528"></a>
+<a name="id862867"></a>
             <a class="link" href="container_iterator.html#spirit.advanced.customize.iterate.container_iterator.predefined_specializations">Predefined
             Specializations</a>
           </h6>
@@ -285,7 +288,7 @@
                   </td>
 <td>
                   <p>
- Returns <code class="computeroutput"><span class="identifier">unused_type</span>
+ Returns <code class="computeroutput"><span class="identifier">unused_type</span></code><code class="computeroutput">
                     <span class="keyword">const</span><span class="special">*</span></code>.
                   </p>
                   </td>
@@ -293,7 +296,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.container_iterator.when_to_implement"></a><h6>
-<a name="id929713"></a>
+<a name="id863055"></a>
             <a class="link" href="container_iterator.html#spirit.advanced.customize.iterate.container_iterator.when_to_implement">When
             to implement</a>
           </h6>
@@ -308,13 +311,13 @@
             would normally return <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>).
           </p>
 <a name="spirit.advanced.customize.iterate.container_iterator.related_attribute_customization_points"></a><h6>
-<a name="id929784"></a>
+<a name="id863125"></a>
             <a class="link" href="container_iterator.html#spirit.advanced.customize.iterate.container_iterator.related_attribute_customization_points">Related
             Attribute Customization Points</a>
           </h6>
 <p>
             If this customization point is implemented, the following other customization
- points need to be implemented as well.
+ points might need to be implemented as well.
           </p>
 <div class="informaltable"><table class="table">
 <colgroup>
@@ -434,11 +437,159 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.container_iterator.example"></a><h6>
-<a name="id930271"></a>
+<a name="id864916"></a>
             <a class="link" href="container_iterator.html#spirit.advanced.customize.iterate.container_iterator.example">Example</a>
           </h6>
 <p>
- TBD
+ Here are the header files needed to make the example code below compile:
+ </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">karma</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">iostream</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">vector</span><span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+ The example (for the full source code please see here: customize_embedded_container.cpp)
+ uses the data structure
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">client</span>
+<span class="special">{</span>
+ <span class="keyword">struct</span> <span class="identifier">embedded_container</span>
+ <span class="special">{</span>
+ <span class="comment">// expose the iterator of the embedded vector as our iterator
+</span> <span class="keyword">typedef</span> <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">const_iterator</span> <span class="identifier">iterator</span><span class="special">;</span>
+
+ <span class="comment">// expose the type of the held data elements as our type
+</span> <span class="keyword">typedef</span> <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">value_type</span> <span class="identifier">type</span><span class="special">;</span>
+
+ <span class="comment">// this is the vector holding the actual elements we need to generate
+</span> <span class="comment">// output from
+</span> <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">data</span><span class="special">;</span>
+ <span class="special">};</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+ as a direct container attribute to the <a class="link" href="../../../karma/reference/operator/list.html" title="Lists (a % b)">List
+ (<code class="computeroutput"><span class="special">%</span></code>)</a> generator. In
+ order to make this data structure compatible we need to specialize a
+ couple of attribute customization points: <a class="link" href="../is_container.html" title="Determine if a Type Should be Treated as a Container (Qi and Karma)"><code class="computeroutput"><span class="identifier">is_container</span></code></a>, <a class="link" href="container_iterator.html" title="Determine the Type of the Iterator of a Container (Karma)"><code class="computeroutput"><span class="identifier">container_iterator</span></code></a>, <a class="link" href="begin_container.html" title="Get the Iterator pointing to the Begin of a Container Attribute"><code class="computeroutput"><span class="identifier">begin_container</span></code></a>, and <a class="link" href="end_container.html" title="Get the Iterator pointing to the End of a Container Attribute"><code class="computeroutput"><span class="identifier">end_container</span></code></a>. As you can see
+ the specializations simply expose the embedded <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> as the container to use. We don't
+ need to specialize the customization points related to iterators (<a class="link" href="deref_iterator.html" title="Dereference the Iterator pointing into a Container Attribute"><code class="computeroutput"><span class="identifier">deref_iterator</span></code></a>, <a class="link" href="next_iterator.html" title="Increment the Iterator pointing into a Container Attribute"><code class="computeroutput"><span class="identifier">next_iterator</span></code></a>, and <a class="link" href="compare_iterators.html" title="Compare two Iterator pointing into a Container Attribute for Equality"><code class="computeroutput"><span class="identifier">compare_iterators</span></code></a>) as we expose
+ a standard iterator and the default implementation of these customizations
+ handles standard iterators out of the box.
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="comment">// All specializations of attribute customization points have to be placed into
+</span><span class="comment">// the namespace boost::spirit::traits.
+</span><span class="comment">//
+</span><span class="comment">// Note that all templates below are specialized using the 'const' type.
+</span><span class="comment">// This is necessary as all attributes in Karma are 'const'.
+</span><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">spirit</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">traits</span>
+<span class="special">{</span>
+ <span class="comment">// The specialization of the template 'is_container&lt;&gt;' will tell the
+</span> <span class="comment">// library to treat the type 'client::embedded_container' as a
+</span> <span class="comment">// container holding the items to generate output from.
+</span> <span class="keyword">template</span> <span class="special">&lt;&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">is_container</span><span class="special">&lt;</span><span class="identifier">client</span><span class="special">::</span><span class="identifier">embedded_container</span> <span class="keyword">const</span><span class="special">&gt;</span>
+ <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span>
+ <span class="special">{};</span>
+
+ <span class="comment">// The specialization of the template 'container_iterator&lt;&gt;' will be
+</span> <span class="comment">// invoked by the library to evaluate the iterator type to be used
+</span> <span class="comment">// for iterating the data elements in the container. We simply return
+</span> <span class="comment">// the type of the iterator exposed by the embedded 'std::vector&lt;int&gt;'.
+</span> <span class="keyword">template</span> <span class="special">&lt;&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">container_iterator</span><span class="special">&lt;</span><span class="identifier">client</span><span class="special">::</span><span class="identifier">embedded_container</span> <span class="keyword">const</span><span class="special">&gt;</span>
+ <span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="identifier">client</span><span class="special">::</span><span class="identifier">embedded_container</span><span class="special">::</span><span class="identifier">iterator</span> <span class="identifier">type</span><span class="special">;</span>
+ <span class="special">};</span>
+
+ <span class="comment">// The specialization of the templates 'begin_container&lt;&gt;' and
+</span> <span class="comment">// 'end_container&lt;&gt;' below will be used by the library to get the iterators
+</span> <span class="comment">// pointing to the begin and the end of the data to generate output from.
+</span> <span class="comment">// These specializations simply return the 'begin' and 'end' iterators as
+</span> <span class="comment">// exposed by the embedded 'std::vector&lt;int&gt;'.
+</span> <span class="comment">//
+</span> <span class="comment">// The passed argument refers to the attribute instance passed to the list
+</span> <span class="comment">// generator.
+</span> <span class="keyword">template</span> <span class="special">&lt;&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">begin_container</span><span class="special">&lt;</span><span class="identifier">client</span><span class="special">::</span><span class="identifier">embedded_container</span> <span class="keyword">const</span><span class="special">&gt;</span>
+ <span class="special">{</span>
+ <span class="keyword">static</span> <span class="identifier">client</span><span class="special">::</span><span class="identifier">embedded_container</span><span class="special">::</span><span class="identifier">iterator</span>
+ <span class="identifier">call</span><span class="special">(</span><span class="identifier">client</span><span class="special">::</span><span class="identifier">embedded_container</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">d</span><span class="special">)</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">d</span><span class="special">.</span><span class="identifier">data</span><span class="special">.</span><span class="identifier">begin</span><span class="special">();</span>
+ <span class="special">}</span>
+ <span class="special">};</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">end_container</span><span class="special">&lt;</span><span class="identifier">client</span><span class="special">::</span><span class="identifier">embedded_container</span> <span class="keyword">const</span><span class="special">&gt;</span>
+ <span class="special">{</span>
+ <span class="keyword">static</span> <span class="identifier">client</span><span class="special">::</span><span class="identifier">embedded_container</span><span class="special">::</span><span class="identifier">iterator</span>
+ <span class="identifier">call</span><span class="special">(</span><span class="identifier">client</span><span class="special">::</span><span class="identifier">embedded_container</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">d</span><span class="special">)</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">d</span><span class="special">.</span><span class="identifier">data</span><span class="special">.</span><span class="identifier">end</span><span class="special">();</span>
+ <span class="special">}</span>
+ <span class="special">};</span>
+<span class="special">}}}</span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+ The last code snippet shows an example using an instance of the data
+ structure <code class="computeroutput"><span class="identifier">client</span><span class="special">::</span><span class="identifier">embedded_container</span></code> to generate output
+ from a <a class="link" href="../../../karma/reference/operator/list.html" title="Lists (a % b)">List (<code class="computeroutput"><span class="special">%</span></code>)</a> generator:
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="identifier">client</span><span class="special">::</span><span class="identifier">embedded_container</span> <span class="identifier">d1</span><span class="special">;</span> <span class="comment">// create some test data
+</span><span class="identifier">d1</span><span class="special">.</span><span class="identifier">data</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="number">1</span><span class="special">);</span>
+<span class="identifier">d1</span><span class="special">.</span><span class="identifier">data</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="number">2</span><span class="special">);</span>
+<span class="identifier">d1</span><span class="special">.</span><span class="identifier">data</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="number">3</span><span class="special">);</span>
+
+<span class="comment">// use the instance of an 'client::embedded_container' instead of a
+</span><span class="comment">// STL vector
+</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">karma</span><span class="special">::</span><span class="identifier">format</span><span class="special">(</span><span class="identifier">karma</span><span class="special">::</span><span class="identifier">int_</span> <span class="special">%</span> <span class="string">", "</span><span class="special">,</span> <span class="identifier">d1</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="comment">// prints: '1, 2, 3'
+</span></pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+ As you can see, the specializations for the customization points as defined
+ above enable the seemless integration of the custom data structure without
+ having to modify the output format or the generator itself.
+ </p>
+<p>
+ For other examples of how to use the customization point <code class="computeroutput"><span class="identifier">container_iterator</span></code> please see here:
+ <a class="link" href="next_iterator.html#spirit.advanced.customize.iterate.next_iterator.example">use_as_container</a>
+ and <a class="link" href="deref_iterator.html#spirit.advanced.customize.iterate.deref_iterator.example">counter_example</a>.
           </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/deref_iterator.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/deref_iterator.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/deref_iterator.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -28,14 +28,20 @@
           Dereference the Iterator pointing into a Container Attribute</a>
 </h5></div></div></div>
 <a name="spirit.advanced.customize.iterate.deref_iterator.deref_iterator"></a><h6>
-<a name="id935963"></a>
+<a name="id875728"></a>
             <a class="link" href="deref_iterator.html#spirit.advanced.customize.iterate.deref_iterator.deref_iterator">deref_iterator</a>
           </h6>
 <p>
- Short description here...
+ The template <code class="computeroutput"><span class="identifier">deref_iterator</span></code>
+ is a type used as an attribute customization point. It is invoked by
+ the <span class="emphasis"><em>Karma</em></span> repetitive generators (such as <a class="link" href="../../../karma/reference/operator/list.html" title="Lists (a % b)">List
+ (<code class="computeroutput"><span class="special">%</span></code>)</a>, <a class="link" href="../../../karma/reference/operator/kleene.html" title="Kleene Star (*a)">Kleene
+ (unary <code class="computeroutput"><span class="special">*</span></code>)</a>, <a class="link" href="../../../karma/reference/operator/plus.html" title="Plus (+a)">Plus (unary <code class="computeroutput"><span class="special">+</span></code>)</a>, and <a class="link" href="../../../karma/reference/directive/repeat.html" title="Repetition Directive (repeat[])">Repeat</a>)
+ in order to dereference an iterator pointing to an element of a container
+ holding the attributes to generate output from.
           </p>
 <a name="spirit.advanced.customize.iterate.deref_iterator.module_headers"></a><h6>
-<a name="id935985"></a>
+<a name="id875801"></a>
             <a class="link" href="deref_iterator.html#spirit.advanced.customize.iterate.deref_iterator.module_headers">Module
             Headers</a>
           </h6>
@@ -56,7 +62,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.advanced.customize.iterate.deref_iterator.namespace"></a><h6>
-<a name="id936075"></a>
+<a name="id875891"></a>
             <a class="link" href="deref_iterator.html#spirit.advanced.customize.iterate.deref_iterator.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -72,14 +78,245 @@
                   </p>
                   </td></tr></tbody>
 </table></div>
+<a name="spirit.advanced.customize.iterate.deref_iterator.synopsis"></a><h6>
+<a name="id875969"></a>
+ <a class="link" href="deref_iterator.html#spirit.advanced.customize.iterate.deref_iterator.synopsis">Synopsis</a>
+ </h6>
+<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">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">deref_iterator</span>
+<span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="special">&lt;</span><span class="identifier">unspecified</span><span class="special">&gt;</span> <span class="identifier">type</span><span class="special">;</span>
+ <span class="keyword">static</span> <span class="identifier">type</span> <span class="identifier">call</span><span class="special">(</span><span class="identifier">Iterator</span><span class="special">&amp;</span> <span class="identifier">it</span><span class="special">);</span>
+<span class="special">};</span>
+</pre>
+<a name="spirit.advanced.customize.iterate.deref_iterator.template_parameters"></a><h6>
+<a name="id876101"></a>
+ <a class="link" href="deref_iterator.html#spirit.advanced.customize.iterate.deref_iterator.template_parameters">Template
+ parameters</a>
+ </h6>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Parameter
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+<th>
+ <p>
+ Default
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Iterator</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The type, <code class="computeroutput"><span class="identifier">Iterator</span></code>
+ of the iterator to dereference. This is the same as the type
+ returned by the customization point <a class="link" href="container_iterator.html" title="Determine the Type of the Iterator of a Container (Karma)"><code class="computeroutput"><span class="identifier">container_iterator</span></code></a>.
+ </p>
+ </td>
+<td>
+ <p>
+ none
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Enable</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Helper template parameter usable to selectively enable or disable
+ certain specializations of <code class="computeroutput"><span class="identifier">deref_iterator</span></code>
+ utilizing SFINAE (i.e. <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span></code>
+ or <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span></code>).
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">void</span></code>
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+<a name="spirit.advanced.customize.iterate.deref_iterator.notation"></a><h6>
+<a name="id876277"></a>
+ <a class="link" href="deref_iterator.html#spirit.advanced.customize.iterate.deref_iterator.notation">Notation</a>
+ </h6>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Iterator</span></code></span></dt>
+<dd><p>
+ An iterator type.
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">it</span></code></span></dt>
+<dd><p>
+ An instance of an iterator, <code class="computeroutput"><span class="identifier">Iterator</span></code>.
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">C</span></code></span></dt>
+<dd><p>
+ A container type a iterator type, <code class="computeroutput"><span class="identifier">Iterator</span></code>
+ belongs to.
+ </p></dd>
+</dl>
+</div>
+<a name="spirit.advanced.customize.iterate.deref_iterator.expression_semantics"></a><h6>
+<a name="id876913"></a>
+ <a class="link" href="deref_iterator.html#spirit.advanced.customize.iterate.deref_iterator.expression_semantics">Expression
+ Semantics</a>
+ </h6>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Expression
+ </p>
+ </th>
+<th>
+ <p>
+ Semantics
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">deref_iterator</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">&gt;::</span><span class="identifier">type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Metafunction result evaluating to the type returned by dereferencing
+ the iterator.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">deref_iterator</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">&gt;::</span><span class="identifier">call</span><span class="special">(</span><span class="identifier">it</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Return the element in the container the itertor is referring
+ to. The type of the returned value is the same as returned by
+ the metafunction result <code class="computeroutput"><span class="identifier">type</span></code>.
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+<a name="spirit.advanced.customize.iterate.deref_iterator.predefined_specializations"></a><h6>
+<a name="id877055"></a>
+ <a class="link" href="deref_iterator.html#spirit.advanced.customize.iterate.deref_iterator.predefined_specializations">Predefined
+ Specializations</a>
+ </h6>
+<p>
+ Spirit predefines
+ specializations of this customization point for several types. The following
+ table lists those types together with the types returned by the embedded
+ typedef <code class="computeroutput"><span class="identifier">type</span></code>:
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Template Parameters
+ </p>
+ </th>
+<th>
+ <p>
+ Value
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Iterator</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The metafunction result <code class="computeroutput"><span class="identifier">type</span></code>
+ evaluates to <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">&gt;::</span><span class="identifier">reference</span></code>
+ and the function <code class="computeroutput"><span class="identifier">call</span><span class="special">()</span></code> returns <code class="computeroutput"><span class="special">*</span><span class="identifier">it</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">unused_type</span></code><code class="computeroutput">
+ <span class="keyword">const</span><span class="special">*</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The metafunction result <code class="computeroutput"><span class="identifier">type</span></code>
+ evaluates to <code class="computeroutput"><span class="identifier">unused_type</span></code>
+ and the function <code class="computeroutput"><span class="identifier">call</span><span class="special">()</span></code> returns <code class="computeroutput"><span class="identifier">unused</span></code>.
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+<a name="spirit.advanced.customize.iterate.deref_iterator.when_to_implement"></a><h6>
+<a name="id877274"></a>
+ <a class="link" href="deref_iterator.html#spirit.advanced.customize.iterate.deref_iterator.when_to_implement">When
+ to implement</a>
+ </h6>
+<p>
+ The customization point <code class="computeroutput"><span class="identifier">deref_iterator</span></code>
+ needs to be implemented for a specific iterator type whenever the container
+ this iterator belongs to is to be used as an attribute in place of a
+ STL container. It is applicable for generators (<span class="emphasis"><em>Spirit.Karma</em></span>)
+ only. As a rule of thumb: it has to be implemented whenever a certain
+ iterator type belongs to a container which is to be passed as an attribute
+ to a generator normally exposing a STL container, <code class="computeroutput"><span class="identifier">C</span></code>
+ and if the container type does not expose the interface of a STL container
+ (i.e. <code class="computeroutput"><span class="identifier">is_container</span><span class="special">&lt;</span><span class="identifier">C</span><span class="special">&gt;::</span><span class="identifier">type</span></code> would normally return <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>).
+ </p>
 <a name="spirit.advanced.customize.iterate.deref_iterator.related_attribute_customization_points"></a><h6>
-<a name="id936150"></a>
+<a name="id877345"></a>
             <a class="link" href="deref_iterator.html#spirit.advanced.customize.iterate.deref_iterator.related_attribute_customization_points">Related
             Attribute Customization Points</a>
           </h6>
 <p>
             If this customization point is implemented, the following other customization
- points need to be implemented as well.
+ points might need to be implemented as well.
           </p>
 <div class="informaltable"><table class="table">
 <colgroup>
@@ -199,11 +436,186 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.deref_iterator.example"></a><h6>
-<a name="id936638"></a>
+<a name="id877832"></a>
             <a class="link" href="deref_iterator.html#spirit.advanced.customize.iterate.deref_iterator.example">Example</a>
           </h6>
 <p>
- TBD
+ Here are the header files needed to make the example code below compile:
+ </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">karma</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">iostream</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">vector</span><span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+ The example (for the full source code please see here: customize_counter.cpp)
+ uses the data structure
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">client</span>
+<span class="special">{</span>
+ <span class="keyword">struct</span> <span class="identifier">counter</span>
+ <span class="special">{</span>
+ <span class="comment">// expose the current value of the counter as our iterator
+</span> <span class="keyword">typedef</span> <span class="keyword">int</span> <span class="identifier">iterator</span><span class="special">;</span>
+
+ <span class="comment">// expose 'int' as the type of each generated element
+</span> <span class="keyword">typedef</span> <span class="keyword">int</span> <span class="identifier">type</span><span class="special">;</span>
+
+ <span class="identifier">counter</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">max_count</span><span class="special">)</span>
+ <span class="special">:</span> <span class="identifier">counter_</span><span class="special">(</span><span class="number">0</span><span class="special">),</span> <span class="identifier">max_count_</span><span class="special">(</span><span class="identifier">max_count</span><span class="special">)</span>
+ <span class="special">{}</span>
+
+ <span class="keyword">int</span> <span class="identifier">counter_</span><span class="special">;</span>
+ <span class="keyword">int</span> <span class="identifier">max_count_</span><span class="special">;</span>
+ <span class="special">};</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+ as a direct attribute to the <a class="link" href="../../../karma/reference/operator/list.html" title="Lists (a % b)">List
+ (<code class="computeroutput"><span class="special">%</span></code>)</a> generator. This
+ type does not expose any of the interfaces of an STL container. It does
+ not even expose the usual semantics of a container. The presented customization
+ points build a counter instance which is incrememnted each time it is
+ accessed. The examples shows how to enable its use as an attribute to
+ <span class="emphasis"><em>Karma's</em></span> repetitive generators.
+ </p>
+<p>
+ In order to make this data structure compatible we need to specialize
+ a couple of attribute customization points: <a class="link" href="../is_container.html" title="Determine if a Type Should be Treated as a Container (Qi and Karma)"><code class="computeroutput"><span class="identifier">is_container</span></code></a>, <a class="link" href="container_iterator.html" title="Determine the Type of the Iterator of a Container (Karma)"><code class="computeroutput"><span class="identifier">container_iterator</span></code></a>, <a class="link" href="begin_container.html" title="Get the Iterator pointing to the Begin of a Container Attribute"><code class="computeroutput"><span class="identifier">begin_container</span></code></a>, and <a class="link" href="end_container.html" title="Get the Iterator pointing to the End of a Container Attribute"><code class="computeroutput"><span class="identifier">end_container</span></code></a>. In addition,
+ we specialize one of the iterator related customization points as well:
+ <a class="link" href="deref_iterator.html" title="Dereference the Iterator pointing into a Container Attribute"><code class="computeroutput"><span class="identifier">deref_iterator</span></code></a>.
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="comment">// All specializations of attribute customization points have to be placed into
+</span><span class="comment">// the namespace boost::spirit::traits.
+</span><span class="comment">//
+</span><span class="comment">// Note that all templates below are specialized using the 'const' type.
+</span><span class="comment">// This is necessary as all attributes in Karma are 'const'.
+</span><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">spirit</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">traits</span>
+<span class="special">{</span>
+ <span class="comment">// The specialization of the template 'is_container&lt;&gt;' will tell the
+</span> <span class="comment">// library to treat the type 'client::counter' as a container providing
+</span> <span class="comment">// the items to generate output from.
+</span> <span class="keyword">template</span> <span class="special">&lt;&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">is_container</span><span class="special">&lt;</span><span class="identifier">client</span><span class="special">::</span><span class="identifier">counter</span> <span class="keyword">const</span><span class="special">&gt;</span>
+ <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span>
+ <span class="special">{};</span>
+
+ <span class="comment">// The specialization of the template 'container_iterator&lt;&gt;' will be
+</span> <span class="comment">// invoked by the library to evaluate the iterator type to be used
+</span> <span class="comment">// for iterating the data elements in the container.
+</span> <span class="keyword">template</span> <span class="special">&lt;&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">container_iterator</span><span class="special">&lt;</span><span class="identifier">client</span><span class="special">::</span><span class="identifier">counter</span> <span class="keyword">const</span><span class="special">&gt;</span>
+ <span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="identifier">client</span><span class="special">::</span><span class="identifier">counter</span><span class="special">::</span><span class="identifier">iterator</span> <span class="identifier">type</span><span class="special">;</span>
+ <span class="special">};</span>
+
+ <span class="comment">// The specialization of the templates 'begin_container&lt;&gt;' and
+</span> <span class="comment">// 'end_container&lt;&gt;' below will be used by the library to get the iterators
+</span> <span class="comment">// pointing to the begin and the end of the data to generate output from.
+</span> <span class="comment">// These specializations respectively return the initial and maximum
+</span> <span class="comment">// counter values.
+</span> <span class="comment">//
+</span> <span class="comment">// The passed argument refers to the attribute instance passed to the list
+</span> <span class="comment">// generator.
+</span> <span class="keyword">template</span> <span class="special">&lt;&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">begin_container</span><span class="special">&lt;</span><span class="identifier">client</span><span class="special">::</span><span class="identifier">counter</span> <span class="keyword">const</span><span class="special">&gt;</span>
+ <span class="special">{</span>
+ <span class="keyword">static</span> <span class="identifier">client</span><span class="special">::</span><span class="identifier">counter</span><span class="special">::</span><span class="identifier">iterator</span>
+ <span class="identifier">call</span><span class="special">(</span><span class="identifier">client</span><span class="special">::</span><span class="identifier">counter</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">c</span><span class="special">)</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">c</span><span class="special">.</span><span class="identifier">counter_</span><span class="special">;</span>
+ <span class="special">}</span>
+ <span class="special">};</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">end_container</span><span class="special">&lt;</span><span class="identifier">client</span><span class="special">::</span><span class="identifier">counter</span> <span class="keyword">const</span><span class="special">&gt;</span>
+ <span class="special">{</span>
+ <span class="keyword">static</span> <span class="identifier">client</span><span class="special">::</span><span class="identifier">counter</span><span class="special">::</span><span class="identifier">iterator</span>
+ <span class="identifier">call</span><span class="special">(</span><span class="identifier">client</span><span class="special">::</span><span class="identifier">counter</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">c</span><span class="special">)</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">c</span><span class="special">.</span><span class="identifier">max_count_</span><span class="special">;</span>
+ <span class="special">}</span>
+ <span class="special">};</span>
+<span class="special">}}}</span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="comment">// All specializations of attribute customization points have to be placed into
+</span><span class="comment">// the namespace boost::spirit::traits.
+</span><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">spirit</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">traits</span>
+<span class="special">{</span>
+ <span class="comment">// The specialization of the template 'deref_iterator&lt;&gt;' will be used to
+</span> <span class="comment">// dereference the iterator associated with our counter data structure.
+</span> <span class="comment">// Since we expose the current value as the iterator we just return the
+</span> <span class="comment">// current iterator as the return value.
+</span> <span class="keyword">template</span> <span class="special">&lt;&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">deref_iterator</span><span class="special">&lt;</span><span class="identifier">client</span><span class="special">::</span><span class="identifier">counter</span><span class="special">::</span><span class="identifier">iterator</span><span class="special">&gt;</span>
+ <span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="identifier">client</span><span class="special">::</span><span class="identifier">counter</span><span class="special">::</span><span class="identifier">type</span> <span class="identifier">type</span><span class="special">;</span>
+
+ <span class="keyword">static</span> <span class="identifier">type</span> <span class="identifier">call</span><span class="special">(</span><span class="identifier">client</span><span class="special">::</span><span class="identifier">counter</span><span class="special">::</span><span class="identifier">iterator</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">it</span><span class="special">)</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">it</span><span class="special">;</span>
+ <span class="special">}</span>
+ <span class="special">};</span>
+<span class="special">}}}</span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+ The last code snippet shows an example using an instance of the data
+ structure <code class="computeroutput"><span class="identifier">client</span><span class="special">::</span><span class="identifier">counter</span></code> to generate output from a
+ <a class="link" href="../../../karma/reference/operator/list.html" title="Lists (a % b)">List (<code class="computeroutput"><span class="special">%</span></code>)</a> generator:
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="comment">// use the instance of a 'client::counter' instead of a STL vector
+</span><span class="identifier">client</span><span class="special">::</span><span class="identifier">counter</span> <span class="identifier">count</span><span class="special">(</span><span class="number">4</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">karma</span><span class="special">::</span><span class="identifier">format</span><span class="special">(</span><span class="identifier">karma</span><span class="special">::</span><span class="identifier">int_</span> <span class="special">%</span> <span class="string">", "</span><span class="special">,</span> <span class="identifier">count</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="comment">// prints: '0, 1, 2, 3'
+</span></pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+ As you can see, the specializations for the customization points as defined
+ above enable the seemless integration of the custom data structure without
+ having to modify the output format or the generator itself.
+ </p>
+<p>
+ For other examples of how to use the customization point <code class="computeroutput"><span class="identifier">deref_iterator</span></code> please see here: <a class="link" href="next_iterator.html#spirit.advanced.customize.iterate.next_iterator.example">use_as_container</a>.
           </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/end_container.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/end_container.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/end_container.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -28,7 +28,7 @@
           Get the Iterator pointing to the End of a Container Attribute</a>
 </h5></div></div></div>
 <a name="spirit.advanced.customize.iterate.end_container.end_container"></a><h6>
-<a name="id933420"></a>
+<a name="id868457"></a>
             <a class="link" href="end_container.html#spirit.advanced.customize.iterate.end_container.end_container">end_container</a>
           </h6>
 <p>
@@ -41,7 +41,7 @@
             the attributes to generate output from.
           </p>
 <a name="spirit.advanced.customize.iterate.end_container.module_headers"></a><h6>
-<a name="id933494"></a>
+<a name="id868530"></a>
             <a class="link" href="end_container.html#spirit.advanced.customize.iterate.end_container.module_headers">Module
             Headers</a>
           </h6>
@@ -62,7 +62,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.advanced.customize.iterate.end_container.namespace"></a><h6>
-<a name="id933584"></a>
+<a name="id868620"></a>
             <a class="link" href="end_container.html#spirit.advanced.customize.iterate.end_container.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -79,14 +79,18 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.end_container.synopsis"></a><h6>
-<a name="id933662"></a>
+<a name="id868698"></a>
             <a class="link" href="end_container.html#spirit.advanced.customize.iterate.end_container.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Container</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">end_container</span><span class="special">;</span>
+<span class="keyword">struct</span> <span class="identifier">end_container</span>
+<span class="special">{</span>
+ <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">container_iterator</span><span class="special">&lt;</span><span class="identifier">Container</span><span class="special">&gt;::</span><span class="identifier">type</span>
+ <span class="identifier">call</span><span class="special">(</span><span class="identifier">Container</span><span class="special">&amp;</span> <span class="identifier">c</span><span class="special">);</span>
+<span class="special">};</span>
 </pre>
 <a name="spirit.advanced.customize.iterate.end_container.template_parameters"></a><h6>
-<a name="id933729"></a>
+<a name="id868824"></a>
             <a class="link" href="end_container.html#spirit.advanced.customize.iterate.end_container.template_parameters">Template
             parameters</a>
           </h6>
@@ -156,7 +160,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.end_container.notation"></a><h6>
-<a name="id933894"></a>
+<a name="id868990"></a>
             <a class="link" href="end_container.html#spirit.advanced.customize.iterate.end_container.notation">Notation</a>
           </h6>
 <div class="variablelist">
@@ -173,7 +177,7 @@
 </dl>
 </div>
 <a name="spirit.advanced.customize.iterate.end_container.expression_semantics"></a><h6>
-<a name="id933959"></a>
+<a name="id869054"></a>
             <a class="link" href="end_container.html#spirit.advanced.customize.iterate.end_container.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -212,7 +216,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.end_container.predefined_specializations"></a><h6>
-<a name="id934072"></a>
+<a name="id869167"></a>
             <a class="link" href="end_container.html#spirit.advanced.customize.iterate.end_container.predefined_specializations">Predefined
             Specializations</a>
           </h6>
@@ -279,7 +283,7 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.end_container.when_to_implement"></a><h6>
-<a name="id934259"></a>
+<a name="id869354"></a>
             <a class="link" href="end_container.html#spirit.advanced.customize.iterate.end_container.when_to_implement">When
             to implement</a>
           </h6>
@@ -294,13 +298,13 @@
             would normally return <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>).
           </p>
 <a name="spirit.advanced.customize.iterate.end_container.related_attribute_customization_points"></a><h6>
-<a name="id934330"></a>
+<a name="id869425"></a>
             <a class="link" href="end_container.html#spirit.advanced.customize.iterate.end_container.related_attribute_customization_points">Related
             Attribute Customization Points</a>
           </h6>
 <p>
             If this customization point is implemented, the following other customization
- points need to be implemented as well.
+ points might need to be implemented as well.
           </p>
 <div class="informaltable"><table class="table">
 <colgroup>
@@ -420,11 +424,14 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.end_container.example"></a><h6>
-<a name="id935231"></a>
+<a name="id869910"></a>
             <a class="link" href="end_container.html#spirit.advanced.customize.iterate.end_container.example">Example</a>
           </h6>
 <p>
- TBD
+ For examples of how to use the customization point <code class="computeroutput"><span class="identifier">end_container</span></code>
+ please see here: <a class="link" href="container_iterator.html#spirit.advanced.customize.iterate.container_iterator.example">embedded_container_example</a>,
+ <a class="link" href="next_iterator.html#spirit.advanced.customize.iterate.next_iterator.example">use_as_container</a>,
+ and <a class="link" href="deref_iterator.html#spirit.advanced.customize.iterate.deref_iterator.example">counter_example</a>.
           </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/next_iterator.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/next_iterator.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize/iterate/next_iterator.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -28,14 +28,20 @@
           Increment the Iterator pointing into a Container Attribute</a>
 </h5></div></div></div>
 <a name="spirit.advanced.customize.iterate.next_iterator.next_iterator"></a><h6>
-<a name="id935261"></a>
+<a name="id869967"></a>
             <a class="link" href="next_iterator.html#spirit.advanced.customize.iterate.next_iterator.next_iterator">next_iterator</a>
           </h6>
 <p>
- Short description here...
+ The template <code class="computeroutput"><span class="identifier">next_iterator</span></code>
+ is a type used as an attribute customization point. It is invoked by
+ the <span class="emphasis"><em>Karma</em></span> repetitive generators (such as <a class="link" href="../../../karma/reference/operator/list.html" title="Lists (a % b)">List
+ (<code class="computeroutput"><span class="special">%</span></code>)</a>, <a class="link" href="../../../karma/reference/operator/kleene.html" title="Kleene Star (*a)">Kleene
+ (unary <code class="computeroutput"><span class="special">*</span></code>)</a>, <a class="link" href="../../../karma/reference/operator/plus.html" title="Plus (+a)">Plus (unary <code class="computeroutput"><span class="special">+</span></code>)</a>, and <a class="link" href="../../../karma/reference/directive/repeat.html" title="Repetition Directive (repeat[])">Repeat</a>)
+ in order to get an iterator pointing to the next element of a container
+ holding the attributes to generate output from.
           </p>
 <a name="spirit.advanced.customize.iterate.next_iterator.module_headers"></a><h6>
-<a name="id935283"></a>
+<a name="id870040"></a>
             <a class="link" href="next_iterator.html#spirit.advanced.customize.iterate.next_iterator.module_headers">Module
             Headers</a>
           </h6>
@@ -56,7 +62,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.advanced.customize.iterate.next_iterator.namespace"></a><h6>
-<a name="id935373"></a>
+<a name="id870130"></a>
             <a class="link" href="next_iterator.html#spirit.advanced.customize.iterate.next_iterator.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -72,14 +78,224 @@
                   </p>
                   </td></tr></tbody>
 </table></div>
+<a name="spirit.advanced.customize.iterate.next_iterator.synopsis"></a><h6>
+<a name="id870208"></a>
+ <a class="link" href="next_iterator.html#spirit.advanced.customize.iterate.next_iterator.synopsis">Synopsis</a>
+ </h6>
+<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">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">next_iterator</span>
+<span class="special">{</span>
+ <span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">call</span><span class="special">(</span><span class="identifier">Iterator</span><span class="special">&amp;</span> <span class="identifier">it</span><span class="special">);</span>
+<span class="special">};</span>
+</pre>
+<a name="spirit.advanced.customize.iterate.next_iterator.template_parameters"></a><h6>
+<a name="id870315"></a>
+ <a class="link" href="next_iterator.html#spirit.advanced.customize.iterate.next_iterator.template_parameters">Template
+ parameters</a>
+ </h6>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Parameter
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+<th>
+ <p>
+ Default
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Iterator</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The type, <code class="computeroutput"><span class="identifier">Iterator</span></code>
+ of the iterator to increment. This is the same as the type returned
+ by the customization point <a class="link" href="container_iterator.html" title="Determine the Type of the Iterator of a Container (Karma)"><code class="computeroutput"><span class="identifier">container_iterator</span></code></a>.
+ </p>
+ </td>
+<td>
+ <p>
+ none
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Enable</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Helper template parameter usable to selectively enable or disable
+ certain specializations of <code class="computeroutput"><span class="identifier">next_iterator</span></code>
+ utilizing SFINAE (i.e. <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span></code>
+ or <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span></code>).
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">void</span></code>
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+<a name="spirit.advanced.customize.iterate.next_iterator.notation"></a><h6>
+<a name="id870490"></a>
+ <a class="link" href="next_iterator.html#spirit.advanced.customize.iterate.next_iterator.notation">Notation</a>
+ </h6>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Iterator</span></code></span></dt>
+<dd><p>
+ An iterator type.
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">it</span></code></span></dt>
+<dd><p>
+ An instance of an iterator, <code class="computeroutput"><span class="identifier">Iterator</span></code>.
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">C</span></code></span></dt>
+<dd><p>
+ A container type a iterator type, <code class="computeroutput"><span class="identifier">Iterator</span></code>
+ belongs to.
+ </p></dd>
+</dl>
+</div>
+<a name="spirit.advanced.customize.iterate.next_iterator.expression_semantics"></a><h6>
+<a name="id870580"></a>
+ <a class="link" href="next_iterator.html#spirit.advanced.customize.iterate.next_iterator.expression_semantics">Expression
+ Semantics</a>
+ </h6>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Expression
+ </p>
+ </th>
+<th>
+ <p>
+ Semantics
+ </p>
+ </th>
+</tr></thead>
+<tbody><tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">next_iterator</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">&gt;::</span><span class="identifier">call</span><span class="special">(</span><span class="identifier">it</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Increment the iterator pointing so that it is pointing to the
+ next element.
+ </p>
+ </td>
+</tr></tbody>
+</table></div>
+<a name="spirit.advanced.customize.iterate.next_iterator.predefined_specializations"></a><h6>
+<a name="id870676"></a>
+ <a class="link" href="next_iterator.html#spirit.advanced.customize.iterate.next_iterator.predefined_specializations">Predefined
+ Specializations</a>
+ </h6>
+<p>
+ Spirit predefines
+ specializations of this customization point for several types. The following
+ table lists those types together with the types returned by the embedded
+ typedef <code class="computeroutput"><span class="identifier">type</span></code>:
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Template Parameters
+ </p>
+ </th>
+<th>
+ <p>
+ Value
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Iterator</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Executes <code class="computeroutput"><span class="special">++</span><span class="identifier">it</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">unused_type</span></code><code class="computeroutput">
+ <span class="keyword">const</span><span class="special">*</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Does nothing.
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+<a name="spirit.advanced.customize.iterate.next_iterator.when_to_implement"></a><h6>
+<a name="id870809"></a>
+ <a class="link" href="next_iterator.html#spirit.advanced.customize.iterate.next_iterator.when_to_implement">When
+ to implement</a>
+ </h6>
+<p>
+ The customization point <code class="computeroutput"><span class="identifier">next_iterator</span></code>
+ needs to be implemented for a specific iterator type whenever the container
+ this iterator belongs to is to be used as an attribute in place of a
+ STL container. It is applicable for generators (<span class="emphasis"><em>Spirit.Karma</em></span>)
+ only. As a rule of thumb: it has to be implemented whenever a certain
+ iterator type belongs to a container which is to be passed as an attribute
+ to a generator normally exposing a STL container, <code class="computeroutput"><span class="identifier">C</span></code>
+ and if the container type does not expose the interface of a STL container
+ (i.e. <code class="computeroutput"><span class="identifier">is_container</span><span class="special">&lt;</span><span class="identifier">C</span><span class="special">&gt;::</span><span class="identifier">type</span></code> would normally return <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>).
+ </p>
 <a name="spirit.advanced.customize.iterate.next_iterator.related_attribute_customization_points"></a><h6>
-<a name="id935448"></a>
+<a name="id870880"></a>
             <a class="link" href="next_iterator.html#spirit.advanced.customize.iterate.next_iterator.related_attribute_customization_points">Related
             Attribute Customization Points</a>
           </h6>
 <p>
             If this customization point is implemented, the following other customization
- points need to be implemented as well.
+ points might need to be implemented as well.
           </p>
 <div class="informaltable"><table class="table">
 <colgroup>
@@ -199,11 +415,221 @@
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.iterate.next_iterator.example"></a><h6>
-<a name="id935933"></a>
+<a name="id871365"></a>
             <a class="link" href="next_iterator.html#spirit.advanced.customize.iterate.next_iterator.example">Example</a>
           </h6>
 <p>
- TBD
+ Here are the header files needed to make the example code below compile:
+ </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">karma</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">iostream</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">string</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">vector</span><span class="special">&gt;</span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+ The example (for the full source code please see here: customize_use_as_container.cpp)
+ uses the data structure
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">client</span>
+<span class="special">{</span>
+ <span class="keyword">struct</span> <span class="identifier">use_as_container</span>
+ <span class="special">{</span>
+ <span class="comment">// Expose a pair holding a pointer to the use_as_container and to the
+</span> <span class="comment">// current element as our iterator.
+</span> <span class="comment">// We intentionally leave out having it a 'operator==()' to demonstrate
+</span> <span class="comment">// the use of the 'compare_iterators' customization point.
+</span> <span class="keyword">struct</span> <span class="identifier">iterator</span>
+ <span class="special">{</span>
+ <span class="identifier">iterator</span><span class="special">(</span><span class="identifier">use_as_container</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">container</span><span class="special">,</span> <span class="keyword">int</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">current</span><span class="special">)</span>
+ <span class="special">:</span> <span class="identifier">container_</span><span class="special">(</span><span class="identifier">container</span><span class="special">),</span> <span class="identifier">current_</span><span class="special">(</span><span class="identifier">current</span><span class="special">)</span>
+ <span class="special">{}</span>
+
+ <span class="identifier">use_as_container</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">container_</span><span class="special">;</span>
+ <span class="keyword">int</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">current_</span><span class="special">;</span>
+ <span class="special">};</span>
+
+ <span class="comment">// expose 'int' as the type of each generated element
+</span> <span class="keyword">typedef</span> <span class="keyword">int</span> <span class="identifier">type</span><span class="special">;</span>
+
+ <span class="identifier">use_as_container</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">value1</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">value2</span><span class="special">,</span> <span class="keyword">int</span> <span class="identifier">value3</span><span class="special">)</span>
+ <span class="special">:</span> <span class="identifier">value1_</span><span class="special">(</span><span class="identifier">value1</span><span class="special">),</span> <span class="identifier">value2_</span><span class="special">(</span><span class="identifier">value2</span><span class="special">),</span> <span class="identifier">value3_</span><span class="special">(</span><span class="identifier">value3</span><span class="special">)</span>
+ <span class="special">{}</span>
+
+ <span class="keyword">int</span> <span class="identifier">value1_</span><span class="special">;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">dummy1_</span><span class="special">;</span> <span class="comment">// insert some unrelated data
+</span> <span class="keyword">int</span> <span class="identifier">value2_</span><span class="special">;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">dummy2_</span><span class="special">;</span> <span class="comment">// insert some more unrelated data
+</span> <span class="keyword">int</span> <span class="identifier">value3_</span><span class="special">;</span>
+ <span class="special">};</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+ as a direct attribute to the <a class="link" href="../../../karma/reference/operator/list.html" title="Lists (a % b)">List
+ (<code class="computeroutput"><span class="special">%</span></code>)</a> generator. This
+ type does not expose any of the interfaces of an STL container. It does
+ not even expose the usual semantics of a container. The purpose of this
+ artifical example is to demonstrate how the customization points can
+ be used to expose independent data elements as a single container. The
+ example shows how to enable its use as an attribute to <span class="emphasis"><em>Karma's</em></span>
+ repetitive generators.
+ </p>
+<p>
+ In order to make this data structure compatible we need to specialize
+ a couple of attribute customization points: <a class="link" href="../is_container.html" title="Determine if a Type Should be Treated as a Container (Qi and Karma)"><code class="computeroutput"><span class="identifier">is_container</span></code></a>, <a class="link" href="container_iterator.html" title="Determine the Type of the Iterator of a Container (Karma)"><code class="computeroutput"><span class="identifier">container_iterator</span></code></a>, <a class="link" href="begin_container.html" title="Get the Iterator pointing to the Begin of a Container Attribute"><code class="computeroutput"><span class="identifier">begin_container</span></code></a>, and <a class="link" href="end_container.html" title="Get the Iterator pointing to the End of a Container Attribute"><code class="computeroutput"><span class="identifier">end_container</span></code></a>. In addition,
+ we specialize all of the iterator related customization points as well:
+ <a class="link" href="deref_iterator.html" title="Dereference the Iterator pointing into a Container Attribute"><code class="computeroutput"><span class="identifier">deref_iterator</span></code></a>, <a class="link" href="next_iterator.html" title="Increment the Iterator pointing into a Container Attribute"><code class="computeroutput"><span class="identifier">next_iterator</span></code></a>, and <a class="link" href="compare_iterators.html" title="Compare two Iterator pointing into a Container Attribute for Equality"><code class="computeroutput"><span class="identifier">compare_iterators</span></code></a>.
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="comment">// All specializations of attribute customization points have to be placed into
+</span><span class="comment">// the namespace boost::spirit::traits.
+</span><span class="comment">//
+</span><span class="comment">// Note that all templates below are specialized using the 'const' type.
+</span><span class="comment">// This is necessary as all attributes in Karma are 'const'.
+</span><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">spirit</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">traits</span>
+<span class="special">{</span>
+ <span class="comment">// The specialization of the template 'is_container&lt;&gt;' will tell the
+</span> <span class="comment">// library to treat the type 'client::use_as_container' as a
+</span> <span class="comment">// container holding the items to generate output from.
+</span> <span class="keyword">template</span> <span class="special">&lt;&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">is_container</span><span class="special">&lt;</span><span class="identifier">client</span><span class="special">::</span><span class="identifier">use_as_container</span> <span class="keyword">const</span><span class="special">&gt;</span>
+ <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span>
+ <span class="special">{};</span>
+
+ <span class="comment">// The specialization of the template 'container_iterator&lt;&gt;' will be
+</span> <span class="comment">// invoked by the library to evaluate the iterator type to be used
+</span> <span class="comment">// for iterating the data elements in the container. We simply return
+</span> <span class="comment">// the type of the iterator exposed by the embedded 'std::vector&lt;int&gt;'.
+</span> <span class="keyword">template</span> <span class="special">&lt;&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">container_iterator</span><span class="special">&lt;</span><span class="identifier">client</span><span class="special">::</span><span class="identifier">use_as_container</span> <span class="keyword">const</span><span class="special">&gt;</span>
+ <span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="identifier">client</span><span class="special">::</span><span class="identifier">use_as_container</span><span class="special">::</span><span class="identifier">iterator</span> <span class="identifier">type</span><span class="special">;</span>
+ <span class="special">};</span>
+
+ <span class="comment">// The specialization of the templates 'begin_container&lt;&gt;' and
+</span> <span class="comment">// 'end_container&lt;&gt;' below will be used by the library to get the iterators
+</span> <span class="comment">// pointing to the begin and the end of the data to generate output from.
+</span> <span class="comment">//
+</span> <span class="comment">// The passed argument refers to the attribute instance passed to the list
+</span> <span class="comment">// generator.
+</span> <span class="keyword">template</span> <span class="special">&lt;&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">begin_container</span><span class="special">&lt;</span><span class="identifier">client</span><span class="special">::</span><span class="identifier">use_as_container</span> <span class="keyword">const</span><span class="special">&gt;</span>
+ <span class="special">{</span>
+ <span class="keyword">static</span> <span class="identifier">client</span><span class="special">::</span><span class="identifier">use_as_container</span><span class="special">::</span><span class="identifier">iterator</span>
+ <span class="identifier">call</span><span class="special">(</span><span class="identifier">client</span><span class="special">::</span><span class="identifier">use_as_container</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">c</span><span class="special">)</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">client</span><span class="special">::</span><span class="identifier">use_as_container</span><span class="special">::</span><span class="identifier">iterator</span><span class="special">(&amp;</span><span class="identifier">c</span><span class="special">,</span> <span class="special">&amp;</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">value1_</span><span class="special">);</span>
+ <span class="special">}</span>
+ <span class="special">};</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">end_container</span><span class="special">&lt;</span><span class="identifier">client</span><span class="special">::</span><span class="identifier">use_as_container</span> <span class="keyword">const</span><span class="special">&gt;</span>
+ <span class="special">{</span>
+ <span class="keyword">static</span> <span class="identifier">client</span><span class="special">::</span><span class="identifier">use_as_container</span><span class="special">::</span><span class="identifier">iterator</span>
+ <span class="identifier">call</span><span class="special">(</span><span class="identifier">client</span><span class="special">::</span><span class="identifier">use_as_container</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">c</span><span class="special">)</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">client</span><span class="special">::</span><span class="identifier">use_as_container</span><span class="special">::</span><span class="identifier">iterator</span><span class="special">(&amp;</span><span class="identifier">c</span><span class="special">,</span> <span class="special">(</span><span class="keyword">int</span> <span class="keyword">const</span><span class="special">*)</span><span class="number">0</span><span class="special">);</span>
+ <span class="special">}</span>
+ <span class="special">};</span>
+<span class="special">}}}</span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="comment">// All specializations of attribute customization points have to be placed into
+</span><span class="comment">// the namespace boost::spirit::traits.
+</span><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">spirit</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">traits</span>
+<span class="special">{</span>
+ <span class="comment">// The specialization of the template 'deref_iterator&lt;&gt;' will be used to
+</span> <span class="comment">// dereference the iterator associated with our counter data structure.
+</span> <span class="keyword">template</span> <span class="special">&lt;&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">deref_iterator</span><span class="special">&lt;</span><span class="identifier">client</span><span class="special">::</span><span class="identifier">use_as_container</span><span class="special">::</span><span class="identifier">iterator</span><span class="special">&gt;</span>
+ <span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="identifier">client</span><span class="special">::</span><span class="identifier">use_as_container</span><span class="special">::</span><span class="identifier">type</span> <span class="identifier">type</span><span class="special">;</span>
+
+ <span class="keyword">static</span> <span class="identifier">type</span> <span class="identifier">call</span><span class="special">(</span><span class="identifier">client</span><span class="special">::</span><span class="identifier">use_as_container</span><span class="special">::</span><span class="identifier">iterator</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">it</span><span class="special">)</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="special">*</span><span class="identifier">it</span><span class="special">.</span><span class="identifier">current_</span><span class="special">;</span>
+ <span class="special">}</span>
+ <span class="special">};</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">next_iterator</span><span class="special">&lt;</span><span class="identifier">client</span><span class="special">::</span><span class="identifier">use_as_container</span><span class="special">::</span><span class="identifier">iterator</span><span class="special">&gt;</span>
+ <span class="special">{</span>
+ <span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">call</span><span class="special">(</span><span class="identifier">client</span><span class="special">::</span><span class="identifier">use_as_container</span><span class="special">::</span><span class="identifier">iterator</span><span class="special">&amp;</span> <span class="identifier">it</span><span class="special">)</span>
+ <span class="special">{</span>
+ <span class="keyword">if</span> <span class="special">(</span><span class="identifier">it</span><span class="special">.</span><span class="identifier">current_</span> <span class="special">==</span> <span class="special">&amp;</span><span class="identifier">it</span><span class="special">.</span><span class="identifier">container_</span><span class="special">-&gt;</span><span class="identifier">value1_</span><span class="special">)</span>
+ <span class="identifier">it</span><span class="special">.</span><span class="identifier">current_</span> <span class="special">=</span> <span class="special">&amp;</span><span class="identifier">it</span><span class="special">.</span><span class="identifier">container_</span><span class="special">-&gt;</span><span class="identifier">value2_</span><span class="special">;</span>
+ <span class="keyword">else</span> <span class="keyword">if</span> <span class="special">(</span><span class="identifier">it</span><span class="special">.</span><span class="identifier">current_</span> <span class="special">==</span> <span class="special">&amp;</span><span class="identifier">it</span><span class="special">.</span><span class="identifier">container_</span><span class="special">-&gt;</span><span class="identifier">value2_</span><span class="special">)</span>
+ <span class="identifier">it</span><span class="special">.</span><span class="identifier">current_</span> <span class="special">=</span> <span class="special">&amp;</span><span class="identifier">it</span><span class="special">.</span><span class="identifier">container_</span><span class="special">-&gt;</span><span class="identifier">value3_</span><span class="special">;</span>
+ <span class="keyword">else</span>
+ <span class="identifier">it</span><span class="special">.</span><span class="identifier">current_</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
+ <span class="special">}</span>
+ <span class="special">};</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">compare_iterators</span><span class="special">&lt;</span><span class="identifier">client</span><span class="special">::</span><span class="identifier">use_as_container</span><span class="special">::</span><span class="identifier">iterator</span><span class="special">&gt;</span>
+ <span class="special">{</span>
+ <span class="keyword">static</span> <span class="keyword">bool</span> <span class="identifier">call</span><span class="special">(</span><span class="identifier">client</span><span class="special">::</span><span class="identifier">use_as_container</span><span class="special">::</span><span class="identifier">iterator</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">it1</span>
+ <span class="special">,</span> <span class="identifier">client</span><span class="special">::</span><span class="identifier">use_as_container</span><span class="special">::</span><span class="identifier">iterator</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">it2</span><span class="special">)</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">it1</span><span class="special">.</span><span class="identifier">current_</span> <span class="special">==</span> <span class="identifier">it2</span><span class="special">.</span><span class="identifier">current_</span> <span class="special">&amp;&amp;</span>
+ <span class="identifier">it1</span><span class="special">.</span><span class="identifier">container_</span> <span class="special">==</span> <span class="identifier">it2</span><span class="special">.</span><span class="identifier">container_</span><span class="special">;</span>
+ <span class="special">}</span>
+ <span class="special">};</span>
+<span class="special">}}}</span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+ The last code snippet shows an example using an instance of the data
+ structure <code class="computeroutput"><span class="identifier">client</span><span class="special">::</span><span class="identifier">use_as_container</span></code> to generate output
+ from a <a class="link" href="../../../karma/reference/operator/list.html" title="Lists (a % b)">List (<code class="computeroutput"><span class="special">%</span></code>)</a> generator:
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="identifier">client</span><span class="special">::</span><span class="identifier">use_as_container</span> <span class="identifier">d2</span> <span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="number">2</span><span class="special">,</span> <span class="number">3</span><span class="special">);</span>
+<span class="comment">// use the instance of a 'client::use_as_container' instead of a STL vector
+</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">karma</span><span class="special">::</span><span class="identifier">format</span><span class="special">(</span><span class="identifier">karma</span><span class="special">::</span><span class="identifier">int_</span> <span class="special">%</span> <span class="string">", "</span><span class="special">,</span> <span class="identifier">d2</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="comment">// prints: '1, 2, 3'
+</span></pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+ As you can see, the specializations for the customization points as defined
+ above enable the seemless integration of the custom data structure without
+ having to modify the output format or the generator itself.
           </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/customize/store_value.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/customize/store_value.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize/store_value.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -1,17 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Store Parsed
- Attribute Values into a Container (Qi)</title>
+<title>Store Parsed Attribute Values into a Container (Qi)</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
 <link rel="home" href="../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../customize.html" title=" Customization of Spirit's
- Attribute Handling">
-<link rel="previous" href="assign_to/assign_to_attribute_from_value.html" title="
- Store an Attribute Value after a Parser Produced a Value (Qi)">
-<link rel="next" href="store_value/container_value.html" title="
- Determine the Type to be Stored in a Container (Qi)">
+<link rel="up" href="../customize.html" title="Customization of Spirit's Attribute Handling">
+<link rel="prev" href="assign_to/assign_to_attribute_from_value.html" title="Store an Attribute Value after a Parser Produced a Value (Qi)">
+<link rel="next" href="store_value/container_value.html" title="Determine the Type to be Stored in a Container (Qi)">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -26,15 +22,11 @@
 <div class="spirit-nav">
 <a accesskey="p" href="assign_to/assign_to_attribute_from_value.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../customize.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="store_value/container_value.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.advanced.customize.store_value"></a><a href="store_value.html" title=" Store Parsed
- Attribute Values into a Container (Qi)"> Store Parsed
+<div class="section" title="Store Parsed Attribute Values into a Container (Qi)">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.advanced.customize.store_value"></a><a class="link" href="store_value.html" title="Store Parsed Attribute Values into a Container (Qi)"> Store Parsed
         Attribute Values into a Container (Qi)</a>
-</h4></div></div>
-<div></div>
-</div>
+</h4></div></div></div>
 <div class="toc"><dl>
 <dt><span class="section"><a href="store_value/container_value.html">
           Determine the Type to be Stored in a Container (Qi)</a></span></dt>
@@ -43,13 +35,10 @@
 </dl></div>
 <p>
           In order to customize Spirit to accept a given data type as a container
- for elements parsed by any of the repetitive parsers (Kleene,
- Plus, List,
- and <a href="../../qi/reference/directive/repeat.html" title=" Repetition
- (repeat[])">Repeat</a>)
- two attribute customization points have to be specialized: <a href="store_value/container_value.html" title="
- Determine the Type to be Stored in a Container (Qi)"><tt class="computeroutput"><span class="identifier">container_value</span></tt></a> and <a href="store_value/push_back.html" title="
- Store a Parsed Attribute Value into a Container (Qi)"><tt class="computeroutput"><span class="identifier">push_back_container</span></tt></a>. This section
+ for elements parsed by any of the repetitive parsers (<a class="link" href="../../qi/reference/operator/kleene.html" title="Kleene (*a)">Kleene</a>,
+ <a class="link" href="../../qi/reference/operator/plus.html" title="Plus (+a)">Plus</a>, <a class="link" href="../../qi/reference/operator/list.html" title="List (a % b)">List</a>,
+ and <a class="link" href="../../qi/reference/directive/repeat.html" title="Repetition (repeat[])">Repeat</a>)
+ two attribute customization points have to be specialized: <a class="link" href="store_value/container_value.html" title="Determine the Type to be Stored in a Container (Qi)"><code class="computeroutput"><span class="identifier">container_value</span></code></a> and <a class="link" href="store_value/push_back.html" title="Store a Parsed Attribute Value into a Container (Qi)"><code class="computeroutput"><span class="identifier">push_back_container</span></code></a>. This section
           describes both.
         </p>
 </div>

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/customize/store_value/container_value.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/customize/store_value/container_value.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize/store_value/container_value.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -1,17 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>
- Determine the Type to be Stored in a Container (Qi)</title>
+<title>Determine the Type to be Stored in a Container (Qi)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
 <link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../store_value.html" title=" Store Parsed
- Attribute Values into a Container (Qi)">
-<link rel="previous" href="../store_value.html" title=" Store Parsed
- Attribute Values into a Container (Qi)">
-<link rel="next" href="push_back.html" title="
- Store a Parsed Attribute Value into a Container (Qi)">
+<link rel="up" href="../store_value.html" title="Store Parsed Attribute Values into a Container (Qi)">
+<link rel="prev" href="../store_value.html" title="Store Parsed Attribute Values into a Container (Qi)">
+<link rel="next" href="push_back.html" title="Store a Parsed Attribute Value into a Container (Qi)">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -26,71 +22,73 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../store_value.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../store_value.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="push_back.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
-<div class="titlepage">
-<div><div><h5 class="title">
-<a name="spirit.advanced.customize.store_value.container_value"></a><a href="container_value.html" title="
- Determine the Type to be Stored in a Container (Qi)">
+<div class="section" title="Determine the Type to be Stored in a Container (Qi)">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="spirit.advanced.customize.store_value.container_value"></a><a class="link" href="container_value.html" title="Determine the Type to be Stored in a Container (Qi)">
           Determine the Type to be Stored in a Container (Qi)</a>
-</h5></div></div>
-<div></div>
-</div>
+</h5></div></div></div>
 <a name="spirit.advanced.customize.store_value.container_value.container_value"></a><h6>
-<a name="id731482"></a>
- container_value
+<a name="id855258"></a>
+ <a class="link" href="container_value.html#spirit.advanced.customize.store_value.container_value.container_value">container_value</a>
           </h6>
 <p>
- The template <tt class="computeroutput"><span class="identifier">container_value</span></tt>
+ The template <code class="computeroutput"><span class="identifier">container_value</span></code>
             is a template meta function used as an attribute customization point.
- It is invoked by the <span class="emphasis"><em>Qi</em></span> repetitive parsers (Kleene, Plus,
- List, and <a href="../../../qi/reference/directive/repeat.html" title=" Repetition
- (repeat[])">Repeat</a>) to determine
+ It is invoked by the <span class="emphasis"><em>Qi</em></span> repetitive parsers (<a class="link" href="../../../qi/reference/operator/kleene.html" title="Kleene (*a)">Kleene</a>, <a class="link" href="../../../qi/reference/operator/plus.html" title="Plus (+a)">Plus</a>,
+ <a class="link" href="../../../qi/reference/operator/list.html" title="List (a % b)">List</a>, and <a class="link" href="../../../qi/reference/directive/repeat.html" title="Repetition (repeat[])">Repeat</a>) to determine
             the type to store in a container.
           </p>
 <a name="spirit.advanced.customize.store_value.container_value.module_headers"></a><h6>
-<a name="id731566"></a>
- <a href="container_value.html#spirit.advanced.customize.store_value.container_value.module_headers">Module
+<a name="id855305"></a>
+ <a class="link" href="container_value.html#spirit.advanced.customize.store_value.container_value.module_headers">Module
             Headers</a>
           </h6>
 <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">home</span><span class="special">/</span><span class="identifier">support</span><span class="special">/</span><span class="identifier">container</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
- Also, see Include Structure.
+ Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </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>
               This header file does not need to be included directly by any user
               program as it is normally included by other Spirit header files relying
               on its content.
             </p></td></tr>
 </table></div>
 <a name="spirit.advanced.customize.store_value.container_value.namespace"></a><h6>
-<a name="id731696"></a>
- Namespace
+<a name="id855392"></a>
+ <a class="link" href="container_value.html#spirit.advanced.customize.store_value.container_value.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
 <colgroup><col></colgroup>
-<thead><tr><th><p>
+<thead><tr><th>
+ <p>
                     Name
- </p></th></tr></thead>
-<tbody><tr><td><p>
- <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span></tt>
- </p></td></tr></tbody>
+ </p>
+ </th></tr></thead>
+<tbody><tr><td>
+ <p>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span></code>
+ </p>
+ </td></tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.store_value.container_value.synopsis"></a><h6>
-<a name="id731792"></a>
- Synopsis
+<a name="id855470"></a>
+ <a class="link" href="container_value.html#spirit.advanced.customize.store_value.container_value.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Container</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">container_value</span><span class="special">;</span>
+<span class="keyword">struct</span> <span class="identifier">container_value</span>
+<span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="special">&lt;</span><span class="identifier">unspecified</span><span class="special">&gt;</span> <span class="identifier">type</span><span class="special">;</span>
+<span class="special">};</span>
 </pre>
 <a name="spirit.advanced.customize.store_value.container_value.template_parameters"></a><h6>
-<a name="id731890"></a>
- <a href="container_value.html#spirit.advanced.customize.store_value.container_value.template_parameters">Template
+<a name="id855569"></a>
+ <a class="link" href="container_value.html#spirit.advanced.customize.store_value.container_value.template_parameters">Template
             parameters</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -100,66 +98,84 @@
 <col>
 </colgroup>
 <thead><tr>
-<th><p>
+<th>
+ <p>
                     Parameter
- </p></th>
-<th><p>
+ </p>
+ </th>
+<th>
+ <p>
                     Description
- </p></th>
-<th><p>
+ </p>
+ </th>
+<th>
+ <p>
                     Default
- </p></th>
+ </p>
+ </th>
 </tr></thead>
 <tbody>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">Container</span></tt>
- </p></td>
-<td><p>
- The type, <tt class="computeroutput"><span class="identifier">Container</span></tt>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Container</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The type, <code class="computeroutput"><span class="identifier">Container</span></code>
                     needs to be tested whether it has to be treated as a container
- </p></td>
-<td><p>
+ </p>
+ </td>
+<td>
+ <p>
                     none
- </p></td>
+ </p>
+ </td>
 </tr>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">Enable</span></tt>
- </p></td>
-<td><p>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Enable</span></code>
+ </p>
+ </td>
+<td>
+ <p>
                     Helper template parameter usable to selectively enable or disable
- certain specializations of <tt class="computeroutput"><span class="identifier">container_value</span></tt>
- utilizing SFINAE (i.e. <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span></tt>
- or <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span></tt>).
- </p></td>
-<td><p>
- <tt class="computeroutput"><span class="keyword">void</span></tt>
- </p></td>
+ certain specializations of <code class="computeroutput"><span class="identifier">container_value</span></code>
+ utilizing SFINAE (i.e. <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span></code>
+ or <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span></code>).
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">void</span></code>
+ </p>
+ </td>
 </tr>
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.store_value.container_value.notation"></a><h6>
-<a name="id732114"></a>
- Notation
+<a name="id855734"></a>
+ <a class="link" href="container_value.html#spirit.advanced.customize.store_value.container_value.notation">Notation</a>
           </h6>
 <div class="variablelist">
 <p class="title"><b></b></p>
 <dl>
-<dt><span class="term"><tt class="computeroutput"><span class="identifier">C</span></tt></span></dt>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">C</span></code></span></dt>
 <dd><p>
                 A type to be tested whether it needs to be treated as a container.
               </p></dd>
-<dt><span class="term"><tt class="computeroutput"><span class="identifier">T1</span></tt>,
- <tt class="computeroutput"><span class="identifier">T2</span></tt>, ...</span></dt>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">T1</span></code>,
+ <code class="computeroutput"><span class="identifier">T2</span></code>, ...</span></dt>
 <dd><p>
                 Arbitrary types
               </p></dd>
 </dl>
 </div>
 <a name="spirit.advanced.customize.store_value.container_value.expression_semantics"></a><h6>
-<a name="id732206"></a>
- <a href="container_value.html#spirit.advanced.customize.store_value.container_value.expression_semantics">Expression
+<a name="id855800"></a>
+ <a class="link" href="container_value.html#spirit.advanced.customize.store_value.container_value.expression_semantics">Expression
             Semantics</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -168,26 +184,34 @@
 <col>
 </colgroup>
 <thead><tr>
-<th><p>
+<th>
+ <p>
                     Expression
- </p></th>
-<th><p>
+ </p>
+ </th>
+<th>
+ <p>
                     Semantics
- </p></th>
+ </p>
+ </th>
 </tr></thead>
 <tbody><tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">container_value</span><span class="special">&lt;</span><span class="identifier">C</span><span class="special">&gt;::</span><span class="identifier">type</span></tt>
- </p></td>
-<td><p>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">container_value</span><span class="special">&lt;</span><span class="identifier">C</span><span class="special">&gt;::</span><span class="identifier">type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
                     Metafunction that evaluates to the type to be stored in a given
- container type, <tt class="computeroutput"><span class="identifier">C</span></tt>.
- </p></td>
+ container type, <code class="computeroutput"><span class="identifier">C</span></code>.
+ </p>
+ </td>
 </tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.store_value.container_value.predefined_specializations"></a><h6>
-<a name="id732332"></a>
- <a href="container_value.html#spirit.advanced.customize.store_value.container_value.predefined_specializations">Predefined
+<a name="id855893"></a>
+ <a class="link" href="container_value.html#spirit.advanced.customize.store_value.container_value.predefined_specializations">Predefined
             Specializations</a>
           </h6>
 <p>
@@ -202,87 +226,107 @@
 <col>
 </colgroup>
 <thead><tr>
-<th><p>
+<th>
+ <p>
                     Template Parameters
- </p></th>
-<th><p>
+ </p>
+ </th>
+<th>
+ <p>
                     Value
- </p></th>
+ </p>
+ </th>
 </tr></thead>
 <tbody>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">C</span></tt>
- </p></td>
-<td><p>
- The non-const <tt class="computeroutput"><span class="identifier">value_type</span></tt>
- of the given container type, <tt class="computeroutput"><span class="identifier">C</span></tt>.
- </p></td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">C</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The non-const <code class="computeroutput"><span class="identifier">value_type</span></code>
+ of the given container type, <code class="computeroutput"><span class="identifier">C</span></code>.
+ </p>
+ </td>
 </tr>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">C</span><span class="special">&gt;</span></tt>
- </p></td>
-<td><p>
- Returns <tt class="computeroutput"><span class="identifier">container_value</span><span class="special">&lt;</span><span class="identifier">C</span><span class="special">&gt;::</span><span class="identifier">type</span></tt>
- </p></td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">C</span><span class="special">&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns <code class="computeroutput"><span class="identifier">container_value</span><span class="special">&lt;</span><span class="identifier">C</span><span class="special">&gt;::</span><span class="identifier">type</span></code>
+ </p>
+ </td>
 </tr>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">variant</span><span class="special">&lt;</span><span class="identifier">T1</span><span class="special">,</span>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">variant</span><span class="special">&lt;</span><span class="identifier">T1</span><span class="special">,</span>
                     <span class="identifier">T2</span><span class="special">,</span>
- <span class="special">...&gt;</span></tt>
- </p></td>
-<td><p>
- Returns <tt class="computeroutput"><span class="identifier">container_value</span><span class="special">&lt;</span><span class="identifier">TN</span><span class="special">&gt;::</span><span class="identifier">value</span></tt>
- for the first <tt class="computeroutput"><span class="identifier">TN</span></tt>
- (out of <tt class="computeroutput"><span class="identifier">T1</span></tt>,
- <tt class="computeroutput"><span class="identifier">T2</span></tt>, ...) for
- which <tt class="computeroutput"><span class="identifier">is_container</span><span class="special">&lt;</span><span class="identifier">TN</span><span class="special">&gt;::</span><span class="identifier">type</span></tt>
- evaluates to <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>.
- Otherwise it will return <tt class="computeroutput"><span class="identifier">unused_type</span></tt>.
- </p></td>
+ <span class="special">...&gt;</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns <code class="computeroutput"><span class="identifier">container_value</span><span class="special">&lt;</span><span class="identifier">TN</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
+ for the first <code class="computeroutput"><span class="identifier">TN</span></code>
+ (out of <code class="computeroutput"><span class="identifier">T1</span></code>,
+ <code class="computeroutput"><span class="identifier">T2</span></code>, ...) for
+ which <code class="computeroutput"><span class="identifier">is_container</span><span class="special">&lt;</span><span class="identifier">TN</span><span class="special">&gt;::</span><span class="identifier">type</span></code>
+ evaluates to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>.
+ Otherwise it will return <code class="computeroutput"><span class="identifier">unused_type</span></code>.
+ </p>
+ </td>
 </tr>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">unused_type</span></tt>
- </p></td>
-<td><p>
- Returns <tt class="computeroutput"><span class="identifier">unused_type</span></tt>.
- </p></td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">unused_type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Returns <code class="computeroutput"><span class="identifier">unused_type</span></code>.
+ </p>
+ </td>
 </tr>
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.store_value.container_value.when_to_implement"></a><h6>
-<a name="id732797"></a>
- <a href="container_value.html#spirit.advanced.customize.store_value.container_value.when_to_implement">When
+<a name="id856224"></a>
+ <a class="link" href="container_value.html#spirit.advanced.customize.store_value.container_value.when_to_implement">When
             to implement</a>
           </h6>
 <p>
- The customization point <tt class="computeroutput"><span class="identifier">is_container</span></tt>
+ The customization point <code class="computeroutput"><span class="identifier">is_container</span></code>
             needs to be implemented for a specific type whenever this type is to
             be used as an attribute in place of a STL container. It is applicable
             for parsers (<span class="emphasis"><em>Spirit.Qi</em></span>) only. As a rule of thumb:
             it has to be implemented whenever a certain type is to be passed as an
             attribute to a parser normally exposing a STL container and if the type
             does not expose the interface of a STL container (i.e. no embedded typedef
- for <tt class="computeroutput"><span class="identifier">value_type</span></tt>). These
+ for <code class="computeroutput"><span class="identifier">value_type</span></code>). These
             components have an attribute propagation rule in the form:
           </p>
 <pre class="programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--&gt;</span> <span class="identifier">Op</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>
 </pre>
 <p>
- where <tt class="computeroutput"><span class="identifier">Op</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></tt>
- stands for any meaningful operation on the component <tt class="computeroutput"><span class="identifier">a</span></tt>.
+ where <code class="computeroutput"><span class="identifier">Op</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code>
+ stands for any meaningful operation on the component <code class="computeroutput"><span class="identifier">a</span></code>.
           </p>
 <a name="spirit.advanced.customize.store_value.container_value.related_attribute_customization_points"></a><h6>
-<a name="id732979"></a>
- <a href="container_value.html#spirit.advanced.customize.store_value.container_value.related_attribute_customization_points">Related
+<a name="id856340"></a>
+ <a class="link" href="container_value.html#spirit.advanced.customize.store_value.container_value.related_attribute_customization_points">Related
             Attribute Customization Points</a>
           </h6>
 <p>
             If this customization point is implemented, the following other customization
- points need to be implemented as well.
+ points might need to be implemented as well.
           </p>
 <div class="informaltable"><table class="table">
 <colgroup>
@@ -290,45 +334,53 @@
 <col>
 </colgroup>
 <thead><tr>
-<th><p>
+<th>
+ <p>
                     Name
- </p></th>
-<th><p>
+ </p>
+ </th>
+<th>
+ <p>
                     When to implement
- </p></th>
+ </p>
+ </th>
 </tr></thead>
 <tbody>
 <tr>
-<td><p>
- <a href="push_back.html" title="
- Store a Parsed Attribute Value into a Container (Qi)"><tt class="computeroutput"><span class="identifier">push_back_container</span></tt></a>
- </p></td>
-<td><p>
- Qi: List,
- Kleene,
- Plus,
- <a href="../../../qi/reference/directive/repeat.html" title=" Repetition
- (repeat[])">Repeat</a>.
- </p></td>
+<td>
+ <p>
+ <a class="link" href="push_back.html" title="Store a Parsed Attribute Value into a Container (Qi)"><code class="computeroutput"><span class="identifier">push_back_container</span></code></a>
+ </p>
+ </td>
+<td>
+ <p>
+ Qi: <a class="link" href="../../../qi/reference/operator/list.html" title="List (a % b)">List</a>,
+ <a class="link" href="../../../qi/reference/operator/kleene.html" title="Kleene (*a)">Kleene</a>,
+ <a class="link" href="../../../qi/reference/operator/plus.html" title="Plus (+a)">Plus</a>,
+ <a class="link" href="../../../qi/reference/directive/repeat.html" title="Repetition (repeat[])">Repeat</a>.
+ </p>
+ </td>
 </tr>
 <tr>
-<td><p>
- <a href="../clear_value.html" title=" Re-Initialize
- an Attribute Value before Parsing (Qi)"><tt class="computeroutput"><span class="identifier">clear_value</span></tt></a>
- </p></td>
-<td><p>
- Qi: List,
- Kleene,
- Plus,
- <a href="../../../qi/reference/directive/repeat.html" title=" Repetition
- (repeat[])">Repeat</a>.
- </p></td>
+<td>
+ <p>
+ <a class="link" href="../clear_value.html" title="Re-Initialize an Attribute Value before Parsing (Qi)"><code class="computeroutput"><span class="identifier">clear_value</span></code></a>
+ </p>
+ </td>
+<td>
+ <p>
+ Qi: <a class="link" href="../../../qi/reference/operator/list.html" title="List (a % b)">List</a>,
+ <a class="link" href="../../../qi/reference/operator/kleene.html" title="Kleene (*a)">Kleene</a>,
+ <a class="link" href="../../../qi/reference/operator/plus.html" title="Plus (+a)">Plus</a>,
+ <a class="link" href="../../../qi/reference/directive/repeat.html" title="Repetition (repeat[])">Repeat</a>.
+ </p>
+ </td>
 </tr>
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.store_value.container_value.example"></a><h6>
-<a name="id733194"></a>
- Example
+<a name="id856485"></a>
+ <a class="link" href="container_value.html#spirit.advanced.customize.store_value.container_value.example">Example</a>
           </h6>
 <p>
             TBD

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/customize/store_value/push_back.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/customize/store_value/push_back.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize/store_value/push_back.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -1,17 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>
- Store a Parsed Attribute Value into a Container (Qi)</title>
+<title>Store a Parsed Attribute Value into a Container (Qi)</title>
 <link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
 <link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../store_value.html" title=" Store Parsed
- Attribute Values into a Container (Qi)">
-<link rel="previous" href="container_value.html" title="
- Determine the Type to be Stored in a Container (Qi)">
-<link rel="next" href="../clear_value.html" title=" Re-Initialize
- an Attribute Value before Parsing (Qi)">
+<link rel="up" href="../store_value.html" title="Store Parsed Attribute Values into a Container (Qi)">
+<link rel="prev" href="container_value.html" title="Determine the Type to be Stored in a Container (Qi)">
+<link rel="next" href="../clear_value.html" title="Re-Initialize an Attribute Value before Parsing (Qi)">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -26,71 +22,73 @@
 <div class="spirit-nav">
 <a accesskey="p" href="container_value.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../store_value.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="../clear_value.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
-<div class="section" lang="en">
-<div class="titlepage">
-<div><div><h5 class="title">
-<a name="spirit.advanced.customize.store_value.push_back"></a><a href="push_back.html" title="
- Store a Parsed Attribute Value into a Container (Qi)">
+<div class="section" title="Store a Parsed Attribute Value into a Container (Qi)">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="spirit.advanced.customize.store_value.push_back"></a><a class="link" href="push_back.html" title="Store a Parsed Attribute Value into a Container (Qi)">
           Store a Parsed Attribute Value into a Container (Qi)</a>
-</h5></div></div>
-<div></div>
-</div>
+</h5></div></div></div>
 <a name="spirit.advanced.customize.store_value.push_back.push_back_container"></a><h6>
-<a name="id733245"></a>
- push_back_container
+<a name="id856517"></a>
+ <a class="link" href="push_back.html#spirit.advanced.customize.store_value.push_back.push_back_container">push_back_container</a>
           </h6>
 <p>
- The template <tt class="computeroutput"><span class="identifier">push_back_container</span></tt>
+ The template <code class="computeroutput"><span class="identifier">push_back_container</span></code>
             is a type used as an attribute customization point. It is invoked by
- the <span class="emphasis"><em>Qi</em></span> repetitive parsers (Kleene,
- Plus, List, and <a href="../../../qi/reference/directive/repeat.html" title=" Repetition
- (repeat[])">Repeat</a>)
+ the <span class="emphasis"><em>Qi</em></span> repetitive parsers (<a class="link" href="../../../qi/reference/operator/kleene.html" title="Kleene (*a)">Kleene</a>,
+ <a class="link" href="../../../qi/reference/operator/plus.html" title="Plus (+a)">Plus</a>, <a class="link" href="../../../qi/reference/operator/list.html" title="List (a % b)">List</a>, and <a class="link" href="../../../qi/reference/directive/repeat.html" title="Repetition (repeat[])">Repeat</a>)
             to store a parsed attribute value into a container.
           </p>
 <a name="spirit.advanced.customize.store_value.push_back.module_headers"></a><h6>
-<a name="id733328"></a>
- <a href="push_back.html#spirit.advanced.customize.store_value.push_back.module_headers">Module
+<a name="id856566"></a>
+ <a class="link" href="push_back.html#spirit.advanced.customize.store_value.push_back.module_headers">Module
             Headers</a>
           </h6>
 <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">home</span><span class="special">/</span><span class="identifier">support</span><span class="special">/</span><span class="identifier">container</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
- Also, see Include Structure.
+ Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </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>
               This header file does not need to be included directly by any user
               program as it is normally included by other Spirit header files relying
               on its content.
             </p></td></tr>
 </table></div>
 <a name="spirit.advanced.customize.store_value.push_back.namespace"></a><h6>
-<a name="id733457"></a>
- Namespace
+<a name="id856656"></a>
+ <a class="link" href="push_back.html#spirit.advanced.customize.store_value.push_back.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
 <colgroup><col></colgroup>
-<thead><tr><th><p>
+<thead><tr><th>
+ <p>
                     Name
- </p></th></tr></thead>
-<tbody><tr><td><p>
- <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span></tt>
- </p></td></tr></tbody>
+ </p>
+ </th></tr></thead>
+<tbody><tr><td>
+ <p>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span></code>
+ </p>
+ </td></tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.store_value.push_back.synopsis"></a><h6>
-<a name="id733554"></a>
- Synopsis
+<a name="id856734"></a>
+ <a class="link" href="push_back.html#spirit.advanced.customize.store_value.push_back.synopsis">Synopsis</a>
           </h6>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Container</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Attrib</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">push_back_container</span><span class="special">;</span>
+<span class="keyword">struct</span> <span class="identifier">push_back_container</span>
+<span class="special">{</span>
+ <span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">call</span><span class="special">(</span><span class="identifier">Container</span><span class="special">&amp;</span> <span class="identifier">c</span><span class="special">,</span> <span class="identifier">Attrib</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">val</span><span class="special">);</span>
+<span class="special">};</span>
 </pre>
 <a name="spirit.advanced.customize.store_value.push_back.template_parameters"></a><h6>
-<a name="id733668"></a>
- <a href="push_back.html#spirit.advanced.customize.store_value.push_back.template_parameters">Template
+<a name="id856875"></a>
+ <a class="link" href="push_back.html#spirit.advanced.customize.store_value.push_back.template_parameters">Template
             parameters</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -100,97 +98,120 @@
 <col>
 </colgroup>
 <thead><tr>
-<th><p>
+<th>
+ <p>
                     Parameter
- </p></th>
-<th><p>
+ </p>
+ </th>
+<th>
+ <p>
                     Description
- </p></th>
-<th><p>
+ </p>
+ </th>
+<th>
+ <p>
                     Default
- </p></th>
+ </p>
+ </th>
 </tr></thead>
 <tbody>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">Container</span></tt>
- </p></td>
-<td><p>
- The type, <tt class="computeroutput"><span class="identifier">Container</span></tt>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Container</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The type, <code class="computeroutput"><span class="identifier">Container</span></code>
                     needs to be tested whether it has to be treated as a container
- </p></td>
-<td><p>
+ </p>
+ </td>
+<td>
+ <p>
                     none
- </p></td>
+ </p>
+ </td>
 </tr>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
- </p></td>
-<td><p>
- The type, <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
- is the one returned from the customization point <a href="container_value.html" title="
- Determine the Type to be Stored in a Container (Qi)"><tt class="computeroutput"><span class="identifier">container_value</span></tt></a> and
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Attrib</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The type, <code class="computeroutput"><span class="identifier">Attrib</span></code>
+ is the one returned from the customization point <a class="link" href="container_value.html" title="Determine the Type to be Stored in a Container (Qi)"><code class="computeroutput"><span class="identifier">container_value</span></code></a> and
                     represents the attribute value to be stored in the container
- of type <tt class="computeroutput"><span class="identifier">Container</span></tt>.
- </p></td>
-<td><p>
+ of type <code class="computeroutput"><span class="identifier">Container</span></code>.
+ </p>
+ </td>
+<td>
+ <p>
                     none
- </p></td>
+ </p>
+ </td>
 </tr>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">Enable</span></tt>
- </p></td>
-<td><p>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Enable</span></code>
+ </p>
+ </td>
+<td>
+ <p>
                     Helper template parameter usable to selectively enable or disable
- certain specializations of <tt class="computeroutput"><span class="identifier">push_back_container</span></tt>
- utilizing SFINAE (i.e. <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span></tt>
- or <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span></tt>).
- </p></td>
-<td><p>
- <tt class="computeroutput"><span class="keyword">void</span></tt>
- </p></td>
+ certain specializations of <code class="computeroutput"><span class="identifier">push_back_container</span></code>
+ utilizing SFINAE (i.e. <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span></code>
+ or <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span></code>).
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">void</span></code>
+ </p>
+ </td>
 </tr>
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.store_value.push_back.notation"></a><h6>
-<a name="id733974"></a>
- Notation
+<a name="id857095"></a>
+ <a class="link" href="push_back.html#spirit.advanced.customize.store_value.push_back.notation">Notation</a>
           </h6>
 <div class="variablelist">
 <p class="title"><b></b></p>
 <dl>
-<dt><span class="term"><tt class="computeroutput"><span class="identifier">C</span></tt></span></dt>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">C</span></code></span></dt>
 <dd><p>
                 A type to be used as a container to store attribute values in.
               </p></dd>
-<dt><span class="term"><tt class="computeroutput"><span class="identifier">c</span></tt></span></dt>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">c</span></code></span></dt>
 <dd>
 <p>
- A container instance of type <tt class="computeroutput"><span class="identifier">C</span></tt>.
+ A container instance of type <code class="computeroutput"><span class="identifier">C</span></code>.
               </p>
 <p>
- [<tt class="computeroutput"><span class="identifier">Attrib</span></tt>
+ [<code class="computeroutput"><span class="identifier">Attrib</span></code>
               </p>
 <p>
                 A type to be used as a container to store attribute values in.
               </p>
 </dd>
-<dt><span class="term"><tt class="computeroutput"><span class="identifier">attr</span></tt></span></dt>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">attr</span></code></span></dt>
 <dd><p>
- A attribute instance of type <tt class="computeroutput"><span class="identifier">Attrib</span></tt>.
+ A attribute instance of type <code class="computeroutput"><span class="identifier">Attrib</span></code>.
               </p></dd>
-<dt><span class="term"><tt class="computeroutput"><span class="identifier">T1</span></tt>,
- <tt class="computeroutput"><span class="identifier">T2</span></tt>, ...</span></dt>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">T1</span></code>,
+ <code class="computeroutput"><span class="identifier">T2</span></code>, ...</span></dt>
 <dd><p>
                 Arbitrary types
               </p></dd>
 </dl>
 </div>
 <a name="spirit.advanced.customize.store_value.push_back.expression_semantics"></a><h6>
-<a name="id734163"></a>
- <a href="push_back.html#spirit.advanced.customize.store_value.push_back.expression_semantics">Expression
+<a name="id857233"></a>
+ <a class="link" href="push_back.html#spirit.advanced.customize.store_value.push_back.expression_semantics">Expression
             Semantics</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -199,32 +220,38 @@
 <col>
 </colgroup>
 <thead><tr>
-<th><p>
+<th>
+ <p>
                     Expression
- </p></th>
-<th><p>
+ </p>
+ </th>
+<th>
+ <p>
                     Semantics
- </p></th>
+ </p>
+ </th>
 </tr></thead>
 <tbody><tr>
 <td>
-<p>
+ <p>
                     
 </p>
 <pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">push_back_container</span><span class="special">&lt;</span><span class="identifier">C</span><span class="special">,</span> <span class="identifier">Attrib</span><span class="special">&gt;::</span><span class="identifier">call</span><span class="special">(</span><span class="identifier">c</span><span class="special">,</span> <span class="identifier">attr</span><span class="special">)</span></pre>
 <p>
                   </p>
-</td>
-<td><p>
+ </td>
+<td>
+ <p>
                     Static function that is invoked whenever an attribute value,
- <tt class="computeroutput"><span class="identifier">attr</span></tt> needs to
- be stored into the container instance <tt class="computeroutput"><span class="identifier">c</span></tt>.
- </p></td>
+ <code class="computeroutput"><span class="identifier">attr</span></code> needs to
+ be stored into the container instance <code class="computeroutput"><span class="identifier">c</span></code>.
+ </p>
+ </td>
 </tr></tbody>
 </table></div>
 <a name="spirit.advanced.customize.store_value.push_back.predefined_specializations"></a><h6>
-<a name="id734338"></a>
- <a href="push_back.html#spirit.advanced.customize.store_value.push_back.predefined_specializations">Predefined
+<a name="id858658"></a>
+ <a class="link" href="push_back.html#spirit.advanced.customize.store_value.push_back.predefined_specializations">Predefined
             Specializations</a>
           </h6>
 <p>
@@ -239,94 +266,114 @@
 <col>
 </colgroup>
 <thead><tr>
-<th><p>
+<th>
+ <p>
                     Template Parameters
- </p></th>
-<th><p>
+ </p>
+ </th>
+<th>
+ <p>
                     Value
- </p></th>
+ </p>
+ </th>
 </tr></thead>
 <tbody>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">C</span></tt>, <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
- </p></td>
-<td><p>
- Store the provided attribute instance <tt class="computeroutput"><span class="identifier">attr</span></tt>
- into the given container <tt class="computeroutput"><span class="identifier">c</span></tt>
- using the function call <tt class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">attr</span><span class="special">)</span></tt>.
- </p></td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">C</span></code>, <code class="computeroutput"><span class="identifier">Attrib</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Store the provided attribute instance <code class="computeroutput"><span class="identifier">attr</span></code>
+ into the given container <code class="computeroutput"><span class="identifier">c</span></code>
+ using the function call <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">attr</span><span class="special">)</span></code>.
+ </p>
+ </td>
 </tr>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">C</span><span class="special">&gt;</span></tt>,
- <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
- </p></td>
-<td><p>
- If the provided instance of <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special">&lt;&gt;</span></tt> is not initialized, invoke
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">C</span><span class="special">&gt;</span></code>,
+ <code class="computeroutput"><span class="identifier">Attrib</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ If the provided instance of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special">&lt;&gt;</span></code> is not initialized, invoke
                     the appropriate initialization and afterwards apply the customization
- point <tt class="computeroutput"><span class="identifier">push_back_container</span><span class="special">&lt;</span><span class="identifier">C</span><span class="special">,</span> <span class="identifier">Attrib</span><span class="special">&gt;</span></tt>, treating the instance held
- by the optional (of type <tt class="computeroutput"><span class="identifier">C</span></tt>)
+ point <code class="computeroutput"><span class="identifier">push_back_container</span><span class="special">&lt;</span><span class="identifier">C</span><span class="special">,</span> <span class="identifier">Attrib</span><span class="special">&gt;</span></code>, treating the instance held
+ by the optional (of type <code class="computeroutput"><span class="identifier">C</span></code>)
                     as the container to store the attribute in.
- </p></td>
+ </p>
+ </td>
 </tr>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">variant</span><span class="special">&lt;</span><span class="identifier">T1</span><span class="special">,</span>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">variant</span><span class="special">&lt;</span><span class="identifier">T1</span><span class="special">,</span>
                     <span class="identifier">T2</span><span class="special">,</span>
- <span class="special">...&gt;</span></tt>, <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
- </p></td>
-<td><p>
+ <span class="special">...&gt;</span></code>, <code class="computeroutput"><span class="identifier">Attrib</span></code>
+ </p>
+ </td>
+<td>
+ <p>
                     If the instance of the variant currently holds a value with a
- type, <tt class="computeroutput"><span class="identifier">TN</span></tt>, for
- which <tt class="computeroutput"><span class="identifier">is_container</span><span class="special">&lt;</span><span class="identifier">TN</span><span class="special">&gt;::</span><span class="identifier">type</span></tt>
- evaluates to <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>,
- this customization point specialization will apply <tt class="computeroutput"><span class="identifier">push_back_container</span><span class="special">&lt;</span><span class="identifier">TN</span><span class="special">,</span>
- <span class="identifier">Attrib</span><span class="special">&gt;</span></tt>,
- treating the instance held by the variant (of type <tt class="computeroutput"><span class="identifier">TN</span></tt>) as the container to store
+ type, <code class="computeroutput"><span class="identifier">TN</span></code>, for
+ which <code class="computeroutput"><span class="identifier">is_container</span><span class="special">&lt;</span><span class="identifier">TN</span><span class="special">&gt;::</span><span class="identifier">type</span></code>
+ evaluates to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>,
+ this customization point specialization will apply <code class="computeroutput"><span class="identifier">push_back_container</span><span class="special">&lt;</span><span class="identifier">TN</span><span class="special">,</span>
+ <span class="identifier">Attrib</span><span class="special">&gt;</span></code>,
+ treating the instance held by the variant (of type <code class="computeroutput"><span class="identifier">TN</span></code>) as the container to store
                     the attribute in. Otherwise it will raise an assertion.
- </p></td>
+ </p>
+ </td>
 </tr>
 <tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">unused_type</span></tt>
- </p></td>
-<td><p>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">unused_type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
                     Do nothing.
- </p></td>
+ </p>
+ </td>
 </tr>
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.store_value.push_back.when_to_implement"></a><h6>
-<a name="id734918"></a>
- <a href="push_back.html#spirit.advanced.customize.store_value.push_back.when_to_implement">When
+<a name="id859066"></a>
+ <a class="link" href="push_back.html#spirit.advanced.customize.store_value.push_back.when_to_implement">When
             to Implement</a>
           </h6>
 <p>
- The customization point <tt class="computeroutput"><span class="identifier">push_back_container</span></tt>
+ The customization point <code class="computeroutput"><span class="identifier">push_back_container</span></code>
             needs to be implemented for a specific type whenever this type is to
             be used as an attribute in place of a STL container. It is applicable
             for parsers (<span class="emphasis"><em>Spirit.Qi</em></span>) only. As a rule of thumb:
             it has to be implemented whenever a certain type is to be passed as an
             attribute to a parser normally exposing a STL container and if the type
             does not expose the interface of a STL container (i.e. no function being
- equivalent to <tt class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">attr</span><span class="special">)</span></tt>.
+ equivalent to <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">attr</span><span class="special">)</span></code>.
             These components have an attribute propagation rule in the form:
           </p>
 <pre class="programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--&gt;</span> <span class="identifier">Op</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>
 </pre>
 <p>
- where <tt class="computeroutput"><span class="identifier">Op</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></tt>
- stands for any meaningful operation on the component <tt class="computeroutput"><span class="identifier">a</span></tt>.
+ where <code class="computeroutput"><span class="identifier">Op</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code>
+ stands for any meaningful operation on the component <code class="computeroutput"><span class="identifier">a</span></code>.
           </p>
 <a name="spirit.advanced.customize.store_value.push_back.related_attribute_customization_points"></a><h6>
-<a name="id735146"></a>
- <a href="push_back.html#spirit.advanced.customize.store_value.push_back.related_attribute_customization_points">Related
+<a name="id859216"></a>
+ <a class="link" href="push_back.html#spirit.advanced.customize.store_value.push_back.related_attribute_customization_points">Related
             Attribute Customization Points</a>
           </h6>
 <p>
             If this customization point is implemented, the following other customization
- points need to be implemented as well.
+ points might need to be implemented as well.
           </p>
 <div class="informaltable"><table class="table">
 <colgroup>
@@ -334,45 +381,53 @@
 <col>
 </colgroup>
 <thead><tr>
-<th><p>
+<th>
+ <p>
                     Name
- </p></th>
-<th><p>
+ </p>
+ </th>
+<th>
+ <p>
                     When to implement
- </p></th>
+ </p>
+ </th>
 </tr></thead>
 <tbody>
 <tr>
-<td><p>
- <a href="container_value.html" title="
- Determine the Type to be Stored in a Container (Qi)"><tt class="computeroutput"><span class="identifier">container_value</span></tt></a>
- </p></td>
-<td><p>
- Qi: List,
- Kleene,
- Plus,
- <a href="../../../qi/reference/directive/repeat.html" title=" Repetition
- (repeat[])">Repeat</a>.
- </p></td>
+<td>
+ <p>
+ <a class="link" href="container_value.html" title="Determine the Type to be Stored in a Container (Qi)"><code class="computeroutput"><span class="identifier">container_value</span></code></a>
+ </p>
+ </td>
+<td>
+ <p>
+ Qi: <a class="link" href="../../../qi/reference/operator/list.html" title="List (a % b)">List</a>,
+ <a class="link" href="../../../qi/reference/operator/kleene.html" title="Kleene (*a)">Kleene</a>,
+ <a class="link" href="../../../qi/reference/operator/plus.html" title="Plus (+a)">Plus</a>,
+ <a class="link" href="../../../qi/reference/directive/repeat.html" title="Repetition (repeat[])">Repeat</a>.
+ </p>
+ </td>
 </tr>
 <tr>
-<td><p>
- <a href="../clear_value.html" title=" Re-Initialize
- an Attribute Value before Parsing (Qi)"><tt class="computeroutput"><span class="identifier">clear_value</span></tt></a>
- </p></td>
-<td><p>
- Qi: List,
- Kleene,
- Plus,
- <a href="../../../qi/reference/directive/repeat.html" title=" Repetition
- (repeat[])">Repeat</a>.
- </p></td>
+<td>
+ <p>
+ <a class="link" href="../clear_value.html" title="Re-Initialize an Attribute Value before Parsing (Qi)"><code class="computeroutput"><span class="identifier">clear_value</span></code></a>
+ </p>
+ </td>
+<td>
+ <p>
+ Qi: <a class="link" href="../../../qi/reference/operator/list.html" title="List (a % b)">List</a>,
+ <a class="link" href="../../../qi/reference/operator/kleene.html" title="Kleene (*a)">Kleene</a>,
+ <a class="link" href="../../../qi/reference/operator/plus.html" title="Plus (+a)">Plus</a>,
+ <a class="link" href="../../../qi/reference/directive/repeat.html" title="Repetition (repeat[])">Repeat</a>.
+ </p>
+ </td>
 </tr>
 </tbody>
 </table></div>
 <a name="spirit.advanced.customize.store_value.push_back.example"></a><h6>
-<a name="id735362"></a>
- Example
+<a name="id859359"></a>
+ <a class="link" href="push_back.html#spirit.advanced.customize.store_value.push_back.example">Example</a>
           </h6>
 <p>
             TBD

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/customize/transform.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/customize/transform.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/customize/transform.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -1,17 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Transform an
- Attribute to a Different Type (Qi and Karma)</title>
+<title>Transform an Attribute to a Different Type (Qi and Karma)</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
 <link rel="home" href="../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../customize.html" title=" Customization of Spirit's
- Attribute Handling">
-<link rel="previous" href="is_container.html" title=" Determine
- if a Type Should be Treated as a Container (Qi and Karma)">
-<link rel="next" href="assign_to.html" title=" Store a Parsed
- Attribute Value (Qi)">
+<link rel="up" href="../customize.html" title="Customization of Spirit's Attribute Handling">
+<link rel="prev" href="is_container.html" title="Determine if a Type Should be Treated as a Container (Qi and Karma)">
+<link rel="next" href="assign_to.html" title="Store a Parsed Attribute Value (Qi)">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -26,68 +22,79 @@
 <div class="spirit-nav">
 <a accesskey="p" href="is_container.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../customize.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="assign_to.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.advanced.customize.transform"></a><a href="transform.html" title=" Transform an
- Attribute to a Different Type (Qi and Karma)"> Transform an
+<div class="section" title="Transform an Attribute to a Different Type (Qi and Karma)">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.advanced.customize.transform"></a><a class="link" href="transform.html" title="Transform an Attribute to a Different Type (Qi and Karma)"> Transform an
         Attribute to a Different Type (Qi and Karma)</a>
-</h4></div></div>
-<div></div>
-</div>
-<a name="spirit.advanced.customize.transform.transform_attribute"></a><h5>
-<a name="id727844"></a>
- transform_attribute
- </h5>
+</h4></div></div></div>
+<a name="spirit.advanced.customize.transform.transform_attribute"></a><h6>
+<a name="id849110"></a>
+ <a class="link" href="transform.html#spirit.advanced.customize.transform.transform_attribute">transform_attribute</a>
+ </h6>
 <p>
- Short description here...
+ The template <code class="computeroutput"><span class="identifier">transform_attribute</span></code>
+ is a type used as an attribute customization point. It is invoked by <span class="emphasis"><em>Qi</em></span>
+ <code class="computeroutput"><span class="identifier">rule</span></code> and <code class="computeroutput"><span class="identifier">attr_cast</span></code>, and <span class="emphasis"><em>Karma</em></span>
+ <code class="computeroutput"><span class="identifier">rule</span></code> and <a class="link" href="../../karma/reference/auxiliary/attr_cast.html" title="Attribute Transformation Pseudo Generator (attr_cast)"><code class="computeroutput"><span class="identifier">attr_cast</span></code></a>. It is used to automatically
+ transform the user provided attribute to the attribute type expected by
+ the right hand side component (for <code class="computeroutput"><span class="identifier">rule</span></code>)
+ or the embedded component (for <code class="computeroutput"><span class="identifier">attr_cast</span></code>).
         </p>
-<a name="spirit.advanced.customize.transform.module_headers"></a><h5>
-<a name="id727873"></a>
- <a href="transform.html#spirit.advanced.customize.transform.module_headers">Module
+<a name="spirit.advanced.customize.transform.module_headers"></a><h6>
+<a name="id849187"></a>
+ <a class="link" href="transform.html#spirit.advanced.customize.transform.module_headers">Module
           Headers</a>
- </h5>
-<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">xxx</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+ </h6>
+<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">home</span><span class="special">/</span><span class="identifier">support</span><span class="special">/</span><span class="identifier">attributes</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
 </pre>
 <p>
- Also, see Include Structure.
+ Also, see <a class="link" href="../../structure/include.html" title="Include">Include Structure</a>.
         </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>
             This header file does not need to be included directly by any user program
             as it is normally included by other Spirit header files relying on its
             content.
           </p></td></tr>
 </table></div>
-<a name="spirit.advanced.customize.transform.namespace"></a><h5>
-<a name="id727982"></a>
- Namespace
- </h5>
+<a name="spirit.advanced.customize.transform.namespace"></a><h6>
+<a name="id849272"></a>
+ <a class="link" href="transform.html#spirit.advanced.customize.transform.namespace">Namespace</a>
+ </h6>
 <div class="informaltable"><table class="table">
 <colgroup><col></colgroup>
-<thead><tr><th><p>
+<thead><tr><th>
+ <p>
                   Name
- </p></th></tr></thead>
-<tbody><tr><td><p>
- <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">xxx</span></tt>
- </p></td></tr></tbody>
+ </p>
+ </th></tr></thead>
+<tbody><tr><td>
+ <p>
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span></code>
+ </p>
+ </td></tr></tbody>
 </table></div>
-<a name="spirit.advanced.customize.transform.synopsis"></a><h5>
-<a name="id728078"></a>
- Synopsis
- </h5>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">XXX</span><span class="special">;</span>
+<a name="spirit.advanced.customize.transform.synopsis"></a><h6>
+<a name="id849345"></a>
+ <a class="link" href="transform.html#spirit.advanced.customize.transform.synopsis">Synopsis</a>
+ </h6>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Exposed</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Transformed</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">transform_attribute</span>
+<span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="special">&lt;</span><span class="identifier">unspecified</span><span class="special">&gt;</span> <span class="identifier">type</span><span class="special">;</span>
+ <span class="keyword">static</span> <span class="identifier">type</span> <span class="identifier">pre</span><span class="special">(</span><span class="identifier">Exposed</span><span class="special">&amp;</span> <span class="identifier">val</span><span class="special">);</span>
+ <span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">post</span><span class="special">(</span><span class="identifier">Exposed</span><span class="special">&amp;</span> <span class="identifier">val</span><span class="special">,</span> <span class="identifier">type</span> <span class="identifier">attr</span><span class="special">);</span> <span class="comment">// Qi only
+</span><span class="special">};</span>
 </pre>
-<a name="spirit.advanced.customize.transform.template_parameters"></a><h5>
-<a name="id728154"></a>
- <a href="transform.html#spirit.advanced.customize.transform.template_parameters">Template
+<a name="spirit.advanced.customize.transform.template_parameters"></a><h6>
+<a name="id849538"></a>
+ <a class="link" href="transform.html#spirit.advanced.customize.transform.template_parameters">Template
           parameters</a>
- </h5>
+ </h6>
 <div class="informaltable"><table class="table">
 <colgroup>
 <col>
@@ -95,133 +102,376 @@
 <col>
 </colgroup>
 <thead><tr>
-<th><p>
+<th>
+ <p>
                   Parameter
- </p></th>
-<th><p>
+ </p>
+ </th>
+<th>
+ <p>
                   Description
- </p></th>
-<th><p>
+ </p>
+ </th>
+<th>
+ <p>
                   Default
- </p></th>
+ </p>
+ </th>
 </tr></thead>
-<tbody><tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">T</span></tt>
- </p></td>
-<td><p>
- What is T
- </p></td>
-<td><p>
- </p></td>
-</tr></tbody>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Exposed</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The attribute type supplied to the component which needs to be
+ transformed.
+ </p>
+ </td>
+<td>
+ <p>
+ none
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Transformed</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The attribute type expected by the component to be provided as
+ the result of the transformation.
+ </p>
+ </td>
+<td>
+ <p>
+ none
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Enable</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Helper template parameter usable to selectively enable or disable
+ certain specializations of <code class="computeroutput"><span class="identifier">transform_attribute</span></code>
+ utilizing SFINAE (i.e. <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span></code>
+ or <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span></code>).
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">void</span></code>
+ </p>
+ </td>
+</tr>
+</tbody>
 </table></div>
-<a name="spirit.advanced.customize.transform.notation"></a><h5>
-<a name="id728259"></a>
- Notation
- </h5>
-<div class="variablelist">
+<a name="spirit.advanced.customize.transform.notation"></a><h6>
+<a name="id849724"></a>
+ <a class="link" href="transform.html#spirit.advanced.customize.transform.notation">Notation</a>
+ </h6>
+<div class="variablelist" title="Notation">
 <p class="title"><b>Notation</b></p>
 <dl>
-<dt><span class="term"><tt class="computeroutput"><span class="identifier">xxx</span></tt></span></dt>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Exposed</span></code></span></dt>
+<dd><p>
+ The type, <code class="computeroutput"><span class="identifier">Exposed</span></code> is
+ the type of the attribute as passed in by the user.
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Transformed</span></code></span></dt>
+<dd><p>
+ The type, <code class="computeroutput"><span class="identifier">Transformed</span></code>
+ is the type of the attribute as passed along to the right hand side
+ of the <code class="computeroutput"><span class="identifier">rule</span></code> (embedded
+ component of <code class="computeroutput"><span class="identifier">attr_cast</span></code>).
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">exposed</span></code></span></dt>
+<dd><p>
+ An instance of type <code class="computeroutput"><span class="identifier">Exposed</span></code>.
+ </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">transformed</span></code></span></dt>
 <dd><p>
- An XXX
+ An instance of type <code class="computeroutput"><span class="identifier">Transformed</span></code>.
             </p></dd>
 </dl>
 </div>
-<a name="spirit.advanced.customize.transform.expression_semantics"></a><h5>
-<a name="id728314"></a>
- <a href="transform.html#spirit.advanced.customize.transform.expression_semantics">Expression
+<a name="spirit.advanced.customize.transform.expression_semantics"></a><h6>
+<a name="id849862"></a>
+ <a class="link" href="transform.html#spirit.advanced.customize.transform.expression_semantics">Expression
           Semantics</a>
- </h5>
-<p>
- Semantics of an expression is defined only where it differs from, or is
- not defined in _concept-of<span class="underline">XXX</span>.
- </p>
+ </h6>
 <div class="informaltable"><table class="table">
 <colgroup>
 <col>
 <col>
 </colgroup>
 <thead><tr>
-<th><p>
+<th>
+ <p>
                   Expression
- </p></th>
-<th><p>
+ </p>
+ </th>
+<th>
+ <p>
                   Semantics
- </p></th>
+ </p>
+ </th>
 </tr></thead>
-<tbody><tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">xxx</span></tt>
- </p></td>
-<td><p>
- Semantics of <tt class="computeroutput"><span class="identifier">xxx</span></tt>
- </p></td>
-</tr></tbody>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">transform_attribute</span><span class="special">&lt;</span><span class="identifier">Exposed</span><span class="special">,</span> <span class="identifier">Transformed</span><span class="special">&gt;::</span><span class="identifier">type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Evaluates to the type to be used as the result of the transformation
+ (to be passed to the right hand side of the <code class="computeroutput"><span class="identifier">rule</span></code>
+ or to the embedded component of the <code class="computeroutput"><span class="identifier">attr_cast</span></code>.
+ Most of the time this is equal to <code class="computeroutput"><span class="identifier">Transformed</span></code>,
+ but in other cases this might evaluate to <code class="computeroutput"><span class="identifier">Transformed</span><span class="special">&amp;</span></code> instead avoiding superfluous
+ object creation.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">type</span> <span class="identifier">transform_attribute</span><span class="special">&lt;</span><span class="identifier">Exposed</span><span class="special">,</span> <span class="identifier">Transformed</span><span class="special">&gt;::</span><span class="identifier">pre</span><span class="special">(</span><span class="identifier">exposed</span><span class="special">)</span></pre>
+<p>
+ </p>
+ </td>
+<td>
+ <p>
+ Do <code class="computeroutput"><span class="identifier">pre</span></code>-transformation
+ before invoking the right hand side component for <code class="computeroutput"><span class="identifier">rule</span></code> (or the embedded component
+ for <code class="computeroutput"><span class="identifier">attr_cast</span></code>).
+ This takes the attribute supplied as by the user (of type <code class="computeroutput"><span class="identifier">Exposed</span></code>) and returns the attribute
+ to be passed down the component hierarchy (of the type as exposed
+ by the metafunction <code class="computeroutput"><span class="identifier">type</span></code>).
+ This function will be called in <span class="emphasis"><em>Qi</em></span> and for
+ <span class="emphasis"><em>Karma</em></span>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">transform_attribute</span><span class="special">&lt;</span><span class="identifier">Exposed</span><span class="special">,</span> <span class="identifier">Transformed</span><span class="special">&gt;::</span><span class="identifier">post</span><span class="special">(</span><span class="identifier">exposed</span><span class="special">,</span> <span class="identifier">transformed</span><span class="special">)</span></pre>
+<p>
+ </p>
+ </td>
+<td>
+ <p>
+ Do <code class="computeroutput"><span class="identifier">post</span></code>-transformation
+ after the invocation of the right hand side component for <code class="computeroutput"><span class="identifier">rule</span></code> (or the embedded component
+ for <code class="computeroutput"><span class="identifier">attr_cast</span></code>).
+ This takes the original attribute as supplied by the user and the
+ attribute as returned from the right hand side (embedded) component
+ and is expected to propagate the result back into the supplied
+ attribute instance. This function will be called in <span class="emphasis"><em>Qi</em></span>
+ only.
+ </p>
+ </td>
+</tr>
+</tbody>
 </table></div>
-<a name="spirit.advanced.customize.transform.predefined_specializations"></a><h5>
-<a name="id728429"></a>
- <a href="transform.html#spirit.advanced.customize.transform.predefined_specializations">Predefined
+<a name="spirit.advanced.customize.transform.predefined_specializations"></a><h6>
+<a name="id850196"></a>
+ <a class="link" href="transform.html#spirit.advanced.customize.transform.predefined_specializations">Predefined
           Specializations</a>
- </h5>
+ </h6>
 <div class="informaltable"><table class="table">
 <colgroup>
 <col>
 <col>
 </colgroup>
 <thead><tr>
-<th><p>
- Type
- </p></th>
-<th><p>
- Condition
- </p></th>
+<th>
+ <p>
+ Template parameters
+ </p>
+ </th>
+<th>
+ <p>
+ Semantics
+ </p>
+ </th>
 </tr></thead>
-<tbody><tr>
-<td><p>
- <tt class="computeroutput"><span class="identifier">xxx</span></tt>
- </p></td>
-<td><p>
- when does it evaluate to mpl::true_
- </p></td>
-</tr></tbody>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Exposed</span></code>, <code class="computeroutput"><span class="identifier">Transformed</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">type</span></code> evaluates
+ to <code class="computeroutput"><span class="identifier">Transformed</span></code>,
+ <code class="computeroutput"><span class="identifier">pre</span><span class="special">()</span></code>
+ returns a new instance of <code class="computeroutput"><span class="identifier">Transformed</span></code>
+ constructed from the argument of type <code class="computeroutput"><span class="identifier">Exposed</span></code>,
+ <code class="computeroutput"><span class="identifier">post</span><span class="special">()</span></code>
+ assigns <code class="computeroutput"><span class="identifier">transformed</span></code>
+ to <code class="computeroutput"><span class="identifier">exposed</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Exposed</span><span class="special">&amp;</span></code>,
+ <code class="computeroutput"><span class="identifier">Transformed</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">type</span></code> evaluates
+ to <code class="computeroutput"><span class="identifier">Transformed</span></code>,
+ <code class="computeroutput"><span class="identifier">pre</span><span class="special">()</span></code>
+ returns a new instance of <code class="computeroutput"><span class="identifier">Transformed</span></code>
+ constructed from the argument of type <code class="computeroutput"><span class="identifier">Exposed</span></code>,
+ <code class="computeroutput"><span class="identifier">post</span><span class="special">()</span></code>
+ assigns <code class="computeroutput"><span class="identifier">transformed</span></code>
+ to <code class="computeroutput"><span class="identifier">exposed</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Attrib</span><span class="special">&amp;</span></code>,
+ <code class="computeroutput"><span class="identifier">Attrib</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">type</span></code> evaluates
+ to <code class="computeroutput"><span class="identifier">Attrib</span><span class="special">&amp;</span></code>,
+ <code class="computeroutput"><span class="identifier">pre</span><span class="special">()</span></code>
+ returns it's argument, <code class="computeroutput"><span class="identifier">post</span><span class="special">()</span></code> does nothing.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Exposed</span> <span class="keyword">const</span></code>,
+ <code class="computeroutput"><span class="identifier">Transformed</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ (usind in <span class="emphasis"><em>Karma</em></span> only) <code class="computeroutput"><span class="identifier">type</span></code>
+ evaluates to <code class="computeroutput"><span class="identifier">Transformed</span></code>,
+ <code class="computeroutput"><span class="identifier">pre</span><span class="special">()</span></code>
+ returns it's argument, <code class="computeroutput"><span class="identifier">post</span><span class="special">()</span></code> is not implemented.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Attrib</span> <span class="keyword">const</span><span class="special">&amp;</span></code>, <code class="computeroutput"><span class="identifier">Attrib</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ (usind in <span class="emphasis"><em>Karma</em></span> only) <code class="computeroutput"><span class="identifier">type</span></code>
+ evaluates to <code class="computeroutput"><span class="identifier">Attrib</span> <span class="keyword">const</span><span class="special">&amp;</span></code>,
+ <code class="computeroutput"><span class="identifier">pre</span><span class="special">()</span></code>
+ returns it's argument, <code class="computeroutput"><span class="identifier">post</span><span class="special">()</span></code> is not implemented.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Attrib</span> <span class="keyword">const</span></code>,
+ <code class="computeroutput"><span class="identifier">Attrib</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ (usind in <span class="emphasis"><em>Karma</em></span> only) <code class="computeroutput"><span class="identifier">type</span></code>
+ evaluates to <code class="computeroutput"><span class="identifier">Attrib</span> <span class="keyword">const</span><span class="special">&amp;</span></code>,
+ <code class="computeroutput"><span class="identifier">pre</span><span class="special">()</span></code>
+ returns it's argument, <code class="computeroutput"><span class="identifier">post</span><span class="special">()</span></code> is not implemented.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">unused_type</span></code>, <code class="computeroutput"><span class="identifier">Attrib</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">type</span></code> evaluates
+ to <code class="computeroutput"><span class="identifier">unused_type</span></code>,
+ <code class="computeroutput"><span class="identifier">pre</span><span class="special">()</span></code>
+ and <code class="computeroutput"><span class="identifier">post</span><span class="special">()</span></code>
+ do nothing.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Attrib</span></code>, <code class="computeroutput"><span class="identifier">unused_type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">type</span></code> evaluates
+ to <code class="computeroutput"><span class="identifier">unused_type</span></code>,
+ <code class="computeroutput"><span class="identifier">pre</span><span class="special">()</span></code>
+ and <code class="computeroutput"><span class="identifier">post</span><span class="special">()</span></code>
+ do nothing.
+ </p>
+ </td>
+</tr>
+</tbody>
 </table></div>
-<a name="spirit.advanced.customize.transform.when_to_implement"></a><h5>
-<a name="id728520"></a>
- <a href="transform.html#spirit.advanced.customize.transform.when_to_implement">When
+<a name="spirit.advanced.customize.transform.when_to_implement"></a><h6>
+<a name="id852015"></a>
+ <a class="link" href="transform.html#spirit.advanced.customize.transform.when_to_implement">When
           to implement</a>
- </h5>
+ </h6>
 <p>
- Describe when this customization point needs to be implemented by the user.
+ The customization point <code class="computeroutput"><span class="identifier">transform_attribute</span></code>
+ needs to be implemented for a specific pair of types whenever the attribute
+ type supplied to a <code class="computeroutput"><span class="identifier">rule</span></code>
+ or <code class="computeroutput"><span class="identifier">attr_cast</span></code> cannot automatically
+ transformed to the attribute type expected by the right hand side of the
+ <code class="computeroutput"><span class="identifier">rule</span></code> (embedded component
+ of the <code class="computeroutput"><span class="identifier">attr_cast</span></code>) because
+ the default implementation as shown above is not applicable. Examples for
+ this could be that the type <code class="computeroutput"><span class="identifier">Transformed</span></code>
+ is not constructible from the type <code class="computeroutput"><span class="identifier">Exposed</span></code>.
         </p>
-<a name="spirit.advanced.customize.transform.related_attribute_customization_points"></a><h5>
-<a name="id728550"></a>
- <a href="transform.html#spirit.advanced.customize.transform.related_attribute_customization_points">Related
- Attribute Customization Points</a>
- </h5>
-<p>
- If this customization point is implemented, the following other customization
- points need to be implemented as well.
- </p>
-<div class="informaltable"><table class="table">
-<colgroup>
-<col>
-<col>
-</colgroup>
-<tbody><tr>
-<td><p>
- Name
- </p></td>
-<td><p>
- When to implement
- </p></td>
-</tr></tbody>
-</table></div>
-<a name="spirit.advanced.customize.transform.example"></a><h5>
-<a name="id728616"></a>
- Example
- </h5>
+<a name="spirit.advanced.customize.transform.example"></a><h6>
+<a name="id852082"></a>
+ <a class="link" href="transform.html#spirit.advanced.customize.transform.example">Example</a>
+ </h6>
 <p>
           TBD
         </p>

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/indepth.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/indepth.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/indepth.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -1,14 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> In Depth</title>
+<title>In Depth</title>
 <link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
 <link rel="home" href="../../index.html" title="Spirit 2.1">
 <link rel="up" href="../advanced.html" title="Advanced">
-<link rel="previous" href="../advanced.html" title="Advanced">
-<link rel="next" href="indepth/parsers_indepth.html" title=" Parsers in
- Depth">
+<link rel="prev" href="../advanced.html" title="Advanced">
+<link rel="next" href="indepth/parsers_indepth.html" title="Parsers in Depth">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -23,13 +22,10 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../advanced.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../advanced.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="indepth/parsers_indepth.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.advanced.indepth"></a> In Depth
-</h3></div></div>
-<div></div>
-</div>
+<div class="section" title="In Depth">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="spirit.advanced.indepth"></a><a class="link" href="indepth.html" title="In Depth"> In Depth</a>
+</h3></div></div></div>
 <div class="toc"><dl><dt><span class="section"><a href="indepth/parsers_indepth.html"> Parsers in
         Depth</a></span></dt></dl></div>
 </div>

Modified: branches/release/libs/spirit/doc/html/spirit/advanced/indepth/parsers_indepth.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/advanced/indepth/parsers_indepth.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/advanced/indepth/parsers_indepth.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -1,15 +1,13 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Parsers in
- Depth</title>
+<title>Parsers in Depth</title>
 <link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
 <link rel="home" href="../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../indepth.html" title=" In Depth">
-<link rel="previous" href="../indepth.html" title=" In Depth">
-<link rel="next" href="../customize.html" title=" Customization of Spirit's
- Attribute Handling">
+<link rel="up" href="../indepth.html" title="In Depth">
+<link rel="prev" href="../indepth.html" title="In Depth">
+<link rel="next" href="../customize.html" title="Customization of Spirit's Attribute Handling">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -24,15 +22,11 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../indepth.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../indepth.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="../customize.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.advanced.indepth.parsers_indepth"></a><a href="parsers_indepth.html" title=" Parsers in
- Depth"> Parsers in
+<div class="section" title="Parsers in Depth">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.advanced.indepth.parsers_indepth"></a><a class="link" href="parsers_indepth.html" title="Parsers in Depth"> Parsers in
         Depth</a>
-</h4></div></div>
-<div></div>
-</div>
+</h4></div></div></div>
 <p>
           This section is not for the faint of heart. In here, are distilled the
           inner workings of <span class="emphasis"><em>Spirit.Qi</em></span> parsers, using real code
@@ -42,7 +36,7 @@
           insights.
         </p>
 <p>
- The <tt class="computeroutput">Parser</tt> class is the base
+ The <code class="computeroutput"><a class="link" href="../../qi/reference/parser_concepts/parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a></code> class is the base
           class for all parsers.
         </p>
 <p>
@@ -87,38 +81,38 @@
 <p>
         </p>
 <p>
- The <tt class="computeroutput">Parser</tt> class does not really
+ The <code class="computeroutput"><a class="link" href="../../qi/reference/parser_concepts/parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a></code> class does not really
           know how to parse anything but instead relies on the template parameter
- <tt class="computeroutput"><span class="identifier">Derived</span></tt> to do the actual
+ <code class="computeroutput"><span class="identifier">Derived</span></code> to do the actual
           parsing. This technique is known as the "Curiously Recurring Template
           Pattern" in template meta-programming circles. This inheritance strategy
           gives us the power of polymorphism without the virtual function overhead.
           In essence this is a way to implement compile time polymorphism.
         </p>
 <p>
- The Derived parsers, <tt class="computeroutput">PrimitiveParser</tt>, <tt class="computeroutput">UnaryParser</tt>, <tt class="computeroutput">BinaryParser</tt> and <tt class="computeroutput">NaryParser</tt> provide the
+ The Derived parsers, <code class="computeroutput"><a class="link" href="../../qi/reference/parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a></code>, <code class="computeroutput"><a class="link" href="../../qi/reference/parser_concepts/unaryparser.html" title="UnaryParser"><code class="computeroutput"><span class="identifier">UnaryParser</span></code></a></code>, <code class="computeroutput"><a class="link" href="../../qi/reference/parser_concepts/binaryparser.html" title="BinaryParser"><code class="computeroutput"><span class="identifier">BinaryParser</span></code></a></code> and <code class="computeroutput"><a class="link" href="../../qi/reference/parser_concepts/naryparser.html" title="NaryParser"><code class="computeroutput"><span class="identifier">NaryParser</span></code></a></code> provide the
           necessary facilities for parser detection, introspection, transformation
           and visitation.
         </p>
 <p>
           Derived parsers must support the following:
         </p>
-<div class="variablelist">
+<div class="variablelist" title="bool parse(f, l, context, skip, attr)">
 <p class="title"><b>bool parse(f, l, context, skip, attr)</b></p>
 <dl>
-<dt><span class="term"><tt class="computeroutput"><span class="identifier">f</span></tt>, <tt class="computeroutput"><span class="identifier">l</span></tt></span></dt>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">f</span></code>, <code class="computeroutput"><span class="identifier">l</span></code></span></dt>
 <dd><p>
               first/last iterator pair
             </p></dd>
-<dt><span class="term"><tt class="computeroutput"><span class="identifier">context</span></tt></span></dt>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">context</span></code></span></dt>
 <dd><p>
               enclosing rule context (can be unused_type)
             </p></dd>
-<dt><span class="term"><tt class="computeroutput"><span class="identifier">skip</span></tt></span></dt>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">skip</span></code></span></dt>
 <dd><p>
               skipper (can be unused_type)
             </p></dd>
-<dt><span class="term"><tt class="computeroutput"><span class="identifier">attr</span></tt></span></dt>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">attr</span></code></span></dt>
 <dd><p>
               attribute (can be unused_type)
             </p></dd>
@@ -126,57 +120,57 @@
 </div>
 <p>
           The <span class="emphasis"><em>parse</em></span> is the main parser entry point. <span class="emphasis"><em>skipper</em></span>
- can be an <tt class="computeroutput"><span class="identifier">unused_type</span></tt>.
+ can be an <code class="computeroutput"><span class="identifier">unused_type</span></code>.
           It's a type used every where in Spirit
           to signify "don't-care". There is an overload for <span class="emphasis"><em>skip</em></span>
- for <tt class="computeroutput"><span class="identifier">unused_type</span></tt> that is
+ for <code class="computeroutput"><span class="identifier">unused_type</span></code> that is
           simply a no-op. That way, we do not have to write multiple parse functions
           for phrase and character level parsing.
         </p>
 <p>
           Here are the basic rules for parsing:
         </p>
-<div class="itemizedlist"><ul type="disc">
-<li>
- The parser returns <tt class="computeroutput"><span class="keyword">true</span></tt>
- if successful, <tt class="computeroutput"><span class="keyword">false</span></tt> otherwise.
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ The parser returns <code class="computeroutput"><span class="keyword">true</span></code>
+ if successful, <code class="computeroutput"><span class="keyword">false</span></code> otherwise.
           </li>
-<li>
- If successful, <tt class="computeroutput"><span class="identifier">first</span></tt>
+<li class="listitem">
+ If successful, <code class="computeroutput"><span class="identifier">first</span></code>
             is incremented N number of times, where N is the number of characters
             parsed. N can be zero --an empty (epsilon) match.
           </li>
-<li>
+<li class="listitem">
             If successful, the parsed attribute is assigned to <span class="emphasis"><em>attr</em></span>
 </li>
-<li>
- If unsuccessful, <tt class="computeroutput"><span class="identifier">first</span></tt>
+<li class="listitem">
+ If unsuccessful, <code class="computeroutput"><span class="identifier">first</span></code>
             is reset to its position before entering the parser function. <span class="emphasis"><em>attr</em></span>
             is untouched.
           </li>
 </ul></div>
-<div class="variablelist">
+<div class="variablelist" title="void what(context)">
 <p class="title"><b>void what(context)</b></p>
 <dl>
-<dt><span class="term"><tt class="computeroutput"><span class="identifier">context</span></tt></span></dt>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">context</span></code></span></dt>
 <dd><p>
- enclosing rule context (can be <tt class="computeroutput"><span class="identifier">unused_type</span></tt>)
+ enclosing rule context (can be <code class="computeroutput"><span class="identifier">unused_type</span></code>)
             </p></dd>
 </dl>
 </div>
 <p>
           The <span class="emphasis"><em>what</em></span> function should be obvious. It provides some
- information about &#8220;<span class="quote">what</span>&#8221; the parser is. It is used as a debugging
+ information about <span class="quote">&#8220;<span class="quote">what</span>&#8221;</span> the parser is. It is used as a debugging
           aid, for example.
         </p>
-<div class="variablelist">
+<div class="variablelist" title="P::template attribute&lt;context&gt;::type">
 <p class="title"><b>P::template attribute&lt;context&gt;::type</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 type
             </p></dd>
-<dt><span class="term"><tt class="computeroutput"><span class="identifier">context</span></tt></span></dt>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">context</span></code></span></dt>
 <dd><p>
               A context type (can be unused_type)
             </p></dd>
@@ -189,27 +183,27 @@
 <p>
           In this section, we will dissect two parser types:
         </p>
-<div class="variablelist">
+<div class="variablelist" title="Parsers">
 <p class="title"><b>Parsers</b></p>
 <dl>
-<dt><span class="term"><tt class="computeroutput">PrimitiveParser</tt></span></dt>
+<dt><span class="term"><code class="computeroutput"><a class="link" href="../../qi/reference/parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a></code></span></dt>
 <dd><p>
               A parser for primitive data (e.g. integer parsing).
             </p></dd>
-<dt><span class="term"><tt class="computeroutput">UnaryParser</tt></span></dt>
+<dt><span class="term"><code class="computeroutput"><a class="link" href="../../qi/reference/parser_concepts/unaryparser.html" title="UnaryParser"><code class="computeroutput"><span class="identifier">UnaryParser</span></code></a></code></span></dt>
 <dd><p>
               A parser that has single subject (e.g. kleene star).
             </p></dd>
 </dl>
 </div>
-<a name="spirit.advanced.indepth.parsers_indepth.primitive_parsers"></a><h5>
-<a name="id719287"></a>
- <a href="parsers_indepth.html#spirit.advanced.indepth.parsers_indepth.primitive_parsers">Primitive
+<a name="spirit.advanced.indepth.parsers_indepth.primitive_parsers"></a><h6>
+<a name="id840503"></a>
+ <a class="link" href="parsers_indepth.html#spirit.advanced.indepth.parsers_indepth.primitive_parsers">Primitive
           Parsers</a>
- </h5>
+ </h6>
 <p>
           For our disection study, we will use a Spirit
- primitive, the <tt class="computeroutput"><span class="identifier">int_parser</span></tt>
+ primitive, the <code class="computeroutput"><span class="identifier">int_parser</span></code>
           in the boost::spirit::qi namespace.
         </p>
 <p>
@@ -259,20 +253,20 @@
 <p>
         </p>
 <p>
- The <tt class="computeroutput"><span class="identifier">int_parser</span></tt> is derived
- from a <tt class="computeroutput">PrimitiveParser<span class="special">&lt;</span><span class="identifier">Derived</span><span class="special">&gt;</span></tt>,
- which in turn derives from <tt class="computeroutput"><span class="identifier">parser</span><span class="special">&lt;</span><span class="identifier">Derived</span><span class="special">&gt;</span></tt>. Therefore, it supports the following
+ The <code class="computeroutput"><span class="identifier">int_parser</span></code> is derived
+ from a <code class="computeroutput"><a class="link" href="../../qi/reference/parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a><span class="special">&lt;</span><span class="identifier">Derived</span><span class="special">&gt;</span></code>,
+ which in turn derives from <code class="computeroutput"><span class="identifier">parser</span><span class="special">&lt;</span><span class="identifier">Derived</span><span class="special">&gt;</span></code>. Therefore, it supports the following
           requirements:
         </p>
-<div class="itemizedlist"><ul type="disc">
-<li>
- The <tt class="computeroutput"><span class="identifier">parse</span></tt> member function
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ The <code class="computeroutput"><span class="identifier">parse</span></code> member function
           </li>
-<li>
- The <tt class="computeroutput"><span class="identifier">what</span></tt> member function
+<li class="listitem">
+ The <code class="computeroutput"><span class="identifier">what</span></code> member function
           </li>
-<li>
- The nested <tt class="computeroutput"><span class="identifier">attribute</span></tt>
+<li class="listitem">
+ The nested <code class="computeroutput"><span class="identifier">attribute</span></code>
             metafunction
           </li>
 </ul></div>
@@ -289,7 +283,7 @@
         </p>
 <p>
           to do a pre-skip. After pre-skipping, the parser proceeds to do its thing.
- The actual parsing code is placed in <tt class="computeroutput"><span class="identifier">extract_int</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">Radix</span><span class="special">,</span> <span class="identifier">MinDigits</span><span class="special">,</span> <span class="identifier">MaxDigits</span><span class="special">&gt;::</span><span class="identifier">call</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">attr</span><span class="special">);</span></tt>
+ The actual parsing code is placed in <code class="computeroutput"><span class="identifier">extract_int</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">Radix</span><span class="special">,</span> <span class="identifier">MinDigits</span><span class="special">,</span> <span class="identifier">MaxDigits</span><span class="special">&gt;::</span><span class="identifier">call</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">attr</span><span class="special">);</span></code>
         </p>
 <p>
           This simple no-frills protocol is one of the reasons why Spirit
@@ -303,10 +297,10 @@
         </p>
 <p>
           The <span class="emphasis"><em>attribute</em></span> metafunction returns the T template
- parameter. We associate the <tt class="computeroutput"><span class="identifier">int_parser</span></tt>
- to some placeholders for <tt class="computeroutput"><span class="identifier">short_</span></tt>,
- <tt class="computeroutput"><span class="identifier">int_</span></tt>, <tt class="computeroutput"><span class="identifier">long_</span></tt>
- and <tt class="computeroutput"><span class="identifier">long_long</span></tt> types. But,
+ parameter. We associate the <code class="computeroutput"><span class="identifier">int_parser</span></code>
+ to some placeholders for <code class="computeroutput"><span class="identifier">short_</span></code>,
+ <code class="computeroutput"><span class="identifier">int_</span></code>, <code class="computeroutput"><span class="identifier">long_</span></code>
+ and <code class="computeroutput"><span class="identifier">long_long</span></code> types. But,
           first, we enable these placeholders in namespace boost::spirit:
         </p>
 <p>
@@ -356,7 +350,7 @@
 <p>
         </p>
 <p>
- Notice that <tt class="computeroutput"><span class="identifier">int_parser</span></tt>
+ Notice that <code class="computeroutput"><span class="identifier">int_parser</span></code>
           is placed in the namespace boost::spirit::qi while these <span class="emphasis"><em>enablers</em></span>
           are in namespace boost::spirit. The reason is that these placeholders are
           shared by other Spirit
@@ -393,14 +387,14 @@
           This one above is our main generator. It's a simple function object with
           2 (unused) arguments. These arguments are
         </p>
-<div class="orderedlist"><ol type="1">
-<li>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem">
             The actual terminal value obtained by proto. In this case, either a short<span class="underline">, int</span>, long_ or long_long. We don't care
             about this.
           </li>
-<li>
+<li class="listitem">
             Modifiers. We also don't care about this. This allows directives such
- as <tt class="computeroutput"><span class="identifier">no_case</span><span class="special">[</span><span class="identifier">p</span><span class="special">]</span></tt>
+ as <code class="computeroutput"><span class="identifier">no_case</span><span class="special">[</span><span class="identifier">p</span><span class="special">]</span></code>
             to pass information to inner parser nodes. We'll see how that works later.
           </li>
 </ol></div>
@@ -450,15 +444,15 @@
 <p>
         </p>
 <p>
- These, specialize <tt class="computeroutput"><span class="identifier">qi</span><span class="special">:</span><span class="identifier">make_primitive</span></tt> for specific tags. They
- all inherit from <tt class="computeroutput"><span class="identifier">make_int</span></tt>
+ These, specialize <code class="computeroutput"><span class="identifier">qi</span><span class="special">:</span><span class="identifier">make_primitive</span></code> for specific tags. They
+ all inherit from <code class="computeroutput"><span class="identifier">make_int</span></code>
           which does the actual work.
         </p>
-<a name="spirit.advanced.indepth.parsers_indepth.composite_parsers"></a><h5>
-<a name="id722066"></a>
- <a href="parsers_indepth.html#spirit.advanced.indepth.parsers_indepth.composite_parsers">Composite
+<a name="spirit.advanced.indepth.parsers_indepth.composite_parsers"></a><h6>
+<a name="id843353"></a>
+ <a class="link" href="parsers_indepth.html#spirit.advanced.indepth.parsers_indepth.composite_parsers">Composite
           Parsers</a>
- </h5>
+ </h6>
 <p>
           Let me present the kleene star (also in namespace spirit::qi):
         </p>
@@ -524,41 +518,41 @@
 <p>
         </p>
 <p>
- Looks similar in form to its primitive cousin, the <tt class="computeroutput"><span class="identifier">int_parser</span></tt>.
- And, again, it has the same basic ingredients required by <tt class="computeroutput"><span class="identifier">Derived</span></tt>.
+ Looks similar in form to its primitive cousin, the <code class="computeroutput"><span class="identifier">int_parser</span></code>.
+ And, again, it has the same basic ingredients required by <code class="computeroutput"><span class="identifier">Derived</span></code>.
         </p>
-<div class="itemizedlist"><ul type="disc">
-<li>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
             The nested attribute metafunction
           </li>
-<li>
+<li class="listitem">
             The parse member function
           </li>
-<li>
+<li class="listitem">
             The what member function
           </li>
 </ul></div>
 <p>
           kleene is a composite parser. It is a parser that composes another parser,
- its &#8220;<span class="quote">subject</span>&#8221;. It is a <tt class="computeroutput">UnaryParser</tt> and subclasses
- from it. Like <tt class="computeroutput">PrimitiveParser</tt>, <tt class="computeroutput">UnaryParser<span class="special">&lt;</span><span class="identifier">Derived</span><span class="special">&gt;</span></tt>
- derives from <tt class="computeroutput"><span class="identifier">parser</span><span class="special">&lt;</span><span class="identifier">Derived</span><span class="special">&gt;</span></tt>.
+ its <span class="quote">&#8220;<span class="quote">subject</span>&#8221;</span>. It is a <code class="computeroutput"><a class="link" href="../../qi/reference/parser_concepts/unaryparser.html" title="UnaryParser"><code class="computeroutput"><span class="identifier">UnaryParser</span></code></a></code> and subclasses
+ from it. Like <code class="computeroutput"><a class="link" href="../../qi/reference/parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a></code>, <code class="computeroutput"><a class="link" href="../../qi/reference/parser_concepts/unaryparser.html" title="UnaryParser"><code class="computeroutput"><span class="identifier">UnaryParser</span></code></a><span class="special">&lt;</span><span class="identifier">Derived</span><span class="special">&gt;</span></code>
+ derives from <code class="computeroutput"><span class="identifier">parser</span><span class="special">&lt;</span><span class="identifier">Derived</span><span class="special">&gt;</span></code>.
         </p>
 <p>
           unary_parser&lt;Derived&gt;, has these expression requirements on Derived:
         </p>
-<div class="itemizedlist"><ul type="disc">
-<li>
- p.subject -&gt; subject parser ( <span class="emphasis"><em>p</em></span> is a UnaryParser parser.)
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ p.subject -&gt; subject parser ( <span class="emphasis"><em>p</em></span> is a <a class="link" href="../../qi/reference/parser_concepts/unaryparser.html" title="UnaryParser"><code class="computeroutput"><span class="identifier">UnaryParser</span></code></a> parser.)
           </li>
-<li>
+<li class="listitem">
             P::subject_type -&gt; subject parser type ( <span class="emphasis"><em>P</em></span> is
- a UnaryParser type.)
+ a <a class="link" href="../../qi/reference/parser_concepts/unaryparser.html" title="UnaryParser"><code class="computeroutput"><span class="identifier">UnaryParser</span></code></a> type.)
           </li>
 </ul></div>
 <p>
           <span class="emphasis"><em>parse</em></span> is the main parser entry point. Since this is
- not a primitive parser, we do not need to call <tt class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">skip</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">skipper</span><span class="special">)</span></tt>. The <span class="emphasis"><em>subject</em></span>, if
+ not a primitive parser, we do not need to call <code class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">skip</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">skipper</span><span class="special">)</span></code>. The <span class="emphasis"><em>subject</em></span>, if
           it is a primitive, will do the pre-skip. If if it is another composite
           parser, it will eventually call a primitive parser somewhere down the line
           which will do the pre-skip. This makes it a lot more efficient than Spirit.Classic.
@@ -568,12 +562,12 @@
         </p>
 <p>
           What is the <span class="emphasis"><em>attribute</em></span> of the kleene? In general, it
- 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">T</span><span class="special">&gt;</span></tt>
- where <tt class="computeroutput"><span class="identifier">T</span></tt> is the attribute
- of the subject. There is a special case though. If <tt class="computeroutput"><span class="identifier">T</span></tt>
- is an <tt class="computeroutput"><span class="identifier">unused_type</span></tt>, then
- the attribute of kleene is also <tt class="computeroutput"><span class="identifier">unused_type</span></tt>.
- <tt class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">build_std_vector</span></tt> takes care of that minor
+ 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">T</span><span class="special">&gt;</span></code>
+ where <code class="computeroutput"><span class="identifier">T</span></code> is the attribute
+ of the subject. There is a special case though. If <code class="computeroutput"><span class="identifier">T</span></code>
+ is an <code class="computeroutput"><span class="identifier">unused_type</span></code>, then
+ the attribute of kleene is also <code class="computeroutput"><span class="identifier">unused_type</span></code>.
+ <code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">build_std_vector</span></code> takes care of that minor
           detail.
         </p>
 <p>
@@ -588,9 +582,9 @@
 <p>
         </p>
 <p>
- <tt class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">attribute_of</span><span class="special">&lt;</span><span class="identifier">Subject</span><span class="special">,</span> <span class="identifier">Context</span><span class="special">&gt;</span></tt>
- simply calls the subject's <tt class="computeroutput"><span class="keyword">struct</span>
- <span class="identifier">attribute</span><span class="special">&lt;</span><span class="identifier">Context</span><span class="special">&gt;</span></tt>
+ <code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">attribute_of</span><span class="special">&lt;</span><span class="identifier">Subject</span><span class="special">,</span> <span class="identifier">Context</span><span class="special">&gt;</span></code>
+ simply calls the subject's <code class="computeroutput"><span class="keyword">struct</span>
+ <span class="identifier">attribute</span><span class="special">&lt;</span><span class="identifier">Context</span><span class="special">&gt;</span></code>
           nested metafunction.
         </p>
 <p>
@@ -599,12 +593,12 @@
         </p>
 <p>
           The kleene repeats indefinitely while the subject parser is successful.
- On each successful parse, we <tt class="computeroutput"><span class="identifier">push_back</span></tt>
+ On each successful parse, we <code class="computeroutput"><span class="identifier">push_back</span></code>
           the parsed attribute to the kleen's attribute, which is expected to be,
- at the very least, compatible with a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span></tt>.
- In other words, although we say that we want our attribute to be a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span></tt>, we try to be more lenient than
+ at the very least, compatible with a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span></code>.
+ In other words, although we say that we want our attribute to be a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span></code>, we try to be more lenient than
           that. The caller of kleene's parse may pass a different attribute type.
- For as long as it is also a conforming STL container with <tt class="computeroutput"><span class="identifier">push_back</span></tt>, we are ok. Here is the kleene
+ For as long as it is also a conforming STL container with <code class="computeroutput"><span class="identifier">push_back</span></code>, we are ok. Here is the kleene
           loop:
         </p>
 <p>
@@ -631,8 +625,8 @@
         </p>
 <p>
           This is a recurring pattern. The reason why we do it this way is because
- attr <span class="bold"><b>can</b></span> be <tt class="computeroutput"><span class="identifier">unused_type</span></tt>.
- <tt class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">push_back</span></tt> takes care of that detail.
+ attr <span class="bold"><strong>can</strong></span> be <code class="computeroutput"><span class="identifier">unused_type</span></code>.
+ <code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">push_back</span></code> takes care of that detail.
           The overload for unused_type is a no-op. Now, you can imagine why Spirit is fast! The parsers
           are so simple and the generated code is as efficient as a hand rolled loop.
           All these parser compositions and recursive parse invocations are extensively
@@ -643,10 +637,10 @@
         </p>
 <p>
           The <span class="emphasis"><em>what</em></span> function simply wraps the output of the subject
- in a "kleene&#8220;<span class="quote">... "</span>&#8221;".
+ in a "kleene<span class="quote">&#8220;<span class="quote">... "</span>&#8221;</span>".
         </p>
 <p>
- Ok, now, like the <tt class="computeroutput"><span class="identifier">int_parser</span></tt>,
+ Ok, now, like the <code class="computeroutput"><span class="identifier">int_parser</span></code>,
           we have to hook our parser to the <span class="underline">qi</span>
           engine. Here's how we do it:
         </p>
@@ -667,9 +661,9 @@
 <p>
         </p>
 <p>
- This is done in namespace <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span></tt>
- like its friend, the <tt class="computeroutput"><span class="identifier">use_terminal</span></tt>
- specialization for our <tt class="computeroutput"><span class="identifier">int_parser</span></tt>.
+ This is done in namespace <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span></code>
+ like its friend, the <code class="computeroutput"><span class="identifier">use_terminal</span></code>
+ specialization for our <code class="computeroutput"><span class="identifier">int_parser</span></code>.
           Obviously, we use <span class="emphasis"><em>use_operator</em></span> to enable the dereference
           for the qi::domain.
         </p>
@@ -691,7 +685,7 @@
 <p>
         </p>
 <p>
- This essentially says; for all expressions of the form: <tt class="computeroutput"><span class="special">*</span><span class="identifier">p</span></tt>, to build a kleene parser. Elements
+ This essentially says; for all expressions of the form: <code class="computeroutput"><span class="special">*</span><span class="identifier">p</span></code>, to build a kleene parser. Elements
           is a Boost.Fusion
           sequence. For the kleene, which is a unary operator, expect only one element
           in the sequence. That element is the subject of the kleene.

Modified: branches/release/libs/spirit/doc/html/spirit/faq.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/faq.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/faq.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -27,7 +27,7 @@
 <a name="spirit.faq"></a><a class="link" href="faq.html" title="Spirit FAQ"> Spirit FAQ</a>
 </h2></div></div></div>
 <a name="spirit.faq.i_m_getting_multiple_symbol_definition_errors_while_using_visual_c____anything_i_could_do_about_that_"></a><h4>
-<a name="id891355"></a>
+<a name="id892495"></a>
       <a class="link" href="faq.html#spirit.faq.i_m_getting_multiple_symbol_definition_errors_while_using_visual_c____anything_i_could_do_about_that_">I'm
       getting multiple symbol definition errors while using Visual C++. Anything
       I could do about that?</a>
@@ -64,7 +64,7 @@
       static_assert.
     </p>
 <a name="spirit.faq.i_m_very_confused_about_the_header_hell_in_my_boost_spirit_directory__what_s_all_this_about_"></a><h4>
-<a name="id891526"></a>
+<a name="id892665"></a>
       <a class="link" href="faq.html#spirit.faq.i_m_very_confused_about_the_header_hell_in_my_boost_spirit_directory__what_s_all_this_about_">I'm
       very confused about the header hell in my boost/spirit directory. What's all
       this about?</a>
@@ -172,7 +172,7 @@
       are available.
     </p>
 <a name="spirit.faq.why_doesn_t_my_symbol_table_work_in_a__code__phrase_role__identifier__no_case__phrase___code__directive_"></a><h4>
-<a name="id892050"></a>
+<a name="id893750"></a>
       <a class="link" href="faq.html#spirit.faq.why_doesn_t_my_symbol_table_work_in_a__code__phrase_role__identifier__no_case__phrase___code__directive_">Why
       doesn't my symbol table work in a <code class="computeroutput"><span class="identifier">no_case</span></code>
       directive?</a>
@@ -186,7 +186,7 @@
       one or more uppercase characters will not match any input.
     </p>
 <a name="spirit.faq.i_m_getting_a_compilation_error_mentioning__code__phrase_role__identifier__boost__phrase__phrase_role__special______phrase__phrase_role__identifier__function__phrase___code__and_or___________code__phrase_role__identifier__boost__phrase__phrase_role__special______phrase__phrase_role__identifier__function4__phrase___code___what_does_this_mean_"></a><h4>
-<a name="id892121"></a>
+<a name="id893821"></a>
       <a class="link" href="faq.html#spirit.faq.i_m_getting_a_compilation_error_mentioning__code__phrase_role__identifier__boost__phrase__phrase_role__special______phrase__phrase_role__identifier__function__phrase___code__and_or___________code__phrase_role__identifier__boost__phrase__phrase_role__special______phrase__phrase_role__identifier__function4__phrase___code___what_does_this_mean_">I'm
       getting a compilation error mentioning <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">function</span></code>
       and/or <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">function4</span></code>. What does this mean?</a>

Modified: branches/release/libs/spirit/doc/html/spirit/introduction.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/introduction.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/introduction.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -30,7 +30,7 @@
       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 Extended Backus Naur Form (EBNF)
- <sup>[<a name="id563977" href="#ftn.id563977" class="footnote">1</a>]</sup>
+ <sup>[<a name="id531209" href="#ftn.id531209" class="footnote">1</a>]</sup>
       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
@@ -135,7 +135,7 @@
 <p><br class="figure-break">
     </p>
 <a name="spirit.introduction.a_quick_overview_of_parsing_with__emphasis_spirit_qi__emphasis_"></a><h4>
-<a name="id564194"></a>
+<a name="id531426"></a>
       <a class="link" href="introduction.html#spirit.introduction.a_quick_overview_of_parsing_with__emphasis_spirit_qi__emphasis_">A
       Quick Overview of Parsing with <span class="emphasis"><em>Spirit.Qi</em></span></a>
     </h4>
@@ -226,7 +226,7 @@
       <code class="computeroutput"><span class="special">;</span></code>.
     </p>
 <a name="spirit.introduction.a_quick_overview_of_output_generation_with__emphasis_spirit_karma__emphasis_"></a><h4>
-<a name="id565150"></a>
+<a name="id532382"></a>
       <a class="link" href="introduction.html#spirit.introduction.a_quick_overview_of_output_generation_with__emphasis_spirit_karma__emphasis_">A
       Quick Overview of Output Generation with <span class="emphasis"><em>Spirit.Karma</em></span></a>
     </h4>
@@ -259,7 +259,7 @@
       of the same <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span></code>:
     </p>
 <div class="table">
-<a name="id567142"></a><p class="title"><b>Table 2. Different output formats for `std::vector&lt;int&gt;`</b></p>
+<a name="id534374"></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>
@@ -378,7 +378,7 @@
       next table gives some related examples.
     </p>
 <div class="table">
-<a name="id567526"></a><p class="title"><b>Table 3. Different data types usable with the output format
+<a name="id534758"></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)`">
@@ -452,7 +452,7 @@
 </div>
 <br class="table-break"><div class="footnotes">
 <br><hr width="100" align="left">
-<div class="footnote"><p><sup>[<a name="ftn.id563977" href="#id563977" class="para">1</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id531209" href="#id531209" class="para">1</a>] </sup>
           <a href="http://www.cl.cam.ac.uk/%7Emgk25/iso-14977.pdf" target="_top">ISO-EBNF</a>
         </p></div>
 </div>

Modified: branches/release/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/double_performance.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/double_performance.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/double_performance.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -135,7 +135,7 @@
             <a class="link" href="double_performance.html#spirit.karma.double_performance" title="Figure 4. Performance comparison for a single double">figure</a>.
           </p>
 <div class="table">
-<a name="id848684"></a><p class="title"><b>Table 6. Performance comparison for a single double (all
+<a name="id806325"></a><p class="title"><b>Table 6. Performance comparison for a single double (all
           times in [s], 1000000 iterations)</b></p>
 <div class="table-contents"><table class="table" summary="Performance comparison for a single double (all
           times in [s], 1000000 iterations)">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/format_performance.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/format_performance.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/format_performance.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -155,7 +155,7 @@
             <a class="link" href="format_performance.html#spirit.karma.format_performance" title="Figure 5. Performance comparison for a sequence of several items">figure</a>.
           </p>
 <div class="table">
-<a name="id851389"></a><p class="title"><b>Table 7. Performance comparison for a sequence of several
+<a name="id809012"></a><p class="title"><b>Table 7. Performance comparison for a sequence of several
           items (all times in [s], 1000000 iterations)</b></p>
 <div class="table-contents"><table class="table" summary="Performance comparison for a sequence of several
           items (all times in [s], 1000000 iterations)">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/int_performance.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/int_performance.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/int_performance.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -125,7 +125,7 @@
             <a class="link" href="int_performance.html#spirit.karma.int_performance" title="Figure 3. Performance comparison for a single int">figure</a>.
           </p>
 <div class="table">
-<a name="id847631"></a><p class="title"><b>Table 5. Performance comparison for a single int (all
+<a name="id805271"></a><p class="title"><b>Table 5. Performance comparison for a single int (all
           times in [s], 10000000 iterations)</b></p>
 <div class="table-contents"><table class="table" summary="Performance comparison for a single int (all
           times in [s], 10000000 iterations)">

Modified: branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/compound_attribute_rules.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/compound_attribute_rules.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/compound_attribute_rules.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -28,7 +28,7 @@
         Attribute Rules</a>
 </h4></div></div></div>
 <a name="spirit.karma.quick_reference.compound_attribute_rules.notation"></a><h6>
-<a name="id727021"></a>
+<a name="id684273"></a>
           <a class="link" href="compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.notation">Notation</a>
         </h6>
 <p>
@@ -77,7 +77,7 @@
           </p></td></tr>
 </table></div>
 <a name="spirit.karma.quick_reference.compound_attribute_rules.compound_generator_attribute_types"></a><h6>
-<a name="id729741"></a>
+<a name="id684809"></a>
           <a class="link" href="compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.compound_generator_attribute_types">Compound
           Generator Attribute Types</a>
         </h6>

Modified: branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/phoenix.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/phoenix.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/phoenix.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -58,10 +58,6 @@
               The enclosing rule's local variables (<code class="computeroutput"><span class="identifier">_a</span></code>
               refers to the first).
             </p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">_val</span></code></span></dt>
-<dd><p>
- The enclosing rule's synthesized attribute.
- </p></dd>
 <dt><span class="term"><code class="computeroutput"><span class="identifier">_pass</span></code></span></dt>
 <dd><p>
               Assign <code class="computeroutput"><span class="keyword">false</span></code> to <code class="computeroutput"><span class="identifier">_pass</span></code> to force a generator failure.

Modified: branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/auxiliary.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/auxiliary.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/auxiliary.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -58,18 +58,18 @@
 <tr>
 <td>
                   <p>
- <a class="link" href="../../reference/auxiliary/attr_cast.html" title="Attribute Transformation Pseudo Generator (attr_cast)"><code class="computeroutput"><span class="identifier">attr_cast</span><span class="special">&lt;</span><span class="identifier">Attrib</span><span class="special">&gt;(</span><span class="identifier">g</span><span class="special">)</span></code></a>
+ <a class="link" href="../../reference/auxiliary/attr_cast.html" title="Attribute Transformation Pseudo Generator (attr_cast)"><code class="computeroutput"><span class="identifier">attr_cast</span><span class="special">&lt;</span><span class="identifier">Exposed</span><span class="special">&gt;(</span><span class="identifier">a</span><span class="special">)</span></code></a>
                   </p>
                   </td>
 <td>
                   <p>
- <code class="computeroutput"><span class="identifier">Attrib</span></code>
+ <code class="computeroutput"><span class="identifier">Exposed</span></code>
                   </p>
                   </td>
 <td>
                   <p>
- Invokes <code class="computeroutput"><span class="identifier">g</span></code> while
- supplying an attribute of type <code class="computeroutput"><span class="identifier">Attrib</span></code>.
+ Invokes <code class="computeroutput"><span class="identifier">a</span></code> while
+ supplying an attribute of type <code class="computeroutput"><span class="identifier">Exposed</span></code>.
                   </p>
                   </td>
 </tr>

Modified: branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/semantic_actions.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/semantic_actions.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/quick_reference/semantic_actions.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -41,7 +41,7 @@
 <span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Attrib</span><span class="special">&amp;,</span> <span class="identifier">Context</span><span class="special">&amp;,</span> <span class="keyword">bool</span><span class="special">&amp;);</span>
 </pre>
 <p>
- You can use <code class="computeroutput">Boost.Bind</code>
+ You can use Boost.Bind
           to bind member functions. For function objects, the allowed signatures
           are:
         </p>

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -41,7 +41,7 @@
           <code class="computeroutput"><span class="identifier">lazy</span></code> generators.
         </p>
 <a name="spirit.karma.reference.auxiliary.module_header"></a><h6>
-<a name="id794457"></a>
+<a name="id752353"></a>
           <a class="link" href="auxiliary.html#spirit.karma.reference.auxiliary.module_header">Module Header</a>
         </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/auxiliary.hpp&gt;

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/attr_cast.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/attr_cast.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/attr_cast.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -28,18 +28,20 @@
           Transformation Pseudo Generator (<code class="computeroutput"><span class="identifier">attr_cast</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.auxiliary.attr_cast.description"></a><h6>
-<a name="id795095"></a>
+<a name="id752444"></a>
             <a class="link" href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.description">Description</a>
           </h6>
 <p>
- The <code class="computeroutput"><span class="identifier">attr_cast</span><span class="special">&lt;</span><span class="identifier">Attrib</span><span class="special">&gt;()</span></code>
+ The <code class="computeroutput"><span class="identifier">attr_cast</span><span class="special">&lt;</span><span class="identifier">Exposed</span><span class="special">,</span>
+ <span class="identifier">Transformed</span><span class="special">&gt;()</span></code>
             component invokes the embedded generator while supplying an attribute
- of type <code class="computeroutput"><span class="identifier">Attrib</span></code>. The supplied
- attribute gets created from the original attribute passed to this component
- using the customization point <code class="computeroutput"><span class="identifier">transform_attribute</span></code>.
+ of type <code class="computeroutput"><span class="identifier">Transformed</span></code>.
+ The supplied attribute gets created from the original attribute (of type
+ <code class="computeroutput"><span class="identifier">Exposed</span></code>) passed to this
+ component using the customization point <a class="link" href="../../../advanced/customize/transform.html" title="Transform an Attribute to a Different Type (Qi and Karma)"><code class="computeroutput"><span class="identifier">transform_attribute</span></code></a>.
           </p>
 <a name="spirit.karma.reference.auxiliary.attr_cast.header"></a><h6>
-<a name="id795144"></a>
+<a name="id752511"></a>
             <a class="link" href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/auxiliary/attr_cast.hpp&gt;
@@ -49,7 +51,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.auxiliary.attr_cast.namespace"></a><h6>
-<a name="id795219"></a>
+<a name="id752586"></a>
             <a class="link" href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -66,8 +68,93 @@
                   </p>
                   </td></tr></tbody>
 </table></div>
+<a name="spirit.karma.reference.auxiliary.attr_cast.synopsis"></a><h6>
+<a name="id752665"></a>
+ <a class="link" href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.synopsis">Synopsis</a>
+ </h6>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="identifier">Exposed</span><span class="special">,</span> <span class="identifier">Transformed</span><span class="special">&gt;</span>
+<span class="special">&lt;</span><span class="identifier">unspecified</span><span class="special">&gt;</span> <span class="identifier">attr_cast</span><span class="special">(&lt;</span><span class="identifier">unspecified</span><span class="special">&gt;);</span>
+</pre>
+<a name="spirit.karma.reference.auxiliary.attr_cast.template_parameters"></a><h6>
+<a name="id752737"></a>
+ <a class="link" href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.template_parameters">Template
+ parameters</a>
+ </h6>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Parameter
+ </p>
+ </th>
+<th>
+ <p>
+ Description
+ </p>
+ </th>
+<th>
+ <p>
+ Default
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Exposed</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The type of the attribute supplied to the <code class="computeroutput"><span class="identifier">attr_cast</span></code>.
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">unused_type</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Transformed</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The type of the attribute expected by the embedded generator
+ <code class="computeroutput"><span class="identifier">g</span></code>.
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">unused_type</span></code>
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+ The <code class="computeroutput"><span class="identifier">attr_cast</span></code> is a function
+ template. It is possible to invoke it using the following schemes:
+ </p>
+<pre class="programlisting"><span class="identifier">attr_cast</span><span class="special">(</span><span class="identifier">g</span><span class="special">)</span>
+<span class="identifier">attr_cast</span><span class="special">&lt;</span><span class="identifier">Exposed</span><span class="special">&gt;(</span><span class="identifier">g</span><span class="special">)</span>
+<span class="identifier">attr_cast</span><span class="special">&lt;</span><span class="identifier">Exposed</span><span class="special">,</span> <span class="identifier">Transformed</span><span class="special">&gt;(</span><span class="identifier">g</span><span class="special">)</span>
+</pre>
+<p>
+ depending on which of the attribute types can be deduced properly if
+ not explicitly specified.
+ </p>
 <a name="spirit.karma.reference.auxiliary.attr_cast.model_of"></a><h6>
-<a name="id795298"></a>
+<a name="id753516"></a>
             <a class="link" href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.model_of">Model
             of</a>
           </h6>
@@ -87,14 +174,10 @@
 <dd><p>
                 A generator object.
               </p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Attrib</span></code></span></dt>
-<dd><p>
- An attribute type
- </p></dd>
 </dl>
 </div>
 <a name="spirit.karma.reference.auxiliary.attr_cast.expression_semantics"></a><h6>
-<a name="id795380"></a>
+<a name="id753580"></a>
             <a class="link" href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -119,24 +202,69 @@
                   </p>
                   </th>
 </tr></thead>
-<tbody><tr>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">attr_cast</span><span class="special">(</span><span class="identifier">g</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Create a component invoking the generator <code class="computeroutput"><span class="identifier">g</span></code>
+ while passing an attribute of the type as normally expected by
+ <code class="computeroutput"><span class="identifier">g</span></code>. The type of
+ supplied attribute will be transformed to the type exposed as
+ it's attribute type by <code class="computeroutput"><span class="identifier">g</span></code>
+ using the attribute customization point <a class="link" href="../../../advanced/customize/transform.html" title="Transform an Attribute to a Different Type (Qi and Karma)"><code class="computeroutput"><span class="identifier">transform_attribute</span></code></a>.
+ This generator does not fail unless <code class="computeroutput"><span class="identifier">g</span></code>
+ fails.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">attr_cast</span><span class="special">&lt;</span><span class="identifier">Exposed</span><span class="special">&gt;(</span><span class="identifier">g</span><span class="special">)</span></code>
+ </p>
+ </td>
 <td>
                   <p>
- <code class="computeroutput"><span class="identifier">attr_cast</span><span class="special">&lt;</span><span class="identifier">Attrib</span><span class="special">&gt;(</span><span class="identifier">g</span><span class="special">)</span></code>
+ Create a component invoking the generator <code class="computeroutput"><span class="identifier">g</span></code>
+ while passing an attribute of the type as normally expected by
+ <code class="computeroutput"><span class="identifier">g</span></code>. The supplied
+ attribute is expected to be of the type <code class="computeroutput"><span class="identifier">Exposed</span></code>,
+ it will be transformed to the type exposed as it's attribute
+ type by <code class="computeroutput"><span class="identifier">g</span></code>using
+ the attribute customization point <a class="link" href="../../../advanced/customize/transform.html" title="Transform an Attribute to a Different Type (Qi and Karma)"><code class="computeroutput"><span class="identifier">transform_attribute</span></code></a>.
+ This generator does not fail unless <code class="computeroutput"><span class="identifier">g</span></code>
+ fails.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">attr_cast</span><span class="special">&lt;</span><span class="identifier">Exposed</span><span class="special">,</span>
+ <span class="identifier">Transformed</span><span class="special">&gt;(</span><span class="identifier">g</span><span class="special">)</span></code>
                   </p>
                   </td>
 <td>
                   <p>
                     Create a component invoking the generator <code class="computeroutput"><span class="identifier">g</span></code>
- while passing an attribute of type <code class="computeroutput"><span class="identifier">Attrib</span></code>.
+ while passing an attribute of type <code class="computeroutput"><span class="identifier">Transformed</span></code>.
+ The supplied attribute is expected to be of the type <code class="computeroutput"><span class="identifier">Exposed</span></code>, it will be transformed
+ to the type <code class="computeroutput"><span class="identifier">Transformed</span></code>
+ using the attribute customization point <a class="link" href="../../../advanced/customize/transform.html" title="Transform an Attribute to a Different Type (Qi and Karma)"><code class="computeroutput"><span class="identifier">transform_attribute</span></code></a>.
                     This generator does not fail unless <code class="computeroutput"><span class="identifier">g</span></code>
                     fails.
                   </p>
                   </td>
-</tr></tbody>
+</tr>
+</tbody>
 </table></div>
 <a name="spirit.karma.reference.auxiliary.attr_cast.attributes"></a><h6>
-<a name="id795512"></a>
+<a name="id753915"></a>
             <a class="link" href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -156,21 +284,58 @@
                   </p>
                   </th>
 </tr></thead>
-<tbody><tr>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">attr_cast</span><span class="special">(</span><span class="identifier">g</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">g</span><span class="special">:</span>
+ <span class="identifier">A</span> <span class="special">--&gt;</span>
+ <span class="identifier">attr_cast</span><span class="special">(</span><span class="identifier">g</span><span class="special">):</span>
+ <span class="identifier">A</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">attr_cast</span><span class="special">&lt;</span><span class="identifier">Exposed</span><span class="special">&gt;(</span><span class="identifier">g</span><span class="special">)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">g</span><span class="special">:</span>
+ <span class="identifier">A</span> <span class="special">--&gt;</span>
+ <span class="identifier">attr_cast</span><span class="special">&lt;</span><span class="identifier">Exposed</span><span class="special">&gt;(</span><span class="identifier">g</span><span class="special">):</span>
+ <span class="identifier">Exposed</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
 <td>
                   <p>
- <code class="computeroutput"><span class="identifier">attr_cast</span><span class="special">&lt;</span><span class="identifier">Attrib</span><span class="special">&gt;(</span><span class="identifier">g</span><span class="special">)</span></code>
+ <code class="computeroutput"><span class="identifier">attr_cast</span><span class="special">&lt;</span><span class="identifier">Exposed</span><span class="special">,</span>
+ <span class="identifier">Transformed</span><span class="special">&gt;(</span><span class="identifier">g</span><span class="special">)</span></code>
                   </p>
                   </td>
 <td>
                   <p>
- <code class="computeroutput"><span class="identifier">Attrib</span></code>
+ <code class="computeroutput"><span class="identifier">g</span><span class="special">:</span>
+ <span class="identifier">A</span> <span class="special">--&gt;</span>
+ <span class="identifier">attr_cast</span><span class="special">&lt;</span><span class="identifier">Exposed</span><span class="special">,</span>
+ <span class="identifier">Transformed</span><span class="special">&gt;(</span><span class="identifier">g</span><span class="special">):</span>
+ <span class="identifier">Exposed</span></code>
                   </p>
                   </td>
-</tr></tbody>
+</tr>
+</tbody>
 </table></div>
 <a name="spirit.karma.reference.auxiliary.attr_cast.complexity"></a><h6>
-<a name="id795608"></a>
+<a name="id754234"></a>
             <a class="link" href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -184,7 +349,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.auxiliary.attr_cast.example"></a><h6>
-<a name="id795639"></a>
+<a name="id754265"></a>
             <a class="link" href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.example">Example</a>
           </h6>
 <p>
@@ -245,7 +410,7 @@
           </p>
 <p>
             The example references data structure <code class="computeroutput"><span class="identifier">int_data</span></code>
- and needs a specializtion of the customization point <code class="computeroutput"><span class="identifier">transform_attribute</span></code>:
+ needs a specialization of the customization point <a class="link" href="../../../advanced/customize/transform.html" title="Transform an Attribute to a Different Type (Qi and Karma)"><code class="computeroutput"><span class="identifier">transform_attribute</span></code></a>:
           </p>
 <p>
             </p>
@@ -262,7 +427,7 @@
 </span><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">spirit</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">traits</span>
 <span class="special">{</span>
     <span class="keyword">template</span> <span class="special">&lt;&gt;</span>
- <span class="keyword">struct</span> <span class="identifier">transform_attribute</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">int_data</span> <span class="keyword">const</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">transform_attribute</span><span class="special">&lt;</span><span class="identifier">int_data</span> <span class="keyword">const</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span>
     <span class="special">{</span>
         <span class="keyword">static</span> <span class="keyword">int</span> <span class="identifier">pre</span><span class="special">(</span><span class="identifier">int_data</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">d</span><span class="special">)</span> <span class="special">{</span> <span class="keyword">return</span> <span class="identifier">d</span><span class="special">.</span><span class="identifier">i</span><span class="special">;</span> <span class="special">}</span>
     <span class="special">};</span>
@@ -282,7 +447,7 @@
               
 </p>
 <pre class="programlisting"><span class="identifier">int_data</span> <span class="identifier">d</span> <span class="special">=</span> <span class="special">{</span> <span class="number">1</span> <span class="special">};</span>
-<span class="identifier">test_generator</span><span class="special">(</span><span class="string">"1"</span><span class="special">,</span> <span class="identifier">karma</span><span class="special">::</span><span class="identifier">attr_cast</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;(</span><span class="identifier">karma</span><span class="special">::</span><span class="identifier">int_</span><span class="special">),</span> <span class="identifier">d</span><span class="special">);</span>
+<span class="identifier">test_generator</span><span class="special">(</span><span class="string">"1"</span><span class="special">,</span> <span class="identifier">karma</span><span class="special">::</span><span class="identifier">attr_cast</span><span class="special">(</span><span class="identifier">karma</span><span class="special">::</span><span class="identifier">int_</span><span class="special">),</span> <span class="identifier">d</span><span class="special">);</span>
 </pre>
 <p>
             </p>

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eol.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eol.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eol.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -28,7 +28,7 @@
           (<code class="computeroutput"><span class="identifier">eol</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.auxiliary.eol.description"></a><h6>
-<a name="id796631"></a>
+<a name="id755254"></a>
             <a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.description">Description</a>
           </h6>
 <p>
@@ -38,7 +38,7 @@
             details).
           </p>
 <a name="spirit.karma.reference.auxiliary.eol.header"></a><h6>
-<a name="id796684"></a>
+<a name="id755307"></a>
             <a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/auxiliary/eol.hpp&gt;
@@ -48,7 +48,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.auxiliary.eol.namespace"></a><h6>
-<a name="id796758"></a>
+<a name="id755381"></a>
             <a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -66,7 +66,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.auxiliary.eol.model_of"></a><h6>
-<a name="id796836"></a>
+<a name="id755459"></a>
             <a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -79,7 +79,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.auxiliary.eol.expression_semantics"></a><h6>
-<a name="id796875"></a>
+<a name="id755498"></a>
             <a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -113,14 +113,14 @@
 <td>
                   <p>
                     Create a component generating a single end of line character
- in the output. This generator never fails (except if the underlying
+ in the output. This generator never fails (unless the underlying
                     output stream reports an error).
                   </p>
                   </td>
 </tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.auxiliary.eol.attributes"></a><h6>
-<a name="id796964"></a>
+<a name="id755586"></a>
             <a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -154,7 +154,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.auxiliary.eol.complexity"></a><h6>
-<a name="id797042"></a>
+<a name="id755664"></a>
             <a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -171,7 +171,7 @@
             output.
           </p>
 <a name="spirit.karma.reference.auxiliary.eol.example"></a><h6>
-<a name="id797069"></a>
+<a name="id756785"></a>
             <a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.example">Example</a>
           </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eps.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eps.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eps.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -33,7 +33,7 @@
             or to insert semantic actions into the generation process.
           </p>
 <a name="spirit.karma.reference.auxiliary.eps.description"></a><h6>
-<a name="id798895"></a>
+<a name="id757518"></a>
             <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.description">Description</a>
           </h6>
 <p>
@@ -41,7 +41,7 @@
             a multi-purpose generator that emits a yero length string.
           </p>
 <a name="spirit.karma.reference.auxiliary.eps.simple_form"></a><h6>
-<a name="id798919"></a>
+<a name="id757542"></a>
             <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.simple_form">Simple
             Form</a>
           </h6>
@@ -59,7 +59,7 @@
 <pre class="programlisting"><span class="identifier">r</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> <span class="special">|</span> <span class="identifier">eps</span><span class="special">[</span><span class="identifier">error</span><span class="special">()];</span> <span class="comment">// Call error if a, b, and c fail to generate
 </span></pre>
 <a name="spirit.karma.reference.auxiliary.eps.semantic_predicate"></a><h6>
-<a name="id799020"></a>
+<a name="id757643"></a>
             <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.semantic_predicate">Semantic
             Predicate</a>
           </h6>
@@ -89,7 +89,7 @@
             the production will return early without ever touching rest.
           </p>
 <a name="spirit.karma.reference.auxiliary.eps.header"></a><h6>
-<a name="id799207"></a>
+<a name="id757830"></a>
             <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/auxiliary/eps.hpp&gt;
@@ -99,7 +99,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.auxiliary.eps.namespace"></a><h6>
-<a name="id799282"></a>
+<a name="id757904"></a>
             <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -117,7 +117,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.auxiliary.eps.model_of"></a><h6>
-<a name="id799360"></a>
+<a name="id757982"></a>
             <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.model_of">Model of</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -144,7 +144,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.auxiliary.eps.expression_semantics"></a><h6>
-<a name="id799446"></a>
+<a name="id758069"></a>
             <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -191,8 +191,8 @@
 <td>
                   <p>
                     Creates a component generating an empty string. Succeeds if
- <code class="computeroutput"><span class="identifier">b</span></code> is <code class="computeroutput"><span class="keyword">true</span></code> (except if the underlying
- output stream reports an error).
+ <code class="computeroutput"><span class="identifier">b</span></code> is <code class="computeroutput"><span class="keyword">true</span></code> (unless the underlying output
+ stream reports an error).
                   </p>
                   </td>
 </tr>
@@ -205,15 +205,15 @@
 <td>
                   <p>
                     Creates a component generating an empty string. Succeeds if
- <code class="computeroutput"><span class="identifier">fb</span></code> returns <code class="computeroutput"><span class="keyword">true</span></code> at generate time (except
- if the underlying output stream reports an error).
+ <code class="computeroutput"><span class="identifier">fb</span></code> returns <code class="computeroutput"><span class="keyword">true</span></code> at generate time (unless
+ the underlying output stream reports an error).
                   </p>
                   </td>
 </tr>
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.auxiliary.eps.attributes"></a><h6>
-<a name="id799633"></a>
+<a name="id758256"></a>
             <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -273,7 +273,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.auxiliary.eps.complexity"></a><h6>
-<a name="id799795"></a>
+<a name="id758418"></a>
             <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -289,7 +289,7 @@
             The complexity is constant as no output is generated.
           </p>
 <a name="spirit.karma.reference.auxiliary.eps.example"></a><h6>
-<a name="id799823"></a>
+<a name="id758446"></a>
             <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.example">Example</a>
           </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/lazy.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/lazy.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/auxiliary/lazy.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -27,7 +27,7 @@
 <a name="spirit.karma.reference.auxiliary.lazy"></a><a class="link" href="lazy.html" title="Lazy (lazy)"> Lazy (<code class="computeroutput"><span class="identifier">lazy</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.auxiliary.lazy.description"></a><h6>
-<a name="id801364"></a>
+<a name="id759372"></a>
             <a class="link" href="lazy.html#spirit.karma.reference.auxiliary.lazy.description">Description</a>
           </h6>
 <p>
@@ -37,7 +37,7 @@
             its return value as the actual generator to produce the output.
           </p>
 <a name="spirit.karma.reference.auxiliary.lazy.header"></a><h6>
-<a name="id801388"></a>
+<a name="id759396"></a>
             <a class="link" href="lazy.html#spirit.karma.reference.auxiliary.lazy.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/auxiliary/lazy.hpp&gt;
@@ -47,7 +47,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.auxiliary.lazy.namespace"></a><h6>
-<a name="id801462"></a>
+<a name="id759470"></a>
             <a class="link" href="lazy.html#spirit.karma.reference.auxiliary.lazy.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -65,7 +65,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.auxiliary.lazy.model_of"></a><h6>
-<a name="id801541"></a>
+<a name="id759550"></a>
             <a class="link" href="lazy.html#spirit.karma.reference.auxiliary.lazy.model_of">Model
             of</a>
           </h6>
@@ -104,7 +104,7 @@
             Actions</a>).
           </p>
 <a name="spirit.karma.reference.auxiliary.lazy.expression_semantics"></a><h6>
-<a name="id801693"></a>
+<a name="id759701"></a>
             <a class="link" href="lazy.html#spirit.karma.reference.auxiliary.lazy.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -143,8 +143,8 @@
                     will be invoked at generate time. It is expected to return a
                     generator instance. This generator is then invoked in order to
                     generate the output. This generator will succeed as long as the
- invoked generated succeeds as well (except if the underlying
- output stream reports an error).
+ invoked generated succeeds as well (unless the underlying output
+ stream reports an error).
                   </p>
                   </td>
 </tr>
@@ -171,7 +171,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.auxiliary.lazy.attributes"></a><h6>
-<a name="id801845"></a>
+<a name="id759853"></a>
             <a class="link" href="lazy.html#spirit.karma.reference.auxiliary.lazy.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -223,7 +223,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.auxiliary.lazy.complexity"></a><h6>
-<a name="id801994"></a>
+<a name="id760002"></a>
             <a class="link" href="lazy.html#spirit.karma.reference.auxiliary.lazy.complexity">Complexity</a>
           </h6>
 <p>
@@ -232,7 +232,7 @@
             <code class="computeroutput"><span class="identifier">fg</span></code>.
           </p>
 <a name="spirit.karma.reference.auxiliary.lazy.example"></a><h6>
-<a name="id802025"></a>
+<a name="id760033"></a>
             <a class="link" href="lazy.html#spirit.karma.reference.auxiliary.lazy.example">Example</a>
           </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/binary.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/binary.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/binary.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -41,7 +41,7 @@
           to control padding of the generated output stream.
         </p>
 <a name="spirit.karma.reference.binary.module_header"></a><h6>
-<a name="id784650"></a>
+<a name="id742281"></a>
           <a class="link" href="binary.html#spirit.karma.reference.binary.module_header">Module Header</a>
         </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/binary.hpp&gt;

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/binary/binary_big.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/binary/binary_big.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/binary/binary_big.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -28,7 +28,7 @@
           Big Endianness Generators</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.binary.binary_big.description"></a><h6>
-<a name="id792010"></a>
+<a name="id748813"></a>
             <a class="link" href="binary_big.html#spirit.karma.reference.binary.binary_big.description">Description</a>
           </h6>
 <p>
@@ -37,7 +37,7 @@
             byte order.
           </p>
 <a name="spirit.karma.reference.binary.binary_big.header"></a><h6>
-<a name="id792027"></a>
+<a name="id748830"></a>
             <a class="link" href="binary_big.html#spirit.karma.reference.binary.binary_big.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/binary.hpp&gt;
@@ -47,7 +47,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.binary.binary_big.namespace"></a><h6>
-<a name="id792101"></a>
+<a name="id748904"></a>
             <a class="link" href="binary_big.html#spirit.karma.reference.binary.binary_big.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -93,7 +93,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.binary.binary_big.model_of"></a><h6>
-<a name="id792314"></a>
+<a name="id749117"></a>
             <a class="link" href="binary_big.html#spirit.karma.reference.binary.binary_big.model_of">Model
             of</a>
           </h6>
@@ -130,7 +130,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.binary.binary_big.expression_semantics"></a><h6>
-<a name="id792428"></a>
+<a name="id749231"></a>
             <a class="link" href="binary_big.html#spirit.karma.reference.binary.binary_big.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -166,7 +166,7 @@
                   <p>
                     Output the binary representation of the least significant 16
                     bits of the mandatory attribute in big endian representation.
- This generator never fails (except if the underlying output stream
+ This generator never fails (unless the underlying output stream
                     reports an error).
                   </p>
                   </td>
@@ -181,7 +181,7 @@
                   <p>
                     Output the binary representation of the least significant 32
                     bits of the mandatory attribute in big endian representation.
- This generator never fails (except if the underlying output stream
+ This generator never fails (unless the underlying output stream
                     reports an error).
                   </p>
                   </td>
@@ -196,7 +196,7 @@
                   <p>
                     Output the binary representation of the least significant 64
                     bits of the mandatory attribute in big endian representation.
- This generator never fails (except if the underlying output stream
+ This generator never fails (unless the underlying output stream
                     reports an error).
                   </p>
                   </td>
@@ -211,7 +211,7 @@
                   <p>
                     Output the binary representation of the least significant 16
                     bits of the immediate parameter in big endian representation.
- This generator never fails (except if the underlying output stream
+ This generator never fails (unless the underlying output stream
                     reports an error).
                   </p>
                   </td>
@@ -226,7 +226,7 @@
                   <p>
                     Output the binary representation of the least significant 32
                     bits of the immediate parameter in big endian representation.
- This generator never fails (except if the underlying output stream
+ This generator never fails (unless the underlying output stream
                     reports an error).
                   </p>
                   </td>
@@ -241,7 +241,7 @@
                   <p>
                     Output the binary representation of the least significant 64
                     bits of the immediate parameter in big endian representation.
- This generator never fails (except if the underlying output stream
+ This generator never fails (unless the underlying output stream
                     reports an error).
                   </p>
                   </td>
@@ -249,7 +249,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.binary.binary_big.attributes"></a><h6>
-<a name="id792669"></a>
+<a name="id749472"></a>
             <a class="link" href="binary_big.html#spirit.karma.reference.binary.binary_big.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -348,7 +348,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.binary.binary_big.complexity"></a><h6>
-<a name="id792957"></a>
+<a name="id750853"></a>
             <a class="link" href="binary_big.html#spirit.karma.reference.binary.binary_big.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -361,7 +361,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.binary.binary_big.example"></a><h6>
-<a name="id792981"></a>
+<a name="id750877"></a>
             <a class="link" href="binary_big.html#spirit.karma.reference.binary.binary_big.example">Example</a>
           </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/binary/binary_little.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/binary/binary_little.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/binary/binary_little.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -28,7 +28,7 @@
           Little Endianness Generators</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.binary.binary_little.description"></a><h6>
-<a name="id788511"></a>
+<a name="id745519"></a>
             <a class="link" href="binary_little.html#spirit.karma.reference.binary.binary_little.description">Description</a>
           </h6>
 <p>
@@ -37,7 +37,7 @@
             byte order.
           </p>
 <a name="spirit.karma.reference.binary.binary_little.header"></a><h6>
-<a name="id788528"></a>
+<a name="id745536"></a>
             <a class="link" href="binary_little.html#spirit.karma.reference.binary.binary_little.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/binary.hpp&gt;
@@ -47,7 +47,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.binary.binary_little.namespace"></a><h6>
-<a name="id788602"></a>
+<a name="id745610"></a>
             <a class="link" href="binary_little.html#spirit.karma.reference.binary.binary_little.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -93,7 +93,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.binary.binary_little.model_of"></a><h6>
-<a name="id788812"></a>
+<a name="id745820"></a>
             <a class="link" href="binary_little.html#spirit.karma.reference.binary.binary_little.model_of">Model
             of</a>
           </h6>
@@ -130,7 +130,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.binary.binary_little.expression_semantics"></a><h6>
-<a name="id788924"></a>
+<a name="id745932"></a>
             <a class="link" href="binary_little.html#spirit.karma.reference.binary.binary_little.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -166,7 +166,7 @@
                   <p>
                     Output the binary representation of the least significant 16
                     bits of the mandatory attribute in little endian representation.
- This generator never fails (except if the underlying output stream
+ This generator never fails (unless the underlying output stream
                     reports an error).
                   </p>
                   </td>
@@ -181,7 +181,7 @@
                   <p>
                     Output the binary representation of the least significant 32
                     bits of the mandatory attribute in little endian representation.
- This generator never fails (except if the underlying output stream
+ This generator never fails (unless the underlying output stream
                     reports an error).
                   </p>
                   </td>
@@ -196,7 +196,7 @@
                   <p>
                     Output the binary representation of the least significant 64
                     bits of the mandatory attribute in little endian representation.
- This generator never fails (except if the underlying output stream
+ This generator never fails (unless the underlying output stream
                     reports an error).
                   </p>
                   </td>
@@ -211,7 +211,7 @@
                   <p>
                     Output the binary representation of the least significant 16
                     bits of the immediate parameter in little endian representation.
- This generator never fails (except if the underlying output stream
+ This generator never fails (unless the underlying output stream
                     reports an error).
                   </p>
                   </td>
@@ -226,7 +226,7 @@
                   <p>
                     Output the binary representation of the least significant 32
                     bits of the immediate parameter in little endian representation.
- This generator never fails (except if the underlying output stream
+ This generator never fails (unless the underlying output stream
                     reports an error).
                   </p>
                   </td>
@@ -241,7 +241,7 @@
                   <p>
                     Output the binary representation of the least significant 64
                     bits of the immediate parameter in little endian representation.
- This generator never fails (except if the underlying output stream
+ This generator never fails (unless the underlying output stream
                     reports an error).
                   </p>
                   </td>
@@ -249,7 +249,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.binary.binary_little.attributes"></a><h6>
-<a name="id790256"></a>
+<a name="id746171"></a>
             <a class="link" href="binary_little.html#spirit.karma.reference.binary.binary_little.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -348,7 +348,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.binary.binary_little.complexity"></a><h6>
-<a name="id790544"></a>
+<a name="id746459"></a>
             <a class="link" href="binary_little.html#spirit.karma.reference.binary.binary_little.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -361,7 +361,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.binary.binary_little.example"></a><h6>
-<a name="id790568"></a>
+<a name="id746483"></a>
             <a class="link" href="binary_little.html#spirit.karma.reference.binary.binary_little.example">Example</a>
           </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/binary/binary_native.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/binary/binary_native.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/binary/binary_native.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -28,7 +28,7 @@
           Native Endianness Generators</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.binary.binary_native.description"></a><h6>
-<a name="id784734"></a>
+<a name="id742365"></a>
             <a class="link" href="binary_native.html#spirit.karma.reference.binary.binary_native.description">Description</a>
           </h6>
 <p>
@@ -37,7 +37,7 @@
             (byte order) of the target architecture.
           </p>
 <a name="spirit.karma.reference.binary.binary_native.header"></a><h6>
-<a name="id784750"></a>
+<a name="id742382"></a>
             <a class="link" href="binary_native.html#spirit.karma.reference.binary.binary_native.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/binary.hpp&gt;
@@ -47,7 +47,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.binary.binary_native.namespace"></a><h6>
-<a name="id784825"></a>
+<a name="id742456"></a>
             <a class="link" href="binary_native.html#spirit.karma.reference.binary.binary_native.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -99,7 +99,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.binary.binary_native.model_of"></a><h6>
-<a name="id785076"></a>
+<a name="id742707"></a>
             <a class="link" href="binary_native.html#spirit.karma.reference.binary.binary_native.model_of">Model
             of</a>
           </h6>
@@ -141,7 +141,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.binary.binary_native.expression_semantics"></a><h6>
-<a name="id785211"></a>
+<a name="id742843"></a>
             <a class="link" href="binary_native.html#spirit.karma.reference.binary.binary_native.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -176,8 +176,8 @@
 <td>
                   <p>
                     Output the binary representation of the least significant byte
- of the mandatory attribute. This generator never fails (except
- if the underlying output stream reports an error).
+ of the mandatory attribute. This generator never fails (unless
+ the underlying output stream reports an error).
                   </p>
                   </td>
 </tr>
@@ -191,7 +191,7 @@
                   <p>
                     Output the binary representation of the least significant 16
                     bits of the mandatory attribute in native endian representation.
- This generator never fails (except if the underlying output stream
+ This generator never fails (unless the underlying output stream
                     reports an error).
                   </p>
                   </td>
@@ -206,7 +206,7 @@
                   <p>
                     Output the binary representation of the least significant 32
                     bits of the mandatory attribute in native endian representation.
- This generator never fails (except if the underlying output stream
+ This generator never fails (unless the underlying output stream
                     reports an error).
                   </p>
                   </td>
@@ -221,7 +221,7 @@
                   <p>
                     Output the binary representation of the least significant 64
                     bits of the mandatory attribute in native endian representation.
- This generator never fails (except if the underlying output stream
+ This generator never fails (unless the underlying output stream
                     reports an error).
                   </p>
                   </td>
@@ -235,8 +235,8 @@
 <td>
                   <p>
                     Output the binary representation of the least significant byte
- of the immediate parameter. This generator never fails (except
- if the underlying output stream reports an error).
+ of the immediate parameter. This generator never fails (unless
+ the underlying output stream reports an error).
                   </p>
                   </td>
 </tr>
@@ -250,7 +250,7 @@
                   <p>
                     Output the binary representation of the least significant 16
                     bits of the immediate parameter in native endian representation.
- This generator never fails (except if the underlying output stream
+ This generator never fails (unless the underlying output stream
                     reports an error).
                   </p>
                   </td>
@@ -265,7 +265,7 @@
                   <p>
                     Output the binary representation of the least significant 32
                     bits of the immediate parameter in native endian representation.
- This generator never fails (except if the underlying output stream
+ This generator never fails (unless the underlying output stream
                     reports an error).
                   </p>
                   </td>
@@ -280,7 +280,7 @@
                   <p>
                     Output the binary representation of the least significant 64
                     bits of the immediate parameter in native endian representation.
- This generator never fails (except if the underlying output stream
+ This generator never fails (unless the underlying output stream
                     reports an error).
                   </p>
                   </td>
@@ -288,7 +288,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.binary.binary_native.attributes"></a><h6>
-<a name="id785509"></a>
+<a name="id743140"></a>
             <a class="link" href="binary_native.html#spirit.karma.reference.binary.binary_native.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -425,7 +425,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.binary.binary_native.complexity"></a><h6>
-<a name="id785962"></a>
+<a name="id743594"></a>
             <a class="link" href="binary_native.html#spirit.karma.reference.binary.binary_native.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -438,7 +438,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.binary.binary_native.example"></a><h6>
-<a name="id785986"></a>
+<a name="id743618"></a>
             <a class="link" href="binary_native.html#spirit.karma.reference.binary.binary_native.example">Example</a>
           </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/char.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/char.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/char.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -42,7 +42,7 @@
           <code class="computeroutput"><span class="identifier">xdigit</span></code>, etc.).
         </p>
 <a name="spirit.karma.reference.char.module_header"></a><h6>
-<a name="id739965"></a>
+<a name="id696500"></a>
           <a class="link" href="char.html#spirit.karma.reference.char.module_header">Module Header</a>
         </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/char.hpp&gt;

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/char/char_class.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/char/char_class.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/char/char_class.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -29,7 +29,7 @@
           <code class="computeroutput"><span class="identifier">digit</span></code>, etc.)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.char.char_class.description"></a><h6>
-<a name="id744173"></a>
+<a name="id702631"></a>
             <a class="link" href="char_class.html#spirit.karma.reference.char.char_class.description">Description</a>
           </h6>
 <p>
@@ -41,7 +41,7 @@
             such as forcing lower or upper case.
           </p>
 <a name="spirit.karma.reference.char.char_class.header"></a><h6>
-<a name="id746681"></a>
+<a name="id702681"></a>
             <a class="link" href="char_class.html#spirit.karma.reference.char.char_class.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/char/char_class.hpp&gt;
@@ -51,7 +51,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.char.char_class.namespace"></a><h6>
-<a name="id746756"></a>
+<a name="id702756"></a>
             <a class="link" href="char_class.html#spirit.karma.reference.char.char_class.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -132,7 +132,7 @@
             and will not compile if no attribute is associated.
           </p>
 <a name="spirit.karma.reference.char.char_class.model_of"></a><h6>
-<a name="id747122"></a>
+<a name="id703122"></a>
             <a class="link" href="char_class.html#spirit.karma.reference.char.char_class.model_of">Model
             of</a>
           </h6>
@@ -156,7 +156,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.char.char_class.expression_semantics"></a><h6>
-<a name="id747190"></a>
+<a name="id703190"></a>
             <a class="link" href="char_class.html#spirit.karma.reference.char.char_class.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -192,9 +192,8 @@
                   <p>
                     If the mandatory attribute satisfies the concept of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isalnum</span></code> in the <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
                     Encoding Namespace</a> the generator succeeds after emitting
- its attribute (except if the underlying output stream reports
- an error). This generator fails otherwise while not generating
- anything.
+ its attribute (unless the underlying output stream reports an
+ error). This generator fails otherwise while not generating anything.
                   </p>
                   </td>
 </tr>
@@ -208,9 +207,8 @@
                   <p>
                     If the mandatory attribute satisfies the concept of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isalpha</span></code> in the <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
                     Encoding Namespace</a> the generator succeeds after emitting
- its attribute (except if the underlying output stream reports
- an error). This generator fails otherwise while not generating
- anything.
+ its attribute (unless the underlying output stream reports an
+ error). This generator fails otherwise while not generating anything.
                   </p>
                   </td>
 </tr>
@@ -224,9 +222,8 @@
                   <p>
                     If the mandatory attribute satisfies the concept of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isblank</span></code> in the <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
                     Encoding Namespace</a> the generator succeeds after emitting
- its attribute (except if the underlying output stream reports
- an error). This generator fails otherwise while not generating
- anything.
+ its attribute (unless the underlying output stream reports an
+ error). This generator fails otherwise while not generating anything.
                   </p>
                   </td>
 </tr>
@@ -240,9 +237,8 @@
                   <p>
                     If the mandatory attribute satisfies the concept of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">iscntrl</span></code> in the <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
                     Encoding Namespace</a> the generator succeeds after emitting
- its attribute (except if the underlying output stream reports
- an error). This generator fails otherwise while not generating
- anything.
+ its attribute (unless the underlying output stream reports an
+ error). This generator fails otherwise while not generating anything.
                   </p>
                   </td>
 </tr>
@@ -256,9 +252,8 @@
                   <p>
                     If the mandatory attribute satisfies the concept of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isdigit</span></code> in the <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
                     Encoding Namespace</a> the generator succeeds after emitting
- its attribute (except if the underlying output stream reports
- an error). This generator fails otherwise while not generating
- anything.
+ its attribute (unless the underlying output stream reports an
+ error). This generator fails otherwise while not generating anything.
                   </p>
                   </td>
 </tr>
@@ -272,9 +267,8 @@
                   <p>
                     If the mandatory attribute satisfies the concept of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isgraph</span></code> in the <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
                     Encoding Namespace</a> the generator succeeds after emitting
- its attribute (except if the underlying output stream reports
- an error). This generator fails otherwise while not generating
- anything.
+ its attribute (unless the underlying output stream reports an
+ error). This generator fails otherwise while not generating anything.
                   </p>
                   </td>
 </tr>
@@ -288,9 +282,8 @@
                   <p>
                     If the mandatory attribute satisfies the concept of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isprint</span></code> in the <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
                     Encoding Namespace</a> the generator succeeds after emitting
- its attribute (except if the underlying output stream reports
- an error). This generator fails otherwise while not generating
- anything.
+ its attribute (unless the underlying output stream reports an
+ error). This generator fails otherwise while not generating anything.
                   </p>
                   </td>
 </tr>
@@ -304,9 +297,8 @@
                   <p>
                     If the mandatory attribute satisfies the concept of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ispunct</span></code> in the <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
                     Encoding Namespace</a> the generator succeeds after emitting
- its attribute (except if the underlying output stream reports
- an error). This generator fails otherwise while not generating
- anything.
+ its attribute (unless the underlying output stream reports an
+ error). This generator fails otherwise while not generating anything.
                   </p>
                   </td>
 </tr>
@@ -320,9 +312,8 @@
                   <p>
                     If the mandatory attribute satisfies the concept of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isxdigit</span></code> in the <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
                     Encoding Namespace</a> the generator succeeds after emitting
- its attribute (except if the underlying output stream reports
- an error). This generator fails otherwise while not generating
- anything.
+ its attribute (unless the underlying output stream reports an
+ error). This generator fails otherwise while not generating anything.
                   </p>
                   </td>
 </tr>
@@ -336,9 +327,8 @@
                   <p>
                     If the mandatory attribute satisfies the concept of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">islower</span></code> in the <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
                     Encoding Namespace</a> the generator succeeds after emitting
- its attribute (except if the underlying output stream reports
- an error). This generator fails otherwise while not generating
- anything.
+ its attribute (unless the underlying output stream reports an
+ error). This generator fails otherwise while not generating anything.
                   </p>
                   </td>
 </tr>
@@ -352,9 +342,8 @@
                   <p>
                     If the mandatory attribute satisfies the concept of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isupper</span></code> in the <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
                     Encoding Namespace</a> the generator succeeds after emitting
- its attribute (except if the underlying output stream reports
- an error). This generator fails otherwise while not generating
- anything.
+ its attribute (unless the underlying output stream reports an
+ error). This generator fails otherwise while not generating anything.
                   </p>
                   </td>
 </tr>
@@ -368,10 +357,10 @@
                   <p>
                     If the optional attribute satisfies the concept of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isspace</span></code> in the <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
                     Encoding Namespace</a> the generator succeeds after emitting
- its attribute (except if the underlying output stream reports
- an error). This generator fails otherwise while not generating
- anything.If no attribute is supplied this generator emits a single
- space character in the character set defined by <code class="computeroutput"><span class="identifier">ns</span></code>.
+ its attribute (unless the underlying output stream reports an
+ error). This generator fails otherwise while not generating anything.If
+ no attribute is supplied this generator emits a single space
+ character in the character set defined by <code class="computeroutput"><span class="identifier">ns</span></code>.
                   </p>
                   </td>
 </tr>
@@ -407,7 +396,7 @@
 </td></tr>
 </table></div>
 <a name="spirit.karma.reference.char.char_class.attributes"></a><h6>
-<a name="id748121"></a>
+<a name="id705299"></a>
             <a class="link" href="char_class.html#spirit.karma.reference.char.char_class.attributes">Attributes</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -435,7 +424,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.char.char_class.complexity"></a><h6>
-<a name="id748246"></a>
+<a name="id705424"></a>
             <a class="link" href="char_class.html#spirit.karma.reference.char.char_class.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -452,7 +441,7 @@
             per invocation.
           </p>
 <a name="spirit.karma.reference.char.char_class.example"></a><h6>
-<a name="id748274"></a>
+<a name="id705452"></a>
             <a class="link" href="char_class.html#spirit.karma.reference.char.char_class.example">Example</a>
           </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/char/char_generator.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/char/char_generator.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/char/char_generator.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -28,7 +28,7 @@
           Generators (<code class="computeroutput"><span class="identifier">char_</span></code>, <code class="computeroutput"><span class="identifier">lit</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.char.char_generator.description"></a><h6>
-<a name="id740063"></a>
+<a name="id696599"></a>
             <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.description">Description</a>
           </h6>
 <p>
@@ -45,7 +45,7 @@
             There are various forms of <code class="computeroutput"><span class="identifier">char_</span></code>.
           </p>
 <a name="spirit.karma.reference.char.char_generator.char_"></a><h6>
-<a name="id740113"></a>
+<a name="id696649"></a>
             <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.char_">char_</a>
           </h6>
 <p>
@@ -56,7 +56,7 @@
 <pre class="programlisting"><span class="identifier">char_</span> <span class="comment">// emits any character as supplied by the attribute
 </span></pre>
 <a name="spirit.karma.reference.char.char_generator.char__ch_"></a><h6>
-<a name="id740154"></a>
+<a name="id696690"></a>
             <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.char__ch_">char_(ch)</a>
           </h6>
 <p>
@@ -68,7 +68,7 @@
 </span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="comment">// emits x (a char)
 </span></pre>
 <a name="spirit.karma.reference.char.char_generator.char__first__last_"></a><h6>
-<a name="id740245"></a>
+<a name="id696781"></a>
             <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.char__first__last_">char_(first,
             last)</a>
           </h6>
@@ -120,7 +120,7 @@
 </td></tr>
 </table></div>
 <a name="spirit.karma.reference.char.char_generator.char__def_"></a><h6>
-<a name="id740428"></a>
+<a name="id696963"></a>
             <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.char__def_">char_(def)</a>
           </h6>
 <p>
@@ -140,7 +140,7 @@
             by the attribute.
           </p>
 <a name="spirit.karma.reference.char.char_generator.lit_ch_"></a><h6>
-<a name="id740544"></a>
+<a name="id698866"></a>
             <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.lit_ch_">lit(ch)</a>
           </h6>
 <p>
@@ -180,7 +180,7 @@
 <span class="identifier">lit</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span> <span class="comment">// c is a char
 </span></pre>
 <a name="spirit.karma.reference.char.char_generator.header"></a><h6>
-<a name="id740722"></a>
+<a name="id699043"></a>
             <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/char/char.hpp&gt;
@@ -190,7 +190,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.char.char_generator.namespace"></a><h6>
-<a name="id740796"></a>
+<a name="id699118"></a>
             <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -220,7 +220,7 @@
             Encoding Namespace</a>.
           </p>
 <a name="spirit.karma.reference.char.char_generator.model_of"></a><h6>
-<a name="id740915"></a>
+<a name="id699236"></a>
             <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.model_of">Model
             of</a>
           </h6>
@@ -267,7 +267,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.char.char_generator.expression_semantics"></a><h6>
-<a name="id741069"></a>
+<a name="id699390"></a>
             <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -302,7 +302,7 @@
 <td>
                   <p>
                     Generate the character literal <code class="computeroutput"><span class="identifier">ch</span></code>.
- This generator never fails (except if the underlying output stream
+ This generator never fails (unless the underlying output stream
                     reports an error).
                   </p>
                   </td>
@@ -316,7 +316,7 @@
 <td>
                   <p>
                     Generate the character literal <code class="computeroutput"><span class="identifier">ch</span></code>.
- This generator never fails (except if the underlying output stream
+ This generator never fails (unless the underlying output stream
                     reports an error).
                   </p>
                   </td>
@@ -331,7 +331,7 @@
                   <p>
                     Generate the character provided by a mandatory attribute interpreted
                     in the character set defined by <code class="computeroutput"><span class="identifier">ns</span></code>.
- This generator never fails (except if the underlying output stream
+ This generator never fails (unless the underlying output stream
                     reports an error).
                   </p>
                   </td>
@@ -348,7 +348,7 @@
                     as provided by the immediate literal value the generator is initialized
                     from. If this generator has an associated attribute it succeeds
                     only as long as the attribute is equal to the immediate literal
- (except if the underlying output stream reports an error). Otherwise
+ (unless the underlying output stream reports an error). Otherwise
                     this generator fails and does not generate any output.
                   </p>
                   </td>
@@ -365,7 +365,7 @@
                     as provided by the immediate literal value the generator is initialized
                     from. If this generator has an associated attribute it succeeds
                     only as long as the attribute is equal to the immediate literal
- (except if the underlying output stream reports an error). Otherwise
+ (unless the underlying output stream reports an error). Otherwise
                     this generator fails and does not generate any output.
                   </p>
                   </td>
@@ -384,7 +384,7 @@
                     The generator succeeds as long as the attribute belongs to the
                     character range <code class="computeroutput"><span class="special">[</span><span class="identifier">ch1</span><span class="special">,</span>
                     <span class="identifier">ch2</span><span class="special">]</span></code>
- (except if the underlying output stream reports an error). Otherwise
+ (unless the underlying output stream reports an error). Otherwise
                     this generator fails and does not generate any output.
                   </p>
                   </td>
@@ -401,7 +401,7 @@
                     in the character set defined by <code class="computeroutput"><span class="identifier">ns</span></code>.
                     The generator succeeds as long as the attribute belongs to the
                     character set <code class="computeroutput"><span class="identifier">cs</span></code>
- (except if the underlying output stream reports an error). Otherwise
+ (unless the underlying output stream reports an error). Otherwise
                     this generator fails and does not generate any output.
                   </p>
                   </td>
@@ -516,7 +516,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.char.char_generator.attributes"></a><h6>
-<a name="id741856"></a>
+<a name="id700177"></a>
             <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.attributes">Attributes</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -675,7 +675,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.char.char_generator.complexity"></a><h6>
-<a name="id742528"></a>
+<a name="id700816"></a>
             <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -704,7 +704,7 @@
             set, where N is the number of characters in the character set.
           </p>
 <a name="spirit.karma.reference.char.char_generator.example"></a><h6>
-<a name="id742711"></a>
+<a name="id700999"></a>
             <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.example">Example</a>
           </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/directive.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/directive.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/directive.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -50,7 +50,7 @@
           controlling case sensitivity (<code class="computeroutput"><span class="identifier">upper</span><span class="special">[]</span></code> and <code class="computeroutput"><span class="identifier">lower</span><span class="special">[]</span></code>), field width (<code class="computeroutput"><span class="identifier">maxwidth</span><span class="special">[]</span></code>), buffering (<code class="computeroutput"><span class="identifier">buffer</span><span class="special">[]</span></code>), and attribute handling (<code class="computeroutput"><span class="identifier">omit</span><span class="special">[]</span></code>).
         </p>
 <a name="spirit.karma.reference.directive.module_header"></a><h6>
-<a name="id803392"></a>
+<a name="id762225"></a>
           <a class="link" href="directive.html#spirit.karma.reference.directive.module_header">Module Header</a>
         </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/directive.hpp&gt;

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/alignment.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/alignment.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/alignment.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -28,7 +28,7 @@
           Directives (<code class="computeroutput"><span class="identifier">left_align</span><span class="special">[]</span></code>, <code class="computeroutput"><span class="identifier">center</span><span class="special">[]</span></code>, <code class="computeroutput"><span class="identifier">right_align</span><span class="special">[]</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.directive.alignment.description"></a><h6>
-<a name="id804613"></a>
+<a name="id762341"></a>
             <a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.description">Description</a>
           </h6>
 <p>
@@ -37,7 +37,7 @@
             an arbitrary generator to create the padding.
           </p>
 <a name="spirit.karma.reference.directive.alignment.header"></a><h6>
-<a name="id804630"></a>
+<a name="id762358"></a>
             <a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.header">Header</a>
           </h6>
 <p>
@@ -65,7 +65,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.directive.alignment.namespace"></a><h6>
-<a name="id804853"></a>
+<a name="id762581"></a>
             <a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -97,7 +97,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.alignment.model_of"></a><h6>
-<a name="id805009"></a>
+<a name="id762737"></a>
             <a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.model_of">Model
             of</a>
           </h6>
@@ -136,7 +136,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.directive.alignment.expression_semantics"></a><h6>
-<a name="id805159"></a>
+<a name="id762887"></a>
             <a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -176,8 +176,8 @@
                     (default: 10), while using <code class="computeroutput"><span class="identifier">space</span></code>
                     to emit the necessary padding. This generator succeeds as long
                     as its embedded generator <code class="computeroutput"><span class="identifier">a</span></code>
- does not fail (except if the underlying output stream reports
- an error).
+ does not fail (unless the underlying output stream reports an
+ error).
                   </p>
                   </td>
 </tr>
@@ -194,8 +194,8 @@
                     while using <code class="computeroutput"><span class="identifier">space</span></code>
                     to emit the necessary padding. This generator succeeds as long
                     as its embedded generator <code class="computeroutput"><span class="identifier">a</span></code>
- does not fail (except if the underlying output stream reports
- an error).
+ does not fail (unless the underlying output stream reports an
+ error).
                   </p>
                   </td>
 </tr>
@@ -233,7 +233,7 @@
                     to emit the necessary padding. This generator succeeds as long
                     as its embedded and padding generators <code class="computeroutput"><span class="identifier">a</span></code>
                     and <code class="computeroutput"><span class="identifier">pad</span></code> do not
- fail (except if the underlying output stream reports an error).
+ fail (unless the underlying output stream reports an error).
                   </p>
                   </td>
 </tr>
@@ -251,8 +251,8 @@
                     (default: 10), while using <code class="computeroutput"><span class="identifier">space</span></code>
                     to emit the necessary padding. This generator succeeds as long
                     as its embedded generator <code class="computeroutput"><span class="identifier">a</span></code>
- does not fail (except if the underlying output stream reports
- an error).
+ does not fail (unless the underlying output stream reports an
+ error).
                   </p>
                   </td>
 </tr>
@@ -269,8 +269,8 @@
                     while using <code class="computeroutput"><span class="identifier">space</span></code>
                     to emit the necessary padding. This generator succeeds as long
                     as its embedded generator <code class="computeroutput"><span class="identifier">a</span></code>
- does not fail (except if the underlying output stream reports
- an error).
+ does not fail (unless the underlying output stream reports an
+ error).
                   </p>
                   </td>
 </tr>
@@ -308,7 +308,7 @@
                     to emit the necessary padding. This generator succeeds as long
                     as its embedded and padding generators <code class="computeroutput"><span class="identifier">a</span></code>
                     and <code class="computeroutput"><span class="identifier">pad</span></code> do not
- fail (except if the underlying output stream reports an error).
+ fail (unless the underlying output stream reports an error).
                   </p>
                   </td>
 </tr>
@@ -326,8 +326,8 @@
                     (default: 10), while using <code class="computeroutput"><span class="identifier">space</span></code>
                     to emit the necessary padding. This generator succeeds as long
                     as its embedded generator <code class="computeroutput"><span class="identifier">a</span></code>
- does not fail (except if the underlying output stream reports
- an error).
+ does not fail (unless the underlying output stream reports an
+ error).
                   </p>
                   </td>
 </tr>
@@ -344,8 +344,8 @@
                     while using <code class="computeroutput"><span class="identifier">space</span></code>
                     to emit the necessary padding. This generator succeeds as long
                     as its embedded generator <code class="computeroutput"><span class="identifier">a</span></code>
- does not fail (except if the underlying output stream reports
- an error).
+ does not fail (unless the underlying output stream reports an
+ error).
                   </p>
                   </td>
 </tr>
@@ -383,7 +383,7 @@
                     to emit the necessary padding. This generator succeeds as long
                     as its embedded and padding generators <code class="computeroutput"><span class="identifier">a</span></code>
                     and <code class="computeroutput"><span class="identifier">pad</span></code> do not
- fail (except if the underlying output stream reports an error).
+ fail (unless the underlying output stream reports an error).
                   </p>
                   </td>
 </tr>
@@ -417,7 +417,7 @@
 </td></tr>
 </table></div>
 <a name="spirit.karma.reference.directive.alignment.attributes"></a><h6>
-<a name="id806199"></a>
+<a name="id763927"></a>
             <a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.attributes">Attributes</a>
           </h6>
 <p>
@@ -640,7 +640,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.alignment.complexity"></a><h6>
-<a name="id808284"></a>
+<a name="id767241"></a>
             <a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -658,7 +658,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.directive.alignment.example"></a><h6>
-<a name="id808315"></a>
+<a name="id767272"></a>
             <a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.example">Example</a>
           </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/buffer.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/buffer.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/buffer.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -28,7 +28,7 @@
           Output Buffering (<code class="computeroutput"><span class="identifier">buffer</span><span class="special">[]</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.directive.buffer.description"></a><h6>
-<a name="id821586"></a>
+<a name="id780748"></a>
             <a class="link" href="buffer.html#spirit.karma.reference.directive.buffer.description">Description</a>
           </h6>
 <p>
@@ -43,7 +43,7 @@
             discarded otherwise.
           </p>
 <a name="spirit.karma.reference.directive.buffer.header"></a><h6>
-<a name="id821615"></a>
+<a name="id780776"></a>
             <a class="link" href="buffer.html#spirit.karma.reference.directive.buffer.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/directive/buffer.hpp&gt;
@@ -67,7 +67,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.buffer.model_of"></a><h6>
-<a name="id821755"></a>
+<a name="id780917"></a>
             <a class="link" href="buffer.html#spirit.karma.reference.directive.buffer.model_of">Model
             of</a>
           </h6>
@@ -94,7 +94,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.directive.buffer.expression_semantics"></a><h6>
-<a name="id821844"></a>
+<a name="id781006"></a>
             <a class="link" href="buffer.html#spirit.karma.reference.directive.buffer.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -133,7 +133,7 @@
                     succeeds the buffer content is flushed to the underlying output
                     stream, otherwise the buffer content is discarded. The buffer
                     directive succeeds as long as the embedded generator succeeded
- (except if the underlying output stream reports an error).
+ (unless the underlying output stream reports an error).
                   </p>
                   </td>
 </tr></tbody>
@@ -150,7 +150,7 @@
             </p></td></tr>
 </table></div>
 <a name="spirit.karma.reference.directive.buffer.attributes"></a><h6>
-<a name="id822017"></a>
+<a name="id781178"></a>
             <a class="link" href="buffer.html#spirit.karma.reference.directive.buffer.attributes">Attributes</a>
           </h6>
 <p>
@@ -192,7 +192,7 @@
 </tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.buffer.complexity"></a><h6>
-<a name="id822188"></a>
+<a name="id781350"></a>
             <a class="link" href="buffer.html#spirit.karma.reference.directive.buffer.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -207,7 +207,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.directive.buffer.example"></a><h6>
-<a name="id822212"></a>
+<a name="id781374"></a>
             <a class="link" href="buffer.html#spirit.karma.reference.directive.buffer.example">Example</a>
           </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/delimit.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/delimit.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/delimit.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -28,7 +28,7 @@
           Controlling Automatic Delimiting (<code class="computeroutput"><span class="identifier">verbatim</span><span class="special">[]</span></code>, <code class="computeroutput"><span class="identifier">delimit</span><span class="special">[]</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.directive.delimit.description"></a><h6>
-<a name="id813986"></a>
+<a name="id773131"></a>
             <a class="link" href="delimit.html#spirit.karma.reference.directive.delimit.description">Description</a>
           </h6>
 <p>
@@ -37,7 +37,7 @@
             while the directive <code class="computeroutput"><span class="identifier">delimit</span><span class="special">[]</span></code> (re-)enables automatic delimiting.
           </p>
 <a name="spirit.karma.reference.directive.delimit.header"></a><h6>
-<a name="id814046"></a>
+<a name="id773191"></a>
             <a class="link" href="delimit.html#spirit.karma.reference.directive.delimit.header">Header</a>
           </h6>
 <p>
@@ -58,7 +58,7 @@
             Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
           </p>
 <a name="spirit.karma.reference.directive.delimit.namespace"></a><h6>
-<a name="id814202"></a>
+<a name="id773347"></a>
             <a class="link" href="delimit.html#spirit.karma.reference.directive.delimit.namespace">Namespace</a>
           </h6>
 <div class="informaltable"><table class="table">
@@ -84,7 +84,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.delimit.model_of"></a><h6>
-<a name="id814320"></a>
+<a name="id773465"></a>
             <a class="link" href="delimit.html#spirit.karma.reference.directive.delimit.model_of">Model
             of</a>
           </h6>
@@ -118,7 +118,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.directive.delimit.expression_semantics"></a><h6>
-<a name="id814446"></a>
+<a name="id773591"></a>
             <a class="link" href="delimit.html#spirit.karma.reference.directive.delimit.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -155,7 +155,7 @@
                     Enable automatic delimiting for the embedded generator <code class="computeroutput"><span class="identifier">a</span></code> while using the <code class="computeroutput"><span class="identifier">space</span></code> generator as the delimiting
                     generator. If used inside a <code class="computeroutput"><span class="identifier">verbatim</span><span class="special">[]</span></code> directive it re-enables the
                     delimiter generator as used outside of this <code class="computeroutput"><span class="identifier">verbatim</span><span class="special">[]</span></code> instead. The directive succeeds
- as long as the embedded generator succeeded (except if the underlying
+ as long as the embedded generator succeeded (unless the underlying
                     output stream reports an error).
                   </p>
                   </td>
@@ -171,8 +171,7 @@
                     Enable automatic delimiting for the embedded generator <code class="computeroutput"><span class="identifier">a</span></code> while using the generator
                     <code class="computeroutput"><span class="identifier">d</span></code> as the delimiting
                     generator. The directive succeeds as long as the embedded generator
- succeeded (except if the underlying output stream reports an
- error).
+ succeeded (unless the underlying output stream reports an error).
                   </p>
                   </td>
 </tr>
@@ -185,7 +184,7 @@
 <td>
                   <p>
                     Disable automatic delimiting for the embedded generator <code class="computeroutput"><span class="identifier">a</span></code>. The directive succeeds as
- long as the embedded generator succeeded (except if the underlying
+ long as the embedded generator succeeded (unless the underlying
                     output stream reports an error). This directive it has no effect
                     if it is used when no delimiting is active.
                   </p>
@@ -194,7 +193,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.delimit.attributes"></a><h6>
-<a name="id814680"></a>
+<a name="id773825"></a>
             <a class="link" href="delimit.html#spirit.karma.reference.directive.delimit.attributes">Attributes</a>
           </h6>
 <p>
@@ -270,7 +269,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.delimit.complexity"></a><h6>
-<a name="id815135"></a>
+<a name="id774280"></a>
             <a class="link" href="delimit.html#spirit.karma.reference.directive.delimit.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -286,7 +285,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.directive.delimit.example"></a><h6>
-<a name="id815180"></a>
+<a name="id774325"></a>
             <a class="link" href="delimit.html#spirit.karma.reference.directive.delimit.example">Example</a>
           </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/maxwidth.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/maxwidth.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/maxwidth.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -28,7 +28,7 @@
           the Maximum Field Wield (<code class="computeroutput"><span class="identifier">maxwidth</span><span class="special">[]</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.directive.maxwidth.description"></a><h6>
-<a name="id819905"></a>
+<a name="id778521"></a>
             <a class="link" href="maxwidth.html#spirit.karma.reference.directive.maxwidth.description">Description</a>
           </h6>
 <p>
@@ -37,7 +37,7 @@
             generated by the embedded generator.
           </p>
 <a name="spirit.karma.reference.directive.maxwidth.header"></a><h6>
-<a name="id819933"></a>
+<a name="id778548"></a>
             <a class="link" href="maxwidth.html#spirit.karma.reference.directive.maxwidth.header">Header</a>
           </h6>
 <pre class="programlisting"><span class="comment">// forwards to &lt;boost/spirit/home/karma/directive/maxwidth.hpp&gt;
@@ -61,7 +61,7 @@
                   </td></tr></tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.maxwidth.model_of"></a><h6>
-<a name="id820073"></a>
+<a name="id778689"></a>
             <a class="link" href="maxwidth.html#spirit.karma.reference.directive.maxwidth.model_of">Model
             of</a>
           </h6>
@@ -93,7 +93,7 @@
 </dl>
 </div>
 <a name="spirit.karma.reference.directive.maxwidth.expression_semantics"></a><h6>
-<a name="id820186"></a>
+<a name="id778802"></a>
             <a class="link" href="maxwidth.html#spirit.karma.reference.directive.maxwidth.expression_semantics">Expression
             Semantics</a>
           </h6>
@@ -132,7 +132,7 @@
                     to the number of characters as defined by the preprocessor constant
                     <code class="computeroutput"><span class="identifier">BOOST_KARMA_DEFAULT_FIELD_MAXWIDTH</span></code>.
                     Any additional output is truncated. The directive succeeds as
- long as the embedded generator succeeded (except if the underlying
+ long as the embedded generator succeeded (unless the underlying
                     output stream reports an error).
                   </p>
                   </td>
@@ -149,7 +149,7 @@
                     generator (including characters generated by automatic delimiting)
                     to the number of characters as defined by <code class="computeroutput"><span class="identifier">num</span></code>.
                     Any additional output is truncated. The directive succeeds as
- long as the embedded generator succeeded (except if the underlying
+ long as the embedded generator succeeded (unless the underlying
                     output stream reports an error).
                   </p>
                   </td>
@@ -182,7 +182,7 @@
 </td></tr>
 </table></div>
 <a name="spirit.karma.reference.directive.maxwidth.attributes"></a><h6>
-<a name="id820451"></a>
+<a name="id779067"></a>
             <a class="link" href="maxwidth.html#spirit.karma.reference.directive.maxwidth.attributes">Attributes</a>
           </h6>
 <p>
@@ -242,7 +242,7 @@
 </tbody>
 </table></div>
 <a name="spirit.karma.reference.directive.maxwidth.complexity"></a><h6>
-<a name="id820758"></a>
+<a name="id779374"></a>
             <a class="link" href="maxwidth.html#spirit.karma.reference.directive.maxwidth.complexity">Complexity</a>
           </h6>
 <div class="blockquote"><blockquote class="blockquote">
@@ -258,7 +258,7 @@
             </p>
 </blockquote></div>
 <a name="spirit.karma.reference.directive.maxwidth.example"></a><h6>
-<a name="id820800"></a>
+<a name="id779416"></a>
             <a class="link" href="maxwidth.html#spirit.karma.reference.directive.maxwidth.example">Example</a>
           </h6>
 <p>

Modified: branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/omit.html
==============================================================================
--- branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/omit.html (original)
+++ branches/release/libs/spirit/doc/html/spirit/karma/reference/directive/omit.html 2009-10-17 15:31:57 EDT (Sat, 17 Oct 2009)
@@ -28,7 +28,7 @@
           (<code class="computeroutput"><span class="identifier">omit</span><span class="special">[]</span></code>)</a>
 </h5></div></div></div>
 <a name="spirit.karma.reference.directive.omit.description"></a><h6>
-<a name=&qu