|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r55352 - in trunk/libs/spirit: doc doc/abstracts doc/html doc/html/spirit doc/html/spirit/abstracts doc/html/spirit/karma doc/html/spirit/karma/performance_measurements/numeric_performance doc/html/spirit/karma/quick_reference doc/html/spirit/karma/reference doc/html/spirit/karma/reference/auxiliary doc/html/spirit/karma/reference/generator_concepts doc/html/spirit/karma/reference/operator doc/html/spirit/karma/tutorials doc/html/spirit/lex doc/html/spirit/lex/abstracts doc/html/spirit/lex/abstracts/lexer_primitives doc/html/spirit/lex/reference doc/html/spirit/lex/reference/concepts doc/html/spirit/lex/tutorials doc/html/spirit/qi/quick_reference doc/html/spirit/qi/reference doc/html/spirit/qi/reference/auxiliary doc/html/spirit/qi/reference/directive doc/html/spirit/qi/reference/parser_concepts doc/html/spirit/qi/reference/string doc/html/spirit/qi/tutorials doc/html/spirit/support doc/karma doc/qi example/karma repository/doc repository/doc/html repository/doc/html/spirit_repository repository/doc/html/spirit_repository/karma_components/karma_generator_directives repository/doc/html/spirit_repository/qi_components/directives repository/doc/html/spirit_repository/qi_components/primitive repository/doc/qi
From: hartmut.kaiser_at_[hidden]
Date: 2009-08-01 22:02:46
Author: hkaiser
Date: 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
New Revision: 55352
URL: http://svn.boost.org/trac/boost/changeset/55352
Log:
Spirit: doc update
Added:
trunk/libs/spirit/doc/html/spirit/karma/reference/operator/
trunk/libs/spirit/doc/html/spirit/karma/reference/operator.html (contents, props changed)
trunk/libs/spirit/doc/html/spirit/karma/reference/operator/alternative.html (contents, props changed)
trunk/libs/spirit/doc/html/spirit/karma/reference/operator/sequence.html (contents, props changed)
trunk/libs/spirit/doc/html/spirit/karma/tutorials/karma_attributes.html (contents, props changed)
trunk/libs/spirit/example/karma/reference.cpp (contents, props changed)
Text files modified:
trunk/libs/spirit/doc/abstracts/peg.qbk | 4
trunk/libs/spirit/doc/abstracts/syntax_diagram.qbk | 4
trunk/libs/spirit/doc/html/index.html | 7
trunk/libs/spirit/doc/html/spirit/abstracts/parsing_expression_grammar.html | 20 +-
trunk/libs/spirit/doc/html/spirit/abstracts/syntax_diagram.html | 22 +-
trunk/libs/spirit/doc/html/spirit/acknowledgments.html | 2
trunk/libs/spirit/doc/html/spirit/faq.html | 8
trunk/libs/spirit/doc/html/spirit/introduction.html | 24 ++-
trunk/libs/spirit/doc/html/spirit/karma.html | 3
trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/double_performance.html | 2
trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/format_performance.html | 2
trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/int_performance.html | 2
trunk/libs/spirit/doc/html/spirit/karma/quick_reference/compound_attribute_rules.html | 12 +
trunk/libs/spirit/doc/html/spirit/karma/quick_reference/predefined_primitive_generators.html | 2
trunk/libs/spirit/doc/html/spirit/karma/reference.html | 1
trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary.html | 10
trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eol.html | 14 +-
trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eps.html | 14 +-
trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/lazy.html | 14 +-
trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/binarygenerator.html | 12 +-
trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/generator.html | 10
trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/narygenerator.html | 12 +-
trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/primitivegenerator.html | 10
trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/unarygenerator.html | 12 +-
trunk/libs/spirit/doc/html/spirit/karma/reference/karma_basics.html | 8
trunk/libs/spirit/doc/html/spirit/karma/tutorials.html | 2
trunk/libs/spirit/doc/html/spirit/karma/tutorials/karma_complex.html | 10
trunk/libs/spirit/doc/html/spirit/karma/tutorials/karma_easier_complex.html | 12 +-
trunk/libs/spirit/doc/html/spirit/karma/tutorials/quick_start.html | 2
trunk/libs/spirit/doc/html/spirit/karma/tutorials/semantic_actions.html | 2
trunk/libs/spirit/doc/html/spirit/karma/tutorials/warming_up.html | 10
trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives/lexer_token_values.html | 6
trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_semantic_actions.html | 10
trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_states.html | 6
trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_static_model.html | 4
trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_tokenizing.html | 4
trunk/libs/spirit/doc/html/spirit/lex/lexer_introduction.html | 6
trunk/libs/spirit/doc/html/spirit/lex/reference/concepts/lexer.html | 6
trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_class.html | 8
trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart1.html | 10
trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart2.html | 8
trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart3.html | 8
trunk/libs/spirit/doc/html/spirit/preface.html | 18 +-
trunk/libs/spirit/doc/html/spirit/qi/quick_reference/compound_attribute_rules.html | 12 +
trunk/libs/spirit/doc/html/spirit/qi/quick_reference/predefined_primitive_parsers.html | 10
trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary.html | 2
trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/attr.html | 14 +-
trunk/libs/spirit/doc/html/spirit/qi/reference/basics.html | 4
trunk/libs/spirit/doc/html/spirit/qi/reference/directive.html | 2
trunk/libs/spirit/doc/html/spirit/qi/reference/directive/no_case.html | 14 +-
trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/binaryparser.html | 12 +-
trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/naryparser.html | 12 +-
trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/parser.html | 10
trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/primitiveparser.html | 10
trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/unaryparser.html | 12 +-
trunk/libs/spirit/doc/html/spirit/qi/reference/string.html | 2
trunk/libs/spirit/doc/html/spirit/qi/reference/string/lit_string.html | 14 +-
trunk/libs/spirit/doc/html/spirit/qi/reference/string/symbols.html | 16 +-
trunk/libs/spirit/doc/html/spirit/qi/tutorials/employee___parsing_into_structs.html | 14 +-
trunk/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___asts_.html | 22 +-
trunk/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___error_handling.html | 6
trunk/libs/spirit/doc/html/spirit/qi/tutorials/quick_start.html | 2
trunk/libs/spirit/doc/html/spirit/qi/tutorials/roman_numerals.html | 8
trunk/libs/spirit/doc/html/spirit/qi/tutorials/semantic_actions.html | 2
trunk/libs/spirit/doc/html/spirit/qi/tutorials/warming_up.html | 10
trunk/libs/spirit/doc/html/spirit/support/multi_pass.html | 28 ++--
trunk/libs/spirit/doc/html/spirit/what_s_new.html | 8
trunk/libs/spirit/doc/introduction.qbk | 11 +
trunk/libs/spirit/doc/karma.qbk | 3
trunk/libs/spirit/doc/karma/auxiliary.qbk | 2
trunk/libs/spirit/doc/karma/complex.qbk | 150 ++++++++++++++++++++++++-
trunk/libs/spirit/doc/karma/operator.qbk | 236 ++++++++++++++++++++++++++++++++++++++++
trunk/libs/spirit/doc/karma/quick_reference.qbk | 13 +-
trunk/libs/spirit/doc/qi/quick_reference.qbk | 28 ++--
trunk/libs/spirit/doc/spirit2.qbk | 14 ++
trunk/libs/spirit/repository/doc/html/index.html | 4
trunk/libs/spirit/repository/doc/html/spirit_repository/karma_components/karma_generator_directives/karma_confix_generator.html | 18 +-
trunk/libs/spirit/repository/doc/html/spirit_repository/preface.html | 47 +++++++
trunk/libs/spirit/repository/doc/html/spirit_repository/qi_components/directives/confix.html | 18 +-
trunk/libs/spirit/repository/doc/html/spirit_repository/qi_components/directives/distinct.html | 19 ++-
trunk/libs/spirit/repository/doc/html/spirit_repository/qi_components/primitive/flush_multi_pass.html | 18 +-
trunk/libs/spirit/repository/doc/preface.qbk | 33 +++++
trunk/libs/spirit/repository/doc/qi/distinct.qbk | 2
trunk/libs/spirit/repository/doc/qi/flush_multi_pass.qbk | 2
84 files changed, 857 insertions(+), 370 deletions(-)
Modified: trunk/libs/spirit/doc/abstracts/peg.qbk
==============================================================================
--- trunk/libs/spirit/doc/abstracts/peg.qbk (original)
+++ trunk/libs/spirit/doc/abstracts/peg.qbk 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -9,9 +9,9 @@
Parsing Expression Grammars (PEG) [footnote Bryan Ford: Parsing Expression
Grammars: A Recognition-Based Syntactic Foundation,
-[link http://pdos.csail.mit.edu/~baford/packrat/popl04/]] are a derivative of
+[@http://pdos.csail.mit.edu/~baford/packrat/popl04/]] are a derivative of
Extended Backus-Naur Form (EBNF) [footnote Richard E. Pattis: EBNF: A Notation
-to Describe Syntax, [link http://www.cs.cmu.edu/~pattis/misc/ebnf.pdf]]
+to Describe Syntax, [@http://www.cs.cmu.edu/~pattis/misc/ebnf.pdf]]
with a different interpretation, designed to represent a recursive descent
parser. A PEG can be directly represented as a recursive-descent parser.
Modified: trunk/libs/spirit/doc/abstracts/syntax_diagram.qbk
==============================================================================
--- trunk/libs/spirit/doc/abstracts/syntax_diagram.qbk (original)
+++ trunk/libs/spirit/doc/abstracts/syntax_diagram.qbk 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -9,9 +9,9 @@
In the next section, we will deal with Parsing Expression Grammars
(PEG) [footnote Bryan Ford: Parsing Expression Grammars: A Recognition-Based
-Syntactic Foundation, [link http://pdos.csail.mit.edu/~baford/packrat/popl04/]],
+Syntactic Foundation, [@http://pdos.csail.mit.edu/~baford/packrat/popl04/]],
a variant of Extended Backus-Naur Form (EBNF) [footnote Richard E. Pattis: EBNF:
-A Notation to Describe Syntax, [link http://www.cs.cmu.edu/~pattis/misc/ebnf.pdf]]
+A Notation to Describe Syntax, [@http://www.cs.cmu.edu/~pattis/misc/ebnf.pdf]]
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 [footnote Niklaus Wirth: The Programming Language
Modified: trunk/libs/spirit/doc/html/index.html
==============================================================================
--- trunk/libs/spirit/doc/html/index.html (original)
+++ trunk/libs/spirit/doc/html/index.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 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="id1046673"></a><p>
+<a name="id1118762"></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>
@@ -110,6 +110,8 @@
<dt><span class="section">Semantic Actions</span></dt>
<dt><span class="section"><a href="spirit/karma/tutorials/karma_complex.html"> Complex - A
first more complex generator</a></span></dt>
+<dt><span class="section"><a href="spirit/karma/tutorials/karma_attributes.html"> Understanding
+ Generator Attributes</a></span></dt>
<dt><span class="section"><a href="spirit/karma/tutorials/karma_easier_complex.html"> Complex
- Made easier</a></span></dt>
</dl></dd>
@@ -131,6 +133,7 @@
<dt><span class="section"><a href="spirit/karma/reference/generator_concepts.html">Generator
Concepts</a></span></dt>
<dt><span class="section"> Basics</span></dt>
+<dt><span class="section">Operator</span></dt>
<dt><span class="section">Auxiliary</span></dt>
</dl></dd>
<dt><span class="section">Performance Measurements</span></dt>
@@ -188,7 +191,7 @@
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: July 31, 2009 at 20:49:13 GMT</small></p></td>
+<td align="left"><p><small>Last revised: August 02, 2009 at 01:55:10 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>
Modified: trunk/libs/spirit/doc/html/spirit/abstracts/parsing_expression_grammar.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/abstracts/parsing_expression_grammar.html (original)
+++ trunk/libs/spirit/doc/html/spirit/abstracts/parsing_expression_grammar.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -29,9 +29,9 @@
</h3></div></div></div>
<p>
Parsing Expression Grammars (PEG)
- <sup>[<a name="id1055779" href="#ftn.id1055779" class="footnote">5</a>]</sup>
+ <sup>[<a name="id1127880" href="#ftn.id1127880" class="footnote">5</a>]</sup>
are a derivative of Extended Backus-Naur Form (EBNF)
- <sup>[<a name="id1055791" href="#ftn.id1055791" class="footnote">6</a>]</sup>
+ <sup>[<a name="id1127892" href="#ftn.id1127892" 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="id1055812"></a>
+<a name="id1127912"></a>
<a class="link" href="parsing_expression_grammar.html#spirit.abstracts.parsing_expression_grammar.sequences">Sequences</a>
</h5>
<p>
@@ -83,7 +83,7 @@
</p></td></tr>
</table></div>
<a name="spirit.abstracts.parsing_expression_grammar.alternatives"></a><h5>
-<a name="id1055929"></a>
+<a name="id1128030"></a>
<a class="link" href="parsing_expression_grammar.html#spirit.abstracts.parsing_expression_grammar.alternatives">Alternatives</a>
</h5>
<p>
@@ -126,7 +126,7 @@
about this $$$).
</p>
<a name="spirit.abstracts.parsing_expression_grammar.loops"></a><h5>
-<a name="id1056068"></a>
+<a name="id1128169"></a>
<a class="link" href="parsing_expression_grammar.html#spirit.abstracts.parsing_expression_grammar.loops">Loops</a>
</h5>
<p>
@@ -189,7 +189,7 @@
We will see more of these other mechanisms shortly.
</p>
<a name="spirit.abstracts.parsing_expression_grammar.difference"></a><h5>
-<a name="id1056209"></a>
+<a name="id1128309"></a>
<a class="link" href="parsing_expression_grammar.html#spirit.abstracts.parsing_expression_grammar.difference">Difference</a>
</h5>
<p>
@@ -205,12 +205,12 @@
</p>
<div class="footnotes">
<br><hr width="100" align="left">
-<div class="footnote"><p><sup>[<a name="ftn.id1055779" href="#id1055779" class="para">5</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id1127880" href="#id1127880" class="para">5</a>] </sup>
Bryan Ford: Parsing Expression Grammars: A Recognition-Based Syntactic
- Foundation, <a class="link" href="../../">http://pdos.csail.mit.edu/~baford/packrat/popl04/>
+ Foundation, http://pdos.csail.mit.edu/~baford/packrat/popl04/
</p></div>
-<div class="footnote"><p><sup>[<a name="ftn.id1055791" href="#id1055791" class="para">6</a>] </sup>
- Richard E. Pattis: EBNF: A Notation to Describe Syntax, <a class="link" href="../../">http://www.cs.cmu.edu/~pattis/misc/ebnf.pdf>
+<div class="footnote"><p><sup>[<a name="ftn.id1127892" href="#id1127892" 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>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/abstracts/syntax_diagram.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/abstracts/syntax_diagram.html (original)
+++ trunk/libs/spirit/doc/html/spirit/abstracts/syntax_diagram.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -28,20 +28,20 @@
</h3></div></div></div>
<p>
In the next section, we will deal with Parsing Expression Grammars (PEG)
- <sup>[<a name="id1055352" href="#ftn.id1055352" class="footnote">2</a>]</sup>
+ <sup>[<a name="id1127452" href="#ftn.id1127452" class="footnote">2</a>]</sup>
, a variant of Extended Backus-Naur Form (EBNF)
- <sup>[<a name="id1055364" href="#ftn.id1055364" class="footnote">3</a>]</sup>
+ <sup>[<a name="id1127464" href="#ftn.id1127464" 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="id1055376" href="#ftn.id1055376" class="footnote">4</a>]</sup>
+ <sup>[<a name="id1127476" href="#ftn.id1127476" 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
parsers which are essentially mutually recursive functions.
</p>
<a name="spirit.abstracts.syntax_diagram.elements"></a><h5>
-<a name="id1055388"></a>
+<a name="id1127488"></a>
<a class="link" href="syntax_diagram.html#spirit.abstracts.syntax_diagram.elements">Elements</a>
</h5>
<p>
@@ -85,7 +85,7 @@
</p>
</blockquote></div>
<a name="spirit.abstracts.syntax_diagram.constructs"></a><h5>
-<a name="id1055488"></a>
+<a name="id1127588"></a>
<a class="link" href="syntax_diagram.html#spirit.abstracts.syntax_diagram.constructs">Constructs</a>
</h5>
<p>
@@ -156,7 +156,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="id1055648"></a>
+<a name="id1127749"></a>
<a class="link" href="syntax_diagram.html#spirit.abstracts.syntax_diagram.predicates">Predicates</a>
</h5>
<p>
@@ -211,14 +211,14 @@
</p>
<div class="footnotes">
<br><hr width="100" align="left">
-<div class="footnote"><p><sup>[<a name="ftn.id1055352" href="#id1055352" class="para">2</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id1127452" href="#id1127452" class="para">2</a>] </sup>
Bryan Ford: Parsing Expression Grammars: A Recognition-Based Syntactic
- Foundation, <a class="link" href="../../">http://pdos.csail.mit.edu/~baford/packrat/popl04/>
+ Foundation, http://pdos.csail.mit.edu/~baford/packrat/popl04/
</p></div>
-<div class="footnote"><p><sup>[<a name="ftn.id1055364" href="#id1055364" class="para">3</a>] </sup>
- Richard E. Pattis: EBNF: A Notation to Describe Syntax, <a class="link" href="../../">http://www.cs.cmu.edu/~pattis/misc/ebnf.pdf>
+<div class="footnote"><p><sup>[<a name="ftn.id1127464" href="#id1127464" 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.id1055376" href="#id1055376" class="para">4</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id1127476" href="#id1127476" class="para">4</a>] </sup>
Niklaus Wirth: The Programming Language Pascal. (July 1973)
</p></div>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/acknowledgments.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/acknowledgments.html (original)
+++ trunk/libs/spirit/doc/html/spirit/acknowledgments.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -47,7 +47,7 @@
<span class="bold"><strong>FIXME</strong></span>: Add more people
</p>
<a name="spirit.acknowledgments.acknowledgements_from_the_spirit_v1__emphasis_classic__emphasis__documentation"></a><h4>
-<a name="id1173560"></a>
+<a name="id1253954"></a>
<a class="link" href="acknowledgments.html#spirit.acknowledgments.acknowledgements_from_the_spirit_v1__emphasis_classic__emphasis__documentation">Acknowledgements
from the Spirit V1 <span class="emphasis"><em>classic</em></span> Documentation</a>
</h4>
Modified: trunk/libs/spirit/doc/html/spirit/faq.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/faq.html (original)
+++ trunk/libs/spirit/doc/html/spirit/faq.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 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="id1172039"></a>
+<a name="id1251056"></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="id1172210"></a>
+<a name="id1251226"></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="id1172720"></a>
+<a name="id1251736"></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>
@@ -184,7 +184,7 @@
Entries containing 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="id1172801"></a>
+<a name="id1251818"></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: trunk/libs/spirit/doc/html/spirit/introduction.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/introduction.html (original)
+++ trunk/libs/spirit/doc/html/spirit/introduction.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 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="id1051539" href="#ftn.id1051539" class="footnote">1</a>]</sup>
+ <sup>[<a name="id1123628" href="#ftn.id1123628" 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
@@ -87,9 +87,9 @@
<li class="listitem">
<span class="emphasis"><em>Spirit.Lex</em></span>: This is the library usable to create tokenizers
(lexers). The domain-specific language exposed by <span class="emphasis"><em>Spirit.Lex</em></span>
- allows to define regular expressions used to match tokens, associate these
- regular expressions with code to be executed whenever it is matched, and
- to add the token definitions to the lexical analyzer.
+ allows to define regular expressions used to match tokens (create token definitions),
+ associate these regular expressions with code to be executed whenever they
+ are matched, and to add the token definitions to the lexical analyzer.
</li>
<li class="listitem">
<span class="emphasis"><em>Spirit.Karma</em></span>: This is the generator library allowing
@@ -134,7 +134,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="id1051752"></a>
+<a name="id1123842"></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>
@@ -224,7 +224,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="id1052709"></a>
+<a name="id1124798"></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>
@@ -257,7 +257,7 @@
of the same <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span></code>:
</p>
<div class="table">
-<a name="id1053050"></a><p class="title"><b>Table 2. Different output formats for `std::vector<int>`</b></p>
+<a name="id1125139"></a><p class="title"><b>Table 2. Different output formats for `std::vector<int>`</b></p>
<div class="table-contents"><table class="table" summary="Different output formats for `std::vector<int>`">
<colgroup>
<col>
@@ -360,7 +360,11 @@
</table></div>
</div>
<br class="table-break"><p>
- The syntax is similar to <span class="emphasis"><em>Spirit.Qi</em></span> with the exception
+ We will see later in this documentation how it is possible to avoid printing
+ the trailing <code class="computeroutput"><span class="char">','</span></code>.
+ </p>
+<p>
+ Overall, the syntax is similar to <span class="emphasis"><em>Spirit.Qi</em></span> with the exception
that we use the <code class="computeroutput"><span class="special"><<</span></code> operator
for output concatenation. This should be easy to understand as it follows the
conventions used in the Standard's I/O streams.
@@ -372,7 +376,7 @@
next table gives some related examples.
</p>
<div class="table">
-<a name="id1054516"></a><p class="title"><b>Table 3. Different data types usable with the output format
+<a name="id1126616"></a><p class="title"><b>Table 3. Different data types usable with the output format
`*(int_ << eol)`</b></p>
<div class="table-contents"><table class="table" summary="Different data types usable with the output format
`*(int_ << eol)`">
@@ -446,7 +450,7 @@
</div>
<br class="table-break"><div class="footnotes">
<br><hr width="100" align="left">
-<div class="footnote"><p><sup>[<a name="ftn.id1051539" href="#id1051539" class="para">1</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id1123628" href="#id1123628" 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: trunk/libs/spirit/doc/html/spirit/karma.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -34,6 +34,8 @@
<dt><span class="section">Semantic Actions</span></dt>
<dt><span class="section"><a href="karma/tutorials/karma_complex.html"> Complex - A
first more complex generator</a></span></dt>
+<dt><span class="section"><a href="karma/tutorials/karma_attributes.html"> Understanding
+ Generator Attributes</a></span></dt>
<dt><span class="section"><a href="karma/tutorials/karma_easier_complex.html"> Complex
- Made easier</a></span></dt>
</dl></dd>
@@ -55,6 +57,7 @@
<dt><span class="section"><a href="karma/reference/generator_concepts.html">Generator
Concepts</a></span></dt>
<dt><span class="section"> Basics</span></dt>
+<dt><span class="section">Operator</span></dt>
<dt><span class="section">Auxiliary</span></dt>
</dl></dd>
<dt><span class="section">Performance Measurements</span></dt>
Modified: trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/double_performance.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/double_performance.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/double_performance.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 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="id1134198"></a><p class="title"><b>Table 7. Performance comparison for a single double (all
+<a name="id1213882"></a><p class="title"><b>Table 7. 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: trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/format_performance.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/format_performance.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/format_performance.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 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="id1135728"></a><p class="title"><b>Table 8. Performance comparison for a sequence of several
+<a name="id1215400"></a><p class="title"><b>Table 8. 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: trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/int_performance.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/int_performance.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/int_performance.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 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="id1133141"></a><p class="title"><b>Table 6. Performance comparison for a single int (all
+<a name="id1212523"></a><p class="title"><b>Table 6. 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: trunk/libs/spirit/doc/html/spirit/karma/quick_reference/compound_attribute_rules.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/quick_reference/compound_attribute_rules.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/quick_reference/compound_attribute_rules.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -41,7 +41,7 @@
<span class="identifier">b</span></code> will be <code class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span></code>.
</p>
<div class="table">
-<a name="id1120238"></a><p class="title"><b>Table 5. Spirit.Karma compound generator attribute types</b></p>
+<a name="id1194193"></a><p class="title"><b>Table 5. Spirit.Karma compound generator attribute types</b></p>
<div class="table-contents"><table class="table" summary="Spirit.Karma compound generator attribute types">
<colgroup>
<col>
@@ -63,7 +63,8 @@
<tr>
<td>
<p>
- sequence (<code class="computeroutput"><span class="special"><<</span></code>)
+ <a class="link" href="../reference/operator/sequence.html" title="Sequences (operator<<())">sequence
+ (<code class="computeroutput"><span class="special"><<</span></code>)</a>
</p>
</td>
<td>
@@ -86,7 +87,8 @@
<tr>
<td>
<p>
- alternative (<code class="computeroutput"><span class="special">|</span></code>)
+ <a class="link" href="../reference/operator/alternative.html" title="Alternatives (operator|())">alternative
+ (<code class="computeroutput"><span class="special">|</span></code>)</a>
</p>
</td>
<td>
@@ -94,8 +96,8 @@
</p>
<pre class="programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">B</span> <span class="special">--></span> <span class="special">(</span><span class="identifier">a</span> <span class="special">|</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">variant</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span>
-<span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="special">(</span><span class="identifier">a</span> <span class="special">|</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">variant</span><span class="special"><</span><span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">A</span><span class="special">></span>
-<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">B</span> <span class="special">--></span> <span class="special">(</span><span class="identifier">a</span> <span class="special">|</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">variant</span><span class="special"><</span><span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span>
+<span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="special">(</span><span class="identifier">a</span> <span class="special">|</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">A</span>
+<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">B</span> <span class="special">--></span> <span class="special">(</span><span class="identifier">a</span> <span class="special">|</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">B</span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="special">(</span><span class="identifier">a</span> <span class="special">|</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">Unused</span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="special">(</span><span class="identifier">a</span> <span class="special">|</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">A</span></pre>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/karma/quick_reference/predefined_primitive_generators.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/quick_reference/predefined_primitive_generators.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/quick_reference/predefined_primitive_generators.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -138,7 +138,7 @@
</td>
<td>
<p>
- Equivalent to <code class="computeroutput"><span class="identifier">lazy</span><span class="special">(</span><span class="identifier">fg</span><span class="special">)</span></code>
+ Equivalent to <a class="link" href="../reference/auxiliary/lazy.html" title="lazy"><code class="computeroutput"><span class="identifier">lazy</span><span class="special">(</span><span class="identifier">fg</span><span class="special">)</span></code></a>
</p>
</td>
</tr>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -30,6 +30,7 @@
<dt><span class="section"><a href="reference/generator_concepts.html">Generator
Concepts</a></span></dt>
<dt><span class="section"> Basics</span></dt>
+<dt><span class="section">Operator</span></dt>
<dt><span class="section">Auxiliary</span></dt>
</dl></div>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -6,7 +6,7 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../reference.html" title="Reference">
-<link rel="prev" href="karma_basics.html" title="Basics">
+<link rel="prev" href="operator/alternative.html" title="Alternatives (operator|())">
<link rel="next" href="auxiliary/eol.html" title="eol">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,7 +20,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="karma_basics.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="auxiliary/eol.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="operator/alternative.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="auxiliary/eol.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" title="Auxiliary">
<div class="titlepage"><div><div><h4 class="title">
@@ -33,11 +33,11 @@
</dl></div>
<p>
This module includes different auxiliary generators not fitting into any
- of the other categories. This module includes the <code class="computeroutput"><span class="identifier">eol</span></code>
+ of the other categories. It includes the <code class="computeroutput"><span class="identifier">eol</span></code>
and <code class="computeroutput"><span class="identifier">eps</span></code>, <code class="computeroutput"><span class="identifier">lazy</span></code> generators.
</p>
<a name="spirit.karma.reference.auxiliary.module_header"></a><h6>
-<a name="id1129466"></a>
+<a name="id1208102"></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 <boost/spirit/home/karma/auxiliary.hpp>
@@ -55,7 +55,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="karma_basics.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="auxiliary/eol.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="operator/alternative.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="auxiliary/eol.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
</body>
</html>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eol.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eol.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eol.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -27,7 +27,7 @@
<a name="spirit.karma.reference.auxiliary.eol"></a><a class="link" href="eol.html" title="eol">eol</a>
</h5></div></div></div>
<a name="spirit.karma.reference.auxiliary.eol.description"></a><h6>
-<a name="id1129542"></a>
+<a name="id1208178"></a>
<a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.description">Description</a>
</h6>
<p>
@@ -37,7 +37,7 @@
details).
</p>
<a name="spirit.karma.reference.auxiliary.eol.header"></a><h6>
-<a name="id1129599"></a>
+<a name="id1208235"></a>
<a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.header">Header</a>
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/auxiliary/eol.hpp>
@@ -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.eol.model_of"></a><h6>
-<a name="id1129674"></a>
+<a name="id1208310"></a>
<a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.model_of">Model of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
@@ -60,7 +60,7 @@
</p>
</blockquote></div>
<a name="spirit.karma.reference.auxiliary.eol.expression_semantics"></a><h6>
-<a name="id1129712"></a>
+<a name="id1208348"></a>
<a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.expression_semantics">Expression
Semantics</a>
</h6>
@@ -100,7 +100,7 @@
</tr></tbody>
</table></div>
<a name="spirit.karma.reference.auxiliary.eol.attributes"></a><h6>
-<a name="id1129801"></a>
+<a name="id1208437"></a>
<a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.attributes">Attributes</a>
</h6>
<div class="informaltable"><table class="table">
@@ -134,7 +134,7 @@
</tr></tbody>
</table></div>
<a name="spirit.karma.reference.auxiliary.eol.complexity"></a><h6>
-<a name="id1129879"></a>
+<a name="id1208515"></a>
<a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.complexity">Complexity</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
@@ -151,7 +151,7 @@
output.
</p>
<a name="spirit.karma.reference.auxiliary.eol.example"></a><h6>
-<a name="id1129906"></a>
+<a name="id1208542"></a>
<a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.example">Example</a>
</h6>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eps.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eps.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eps.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 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="id1129941"></a>
+<a name="id1208577"></a>
<a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.description">Description</a>
</h6>
<p>
@@ -45,7 +45,7 @@
while using the return value as the criteria to succeed.
</p>
<a name="spirit.karma.reference.auxiliary.eps.header"></a><h6>
-<a name="id1130041"></a>
+<a name="id1208677"></a>
<a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.header">Header</a>
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/auxiliary/eps.hpp>
@@ -55,7 +55,7 @@
Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
</p>
<a name="spirit.karma.reference.auxiliary.eps.model_of"></a><h6>
-<a name="id1130115"></a>
+<a name="id1208751"></a>
<a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.model_of">Model of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
@@ -82,7 +82,7 @@
</dl>
</div>
<a name="spirit.karma.reference.auxiliary.eps.expression_semantics"></a><h6>
-<a name="id1130202"></a>
+<a name="id1208838"></a>
<a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.expression_semantics">Expression
Semantics</a>
</h6>
@@ -149,7 +149,7 @@
</tbody>
</table></div>
<a name="spirit.karma.reference.auxiliary.eps.attributes"></a><h6>
-<a name="id1130389"></a>
+<a name="id1210941"></a>
<a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.attributes">Attributes</a>
</h6>
<div class="informaltable"><table class="table">
@@ -209,7 +209,7 @@
</tbody>
</table></div>
<a name="spirit.karma.reference.auxiliary.eps.complexity"></a><h6>
-<a name="id1130551"></a>
+<a name="id1211103"></a>
<a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.complexity">Complexity</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
@@ -225,7 +225,7 @@
The complexity is constant as no output is generated.
</p>
<a name="spirit.karma.reference.auxiliary.eps.example"></a><h6>
-<a name="id1130578"></a>
+<a name="id1211131"></a>
<a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.example">Example</a>
</h6>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/lazy.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/lazy.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/lazy.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -27,7 +27,7 @@
<a name="spirit.karma.reference.auxiliary.lazy"></a><a class="link" href="lazy.html" title="lazy">lazy</a>
</h5></div></div></div>
<a name="spirit.karma.reference.auxiliary.lazy.description"></a><h6>
-<a name="id1130602"></a>
+<a name="id1211155"></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="id1130626"></a>
+<a name="id1211179"></a>
<a class="link" href="lazy.html#spirit.karma.reference.auxiliary.lazy.header">Header</a>
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/auxiliary/lazy.hpp>
@@ -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.model_of"></a><h6>
-<a name="id1130701"></a>
+<a name="id1211253"></a>
<a class="link" href="lazy.html#spirit.karma.reference.auxiliary.lazy.model_of">Model
of</a>
</h6>
@@ -84,7 +84,7 @@
second argument. This is done for uniformity with Semantic Actions).
</p>
<a name="spirit.karma.reference.auxiliary.lazy.expression_semantics"></a><h6>
-<a name="id1130838"></a>
+<a name="id1211390"></a>
<a class="link" href="lazy.html#spirit.karma.reference.auxiliary.lazy.expression_semantics">Expression
Semantics</a>
</h6>
@@ -147,7 +147,7 @@
</tbody>
</table></div>
<a name="spirit.karma.reference.auxiliary.lazy.attributes"></a><h6>
-<a name="id1130990"></a>
+<a name="id1211543"></a>
<a class="link" href="lazy.html#spirit.karma.reference.auxiliary.lazy.attributes">Attributes</a>
</h6>
<div class="informaltable"><table class="table">
@@ -199,7 +199,7 @@
</tbody>
</table></div>
<a name="spirit.karma.reference.auxiliary.lazy.complexity"></a><h6>
-<a name="id1132309"></a>
+<a name="id1211691"></a>
<a class="link" href="lazy.html#spirit.karma.reference.auxiliary.lazy.complexity">Complexity</a>
</h6>
<p>
@@ -208,7 +208,7 @@
<code class="computeroutput"><span class="identifier">fg</span></code>.
</p>
<a name="spirit.karma.reference.auxiliary.lazy.example"></a><h6>
-<a name="id1132340"></a>
+<a name="id1211723"></a>
<a class="link" href="lazy.html#spirit.karma.reference.auxiliary.lazy.example">Example</a>
</h6>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/binarygenerator.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/binarygenerator.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/binarygenerator.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -27,7 +27,7 @@
<a name="spirit.karma.reference.generator_concepts.binarygenerator"></a><a class="link" href="binarygenerator.html" title="BinaryGenerator">BinaryGenerator</a>
</h5></div></div></div>
<a name="spirit.karma.reference.generator_concepts.binarygenerator.description"></a><h6>
-<a name="id1127372"></a>
+<a name="id1203005"></a>
<a class="link" href="binarygenerator.html#spirit.karma.reference.generator_concepts.binarygenerator.description">Description</a>
</h6>
<p>
@@ -39,7 +39,7 @@
Design Pattern.
</p>
<a name="spirit.karma.reference.generator_concepts.binarygenerator.refinement_of"></a><h6>
-<a name="id1127419"></a>
+<a name="id1203052"></a>
<a class="link" href="binarygenerator.html#spirit.karma.reference.generator_concepts.binarygenerator.refinement_of">Refinement
of</a>
</h6>
@@ -66,7 +66,7 @@
</dl>
</div>
<a name="spirit.karma.reference.generator_concepts.binarygenerator.valid_expressions"></a><h6>
-<a name="id1127496"></a>
+<a name="id1203129"></a>
<a class="link" href="binarygenerator.html#spirit.karma.reference.generator_concepts.binarygenerator.valid_expressions">Valid
Expressions</a>
</h6>
@@ -135,7 +135,7 @@
</tbody>
</table></div>
<a name="spirit.karma.reference.generator_concepts.binarygenerator.type_expressions"></a><h6>
-<a name="id1127658"></a>
+<a name="id1203291"></a>
<a class="link" href="binarygenerator.html#spirit.karma.reference.generator_concepts.binarygenerator.type_expressions">Type
Expressions</a>
</h6>
@@ -200,7 +200,7 @@
</tbody>
</table></div>
<a name="spirit.karma.reference.generator_concepts.binarygenerator.invariants"></a><h6>
-<a name="id1127856"></a>
+<a name="id1203489"></a>
<a class="link" href="binarygenerator.html#spirit.karma.reference.generator_concepts.binarygenerator.invariants">Invariants</a>
</h6>
<p>
@@ -216,7 +216,7 @@
</li>
</ul></div>
<a name="spirit.karma.reference.generator_concepts.binarygenerator.models"></a><h6>
-<a name="id1127992"></a>
+<a name="id1203625"></a>
<a class="link" href="binarygenerator.html#spirit.karma.reference.generator_concepts.binarygenerator.models">Models</a>
</h6>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/generator.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/generator.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/generator.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -27,7 +27,7 @@
<a name="spirit.karma.reference.generator_concepts.generator"></a><a class="link" href="generator.html" title="Generator">Generator</a>
</h5></div></div></div>
<a name="spirit.karma.reference.generator_concepts.generator.description"></a><h6>
-<a name="id1125622"></a>
+<a name="id1199548"></a>
<a class="link" href="generator.html#spirit.karma.reference.generator_concepts.generator.description">Description</a>
</h6>
<p>
@@ -81,7 +81,7 @@
</dl>
</div>
<a name="spirit.karma.reference.generator_concepts.generator.valid_expressions"></a><h6>
-<a name="id1126014"></a>
+<a name="id1199803"></a>
<a class="link" href="generator.html#spirit.karma.reference.generator_concepts.generator.valid_expressions">Valid
Expressions</a>
</h6>
@@ -164,7 +164,7 @@
</tbody>
</table></div>
<a name="spirit.karma.reference.generator_concepts.generator.type_expressions"></a><h6>
-<a name="id1126274"></a>
+<a name="id1200063"></a>
<a class="link" href="generator.html#spirit.karma.reference.generator_concepts.generator.type_expressions">Type
Expressions</a>
</h6>
@@ -217,7 +217,7 @@
</tbody>
</table></div>
<a name="spirit.karma.reference.generator_concepts.generator.postcondition"></a><h6>
-<a name="id1126458"></a>
+<a name="id1200247"></a>
<a class="link" href="generator.html#spirit.karma.reference.generator_concepts.generator.postcondition">Postcondition</a>
</h6>
<p>
@@ -239,7 +239,7 @@
</li>
</ul></div>
<a name="spirit.karma.reference.generator_concepts.generator.models"></a><h6>
-<a name="id1126527"></a>
+<a name="id1200316"></a>
<a class="link" href="generator.html#spirit.karma.reference.generator_concepts.generator.models">Models</a>
</h6>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/narygenerator.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/narygenerator.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/narygenerator.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -27,7 +27,7 @@
<a name="spirit.karma.reference.generator_concepts.narygenerator"></a><a class="link" href="narygenerator.html" title="NaryGenerator">NaryGenerator</a>
</h5></div></div></div>
<a name="spirit.karma.reference.generator_concepts.narygenerator.description"></a><h6>
-<a name="id1128025"></a>
+<a name="id1203658"></a>
<a class="link" href="narygenerator.html#spirit.karma.reference.generator_concepts.narygenerator.description">Description</a>
</h6>
<p>
@@ -37,7 +37,7 @@
Design Pattern.
</p>
<a name="spirit.karma.reference.generator_concepts.narygenerator.refinement_of"></a><h6>
-<a name="id1128056"></a>
+<a name="id1203689"></a>
<a class="link" href="narygenerator.html#spirit.karma.reference.generator_concepts.narygenerator.refinement_of">Refinement
of</a>
</h6>
@@ -64,7 +64,7 @@
</dl>
</div>
<a name="spirit.karma.reference.generator_concepts.narygenerator.valid_expressions"></a><h6>
-<a name="id1128888"></a>
+<a name="id1203766"></a>
<a class="link" href="narygenerator.html#spirit.karma.reference.generator_concepts.narygenerator.valid_expressions">Valid
Expressions</a>
</h6>
@@ -115,7 +115,7 @@
</tr></tbody>
</table></div>
<a name="spirit.karma.reference.generator_concepts.narygenerator.type_expressions"></a><h6>
-<a name="id1129008"></a>
+<a name="id1203886"></a>
<a class="link" href="narygenerator.html#spirit.karma.reference.generator_concepts.narygenerator.type_expressions">Type
Expressions</a>
</h6>
@@ -168,7 +168,7 @@
</tbody>
</table></div>
<a name="spirit.karma.reference.generator_concepts.narygenerator.invariants"></a><h6>
-<a name="id1129173"></a>
+<a name="id1204051"></a>
<a class="link" href="narygenerator.html#spirit.karma.reference.generator_concepts.narygenerator.invariants">Invariants</a>
</h6>
<p>
@@ -180,7 +180,7 @@
<code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_generator</span><span class="special"><</span><span class="identifier">E</span><span class="special">>::</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>
</li></ul></div>
<a name="spirit.karma.reference.generator_concepts.narygenerator.models"></a><h6>
-<a name="id1129258"></a>
+<a name="id1204137"></a>
<a class="link" href="narygenerator.html#spirit.karma.reference.generator_concepts.narygenerator.models">Models</a>
</h6>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/primitivegenerator.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/primitivegenerator.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/primitivegenerator.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -27,7 +27,7 @@
<a name="spirit.karma.reference.generator_concepts.primitivegenerator"></a><a class="link" href="primitivegenerator.html" title="PrimitiveGenerator">PrimitiveGenerator</a>
</h5></div></div></div>
<a name="spirit.karma.reference.generator_concepts.primitivegenerator.description"></a><h6>
-<a name="id1126569"></a>
+<a name="id1202202"></a>
<a class="link" href="primitivegenerator.html#spirit.karma.reference.generator_concepts.primitivegenerator.description">Description</a>
</h6>
<p>
@@ -35,7 +35,7 @@
that the client uses to build more complex generators.
</p>
<a name="spirit.karma.reference.generator_concepts.primitivegenerator.refinement_of"></a><h6>
-<a name="id1126590"></a>
+<a name="id1202223"></a>
<a class="link" href="primitivegenerator.html#spirit.karma.reference.generator_concepts.primitivegenerator.refinement_of">Refinement
of</a>
</h6>
@@ -49,7 +49,7 @@
</p>
</blockquote></div>
<a name="spirit.karma.reference.generator_concepts.primitivegenerator.post_delimit"></a><h6>
-<a name="id1126623"></a>
+<a name="id1202256"></a>
<a class="link" href="primitivegenerator.html#spirit.karma.reference.generator_concepts.primitivegenerator.post_delimit">Post-delimit</a>
</h6>
<p>
@@ -62,7 +62,7 @@
<pre class="programlisting"><span class="identifier">karma</span><span class="special">::</span><span class="identifier">delimit_out</span><span class="special">(</span><span class="identifier">sink</span><span class="special">,</span> <span class="identifier">delimit</span><span class="special">);</span>
</pre>
<a name="spirit.karma.reference.generator_concepts.primitivegenerator.type_expressions"></a><h6>
-<a name="id1126696"></a>
+<a name="id1202329"></a>
<a class="link" href="primitivegenerator.html#spirit.karma.reference.generator_concepts.primitivegenerator.type_expressions">Type
Expressions</a>
</h6>
@@ -101,7 +101,7 @@
</tr></tbody>
</table></div>
<a name="spirit.karma.reference.generator_concepts.primitivegenerator.models"></a><h6>
-<a name="id1126830"></a>
+<a name="id1202463"></a>
<a class="link" href="primitivegenerator.html#spirit.karma.reference.generator_concepts.primitivegenerator.models">Models</a>
</h6>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/unarygenerator.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/unarygenerator.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/unarygenerator.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -27,7 +27,7 @@
<a name="spirit.karma.reference.generator_concepts.unarygenerator"></a><a class="link" href="unarygenerator.html" title="UnaryGenerator">UnaryGenerator</a>
</h5></div></div></div>
<a name="spirit.karma.reference.generator_concepts.unarygenerator.description"></a><h6>
-<a name="id1126870"></a>
+<a name="id1202503"></a>
<a class="link" href="unarygenerator.html#spirit.karma.reference.generator_concepts.unarygenerator.description">Description</a>
</h6>
<p>
@@ -36,7 +36,7 @@
following the Delegate Design Pattern.
</p>
<a name="spirit.karma.reference.generator_concepts.unarygenerator.refinement_of"></a><h6>
-<a name="id1126891"></a>
+<a name="id1202524"></a>
<a class="link" href="unarygenerator.html#spirit.karma.reference.generator_concepts.unarygenerator.refinement_of">Refinement
of</a>
</h6>
@@ -63,7 +63,7 @@
</dl>
</div>
<a name="spirit.karma.reference.generator_concepts.unarygenerator.valid_expressions"></a><h6>
-<a name="id1126968"></a>
+<a name="id1202601"></a>
<a class="link" href="unarygenerator.html#spirit.karma.reference.generator_concepts.unarygenerator.valid_expressions">Valid
Expressions</a>
</h6>
@@ -113,7 +113,7 @@
</tr></tbody>
</table></div>
<a name="spirit.karma.reference.generator_concepts.unarygenerator.type_expressions"></a><h6>
-<a name="id1127083"></a>
+<a name="id1202716"></a>
<a class="link" href="unarygenerator.html#spirit.karma.reference.generator_concepts.unarygenerator.type_expressions">Type
Expressions</a>
</h6>
@@ -166,7 +166,7 @@
</tbody>
</table></div>
<a name="spirit.karma.reference.generator_concepts.unarygenerator.invariants"></a><h6>
-<a name="id1127247"></a>
+<a name="id1202880"></a>
<a class="link" href="unarygenerator.html#spirit.karma.reference.generator_concepts.unarygenerator.invariants">Invariants</a>
</h6>
<p>
@@ -177,7 +177,7 @@
<code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_generator</span><span class="special"><</span><span class="identifier">G</span><span class="special">::</span><span class="identifier">subject_type</span><span class="special">>::</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>
</li></ul></div>
<a name="spirit.karma.reference.generator_concepts.unarygenerator.models"></a><h6>
-<a name="id1127332"></a>
+<a name="id1202965"></a>
<a class="link" href="unarygenerator.html#spirit.karma.reference.generator_concepts.unarygenerator.models">Models</a>
</h6>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/karma_basics.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/karma_basics.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/karma_basics.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -7,7 +7,7 @@
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="generator_concepts/narygenerator.html" title="NaryGenerator">
-<link rel="next" href="auxiliary.html" title="Auxiliary">
+<link rel="next" href="operator.html" title="Operator">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -20,14 +20,14 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="generator_concepts/narygenerator.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="auxiliary.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="generator_concepts/narygenerator.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="operator.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" title="Basics">
<div class="titlepage"><div><div><h4 class="title">
<a name="spirit.karma.reference.karma_basics"></a><a class="link" href="karma_basics.html" title="Basics"> Basics</a>
</h4></div></div></div>
<a name="spirit.karma.reference.karma_basics.lazy_argument"></a><h6>
-<a name="id1129294"></a>
+<a name="id1204173"></a>
<a class="link" href="karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
Argument</a>
</h6>
@@ -63,7 +63,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="generator_concepts/narygenerator.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="auxiliary.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="generator_concepts/narygenerator.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="operator.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
</body>
</html>
Added: trunk/libs/spirit/doc/html/spirit/karma/reference/operator.html
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/operator.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -0,0 +1,67 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Operator</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="../reference.html" title="Reference">
+<link rel="prev" href="karma_basics.html" title="Basics">
+<link rel="next" href="operator/sequence.html" title="Sequences (operator<<())">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="karma_basics.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="operator/sequence.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" title="Operator">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.karma.reference.operator"></a><a class="link" href="operator.html" title="Operator">Operator</a>
+</h4></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="operator/sequence.html"> Sequences
+ (<code class="computeroutput"><span class="keyword">operator</span><span class="special"><<()</span></code>)</a></span></dt>
+<dt><span class="section"><a href="operator/alternative.html"> Alternatives
+ (<code class="computeroutput"><span class="keyword">operator</span><span class="special">|()</span></code>)</a></span></dt>
+</dl></div>
+<p>
+ This module includes different generators which get instantiated if one
+ of the overloaded operators is used with more primitive generator constructs.
+ It includes sequences (<code class="computeroutput"><span class="special"><<</span></code>),
+ alternatives (<code class="computeroutput"><span class="special">|</span></code>), kleene star
+ (unary <code class="computeroutput"><span class="special">*</span></code>), plus (unary <code class="computeroutput"><span class="special">+</span></code>), optional (unary <code class="computeroutput"><span class="special">-</span></code>),
+ lists (<code class="computeroutput"><span class="special">%</span></code>), and the two predicates,
+ the <span class="emphasis"><em>and</em></span> predicate (unary <code class="computeroutput"><span class="special">&</span></code>)
+ and the <span class="emphasis"><em>not</em></span> predicate (unary <code class="computeroutput"><span class="special">!</span></code>).
+ </p>
+<a name="spirit.karma.reference.operator.module_header"></a><h6>
+<a name="id1204460"></a>
+ <a class="link" href="operator.html#spirit.karma.reference.operator.module_header">Module Header</a>
+ </h6>
+<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/operator.hpp>
+</span><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">karma_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2001-2009 Joel
+ de Guzman, Hartmut Kaiser<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="karma_basics.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="operator/sequence.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: trunk/libs/spirit/doc/html/spirit/karma/reference/operator/alternative.html
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/operator/alternative.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -0,0 +1,291 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Alternatives (operator|())</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="../operator.html" title="Operator">
+<link rel="prev" href="sequence.html" title="Sequences (operator<<())">
+<link rel="next" href="../auxiliary.html" title="Auxiliary">
+</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="sequence.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../auxiliary.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" title="Alternatives (operator|())">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="spirit.karma.reference.operator.alternative"></a><a class="link" href="alternative.html" title="Alternatives (operator|())"> Alternatives
+ (<code class="computeroutput"><span class="keyword">operator</span><span class="special">|()</span></code>)</a>
+</h5></div></div></div>
+<a name="spirit.karma.reference.operator.alternative.description"></a><h6>
+<a name="id1206470"></a>
+ <a class="link" href="alternative.html#spirit.karma.reference.operator.alternative.description">Description</a>
+ </h6>
+<p>
+ Generator alternatives are used to combine different, more primitive
+ generators into alternatives. All generators in an alternative are invoked
+ from left to right until one of them succeeds.
+ </p>
+<a name="spirit.karma.reference.operator.alternative.header"></a><h6>
+<a name="id1206486"></a>
+ <a class="link" href="alternative.html#spirit.karma.reference.operator.alternative.header">Header</a>
+ </h6>
+<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/operator/alternative.hpp>
+</span><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">karma_alternative</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ </p>
+<a name="spirit.karma.reference.operator.alternative.model_of"></a><h6>
+<a name="id1206561"></a>
+ <a class="link" href="alternative.html#spirit.karma.reference.operator.alternative.model_of">Model
+ of</a>
+ </h6>
+<div class="blockquote"><blockquote class="blockquote">
+<p>
+ </p>
+<p>
+ <a class="link" href="../generator_concepts/narygenerator.html" title="NaryGenerator"><code class="computeroutput"><span class="identifier">NaryGenerator</span></code></a>
+ </p>
+<p>
+ </p>
+</blockquote></div>
+<a name="spirit.karma.reference.operator.alternative.expression_semantics"></a><h6>
+<a name="id1206594"></a>
+ <a class="link" href="alternative.html#spirit.karma.reference.operator.alternative.expression_semantics">Expression
+ Semantics</a>
+ </h6>
+<p>
+ Semantics of an expression is defined only where it differs from, or
+ is not defined in <a class="link" href="../generator_concepts/narygenerator.html" title="NaryGenerator"><code class="computeroutput"><span class="identifier">NaryGenerator</span></code></a>.
+ </p>
+<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">a</span> <span class="special">|</span>
+ <span class="identifier">b</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The generators <code class="computeroutput"><span class="identifier">a</span></code>
+ and <code class="computeroutput"><span class="identifier">b</span></code> are executed
+ sequentially from left to right and until one of them succeeds.
+ A failed generator forces the alternative to try the next one.
+ The alternative fails as a whole only if all elements of the
+ alternative fail.
+ </p>
+ </td>
+</tr></tbody>
+</table></div>
+<p>
+ Alternatives intercept and buffer the output of the currently executed
+ element. This allows to avoid partial outputs from failing elements as
+ the buffered content will be forwarded to the actual output only after
+ an element succeeded.
+ </p>
+<a name="spirit.karma.reference.operator.alternative.attributes"></a><h6>
+<a name="id1206722"></a>
+ <a class="link" href="alternative.html#spirit.karma.reference.operator.alternative.attributes">Attributes</a>
+ </h6>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Expression
+ </p>
+ </th>
+<th>
+ <p>
+ Attribute
+ </p>
+ </th>
+</tr></thead>
+<tbody><tr>
+<td>
+ <p>
+ alternative (<code class="computeroutput"><span class="special">|</span></code>)
+ </p>
+ </td>
+<td>
+ <p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">B</span> <span class="special">--></span> <span class="special">(</span><span class="identifier">a</span> <span class="special">|</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">variant</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span>
+<span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="special">(</span><span class="identifier">a</span> <span class="special">|</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">A</span>
+<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">B</span> <span class="special">--></span> <span class="special">(</span><span class="identifier">a</span> <span class="special">|</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">B</span>
+<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="special">(</span><span class="identifier">a</span> <span class="special">|</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">Unused</span>
+<span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="special">(</span><span class="identifier">a</span> <span class="special">|</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">A</span></pre>
+<p>
+ </p>
+ </td>
+</tr></tbody>
+</table></div>
+<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 align="left" valign="top">
+<p>
+ The table above uses <code class="computeroutput"><span class="identifier">variant</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span></code> as a placeholder only.
+ </p>
+<p>
+ The notation <code class="computeroutput"><span class="identifier">variant</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span></code> stands for any data structure compatible
+ with <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">variant</span></code>. Most of the time you will
+ use <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">variant</span></code>, though.
+ </p>
+</td></tr>
+</table></div>
+<p>
+ Alternatives are special in terms of attribute handling. The alternative
+ to be selected does not only depend on which element succeeded first.
+ Additionally it depends on the type of the attribute supplied to the
+ alternative generator. The attribute type supplied at <span class="emphasis"><em>runtime</em></span>
+ (i.e. what is stored in the variant) narrows the set of considered alternatives
+ to those being compatible attribute wise. See below for an example of
+ this behavior.
+ </p>
+<a name="spirit.karma.reference.operator.alternative.complexity"></a><h6>
+<a name="id1207221"></a>
+ <a class="link" href="alternative.html#spirit.karma.reference.operator.alternative.complexity">Complexity</a>
+ </h6>
+<div class="blockquote"><blockquote class="blockquote">
+<p>
+ </p>
+<p>
+ The oveall complexity of the alternative generator is defined by
+ the sum of the complexities of its elements. The complexity of the
+ alternative itself is O(N), where N is the number of elements in
+ the alternative.
+ </p>
+<p>
+ </p>
+</blockquote></div>
+<a name="spirit.karma.reference.operator.alternative.example"></a><h6>
+<a name="id1207245"></a>
+ <a class="link" href="alternative.html#spirit.karma.reference.operator.alternative.example">Example</a>
+ </h6>
+<p>
+ Some includes:
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">karma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">phoenix_core</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">phoenix_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">std_pair</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">string</span><span class="special">></span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+ All code snippets below use this common test function:
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">G</span><span class="special">></span>
+<span class="keyword">void</span> <span class="identifier">test_generator</span><span class="special">(</span><span class="keyword">char</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">expected</span><span class="special">,</span> <span class="identifier">G</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">g</span><span class="special">)</span>
+<span class="special">{</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">s</span><span class="special">;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">back_insert_iterator</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">></span> <span class="identifier">out</span><span class="special">(</span><span class="identifier">s</span><span class="special">);</span>
+ <span class="keyword">if</span> <span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">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">g</span><span class="special">)</span> <span class="special">&&</span> <span class="identifier">str</span> <span class="special">==</span> <span class="identifier">expected</span><span class="special">)</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"ok"</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+ <span class="keyword">else</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"fail"</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+ Some using declarations:
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">karma</span><span class="special">::</span><span class="identifier">generate</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">karma</span><span class="special">::</span><span class="identifier">double_</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">karma</span><span class="special">::</span><span class="identifier">string</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+ Basic usage of an alternative. While being only the second alternative,
+ the <code class="computeroutput"><span class="identifier">double_</span></code> generator
+ is chosen for output formatting because the supplied attribute type is
+ not compatible (i.e. not convertible) to the attribute type of the <code class="computeroutput"><span class="identifier">string</span></code> alternative.
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">variant</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="keyword">double</span><span class="special">></span> <span class="identifier">v</span><span class="special">(</span><span class="number">1.0</span><span class="special">);</span>
+<span class="identifier">test_generator_attr</span><span class="special">(</span><span class="string">"1.0"</span><span class="special">,</span> <span class="identifier">string</span> <span class="special">|</span> <span class="identifier">double_</span><span class="special">,</span> <span class="identifier">v</span><span class="special">);</span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2001-2009 Joel
+ de Guzman, Hartmut Kaiser<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="sequence.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../auxiliary.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: trunk/libs/spirit/doc/html/spirit/karma/reference/operator/sequence.html
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/operator/sequence.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -0,0 +1,318 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Sequences (operator<<())</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="../operator.html" title="Operator">
+<link rel="prev" href="../operator.html" title="Operator">
+<link rel="next" href="alternative.html" title="Alternatives (operator|())">
+</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="../operator.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator.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="alternative.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" title="Sequences (operator<<())">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="spirit.karma.reference.operator.sequence"></a><a class="link" href="sequence.html" title="Sequences (operator<<())"> Sequences
+ (<code class="computeroutput"><span class="keyword">operator</span><span class="special"><<()</span></code>)</a>
+</h5></div></div></div>
+<a name="spirit.karma.reference.operator.sequence.description"></a><h6>
+<a name="id1204546"></a>
+ <a class="link" href="sequence.html#spirit.karma.reference.operator.sequence.description">Description</a>
+ </h6>
+<p>
+ Generator sequences are used to consecutively combine different, more
+ primitive generators. All generators in a sequence are invoked from left
+ to right as long as they succeed.
+ </p>
+<a name="spirit.karma.reference.operator.sequence.header"></a><h6>
+<a name="id1204563"></a>
+ <a class="link" href="sequence.html#spirit.karma.reference.operator.sequence.header">Header</a>
+ </h6>
+<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/operator/sequence.hpp>
+</span><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">karma_sequence</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ </p>
+<a name="spirit.karma.reference.operator.sequence.model_of"></a><h6>
+<a name="id1204637"></a>
+ <a class="link" href="sequence.html#spirit.karma.reference.operator.sequence.model_of">Model
+ of</a>
+ </h6>
+<div class="blockquote"><blockquote class="blockquote">
+<p>
+ </p>
+<p>
+ <a class="link" href="../generator_concepts/narygenerator.html" title="NaryGenerator"><code class="computeroutput"><span class="identifier">NaryGenerator</span></code></a>
+ </p>
+<p>
+ </p>
+</blockquote></div>
+<a name="spirit.karma.reference.operator.sequence.expression_semantics"></a><h6>
+<a name="id1204673"></a>
+ <a class="link" href="sequence.html#spirit.karma.reference.operator.sequence.expression_semantics">Expression
+ Semantics</a>
+ </h6>
+<p>
+ Semantics of an expression is defined only where it differs from, or
+ is not defined in <a class="link" href="../generator_concepts/narygenerator.html" title="NaryGenerator"><code class="computeroutput"><span class="identifier">NaryGenerator</span></code></a>.
+ </p>
+<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">a</span> <span class="special"><<</span>
+ <span class="identifier">b</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The generators <code class="computeroutput"><span class="identifier">a</span></code>
+ and <code class="computeroutput"><span class="identifier">b</span></code> are executed
+ sequentially from left to right and as long as they succeed.
+ A failed generator stops the execution of the entire sequence
+ and makes the sequence fail as well.
+ </p>
+ </td>
+</tr></tbody>
+</table></div>
+<p>
+ It is important to note, that sequences don't perform any buffering of
+ the output generated by its elements. That means that any failing sequence
+ might have already generated some output, which is <span class="emphasis"><em>not</em></span>
+ rolled back.
+ </p>
+<div class="tip" title="Tip"><table border="0" summary="Tip">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../../../images/tip.png"></td>
+<th align="left">Tip</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+ The only compound generators performing buffering are <a class="link" href="alternative.html" title="Alternatives (operator|())">alternative
+ (<code class="computeroutput"><span class="special">|</span></code>)</a> generators.
+ This allows to force a sequence to behave as if it did buffering by
+ wrapping it into an alternative:
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><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="keyword">false</span><span class="special">)</span></pre>
+<p>
+ </p>
+<p>
+ which will <span class="emphasis"><em>not</em></span> generate any output in case of
+ a failing sequence. Here is why: if the first alternative (our sequence)
+ fails the alternative discards any accumulated output and tries the
+ second alternative, which will always fail; if the first alternative
+ succeeds, the <a class="link" href="../auxiliary/eps.html" title="eps"><code class="computeroutput"><span class="identifier">eps</span></code></a> generator is never executed.
+ </p>
+</td></tr>
+</table></div>
+<a name="spirit.karma.reference.operator.sequence.attributes"></a><h6>
+<a name="id1204877"></a>
+ <a class="link" href="sequence.html#spirit.karma.reference.operator.sequence.attributes">Attributes</a>
+ </h6>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Expression
+ </p>
+ </th>
+<th>
+ <p>
+ Attribute
+ </p>
+ </th>
+</tr></thead>
+<tbody><tr>
+<td>
+ <p>
+ sequence (<code class="computeroutput"><span class="special"><<</span></code>)
+ </p>
+ </td>
+<td>
+ <p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">B</span> <span class="special">--></span> <span class="special">(</span><span class="identifier">a</span> <span class="special"><<</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span>
+<span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="special">(</span><span class="identifier">a</span> <span class="special"><<</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">A</span>
+<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">B</span> <span class="special">--></span> <span class="special">(</span><span class="identifier">a</span> <span class="special"><<</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">B</span>
+<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="special">(</span><span class="identifier">a</span> <span class="special"><<</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">Unused</span>
+
+<span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="special">(</span><span class="identifier">a</span> <span class="special"><<</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span>
+<span class="identifier">a</span><span class="special">:</span> <span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">>,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="special">(</span><span class="identifier">a</span> <span class="special"><<</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span>
+<span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span> <span class="special">--></span> <span class="special">(</span><span class="identifier">a</span> <span class="special"><<</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span>
+<span class="identifier">a</span><span class="special">:</span> <span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">>,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span> <span class="special">--></span> <span class="special">(</span><span class="identifier">a</span> <span class="special"><<</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></pre>
+<p>
+ </p>
+ </td>
+</tr></tbody>
+</table></div>
+<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 align="left" valign="top">
+<p>
+ The table above uses <code class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span></code> and <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></code> as placeholders only.
+ </p>
+<p>
+ The notation <code class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span></code> stands for <span class="emphasis"><em>any fusion
+ sequence of two elements</em></span>, where <code class="computeroutput"><span class="identifier">A</span></code>
+ is the type of its first element and <code class="computeroutput"><span class="identifier">B</span></code>
+ is the type of its second element.
+ </p>
+<p>
+ The notation of <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></code> stands for <span class="emphasis"><em>any STL container</em></span>
+ holding elements of type <code class="computeroutput"><span class="identifier">A</span></code>.
+ </p>
+</td></tr>
+</table></div>
+<p>
+ The attribute composition and propagation rules as shown in the table
+ above make sequences somewhat special as - if all elements have the same
+ attribute type - they can operate in two modes: consuming fusion sequences
+ and consuming STL containers. The selected mode depends on the type of
+ the attribute supplied
+ </p>
+<a name="spirit.karma.reference.operator.sequence.complexity"></a><h6>
+<a name="id1205675"></a>
+ <a class="link" href="sequence.html#spirit.karma.reference.operator.sequence.complexity">Complexity</a>
+ </h6>
+<div class="blockquote"><blockquote class="blockquote">
+<p>
+ </p>
+<p>
+ The oveall complexity of the sequence generator is defined by the
+ sum of the complexities of its elements. The complexity of the sequence
+ itself is O(N), where N is the number of elements in the sequence.
+ </p>
+<p>
+ </p>
+</blockquote></div>
+<a name="spirit.karma.reference.operator.sequence.example"></a><h6>
+<a name="id1205699"></a>
+ <a class="link" href="sequence.html#spirit.karma.reference.operator.sequence.example">Example</a>
+ </h6>
+<p>
+ Some includes:
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">karma</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">phoenix_core</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">phoenix_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">fusion</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">std_pair</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">string</span><span class="special">></span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+ All code snippets below use this common test function:
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">G</span><span class="special">></span>
+<span class="keyword">void</span> <span class="identifier">test_generator</span><span class="special">(</span><span class="keyword">char</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">expected</span><span class="special">,</span> <span class="identifier">G</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">g</span><span class="special">)</span>
+<span class="special">{</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">s</span><span class="special">;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">back_insert_iterator</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">></span> <span class="identifier">out</span><span class="special">(</span><span class="identifier">s</span><span class="special">);</span>
+ <span class="keyword">if</span> <span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">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">g</span><span class="special">)</span> <span class="special">&&</span> <span class="identifier">str</span> <span class="special">==</span> <span class="identifier">expected</span><span class="special">)</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"ok"</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+ <span class="keyword">else</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"fail"</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+ Some using declarations:
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">karma</span><span class="special">::</span><span class="identifier">generate</span><span class="special">;</span>
+<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">karma</span><span class="special">::</span><span class="identifier">double_</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+ Basic usage of a sequence:
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="identifier">test_generator_attr</span><span class="special">(</span><span class="string">"1.0,2.0"</span><span class="special">,</span> <span class="identifier">double_</span> <span class="special"><<</span> <span class="char">','</span> <span class="special"><<</span> <span class="identifier">double_</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special">(</span><span class="number">1.0</span><span class="special">,</span> <span class="number">2.0</span><span class="special">));</span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2001-2009 Joel
+ de Guzman, Hartmut Kaiser<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../operator.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator.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="alternative.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Modified: trunk/libs/spirit/doc/html/spirit/karma/tutorials.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/tutorials.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/tutorials.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -32,6 +32,8 @@
<dt><span class="section">Semantic Actions</span></dt>
<dt><span class="section"><a href="tutorials/karma_complex.html"> Complex - A
first more complex generator</a></span></dt>
+<dt><span class="section"><a href="tutorials/karma_attributes.html"> Understanding
+ Generator Attributes</a></span></dt>
<dt><span class="section"><a href="tutorials/karma_easier_complex.html"> Complex
- Made easier</a></span></dt>
</dl></div>
Added: trunk/libs/spirit/doc/html/spirit/karma/tutorials/karma_attributes.html
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/doc/html/spirit/karma/tutorials/karma_attributes.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -0,0 +1,257 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Understanding Generator Attributes</title>
+<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
+<link rel="up" href="../tutorials.html" title="Tutorials">
+<link rel="prev" href="karma_complex.html" title="Complex - A first more complex generator">
+<link rel="next" href="karma_easier_complex.html" title="Complex - Made easier">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="karma_complex.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="karma_easier_complex.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" title="Understanding Generator Attributes">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="spirit.karma.tutorials.karma_attributes"></a><a class="link" href="karma_attributes.html" title="Understanding Generator Attributes"> Understanding
+ Generator Attributes</a>
+</h4></div></div></div>
+<a name="spirit.karma.tutorials.karma_attributes.attributes_of_primitive_generators"></a><h6>
+<a name="id1185968"></a>
+ <a class="link" href="karma_attributes.html#spirit.karma.tutorials.karma_attributes.attributes_of_primitive_generators">Attributes
+ of Primitive Generators</a>
+ </h6>
+<p>
+ Before we can start simplifying the complex number example from the previous
+ section we need to introduce the notion of generator attributes. Every
+ generator component in <span class="emphasis"><em>Spirit.Karma</em></span> exposes a specific
+ attribute type. We have already seen that the attribute type of the <code class="computeroutput"><span class="identifier">double_</span></code> generator is <code class="computeroutput"><span class="keyword">double</span></code>.
+ Other primitive generator components have other intuitive attribute types,
+ such as for instance <code class="computeroutput"><span class="identifier">int_</span></code>
+ which has <code class="computeroutput"><span class="keyword">int</span></code>, or <code class="computeroutput"><span class="identifier">ascii</span><span class="special">::</span><span class="identifier">char_</span></code> which has <code class="computeroutput"><span class="keyword">char</span></code>.
+ For a full list of available generator primitives and their attribute types
+ please see the section <a class="link" href="../quick_reference/predefined_primitive_generators.html" title="Predefined Primitive Generators">Predefined
+ Primitive Generators</a>.
+ </p>
+<p>
+ The attribute type of a generator defines what data types this generator
+ is able to consume in order to produce its output. For primitive generators
+ the normal C++ convertibility rules apply. Any data type convertible to
+ the attribute type of a primitive generator can be used to provide the
+ data to generate. As an example, it is possible to use an integer value
+ in conjunction with a <code class="computeroutput"><span class="identifier">double_</span></code>
+ generator:
+ </p>
+<pre class="programlisting"><span class="comment">// the following generates: 1.0
+</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"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">></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="identifier">double_</span><span class="special">,</span> <span class="number">1</span><span class="special">);</span>
+</pre>
+<a name="spirit.karma.tutorials.karma_attributes.attributes_of_compound_generators"></a><h6>
+<a name="id1186162"></a>
+ <a class="link" href="karma_attributes.html#spirit.karma.tutorials.karma_attributes.attributes_of_compound_generators">Attributes
+ of Compound Generators</a>
+ </h6>
+<p>
+ <span class="emphasis"><em>Spirit.Karma</em></span> implements 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 is
+ for instance:
+ </p>
+<pre class="programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">B</span> <span class="special">--></span> <span class="special">(</span><span class="identifier">a</span> <span class="special"><<</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span>
+</pre>
+<p>
+ which reads as:
+ </p>
+<div class="blockquote"><blockquote class="blockquote">
+<p>
+ </p>
+<p>
+ Given <code class="computeroutput"><span class="identifier">a</span></code> and <code class="computeroutput"><span class="identifier">b</span></code> are generators, and <code class="computeroutput"><span class="identifier">A</span></code> is the attribute type of <code class="computeroutput"><span class="identifier">a</span></code>, and <code class="computeroutput"><span class="identifier">B</span></code>
+ is the attribute type of <code class="computeroutput"><span class="identifier">b</span></code>,
+ then the attribute type of <code class="computeroutput"><span class="identifier">a</span>
+ <span class="special"><<</span> <span class="identifier">b</span></code>
+ will be <code class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span></code>.
+ </p>
+<p>
+ </p>
+</blockquote></div>
+<div class="note" title="Note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+ The notation <code class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span></code>
+ is used as a placeholder expression for any fusion sequence holding the
+ types A and B, such as <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span></code> or <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span></code> (for more information see Fusion).
+ </p></td></tr>
+</table></div>
+<p>
+ As you can see, in order for a type to be compatible with the attribute
+ type of a <span class="emphasis"><em>Spirit.Karma</em></span> compound generator it has to
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ either be convertible to the attribute type,
+ </li>
+<li class="listitem">
+ or it has to expose certain functionalities, i.e. it needs to conform
+ to a concept compatible with the generator.
+ </li>
+</ul></div>
+<p>
+ Each compound generator implements its own set of attribute propagation
+ rules. For a full list of how the different compound generators consume
+ attributes see the section <a class="link" href="../quick_reference/compound_attribute_rules.html" title="Compound Attribute Rules">Compound
+ Attribute Rules</a>.
+ </p>
+<a name="spirit.karma.tutorials.karma_attributes.the_attribute_of_sequence_generators"></a><h6>
+<a name="id1186506"></a>
+ <a class="link" href="karma_attributes.html#spirit.karma.tutorials.karma_attributes.the_attribute_of_sequence_generators">The
+ Attribute of Sequence Generators</a>
+ </h6>
+<p>
+ Sequences require an attribute type to expose the concept of a fusion sequence,
+ where all elements of that fusion sequence have to be compatible with the
+ corresponding element of the <span class="emphasis"><em>Spirit.Karma</em></span> generator
+ sequence. For example, the expression:
+ </p>
+<pre class="programlisting"><span class="identifier">double_</span> <span class="special"><<</span> <span class="identifier">double_</span>
+</pre>
+<p>
+ is able to consume any fusion sequence holding two types, where both types
+ have to be convertible to <code class="computeroutput"><span class="keyword">double</span></code>.
+ The first element of the fusion sequence has to be compatible with the
+ attribute of the first <code class="computeroutput"><span class="identifier">double_</span></code>
+ (i.e. it needs to be convertible to a <code class="computeroutput"><span class="keyword">double</span></code>),
+ and the second element of the fusion sequence has to be compatible with
+ the attribute of the second <code class="computeroutput"><span class="identifier">double_</span></code>
+ (i.e. convertible to a <code class="computeroutput"><span class="keyword">double</span></code>
+ as well). If we assume to have an instance of a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">></span></code>, we can directly use the expression
+ above:
+ </p>
+<pre class="programlisting"><span class="comment">// the following generates: 1.0 2.0
+</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"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">></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="identifier">double_</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">space</span><span class="special">,</span> <span class="comment">// delimiter grammar
+</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special">(</span><span class="number">1.0</span><span class="special">,</span> <span class="number">2.0</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">space</span></code> generator
+ is used as the delimiter, allowing to automatically insert delimiting spaces
+ in between all primitives).
+ </p>
+<div class="tip" title="Tip"><table border="0" summary="Tip">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../../images/tip.png"></td>
+<th align="left">Tip</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+ <span class="bold"><strong>For sequences only:</strong></span> <span class="emphasis"><em>Spirit.Karma</em></span>
+ exposes a set of API functions usable mainly with sequences. Very much
+ like the functions of the <code class="computeroutput"><span class="identifier">printf</span></code>
+ family these functions allow to pass the attributes for each of the elements
+ of the sequence separately. Using the corresponding overload of <span class="emphasis"><em>Karma's</em></span>
+ <code class="computeroutput"><span class="identifier">generate</span><span class="special">()</span></code>
+ the expression above could be rewritten as:
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><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"><<</span> <span class="identifier">double_</span><span class="special">,</span> <span class="identifier">space</span><span class="special">,</span> <span class="number">1.0</span><span class="special">,</span> <span class="number">2.0</span><span class="special">);</span></pre>
+<p>
+ </p>
+<p>
+ where the first attribute (<code class="computeroutput"><span class="number">1.0</span></code>)
+ is used for the first <code class="computeroutput"><span class="identifier">double_</span></code>,
+ and the second attribute (<code class="computeroutput"><span class="number">2.0</span></code>)
+ is used for the second <code class="computeroutput"><span class="identifier">double_</span></code>.
+ </p>
+</td></tr>
+</table></div>
+<a name="spirit.karma.tutorials.karma_attributes.more_about_attributes_of_compound_generators"></a><h6>
+<a name="id1186925"></a>
+ <a class="link" href="karma_attributes.html#spirit.karma.tutorials.karma_attributes.more_about_attributes_of_compound_generators">More
+ About Attributes of Compound Generators</a>
+ </h6>
+<p>
+ While generating output it is often desirable to combine some constant
+ elements with variable parts. For instance, if we go back to our example
+ of formatting a complex number, we need to write it as <code class="computeroutput"><span class="special">(</span><span class="identifier">re</span><span class="special">,</span> <span class="identifier">im</span><span class="special">)</span></code>,
+ where <code class="computeroutput"><span class="identifier">re</span></code> and <code class="computeroutput"><span class="identifier">im</span></code> are the variables representing the
+ real and imaginary parts of our complex number. As we have already seen,
+ this can be achieved by writing
+ </p>
+<pre class="programlisting"><span class="char">'('</span> <span class="special"><<</span> <span class="identifier">double_</span> <span class="special"><<</span> <span class="string">", "</span> <span class="special"><<</span> <span class="identifier">double_</span> <span class="special"><<</span> <span class="char">')'</span>
+</pre>
+<p>
+ Fortunately, literals (such as <code class="computeroutput"><span class="char">'('</span></code>
+ and <code class="computeroutput"><span class="string">", "</span></code>) do not
+ expose any attribute (well actually, they do expose the special type <code class="computeroutput"><span class="identifier">unused_type</span></code>, but in this context <code class="computeroutput"><span class="identifier">unused_type</span></code> is interpreted as if the
+ generator does not expose any attribute at all). It is very important to
+ understand that the literals don't consume any of the elements of a fusion
+ sequence passed to this generator sequence. The following example shows
+ this:
+ </p>
+<pre class="programlisting"><span class="comment">// the following generates: (1.0, 2.0)
+</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"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">></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"><<</span> <span class="identifier">double_</span> <span class="special"><<</span> <span class="string">", "</span> <span class="special"><<</span> <span class="identifier">double_</span> <span class="special"><<</span> <span class="char">')'</span><span class="special">,</span> <span class="comment">// generator grammar (format description)
+</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special">(</span><span class="number">1.0</span><span class="special">,</span> <span class="number">2.0</span><span class="special">));</span> <span class="comment">// data to use as the attribute
+</span></pre>
+<p>
+ This behavior should be familiar as it conforms to the way other output
+ formatting libraries such as <code class="computeroutput"><span class="identifier">printf</span></code>
+ or <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">format</span></code> are handling their variable parts.
+ In this context you can think about <span class="emphasis"><em>Spirit.Karma</em></span>'s
+ primitive generators (such as the <code class="computeroutput"><span class="identifier">double_</span></code>
+ above) as of being placeholders for the attribute values to print.
+ </p>
+<a name="spirit.karma.tutorials.karma_attributes.attributes_of_rules_and_grammars"></a><h6>
+<a name="id1187270"></a>
+ <a class="link" href="karma_attributes.html#spirit.karma.tutorials.karma_attributes.attributes_of_rules_and_grammars">Attributes
+ of Rules and Grammars</a>
+ </h6>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ explicit attribute type
+ </li>
+<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>
+<td align="right"><div class="copyright-footer">Copyright © 2001-2009 Joel
+ de Guzman, Hartmut Kaiser<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="karma_complex.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="karma_easier_complex.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Modified: trunk/libs/spirit/doc/html/spirit/karma/tutorials/karma_complex.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/tutorials/karma_complex.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/tutorials/karma_complex.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -7,7 +7,7 @@
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../tutorials.html" title="Tutorials">
<link rel="prev" href="semantic_actions.html" title="Semantic Actions">
-<link rel="next" href="karma_easier_complex.html" title="Complex - Made easier">
+<link rel="next" href="karma_attributes.html" title="Understanding Generator Attributes">
</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="semantic_actions.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="karma_easier_complex.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="semantic_actions.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="karma_attributes.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" title="Complex - A first more complex generator">
<div class="titlepage"><div><div><h4 class="title">
@@ -158,8 +158,8 @@
<p>
These semantic actions are easy to understand but have the unexpected side
effect of being slightly less efficient than it could be. In addition they
- tend to make the formatting grammar less readable. We will see in the next
- section how it is possible to use built in features of <span class="emphasis"><em>Spirit.Karma</em></span>
+ tend to make the formatting grammar less readable. We will see in one of
+ the next sections how it is possible to use built in features of <span class="emphasis"><em>Spirit.Karma</em></span>
to get rid of the semantic actions alltogether.
</p>
</div>
@@ -174,7 +174,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="semantic_actions.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="karma_easier_complex.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="semantic_actions.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="karma_attributes.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
</body>
</html>
Modified: trunk/libs/spirit/doc/html/spirit/karma/tutorials/karma_easier_complex.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/tutorials/karma_easier_complex.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/tutorials/karma_easier_complex.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -6,7 +6,7 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../tutorials.html" title="Tutorials">
-<link rel="prev" href="karma_complex.html" title="Complex - A first more complex generator">
+<link rel="prev" href="karma_attributes.html" title="Understanding Generator Attributes">
<link rel="next" href="../quick_reference.html" title="Quick Reference">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,7 +20,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="karma_complex.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../quick_reference.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="karma_attributes.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../quick_reference.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
<div class="section" title="Complex - Made easier">
<div class="titlepage"><div><div><h4 class="title">
@@ -28,9 +28,9 @@
- Made easier</a>
</h4></div></div></div>
<p>
- In the previous section we showed how to format a complex number (i.e.
- a pair of doubles). In this section we will build on this example with
- the goal to avoid to use semantic actions in the format specification.
+ In one of the previous sections we showed how to format a complex number
+ (i.e. a pair of doubles). In this section we will build on this example
+ with the goal to avoid to use semantic actions in the format specification.
Let's have a look at the resulting code first, trying to understand it
afterwards.
</p>
@@ -46,7 +46,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="karma_complex.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../quick_reference.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="karma_attributes.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../quick_reference.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
</body>
</html>
Modified: trunk/libs/spirit/doc/html/spirit/karma/tutorials/quick_start.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/tutorials/quick_start.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/tutorials/quick_start.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -27,7 +27,7 @@
<a name="spirit.karma.tutorials.quick_start"></a><a class="link" href="quick_start.html" title="Quick Start">Quick Start</a>
</h4></div></div></div>
<a name="spirit.karma.tutorials.quick_start.spirit_karma___what_s_that_"></a><h6>
-<a name="id1108212"></a>
+<a name="id1180665"></a>
<a class="link" href="quick_start.html#spirit.karma.tutorials.quick_start.spirit_karma___what_s_that_">Spirit.Karma
- what's that?</a>
</h6>
Modified: trunk/libs/spirit/doc/html/spirit/karma/tutorials/semantic_actions.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/tutorials/semantic_actions.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/tutorials/semantic_actions.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -247,7 +247,7 @@
The examples above can be found here: actions.cpp
</p>
<a name="spirit.karma.tutorials.semantic_actions.phoenix"></a><h6>
-<a name="id1111157"></a>
+<a name="id1183542"></a>
<a class="link" href="semantic_actions.html#spirit.karma.tutorials.semantic_actions.phoenix">Phoenix</a>
</h6>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/karma/tutorials/warming_up.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/tutorials/warming_up.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/tutorials/warming_up.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -31,7 +31,7 @@
We will start from trivial examples, ramping up as we go.
</p>
<a name="spirit.karma.tutorials.warming_up.trivial_example__1_generating_a_number"></a><h6>
-<a name="id1108338"></a>
+<a name="id1180791"></a>
<a class="link" href="warming_up.html#spirit.karma.tutorials.warming_up.trivial_example__1_generating_a_number">Trivial
Example #1 Generating a number</a>
</h6>
@@ -51,7 +51,7 @@
to a floating point generator or parser: <code class="computeroutput"><span class="identifier">double_</span></code>.
</p>
<a name="spirit.karma.tutorials.warming_up.trivial_example__2_generating_two_numbers"></a><h6>
-<a name="id1108381"></a>
+<a name="id1180834"></a>
<a class="link" href="warming_up.html#spirit.karma.tutorials.warming_up.trivial_example__2_generating_two_numbers">Trivial
Example #2 Generating two numbers</a>
</h6>
@@ -89,7 +89,7 @@
</p></td></tr>
</table></div>
<a name="spirit.karma.tutorials.warming_up.trivial_example__3_generating_one_or_more_numbers"></a><h6>
-<a name="id1108466"></a>
+<a name="id1180920"></a>
<a class="link" href="warming_up.html#spirit.karma.tutorials.warming_up.trivial_example__3_generating_one_or_more_numbers">Trivial
Example #3 Generating one or more numbers</a>
</h6>
@@ -114,7 +114,7 @@
numbers, if needed.
</p>
<a name="spirit.karma.tutorials.warming_up.trivial_example__4_generating_a_comma_delimited_list_of_numbers"></a><h6>
-<a name="id1108514"></a>
+<a name="id1180968"></a>
<a class="link" href="warming_up.html#spirit.karma.tutorials.warming_up.trivial_example__4_generating_a_comma_delimited_list_of_numbers">Trivial
Example #4 Generating a comma-delimited list of numbers</a>
</h6>
@@ -137,7 +137,7 @@
in the generated output zero or more times.
</p>
<a name="spirit.karma.tutorials.warming_up.let_s_generate_"></a><h6>
-<a name="id1108648"></a>
+<a name="id1181102"></a>
<a class="link" href="warming_up.html#spirit.karma.tutorials.warming_up.let_s_generate_">Let's
Generate!</a>
</h6>
Modified: trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives/lexer_token_values.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives/lexer_token_values.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives/lexer_token_values.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -51,7 +51,7 @@
of the <span class="emphasis"><em>Spirit.Lex</em></span> library.
</p>
<a name="spirit.lex.abstracts.lexer_primitives.lexer_token_values.the_anatomy_of_a_token"></a><h6>
-<a name="id1148496"></a>
+<a name="id1227591"></a>
<a class="link" href="lexer_token_values.html#spirit.lex.abstracts.lexer_primitives.lexer_token_values.the_anatomy_of_a_token">The
Anatomy of a Token</a>
</h6>
@@ -187,7 +187,7 @@
when it is requested for the first time.
</p>
<a name="spirit.lex.abstracts.lexer_primitives.lexer_token_values.the_physiognomy_of_a_token_definition"></a><h6>
-<a name="id1149022"></a>
+<a name="id1228442"></a>
<a class="link" href="lexer_token_values.html#spirit.lex.abstracts.lexer_primitives.lexer_token_values.the_physiognomy_of_a_token_definition">The
Physiognomy of a Token Definition</a>
</h6>
@@ -260,7 +260,7 @@
</td></tr>
</table></div>
<a name="spirit.lex.abstracts.lexer_primitives.lexer_token_values.examples_of_using__link_linkend__spirit_lex_reference_token_class___code__phrase_role__identifier__lexertl_token__phrase__phrase_role__special___lt__gt___phrase___code___link_"></a><h6>
-<a name="id1149277"></a>
+<a name="id1228698"></a>
<a class="link" href="lexer_token_values.html#spirit.lex.abstracts.lexer_primitives.lexer_token_values.examples_of_using__link_linkend__spirit_lex_reference_token_class___code__phrase_role__identifier__lexertl_token__phrase__phrase_role__special___lt__gt___phrase___code___link_">Examples
of using <a class="link" href="../../reference/token_class.html" title="Token Class"><code class="computeroutput"><span class="identifier">lexertl_token</span><span class="special"><></span></code></a></a>
</h6>
Modified: trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_semantic_actions.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_semantic_actions.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_semantic_actions.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -105,7 +105,7 @@
<span class="keyword">void</span> <span class="identifier">f</span> <span class="special">();</span>
</pre>
<a name="spirit.lex.abstracts.lexer_semantic_actions.the_context_of_a_lexer_semantic_action"></a><h6>
-<a name="id1154569"></a>
+<a name="id1233896"></a>
<a class="link" href="lexer_semantic_actions.html#spirit.lex.abstracts.lexer_semantic_actions.the_context_of_a_lexer_semantic_action">The
context of a lexer semantic action</a>
</h6>
@@ -120,7 +120,7 @@
of the available functionality.
</p>
<div class="table">
-<a name="id1154590"></a><p class="title"><b>Table 9. Functions exposed by any context passed to a lexer
+<a name="id1233917"></a><p class="title"><b>Table 9. Functions exposed by any context passed to a lexer
semantic action</b></p>
<div class="table-contents"><table class="table" summary="Functions exposed by any context passed to a lexer
semantic action">
@@ -241,7 +241,7 @@
</table></div>
</div>
<br class="table-break"><a name="spirit.lex.abstracts.lexer_semantic_actions.lexer_semantic_actions_using_phoenix"></a><h6>
-<a name="id1155108"></a>
+<a name="id1234457"></a>
<a class="link" href="lexer_semantic_actions.html#spirit.lex.abstracts.lexer_semantic_actions.lexer_semantic_actions_using_phoenix">Lexer
Semantic Actions Using Phoenix</a>
</h6>
@@ -253,7 +253,7 @@
predefined Spirit placeholders:
</p>
<div class="table">
-<a name="id1155131"></a><p class="title"><b>Table 10. Predefined Phoenix placeholders for lexer semantic
+<a name="id1234480"></a><p class="title"><b>Table 10. Predefined Phoenix placeholders for lexer semantic
actions</b></p>
<div class="table-contents"><table class="table" summary="Predefined Phoenix placeholders for lexer semantic
actions">
@@ -384,7 +384,7 @@
table lists the available support functions and describes their functionality:
</p>
<div class="table">
-<a name="id1155409"></a><p class="title"><b>Table 11. Support functions usable from Phoenix expressions
+<a name="id1234758"></a><p class="title"><b>Table 11. Support functions usable from Phoenix expressions
inside lexer semantic actions</b></p>
<div class="table-contents"><table class="table" summary="Support functions usable from Phoenix expressions
inside lexer semantic actions">
Modified: trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_states.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_states.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_states.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -27,17 +27,17 @@
<a name="spirit.lex.abstracts.lexer_states"></a><a class="link" href="lexer_states.html" title="Lexer States"> Lexer States</a>
</h4></div></div></div>
<a name="spirit.lex.abstracts.lexer_states.controlling_the_lexer_state_from_lexer_semantic_actions"></a><h6>
-<a name="id1158406"></a>
+<a name="id1237653"></a>
<a class="link" href="lexer_states.html#spirit.lex.abstracts.lexer_states.controlling_the_lexer_state_from_lexer_semantic_actions">Controlling
the Lexer State from Lexer Semantic Actions</a>
</h6>
<a name="spirit.lex.abstracts.lexer_states.controlling_the_lexer_state_from_parser_semantic_actions"></a><h6>
-<a name="id1158419"></a>
+<a name="id1237667"></a>
<a class="link" href="lexer_states.html#spirit.lex.abstracts.lexer_states.controlling_the_lexer_state_from_parser_semantic_actions">Controlling
the Lexer State from Parser Semantic Actions</a>
</h6>
<a name="spirit.lex.abstracts.lexer_states.using_a_lexer_state_for_the_skip_parser"></a><h6>
-<a name="id1158432"></a>
+<a name="id1237680"></a>
<a class="link" href="lexer_states.html#spirit.lex.abstracts.lexer_states.using_a_lexer_state_for_the_skip_parser">Using
a Lexer State for the Skip Parser</a>
</h6>
Modified: trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_static_model.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_static_model.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_static_model.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -176,7 +176,7 @@
<p>
</p>
<a name="spirit.lex.abstracts.lexer_static_model.generating_the_static_analyzer"></a><h6>
-<a name="id1156959"></a>
+<a name="id1236208"></a>
<a class="link" href="lexer_static_model.html#spirit.lex.abstracts.lexer_static_model.generating_the_static_analyzer">Generating
the Static Analyzer</a>
</h6>
@@ -225,7 +225,7 @@
the next topic (the full generated code can be viewed here).
</p>
<a name="spirit.lex.abstracts.lexer_static_model.modifying_the_dynamic_analyzer"></a><h6>
-<a name="id1157287"></a>
+<a name="id1236654"></a>
<a class="link" href="lexer_static_model.html#spirit.lex.abstracts.lexer_static_model.modifying_the_dynamic_analyzer">Modifying
the Dynamic Analyzer</a>
</h6>
Modified: trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_tokenizing.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_tokenizing.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_tokenizing.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -28,7 +28,7 @@
Input Data</a>
</h4></div></div></div>
<a name="spirit.lex.abstracts.lexer_tokenizing.the_tokenize_function"></a><h6>
-<a name="id1149952"></a>
+<a name="id1229225"></a>
<a class="link" href="lexer_tokenizing.html#spirit.lex.abstracts.lexer_tokenizing.the_tokenize_function">The
tokenize function</a>
</h6>
@@ -228,7 +228,7 @@
</dl>
</div>
<a name="spirit.lex.abstracts.lexer_tokenizing.the_generate_static_function"></a><h6>
-<a name="id1153948"></a>
+<a name="id1233275"></a>
<a class="link" href="lexer_tokenizing.html#spirit.lex.abstracts.lexer_tokenizing.the_generate_static_function">The
generate_static function</a>
</h6>
Modified: trunk/libs/spirit/doc/html/spirit/lex/lexer_introduction.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/lexer_introduction.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/lexer_introduction.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -56,7 +56,7 @@
</li>
</ul></div>
<a name="spirit.lex.lexer_introduction.why_use_a_separate_lexer_"></a><h5>
-<a name="id1136081"></a>
+<a name="id1217403"></a>
<a class="link" href="lexer_introduction.html#spirit.lex.lexer_introduction.why_use_a_separate_lexer_">Why
Use a Separate Lexer?</a>
</h5>
@@ -155,7 +155,7 @@
grammar recognizers.
</p>
<a name="spirit.lex.lexer_introduction.advantages_of_using__emphasis_spirit_lex__emphasis_"></a><h5>
-<a name="id1136290"></a>
+<a name="id1217612"></a>
<a class="link" href="lexer_introduction.html#spirit.lex.lexer_introduction.advantages_of_using__emphasis_spirit_lex__emphasis_">Advantages
of using <span class="emphasis"><em>Spirit.Lex</em></span></a>
</h5>
@@ -203,7 +203,7 @@
application.
</p>
<a name="spirit.lex.lexer_introduction.the_library_structure_of__emphasis_spirit_lex__emphasis_"></a><h5>
-<a name="id1136393"></a>
+<a name="id1217715"></a>
<a class="link" href="lexer_introduction.html#spirit.lex.lexer_introduction.the_library_structure_of__emphasis_spirit_lex__emphasis_">The
Library Structure of <span class="emphasis"><em>Spirit.Lex</em></span></a>
</h5>
Modified: trunk/libs/spirit/doc/html/spirit/lex/reference/concepts/lexer.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/reference/concepts/lexer.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/reference/concepts/lexer.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -27,7 +27,7 @@
<a name="spirit.lex.reference.concepts.lexer"></a><a class="link" href="lexer.html" title="Lexer">Lexer</a>
</h5></div></div></div>
<div class="table">
-<a name="id1158484"></a><p class="title"><b>Table 12. Regular expressions support</b></p>
+<a name="id1237731"></a><p class="title"><b>Table 12. Regular expressions support</b></p>
<div class="table-contents"><table class="table" summary="Regular expressions support">
<colgroup>
<col>
@@ -502,7 +502,7 @@
</p></td></tr>
</table></div>
<a name="spirit.lex.reference.concepts.lexer.regular_expression_precedence"></a><h6>
-<a name="id1160062"></a>
+<a name="id1241453"></a>
<a class="link" href="lexer.html#spirit.lex.reference.concepts.lexer.regular_expression_precedence">Regular
Expression Precedence</a>
</h6>
@@ -521,7 +521,7 @@
</li>
</ul></div>
<a name="spirit.lex.reference.concepts.lexer.macros"></a><h6>
-<a name="id1160165"></a>
+<a name="id1241556"></a>
<a class="link" href="lexer.html#spirit.lex.reference.concepts.lexer.macros">Macros</a>
</h6>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_class.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_class.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_class.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -27,22 +27,22 @@
<a name="spirit.lex.reference.lexer_class"></a><a class="link" href="lexer_class.html" title="Lexer Class">Lexer Class</a>
</h4></div></div></div>
<a name="spirit.lex.reference.lexer_class.the_lexertl_lexer_class_implementing_the_dynamic_model"></a><h6>
-<a name="id1161933"></a>
+<a name="id1241679"></a>
<a class="link" href="lexer_class.html#spirit.lex.reference.lexer_class.the_lexertl_lexer_class_implementing_the_dynamic_model">The
lexertl_lexer Class Implementing the Dynamic Model</a>
</h6>
<a name="spirit.lex.reference.lexer_class.the_lexertl_actor_lexer_class_implementing_the_dynamic_model"></a><h6>
-<a name="id1161947"></a>
+<a name="id1241692"></a>
<a class="link" href="lexer_class.html#spirit.lex.reference.lexer_class.the_lexertl_actor_lexer_class_implementing_the_dynamic_model">The
lexertl_actor_lexer Class Implementing the Dynamic Model</a>
</h6>
<a name="spirit.lex.reference.lexer_class.the_lexertl_static_lexer_class_implementing_the_static_model"></a><h6>
-<a name="id1161960"></a>
+<a name="id1241705"></a>
<a class="link" href="lexer_class.html#spirit.lex.reference.lexer_class.the_lexertl_static_lexer_class_implementing_the_static_model">The
lexertl_static_lexer Class Implementing the Static Model</a>
</h6>
<a name="spirit.lex.reference.lexer_class.the_lexertl_static_actor_lexer_class_implementing_the_static_model"></a><h6>
-<a name="id1161973"></a>
+<a name="id1241718"></a>
<a class="link" href="lexer_class.html#spirit.lex.reference.lexer_class.the_lexertl_static_actor_lexer_class_implementing_the_static_model">The
lexertl_static_actor_lexer Class Implementing the Static Model</a>
</h6>
Modified: trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart1.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart1.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart1.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -39,7 +39,7 @@
(for the full example code see here: word_count_functor.cpp).
</p>
<a name="spirit.lex.tutorials.lexer_quickstart1.prerequisites"></a><h6>
-<a name="id1138144"></a>
+<a name="id1217984"></a>
<a class="link" href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.prerequisites">Prerequisites</a>
</h6>
<p>
@@ -78,7 +78,7 @@
<p>
</p>
<a name="spirit.lex.tutorials.lexer_quickstart1.defining_tokens"></a><h6>
-<a name="id1138389"></a>
+<a name="id1218229"></a>
<a class="link" href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.defining_tokens">Defining
Tokens</a>
</h6>
@@ -133,7 +133,7 @@
<p>
</p>
<a name="spirit.lex.tutorials.lexer_quickstart1.doing_the_useful_work"></a><h6>
-<a name="id1138698"></a>
+<a name="id1218537"></a>
<a class="link" href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.doing_the_useful_work">Doing
the Useful Work</a>
</h6>
@@ -198,7 +198,7 @@
as well.
</p>
<a name="spirit.lex.tutorials.lexer_quickstart1.pulling_everything_together"></a><h6>
-<a name="id1139197"></a>
+<a name="id1219037"></a>
<a class="link" href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.pulling_everything_together">Pulling
Everything Together</a>
</h6>
@@ -251,7 +251,7 @@
<p>
</p>
<a name="spirit.lex.tutorials.lexer_quickstart1.comparing__emphasis_spirit_lex__emphasis__with__ulink_url__http___flex_sourceforge_net___flex__ulink_"></a><h6>
-<a name="id1140024"></a>
+<a name="id1219984"></a>
<a class="link" href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.comparing__emphasis_spirit_lex__emphasis__with__ulink_url__http___flex_sourceforge_net___flex__ulink_">Comparing
<span class="emphasis"><em>Spirit.Lex</em></span> with Flex</a>
</h6>
Modified: trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart2.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart2.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart2.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -40,7 +40,7 @@
options along the lines (for the full example code see here: word_count_lexer.cpp).
</p>
<a name="spirit.lex.tutorials.lexer_quickstart2.prerequisites"></a><h6>
-<a name="id1141655"></a>
+<a name="id1220759"></a>
<a class="link" href="lexer_quickstart2.html#spirit.lex.tutorials.lexer_quickstart2.prerequisites">Prerequisites</a>
</h6>
<p>
@@ -114,7 +114,7 @@
<p>
</p>
<a name="spirit.lex.tutorials.lexer_quickstart2.semantic_actions_in__emphasis_spirit_lex__emphasis_"></a><h6>
-<a name="id1142304"></a>
+<a name="id1221408"></a>
<a class="link" href="lexer_quickstart2.html#spirit.lex.tutorials.lexer_quickstart2.semantic_actions_in__emphasis_spirit_lex__emphasis_">Semantic
Actions in <span class="emphasis"><em>Spirit.Lex</em></span></a>
</h6>
@@ -173,7 +173,7 @@
Semantic Actions</a>.
</p>
<a name="spirit.lex.tutorials.lexer_quickstart2.associating_token_definitions_with_the_lexer"></a><h6>
-<a name="id1142922"></a>
+<a name="id1222041"></a>
<a class="link" href="lexer_quickstart2.html#spirit.lex.tutorials.lexer_quickstart2.associating_token_definitions_with_the_lexer">Associating
Token Definitions with the Lexer</a>
</h6>
@@ -209,7 +209,7 @@
with the constant defined by <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">lex</span><span class="special">::</span><span class="identifier">min_token_id</span></code>.
</p>
<a name="spirit.lex.tutorials.lexer_quickstart2.pulling_everything_together"></a><h6>
-<a name="id1143210"></a>
+<a name="id1222329"></a>
<a class="link" href="lexer_quickstart2.html#spirit.lex.tutorials.lexer_quickstart2.pulling_everything_together">Pulling
everything together</a>
</h6>
Modified: trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart3.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart3.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart3.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -65,7 +65,7 @@
code see here: word_count.cpp).
</p>
<a name="spirit.lex.tutorials.lexer_quickstart3.prerequisites"></a><h6>
-<a name="id1144214"></a>
+<a name="id1223304"></a>
<a class="link" href="lexer_quickstart3.html#spirit.lex.tutorials.lexer_quickstart3.prerequisites">Prerequisites</a>
</h6>
<p>
@@ -115,7 +115,7 @@
<p>
</p>
<a name="spirit.lex.tutorials.lexer_quickstart3.defining_tokens"></a><h6>
-<a name="id1144645"></a>
+<a name="id1223734"></a>
<a class="link" href="lexer_quickstart3.html#spirit.lex.tutorials.lexer_quickstart3.defining_tokens">Defining
Tokens</a>
</h6>
@@ -168,7 +168,7 @@
<p>
</p>
<a name="spirit.lex.tutorials.lexer_quickstart3.using_token_definition_instances_as_parsers"></a><h6>
-<a name="id1144982"></a>
+<a name="id1225752"></a>
<a class="link" href="lexer_quickstart3.html#spirit.lex.tutorials.lexer_quickstart3.using_token_definition_instances_as_parsers">Using
Token Definition Instances as Parsers</a>
</h6>
@@ -322,7 +322,7 @@
<span class="identifier">size</span><span class="special">(</span><span class="identifier">_1</span><span class="special">)</span></code>.
</p>
<a name="spirit.lex.tutorials.lexer_quickstart3.pulling_everything_together"></a><h6>
-<a name="id1147511"></a>
+<a name="id1226606"></a>
<a class="link" href="lexer_quickstart3.html#spirit.lex.tutorials.lexer_quickstart3.pulling_everything_together">Pulling
Everything Together</a>
</h6>
Modified: trunk/libs/spirit/doc/html/spirit/preface.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/preface.html (original)
+++ trunk/libs/spirit/doc/html/spirit/preface.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -41,11 +41,11 @@
</p>
</blockquote></div>
<a name="spirit.preface.history"></a><h4>
-<a name="id1046723"></a>
+<a name="id1118813"></a>
<a class="link" href="preface.html#spirit.preface.history">History</a>
</h4>
<a name="spirit.preface._emphasis_80s__emphasis_"></a><h4>
-<a name="id1046736"></a>
+<a name="id1118826"></a>
<a class="link" href="preface.html#spirit.preface._emphasis_80s__emphasis_"><span class="emphasis"><em>80s</em></span></a>
</h4>
<p>
@@ -59,7 +59,7 @@
parser. This worked very well.
</p>
<a name="spirit.preface._emphasis_90s__emphasis_"></a><h4>
-<a name="id1046754"></a>
+<a name="id1118844"></a>
<a class="link" href="preface.html#spirit.preface._emphasis_90s__emphasis_"><span class="emphasis"><em>90s</em></span></a>
</h4>
<p>
@@ -97,7 +97,7 @@
here: pre-Spirit.
</p>
<a name="spirit.preface._emphasis_2001_to_2006__emphasis_"></a><h4>
-<a name="id1046796"></a>
+<a name="id1118886"></a>
<a class="link" href="preface.html#spirit.preface._emphasis_2001_to_2006__emphasis_"><span class="emphasis"><em>2001
to 2006</em></span></a>
</h4>
@@ -127,7 +127,7 @@
for design and implementation quality, robustness, and reusability.
</p>
<a name="spirit.preface._emphasis_2007__emphasis_"></a><h4>
-<a name="id1046831"></a>
+<a name="id1118921"></a>
<a class="link" href="preface.html#spirit.preface._emphasis_2007__emphasis_"><span class="emphasis"><em>2007</em></span></a>
</h4>
<p>
@@ -164,7 +164,7 @@
gives you the right ingredients to create a sledgehammer easily.
</p>
<a name="spirit.preface.new_ideas__spirit_v2"></a><h4>
-<a name="id1046907"></a>
+<a name="id1118996"></a>
<a class="link" href="preface.html#spirit.preface.new_ideas__spirit_v2">New Ideas: Spirit V2</a>
</h4>
<p>
@@ -202,7 +202,7 @@
same underlying component library as for the parser and generator libraries.
</p>
<a name="spirit.preface.how_to_use_this_manual"></a><h4>
-<a name="id1046957"></a>
+<a name="id1119047"></a>
<a class="link" href="preface.html#spirit.preface.how_to_use_this_manual">How to use this manual</a>
</h4>
<p>
@@ -233,7 +233,7 @@
icons precede some text to indicate:
</p>
<div class="table">
-<a name="id1047010"></a><p class="title"><b>Table 1. Icons</b></p>
+<a name="id1119100"></a><p class="title"><b>Table 1. Icons</b></p>
<div class="table-contents"><table class="table" summary="Icons">
<colgroup>
<col>
@@ -354,7 +354,7 @@
Tools</a>.
</p>
<a name="spirit.preface.support"></a><h4>
-<a name="id1047251"></a>
+<a name="id1119341"></a>
<a class="link" href="preface.html#spirit.preface.support">Support</a>
</h4>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/qi/quick_reference/compound_attribute_rules.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/quick_reference/compound_attribute_rules.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/quick_reference/compound_attribute_rules.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -41,7 +41,7 @@
<span class="identifier">b</span></code> will be <code class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span></code>.
</p>
<div class="table">
-<a name="id1085923"></a><p class="title"><b>Table 4. compound parser attribute types</b></p>
+<a name="id1158163"></a><p class="title"><b>Table 4. compound parser attribute types</b></p>
<div class="table-contents"><table class="table" summary="compound parser attribute types">
<colgroup>
<col>
@@ -97,7 +97,11 @@
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="special">(</span><span class="identifier">a</span> <span class="special">></span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">A</span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">B</span> <span class="special">--></span> <span class="special">(</span><span class="identifier">a</span> <span class="special">></span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">B</span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="special">(</span><span class="identifier">a</span> <span class="special">></span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">Unused</span>
-<span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="special">(</span><span class="identifier">a</span> <span class="special">></span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></pre>
+
+<span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="special">(</span><span class="identifier">a</span> <span class="special">></span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span>
+<span class="identifier">a</span><span class="special">:</span> <span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">>,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="special">(</span><span class="identifier">a</span> <span class="special">></span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span>
+<span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span> <span class="special">--></span> <span class="special">(</span><span class="identifier">a</span> <span class="special">></span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span>
+<span class="identifier">a</span><span class="special">:</span> <span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">>,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span> <span class="special">--></span> <span class="special">(</span><span class="identifier">a</span> <span class="special">></span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></pre>
<p>
</p>
</td>
@@ -113,8 +117,8 @@
</p>
<pre class="programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">B</span> <span class="special">--></span> <span class="special">(</span><span class="identifier">a</span> <span class="special">|</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">variant</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span>
-<span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="special">(</span><span class="identifier">a</span> <span class="special">|</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">variant</span><span class="special"><</span><span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">A</span><span class="special">></span>
-<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">B</span> <span class="special">--></span> <span class="special">(</span><span class="identifier">a</span> <span class="special">|</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">variant</span><span class="special"><</span><span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span>
+<span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="special">(</span><span class="identifier">a</span> <span class="special">|</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">A</span>
+<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">B</span> <span class="special">--></span> <span class="special">(</span><span class="identifier">a</span> <span class="special">|</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">B</span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="special">(</span><span class="identifier">a</span> <span class="special">|</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">Unused</span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="special">(</span><span class="identifier">a</span> <span class="special">|</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">A</span></pre>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/qi/quick_reference/predefined_primitive_parsers.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/quick_reference/predefined_primitive_parsers.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/quick_reference/predefined_primitive_parsers.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -617,7 +617,7 @@
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">ch</span></code>
+ <a class="link" href="../reference/string/lit_string.html" title="lit/string"><code class="computeroutput"><span class="identifier">ch</span></code></a>
</p>
</td>
<td>
@@ -634,7 +634,7 @@
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">str</span></code>
+ <a class="link" href="../reference/string/lit_string.html" title="lit/string"><code class="computeroutput"><span class="identifier">str</span></code></a>
</p>
</td>
<td>
@@ -651,7 +651,7 @@
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">ch</span><span class="special">)</span></code>
+ <a class="link" href="../reference/string/lit_string.html" title="lit/string"><code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">ch</span><span class="special">)</span></code></a>
</p>
</td>
<td>
@@ -668,7 +668,7 @@
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">str</span><span class="special">)</span></code>
+ <a class="link" href="../reference/string/lit_string.html" title="lit/string"><code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">str</span><span class="special">)</span></code></a>
</p>
</td>
<td>
@@ -685,7 +685,7 @@
<tr>
<td>
<p>
- <code class="computeroutput"><span class="identifier">string</span><span class="special">(</span><span class="identifier">str</span><span class="special">)</span></code>
+ <a class="link" href="../reference/string/lit_string.html" title="lit/string"><code class="computeroutput"><span class="identifier">string</span><span class="special">(</span><span class="identifier">str</span><span class="special">)</span></code></a>
</p>
</td>
<td>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -34,7 +34,7 @@
<code class="computeroutput"><span class="identifier">eps</span></code>, and <code class="computeroutput"><span class="identifier">lazy</span></code> parsers.
</p>
<a name="spirit.qi.reference.auxiliary.module_header"></a><h6>
-<a name="id1096540"></a>
+<a name="id1168925"></a>
<a class="link" href="auxiliary.html#spirit.qi.reference.auxiliary.module_header">Module Header</a>
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/auxiliary.hpp>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/attr.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/attr.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/attr.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -31,7 +31,7 @@
consuming any input
</li></ul></div>
<a name="spirit.qi.reference.auxiliary.attr.description"></a><h6>
-<a name="id1096644"></a>
+<a name="id1169030"></a>
<a class="link" href="attr.html#spirit.qi.reference.auxiliary.attr.description">Description</a>
</h6>
<p>
@@ -42,7 +42,7 @@
an attribute to the parsing process.
</p>
<a name="spirit.qi.reference.auxiliary.attr.header"></a><h6>
-<a name="id1096676"></a>
+<a name="id1169061"></a>
<a class="link" href="attr.html#spirit.qi.reference.auxiliary.attr.header">Header</a>
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/auxiliary/attr.hpp>
@@ -52,7 +52,7 @@
Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
</p>
<a name="spirit.qi.reference.auxiliary.attr.model_of"></a><h6>
-<a name="id1096750"></a>
+<a name="id1169135"></a>
<a class="link" href="attr.html#spirit.qi.reference.auxiliary.attr.model_of">Model of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
@@ -80,7 +80,7 @@
</dl>
</div>
<a name="spirit.qi.reference.auxiliary.attr.expression_semantics"></a><h6>
-<a name="id1096832"></a>
+<a name="id1169217"></a>
<a class="link" href="attr.html#spirit.qi.reference.auxiliary.attr.expression_semantics">Expression
Semantics</a>
</h6>
@@ -137,7 +137,7 @@
</tbody>
</table></div>
<a name="spirit.qi.reference.auxiliary.attr.attributes"></a><h6>
-<a name="id1096991"></a>
+<a name="id1169376"></a>
<a class="link" href="attr.html#spirit.qi.reference.auxiliary.attr.attributes">Attributes</a>
</h6>
<div class="informaltable"><table class="table">
@@ -187,7 +187,7 @@
</tbody>
</table></div>
<a name="spirit.qi.reference.auxiliary.attr.complexity"></a><h6>
-<a name="id1097136"></a>
+<a name="id1170751"></a>
<a class="link" href="attr.html#spirit.qi.reference.auxiliary.attr.complexity">Complexity</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
@@ -204,7 +204,7 @@
done.
</p>
<a name="spirit.qi.reference.auxiliary.attr.example"></a><h6>
-<a name="id1097164"></a>
+<a name="id1170779"></a>
<a class="link" href="attr.html#spirit.qi.reference.auxiliary.attr.example">Example</a>
</h6>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/basics.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/basics.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/basics.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -27,7 +27,7 @@
<a name="spirit.qi.reference.basics"></a><a class="link" href="basics.html" title="Basics">Basics</a>
</h4></div></div></div>
<a name="spirit.qi.reference.basics.lazy_argument"></a><h6>
-<a name="id1096169"></a>
+<a name="id1168554"></a>
<a class="link" href="basics.html#spirit.qi.reference.basics.lazy_argument">Lazy Argument</a>
</h6>
<p>
@@ -51,7 +51,7 @@
second argument. This is done for uniformity with Semantic Actions).
</p>
<a name="spirit.qi.reference.basics.character_encoding_namespace"></a><h6>
-<a name="id1096306"></a>
+<a name="id1168691"></a>
<a class="link" href="basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
Encoding Namespace</a>
</h6>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/directive.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/directive.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/directive.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -34,7 +34,7 @@
<code class="computeroutput"><span class="identifier">raw</span></code>, and <code class="computeroutput"><span class="identifier">skip</span></code> directives.
</p>
<a name="spirit.qi.reference.directive.module_header"></a><h6>
-<a name="id1099376"></a>
+<a name="id1171830"></a>
<a class="link" href="directive.html#spirit.qi.reference.directive.module_header">Module Header</a>
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/directive.hpp>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/directive/no_case.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/directive/no_case.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/directive/no_case.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -31,7 +31,7 @@
forcing all embedded parsers to do case in-sensitive matching.
</li></ul></div>
<a name="spirit.qi.reference.directive.no_case.description"></a><h6>
-<a name="id1099481"></a>
+<a name="id1171934"></a>
<a class="link" href="no_case.html#spirit.qi.reference.directive.no_case.description">Description</a>
</h6>
<p>
@@ -41,7 +41,7 @@
of all embedded parsers to be case in-sensitive.
</p>
<a name="spirit.qi.reference.directive.no_case.header"></a><h6>
-<a name="id1099508"></a>
+<a name="id1171962"></a>
<a class="link" href="no_case.html#spirit.qi.reference.directive.no_case.header">Header</a>
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/directive/no_case.hpp>
@@ -51,7 +51,7 @@
Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
</p>
<a name="spirit.qi.reference.directive.no_case.model_of"></a><h6>
-<a name="id1099583"></a>
+<a name="id1172036"></a>
<a class="link" href="no_case.html#spirit.qi.reference.directive.no_case.model_of">Model
of</a>
</h6>
@@ -76,7 +76,7 @@
</dl>
</div>
<a name="spirit.qi.reference.directive.no_case.expression_semantics"></a><h6>
-<a name="id1099645"></a>
+<a name="id1172099"></a>
<a class="link" href="no_case.html#spirit.qi.reference.directive.no_case.expression_semantics">Expression
Semantics</a>
</h6>
@@ -137,7 +137,7 @@
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.directive.no_case.attributes"></a><h6>
-<a name="id1099951"></a>
+<a name="id1172405"></a>
<a class="link" href="no_case.html#spirit.qi.reference.directive.no_case.attributes">Attributes</a>
</h6>
<div class="informaltable"><table class="table">
@@ -172,7 +172,7 @@
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.directive.no_case.complexity"></a><h6>
-<a name="id1100040"></a>
+<a name="id1172493"></a>
<a class="link" href="no_case.html#spirit.qi.reference.directive.no_case.complexity">Complexity</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
@@ -185,7 +185,7 @@
</p>
</blockquote></div>
<a name="spirit.qi.reference.directive.no_case.example"></a><h6>
-<a name="id1100064"></a>
+<a name="id1172517"></a>
<a class="link" href="no_case.html#spirit.qi.reference.directive.no_case.example">Example</a>
</h6>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/binaryparser.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/binaryparser.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/binaryparser.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -27,7 +27,7 @@
<a name="spirit.qi.reference.parser_concepts.binaryparser"></a><a class="link" href="binaryparser.html" title="BinaryParser">BinaryParser</a>
</h5></div></div></div>
<a name="spirit.qi.reference.parser_concepts.binaryparser.description"></a><h6>
-<a name="id1094903"></a>
+<a name="id1167362"></a>
<a class="link" href="binaryparser.html#spirit.qi.reference.parser_concepts.binaryparser.description">Description</a>
</h6>
<p>
@@ -37,7 +37,7 @@
following the Composite Design Pattern.
</p>
<a name="spirit.qi.reference.parser_concepts.binaryparser.refinement_of"></a><h6>
-<a name="id1094955"></a>
+<a name="id1167413"></a>
<a class="link" href="binaryparser.html#spirit.qi.reference.parser_concepts.binaryparser.refinement_of">Refinement
of</a>
</h6>
@@ -64,7 +64,7 @@
</dl>
</div>
<a name="spirit.qi.reference.parser_concepts.binaryparser.valid_expressions"></a><h6>
-<a name="id1095034"></a>
+<a name="id1167492"></a>
<a class="link" href="binaryparser.html#spirit.qi.reference.parser_concepts.binaryparser.valid_expressions">Valid
Expressions</a>
</h6>
@@ -133,7 +133,7 @@
</tbody>
</table></div>
<a name="spirit.qi.reference.parser_concepts.binaryparser.type_expressions"></a><h6>
-<a name="id1095268"></a>
+<a name="id1167653"></a>
<a class="link" href="binaryparser.html#spirit.qi.reference.parser_concepts.binaryparser.type_expressions">Type
Expressions</a>
</h6>
@@ -198,7 +198,7 @@
</tbody>
</table></div>
<a name="spirit.qi.reference.parser_concepts.binaryparser.invariants"></a><h6>
-<a name="id1095468"></a>
+<a name="id1167854"></a>
<a class="link" href="binaryparser.html#spirit.qi.reference.parser_concepts.binaryparser.invariants">Invariants</a>
</h6>
<p>
@@ -214,7 +214,7 @@
</li>
</ul></div>
<a name="spirit.qi.reference.parser_concepts.binaryparser.models"></a><h6>
-<a name="id1095608"></a>
+<a name="id1167993"></a>
<a class="link" href="binaryparser.html#spirit.qi.reference.parser_concepts.binaryparser.models">Models</a>
</h6>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/naryparser.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/naryparser.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/naryparser.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -27,7 +27,7 @@
<a name="spirit.qi.reference.parser_concepts.naryparser"></a><a class="link" href="naryparser.html" title="NaryParser">NaryParser</a>
</h5></div></div></div>
<a name="spirit.qi.reference.parser_concepts.naryparser.description"></a><h6>
-<a name="id1095642"></a>
+<a name="id1168028"></a>
<a class="link" href="naryparser.html#spirit.qi.reference.parser_concepts.naryparser.description">Description</a>
</h6>
<p>
@@ -37,7 +37,7 @@
Design Pattern.
</p>
<a name="spirit.qi.reference.parser_concepts.naryparser.refinement_of"></a><h6>
-<a name="id1095678"></a>
+<a name="id1168064"></a>
<a class="link" href="naryparser.html#spirit.qi.reference.parser_concepts.naryparser.refinement_of">Refinement
of</a>
</h6>
@@ -64,7 +64,7 @@
</dl>
</div>
<a name="spirit.qi.reference.parser_concepts.naryparser.valid_expressions"></a><h6>
-<a name="id1095758"></a>
+<a name="id1168143"></a>
<a class="link" href="naryparser.html#spirit.qi.reference.parser_concepts.naryparser.valid_expressions">Valid
Expressions</a>
</h6>
@@ -115,7 +115,7 @@
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.parser_concepts.naryparser.type_expressions"></a><h6>
-<a name="id1095880"></a>
+<a name="id1168265"></a>
<a class="link" href="naryparser.html#spirit.qi.reference.parser_concepts.naryparser.type_expressions">Type
Expressions</a>
</h6>
@@ -168,7 +168,7 @@
</tbody>
</table></div>
<a name="spirit.qi.reference.parser_concepts.naryparser.invariants"></a><h6>
-<a name="id1096050"></a>
+<a name="id1168436"></a>
<a class="link" href="naryparser.html#spirit.qi.reference.parser_concepts.naryparser.invariants">Invariants</a>
</h6>
<p>
@@ -180,7 +180,7 @@
<code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_parser</span><span class="special"><</span><span class="identifier">E</span><span class="special">>::</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>
</li></ul></div>
<a name="spirit.qi.reference.parser_concepts.naryparser.models"></a><h6>
-<a name="id1096136"></a>
+<a name="id1168521"></a>
<a class="link" href="naryparser.html#spirit.qi.reference.parser_concepts.naryparser.models">Models</a>
</h6>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/parser.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/parser.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/parser.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -27,7 +27,7 @@
<a name="spirit.qi.reference.parser_concepts.parser"></a><a class="link" href="parser.html" title="Parser">Parser</a>
</h5></div></div></div>
<a name="spirit.qi.reference.parser_concepts.parser.description"></a><h6>
-<a name="id1093182"></a>
+<a name="id1165567"></a>
<a class="link" href="parser.html#spirit.qi.reference.parser_concepts.parser.description">Description</a>
</h6>
<p>
@@ -82,7 +82,7 @@
</dl>
</div>
<a name="spirit.qi.reference.parser_concepts.parser.valid_expressions"></a><h6>
-<a name="id1093445"></a>
+<a name="id1165830"></a>
<a class="link" href="parser.html#spirit.qi.reference.parser_concepts.parser.valid_expressions">Valid
Expressions</a>
</h6>
@@ -162,7 +162,7 @@
</tbody>
</table></div>
<a name="spirit.qi.reference.parser_concepts.parser.type_expressions"></a><h6>
-<a name="id1093713"></a>
+<a name="id1166098"></a>
<a class="link" href="parser.html#spirit.qi.reference.parser_concepts.parser.type_expressions">Type
Expressions</a>
</h6>
@@ -215,7 +215,7 @@
</tbody>
</table></div>
<a name="spirit.qi.reference.parser_concepts.parser.postcondition"></a><h6>
-<a name="id1093909"></a>
+<a name="id1166295"></a>
<a class="link" href="parser.html#spirit.qi.reference.parser_concepts.parser.postcondition">Postcondition</a>
</h6>
<p>
@@ -249,7 +249,7 @@
</li>
</ul></div>
<a name="spirit.qi.reference.parser_concepts.parser.models"></a><h6>
-<a name="id1094037"></a>
+<a name="id1166422"></a>
<a class="link" href="parser.html#spirit.qi.reference.parser_concepts.parser.models">Models</a>
</h6>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/primitiveparser.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/primitiveparser.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/primitiveparser.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -27,7 +27,7 @@
<a name="spirit.qi.reference.parser_concepts.primitiveparser"></a><a class="link" href="primitiveparser.html" title="PrimitiveParser">PrimitiveParser</a>
</h5></div></div></div>
<a name="spirit.qi.reference.parser_concepts.primitiveparser.description"></a><h6>
-<a name="id1094071"></a>
+<a name="id1166457"></a>
<a class="link" href="primitiveparser.html#spirit.qi.reference.parser_concepts.primitiveparser.description">Description</a>
</h6>
<p>
@@ -35,7 +35,7 @@
that the client uses to build more complex parsers.
</p>
<a name="spirit.qi.reference.parser_concepts.primitiveparser.refinement_of"></a><h6>
-<a name="id1094094"></a>
+<a name="id1166479"></a>
<a class="link" href="primitiveparser.html#spirit.qi.reference.parser_concepts.primitiveparser.refinement_of">Refinement
of</a>
</h6>
@@ -49,7 +49,7 @@
</p>
</blockquote></div>
<a name="spirit.qi.reference.parser_concepts.primitiveparser.pre_skip"></a><h6>
-<a name="id1094130"></a>
+<a name="id1166515"></a>
<a class="link" href="primitiveparser.html#spirit.qi.reference.parser_concepts.primitiveparser.pre_skip">Pre-skip</a>
</h6>
<p>
@@ -63,7 +63,7 @@
<pre class="programlisting"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">skip_over</span><span class="special">(</span><span class="identifier">f</span><span class="special">,</span> <span class="identifier">l</span><span class="special">,</span> <span class="identifier">skip</span><span class="special">);</span>
</pre>
<a name="spirit.qi.reference.parser_concepts.primitiveparser.type_expressions"></a><h6>
-<a name="id1094221"></a>
+<a name="id1166607"></a>
<a class="link" href="primitiveparser.html#spirit.qi.reference.parser_concepts.primitiveparser.type_expressions">Type
Expressions</a>
</h6>
@@ -102,7 +102,7 @@
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.parser_concepts.primitiveparser.models"></a><h6>
-<a name="id1094357"></a>
+<a name="id1166742"></a>
<a class="link" href="primitiveparser.html#spirit.qi.reference.parser_concepts.primitiveparser.models">Models</a>
</h6>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/unaryparser.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/unaryparser.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/unaryparser.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -27,7 +27,7 @@
<a name="spirit.qi.reference.parser_concepts.unaryparser"></a><a class="link" href="unaryparser.html" title="UnaryParser">UnaryParser</a>
</h5></div></div></div>
<a name="spirit.qi.reference.parser_concepts.unaryparser.description"></a><h6>
-<a name="id1094398"></a>
+<a name="id1166783"></a>
<a class="link" href="unaryparser.html#spirit.qi.reference.parser_concepts.unaryparser.description">Description</a>
</h6>
<p>
@@ -36,7 +36,7 @@
the Delegate Design Pattern.
</p>
<a name="spirit.qi.reference.parser_concepts.unaryparser.refinement_of"></a><h6>
-<a name="id1094423"></a>
+<a name="id1166808"></a>
<a class="link" href="unaryparser.html#spirit.qi.reference.parser_concepts.unaryparser.refinement_of">Refinement
of</a>
</h6>
@@ -63,7 +63,7 @@
</dl>
</div>
<a name="spirit.qi.reference.parser_concepts.unaryparser.valid_expressions"></a><h6>
-<a name="id1094502"></a>
+<a name="id1166887"></a>
<a class="link" href="unaryparser.html#spirit.qi.reference.parser_concepts.unaryparser.valid_expressions">Valid
Expressions</a>
</h6>
@@ -113,7 +113,7 @@
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.parser_concepts.unaryparser.type_expressions"></a><h6>
-<a name="id1094616"></a>
+<a name="id1167001"></a>
<a class="link" href="unaryparser.html#spirit.qi.reference.parser_concepts.unaryparser.type_expressions">Type
Expressions</a>
</h6>
@@ -166,7 +166,7 @@
</tbody>
</table></div>
<a name="spirit.qi.reference.parser_concepts.unaryparser.invariants"></a><h6>
-<a name="id1094783"></a>
+<a name="id1167168"></a>
<a class="link" href="unaryparser.html#spirit.qi.reference.parser_concepts.unaryparser.invariants">Invariants</a>
</h6>
<p>
@@ -177,7 +177,7 @@
<code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_parser</span><span class="special"><</span><span class="identifier">P</span><span class="special">::</span><span class="identifier">subject_type</span><span class="special">>::</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>
</li></ul></div>
<a name="spirit.qi.reference.parser_concepts.unaryparser.models"></a><h6>
-<a name="id1094868"></a>
+<a name="id1167327"></a>
<a class="link" href="unaryparser.html#spirit.qi.reference.parser_concepts.unaryparser.models">Models</a>
</h6>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/string.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/string.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/string.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -35,7 +35,7 @@
the literal and string parsers and the symbol table.
</p>
<a name="spirit.qi.reference.string.module_header"></a><h6>
-<a name="id1101243"></a>
+<a name="id1173628"></a>
<a class="link" href="string.html#spirit.qi.reference.string.module_header">Module Header</a>
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/string.hpp>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/string/lit_string.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/string/lit_string.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/string/lit_string.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -39,7 +39,7 @@
</li>
</ul></div>
<a name="spirit.qi.reference.string.lit_string.description"></a><h6>
-<a name="id1101406"></a>
+<a name="id1173791"></a>
<a class="link" href="lit_string.html#spirit.qi.reference.string.lit_string.description">Description</a>
</h6>
<p>
@@ -48,7 +48,7 @@
parser is not applied in between characters of the string.
</p>
<a name="spirit.qi.reference.string.lit_string.header"></a><h6>
-<a name="id1101430"></a>
+<a name="id1173815"></a>
<a class="link" href="lit_string.html#spirit.qi.reference.string.lit_string.header">Header</a>
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/string/lit.hpp>
@@ -58,7 +58,7 @@
Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
</p>
<a name="spirit.qi.reference.string.lit_string.model_of"></a><h6>
-<a name="id1101504"></a>
+<a name="id1173890"></a>
<a class="link" href="lit_string.html#spirit.qi.reference.string.lit_string.model_of">Model
of</a>
</h6>
@@ -93,7 +93,7 @@
</dl>
</div>
<a name="spirit.qi.reference.string.lit_string.expression_semantics"></a><h6>
-<a name="id1101640"></a>
+<a name="id1174025"></a>
<a class="link" href="lit_string.html#spirit.qi.reference.string.lit_string.expression_semantics">Expression
Semantics</a>
</h6>
@@ -203,7 +203,7 @@
</tbody>
</table></div>
<a name="spirit.qi.reference.string.lit_string.attributes"></a><h6>
-<a name="id1101990"></a>
+<a name="id1174376"></a>
<a class="link" href="lit_string.html#spirit.qi.reference.string.lit_string.attributes">Attributes</a>
</h6>
<div class="informaltable"><table class="table">
@@ -307,7 +307,7 @@
</tbody>
</table></div>
<a name="spirit.qi.reference.string.lit_string.complexity"></a><h6>
-<a name="id1102416"></a>
+<a name="id1174802"></a>
<a class="link" href="lit_string.html#spirit.qi.reference.string.lit_string.complexity">Complexity</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
@@ -324,7 +324,7 @@
of characters in the string to be parsed.
</p>
<a name="spirit.qi.reference.string.lit_string.example"></a><h6>
-<a name="id1102451"></a>
+<a name="id1174836"></a>
<a class="link" href="lit_string.html#spirit.qi.reference.string.lit_string.example">Example</a>
</h6>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/string/symbols.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/string/symbols.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/string/symbols.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -27,7 +27,7 @@
<a name="spirit.qi.reference.string.symbols"></a><a class="link" href="symbols.html" title="symbols">symbols</a>
</h5></div></div></div>
<a name="spirit.qi.reference.string.symbols.description"></a><h6>
-<a name="id1104655"></a>
+<a name="id1177109"></a>
<a class="link" href="symbols.html#spirit.qi.reference.string.symbols.description">Description</a>
</h6>
<p>
@@ -47,7 +47,7 @@
its behavior.
</p>
<a name="spirit.qi.reference.string.symbols.header"></a><h6>
-<a name="id1104690"></a>
+<a name="id1177143"></a>
<a class="link" href="symbols.html#spirit.qi.reference.string.symbols.header">Header</a>
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/string/symbols.hpp>
@@ -57,14 +57,14 @@
Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
</p>
<a name="spirit.qi.reference.string.symbols.synopsis"></a><h6>
-<a name="id1104764"></a>
+<a name="id1177218"></a>
<a class="link" href="symbols.html#spirit.qi.reference.string.symbols.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Char</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
<span class="keyword">struct</span> <span class="identifier">symbols</span><span class="special">;</span>
</pre>
<a name="spirit.qi.reference.string.symbols.template_parameters"></a><h6>
-<a name="id1104829"></a>
+<a name="id1177283"></a>
<a class="link" href="symbols.html#spirit.qi.reference.string.symbols.template_parameters">Template
parameters</a>
</h6>
@@ -129,7 +129,7 @@
</tbody>
</table></div>
<a name="spirit.qi.reference.string.symbols.model_of"></a><h6>
-<a name="id1104956"></a>
+<a name="id1177410"></a>
<a class="link" href="symbols.html#spirit.qi.reference.string.symbols.model_of">Model of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
@@ -191,7 +191,7 @@
</dl>
</div>
<a name="spirit.qi.reference.string.symbols.expression_semantics"></a><h6>
-<a name="id1105259"></a>
+<a name="id1177712"></a>
<a class="link" href="symbols.html#spirit.qi.reference.string.symbols.expression_semantics">Expression
Semantics</a>
</h6>
@@ -425,14 +425,14 @@
</tbody>
</table></div>
<a name="spirit.qi.reference.string.symbols.attributes"></a><h6>
-<a name="id1106887"></a>
+<a name="id1179340"></a>
<a class="link" href="symbols.html#spirit.qi.reference.string.symbols.attributes">Attributes</a>
</h6>
<p>
The attribute of <code class="computeroutput"><span class="identifier">symbol</span><span class="special"><</span><span class="identifier">Char</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span></code> is <code class="computeroutput"><span class="identifier">T</span></code>.
</p>
<a name="spirit.qi.reference.string.symbols.example"></a><h6>
-<a name="id1106937"></a>
+<a name="id1179391"></a>
<a class="link" href="symbols.html#spirit.qi.reference.string.symbols.example">Example</a>
</h6>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/qi/tutorials/employee___parsing_into_structs.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/tutorials/employee___parsing_into_structs.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/tutorials/employee___parsing_into_structs.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -179,7 +179,7 @@
has a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></code> attribute.
</p>
<a name="spirit.qi.tutorials.employee___parsing_into_structs.lexeme"></a><h6>
-<a name="id1070307"></a>
+<a name="id1142604"></a>
<a class="link" href="employee___parsing_into_structs.html#spirit.qi.tutorials.employee___parsing_into_structs.lexeme">Lexeme</a>
</h6>
<pre class="programlisting"><span class="identifier">lexeme</span><span class="special">[</span><span class="char">'"'</span> <span class="special">>></span> <span class="special">+(</span><span class="identifier">char_</span> <span class="special">-</span> <span class="char">'"'</span><span class="special">)</span> <span class="special">>></span> <span class="char">'"'</span><span class="special">];</span>
@@ -196,7 +196,7 @@
a double quote.
</p>
<a name="spirit.qi.tutorials.employee___parsing_into_structs.difference"></a><h6>
-<a name="id1070420"></a>
+<a name="id1142716"></a>
<a class="link" href="employee___parsing_into_structs.html#spirit.qi.tutorials.employee___parsing_into_structs.difference">Difference</a>
</h6>
<p>
@@ -215,7 +215,7 @@
is just <code class="computeroutput"><span class="keyword">char</span></code>.
</p>
<a name="spirit.qi.tutorials.employee___parsing_into_structs.plus"></a><h6>
-<a name="id1070528"></a>
+<a name="id1142824"></a>
<a class="link" href="employee___parsing_into_structs.html#spirit.qi.tutorials.employee___parsing_into_structs.plus">Plus</a>
</h6>
<pre class="programlisting"><span class="special">+</span><span class="identifier">a</span>
@@ -234,7 +234,7 @@
<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">char</span><span class="special">></span>
</pre>
<a name="spirit.qi.tutorials.employee___parsing_into_structs.sequence_attribute"></a><h6>
-<a name="id1070654"></a>
+<a name="id1142950"></a>
<a class="link" href="employee___parsing_into_structs.html#spirit.qi.tutorials.employee___parsing_into_structs.sequence_attribute">Sequence
Attribute</a>
</h6>
@@ -275,7 +275,7 @@
</p></td></tr>
</table></div>
<a name="spirit.qi.tutorials.employee___parsing_into_structs.attribute_collapsing"></a><h6>
-<a name="id1070876"></a>
+<a name="id1143172"></a>
<a class="link" href="employee___parsing_into_structs.html#spirit.qi.tutorials.employee___parsing_into_structs.attribute_collapsing">Attribute
Collapsing</a>
</h6>
@@ -307,7 +307,7 @@
<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">char</span><span class="special">></span>
</pre>
<a name="spirit.qi.tutorials.employee___parsing_into_structs.auto_rules"></a><h6>
-<a name="id1071115"></a>
+<a name="id1143411"></a>
<a class="link" href="employee___parsing_into_structs.html#spirit.qi.tutorials.employee___parsing_into_structs.auto_rules">Auto
Rules</a>
</h6>
@@ -345,7 +345,7 @@
directly into the rule's attribute, in-situ.
</p>
<a name="spirit.qi.tutorials.employee___parsing_into_structs.finally"></a><h6>
-<a name="id1071434"></a>
+<a name="id1143730"></a>
<a class="link" href="employee___parsing_into_structs.html#spirit.qi.tutorials.employee___parsing_into_structs.finally">Finally</a>
</h6>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___asts_.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___asts_.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___asts_.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -69,7 +69,7 @@
for testing purposes. "4.toyxml" has an error in it.
</p>
<a name="spirit.qi.tutorials.mini_xml___asts_.first_cut"></a><h6>
-<a name="id1072155"></a>
+<a name="id1144383"></a>
<a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.first_cut">First Cut</a>
</h6>
<p>
@@ -145,7 +145,7 @@
by the placeholder <code class="computeroutput"><span class="identifier">_val</span></code>).
</p>
<a name="spirit.qi.tutorials.mini_xml___asts_.alternates"></a><h6>
-<a name="id1073336"></a>
+<a name="id1145564"></a>
<a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.alternates">Alternates</a>
</h6>
<pre class="programlisting"><span class="identifier">rule</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">mini_xml_node</span><span class="special">(),</span> <span class="identifier">space_type</span><span class="special">></span> <span class="identifier">node</span><span class="special">;</span>
@@ -175,7 +175,7 @@
<span class="special">;</span>
</pre>
<a name="spirit.qi.tutorials.mini_xml___asts_.not_predicate"></a><h6>
-<a name="id1073663"></a>
+<a name="id1145891"></a>
<a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.not_predicate">Not
Predicate</a>
</h6>
@@ -202,7 +202,7 @@
at this point.
</p>
<a name="spirit.qi.tutorials.mini_xml___asts_.inherited_attribute"></a><h6>
-<a name="id1073818"></a>
+<a name="id1146046"></a>
<a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.inherited_attribute">Inherited
Attribute</a>
</h6>
@@ -228,7 +228,7 @@
<code class="computeroutput"><span class="identifier">_r3</span></code>, etc. if you have more).
</p>
<a name="spirit.qi.tutorials.mini_xml___asts_.a_lazy_lit"></a><h6>
-<a name="id1075660"></a>
+<a name="id1147888"></a>
<a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.a_lazy_lit">A Lazy
Lit</a>
</h6>
@@ -262,7 +262,7 @@
accessors, provided by Phoenix.
</p>
<a name="spirit.qi.tutorials.mini_xml___asts_.how_it_all_works"></a><h6>
-<a name="id1075991"></a>
+<a name="id1148219"></a>
<a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.how_it_all_works">How
it all works</a>
</h6>
@@ -309,7 +309,7 @@
as <code class="computeroutput"><span class="identifier">_r1</span></code>.
</p>
<a name="spirit.qi.tutorials.mini_xml___asts_.the_structures"></a><h6>
-<a name="id1076287"></a>
+<a name="id1148515"></a>
<a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.the_structures">The
Structures</a>
</h6>
@@ -342,7 +342,7 @@
<p>
</p>
<a name="spirit.qi.tutorials.mini_xml___asts_.of_alternates_and_variants"></a><h6>
-<a name="id1076483"></a>
+<a name="id1148711"></a>
<a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.of_alternates_and_variants">Of
Alternates and Variants</a>
</h6>
@@ -369,7 +369,7 @@
of <code class="computeroutput"><span class="identifier">a</span></code> and <code class="computeroutput"><span class="identifier">B</span></code> is the attribute of <code class="computeroutput"><span class="identifier">b</span></code>.
</p>
<a name="spirit.qi.tutorials.mini_xml___asts_.adapting_structs_again"></a><h6>
-<a name="id1076663"></a>
+<a name="id1148891"></a>
<a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.adapting_structs_again">Adapting
structs again</a>
</h6>
@@ -395,7 +395,7 @@
<p>
</p>
<a name="spirit.qi.tutorials.mini_xml___asts_.one_more_take"></a><h6>
-<a name="id1076803"></a>
+<a name="id1149031"></a>
<a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.one_more_take">One
More Take</a>
</h6>
@@ -464,7 +464,7 @@
in the <code class="computeroutput"><span class="identifier">xml</span></code> rule:
</p>
<a name="spirit.qi.tutorials.mini_xml___asts_.local_variables"></a><h6>
-<a name="id1077719"></a>
+<a name="id1149947"></a>
<a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.local_variables">Local
Variables</a>
</h6>
Modified: trunk/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___error_handling.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___error_handling.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___error_handling.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -44,7 +44,7 @@
What's new?
</p>
<a name="spirit.qi.tutorials.mini_xml___error_handling.readable_names"></a><h6>
-<a name="id1078713"></a>
+<a name="id1150941"></a>
<a class="link" href="mini_xml___error_handling.html#spirit.qi.tutorials.mini_xml___error_handling.readable_names">Readable
Names</a>
</h6>
@@ -63,7 +63,7 @@
<span class="identifier">end_tag</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="string">"end_tag"</span><span class="special">);</span>
</pre>
<a name="spirit.qi.tutorials.mini_xml___error_handling.on_error"></a><h6>
-<a name="id1078893"></a>
+<a name="id1151121"></a>
<a class="link" href="mini_xml___error_handling.html#spirit.qi.tutorials.mini_xml___error_handling.on_error">On
Error</a>
</h6>
@@ -241,7 +241,7 @@
</tbody>
</table></div>
<a name="spirit.qi.tutorials.mini_xml___error_handling.expectation_points"></a><h6>
-<a name="id1079402"></a>
+<a name="id1151630"></a>
<a class="link" href="mini_xml___error_handling.html#spirit.qi.tutorials.mini_xml___error_handling.expectation_points">Expectation
Points</a>
</h6>
Modified: trunk/libs/spirit/doc/html/spirit/qi/tutorials/quick_start.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/tutorials/quick_start.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/tutorials/quick_start.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -27,7 +27,7 @@
<a name="spirit.qi.tutorials.quick_start"></a><a class="link" href="quick_start.html" title="Quick Start">Quick Start</a>
</h4></div></div></div>
<a name="spirit.qi.tutorials.quick_start.why_would_you_want_to_use_spirit_qi_"></a><h6>
-<a name="id1056293"></a>
+<a name="id1128393"></a>
<a class="link" href="quick_start.html#spirit.qi.tutorials.quick_start.why_would_you_want_to_use_spirit_qi_">Why
would you want to use Spirit.Qi?</a>
</h6>
Modified: trunk/libs/spirit/doc/html/spirit/qi/tutorials/roman_numerals.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/tutorials/roman_numerals.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/tutorials/roman_numerals.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -41,7 +41,7 @@
</li>
</ul></div>
<a name="spirit.qi.tutorials.roman_numerals.symbol_table"></a><h6>
-<a name="id1064199"></a>
+<a name="id1136491"></a>
<a class="link" href="roman_numerals.html#spirit.qi.tutorials.roman_numerals.symbol_table">Symbol
Table</a>
</h6>
@@ -173,7 +173,7 @@
They are all parsers.
</p>
<a name="spirit.qi.tutorials.roman_numerals.rules"></a><h6>
-<a name="id1066267"></a>
+<a name="id1138564"></a>
<a class="link" href="roman_numerals.html#spirit.qi.tutorials.roman_numerals.rules">Rules</a>
</h6>
<p>
@@ -253,7 +253,7 @@
<pre class="programlisting"><span class="identifier">r</span> <span class="special">=</span> <span class="identifier">double_</span> <span class="special">>></span> <span class="special">*(</span><span class="char">','</span> <span class="special">>></span> <span class="identifier">double_</span><span class="special">);</span>
</pre>
<a name="spirit.qi.tutorials.roman_numerals.grammars"></a><h6>
-<a name="id1066660"></a>
+<a name="id1138956"></a>
<a class="link" href="roman_numerals.html#spirit.qi.tutorials.roman_numerals.grammars">Grammars</a>
</h6>
<p>
@@ -358,7 +358,7 @@
</li>
</ul></div>
<a name="spirit.qi.tutorials.roman_numerals.let_s_parse_"></a><h6>
-<a name="id1067387"></a>
+<a name="id1139683"></a>
<a class="link" href="roman_numerals.html#spirit.qi.tutorials.roman_numerals.let_s_parse_">Let's Parse!</a>
</h6>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/qi/tutorials/semantic_actions.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/tutorials/semantic_actions.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/tutorials/semantic_actions.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -233,7 +233,7 @@
The examples above can be found here: ../../example/qi/actions.cpp
</p>
<a name="spirit.qi.tutorials.semantic_actions.phoenix"></a><h6>
-<a name="id1058983"></a>
+<a name="id1131062"></a>
<a class="link" href="semantic_actions.html#spirit.qi.tutorials.semantic_actions.phoenix">Phoenix</a>
</h6>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/qi/tutorials/warming_up.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/tutorials/warming_up.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/tutorials/warming_up.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -31,7 +31,7 @@
on how to build parsers from the simplest parser, building up as we go.
</p>
<a name="spirit.qi.tutorials.warming_up.trivial_example__1_parsing_a_number"></a><h6>
-<a name="id1056338"></a>
+<a name="id1128439"></a>
<a class="link" href="warming_up.html#spirit.qi.tutorials.warming_up.trivial_example__1_parsing_a_number">Trivial
Example #1 Parsing a number</a>
</h6>
@@ -46,7 +46,7 @@
parsers and consistent naming conventions help you keep from going insane!
</p>
<a name="spirit.qi.tutorials.warming_up.trivial_example__2_parsing_two_numbers"></a><h6>
-<a name="id1056367"></a>
+<a name="id1128468"></a>
<a class="link" href="warming_up.html#spirit.qi.tutorials.warming_up.trivial_example__2_parsing_two_numbers">Trivial
Example #2 Parsing two numbers</a>
</h6>
@@ -79,7 +79,7 @@
</p></td></tr>
</table></div>
<a name="spirit.qi.tutorials.warming_up.trivial_example__3_parsing_one_or_more_numbers"></a><h6>
-<a name="id1056929"></a>
+<a name="id1129008"></a>
<a class="link" href="warming_up.html#spirit.qi.tutorials.warming_up.trivial_example__3_parsing_one_or_more_numbers">Trivial
Example #3 Parsing one or more numbers</a>
</h6>
@@ -103,7 +103,7 @@
in most places.
</p>
<a name="spirit.qi.tutorials.warming_up.trivial_example__4_parsing_a_comma_delimited_list_of_numbers"></a><h6>
-<a name="id1056973"></a>
+<a name="id1129052"></a>
<a class="link" href="warming_up.html#spirit.qi.tutorials.warming_up.trivial_example__4_parsing_a_comma_delimited_list_of_numbers">Trivial
Example #4 Parsing a comma-delimited list of numbers</a>
</h6>
@@ -126,7 +126,7 @@
star encloses the complete expression above.
</p>
<a name="spirit.qi.tutorials.warming_up.let_s_parse_"></a><h6>
-<a name="id1057104"></a>
+<a name="id1129183"></a>
<a class="link" href="warming_up.html#spirit.qi.tutorials.warming_up.let_s_parse_">Let's Parse!</a>
</h6>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/support/multi_pass.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/support/multi_pass.html (original)
+++ trunk/libs/spirit/doc/html/spirit/support/multi_pass.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -61,7 +61,7 @@
iterator was created.
</p>
<a name="spirit.support.multi_pass.using_the_multi_pass"></a><h5>
-<a name="id1162124"></a>
+<a name="id1241870"></a>
<a class="link" href="multi_pass.html#spirit.support.multi_pass.using_the_multi_pass">Using the
multi_pass</a>
</h5>
@@ -209,7 +209,7 @@
<p>
</p>
<a name="spirit.support.multi_pass.using_the_flush_multi_pass_parser"></a><h5>
-<a name="id1163393"></a>
+<a name="id1244272"></a>
<a class="link" href="multi_pass.html#spirit.support.multi_pass.using_the_flush_multi_pass_parser">Using
the flush_multi_pass parser</a>
</h5>
@@ -231,7 +231,7 @@
thrown.
</p>
<a name="spirit.support.multi_pass.the_multi_pass_policies"></a><h5>
-<a name="id1163486"></a>
+<a name="id1244365"></a>
<a class="link" href="multi_pass.html#spirit.support.multi_pass.the_multi_pass_policies">The multi_pass
Policies</a>
</h5>
@@ -272,7 +272,7 @@
the functionality groups:
</p>
<div class="table">
-<a name="id1163592"></a><p class="title"><b>Table 13. Policies needed for default_policy template</b></p>
+<a name="id1244471"></a><p class="title"><b>Table 13. Policies needed for default_policy template</b></p>
<div class="table-contents"><table class="table" summary="Policies needed for default_policy template">
<colgroup>
<col>
@@ -355,7 +355,7 @@
implementations.
</p>
<a name="spirit.support.multi_pass.predefined_policies"></a><h5>
-<a name="id1163784"></a>
+<a name="id1244663"></a>
<a class="link" href="multi_pass.html#spirit.support.multi_pass.predefined_policies">Predefined
policies</a>
</h5>
@@ -364,7 +364,7 @@
policies are defined in the namespace <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">iterator_policies</span></code>.
</p>
<div class="table">
-<a name="id1163826"></a><p class="title"><b>Table 14. Predefined policy classes</b></p>
+<a name="id1244705"></a><p class="title"><b>Table 14. Predefined policy classes</b></p>
<div class="table-contents"><table class="table" summary="Predefined policy classes">
<colgroup>
<col>
@@ -601,7 +601,7 @@
</table></div>
</div>
<br class="table-break"><a name="spirit.support.multi_pass.combinations__how_to_specify_your_own_custom_multi_pass"></a><h5>
-<a name="id1164596"></a>
+<a name="id1245370"></a>
<a class="link" href="multi_pass.html#spirit.support.multi_pass.combinations__how_to_specify_your_own_custom_multi_pass">Combinations:
How to specify your own custom multi_pass</a>
</h5>
@@ -647,7 +647,7 @@
behaviors while wrapping an <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">istream_iterator</span><span class="special"><</span><span class="keyword">char</span><span class="special">></span></code>.
</p>
<a name="spirit.support.multi_pass.dealing_with_constant_look_ahead"></a><h5>
-<a name="id1165018"></a>
+<a name="id1245792"></a>
<a class="link" href="multi_pass.html#spirit.support.multi_pass.dealing_with_constant_look_ahead">Dealing
with constant look ahead</a>
</h5>
@@ -666,7 +666,7 @@
StoragePolicy.
</p>
<a name="spirit.support.multi_pass.how_to_write_a_functor_for_use_with_the__code__phrase_role__identifier__functor_input__phrase___code__inputpolicy"></a><h5>
-<a name="id1165150"></a>
+<a name="id1245924"></a>
<a class="link" href="multi_pass.html#spirit.support.multi_pass.how_to_write_a_functor_for_use_with_the__code__phrase_role__identifier__functor_input__phrase___code__inputpolicy">How
to write a functor for use with the <code class="computeroutput"><span class="identifier">functor_input</span></code>
InputPolicy</a>
@@ -725,7 +725,7 @@
<span class="special">}</span>
</pre>
<a name="spirit.support.multi_pass.how_to_write_policies_for_use_with_multi_pass"></a><h5>
-<a name="id1165737"></a>
+<a name="id1247627"></a>
<a class="link" href="multi_pass.html#spirit.support.multi_pass.how_to_write_policies_for_use_with_multi_pass">How
to write policies for use with multi_pass</a>
</h5>
@@ -742,7 +742,7 @@
copies of a particular <code class="computeroutput"><span class="identifier">multi_pass</span></code>.
</p>
<a name="spirit.support.multi_pass.inputpolicy"></a><h5>
-<a name="id1165812"></a>
+<a name="id1247701"></a>
<a class="link" href="multi_pass.html#spirit.support.multi_pass.inputpolicy">InputPolicy</a>
</h5>
<p>
@@ -838,7 +838,7 @@
constructor of <code class="computeroutput"><span class="identifier">shared</span></code>.
</p>
<a name="spirit.support.multi_pass.ownershippolicy"></a><h5>
-<a name="id1170110"></a>
+<a name="id1248581"></a>
<a class="link" href="multi_pass.html#spirit.support.multi_pass.ownershippolicy">OwnershipPolicy</a>
</h5>
<p>
@@ -905,7 +905,7 @@
constructor of <code class="computeroutput"><span class="identifier">shared</span></code>.
</p>
<a name="spirit.support.multi_pass.checkingpolicy"></a><h5>
-<a name="id1170644"></a>
+<a name="id1249115"></a>
<a class="link" href="multi_pass.html#spirit.support.multi_pass.checkingpolicy">CheckingPolicy</a>
</h5>
<p>
@@ -964,7 +964,7 @@
constructor of <code class="computeroutput"><span class="identifier">shared</span></code>.
</p>
<a name="spirit.support.multi_pass.storagepolicy"></a><h5>
-<a name="id1171096"></a>
+<a name="id1249566"></a>
<a class="link" href="multi_pass.html#spirit.support.multi_pass.storagepolicy">StoragePolicy</a>
</h5>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/what_s_new.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/what_s_new.html (original)
+++ trunk/libs/spirit/doc/html/spirit/what_s_new.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -27,7 +27,7 @@
<a name="spirit.what_s_new"></a><a class="link" href="what_s_new.html" title="What's New">What's New</a>
</h2></div></div></div>
<a name="spirit.what_s_new.spirit_classic"></a><h4>
-<a name="id1047304"></a>
+<a name="id1119394"></a>
<a class="link" href="what_s_new.html#spirit.what_s_new.spirit_classic">Spirit Classic</a>
</h4>
<p>
@@ -66,11 +66,11 @@
for existing applications.
</p>
<a name="spirit.what_s_new.spirit_v2_1"></a><h4>
-<a name="id1047495"></a>
+<a name="id1119584"></a>
<a class="link" href="what_s_new.html#spirit.what_s_new.spirit_v2_1">Spirit V2.1</a>
</h4>
<a name="spirit.what_s_new.what_s_changed_in__emphasis_spirit_qi__emphasis__and__emphasis_spirit_karma__emphasis__from_v2_0_to_2_x"></a><h4>
-<a name="id1047508"></a>
+<a name="id1119598"></a>
<a class="link" href="what_s_new.html#spirit.what_s_new.what_s_changed_in__emphasis_spirit_qi__emphasis__and__emphasis_spirit_karma__emphasis__from_v2_0_to_2_x">What's
changed in <span class="emphasis"><em>Spirit.Qi</em></span> and <span class="emphasis"><em>Spirit.Karma</em></span>
from V2.0 to 2.x</a>
@@ -159,7 +159,7 @@
</li>
</ul></div>
<a name="spirit.what_s_new.what_s_changed_in__emphasis_spirit_lex__emphasis__from_v2_0_to_2_x"></a><h4>
-<a name="id1048060"></a>
+<a name="id1120150"></a>
<a class="link" href="what_s_new.html#spirit.what_s_new.what_s_changed_in__emphasis_spirit_lex__emphasis__from_v2_0_to_2_x">What's
changed in <span class="emphasis"><em>Spirit.Lex</em></span> from V2.0 to 2.x</a>
</h4>
Modified: trunk/libs/spirit/doc/introduction.qbk
==============================================================================
--- trunk/libs/spirit/doc/introduction.qbk (original)
+++ trunk/libs/spirit/doc/introduction.qbk 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -51,9 +51,9 @@
the grammars to implement, and the rules for storing the parsed information.
* __lex__: This is the library usable to create tokenizers (lexers). The
domain-specific language exposed by __lex__ allows to define regular
- expressions used to match tokens, associate these regular expressions with
- code to be executed whenever it is matched, and to add the token definitions
- to the lexical analyzer.
+ expressions used to match tokens (create token definitions), associate these
+ regular expressions with code to be executed whenever they are matched, and
+ to add the token definitions to the lexical analyzer.
* __karma__: This is the generator library allowing you to create code for
recursive descent, data type-driven output formatting. The exposed
domain-specific language is almost equivalent to the parser description language
@@ -183,7 +183,10 @@
[ [`*(double_ << ',')`] [`1.0,8.0,10.0,`] [A list of floating point numbers] ]
]
-The syntax is similar to __qi__ with the exception that we use the `<<`
+We will see later in this documentation how it is possible to avoid printing
+the trailing `','`.
+
+Overall, the syntax is similar to __qi__ with the exception that we use the `<<`
operator for output concatenation. This should be easy to understand as it
follows the conventions used in the Standard's I/O streams.
Modified: trunk/libs/spirit/doc/karma.qbk
==============================================================================
--- trunk/libs/spirit/doc/karma.qbk (original)
+++ trunk/libs/spirit/doc/karma.qbk 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -20,6 +20,7 @@
[endsect]
[section Reference]
+[import ../example/karma/reference.cpp]
[include karma/concepts.qbk]
[include karma/basics.qbk]
[/include karma/char.qbk]
@@ -29,7 +30,7 @@
[/include karma/directive.qbk]
[/include karma/action.qbk]
[/include karma/nonterminal.qbk]
-[/include karma/operator.qbk]
+[include karma/operator.qbk]
[/include karma/stream.qbk]
[include karma/auxiliary.qbk]
[/include karma/debug.qbk]
Modified: trunk/libs/spirit/doc/karma/auxiliary.qbk
==============================================================================
--- trunk/libs/spirit/doc/karma/auxiliary.qbk (original)
+++ trunk/libs/spirit/doc/karma/auxiliary.qbk 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -9,7 +9,7 @@
[section Auxiliary]
This module includes different auxiliary generators not fitting into any of the
-other categories. This module includes the `eol` and `eps`, `lazy` generators.
+other categories. It includes the `eol` and `eps`, `lazy` generators.
[heading Module Header]
Modified: trunk/libs/spirit/doc/karma/complex.qbk
==============================================================================
--- trunk/libs/spirit/doc/karma/complex.qbk (original)
+++ trunk/libs/spirit/doc/karma/complex.qbk 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -6,6 +6,7 @@
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
===============================================================================/]
+[/////////////////////////////////////////////////////////////////////////////]
[section:karma_complex Complex - A first more complex generator]
In this section we will develop a generator for complex numbers, allowing to
@@ -78,18 +79,153 @@
These semantic actions are easy to understand but have the unexpected side
effect of being slightly less efficient than it could be. In addition they tend
-to make the formatting grammar less readable. We will see in the next section
-how it is possible to use built in features of __karma__ to get rid of the
-semantic actions alltogether.
+to make the formatting grammar less readable. We will see in one of the next
+sections how it is possible to use built in features of __karma__ to get rid of
+the semantic actions alltogether.
[endsect]
+[/////////////////////////////////////////////////////////////////////////////]
+[section:karma_attributes Understanding Generator Attributes]
+
+[heading Attributes of Primitive Generators]
+
+Before we can start simplifying the complex number example from the previous
+section we need to introduce the notion of generator attributes. Every generator
+component in __karma__ exposes a specific attribute type. We have already seen
+that the attribute type of the `double_` generator is `double`. Other primitive
+generator components have other intuitive attribute types, such as for instance
+`int_` which has `int`, or `ascii::char_` which has `char`. For a full list of
+available generator primitives and their attribute types please see the section
+__sec_karma_primitive__.
+
+The attribute type of a generator defines what data types this generator is
+able to consume in order to produce its output. For primitive generators the
+normal C++ convertibility rules apply. Any data type convertible to the
+attribute type of a primitive generator can be used to provide the data to
+generate. As an example, it is possible to use an integer value in conjunction
+with a `double_` generator:
+
+ // the following generates: 1.0
+ std::string str;
+ std::back_insert_iterator<std::string> out(str);
+ generate(out, double_, 1);
+
+[heading Attributes of Compound Generators]
+
+__karma__ implements 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 is for instance:
+
+ a: A, b: B --> (a << b): tuple<A, B>
+
+which reads as:
+
+[:Given `a` and `b` are generators, and `A` is the attribute type of `a`, and
+ `B` is the attribute type of `b`, then the attribute type of `a << b` will be
+ `tuple<A, B>`.]
+
+[note The notation `tuple<A, B>` is used as a placeholder expression for any
+ fusion sequence holding the types A and B, such as
+ `boost::fusion::tuple<A, B>` or `std::pair<A, B>` (for more information
+ see __fusion__).]
+
+As you can see, in order for a type to be compatible with the attribute type
+of a __karma__ compound generator it has to
+
+* either be convertible to the attribute type,
+* or it has to expose certain functionalities, i.e. it needs to conform to a
+ concept compatible with the generator.
+
+Each compound generator implements its own set of attribute propagation rules.
+For a full list of how the different compound generators consume attributes
+see the section __sec_karma_compound__.
+
+[heading The Attribute of Sequence Generators]
+
+Sequences require an attribute type to expose the concept of a fusion sequence,
+where all elements of that fusion sequence have to be compatible with the
+corresponding element of the __karma__ generator sequence. For example, the
+expression:
+
+ double_ << double_
+
+is able to consume any fusion sequence holding two types, where both types have
+to be convertible to `double`. The first element of the fusion sequence has to
+be compatible with the attribute of the first `double_` (i.e. it needs to be
+convertible to a `double`), and the second element of the fusion sequence has
+to be compatible with the attribute of the second `double_` (i.e. convertible
+to a `double` as well). If we assume to have an instance of a
+`std::pair<double, double>`, we can directly use the expression above:
+
+ // the following generates: 1.0 2.0
+ std::string str;
+ std::back_insert_iterator<std::string> out(str);
+ generate(out,
+ double_ << double_, // generator grammar (format description)
+ space, // delimiter grammar
+ std::make_pair(1.0, 2.0)); // data to use as the attribute
+
+(where the `space` generator is used as the delimiter, allowing to
+automatically insert delimiting spaces in between all primitives).
+
+[tip *For sequences only:* __karma__ exposes a set of API functions usable
+ mainly with sequences. Very much like the functions of the `printf`
+ family these functions allow to pass the attributes for each of the
+ elements of the sequence separately. Using the corresponding overload of
+ /Karma's/ `generate()` the expression above could be rewritten as:
+
+ ``generate(out, double_ << double_, space, 1.0, 2.0);``
+
+ where the first attribute (`1.0`) is used for the first `double_`, and
+ the second attribute (`2.0`) is used for the second `double_`.
+]
+
+[heading More About Attributes of Compound Generators]
+
+While generating output it is often desirable to combine some constant
+elements with variable parts. For instance, if we go back to our example of
+formatting a complex number, we need to write it as `(re, im)`, where `re` and
+`im` are the variables representing the real and imaginary parts of our
+complex number. As we have already seen, this can be achieved by writing
+
+ '(' << double_ << ", " << double_ << ')'
+
+Fortunately, literals (such as `'('` and `", "`) do not expose any attribute
+(well actually, they do expose the special type `unused_type`, but in this
+context `unused_type` is interpreted as if the generator does not expose any
+attribute at all). It is very important to understand that the literals don't
+consume any of the elements of a fusion sequence passed to this generator
+sequence. The following example shows this:
+
+ // the following generates: (1.0, 2.0)
+ std::string str;
+ std::back_insert_iterator<std::string> out(str);
+ generate(out,
+ '(' << double_ << ", " << double_ << ')', // generator grammar (format description)
+ std::make_pair(1.0, 2.0)); // data to use as the attribute
+
+This behavior should be familiar as it conforms to the way other output
+formatting libraries such as `printf` or `boost::format` are handling their
+variable parts. In this context you can think about __karma__'s primitive
+generators (such as the `double_` above) as of being placeholders for the
+attribute values to print.
+
+[heading Attributes of Rules and Grammars]
+
+* explicit attribute type
+* attribute propagation
+ * explicit and operator%=
+
+[endsect]
+
+[/////////////////////////////////////////////////////////////////////////////]
[section:karma_easier_complex Complex - Made easier]
-In the previous section we showed how to format a complex number (i.e. a pair of
-doubles). In this section we will build on this example with the goal to avoid
-to use semantic actions in the format specification. Let's have a look at the
-resulting code first, trying to understand it afterwards.
+In one of the previous sections we showed how to format a complex number (i.e.
+a pair of doubles). In this section we will build on this example with the goal
+to avoid to use semantic actions in the format specification. Let's have a look
+at the resulting code first, trying to understand it afterwards.
[endsect]
Modified: trunk/libs/spirit/doc/karma/operator.qbk
==============================================================================
--- trunk/libs/spirit/doc/karma/operator.qbk (original)
+++ trunk/libs/spirit/doc/karma/operator.qbk 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -8,6 +8,242 @@
[section Operator]
+This module includes different generators which get instantiated if one of the
+overloaded operators is used with more primitive generator constructs. It
+includes sequences (`<<`), alternatives (`|`), kleene star (unary `*`), plus
+(unary `+`), optional (unary `-`), lists (`%`), and the two predicates, the
+/and/ predicate (unary `&`) and the /not/ predicate (unary `!`).
+[heading Module Header]
+
+ // forwards to <boost/spirit/home/karma/operator.hpp>
+ #include <boost/spirit/include/karma_operator.hpp>
+
+[/////////////////////////////////////////////////////////////////////////////]
+[section:sequence Sequences (`operator<<()`)]
+
+[heading Description]
+
+Generator sequences are used to consecutively combine different, more primitive
+generators. All generators in a sequence are invoked from left to right as long
+as they succeed.
+
+[heading Header]
+
+ // forwards to <boost/spirit/home/karma/operator/sequence.hpp>
+ #include <boost/spirit/include/karma_sequence.hpp>
+
+Also, see __include_structure__.
+
+[heading Model of]
+
+[:__nary_generator_concept__]
+
+[heading Expression Semantics]
+
+Semantics of an expression is defined only where it differs from, or is not
+defined in __nary_generator_concept__.
+
+[table
+ [[Expression] [Semantics]]
+ [[`a << b`] [The generators `a` and `b` are executed sequentially
+ from left to right and as long as they succeed. A
+ failed generator stops the execution of the entire
+ sequence and makes the sequence fail as well.]]
+]
+
+It is important to note, that sequences don't perform any buffering of the
+output generated by its elements. That means that any failing sequence might
+have already generated some output, which is /not/ rolled back.
+
+[tip The only compound generators performing buffering are
+ __karma_alternative__ generators. This allows to force a sequence to
+ behave as if it did buffering by wrapping it into an alternative:
+
+ ``a << b << c | eps(false)``
+
+ which will /not/ generate any output in case of a failing sequence.
+ Here is why: if the first alternative (our sequence) fails the
+ alternative discards any accumulated output and tries the second
+ alternative, which will always fail; if the first alternative succeeds,
+ the __karma_eps__ generator is never executed.]
+
+[heading Attributes]
+
+[table
+ [[Expression] [Attribute]]
+ [[sequence (`<<`)] [``a: A, b: B --> (a << b): tuple<A, B>
+a: A, b: Unused --> (a << b): A
+a: Unused, b: B --> (a << b): B
+a: Unused, b: Unused --> (a << b): Unused
+
+a: A, b: A --> (a << b): vector<A>
+a: vector<A>, b: A --> (a << b): vector<A>
+a: A, b: vector<A> --> (a << b): vector<A>
+a: vector<A>, b: vector<A> --> (a << b): vector<A>``]]
+]
+
+[important The table above uses `tuple<A, B>` and `vector<A>` as placeholders
+ only.
+
+ The notation `tuple<A, B>` stands for /any fusion sequence of two
+ elements/, where `A` is the type of its first element and `B` is the
+ type of its second element.
+
+ The notation of `vector<A>` stands for /any STL container/ holding
+ elements of type `A`.]
+
+The attribute composition and propagation rules as shown in the table above make
+sequences somewhat special as - if all elements have the same attribute type -
+they can operate in two modes: consuming fusion sequences and consuming STL
+containers. The selected mode depends on the type of the attribute supplied
+
+[heading Complexity]
+
+[:The oveall complexity of the sequence generator is defined by the sum of the
+ complexities of its elements. The complexity of the sequence itself is O(N),
+ where N is the number of elements in the sequence.]
+
+[heading Example]
+
+Some includes:
+
+[reference_karma_includes]
+
+All code snippets below use this common test function:
+
+[reference_karma_test]
+
+Some using declarations:
+
+[reference_karma_using_declarations_sequence]
+
+Basic usage of a sequence:
+
+[reference_karma_sequence]
+
+[endsect]
+
+[/////////////////////////////////////////////////////////////////////////////]
+[section:alternative Alternatives (`operator|()`)]
+
+[heading Description]
+
+Generator alternatives are used to combine different, more primitive generators
+into alternatives. All generators in an alternative are invoked from left to
+right until one of them succeeds.
+
+[heading Header]
+
+ // forwards to <boost/spirit/home/karma/operator/alternative.hpp>
+ #include <boost/spirit/include/karma_alternative.hpp>
+
+Also, see __include_structure__.
+
+[heading Model of]
+
+[:__nary_generator_concept__]
+
+[heading Expression Semantics]
+
+Semantics of an expression is defined only where it differs from, or is not
+defined in __nary_generator_concept__.
+
+[table
+ [[Expression] [Semantics]]
+ [[`a | b`] [The generators `a` and `b` are executed sequentially
+ from left to right and until one of them succeeds. A
+ failed generator forces the alternative to try the
+ next one. The alternative fails as a whole only if
+ all elements of the alternative fail.]]
+]
+
+Alternatives intercept and buffer the output of the currently executed element.
+This allows to avoid partial outputs from failing elements as the buffered
+content will be forwarded to the actual output only after an element succeeded.
+
+[heading Attributes]
+
+[table
+ [[Expression] [Attribute]]
+ [[alternative (`|`)] [``a: A, b: B --> (a | b): variant<A, B>
+a: A, b: Unused --> (a | b): A
+a: Unused, b: B --> (a | b): B
+a: Unused, b: Unused --> (a | b): Unused
+a: A, b: A --> (a | b): A``]]
+]
+
+[important The table above uses `variant<A, B>` as a placeholder only.
+
+ The notation `variant<A, B>` stands for any data structure
+ compatible with `boost::variant`. Most of the time you will use
+ `boost::variant`, though.]
+
+Alternatives are special in terms of attribute handling as their behavior is
+not completely compile time defined. First of all the selected alternative
+element depends on the actual type of the attribute supplied to the alternative
+generator (i.e. what is stored in the variant). The attribute type supplied at
+/runtime/ narrows the set of considered alternatives to those being compatible
+attribute wise. The remaining alternatives are tried sequentially until the
+first of them succeeds. See below for an example of this behavior.
+
+[heading Complexity]
+
+[:The oveall complexity of the alternative generator is defined by the sum of
+ the complexities of its elements. The complexity of the alternative itself is
+ O(N), where N is the number of elements in the alternative.]
+
+[heading Example]
+
+Some includes:
+
+[reference_karma_includes]
+
+All code snippets below use this common test function:
+
+[reference_karma_test]
+
+Some using declarations:
+
+[reference_karma_using_declarations_alternative]
+
+Basic usage of an alternative. While being only the second alternative, the
+`double_` generator is chosen for output formatting because the supplied
+attribute type is not compatible (i.e. not convertible) to the attribute type
+of the `string` alternative.
+
+[reference_karma_alternative]
+
+[endsect]
+
+[/////////////////////////////////////////////////////////////////////////////]
+[/section:kleene Kleene Star (unary `operator*()`)]
+
+[/endsect]
+
+[/////////////////////////////////////////////////////////////////////////////]
+[/section:plus Plus (unary `operator+()`)]
+
+[/endsect]
+
+[/////////////////////////////////////////////////////////////////////////////]
+[/section:list Lists (`operator%()`)]
+
+[/endsect]
+
+[/////////////////////////////////////////////////////////////////////////////]
+[/section:optional Optionals (unary `operator-()`)]
+
+[/endsect]
+
+[/////////////////////////////////////////////////////////////////////////////]
+[/section:and_predicate And Predicate (unary `operator&()`)]
+
+[/endsect]
+
+[/////////////////////////////////////////////////////////////////////////////]
+[/section:not_predicate Not Predicate (unary `operator!()`)]
+
+[/endsect]
[endsect]
Modified: trunk/libs/spirit/doc/karma/quick_reference.qbk
==============================================================================
--- trunk/libs/spirit/doc/karma/quick_reference.qbk (original)
+++ trunk/libs/spirit/doc/karma/quick_reference.qbk 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -53,10 +53,11 @@
[[__karma_eol__] [`Unused`] [Generates the end of line (`\n`)]]
[[__karma_eps__] [`Unused`] [Generate an empty string]]
[[__karma_feps__] [`Unused`] [If `b` is true, generate an empty string]]
- [[__karma_lazy__] [Attribute of `G` where `G`
+ [[[karma_lazy `lazy(fg)`]]
+ [Attribute of `G` where `G`
is the return type of `fg`] [Invoke `fg` at generation time, returning a generator
`g` which is then called to generate.]]
- [[__karma_llazy__] [see __karma_lazy__ above] [Equivalent to `lazy(fg)`]]
+ [[[karma_lazy `fg`]] [see [karma_lazy `lazy(fg)`] above] [Equivalent to [karma_lazy `lazy(fg)`]]]
[[`g[fa]`] [Attribute of `g`] [Call semantic action `fa` (before executing `g`).]]
[[`byte_`] [8 bits native endian] [Generates an 8 bit binary]]
@@ -160,7 +161,7 @@
[table Spirit.Karma compound generator attribute types
[[Expression] [Attribute]]
- [[sequence (`<<`)]
+ [[__karma_sequence__]
[``a: A, b: B --> (a << b): tuple<A, B>
a: A, b: Unused --> (a << b): A
a: Unused, b: B --> (a << b): B
@@ -171,10 +172,10 @@
a: A, b: vector<A> --> (a << b): vector<A>
a: vector<A>, b: vector<A> --> (a << b): vector<A>``]]
- [[alternative (`|`)]
+ [[__karma_alternative__]
[``a: A, b: B --> (a | b): variant<A, B>
-a: A, b: Unused --> (a | b): variant<Unused, A>
-a: Unused, b: B --> (a | b): variant<Unused, B>
+a: A, b: Unused --> (a | b): A
+a: Unused, b: B --> (a | b): B
a: Unused, b: Unused --> (a | b): Unused
a: A, b: A --> (a | b): A``]]
Modified: trunk/libs/spirit/doc/qi/quick_reference.qbk
==============================================================================
--- trunk/libs/spirit/doc/qi/quick_reference.qbk (original)
+++ trunk/libs/spirit/doc/qi/quick_reference.qbk 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -96,11 +96,11 @@
[[`xdigit`] [`Ch`] [Matches a character based on the equivalent of
`std::isxdigit` in the current character set]]
- [[`ch`] [`Unused`] [Matches `ch`]]
- [[`str`] [`Unused`] [Matches `str`]]
- [[`lit(ch)`] [`Unused`] [Matches `ch`]]
- [[`lit(str)`] [`Unused`] [Matches `str`]]
- [[`string(str)`] [`Str`] [Matches `str`]]
+ [[[qi_lit_string `ch`]] [`Unused`] [Matches `ch`]]
+ [[[qi_lit_string `str`]] [`Unused`] [Matches `str`]]
+ [[[qi_lit_string `lit(ch)`]] [`Unused`] [Matches `ch`]]
+ [[[qi_lit_string `lit(str)`]] [`Unused`] [Matches `str`]]
+ [[[qi_lit_string `string(str)`]] [`Str`] [Matches `str`]]
[[__qi_symbols__] [N/A] [Declare a symbol table, `sym`. `Ch` is the
underlying char type of the symbol table keys.
@@ -190,7 +190,7 @@
[table compound parser attribute types
[[Expression] [Attribute]]
- [[sequence (`>>`)]
+ [[sequence (`>>`)]
[``a: A, b: B --> (a >> b): tuple<A, B>
a: A, b: Unused --> (a >> b): A
a: Unused, b: B --> (a >> b): B
@@ -201,17 +201,21 @@
a: A, b: vector<A> --> (a >> b): vector<A>
a: vector<A>, b: vector<A> --> (a >> b): vector<A>``]]
- [[expect (`>`)]
+ [[expect (`>`)]
[``a: A, b: B --> (a > b): tuple<A, B>
a: A, b: Unused --> (a > b): A
a: Unused, b: B --> (a > b): B
a: Unused, b: Unused --> (a > b): Unused
-a: A, b: A --> (a > b): vector<A>``]]
-
- [[alternative (`|`)]
+
+a: A, b: A --> (a > b): vector<A>
+a: vector<A>, b: A --> (a > b): vector<A>
+a: A, b: vector<A> --> (a > b): vector<A>
+a: vector<A>, b: vector<A> --> (a > b): vector<A>``]]
+
+ [[alternative (`|`)]
[``a: A, b: B --> (a | b): variant<A, B>
-a: A, b: Unused --> (a | b): variant<Unused, A>
-a: Unused, b: B --> (a | b): variant<Unused, B>
+a: A, b: Unused --> (a | b): A
+a: Unused, b: B --> (a | b): B
a: Unused, b: Unused --> (a | b): Unused
a: A, b: A --> (a | b): A``]]
Modified: trunk/libs/spirit/doc/spirit2.qbk
==============================================================================
--- trunk/libs/spirit/doc/spirit2.qbk (original)
+++ trunk/libs/spirit/doc/spirit2.qbk 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -77,6 +77,8 @@
[def __sec_karma__ [link spirit.karma Karma]]
[def __sec_qi_karma_attributes__ [link spirit.qi_and_karma.abstracts.attributes Attributes]]
[def __sec_karma_numeric_performance__ [link spirit.karma.performance_measurements.numeric_performance Performance of Numeric Generators]]
+[def __sec_karma_primitive__ [link spirit.karma.quick_reference.predefined_primitive_generators Predefined Primitive Generators]]
+[def __sec_karma_compound__ [link spirit.karma.quick_reference.compound_attribute_rules Compound Attribute Rules]]
[def __sec_lex__ [link spirit.lex Lex]]
[def __sec_lex_quickstart_1__ [link spirit.lex.tutorials.lexer_quickstart1 Lex Quickstart 1 - A word counter using __lex__]]
@@ -133,16 +135,26 @@
[def __qi_attr__ [link spirit.qi.reference.auxiliary.attr `attr(attrib)`]]
[def __qi_no_case__ [link spirit.qi.reference.directive.no_case `no_case[a]`]]
[def __qi_symbols__ [link spirit.qi.reference.string.symbols `symbols<Ch, T>`]]
+[template qi_lit_string[str] [link spirit.qi.reference.string.lit_string [str]]]
[def __generator_concept__ [link spirit.karma.reference.generator_concepts.generator `Generator`]]
[def __primitive_generator_concept__ [link spirit.karma.reference.generator_concepts.primitivegenerator `PrimitiveGenerator`]]
+[def __nary_generator_concept__ [link spirit.karma.reference.generator_concepts.narygenerator `NaryGenerator`]]
[def __karma_lazy_argument__ [link spirit.karma.reference.karma_basics.lazy_argument Lazy Argument]]
[def __karma_eol__ [link spirit.karma.reference.auxiliary.eol `eol`]]
[def __karma_eps__ [link spirit.karma.reference.auxiliary.eps `eps`]]
[def __karma_feps__ [link spirit.karma.reference.auxiliary.eps `eps(b)`]]
-[def __karma_lazy__ [link spirit.karma.reference.auxiliary.lazy `lazy(fg)`]]
+[template karma_lazy[str] [link spirit.karma.reference.auxiliary.lazy [str]]]
[def __karma_llazy__ [link spirit.karma.reference.auxiliary.lazy `fg`]]
+[def __karma_sequence__ [link spirit.karma.reference.operator.sequence sequence (`<<`)]]
+[def __karma_alternative__ [link spirit.karma.reference.operator.alternative alternative (`|`)]]
+[def __karma_kleene__ [link spirit.karma.reference.operator.kleene kleene (unary `*`)]]
+[def __karma_plus__ [link spirit.karma.reference.operator.plus plus (unary `+`)]]
+[def __karma_list__ [link spirit.karma.reference.operator.list list (`%`)]]
+[def __karma_optional__ [link spirit.karma.reference.operator.optional optional (`-`)]]
+[def __karma_and_predicate__ [link spirit.karma.reference.operator.and_predicate and predicate (unary `&`)]]
+[def __karma_not_predicate__ [link spirit.karma.reference.operator.not_predicate not predicate (unary `!`)]]
[def __actions__ Semantic Actions] [/$$$ TODO: link me $$$]
[def __context__ Context] [/$$$ TODO: link me $$$]
Added: trunk/libs/spirit/example/karma/reference.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/example/karma/reference.cpp 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -0,0 +1,70 @@
+/*=============================================================================
+ Copyright (c) 2001-2009 Hartmut Kaiser
+ http://spirit.sourceforge.net/
+
+ 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)
+=============================================================================*/
+//[reference_karma_includes
+#include <boost/spirit/include/karma.hpp>
+#include <boost/spirit/include/phoenix_core.hpp>
+#include <boost/spirit/include/phoenix_operator.hpp>
+#include <boost/fusion/include/std_pair.hpp>
+#include <iostream>
+#include <string>
+//]
+
+//[reference_karma_test
+template <typename G>
+void test_generator(char const* expected, G const& g)
+{
+ std::string s;
+ std::back_insert_iterator<std::string> out(s);
+ if (boost::spirit::karma::generate(out, g) && str == expected)
+ std::cout << "ok" << std::endl;
+ else
+ std::cout << "fail" << std::endl;
+}
+//]
+
+//[reference_karma_test_attr
+template <typename G, typename T>
+void test_generator_attr(char const* expected, G const& g, T const& attr)
+{
+ std::string s;
+ std::back_insert_iterator<std::string> out(s);
+ if (boost::spirit::karma::generate(out, g, attr) && str == expected)
+ std::cout << "ok" << std::endl;
+ else
+ std::cout << "fail" << std::endl;
+}
+//]
+
+int
+main()
+{
+ {
+ //[reference_karma_using_declarations_sequence
+ using boost::spirit::karma::generate;
+ using boost::spirit::karma::double_;
+ //]
+
+ //[reference_karma_sequence
+ test_generator_attr("1.0,2.0", double_ << ',' << double_, std::make_pair(1.0, 2.0));
+ //]
+ }
+
+ {
+ //[reference_karma_using_declarations_alternative
+ using boost::spirit::karma::generate;
+ using boost::spirit::karma::double_;
+ using boost::spirit::karma::string;
+ //]
+
+ //[reference_karma_alternative
+ boost::variant<std::string, double> v(1.0);
+ test_generator_attr("1.0", string | double_, v);
+ //]
+ }
+ return 0;
+}
Modified: trunk/libs/spirit/repository/doc/html/index.html
==============================================================================
--- trunk/libs/spirit/repository/doc/html/index.html (original)
+++ trunk/libs/spirit/repository/doc/html/index.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 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="id1015171"></a><p>
+<a name="id1033740"></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>
@@ -72,7 +72,7 @@
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: July 30, 2009 at 22:57:50 GMT</small></p></td>
+<td align="left"><p><small>Last revised: August 02, 2009 at 01:35:55 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>
Modified: trunk/libs/spirit/repository/doc/html/spirit_repository/karma_components/karma_generator_directives/karma_confix_generator.html
==============================================================================
--- trunk/libs/spirit/repository/doc/html/spirit_repository/karma_components/karma_generator_directives/karma_confix_generator.html (original)
+++ trunk/libs/spirit/repository/doc/html/spirit_repository/karma_components/karma_generator_directives/karma_confix_generator.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -27,7 +27,7 @@
Confix Generator</a>
</h4></div></div></div>
<a name="spirit_repository.karma_components.karma_generator_directives.karma_confix_generator.description"></a><h6>
-<a name="id1026383"></a>
+<a name="id1045040"></a>
<a class="link" href="karma_confix_generator.html#spirit_repository.karma_components.karma_generator_directives.karma_confix_generator.description">Description</a>
</h6>
<p>
@@ -92,20 +92,20 @@
tag using a simple: <code class="computeroutput"><span class="identifier">ol</span><span class="special">[</span><span class="string">"Some text"</span><span class="special">]</span></code> (which results in <code class="computeroutput"><span class="special"><</span><span class="identifier">ol</span><span class="special">></span><span class="identifier">Some</span> <span class="identifier">text</span><span class="special"></</span><span class="identifier">ol</span><span class="special">></span></code>).
</p>
<a name="spirit_repository.karma_components.karma_generator_directives.karma_confix_generator.header"></a><h6>
-<a name="id1027280"></a>
+<a name="id1045937"></a>
<a class="link" href="karma_confix_generator.html#spirit_repository.karma_components.karma_generator_directives.karma_confix_generator.header">Header</a>
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/repository/home/karma/confix.hpp>
</span><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">repository</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">karma_confix</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<a name="spirit_repository.karma_components.karma_generator_directives.karma_confix_generator.synopsis"></a><h6>
-<a name="id1027353"></a>
+<a name="id1047107"></a>
<a class="link" href="karma_confix_generator.html#spirit_repository.karma_components.karma_generator_directives.karma_confix_generator.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="identifier">confix</span><span class="special">(</span><span class="identifier">prefix</span><span class="special">,</span> <span class="identifier">suffix</span><span class="special">)[</span><span class="identifier">subject</span><span class="special">]</span>
</pre>
<a name="spirit_repository.karma_components.karma_generator_directives.karma_confix_generator.parameters"></a><h6>
-<a name="id1028498"></a>
+<a name="id1047155"></a>
<a class="link" href="karma_confix_generator.html#spirit_repository.karma_components.karma_generator_directives.karma_confix_generator.parameters">Parameters</a>
</h6>
<div class="informaltable"><table class="table">
@@ -174,7 +174,7 @@
All three parameters can be arbitrary complex generators themselves.
</p>
<a name="spirit_repository.karma_components.karma_generator_directives.karma_confix_generator.attribute"></a><h6>
-<a name="id1028656"></a>
+<a name="id1047313"></a>
<a class="link" href="karma_confix_generator.html#spirit_repository.karma_components.karma_generator_directives.karma_confix_generator.attribute">Attribute</a>
</h6>
<p>
@@ -201,7 +201,7 @@
</p></td></tr>
</table></div>
<a name="spirit_repository.karma_components.karma_generator_directives.karma_confix_generator.example"></a><h6>
-<a name="id1028832"></a>
+<a name="id1047489"></a>
<a class="link" href="karma_confix_generator.html#spirit_repository.karma_components.karma_generator_directives.karma_confix_generator.example">Example</a>
</h6>
<p>
@@ -210,7 +210,7 @@
styles and a function prototype (for the full example code see here: confix.cpp)
</p>
<a name="spirit_repository.karma_components.karma_generator_directives.karma_confix_generator.prerequisites"></a><h6>
-<a name="id1028862"></a>
+<a name="id1047519"></a>
<a class="link" href="karma_confix_generator.html#spirit_repository.karma_components.karma_generator_directives.karma_confix_generator.prerequisites">Prerequisites</a>
</h6>
<p>
@@ -248,7 +248,7 @@
<p>
</p>
<a name="spirit_repository.karma_components.karma_generator_directives.karma_confix_generator.generating_different_comment_styles"></a><h6>
-<a name="id1029105"></a>
+<a name="id1047762"></a>
<a class="link" href="karma_confix_generator.html#spirit_repository.karma_components.karma_generator_directives.karma_confix_generator.generating_different_comment_styles">Generating
Different Comment Styles</a>
</h6>
@@ -300,7 +300,7 @@
*/</span> </code>.
</p>
<a name="spirit_repository.karma_components.karma_generator_directives.karma_confix_generator.generating_a_function_prototype"></a><h6>
-<a name="id1029406"></a>
+<a name="id1048063"></a>
<a class="link" href="karma_confix_generator.html#spirit_repository.karma_components.karma_generator_directives.karma_confix_generator.generating_a_function_prototype">Generating
a Function Prototype</a>
</h6>
Modified: trunk/libs/spirit/repository/doc/html/spirit_repository/preface.html
==============================================================================
--- trunk/libs/spirit/repository/doc/html/spirit_repository/preface.html (original)
+++ trunk/libs/spirit/repository/doc/html/spirit_repository/preface.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -27,7 +27,7 @@
<a name="spirit_repository.preface"></a><a class="link" href="preface.html" title="Preface">Preface</a>
</h2></div></div></div>
<a name="spirit_repository.preface.the_spirit_repository"></a><h4>
-<a name="id1015201"></a>
+<a name="id1033770"></a>
<a class="link" href="preface.html#spirit_repository.preface.the_spirit_repository">The Spirit
Repository</a>
</h4>
@@ -37,10 +37,47 @@
grammars, etc.) for <span class="emphasis"><em>Spirit.Qi</em></span> parsers and <span class="emphasis"><em>Spirit.Karma</em></span>
generators. All components in the repository have been peer reviewed and/or
discussed on the <a href="http://www.nabble.com/The-Spirit-Parser-Library-f3430.html" target="_top">Spirit
- General List</a>.
+ General List</a>. The aim is to broaden the scope of the Spirit
+ library while being able to maintain its high standards in terms of code quality,
+ flexibility, and maintainability. At the same time it encourages people to
+ contribute even small components as it lessens the hurdle of becoming a Boost and Spirit
+ author.
+ </p>
+<p>
+ Maintainability of the code and author commitment over a longer period of time
+ are crucial for <span class="emphasis"><em>Spirit's</em></span> success (as it is for the whole
+ Boost project). That allows the
+ repository to play an additional role in terms of being a proving ground for
+ interested authors. It is a lot easier to remove code from the repository than
+ from the <span class="emphasis"><em>Spirit</em></span> core library. So if an author can't maintain
+ his/her contribution anymore for any reason, we are able to remove those parts
+ from the repository more easily.
+ </p>
+<p>
+ The repository is an excellent way of evolving things. The <span class="emphasis"><em>Spirit</em></span>
+ core has been developed for years, so we have a certain confidence of it being
+ properly designed and exposing a proven API. On the other hand, new ideas often
+ need some time to 'come to the point'. Changing API's is part of this business.
+ At the same time changing API's always mean user disruption, which we want
+ to keep to a minimum. Again, changing things in the repository is ought to
+ be a lot easier than in the core library.
+ </p>
+<p>
+ The quality of contributions is another key to success. That includes not only
+ the code itself, but takes into consideration such things as documentation,
+ tests, examples. The authors activity on the mailing list is related as well,
+ it's an important point. Only well supported things will evolve over time into
+ usable, high quality components. The mandatory discussions and the review of
+ contributions on the <a href="http://www.nabble.com/The-Spirit-Parser-Library-f3430.html" target="_top">Spirit
+ General List</a> ensure the targeted high quality standards.
+ </p>
+<p>
+ Based on the user feedback and general usability of things it it possible over
+ time to move repository components<span class="emphasis"><em>grammars into the /Spirit</em></span>
+ core library.
</p>
<a name="spirit_repository.preface.how_to_use_this_manual"></a><h4>
-<a name="id1015236"></a>
+<a name="id1033859"></a>
<a class="link" href="preface.html#spirit_repository.preface.how_to_use_this_manual">How to use
this manual</a>
</h4>
@@ -49,7 +86,7 @@
icons precede some text to indicate:
</p>
<div class="table">
-<a name="id1015249"></a><p class="title"><b>Table 1. Icons</b></p>
+<a name="id1033872"></a><p class="title"><b>Table 1. Icons</b></p>
<div class="table-contents"><table class="table" summary="Icons">
<colgroup>
<col>
@@ -170,7 +207,7 @@
Tools</a>.
</p>
<a name="spirit_repository.preface.support"></a><h4>
-<a name="id1015490"></a>
+<a name="id1034113"></a>
<a class="link" href="preface.html#spirit_repository.preface.support">Support</a>
</h4>
<p>
Modified: trunk/libs/spirit/repository/doc/html/spirit_repository/qi_components/directives/confix.html
==============================================================================
--- trunk/libs/spirit/repository/doc/html/spirit_repository/qi_components/directives/confix.html (original)
+++ trunk/libs/spirit/repository/doc/html/spirit_repository/qi_components/directives/confix.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -28,7 +28,7 @@
Qi Confix Parser Directive</a>
</h4></div></div></div>
<a name="spirit_repository.qi_components.directives.confix.description"></a><h6>
-<a name="id1019560"></a>
+<a name="id1038203"></a>
<a class="link" href="confix.html#spirit_repository.qi_components.directives.confix.description">Description</a>
</h6>
<p>
@@ -95,19 +95,19 @@
</p></td></tr>
</table></div>
<a name="spirit_repository.qi_components.directives.confix.header"></a><h6>
-<a name="id1020328"></a>
+<a name="id1038971"></a>
<a class="link" href="confix.html#spirit_repository.qi_components.directives.confix.header">Header</a>
</h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">repository</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">qi_confix</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<a name="spirit_repository.qi_components.directives.confix.synopsis"></a><h6>
-<a name="id1020403"></a>
+<a name="id1039045"></a>
<a class="link" href="confix.html#spirit_repository.qi_components.directives.confix.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="identifier">confix</span><span class="special">(</span><span class="identifier">prefix</span><span class="special">,</span> <span class="identifier">suffix</span><span class="special">)[</span><span class="identifier">subject</span><span class="special">]</span>
</pre>
<a name="spirit_repository.qi_components.directives.confix.parameters"></a><h6>
-<a name="id1020456"></a>
+<a name="id1039098"></a>
<a class="link" href="confix.html#spirit_repository.qi_components.directives.confix.parameters">Parameters</a>
</h6>
<div class="informaltable"><table class="table">
@@ -171,7 +171,7 @@
All three parameters can be arbitrarily complex parsers themselves.
</p>
<a name="spirit_repository.qi_components.directives.confix.attribute"></a><h6>
-<a name="id1020597"></a>
+<a name="id1039240"></a>
<a class="link" href="confix.html#spirit_repository.qi_components.directives.confix.attribute">Attribute</a>
</h6>
<p>
@@ -197,7 +197,7 @@
</p></td></tr>
</table></div>
<a name="spirit_repository.qi_components.directives.confix.example"></a><h6>
-<a name="id1020835"></a>
+<a name="id1039477"></a>
<a class="link" href="confix.html#spirit_repository.qi_components.directives.confix.example">Example</a>
</h6>
<p>
@@ -207,7 +207,7 @@
see confix.cpp)
</p>
<a name="spirit_repository.qi_components.directives.confix.prerequisites"></a><h6>
-<a name="id1020870"></a>
+<a name="id1039512"></a>
<a class="link" href="confix.html#spirit_repository.qi_components.directives.confix.prerequisites">Prerequisites</a>
</h6>
<p>
@@ -250,7 +250,7 @@
<p>
</p>
<a name="spirit_repository.qi_components.directives.confix.parsing_different_comment_styles"></a><h6>
-<a name="id1021287"></a>
+<a name="id1039930"></a>
<a class="link" href="confix.html#spirit_repository.qi_components.directives.confix.parsing_different_comment_styles">Parsing
Different Comment Styles</a>
</h6>
@@ -310,7 +310,7 @@
This is a comment */</span> </code>".
</p>
<a name="spirit_repository.qi_components.directives.confix.parsing_tagged_data"></a><h6>
-<a name="id1022962"></a>
+<a name="id1041605"></a>
<a class="link" href="confix.html#spirit_repository.qi_components.directives.confix.parsing_tagged_data">Parsing
Tagged Data</a>
</h6>
Modified: trunk/libs/spirit/repository/doc/html/spirit_repository/qi_components/directives/distinct.html
==============================================================================
--- trunk/libs/spirit/repository/doc/html/spirit_repository/qi_components/directives/distinct.html (original)
+++ trunk/libs/spirit/repository/doc/html/spirit_repository/qi_components/directives/distinct.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -28,7 +28,7 @@
Qi Distinct Parser Directive</a>
</h4></div></div></div>
<a name="spirit_repository.qi_components.directives.distinct.description"></a><h6>
-<a name="id1023315"></a>
+<a name="id1041958"></a>
<a class="link" href="distinct.html#spirit_repository.qi_components.directives.distinct.description">Description</a>
</h6>
<p>
@@ -144,20 +144,20 @@
above.
</p>
<a name="spirit_repository.qi_components.directives.distinct.header"></a><h6>
-<a name="id1024552"></a>
+<a name="id1043195"></a>
<a class="link" href="distinct.html#spirit_repository.qi_components.directives.distinct.header">Header</a>
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/repository/home/qi/distinct.hpp>
</span><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">repository</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">qi_distinct</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<a name="spirit_repository.qi_components.directives.distinct.synopsis"></a><h6>
-<a name="id1024630"></a>
+<a name="id1043273"></a>
<a class="link" href="distinct.html#spirit_repository.qi_components.directives.distinct.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="identifier">distinct</span><span class="special">(</span><span class="identifier">tail</span><span class="special">)[</span><span class="identifier">subject</span><span class="special">]</span>
</pre>
<a name="spirit_repository.qi_components.directives.distinct.parameters"></a><h6>
-<a name="id1024675"></a>
+<a name="id1043317"></a>
<a class="link" href="distinct.html#spirit_repository.qi_components.directives.distinct.parameters">Parameters</a>
</h6>
<div class="informaltable"><table class="table">
@@ -210,7 +210,7 @@
All two parameters can be arbitrary complex parsers themselves.
</p>
<a name="spirit_repository.qi_components.directives.distinct.attribute"></a><h6>
-<a name="id1024778"></a>
+<a name="id1043421"></a>
<a class="link" href="distinct.html#spirit_repository.qi_components.directives.distinct.attribute">Attribute</a>
</h6>
<p>
@@ -224,7 +224,7 @@
<pre class="programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">B</span> <span class="special">--></span> <span class="identifier">distinct</span><span class="special">(</span><span class="identifier">b</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
</pre>
<a name="spirit_repository.qi_components.directives.distinct.example"></a><h6>
-<a name="id1024896"></a>
+<a name="id1043816"></a>
<a class="link" href="distinct.html#spirit_repository.qi_components.directives.distinct.example">Example</a>
</h6>
<p>
@@ -232,7 +232,7 @@
parser. distinct.cpp)
</p>
<a name="spirit_repository.qi_components.directives.distinct.prerequisites"></a><h6>
-<a name="id1025206"></a>
+<a name="id1043849"></a>
<a class="link" href="distinct.html#spirit_repository.qi_components.directives.distinct.prerequisites">Prerequisites</a>
</h6>
<p>
@@ -268,6 +268,11 @@
</p>
<p>
</p>
+<a name="spirit_repository.qi_components.directives.distinct.using_the_distinct_directive_to_match_keywords"></a><h6>
+<a name="id1044092"></a>
+ <a class="link" href="distinct.html#spirit_repository.qi_components.directives.distinct.using_the_distinct_directive_to_match_keywords">Using
+ The Distinct Directive to Match keywords</a>
+ </h6>
<p>
We show several examples of how the <code class="computeroutput"><span class="identifier">distinct</span><span class="special">[]</span></code> directive can be used to force correct
behavior while matching keywords. The first two code snippets show the
Modified: trunk/libs/spirit/repository/doc/html/spirit_repository/qi_components/primitive/flush_multi_pass.html
==============================================================================
--- trunk/libs/spirit/repository/doc/html/spirit_repository/qi_components/primitive/flush_multi_pass.html (original)
+++ trunk/libs/spirit/repository/doc/html/spirit_repository/qi_components/primitive/flush_multi_pass.html 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -28,7 +28,7 @@
Qi flush_multi_pass parser</a>
</h4></div></div></div>
<a name="spirit_repository.qi_components.primitive.flush_multi_pass.description"></a><h6>
-<a name="id1015567"></a>
+<a name="id1034190"></a>
<a class="link" href="flush_multi_pass.html#spirit_repository.qi_components.primitive.flush_multi_pass.description">Description</a>
</h6>
<p>
@@ -53,20 +53,20 @@
<code class="computeroutput"><span class="identifier">eps</span></code>).
</p>
<a name="spirit_repository.qi_components.primitive.flush_multi_pass.header"></a><h6>
-<a name="id1015675"></a>
+<a name="id1034298"></a>
<a class="link" href="flush_multi_pass.html#spirit_repository.qi_components.primitive.flush_multi_pass.header">Header</a>
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/repository/home/qi/flush_multi_pass.hpp>
</span><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">repository</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">qi_flush_multi_pass</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<a name="spirit_repository.qi_components.primitive.flush_multi_pass.synopsis"></a><h6>
-<a name="id1015748"></a>
+<a name="id1034371"></a>
<a class="link" href="flush_multi_pass.html#spirit_repository.qi_components.primitive.flush_multi_pass.synopsis">Synopsis</a>
</h6>
<pre class="programlisting"><span class="identifier">flush_multi_pass</span>
</pre>
<a name="spirit_repository.qi_components.primitive.flush_multi_pass.parameters"></a><h6>
-<a name="id1015770"></a>
+<a name="id1034393"></a>
<a class="link" href="flush_multi_pass.html#spirit_repository.qi_components.primitive.flush_multi_pass.parameters">Parameters</a>
</h6>
<p>
@@ -74,7 +74,7 @@
not require any parameters.
</p>
<a name="spirit_repository.qi_components.primitive.flush_multi_pass.attribute"></a><h6>
-<a name="id1015794"></a>
+<a name="id1034417"></a>
<a class="link" href="flush_multi_pass.html#spirit_repository.qi_components.primitive.flush_multi_pass.attribute">Attribute</a>
</h6>
<p>
@@ -84,7 +84,7 @@
<pre class="programlisting"><span class="identifier">flush_multi_pass</span> <span class="special">--></span> <span class="identifier">unused</span>
</pre>
<a name="spirit_repository.qi_components.primitive.flush_multi_pass.example"></a><h6>
-<a name="id1015843"></a>
+<a name="id1034466"></a>
<a class="link" href="flush_multi_pass.html#spirit_repository.qi_components.primitive.flush_multi_pass.example">Example</a>
</h6>
<p>
@@ -96,7 +96,7 @@
a function prototype (for the full example code see here: flush_multi_pass.cpp)
</p>
<a name="spirit_repository.qi_components.primitive.flush_multi_pass.prerequisites"></a><h6>
-<a name="id1015876"></a>
+<a name="id1034498"></a>
<a class="link" href="flush_multi_pass.html#spirit_repository.qi_components.primitive.flush_multi_pass.prerequisites">Prerequisites</a>
</h6>
<p>
@@ -133,7 +133,7 @@
<p>
</p>
<a name="spirit_repository.qi_components.primitive.flush_multi_pass.clearing_the_internal_buffer"></a><h6>
-<a name="id1016092"></a>
+<a name="id1034714"></a>
<a class="link" href="flush_multi_pass.html#spirit_repository.qi_components.primitive.flush_multi_pass.clearing_the_internal_buffer">Clearing
the internal buffer</a>
</h6>
@@ -199,7 +199,7 @@
<tr><td align="left" valign="top"><p>
Using the <code class="computeroutput"><span class="identifier">flush_multi_pass</span></code>
parser component with iterators other than <code class="computeroutput"><span class="identifier">multi_pass</span></code>
- is safe to use as it has no effect on the parsing.
+ is safe as it has no effect on the parsing.
</p></td></tr>
</table></div>
</div>
Modified: trunk/libs/spirit/repository/doc/preface.qbk
==============================================================================
--- trunk/libs/spirit/repository/doc/preface.qbk (original)
+++ trunk/libs/spirit/repository/doc/preface.qbk 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -13,7 +13,38 @@
The __spirit__ repository is a community effort collecting different reusable
components (primitives, directives, grammars, etc.) for __qi__ parsers and
__karma__ generators. All components in the repository have been peer reviewed
-and/or discussed on the __spirit_list__.
+and/or discussed on the __spirit_list__. The aim is to broaden the scope of the
+__spirit__ library while being able to maintain its high standards in terms of
+code quality, flexibility, and maintainability. At the same time it encourages
+people to contribute even small components as it lessens the hurdle of becoming
+a __boost__ and __spirit__ author.
+
+Maintainability of the code and author commitment over a longer period of time
+are crucial for /Spirit's/ success (as it is for the whole __boost__ project).
+That allows the repository to play an additional role in terms of being a
+proving ground for interested authors. It is a lot easier to remove code from
+the repository than from the /Spirit/ core library. So if an author can't
+maintain his/her contribution anymore for any reason, we are able to remove
+those parts from the repository more easily.
+
+The repository is an excellent way of evolving things. The /Spirit/ core has
+been developed for years, so we have a certain confidence of it being properly
+designed and exposing a proven API. On the other hand, new ideas often need
+some time to 'come to the point'. Changing API's is part of this business. At
+the same time changing API's always mean user disruption, which we want to keep
+to a minimum. Again, changing things in the repository is ought to be a lot
+easier than in the core library.
+
+The quality of contributions is another key to success. That includes not only
+the code itself, but takes into consideration such things as documentation,
+tests, examples. The authors activity on the mailing list is related as well,
+it's an important point. Only well supported things will evolve over time into
+usable, high quality components. The mandatory discussions and the review of
+contributions on the __spirit_list__ ensure the targeted high quality
+standards.
+
+Based on the user feedback and general usability of things it it possible over
+time to move repository components/grammars into the /Spirit/ core library.
[heading How to use this manual]
Modified: trunk/libs/spirit/repository/doc/qi/distinct.qbk
==============================================================================
--- trunk/libs/spirit/repository/doc/qi/distinct.qbk (original)
+++ trunk/libs/spirit/repository/doc/qi/distinct.qbk 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -107,6 +107,8 @@
[qi_distinct_namespace]
+[heading Using The Distinct Directive to Match keywords]
+
We show several examples of how the `distinct[]` directive can be used to force
correct behavior while matching keywords. The first two code snippets show
the correct matching of the `description` keyword (in this hypothetical example
Modified: trunk/libs/spirit/repository/doc/qi/flush_multi_pass.qbk
==============================================================================
--- trunk/libs/spirit/repository/doc/qi/flush_multi_pass.qbk (original)
+++ trunk/libs/spirit/repository/doc/qi/flush_multi_pass.qbk 2009-08-01 22:02:38 EDT (Sat, 01 Aug 2009)
@@ -79,6 +79,6 @@
[qi_flush_multi_pass_clear_buffer]
[note Using the `flush_multi_pass` parser component with iterators other than
- `multi_pass` is safe to use as it has no effect on the parsing.]
+ `multi_pass` is safe as it has no effect on the parsing.]
[endsect]
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk